On Thu, 22 Feb 2018, Shumon Huque wrote:

On Wed, Feb 21, 2018 at 2:48 PM, Paul Wouters <p...@nohats.ca> wrote:
      On Wed, 21 Feb 2018, Shumon Huque wrote:

            Okay, got it. For people that have already implemented this, I think
            there has been an implicit understanding that the format of the 
chain
            data is a sequence of concatenated wire format RRs exactly as they 
appear
            in a DNS message section


      Note, I would not call it "sequence of concatenated wire format RRs", as
      it is simply the wireformat of a DNS message.

      The fact that some parts
      are concatenated RR's is just part of the wireformat of the DNS reply
      message. That is, this isn't introducing some new form of concatenated
      content - it is _just_ a regular DNS wire format message, and the
      document should not go deeper into its explanation.


It would _not_ be correct to say that this is a "DNS wire format message" - 
that 
would mean there is a DNS header section with flags and response codes, 
and other sections. The chain data structure as currently specified really is 
concatenated wire-format RRs (as they appear _within_ a DNS message 
_section_). Let me know if that is unclear in the draft (or my proposed edits).

So it was decided to not use a full DNS packet format? And then since you
miss the structure of the Answer Section and Additional/Authority
Section, you require the "answer RR's" come first where you basically
emulate an Answer Section?

Isn't that an indication that we should really use the wireformat of an
entire DNS message here? Maybe some DNS library/tools people can chime
in here to tell us if this matters much to them (assuming they are
adding support for creating/consuming these chains of RRsets in wire
format.

I am personally a little sad we cannot have a dig +chainquery command
where we write out the entire answer packet format to a blob, to be loaded by
the TLS server. And where a TLS client cannot just hand over the blob
"as if it came in as a reply from a DNS server" to its DNS/cache
receiving code path.

I recall at one point way back there was a discussion about whether the chain
data should just be a fully formed DNS message, but I don't believe that idea
had much support in the working group (personally I would have been fine with 
that choice too, if it did have support).

Do you remember why not? I'll see about checking the archives, but to me
the hint that you are losing information and require some kind of
ordering seems to suggest there is a need for using the full DNS message
reply format.

There is some residual wording in the draft about ordering of CNAMEs etc in
the answer records part. Assuming the WG agrees, I am fine with relaxing
that requirement - that ended up in there because although there is no defined
ordering of RRs within a DNS message section, as a practical matter CNAMEs
are almost always ordered since there are some DNS queriers that get confused 
otherwise. This is a new protocol though, so we can be more faithful to the DNS 
spec.

I would prefer the residual wording to go away. Any hints at order being
important should be squashed.

      I don't think getting unrelated DNSSEC records would be an issue. TLS
      has its maximum sizes for the handshake. In fact, it could allow the
      extension to have some useful data in the case of MX or SRV.  (and could
      be a feature to build a nice resolver over TLS using 1 tor circuit).

The draft currently doesn't address the MX or SRV use case. I suggest
that we tackle that in a future version.

Jus make sure the document doesn't forbid any such data, and allow the
client to ignore these or put them in the cache as it sees fit.

      I'm also not sure about the talking of unsigned CNAME records from
      DNAME. The above pseudo code (extended with special cases) should be
      in some DNS library, and that library will know what records to expect
      unsigned which are proven by the DNAME (or wildcard) synthesis and knows
      when/if to add it to the validated cache. I don't think that should be
      explained in this RFC at all. The DNS implementation does not need
      to be specified in this document and it should just focus on saying
      that "the DNS message response is validated and upon validation the
      content can be considered DANE validated".


Where we ended up, is that WG participants asked for some level of DNSSEC
detail to be included in this doc.

Again, that will only lead to bad implementations. There should be no
need to update this document once something like ANAME, ALIAS or ZNAME
is introduced to the DNS. So you should not talk about these things at
all. TLS client should use a dns library that knows these things, or if
they want to write one from scratch, these implementors should look at
the DNS RFCs and not this RFC for guidance on how the DNS protocol
works.

Paul

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to