I do not want your Gemini,
I do not want any AI.
I do not want it in my Chrome,
I do not want it in my home.
Not in my mail,
Even on sale,
Not in my app,
None of this crap.
I do not want it here or there,
I do not want it anywhere!
(with apologies to the estate of Dr. Seuss š³š)
DRAFT Release: Don't share outside mastodon yet. Please comment and review :>
Zoomers: "Hey why these mf so good at command line interfaces"
Millennials: "You wouldn't last an hour in the asylum where they raised me"
DRAFT Release: Don't share outside mastodon yet. Please comment and review :>
@thc I mean the ACME RFC states it already
An active attacker on the validation channel can subvert the ACME
process, by performing normal ACME transactions and providing a
validation response for his own account key.
https://datatracker.ietf.org/doc/html/draft-ietf-acme-acme-10#section-10
Certificates in PKI using X.509 (PKIX) are used for a number of purposes, the most significant of which is the authentication of domain names. Thus, certificate authorities in the Web PKI are trusted to verify that an applicant for a certificate legitimately represents the domain name(s) in the certificate. Today, this verification is done through a collection of ad hoc mechanisms. This document describes a protocol that a certification authority (CA) and an applicant can use to automate the process of verification and certificate issuance. The protocol also provides facilities for other certificate management functions, such as certificate revocation. RFC EDITOR: PLEASE REMOVE THE FOLLOWING PARAGRAPH: The source for this draft is maintained in GitHub. Suggested changes should be submitted as pull requests at https://github.com/ietf-wg-acme/acme [1]. Instructions are on that page as well. Editorial changes can be managed in GitHub, but any substantive change should be discussed on the ACME mailing list (acme@ietf.org).
CAs have to perform one of the methods described in the CA/B Forum Server WG Baseline Requirements under 3.2.2.4. Perhaps with the acceptance of enough CAs and Browsers we can introduce a new method but requiring the previous certificate to get a new one has been a challenge for other protocols based on it like SCEP.
So far we focused on making verification better (you need to compromise all traffic) and results visible (CT). I think ACME challenges are the most (1/2)
@thc @freddy @joern secure of the existing methods. For example people still use phones and fax machines or mail.
Regarding CAA there are options whose support isnāt required (but Letās Encrypt has it) to limit to specific accounts which would then require the account key to issue. And CAA can be applied per subdomain (per server?).
In practice very few people configured them, however, which makes it a small motivation for further work in this area :(
The CAA account limitation is purposefully not specific to ACME and CAs are using it with account IDs of their own systems for non-ACME issuance too.
A CAA record that only permits Let's Encrypt (which uses this) and ties issuance to one account should never allow anyone to issue without access to this account and have it not be a misissuance. Same with a manually-issued DigiCert certificate and a non-ACME account in the CAA record.
I think if your CA supports it, it's ok
Correct, there are 3 things here to note:
1) Downgrade attacks. I don't *have* to use the new super-secure challenge, I can always use HTTP-01 if I am an attacker with MITM access.
2) The CAA record is still required for protection as today all CAs are trusted equally. Without it, any CA with broken processes can fall back to phone / fax / mail / e-mail / ... and since there's a very long tail of quality, it'll work.
3) Most domains by count have DNS + WWW on the same IP
Exactly, and that's the spirit. Try to protect as many properties or users as you can, by default, without necessarily involving operators that may not know about the existence of all these things or have the time to configure them.
This is why I think all these plaintext challenges have been successful. They were not nihilistic and 100%-secure-or-nothing, but worked good enough in reality and beat the alternative.
That's why MPDV reduces risk by moving work to the CA too
Per bit/sec or req/sec this is true. But for domains, I don't think so. All of the cPanel / Plesk shared hosting instances have 100-5'000 domains in a single Linux box with bind/PowerDNS & nginx/apache and that's it. All of these old school PHP apps, Wordpress, Drupal, etc. that do it for 1-5⬠/ mo.
By default these panels configure everything in a single machine, including MySQL and e-mail, and by domain count it's the most common case. Full service colocation :(
@thc Question, just questions.
1. Which hoster in there right mind allows a customer L2 ethernet access shared with others? Fixing that is however easy: Set in DNS a CAA issue record "letsencrypt.org;validationmethods=dns-01" and enable DNSSEC: voila, no longer interceptable.
2. No actual information why the author came to this conclusion.
3. Come to dev-security-policy@mozilla.org.
@waldi I would say, about 50% of all hosts I gain access to. Most big players (AWS, OVH, ..) dont allow it however. Reached almost 100% for self-hosted or on-prem servers.
1. CAA, thank you for your feedback on this. I made it more clear further down why CAA is not the full solution (but needs to be enforced/checked by the browser or so to encourage admins to use CAA. Almost nobody of the S&p500 uses CAA tags....that's alarming.
2. Uhh, which part?
3. I so wish, but time....
Keep leaving dangling DNS records pointing towards DO/Linode? Worried about potential BGP hijacking? Concerned about running a russian Jabber and the possibility of law enforcement interference? Well, we've got a solution for you! Introducing: ACME-CAA (#RFC8657) š If you're only using Let's Encrypt as CA and Caddy's automatic cert management, you can easily protect against these scenarios. I've written a small guide here: https://sĆøb.org/ACME-CAA/
@thc What I don't get: In section 3 you write "No, we wont fix this with CAA tags in the DNS record.", then go on to present two ideas how to fix it with CAA. Am I misreading this?
Also, notable that your idea three is already implemented for Cloudflare customers (even for CF's own cert issuing process) and LE is working on making renewal more invisible by discontinuing renewal reminders. That way, people will know even less when to expect a new LE certificate for their domain to be issued.
@thc I'm not sure that the CA/B is going to condone re-implementing visible indicators for specific certificate types or features. It felt to me that after the whole "EV green bar" thing, they're kinda through with that idea.
It's a delicate balance between security and usability. Although I wholly support your point that ACME HTTP-01 can be MITMed, I'm not sure if additional technical complexity would be beneficial to overall security. Just my two cents...
@thc
Yeah, it doesn't say all certs, but there are statements that heavily imply all certs issued by let's encrypt.
> LEās achilles heel is that it uses a HTTP/cleartext request to the targetās web server (port 80) to authorise the issuance of a new TLS Certificate (ACME).
I would add something like "most users by default use".
Also, dns-01 is part of acme.
It's good for articles like this to also mention mitigations and switching to dns-01 is one (only? Since alpn is also vulnerable) way.
Since its inception, Letās Encrypt has been sending expiration notification emails to subscribers that have provided an email address to us. We will be ending this service on June 4, 2025. The decision to end this service is the result of the following factors: Over the past 10 years more and more of our subscribers have been able to put reliable automation into place for certificate renewal. Providing expiration notification emails means that we have to retain millions of email addresses connected to issuance records.