> One thing I've been curious about is what would have to happen in the
> world of git when (a) someone shows how to construct SHA-1 hash
> collisions, or (b) someone shows how to consturct SHA-1 second
> preimages. There is a "repositoryformatversion = 0" in the on-disk
> format. I'm not sure if there are any other mechanisms in git storage
> or communication formats for crypto hash agility. (I expect there is
> no code in git that anticipates needing crypto hash agility.)
When someone shows how to construct SHA1 second preimages, please include me in
the demo, as doing that remains an unsolved problem.
I do not mean to defend SHA1 at all, heck, give me half a chance and I'll tell
you to drop in Skein. Nonetheless, there are still zero second-preimage attacks
on SHA1.
Operationally, however, if you could reliably create SHA1 second preimages as a
zero-day (by which I mean that no one else in the world can do it, so you get
to surprise the world), this isn't the place to do it.
With digital signatures, you can have a lot of fun with second preimages. If
there's a signature S on preimage P, then if I own P', I can claim it's signed.
Why bother compromising a CA if you can clone a certificate, for example?
With any sort of content-addressable storage, however, it doesn't work so well.
Suppose I create some malware as my P'. When I push this into the off-host, the
other system will say, "I already have P, thanks" and won't get P' from me. In
the case of a central repository, I can't push P' into it because it will
always refuse it for the simple reason that it has it.
In the case of something like git, we end up with a partitioned set of
repositories, and the only people who get P' are the ones who didn't have it
and pull it from me (or I push it on them when they don't have P). The details
of the spread depend on lots of things not worth discussing.
Bottom line on this is that if you can make SHA1 collisions, breaking content
addressable storage isn't worth blowing your lead on. Abstractly, git ought to
become agile in hash function, but realistically, it's not a concern yet.
Jon
_______________________________________________
cryptography mailing list
[email protected]
http://lists.randombit.net/mailman/listinfo/cryptography