Ideas for ra_serf pristine-downloading-optimisation to overcome SHA1 collisions
From: Johan Corveleyn <jcorvel_at_gmail.com>
Date: Wed, 10 May 2017 01:53:19 +0200
Not super-relevant in the short term (since it seems we are going in
Summarizing the discussion here on dev@ so the ideas don't get lost ...
[[[
<jcorvel> stsp: yes, but I wonder how that could be done. If the
<stsp> jcorvel, well, if the server had some view on the contents of
<danielsh> Perhaps a MAC could help here?
<stsp> or even small "do you have file_at_N" - "yes" / "no" responses,
<danielsh> I was thinking, instead of using sha1, to use a MAC
<danielsh> a MAC is basically a keyed hash
<danielsh> The client and server could dynamically agree on a key,
<danielsh> ("uploadee" being the client in a checkout operation, the
<jcorvel> stsp: file_at_N as a "pristine-identifier" won't cut it I think
<stsp> yes the question is then which file_at_N do you have? :)
<danielsh> I was thinking the MAC's key could serve as salt to prevent
<stsp> but i agree that mapping paths to content is hard in this case
<jcorvel> stsp: ah ok
<stsp> if the server knows that client has foo_at_N and wants to send
<danielsh> either "part of the same node" (= share ancestry) or "same
<danielsh> maybe the server could, when it's about to send foo_at_N,
<stsp> or actually same content (based on the rep-cache, which is now safe)
<danielsh> The server should have this information basically for free,
<stsp> oh yes we don't store SHA1-colliding content in the rep-cache yet
<stsp> that would need to be done as well
<stsp> anyway, it's just an idea
<jcorvel> it could be a long list of names the server needs to send.
<danielsh> jcorvel, the reporter tells the server what the client has;
<jcorvel> hm, okay, I guess
<jcorvel> I'm thinking maybe there is a way to buy us some time to
<jcorvel> for instance by using the sha1 + md5 + whatever else
<danielsh> adding hashes doesn't help; using a longer hash is better
<danielsh> see the .pdf I posted to dev@ / private@
<danielsh> maybe salt, but I fear it's going to be have fixed per
<jcorvel> danielsh: okay, it might not help forever, but I'm trying to
<danielsh> jcorvel, the shattered collision has only one or two blocks
<danielsh> md5 might help for the shattered[12].pdf case but in
-- JohanReceived on 2017-05-10 01:53:49 CEST |
This is an archived mail posted to the Subversion Dev mailing list.
This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.