Letsencrypt Service Disruption
letsencrypt.status.io
letsencrypt.status.io
There is no God, but there are working groups of angels discussing Existence Standards.
There's no "single" one, hence all of the varied efforts (DANE, CT, et c) to reduce this attack surface.
But with CT logs, why do we need CAs at all? After all, an ACME-capable CA cannot verify anything else than that I control the site's DNS record at that particular point in time (from the PoV of wherever the CA's servers are located)
But that kind of validation could just as well be performed by the CT log directly.
It seems to me, the real SPOF are DNS registrars. The authoritarian government (or some disgruntled employee of the registrar) could just force the registrar to hand over control of my DNS record to them, point it to their own server and ask LE to hand them a brand new certificate.
See also: QUANTUMINSERT
A bad ISP still can intercept my DNS queries and point my browser to an MITM server - but it cannot intercept the CA's query and therefore cannot complete the challenge. So they can't obtain the certificate their MITM proxy would need.
DoH goes one step further (in theory) : When enabled, my own DNS queries are proxied to Cloudflare, so my ISP cant even intercept those anymore.
The downside of ACME is just that if someone manages to manipulate the record that is actually stored at the registrar, they get the ability to stamp themselves valid HTTPS certificates for that domain for free. Doesn't even matter which CA the site owner uses, they can alway get a Let's Encrypt cert that will be accepted by all browsers.
No, they contact it via the internet, which is controlled by the national authorities in the countries between the CA and the DNS server (which you are calling the registrar, but isn't always).
It's not a direct connection; there are NSPs in between.
Let's Encrypt sends queries from multiple servers that use different NSPs to make this kind of attack harder. (what they call "multi-perspective validation"[1])
To spoof a challange, an attacker would first have to find out where the servers are located, then compromise all relevant autonomous systems and intercept the reqests from each server.
I admit though, it's still a risk. An attacker can pick an arbitrary CA for spoofing - so even if Let's Encrypt does their homework, maybe some other free CA has a less secure ACME implementation.
[1] https://letsencrypt.org/2018/12/31/looking-forward-to-2019.h...
They're not in the request path, and aren't accurately considered a point of failure. This is how the PKI works, by design.
Even ignoring that, 7 days is a rather short period of time for such a large portion of the web to migrate to another CA if that were to become necessary for whatever reason.
IMO having another free, independently operated ACME CA would be ideal, particularly if it could support having built-in fail-over added to ACME clients as a default setting.
Did you see this comment? https://news.ycombinator.com/item?id=27885851
ZeroSSL is good, but AFAIK its free tier[1] doesn't support everything Let's Encrypt does (like wildcard certs) which makes it difficult to use as a drop-in replacement for many people.
> By using ZeroSSL's ACME feature, you will be able to generate an unlimited amount of 90-day SSL certificates at no charge, also supporting multi-domain certificates and wildcards. Each certificate you create will be stored in your ZeroSSL account.
[1] https://zerossl.com/documentation/acme/
[2] https://community.letsencrypt.org/t/is-ssl-coms-acme-really-...
This is of course aside from the OCSP point that others are noting, which does at least make PKI downtime a little more sketchy.
Anything springs to mind?
If you're using per-user sub-domains on your service, I'd imagine you'd be using wildcard certificates.
There's really no good reason for a site to go down due to PKI. Caddy has proven this.
Given how slow DNS propagation is, rapidfire rewriting of CAA records as you failover to a different CA seems like a recipe for causing errors... which is the last thing you want as you're failing over.
I did a quick google search, and nothing indicated that Caddy will manage CAA records for you, which sounds very sensible to me.
(Context for "Honest Achmed": https://bugzilla.mozilla.org/show_bug.cgi?id=647959)
Based on documentation elsewhere on the site, it seems to clearly include all kinds of ACME certs, even wildcard, but I've never actually used ZeroSSL myself, as far as I can remember.
And even then sometimes the failure wouldn't show up until multiple regions got the config change.
> [Update] We're conducting follow-up maintenance to address power supply issues from our earlier service disruption. All production API services may be down for up to 30 minutes.
[1] https://letsencrypt.status.io/pages/maintenance/55957a99e800...
Good way to make sure all the software is resilient to renewal failures though!
Apache has a new stapling implementation since a few versions that can be enabled with "MDStapling On", I don't think it gets enabled by default yet.
It will even auto-renew your certificate if it gets an OCSP response of "Revoked".
F5 load balancers will cache the response in memory. I have not tested Apache with OCSP stapling/caching recently so I can only assume based on feedback from others here that they have not improved it. I would expect nginx to improve now that they are owned by F5, maybe, eventually.
I am a fan of OCSP stapling/caching for the privacy aspect. No need for browsers to leak to the OCSP end-point what domain you are visiting. There are enough nosy people sniffing our traffic already.
[1] - https://www.keycdn.com/support/ocsp-stapling
[2] - https://blog.cloudflare.com/high-reliability-ocsp-stapling/
(and no, we are not affiliated with Lets Encrypt. It's just a funny coincidence. but who knows what those mystery boxes all in all do?)