Overview
This lecture explains the practical cryptographic attack known as SHAttered, which demonstrates real-world collisions in the SHA-1 hash function and its impacts on digital security.
Breaking SHA-1
- SHA-1 is a widely-used cryptographic hash function for digital signatures and file integrity verification.
- The SHAttered attack created two different PDF files with the same SHA-1 hash (collision).
- This vulnerability can exploit digital signatures by making one valid signature apply to multiple documents with different contents.
- Example: Signing a low-rent contract could be abused as a valid signature on a high-rent contract due to the collision.
Real-World Impact & Affected Systems
- Many applications still use SHA-1 despite its official deprecation in 2011.
- Vulnerable systems include digital certificate signatures, email PGP/GPG signatures, software updates, ISO checksums, backup and deduplication systems, and Git repositories.
- SVN is affected in versions before 1.9.6 and 1.8.18 but later versions are immune.
- Modern browsers (Chrome 56+ and Firefox as of Feb 2017) warn users of SHA-1 certificate use.
Defense & Detection
- Use the provided online tool to test files for SHA-1 collision attacks.
- GIT is at risk because it relies on SHA-1 for commit and file identification.
- SHA-1 hardened with counter-cryptanalysis can detect such collision attacks and prevent exploitation.
- Safer cryptographic hash alternatives like SHA-256 or SHA-3 are recommended.
Attack Details
- The SHAttered collision required over 9 quintillion SHA-1 computations (approx. 6,500 CPU years or 110 GPU years).
- The attack is 100,000 times faster than a brute-force birthday attack (which would take 12 million GPU years).
- No evidence exists that this attack has been abused in the wild as of the announcement.
Key Terms & Definitions
- SHA-1 — a cryptographic hash function used for data integrity and authentication.
- Collision — when two different inputs produce the same hash output in a hash function.
- Counter-cryptanalysis — a method to detect and prevent known and unknown cryptanalytic attacks on hash functions.
Action Items / Next Steps
- Stop using SHA-1; migrate to SHA-256 or SHA-3 for security.
- Use the online SHA-1 collision tester for file checking.
- Update SVN to version 1.9.6+ or 1.8.18+ if using older versions.
- Be aware of browser warnings regarding insecure SHA-1 certificates.