On 12/12/2017 08:28, Poul-Henning Kamp wrote: > -------- > In message <[email protected]>, Karl > Denninger > writes: > >> Now the question becomes this -- is the proper means to handle this via >> TLS (using that root cert) OR should the *transport* be fixed so that >> https doesn't need to be used? > I certainly would caution against inventing more encrypted transports > than we already have. > > The only feasible alternative I see is SSH, provided we can persuade > it somehow to not authenticate the client. > > If this requires a hacked sshd(8) which just says "welcome" I would > be very worried about it coexisting with a untainted sshd on any > system. I generally disagree with doing this at the transport level *at all* since it's quite-arguably the wrong place to do it and further it provides an alleged "verification" you not only don't need but maybe don't want (e.g. do you CARE if the bits come from the project's server directly or not? No. You only care that they weren't tampered with.) >> I argue the second, because the goal when it comes to source >> distributions is ensuring that the code you transfer is bit-wise >> identical to the code on the FreeBSD project repositories *which can be >> mirrored.* > I am personally a very big fan of integrity checks which does not > also encrypt the content with an ephemeral key for exactly that > reason. > > Most of the people who try to force everything behind HTTPS don't > even know you can do that. > > For the FreeBSD SVN tree, this could almost be as simple as posting > an email, maybe once a week, with the exact revision checked out > and the PGP signed output of: > > svn co ... && find ... -print | sort | xargs cat | sha256 > > Such an archive would also be invaluable for reauthenticating in > case, somebody ever manages to do something evil to our repo. That's a halfway hack but a pretty easy one..... >> Solve the problem at the correct location -- either fix svn to sign and >> verify updates or dump it for something that can and use that existing >> mechanism (e.g. git) > As I mentioned humoursly to you in private email, I don't think > this particular problem will reach consensus any sooner if you > also tangling it in the SVN vs GIT political issue. Fair enough but I think my underlying point -- that svn ought to provide the ability to distribute signed bits, and if it can't then it should either be wrapped or augmented to do so if possible, and tossed if not, remains valid.
Offering encrypted transport as an option is good but it fails at providing the actual attestation you want (that the bits the project committed and has on its disk are the bits you received and stored on your disk, unaltered.) Removing unencrypted transport is thus IMO a net bad as it *claims* to address this but doesn't. That's bad because you now lead people to *believe* they have a secure means of tracking the project's bits but that's factually false. Specifically if I have a mirror of the svn repo today and I intentionally corrupt it (e.g. to insert a back door in "su") then I can have a perfectly-valid TLS/SSL certificate and serve you an exact copy of the bits on my disk but since I corrupted the bits on the disk you still get screwed! Signed commits prohibit this sort of chicanery in that I cannot generate the project's signature. They thus make possible known-good mirrors of the code repo that do not have to be under the physical control of the FreeBSD project. This extends the existing capability to verify -RELEASE distributions on a mirror to the source, which IMHO is a net good and thus if we're talking about the context of source distribution security it is where attention should be focused. -- Karl Denninger [email protected] <mailto:[email protected]> /The Market Ticker/ /[S/MIME encrypted email preferred]/
smime.p7s
Description: S/MIME Cryptographic Signature
