Some CA use the following protocol for certificates:

- A form ask for a CSR, your contact details (ex. YourName
contact@yourdomain ) and the contact details of the person that can
validate the website ownership (ex. admin@yourdomain), the email
constrained by (admin|administrator|hostmaster|webmaster|postmaster)@yourdomain
or the WHOIS contact infos.

- An email is sent to admin@yourdomain (for example) with the code to
validate the certificate:

> YourName contact@yourdomain asked a certificate
> Please use the following code [secret to validate the certificate ] to 
> validate the request

- Once the code is submitted (click on a link, or a file to create, a
DNS entry to add, ...) an email is sent to contact@yourdomain (for
example) with the certificate.

I was wondering your thoughts about the following attack scenarios
against bigcorp.tld :

BadGuy create a CSR and fill the form with these informations:

- His CSR
- LegitEmployee [email protected] as contact detail
- [email protected] as validator detail
- (optionally, if bigcorp is lax with email security) sent an email to
[email protected] with the sender spoofed as
[email protected] explaining the need of a certificate

What happends next:
[email protected] received the email from the CA:
> LegitEmployee [email protected] asked a certificate
> Please use the following code [secret to validate the certificate ] to 
> validate the request

The email is legit, what the email imply is "LegitEmployee
[email protected] did the action", but the reality is
"someone claiming to be LegitEmployee [email protected] did
the action", the CA never have validated these contact informations.

If the use behind [email protected] falls in the trap, the certificate
is sent to [email protected] but could also be submitted to
Certificate Transparency logs. BadGuy then has just to download it
from a CT log.

legit_employee@yourdomain could contact [email protected] to warn him,
but if the certificate is created it's too late, as revocation is
badly broken.

Example of two real wording from two different CA:

First one:
> This order was placed by XXX whose phone number is XXX and whose email 
> address is XXX

Second one:
> Applicant Information:
> Name: XXX
> Email: XXX
> Phone: XXX

Note: these tests were done with "Free trial certificates" valid for
less than 3 months.

Is it a valid/plausible attack scenario?

What could be improved ?

- The wording of the email for the CA, to emphasis that the sender
were NOT verified
- Authenticate the sender as well

In the long term:

- defined a new CAA flag "must-staple" that require that all generated
certificate must have the must-staple extension
_______________________________________________
dev-security-policy mailing list
[email protected]
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to