Garrett D'Amore wrote: >> Since each action can contain arbitrary attributes, the customer's >> signature action can contain whatever data he wants; the packaging >> system happily ignores that which it doesn't know about so he can >> add new attributes to his signature ad nauseam. >> >> This would mean that any actions that are signatures are simply >> ignored when computing the hash for signing purposes. Each signature >> can carry whatever extra data (within reason, of course) is deemed >> necessary by the signer. >> >> If the customer is worried about retrieving these packages from a repo >> run by a hostile which is attempting to edit his meta data, we can >> always include just the signature being generated (minus the hash value) >> in the hash. >> >> Thus, each signature stands alone, but if present cannot be altered w/o >> detection. > > I think you want the hash value in the signed portion. Otherwise, how > do you keep someone from reattaching a different signed meta data from a > "bad" package to a "good" package? > > Possibly all you need is just the hash signature. > > I still don't really understand whether meta data can alter the behavior > of the software (either the installed software or the installation > software itself) -- can it? > > - Garrett
The signed portion of the manifest would consist of all the entries in the manifest (actions) aside from signatures, _plus_ any metadata included in the signature being generated. Thus signatures cannot be spoofed or exchanged, but they may generated by anyone w/ a key and added to the manifest. They cannot be altered w/o invalidating that signature. The rest of the manifest cannot be altered either w/o invalidating all signatures. For example, suppose the manifest consists of: set name=fmri value=pkg:/cheeseshop at 1.0 dir group=sys mode=0755 owner=root path=/scripts file b0b7615454f3a3ec0d0d159677618bbb476052e0 group=bin mode=0444 owner=root path=scripts/cheeseshop.txt signature .... and you wish to sign it again with the additional meta data of airspeed_of_unladen_swallow=20 then the complete hashed text would include the manifest text minus the already present signature but including the airspeed_of_unladen_swallow=20 in a canonical format. - Bart -- Bart Smaalders Solaris Kernel Performance barts at cyber.eng.sun.com http://blogs.sun.com/barts "You will contribute more with mercurial than with thunderbird."
