<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <p>Maybe not, unlike frozen objects (certificates, etc), trees are
      supposed to extend</p>
    <p>Then you can perform progressive hash operations on the objects,
      ie instead of hashing the intermediate hash of the objects you do
      it continuously (ie instead of hashing the hash of hash file a +
      hash file b + hash file c, wait for file d and then do the same,
      instead hash(file a + file b + file c), when d comes compute the
      hash of (file a + file b + file c + file d), which implies each
      time to keep the intermediary hash state because you are not going
      to recompute everything from the beginning)</p>
    <p>I have not worked on this since some time, so that's just
      thoughts, but maybe it can render things much more difficult than
      computing two files until the same hash is found<br>
    </p>
    <p>The only living example I know implementing this is the Tor
      protocol, fact apparently unknown, this is probably why nobody
      cares and nobody is willing to take it into account (please follow
      bwd/fwd [1] and see [2]), this is not existing in any crypto
      implementations, unless you hack into it, and this applies to
      progressive encryption too<br>
    </p>
    <p>[1] <a class="moz-txt-link-freetext"
href="https://lists.w3.org/Archives/Public/public-webcrypto-comments/2013Feb/0018.html">https://lists.w3.org/Archives/Public/public-webcrypto-comments/2013Feb/0018.html</a>
    </p>
    <pre wrap="">[2] <a class="moz-txt-link-freetext" href="https://github.com/whatwg/streams/issues/33#issuecomment-28554151">https://github.com/whatwg/streams/issues/33#issuecomment-28554151</a></pre>
    <br>
    <div class="moz-cite-prefix">Le 23/02/2017 à 22:28, Peter Todd via
      bitcoin-dev a écrit :<br>
    </div>
    <blockquote cite="mid:20170223212802.GA7608@savin.petertodd.org"
      type="cite">
      <pre wrap="">On Thu, Feb 23, 2017 at 01:14:09PM -0500, Peter Todd via bitcoin-dev wrote:
</pre>
      <blockquote type="cite">
        <pre wrap="">Worth noting: the impact of the SHA1 collison attack on Git is *not* limited
only to maintainers making maliciously colliding Git commits, but also
third-party's submitting pull-reqs containing commits, trees, and especially
files for which collisions have been found. This is likely to be exploitable in
practice with binary files, as reviewers aren't going to necessarily notice
garbage at the end of a file needed for the attack; if the attack can be
extended to constricted character sets like unicode or ASCII, we're in trouble
in general.

Concretely, I could prepare a pair of files with the same SHA1 hash, taking
into account the header that Git prepends when hashing files. I'd then submit
that pull-req to a project with the "clean" version of that file. Once the
maintainer merges my pull-req, possibly PGP signing the git commit, I then take
that signature and distribute the same repo, but with the "clean" version
replaced by the malicious version of the file.
</pre>
      </blockquote>
      <pre wrap="">
Thinking about this a bit more, the most concerning avenue of attack is likely
to be tree objects, as I'll bet you you can construct tree objs with garbage at
the end that many review tools don't pick up on. :(

</pre>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
bitcoin-dev mailing list
<a class="moz-txt-link-abbreviated" href="mailto:bitcoin-dev@lists.linuxfoundation.org">bitcoin-dev@lists.linuxfoundation.org</a>
<a class="moz-txt-link-freetext" href="https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev">https://lists.linuxfoundation.org/mailman/listinfo/bitcoin-dev</a>
</pre>
    </blockquote>
    <br>
    <pre class="moz-signature" cols="72">-- 
Zcash wallets made simple: <a class="moz-txt-link-freetext" href="https://github.com/Ayms/zcash-wallets">https://github.com/Ayms/zcash-wallets</a>
Bitcoin wallets made simple: <a class="moz-txt-link-freetext" href="https://github.com/Ayms/bitcoin-wallets">https://github.com/Ayms/bitcoin-wallets</a>
Get the torrent dynamic blocklist: <a class="moz-txt-link-freetext" href="http://peersm.com/getblocklist">http://peersm.com/getblocklist</a>
Check the 10 M passwords list: <a class="moz-txt-link-freetext" href="http://peersm.com/findmyass">http://peersm.com/findmyass</a>
Anti-spies and private torrents, dynamic blocklist: <a class="moz-txt-link-freetext" href="http://torrent-live.org">http://torrent-live.org</a>
Peersm : <a class="moz-txt-link-freetext" href="http://www.peersm.com">http://www.peersm.com</a>
torrent-live: <a class="moz-txt-link-freetext" href="https://github.com/Ayms/torrent-live">https://github.com/Ayms/torrent-live</a>
node-Tor : <a class="moz-txt-link-freetext" href="https://www.github.com/Ayms/node-Tor">https://www.github.com/Ayms/node-Tor</a>
GitHub : <a class="moz-txt-link-freetext" href="https://www.github.com/Ayms">https://www.github.com/Ayms</a></pre>
  </body>
</html>