-
Notifications
You must be signed in to change notification settings - Fork 57
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
DNS issues from AD review. #628
Comments
ECHConfig is versioned, so nothing here is "forever". The only purpose of
ECH is designed to be easy to integrate for existing applications that use common TLS libraries and work with URIs and URLs. In these systems, the final "." is omitted, leaving the root as an empty string. Treating an empty
"final" here means "rightmost in textual format", i.e. TLD.
The challenge here is that textual IPv4 addresses are valid hostnames, but there is no good reference for the textual representation syntax of an IPv4 address (2660209). This creates a high likelihood that some clients will decide that
To be clear, that is largely unrelated to the
"Failing open" in this way trades reliability risk for privacy risk, in the event of affected misconfigurations. Given the low risk of confusion in these cases, the authors decided to leave this choice to the client. |
@letoams I think this addresses your questions. Any objection to closing these issues? |
I am still uncomfortable with this document basically having its own version of what is a valid DNS name. I would still prefer that it omits these definitions and instead just mention the issue implementers should avoid. That could be something as simple as "public_names that are textual representation of an IPv4 address MUST be treated as invalid", without talking about what a valid LDH is for DNS. |
cc @davidben |
AT IETF 121, @paulwouters agreed to provide text. Change this to MUST:
|
@paulwouters I think we are waiting on you for some text here. |
how about: OLD:
NEW:
With this, and the above confirmed MAY to MUST, I would be good. |
We'll probably need a citation here. I expect it's: |
Yes, “:” is not a valid dns character |
Is there an RFC we can reference? I thought ":" technically is allowed within a DNS label, so arguably an IPv6 address could be a valid TLD (or a form like 2001:db8::1.2.3.44 could be a name under .44)? It's not a valid hostname ([a-z0-9.]{0,63} for labels), but there is ambiguity in what is allowed in DNS binary string labels (rfc4343 , rfc1035, rfc2181section 11). Agreed that this is not the right place to try and clarify that ambiguity. Could we require a valid hostname rather than a valid DNS name? That would preclude underscore-prefixed though (would that be a problem for DANE)? |
https://www.rfc-editor.org/rfc/rfc8499
|
This is partly motivated by my interests in doing something evil, but mostly this is because coupling name validity to ECH config validity is a layering violation. It's fine to invoke some name validation, but that should be dictated by the needs of the thing that ends up relying on that name. This corrects both problems. In doing this, I realized that RFC 791 says nothing about the IP address textual format. That's problematic, but I couldn't come up with anything better in short notice. Closes tlswg#628. Closes tlswg#637.
Tagging @bemasc on these.
Section 4
Wouldn't this prevent the root zone from ever running ECH? It might not matter,
but why not allow it :P
This would not allow ECH to work for "00.com", "0x01.com" or "0x07.com", which are
all currently operational domains.
I don't think this document should try to define what a legal DNS name is. Perhaps
refer to "Host name" in RFC 8499 (or BCP219) and only state "leave out any potential
trailing dot" ? Maybe just separately say "SNI's cannot be in the textual form of an
IP address, as connections to IP addresses omit the SNI entirely" ?
It is a bit sad that ECH currently does not work with a URI that points to an IP
address. Especially for the split-mode. But I understand that would be a little
more than just ECH/encrypted-SNI.
Why is this a MAY? Why not a MUST or SHOULD?
The text was updated successfully, but these errors were encountered: