Any statements contained in this email are personal to the author and are not necessarily the statements of the company unless specifically stated. AS207960 Cyfyngedig, having a registered office at 13 Pen-y-lan Terrace, Caerdydd, Cymru, CF23 9EU, trading as Glauca Digital, is a company registered in Wales under № 12417574, LEI 875500FXNCJPAPF3PD10. ICO register №: ZA782876. UK VAT №: GB378323867. EU VAT №: EU372013983. Turkish VAT №: 0861333524. South Korean VAT №: 522-80-03080. AS207960 Ewrop OÜ, having a registered office at Lääne-Viru maakond, Tapa vald, Porkuni küla, Lossi tn 1, 46001, trading as Glauca Digital, is a company registered in Estonia under № 16755226. Estonian VAT №: EE102625532. Glauca Digital and the Glauca logo are registered trademarks in the UK, under № UK00003718474 and № UK00003718468, respectively.
Reviewer: Dale Worley
Review result: Ready with Nits
I am the assigned Gen-ART reviewer for this draft. The General Area
Review Team (Gen-ART) reviews all IETF documents being processed
by the IESG for the IETF Chair. Please treat these comments just
like any other last call comments.
For more information, please see the FAQ at
<https://wiki.ietf.org/en/group/gen/GenArtFAQ>.
Document: draft-ietf-acme-onion-04
Reviewer: Dale R. Worley
Review Date: 2024-11-20
IETF LC End Date: 2024-11-26
IESG Telechat date: not known
Summary:
I have not assessed the technical details of how these changes
integrate with the rest of the ACME protocols, not being
well-versed in ACME. (I expect that the WG will do that
adequately.) Similarly, I have not assessed the security
properties of this protocol. (I expect the SecDir review will do
that adequately.) I have assessed the quality of the exposition.
This draft is basically ready for publication, but has nits that
should be fixed before publication.
Nits/editorial comments:
2. Identifier
[...] as defined in Part .onion of [tor-address-spec]. [...]
For consistency, I think you want to say 'Part ".onion" of'.
3.2. New "onion-csr-01" Challenge
type (required, string) The string onion-csr-01
Comparing RFC 8555 sections 8.3 and 8.4 suggests you want:
type (required, string) The string "onion-csr-01".
5. ACME over hidden services
[...] this document suggests at least 30 minutes however it is
entirely up to operator preference.
There are various places in the document which seem to be wanting BCP
14 language. For instance, here it seems it would be clearer to call
out
[...] this document RECOMMENDS at least 30 minutes however it is
entirely up to operator preference.
A number of uses of "can" seem like they should be "MAY".
Actually, RECOMMENDS isn't proper BCP 14; you probably need something
like
[...] it is RECOMMENDED the server allow at least 30 minutes;
however it is entirely up to operator preference.
6. Certification Authority Authorization (CAA)
To this end a new field is added to the second layer hidden service
descriptor Part "Second layer plaintext format" of [tor-rend-spec-v3]
with [...]
There seems to be a word missing between "hidden service descriptor"
and "Part". There seems to be a similar issue with the reference to
tor-rend-spec-v3 in section 6.3.
A hidden service's second layer descriptor using CAA could look
something like the following (linebreaks have been added for
readability only):
create2-formats 2
single-onion-service
caa 128 issue "test.acmeforonions.org;validationmethods=onion-csr-01"
caa 0 iodef "mailto:security@xxxxxxxxxxx"
introduction-point AwAGsAk5nSMpAhRqhMHbTFCTSlfhP8f5PqUhe6DatgMgk7kSL3
KHCZUZ3C6tXDeRfM9SyNY0DlgbF8q+QSaGKCs=
...
Taking this text literally, that means that the "second layer
descriptor" starts
create2-formats 2single-onion-servicecaa 128 issue
"test.acmeforonions.org;validationmethods=onion-csr-01" [...]
but I doubt you meant that. I suspect you mean that the linebreak and
subsequence whitespace at the end of the "introduction-point" line is
to be ignored but the other linebreaks are intended to be part of the
descriptor. To say that requires revising the wording. There are
also a couple of situations like this in section 6.4.2.
6.1. Relevant Resource Record Set
but these do not:
It might be worth adding "a.b.onion" to that list to show that an
intermediate label can't be elided in order to match "a.onion".
6.3. Preventing mis-issuance by unknown CAs
In the case of a hidden service requiring client authentication it is
impossible to read them without the hidden service trusting a ACME
server's public key [...]
In re "it is impossible to read them", it is not clear who is trying
to read what. You probably want to make that clear. Also, "a ACME"
should be "an ACME".
would disclose unwanted information about the hidden
service operator
"unwanted information" is incorrect, really. Probably you mean
"unwantedly disclose information" or perhaps "disclose unwantedly
information". (Check that with the Editor.)
6.4. Alternative in-band presentation of CAA
If an ACME server receives a validly signed CAA record set in the
finalize request it need not check the CAA set in the hidden service
descriptor and can proceed with issuance on the basis of the client
provided CAA record set only. An ACME server MAY ignore the client
provided record set, and is free to always fetch the record set from
the service descriptor.
I think you want some "MAY"s in this paragraph to explicitly call out
the various permissions. Something like
If an ACME server receives a validly signed CAA record set in the
finalize request it MAY proceed with issuance on the basis of the
client provided CAA record set only without without checking the
CAA set in the hidden service. Alternatively, an ACME server MAY
ignore the client provided record set and fetch the record set from
the service descriptor. In any case, the server always MAY fetch
the record set from the service descriptor.
8.2.1. "http-01" Challenge
The CA would follow the procedure set out in Section 8.3 of [RFC8555]
[...]
Under what circumstances "would" the CA follow this procedure? The
remainder of the paragraph suggests that this is in some sort of error
situation, but none of the context is supplied here. (It appears that
the last paragraph of appendix A may be the intended context.)
Sections 8.2.2 and 8.2.3 have similar issues.
8.4. Use of Tor for non ".onion" domains
It seems that this should be 'Use of Tor for non-".onion" domains',
but ask the Editor. There are other instances of this construction
elsewhere.
[...] due to the risk of exit hijacking.
You probably want to explain or provide a reference for "exit
hijacking" as the term doesn't seem to be used in RFCs and Google
doesn't turn up any references other than the acme-onion documents.
8.7. In-band CAA
CAA records are still verified against the same hidden service key.
"still" probably isn't the right word, as there doesn't seem to be a
time-sequence involved. Also, the referent of "the same" is unclear.
Do you mean "there is no difference in the security model between
accepting CAA records directly from the ACME client and fetching them
over Tor; the CAA records are verified using the same hidden service
key in either case"?
8.8. Access of the Tor network
The ACME server MUST make its own connection to the hidden service
via the Tor network, and MUST NOT outsource this, such as by using
Tor2Web.
This should have more detail, since any connection to any part of the
Internet "is outsourced" at some level of the protocol stack. I
suspect that what is meant is that some particular activity is here
described as "making a connection to the hidden service via the Tor
network" and that activity MUST be done within the ACME server; what
that activity is should have its proper technical name given here. I
suspect the needed concept is "the server's endpoint of the XXX layer
connection stack MUST be within the server itself, and not outsourced
to a less-trusted facility".
8.9. Anonymity of the ACME client
ACME clients requesting certificates for ".onion" Special-Use Domain
Names can inadvertently expose the existence of a hidden service on
the host requesting certificates to unintended parties - even when
features such as ECH [I-D.ietf-tls-esni] are utilised, as the IP
addresses of ACME servers are generally well-known, static, and not
used for any other purpose.
Given the following paragraph, I suspect that this applies only when
the request is done not over Tor. Also, moving "to unintended
parties" makes the sentence clearer, so I suggest
ACME clients requesting certificates for ".onion" Special-Use Domain
Names not over the Tor network can inadvertently expose to
unintended parties the existence of a hidden service on
the host requesting certificates [...]
--
Hidden Service
operators SHOULD consider the privacy implications of this before
requesting certificates.
I think you should add to this sentence "before requesting WebPKI
certificates", as there are other certificate requests (like ACME
.onion requests) to which seems not to apply. Then again, perhaps
there are additional types of certificate requests to which this does
apply. Indeed, looking at the abstract of RFC 9162, it talks of TLS
server certificates rather than WebPKI -- are these the same or
different from WebPKI certificates? Clarification is in order.
9.1. Normative References
[tor-rend-spec-v3]
The Tor Project, "Tor Rendezvous Specification - Version
3", <https://spec.torproject.org/rend-spec/index.html>.
[tor-dir-spec-v3]
The Tor Project, "Tor Directory Protocol - Version 3",
<https://spec.torproject.org/dir-spec/index.html>.
Both of these references go not to documents, but to a set of
hyperlinked pages. I much dislike this sort of reference, especially
as a normative reference, because it leaves ill-defined what the
reference *is*. It also requires using the web site's tools to search
the "document", and the actual behavior of those tools is unknown.
And looking for the reference in section 6, "Part "Second layer
plaintext format" of [tor-rend-spec-v3]", I notice that the sidebar
outline of index.html does *not* include an item "Second layer
plaintext format".
Instead, I strongly recommend you give the URL of an actual document.
There clearly is one, as the "print" icon will return a document. In
that document, I can search for, e.g. "Second layer plaintext format",
using my tools.
[END]
-- last-call mailing list -- last-call@xxxxxxxx To unsubscribe send an email to last-call-leave@xxxxxxxx