Thread (49 messages) flat view 49 messages, 18 authors, 2017-02-28

Re: SHA1 collisions found

From: Jeff King <hidden>
Date: 2017-02-23 20:58:36

On Thu, Feb 23, 2017 at 09:49:09PM +0100, Jakub Narębski wrote:
quoted
How is GIT affected? GIT strongly relies on SHA-1 for the
identification and integrity checking of all file objects and
commits. It is essentially possible to create two GIT repositories
with the same head commit hash and different contents, say a benign
source code and a backdoored one. An attacker could potentially
selectively serve either repository to targeted users. This will
require attackers to compute their own collision.
The attack on SHA-1 presented there is "identical-prefix" collision,
which is less powerful than "chosen-prefix" collision.  It is the
latter that is required to defeat SHA-1 used in object identity.
Objects in Git _must_ begin with given prefix;
I don't think this helps. The chosen-prefix lets you append hash data to
an existing file. Here we just have identical prefixes in the two
colliding halves. In the real-world example, they used a PDF header. But
it could have been a PDF header with "blob 1234" prepended to it (note
also that Git's use of the size doesn't help; the attack files are the
same length).
the use of zlib
compression adds to the difficulty.  'Forged' Git object would
simply not validate...
No, zlib doesn't help. The sha1 is computed on the uncompressed data.

-Peff
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help