Skip to main content

Automated Certificate Management Environment (ACME) Extensions for ".onion" Special-Use Domain Names
draft-ietf-acme-onion-07

Yes

Deb Cooley

No Objection

Gunter Van de Velde
Jim Guichard
Mahesh Jethanandani
(Erik Kline)
(John Scudder)

Note: This ballot was opened for revision 05 and is now closed.

Deb Cooley
Yes
Éric Vyncke
(was Discuss) No Objection
Comment (2025-01-15) Sent
Thanks for addressing the my DISCUSS point and the COMMENTs points kept below for archiving.

The original ballot was https://mailarchive.ietf.org/arch/msg/iesg/Yqgi7FDSiIra2cAhuFvJqAgtPas/

## COMMENTS (non-blocking)

### Section 1

s/These use the ".onion"/These services use the ".onion"/ (I had to re-read the whole sentence 3 times to understand it)

### Sections 3.1.2 and 3.1.3

As 3.1.1 uses 'MUST NOT', suggest to s/can be used/MAY be used/

### Section 3.2

What is the basis for selecting 30 days? I would assume that the ACME challenge/response is done within minutes if not seconds. Or is this challenge/response assumed to be executed multiple times ?

Only supporting Ed25519 seems to lack agility or am I missing something ?

It is also unclear to me whether authKey is the client public key (probably) or the server public key. Please add clarifying text. Some explanations could be given on when to use this field.

### Section 4

Is authKey the same field as in section 3.2 ? This would explain this field role but is confusing to the reader. Suggest adding something like "this field is specified in section 4' when introducing this field in section 3.2.

### Section 7.1

To avoid any ambiguity, please add a reference to the registry by its URI https://www.iana.org/assignments/acme/acme.xhtml#acme-validation-methods

The legend of table 1 should probably use singular and not plural.
Gunter Van de Velde
No Objection
Jim Guichard
No Objection
Mahesh Jethanandani
No Objection
Roman Danyliw
No Objection
Comment (2025-01-07 for -05) Sent
Thank you to Dale R. Worley for the GENART review.

** Per the normative Tor reference:
   [tor-spec] The Tor Project, "Tor Specifications",
              <https://spec.torproject.org/print.html>.

Is there any versioning to the protocol or timestamp that can be provided for this bare URL

** Section 3.2.  Consider providing a reference to RFC2986 for PKCS#10.

** Section 4.
    instead the ACME server MUST attempt to
   calculate its CLIENT-ID as per Part "Client Behaviour" of [tor-spec].

The section name in [tor-spec] is “Client Behavior” – “American English” spelling.

** Section 3.2.  What is the basis for the nonce needing to contain at least 64- bits of entropy

** Section 8.2.  Editorial.
    The reasons the author wishes to pursue this path in
   the first place are detailed in Appendix A.

Should this read s/The reasons the author wishes to pursue/The reasons the WG pursued/ -- this is a consensus document.

** Section 8.5, 8.9, 8.9.1

-- Section 8.5   “A site operator SHOULD consider the privacy implications of redirecting to a non-".onion" site”

-- Section 8.9 “Hidden Service  operators SHOULD consider the privacy implications of this before requesting WebPKI certificates.”

-- Section 8.9.1. “… for internal or non-public services, operators SHOULD consider using
   self-signed or privately-trusted certificates that aren't logged to certificate transparency.”

What does it mean to “SHOULD consider …” a topic?  This is an optional adherence (“SHOULD”) to a non-binding review (“consider”).

** Section 8.9 
   ACME client developers SHOULD warn
   users about the risks of CT logged certificates for hidden services.

How would this warning be accomplished?

** Section 8.9.2
   When an ACME client is registering to an ACME server it SHOULD
   provide minimal or obfuscated subscriber details to the CA such as a
   pseudonymous email address, if at all possible.

What does “SHOULD … if at all possible” mean?
Orie Steele Former IESG member
Yes
Yes (2025-01-07 for -05) Sent
# Orie Steele, ART AD, comments for draft-ietf-acme-onion-05 
CC @OR13

* line numbers:
  - https://author-tools.ietf.org/api/idnits?url=https://www.ietf.org/archive/id/draft-ietf-acme-onion-05.txt&submitcheck=True

* comment syntax:
  - https://github.com/mnot/ietf-comments/blob/main/format.md

* "Handling Ballot Positions":
  - https://ietf.org/about/groups/iesg/statements/handling-ballot-positions/

## Comments

### Double encoding

```
270	   csr (required, string)  The CSR in the base64url-encoded version of
271	      the DER format.  (Note: Because this field uses base64url, and
272	      does not include headers, it is different from PEM.)
```

Its a shame there is double encoding here, but I gather it is to support extensibility.

I'm sure its been considered, but I will state it it anyway, the csr can be transported as the payload without json object encapsulation.

For example:

```
278	   {
279	     "protected": base64url({
280	       "alg": "ES256",
281	       "kid": "https://example.com/acme/acct/evOfKhNU60wg",
282	       "nonce": "UQI1PoRi5OuXzxuX7V7wL0",
283	       "url": "https://example.com/acme/chall/bbc625c5",
           "cty": "application/pkcs10",
284	     }),
285	     "payload": base64url( <<bytes>> ),
288	     "signature": "Q1bURgJoEslbD1c5...3pYdSMLio57mQNN4"
289	   }
```

