SHA-1 has long been considered an insecure hashing algorithm. While there have not been any collisions found yet, there are indications that actual collisions are imminent.
Since 2011, we have known about the hash collision attack by Marc Stevens [0] which brings down the complexity to approximately 2^65.
However, the recent attack by Stevens, Karpman, Peyrin on October 8th, 2015 which allowed them to construct and publish a freestart collision attack on SHA-1’s compression function (termed the “SHAppening”) with only 2^57 evaluations [1] is even more worrysome.
Under these circumstances, PKI CAs are already discussing the sunsetting of SHA1 as a hash function, as it is considered cryptographically insecure. These discussions have led to decisions to stop using SHA-1 in PKI certificates. Specifically [2]
- SHA-1 certificates will no longer be issued after the end of 2015.
- SHA-1 certificates issued earlier will no longer be accepted after the end of 2016.
As the CA discussions indicate, it is not sufficient to pull SHA-1 support from CAs. As MD5 has shown, hash functions will have to be pulled from applications (such as the browser or BIP0070 for bitcoin) for the hashes to be discontinued. Therefore, it is not enough for us to rely on CAs following the deadlines.
As BIP0070 concerns the security of payments, we should discontinue the acceptance or recommendation of SHA-1 as a hash method for our protocol sooner than later.
This patch removes SHA-1 support for X.509 certificates from BIP0070.
[0] https://marc-stevens.nl/research/papers/PhD%20Thesis%20Marc%20Stevens%20-%20Attacks%20on%20Hash%20Functions%20and%20Applications.pdf [1] https://sites.google.com/site/itstheshappening/ [2] https://cabforum.org/pipermail/public/2015-November/006280.html