SHA-1 Is Dead!
Posted by David Gamey on 23 Feb 2017.
The SHA-1 cryptographic hash function was introduced in 1995. Weaknesses began to be discovered in 2005, and in 2011 NIST deprecated SHA-1. The use of SHA-1 web site certificates has been stopped. And now a practical collision attack against SHA-1 has been demonstrated by researchers who were able to create two different PDF files of the same length that produced an identical SHA-1 hash. The attack while practical is still a bit expensive, but I would expect speed improvements to emerge.
Hash functions like SHA-1 are used for validating the integrity of messages, software updates, and as unique signatures for data. The existence of a practical collision attack casts doubt on these applications.
SHA-1 and PCI Compliance Today
Within the realm of PCI compliance, hash functions are used to render cardholder data unreadable (PCI DSS 3.4) and to validate the integrity of software source libraries and updates (PA-DSS and DSS software development). The use of hashes in PCI to render cardholder data unreadable is already subject to a number of restrictions and caveats to prevent attackers correlating truncated (partial) PAN with hashed.
How does the Shattered attack impact these uses of SHA-1?
- Validating the integrity of a vendor’s software updates – clearly at risk
- Detect changes in source code control systems – unlikely to be at risk as the application is change/error detection and the source is still available
- Rendering cardholder data unreadable – unlikely to be at risk as the hash is not used for validation
- Use of HMAC-SHA-1 in TLS cipher suites is not yet considered at risk
If you are using SHA-1, should you be worried about your compliance? The answer, of course, depends upon how you are using it (see above).
I would expect that the PCI Security Standards Council will make some announcements and issue clarifications as a result of this.
Organizations relying upon SHA-1 that have not yet switched to a more secure hash like SHA-256 (or better SHA-3 standardized by NIST in 2012) should be accelerating this process and developing a strategy to address this. One of the first things you should be reaching out to your software vendors to find out what they are doing about this.
- Announcement of “Shattered Attack” https://security.googleblog.com/2017/02/announcing-first-sha1-collision.html
- “Shattered Attack” website and tools https://shattered.io/
- Articles https://freedom-to-tinker.com/2017/02/23/rip-sha-1/, http://www.databreachtoday.com/sha-1-has-fallen-a-9740, https://www.schneier.com/blog/archives/2017/02/sha-1_collision.html
- Certificate Authority and Browser Forum (CAB) rules on SHA-1 https://cabforum.org/2014/10/16/ballot-118-sha-1-sunset/
- Article on SHA-1 Certificate deprecation https://blog.qualys.com/ssllabs/2014/09/09/sha1-deprecation-what-you-need-to-know
- NIST deprecation of SHA-1 http://csrc.nist.gov/publications/nistpubs/800-131A/sp800-131A.pdf
- Linus Torvalds on why GIT’s use of SHA-1 for change/error detection is safe for now https://www.theregister.co.uk/2017/02/26/git_fscked_by_sha1_collision_not_so_fast_says_linus_torvalds/