I see that the extensibility to the payload is later used for "onionCAA" in an example, so feel free to ignore this comment, assuming that parameter is not natural to include in the CSR.

### indeterminate wait

```
341	   In the case the Ed25519 public key is novel to the client it will
342	   have to resign and republish its hidden service descriptor.  It
343	   SHOULD wait some (indeterminate) amount of time for the new
344	   descriptor to propagate the Tor hidden service directory servers,
345	   before proceeding with responding to the challenge.  This should take
346	   no more than a few minutes.  This specification does not set a fixed
```

It is sorta determined below...
Also, if the should is ignored or the window is too short, the check will fail, so this is really a MUST wait for the service to be published to the network, and the timing is simply unknown?


### acmeforonions.org

```
386	   create2-formats 2
387	   single-onion-service
388	   caa 128 issue "test.acmeforonions.org;validationmethods=onion-csr-01"
389	   caa 0 iodef "mailto:security@example.com"
390	   introduction-point AwAGsAk5nSMpAhRqhMHbTFCTSlfhP8f5PqUhe6DatgMgk7kSL3
391	           KHCZUZ3C6tXDeRfM9SyNY0DlgbF8q+QSaGKCs=
392	   ...
```

Very cool site!
It is mentioned in the implementation report, but that will be removed on publication.
Consider an alternative citation for "acmeforonions.org", and although this is a style nit, I prefer to use examples that are not functional, and will therefore age consistently, such as acmeforonions.example.

Consider that "acmeforonions.org" may change ownership or content in the future.


### SHOULD wait?

```
426	   If the hidden service has client authentication enabled then it will
427	   be impossible for the ACME server to decrypt the second layer
428	   descriptor to read the CAA records until the ACME server's public key
429	   has been added to the first layer descriptor.  To this end an ACME
430	   server SHOULD wait until the client responds to an authorization
431	   before checking CAA, and treat this response as indication that their
432	   public key has been added and that the ACME server will be able to
433	   decrypt the second layer descriptor.
```

Is this really a MUST? given the "impossible" comment?

### Alternative channels for requesting certs

```
755	   ACME clients SHOULD connect to ACME servers over the Tor network to
756	   alleviate this, preferring a hidden service endpoint if the CA
757	   provides such a service.
```

The use of SHOULD here, implies there are alternatives which might be better choices, I wonder what those might be.

## Nits

### Framing

```
652	   suitability.  The reasons the author wishes to pursue this path in
653	   the first place are detailed in Appendix A.  It is felt that there is
```

This is a proposed standard from a WG, hopefully the working group is supportive of this path as well : )

This comment also applies to Appendix A.


### MUST consider privacy

```
709	   A site operator SHOULD consider the privacy implications of
710	   redirecting to a non-".onion" site - namely that the ACME server
711	   operator will then be able to learn information about the site
712	   redirected to that they would not if accessed via a ".onion" Special-
713	   Use Domain Name, such as its IP address.  If the site redirected to
```

I'm not sure why making it not a MUST is better guidance.
There are a few other SHOULD consider's in Sec Considerations, which seem like MUSTs to me.

Especially this section:

```
759	   If an ACME client requests a publicly trusted WebPKI certificate it
760	   will expose the existence of the Hidden Service publicly due to its
761	   inclusion in Certificate Transparency logs [RFC9162].  Hidden Service
762	   operators SHOULD consider the privacy implications of this before
763	   requesting WebPKI certificates.  ACME client developers SHOULD warn
764	   users about the risks of CT logged certificates for hidden services.
```

Especially risky for experimental / test / demographic specific sub environments, like high-value.target.....onion.

The next section basically says this, so maybe its a no-op, but I'd prefer stronger warnings than SHOULD on this front.
Erik Kline Former IESG member
No Objection
No Objection (for -05) Not sent

                            
John Scudder Former IESG member
No Objection
No Objection (for -05) Not sent

                            
Murray Kucherawy Former IESG member
No Objection
No Objection (2025-01-08 for -05) Sent
In Section 8.5, what does "SHOULD consider" mean?  I suggest lowercasing the "SHOULD".  This happens again in Sections 8.9 and 8.9.1.

I don't understand what "SHOULD wait some (indeterminate) amount of time" in Section 4 means either.  It seems peculiar to make an unspecified thing formally optional.

The instances of SHOULD and SHOULD NOT in Sections 3.1.2, 3.2, 5, 6.2, and 6.4, seem bare in the sense that I don't know when I might choose to contradict what they say.  If we're giving implementers a choice here, we should leave them with some idea under what conditions they might choose to do the opposite of what it says.
Paul Wouters Former IESG member
No Objection
No Objection (2025-01-06 for -05) Sent
I find the use of "example.com" confusing. Does this mean a valid DNS identifier in the real DNS accessed over the regular internet?
If not, should it not be better to use "example.onion" ? Maybe also using something like "acme-server.example.com" could be a bit clearer?

Maybe explaining (for non tor experts) the relationship between key identifiers and the XXXX.onion site name?

Section 8.2:
The use of "the author wishes" is a left over from when this was an individual document. As this is now a WG document it should be generalized, eg "it is desired" ?
Zaheduzzaman Sarker Former IESG member
No Objection
No Objection (2025-01-07 for -05) Not sent
Thanks for working on this specification.