Chain of Fools: An Exploration of Certificate Chain Validation Mishaps
summary
Paper argues poor crypto APIs and bad online advice let implementers accept attacker-supplied intermediates, demonstrating misuse in PI OpenSSL x.509 store code patterns. Analysis of ~24k apps finds ~4% (naive) rising to 7.1% of apps via LibScout using Android SafetyNet, with ~87% still on older libraries. Builds include a Flask server showing the incorrect validation, a Python rogue-CA generator and a mitm proxy add-on that forges JWS attestations — the forgery succeeds against the flawed validation.
AI-written summary · about
chapters (41)
- 0:00Introduction and agenda
- 0:44Research topics
- 1:33The difficulty of validation
- 1:55The developer experience
- 2:51X.509 certificate basics
- 3:05Trust anchors and certificates
- 4:32Validation requirements
- 5:43When developers should validate
- 6:10Real-world use cases
- 6:34Safety Net API overview
- 7:05How safety net works
- 8:23JSON Web Signatures
- 9:26JWS structure and usage
- 10:06Safety Net attestation payload
- 10:54Developer documentation issues
- 11:27X5C header in safety net
- 12:03Cryptographic libraries analysis
- 12:30PyOpenSSL and X509 Store
- 12:46Incorrect validation patterns
- 14:38Why insecure patterns occur
- 16:04Fixing the libraries
- 16:25Correct validation approach
- 17:20Summary of best practices
- 18:26Misuse resistant primitives
- 18:52Safety Net usage analysis
- 20:11Data acquisition
- 21:20Analysis results
- 21:36Limitations of static analysis
- 22:57Advanced library detection
- 23:18Refined analysis results
- 29:53Open source tool release
- 30:03Forging Safety Net data
- 35:20Tooling demonstration
- 35:58Demo analysis
- 36:13Conclusion and final points
- 37:31Security champions
- 37:46Validation alternatives
- 38:09Session wrap-up
- 38:47Q&A session start
- 40:01Library support
- 41:03TLS and Safety Net
related talks
32mA SSLippery Slope: Unraveling the Hidden Dangers of Certificate Misuse
46mSelf-Signed, Why Not! Exploiting Insecure Certificate Validation In iOS And macOS
16mPKI problem: who we actually trust
26mSSL Validation Checking vs. Go(ing) to Fail
30mAndroid FakeID Vulnerability Walkthrough
52mWhere, how, and why is SSL traffic on mobile getting intercepted?
44mCryptography Pitfalls
28mApp Security Essentials
