Wayne and Gerv,

I’ll try to answer both of your questions here.

From: Wayne Thayer [mailto:wtha...@mozilla.com]
Sent: Friday, January 12, 2018 11:03 AM
To: Doug Beattie <doug.beat...@globalsign.com>
Cc: r...@sleevi.com; mozilla-dev-security-pol...@lists.mozilla.org
Subject: Re: Possible Issue with Domain Validation Method 9 in a shared hosting 
environment

Doug,

I have some questions:

c.        The hosting company must allow you to manually create and upload a 
CSR for a site you don’t own
Did you mean to say 'certificate' here instead of 'CSR'?
Yes, I meant to say certificate.


d.       The user must be able to trick the hosting provider to enable SNI for 
this domain and link it to the certificate they uploaded
Is 'trick' the right term here? Isn't this just a default configuration for 
vulnerable hosting providers?

From Gerv: Doug: what do you see as the exact differences between your setup 
and the TLS-SNI-01 configuration? It seems to me that both are vulnerable in 
the same circumstances (i.e., hosting provider has many users hosted on the 
same IP address, and users have the ability to upload certificates for 
arbitrary names without proving domain control).

Normally a web hosting provider should not let you set SNI for a domain someone 
else is using, especially on that IP address.  I think this is where method 9 
deviates from method 10.

For method 10, you set up SNI on your server and add the acme.invalid string 
associated with your request/cert.  Since nobody owns that invalid domain, the 
provider probably doesn’t care that you set up that SNI name and are using a 
certificate for that fqdn on their shared IP address.

For method 10 we look explicitly for the FQDN in the cert and there is no 
special SNI reconfiguration required (the site is there before, during and 
after the validation and issuance).  Do hosting providers allow you to set SNI 
for domains you don’t own on a shared IP addresses?  That sounds bad, but I 
defer to the experts here.  Method 9 does not require that.

Also, the ACME client actively support the process of allowing this random 
acme.invalid value to be tied to the real FQDN and looks for requests based on 
that SNI name.  All of the OneClick plugins (which btw, support similar 
features like client like key generation, cert installation and apache 
configuration), require that the FQDN being validated match the value in the 
certificate and the SNI server name.  Validation will fail when the SNI does 
not match what is expected.  The vast majority of OneClick endpoints are not 
vulnerable (yes, bad guys can modify the plugins and subvert the security we 
built in).  Yes, there is a vulnerability, but I think it’s a smaller scale 
than what’s in TLS-SNI-01.


While the vulnerabilities and risks are different between ACME TLS-SNI-01 and 
OneClick,

Can you explain this statement? My impression is that the same vulnerability 
affects both methods.
Listed above.


we’d like to propose a risk mitigation approach similar to Let’s Encrypt with 
the use of a whitelist.  We’ll verify that certain providers have secure 
practices in place to prevent users from requesting certificates outside of 
their permitted domains and then whitelist them.
Let's Encrypt  has stated that this is a short- to medium-term mitigation. Is 
your plan to continue to use this method indefinitely? Or are you ultimately 
planning to fix or deprecate the method?

If we’re required to deprecate this because of similar security concerns, we 
can do that.

If this is acceptable, we’d like to resume issuance today if possible.
If my understanding of the 3.2.2.4.9 vulnerability being essentially the same 
as the 3.2.2.4.10 vulnerability, then this seems reasonable to me, at least in 
the short term.

Thanks Wayne.
Wayne
_______________________________________________
dev-security-policy mailing list
dev-security-policy@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-security-policy

Reply via email to