Russ Allbery <rra@debian.org> writes:
Simon Josefsson <simon@josefsson.org> writes:
Sean Whitton <spwhitton@spwhitton.name> writes:
We did some analysis on the SHA1 vulnerabilities and determined that
they did not meaningfully affect dgit & tag2upload's design.
Can you share that analysis? As far as I understand, it is possible for >>> a malicious actor to create a git repository with the same commit id as
HEAD, with different historic commits and tree content. I thought a
signed tag is merely a signed reference to a particular commit id. If
that commit id is a SHA1 reference, that opens up for ambiguity given
recent (well, 2019) results on SHA1. Of course, I may be wrong in any
of the chain, so would appreciate explanation of how this doesn't work.
I believe you're talking about two different things. I think Sean is
talking about preimage resistance, which assumes that the known-good
repository is trusted, and I believe Simon is talking about manufactured
collisions where the attacker controls both the good and the bad
repository.
Right. I think the latter describes the xz scenario: someone could have pushed a maliciously crafted commit with a SHA1 collision commit id, so
there are two different git repositories with that commit id, and a
signed git tag on that commit id authenticates both trees, opening up
for uncertainty about what was intended to be used. Unless I'm missing
some detail of how git signed tag verification works that would catch
this.
Git can be configured with the USE_SHA1DC build time configurationFrom https://shattered.io/
variable to use SHA-1 implementation from shattered.io that detects
attempted collisions
Is Hardened SHA-1 vulnerable? No, SHA-1 hardened with
counter-cryptanalysis (see ‘how do I detect the attack’) will detect cryptanalytic collision attacks.
Nope. If it has the same SHA1, it means that when we receive the
object from the other end, we will _not_ overwrite the object we
already have. […] if we ever see a collision, the "earlier" object
in any particular repository will always end up overriding
But pulling a successful collision attack is not a trivial task. For instance, the xz attacker did not have all that was required to carry
it out (for example they had no direct access to the git
servers... yet).
Gioele Barabucci <gioele@svario.it> writes:
But pulling a successful collision attack is not a trivial task. For instance, the xz attacker did not have all that was required to carry
it out (for example they had no direct access to the git
servers... yet).
Is that necessary? It seems that if you have push access, you can push
a colliding commit. Does GitLab on Salsa verify (and reject?) colliding commit ids a'la SHA1-CD? Would the tag2upload git server do that?
Sysop: | Keyop |
---|---|
Location: | Huddersfield, West Yorkshire, UK |
Users: | 546 |
Nodes: | 16 (0 / 16) |
Uptime: | 164:50:59 |
Calls: | 10,385 |
Calls today: | 2 |
Files: | 14,057 |
Messages: | 6,416,518 |