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.