CAPEC-459
Creating a Rogue Certification Authority Certificate
An adversary exploits a weakness resulting from using a hashing algorithm with weak collision resistance to generate certificate signing requests (CSR) that contain collision blocks in their "to be signed" parts. The adversary submits one CSR to be signed by a trusted certificate authority then uses the signed blob to make a second certificate appear signed by said certificate authority. Due to the hash collision, both certificates, though different, hash to the same value and so the signed blob works just as well in the second certificate. The net effect is that the adversary's second X.509 certificate, which the Certification Authority has never seen, is now signed and validated by that Certification Authority.
Abstraction
Detailed
Typical severity
Very High
Likelihood of attack
Medium
Understand the attack
What is this attack pattern?
Extended description
Execution flow
How does the attack proceed, step by step?
Experiment
Craft Certificates
Send CSR to Certificate Authority
Exploit
Insert Signed Blob into Unsigned Certificate
Requirements
What does the attack require?
Prerequisites
- Certification Authority is using a hash function with insufficient collision resistance to generate the certificate hash to be signed
Skills required
- High: Understanding of how to force a hash collision in X.509 certificates
- High: An attacker must be able to craft two X.509 certificates that produce the same hash value
- Medium: Knowledge needed to set up a certification authority
Resources required
- Knowledge of a certificate authority that uses hashing algorithms with poor collision resistance
- A valid certificate request and a malicious certificate request with identical hash values
Impact
What does a successful attack lead to?
Affected scopes: Access Control, Authentication
Defence
How is it prevented and mitigated?
Real world