>>"Jason" == Jason Gunthorpe <[EMAIL PROTECTED]> writes:
Jason> On Fri, 8 Feb 2002, Manoj Srivastava wrote: >> Could I keep Packages file and the Release files? Sure. Way >> more bloat. A simple signed file list is smaller, and less prone to >> error. And unless you mean to keep track of which Packages files to >> remove, man, it would get insane. Jason> It would actually be quite trivial to keep track of the Jason> Package files, and it handily nullifies all your Jason> arguments. Disk space is cheap, if you are serious about Jason> tracking unstable you can easially waste 100M for package Jason> data. Stable requires only 1 set of course. Not all my arguments. If the file list and the hash is part of the deb rather than the the Packages file, it affords protection even when the deb files are distributed piecemeal. Thus my scheme provides protection even in cases of individual debs, you require the infrastructure of Packlaes files and Release files in order to do verification. Keeping the signed filelist as part of the deb also simplifies the security verification process, and keeping things simple is desirable. (keeping three sets of files -- the file list, the Packagres file that contains the filelist SHA1 sig, and the Release file that contains the md5sum of the Packages file, in synch, and around, is way too complicated, and it does not need to be so). >> Also, wrong use case. I have installed debian packages on these >> machines. I have a trusted media I can boot from. Now, unless I have Jason> If you keep the package files as you said then it all works exactly the Jason> same way as signing the individual filelists. Not quite the same. It adds complexity, increases the book keeping infrastructure, and disallows the practice of users sharing/transfering .debs on their own, without using the Packages/Release/Apt mechanism. Bad idea. I know you are focussed on Apt, but there is a word of package installs that does not use apt/Packages files yet. >> nowhere. The state of the machine is still unknown. As a cracker, the >> minute I replace ssh, I'll go and change the file list (as you said, >> maybe easy to compute). No signature, heh heh. No packages file >> anymore. heh heh. Jason> With your scheme the attacker only has to install one of our Jason> many root-comprimize enabled SSH's and it is just as Jason> undetectable. With my scheme you check the Package/Relase Jason> files that you kept (optional, of course) and you will detect Jason> this right away. Strawman. No security mechanism is perfect, and no verification system can detect bugs in the underlying process. Just because there are bugs in packages that prevent perfect security does not mean we should weaken security measures. Jason> You don't loose any security, you burn some space with extra Jason> package/release files - but who really cares? I do. Disk space may be cheap, but that is no excuse for bad design. And wasting diskspace may have significance for my Linux based PDA. Or my Debian watch. Or my cell phone. Jason> You gain the same advantages that singed releases provide over Jason> signed debs regarding key and release management! It's a good Jason> workable scheme. I see no reason why signing the debs with the same key that signs the Release file is so very evil. If dpkg allows for multiple detatched sigs for each content block in the ar archive, we can have the best of both worlds. Jason> I don't really care about the discussion of the merits of 'the Jason> debsig' way vs 'signed release' way. Both are useful to some Jason> people, but only signed releases are supported by Debian - so Jason> any file list security scheme *MUST* work in that context. Are we so hard bound by current practice that we can't even design a different way of working? Sure, signed release files ar all we support now. But we are not talking about now -- we are talking about changes that need to be made to provide cryptographic verification of machines. Jason> We can easially have both, I don't see what the point of Jason> discussing the merits of the two schemes *again* is. All I Jason> want is to ensure that we can have both. Sure. Add the SHA1 sum to the Packages file as well if you wish. Makes things easier for apt, I guess -- less code. But it should not be the only way. As Adam Heath has said, adding extra components to the ar archive shall be easy enough. Jason> It's very simple: Jason> 1) Decide on the file list format Jason> 2) Have dpkg write it as it unpacks (makes the corruption Jason> people happy) I assume you mean for the sig to already have ben generated. We may not be able to trust dpkg on the target machine; so the file list has to be generated, and the signature as well, in the deb itself. Or else dpkg becomes the single point of failure, and we can't transition from a machine in an unknown state to a machine in a known state. Jason> 3) Have debsigs generate a signature that covers the filelist hash Jason> (and the rest of the meta-data to further help agaist the Jason> version-forging attack). Key management issues/etc can be Jason> managed in the usual debsigs way Ok. Jason> 4) Devise some way to distribute the file list hashes protected by Jason> the release signature. Key management and release management is Jason> managed in the usual Debian way (same keys) Well, I would like a detatched sig to be arttached to the .deb as well at this phase, so that we do not need to rely on the Packages/Relase file mechanism; and I would be able to distribute a single .deb and still have the target machine be able to verify things ``the debian way''. (In real life, my colleages have had to sneaker-and-floppy-net code over to protected networks with no connections outside; code that I wrote, and provided phone support to install, but could not get into the building due to security issues. I can see single, audited .debs being installed that way ). manoj -- egrep patterns are full regular expressions; it uses a fast deterministic algorithm that sometimes needs exponential space. Unix manuals Manoj Srivastava <[EMAIL PROTECTED]> <http://www.debian.org/%7Esrivasta/> 1024R/C7261095 print CB D9 F4 12 68 07 E4 05 CC 2D 27 12 1D F5 E8 6E 1024D/BF24424C print 4966 F272 D093 B493 410B 924B 21BA DABB BF24 424C