AS207960 / acme-onion

Other
8 stars 2 forks source link

Options to get CAA without operating a whole Tor client #2

Open aarongable opened 10 months ago

aarongable commented 10 months ago

As discussed in the CA/BForum Validation subcommittee today, let's further investigate the possibility for the CAA information to be acquired without the CA having to operate a whole Tor client.

Two possibilities were mentioned: 1) The CA acquires the hidden service descriptor via plain HTTP from the collection of directory authorities. I believe this requires some understanding of the Tor protocol, in order to collect and verify the consensus from those authorities, but no need to operate a fully-fledged Tor client. 2) The applicant supplies their hidden service descriptor to the CA in a POST message.

In both cases, once the CA has the hidden service descriptor, it then only needs to be able to derive the blinded key to decrypt the first layer hidden service descriptor, use its own ephemeral client key to decrypt the second layer hidden service descriptor, and then parse the CAA information contained there.

The first possibility is certainly easier for existing Tor services; they just keep doing what they're doing. The second possibility is easier for ACME Servers, as they can get by with a lesser understanding of the Tor directory authorities and their consensus.

People also proposed a number of variants for (2):

a) The hidden service descriptor can be supplied in the "please check now" POST message to the challenge object (the same message as onion-csr-01's CSR).

b) Multiple hidden service descriptors (one for each identifier in the order) can be supplied in the POST message to the finalize endpoint (the same message as the default ACME CSR)

c) Like (a), but the hidden service descriptor(s) is/are contained directly in the CSR itself, rather than a separate field in the challenge request

d) Like (b), but the hidden service descriptor(s) is/are contained directly in the CSR itself, rather than a separate field in the finalize request

e) Like (c), but the information is just the CAA records, not the full hidden service descriptor

Clearly, all of the above have some issues. I'm sure that possibility (1) also has some interesting variants, and some interesting issues, but I'm much less familiar with it. I'd like to learn more about (1), and see which of the variants of (2) seems to be the least-bad.

TheEnbyperor commented 9 months ago

After some discussion with the Tor project I've decided to include something between (e) and (b) in the draft, but not preclude a CA from getting CAA records from the hidden service descriptor if it so desires.

This is specified in the new section 6.4. I'll submit this as an actual I-D before the next IETF once I've tested it and worked out whatever kinks arise.