Certificate for onion v3 address

at April 26 CA/B published TLS baseline requirement 1.8.4, which cleared up about handling onion addresses, and removed wired applicantnonce.
RFC-ish acme onion handling draft : GitHub - orangepizza/acme-onion-doc: docs about standardize handling onion address in acme context
client based on acme-tiny : GitHub - orangepizza/acme-tiny at onion
(shoud update readme.md there though), it use -tor-dir cmdline option to read onion config folder
server based on pebble GitHub - orangepizza/pebble at onion

for now I'd say this rfc draft is not LE specific, so some things LE won't do like http-01 and tls-alpn challenge are included in it

not set on concrete part on docs:
should we set how to craft onion challange CSR in it, or we should delegate its construction to CA/B BR?
do you think placeholder identifier type onion-v3 and onion-v3-csr challenge type? can we have better naming for it?
currently token is constructed in same way (as string) and just pasted in CAnonce attribute (which is octetstream byte array type) with ASCII encoding, should we order client to decode token as base64url and put it that way instead of being ASCII?
we can't use different name for old challenges : as allowed method itself is looking at that challenges
currently doc has warning about normal rate-limit won't work on it, but should we recommend some way for rate limit? (like onion addr/account or cert need non-onion name etc)

I probably ask this into more place/ like moz secpolicy and IETF acme task group

P.S. I'm writing this just before sleep :{

5 Likes

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Looks like a draft has been posted: Automated Certificate Management Environment (ACME) Extensions for ".onion" Domain Names

7 Likes

the author of draft made some reference implemetation pair (in rust) https://acmeforonions.org/

and a rust implementation for tor, which LE staff mentioned here that they don't want to bring memory-unsafe daemon to their CA side

4 Likes

Hi, I'm the author of that draft. Feel free to contact me at q@as207960.net with any questions.

There's also a plugin for certbot to support the onion-csr-01 method: certbot-onion.

Finally there's a fork of Tor to implement CAA on GitHub. This goes with the 343-rend-caa proposal to add CAA to mainline Tor.

5 Likes

@TheEnbyperor I noticed HARICA offers an ACME endpoint without EAB at https://acme.harica.gr/directory and as they're able to validate .onion addresses, do you know if they're also able to validate .onion addresses using their ACME API? For regular addresses it fails with a message that the hostname does not match a regex containing harica.gr and some IDN stuff, but that regex doesn't seem to check for .onion addresses.

5 Likes

I've never managed to get HARICA to issue certificates to .onion over ACME. I'd like to talk to them about my draft but can't get a contact there to talk.

4 Likes

The IETF draft has just been approved for publication as an RFC, and will be a formal standard as soon as the RFC Editor assigns it a number. draft-ietf-acme-onion-07 - Automated Certificate Management Environment (ACME) Extensions for ".onion" Special-Use Domain Names

5 Likes

Once RFC is published, what are the next steps for LE to be able to issue these? Does it need a blessing from CA/B Forum? Obviously it has to be implemented in Boulder. Anything else?

1 Like

CA/B forum blessing is already done few years ago, before @TheEnbyperor 's doc is made to implement it in ACME context: not sure LE require client to give CAA info out of band as mentioned before or server will get it from tor network by themselves.

4 Likes

I think Let’s Encrypt is open to supporting .onion domains in theory, but as with everything, it’s a question of where on the priority stack it goes. Not this year for sure, and I can’t speak to further out.

Q’s work on standardizing this in ACME is definitely a big help in that direction, though, so thank you!

7 Likes

@mcpherrinm @TheEnbyperor

Wow! This is all excellent news. It would be good news for my product if this becomes real. I make BrowserBox a web-page embeddable remote browser which can both access the Tor network (using socks proxy on the server) or be served as an onion site (using the Tor control port API). The ability to get recognized issuer TLS certs would be great because:

  1. TLS is necessary for off relay encryption. http://bla.onion will be unencrypted on final hop, breaking the security model of Tor.

  2. The Tor Browser will not recongize mkcert certificates: Currently BrowserBox uses mkcert to create a cert for the .onion v3 address HOWEVER the Tor browser will not even accept the mkcert's CA root file even if installed in the system trust store/ keychain. This lead's to the moderately annoying "Unknown Issuer" SECURITY RISK AHEAD gate before loading the page - which slows down the already slower than normal Tor connection with this additional step.

These "one time exceptions" to accept mkcert TLS certs, also complicate code for creating WebSockets, embedding iframes or using audio (all of which we overcame).

Having legitimate HTTPS I think would be great for the legit users of the TOR network (journalists, activists, cyber researchers, IC/defense/security industry), and for people who use TOR + RBI.

Also Q well done on the RFC draft! This is awesome. I will post to Hacker News now: https://news.ycombinator.com/item?id=43359396

2 Likes