4 ms·
> As I understand it, the ACME protocol used by services like LetsEncrypt simply proves you control a domain Yes, but note that this is true of all Certificate
by arkadiyt 5y ago
> As I understand it, the ACME protocol used by services like LetsEncrypt simply proves you control a domain
Yes, but note that this is true of all Certificate Authorities. There is nothing special about ACME here.
> it seems like you could just put a TLS public key directly in a domain record, and have browsers read that
Ignoring DoT/DoH, DNS records are sent in plaintext with no integrity checks - anyone on your network path can replace the public key response with one of their choosing, allowing them to MITM your connection. DNSSEC provides integrity of DNS responses, and if it were more widely adopted then people could set their certificates as DNS records - this is precisely what DANE [1] is. But, DNSSEC will never see wide adoption.
[1]: https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Named_Entities https://en.wikipedia.org/wiki/DNS-based_Authentication_of_Na...
- anderspitman 5y agoSo ACME assumes it's harder to trick a LetsEncrypt server than it is to trick a random browser?
- tinus_hn 5y agoACME is a protocol. LetsEncrypt has checks against popular high value domains (you can’t get a LetsEncrypt certificate for Google.com) and they check from multiple locations and they have to match. It really isn’t much different if you use a commercial CA except you have to pay.
- anderspitman 5y ago> ACME is a protocol Yeah I know. Does the protocol not specify that the records must be checked from multiple locations? That would certainly add a lot of protection, but if it's not required...
- tinus_hn 5y agoIf LetsEncrypt does it anyway, what protection is added by it being required by the protocol?
- toast0 5y agoI can fake DNS for all the clients that come onto my network. And I can drop packets to all the popular DoH services too. If your client hosts its own recursive DNS server that does DNSSEC (which is very rare) and the domain has DNSSEC enabled (which is also very rare), then I would be forced to deny service rather than fake DNS. If I were going to trick a LetsEncrypt server, I need to control their network somehow, and that's a lot harder. LetsEncrypt isn't likely to sign up for my transit services at all of their locations.