-
Notifications
You must be signed in to change notification settings - Fork 7
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Use leaf of _acme-challenge #13
Comments
Hello and thank you for your suggestion! Although ACME is not limited to Web PKI CAs ("publicly trusted"), we would like to make this challenge compatible with its current rules. In Section 3.2.2.4.7 of the current version of the CA/B Forum Baseline Requirements (1.8.6), a CA can only accept Random Values (the From my interpretation, validating It is true that the Baseline Requirements can be amended, however we believe that our current design requires no changes, and can therefore be easier to adopt. Moreover, introducing the ability to have an arbitrary amount of prefixed labels in the validated domain can introduce security risks. Indeed, this current proposal requires a new IANA registration, however we believe that the tradeoffs made are reasonable and overall better support |
I was not aware of that rule, though a careful reading of the definition of "Authorization Domain Name" will show that it allows multiple labels.
I don't think this would ever work without the CA/B Forum's approval, regardless of technicalities. I think it is best to focus on what actually makes the most sense from a technical standpoint, and I feel that means using the tree structure of DNS labels for their intended purpose. |
I don't know what you mean by this. This would require an exact quantity of prefixed labels (two). |
Thank you for your comments! The current text, as is, is compatible with the Baseline Requirements, which do not specify an exact label, but any value that begins with an underscore. In fact, the existing As the proposed If there is something that I am missing in the text, I am happy to have a look. This is my personal understanding, and it may be wrong. From a quick search in the document, Indeed, Section 3.2.2.4.7 mentions that the record can be in an Authorization Domain, whose definition you quote above. This is better clarified in the Note that follows. My understanding is that if the FQDN (the domain that will be included in the certificate) is If a CA wanted to solve a challenge under Do you agree with the interpretation above? I'm happy to hear any thoughts! Finally, for your last comment, one could add a " When we were designing This doesn't mean that this "feature" has to stay, however I believe there is a cost in losing it, and the gains from doing so would need to outweigh that cost for it to be a good decision / tradeoff. Thanks, |
An Authorization Domain Name may be distinct from the domain name it is authorizing, as evidenced by the start of its definition.
At no point do the Baseline Requirements constrain what the Authorization Domain Name may be. If this standard states that the Authorization Domain Name of the FQDN <www.example.org> is the FQDN <_ujmmovf2vn55tgye._acme-challenge.www.example.org>, that would be allowed. Because of the ability to prune an arbitrary number of labels, that would also allow CAA records to be used as normal. Even if that wasn't the case, this contravenes the intent of underscored and globally scoped domain names to satisfy requirements that are meant to be revised and expanded upon. IANA has never approved any reservation like what the current design proposes: the sole assignment like it (ta-*) was grandfathered in as part of RFC 8552. The intent of the RFC is that each reservation be reused for nodes under it. This is the "scope" that the registry refers to. |
Thanks for your comment! I think that since this is turning out to be a large conversation, it would be perhaps better to have it in the mailing list, so everyone can see it and participate. This document is part of the ACME Working Group of IETF. The Baseline Requirements are published by the CA/B Forum. Therefore unfortunately we cannot redefine terms or change the rules of the other document. Each document may refer to the other (the BRs mention RFC 8555), but there's no "jurisdiction" that a document has to change the other. They were created by separate entities for separate reasons. Any change in the BRs would require someone to follow the CA/B Forum process for achieving that. And of course, there's no guarantee of success: if a change is perceived as weakening the security of the Web PKI, for example, it would not be accepted. If we require a change of the BRs, especially one that allows for broader possibilities of domain validation, we risk it failing, and rendering this proposal less useful. A lot of parties have so far expressed a need for this to be used in the Web PKI, and we'd therefore like to make them compatible. If we break BR compatibility then we risk making this only usable in private PKIs. As far as the IANA registry is concerned, I don't see why this can't be the second reservation with a wildcard. It is up to the experts of the registry after all, and there may be valid reasons. If the registry can only be used for different types of records, then perhaps this use doesn't have to be registered at all? I am not sure, and I can't comment on this part, so perhaps a conversation in the mailing list can shed more light. Antonis |
This is incorrect. The Authorization Domain Name is defined as the FQDN used to obtain authorization, which sounds like a wide-open definition, but there are restrictions on what FQDNs can be used to obtain authorization, and therefore there are restrictions on what FQDNs can be Authorization Domain Names (all following quotes from the definition of Authorization Domain Name in Section 1.6.1 of the BRs):
i.e. the Authorization Domain Name may be the FQDN to be included in the Certificate
i.e. you can convert the Certificate FQDN into an Authorization Domain Name by pruning labels from left to right. In other words, you cannot go the other direction: you cannot convert an Authorization Domain Name into a Certificate FQDN by trimming labels from left to right. Therefore, if the TXT Record is |
No disagreement with your definitional interpretations @aarongable. Considering the relevant text of the Baseline Requirements §3.2.2.4.7 DNS Change
In particular, the proposed validation label
matches the BR §3.2.2.4.7 requirement
as it is prefixed with "a Domain Label that begins with an underscore character". The proposed validation label format seems to align with the criteria for DNS-based validation. |
I think he means "_something._acme-challenge" prefixes two domain labels {"_something", "_acme-challenge"} , not one |
Yes, @orangepizza is correct. The issue isn't that So assume that example.com itself is the Authorization Domain Name. Then BRs only allow the Authorization Domain Name to be prefixed by a domain label, not two, so The authors of this draft are well aware of this issue and, last I heard, intend to propose a change to the baseline requirements to allow this double-prefixing. |
Great! In that case, is LE comfortable proceeding with this draft version? |
I think it is best that whatever is implemented (both in Pebble and in Boulder) be whatever is represented by the latest official draft at https://datatracker.ietf.org/doc/draft-ietf-acme-dns-account-challenge/. For better or worse, that's currently the single-prefix |
We're currently working on making those changes, and I hope to have them ready by the EoW. Let's wait on that before we proceed further here! Please note, that we ware aware the changes we're working on will break compatibility with the BRs. This is on purpose as the IETF process shouldn't necessarily be bogged down by the BR & CAB Forum process. Alongside this, we will be looking into making the necessary changes in the BRs as well. |
@aaomidi I represent Fastly at the CAB Forum and am extremely eager to begin using dns-account-01 because it solves a significant barrier to adopting ACME. Would it be okay for me to open discussions on this with the Validation Subcommittee this week, understanding that the draft will be updated very soon? I am happy to volunteer to shepherd a ballot through the CAB Forum. |
if a CAB ballot is made, would it better add a new challenge method pointing this draft or amend 3.2.2.4.7 to allow this kind of multi label structure? |
@orangepizza I do think it is probably safer to create a new specific method, but I also think that the CABF would strongly prefer to point to an RFC, so going that route could really block the use of this mechanism. My goal is to find a way to make this usable prior to RFC publication. |
old version of CAB TLS BR before 2.x (sc62) used https://tools.ietf.org/html/draft-ietf-acme-ip-04#section-4 as pointer to acme challenges for IP addresses, so I think it's better to make a specific method. (possibly they'll make _pki-validation subdomain version too? |
BTW because I didn't enter those discussion until few days ago: what was the problem of old single label challenge subdomains? |
Which ones? |
Currently in doc _hash_acme-challenge.example.cpm |
I'll try to just re-iterate this if it comes up in the mailing list again: There were a couple of things going on at the same time that led us to change course a bit.
|
_acme-challenge is already reserved for ACME, and that extends to every TXT record under that node. I see no reason not to take advantage with leaf nodes, like so:
This approach avoids the need for a new IANA registration, and has the additional benefit of making it easier to delegate authority for all ACME records as another zone.
The text was updated successfully, but these errors were encountered: