On 13. 07. 21 0:13, Brian Dickson wrote:


On Mon, Jul 12, 2021 at 2:20 AM Petr Špaček <[email protected] <mailto:[email protected]>> wrote:

    On 08. 07. 21 18:15, Brian Dickson wrote:
     >
     >
     > On Thu, Jul 8, 2021 at 7:29 AM Petr Špaček <[email protected]
    <mailto:[email protected]>
     > <mailto:[email protected] <mailto:[email protected]>>> wrote:
     >
     >     On 07. 07. 21 19:54, Warren Kumari wrote:
     >      > Hi there all,
     >      >
     >      > I wanted to check the consensus on a point brought up
    during IETF
     >     LC /
     >      > OpsDir review of draft-ietf-dnsop-rfc7816bis.
     >      >
     >      > Please see:
     >      >
     >
    https://mailarchive.ietf.org/arch/msg/last-call/fuDyx2as6QsK8CT_7Nvci5d7XQQ/
    
<https://mailarchive.ietf.org/arch/msg/last-call/fuDyx2as6QsK8CT_7Nvci5d7XQQ/>
>  <https://mailarchive.ietf.org/arch/msg/last-call/fuDyx2as6QsK8CT_7Nvci5d7XQQ/ <https://mailarchive.ietf.org/arch/msg/last-call/fuDyx2as6QsK8CT_7Nvci5d7XQQ/>>
     >      > and
     >      >
     >
    https://mailarchive.ietf.org/arch/msg/dnsop/_H4aM5AquCSRlz0Pz3ncwl7Plpk/
    <https://mailarchive.ietf.org/arch/msg/dnsop/_H4aM5AquCSRlz0Pz3ncwl7Plpk/>
>  <https://mailarchive.ietf.org/arch/msg/dnsop/_H4aM5AquCSRlz0Pz3ncwl7Plpk/ <https://mailarchive.ietf.org/arch/msg/dnsop/_H4aM5AquCSRlz0Pz3ncwl7Plpk/>>
     >      >
     >      > If resolving " _ldap._tcp.ad.example.com
    <http://tcp.ad.example.com>
     >     <http://tcp.ad.example.com <http://tcp.ad.example.com>>",
    once you hit the _tcp label
     >      > you are quite likely in ENT territory, and some
    implementations
     >      > (especially those behind firewalls / middleboxes) are
    still broken.
     >      > There is also a performance hit.
     >      >
     >      > Version 10 of the document added:
     >      > "Another potential, optional mechanism for limiting the
    number of
     >      > queries is to assume that labels that begin with an
    underscore (_)
     >      > character do not represent privacy-relevant administrative
     >      > boundaries. For example, if the QNAME is
     >     "_25._tcp.mail.example.org <http://tcp.mail.example.org>
    <http://tcp.mail.example.org <http://tcp.mail.example.org>>"
     >      > and the algorithm has already searched for
    "mail.example.org <http://mail.example.org>
     >     <http://mail.example.org <http://mail.example.org>>", the
     >      > next query can be for all the underscore-prefixed names
    together,
     >      > namely "_25._tcp.mail.example.org
    <http://tcp.mail.example.org> <http://tcp.mail.example.org
    <http://tcp.mail.example.org>>"."
     >      >
     >      > (unsurprisingly the document does a much better job of
    explaining the
     >      > issue than I did :-))
     >      >
     >      > Viktor is suggesting that QNAME Minimization should be
    stopped when
     >      > you run into an underscore ("_") label, instead of this
    being worded
     >      > as a potential, optional mechanism.
     >      >
     >      > Obviously there is a tradeoff here -- privacy vs deployment.
     >      > 1: while it's **possible** that there is a delegation
    point at the
     >      > underscore label, (IMO) it is unlikely. If there is no
     >     delegation, you
     >      > will simply be coming back to the same server again and
    again, and so
     >      > you are not leaking privacy sensitive information.
     >      >
     >      > 2: some recursives are less likely to enable QNAME
    minimization
     >      > because of the non-zero ENT and slight performance issues.
     >      >
     >      > What does the WG think? Does the privacy win of getting
    this deployed
     >      > and enabled sooner outweigh the potential small leak if
    there *is* a
     >      > delegation inside the _ territory of the name?
     >      >
     >      > Should the advice above be strengthened to SHOULD /
    RECOMMENDED?
     >
     >     With my implementer hat on, I say "no", I don't see a
    compelling reason
     >     to "mandate" it.
     >
     >
     > Did you actually read what Viktor wrote?

    Of course, I did, and I'm not too fond of the tone you used above.
    Let's
    skip to the constructive part, please.


Let me start by apologizing to you (and the group) for the tone (whether intended or not).
(I was literally inquiring as opposed to intending to having tone.)



      > It is a known fact that there ARE implementations where ENT
    handling (on
      > the authoritative side) are broken.

    I agree that there are some, but anecdotal evidence of existence tells
    us nothing about
    a) prevalence
    b) significance of these broken auths and domains hosted on them.
    AFAIK both of these are parameters taken into account by resolver
    vendors when deciding what types of non-compliance need to be worked
    around.


So, let me counter by illustrating the scope of the problem, if it occurs, and the challenges created depending on whether or not any work-around is RECOMMENDED, or not.

I'm sorry for not replying in full, but I think it's more efficient this way:

I agree that DNS is complex and has tons of failure modes, but this specific case does not seem special enough to me to warrant special treatment.

As Viktor pointed out in https://mailarchive.ietf.org/arch/msg/dnsop/w7JBD4czpGKr46v-DlycGbOv9zs/ , it seems that this problem plagues roughly tens out of 150k domains he surveyed. I think this makes further discussion about _necessity_ of the workaround kind of moot.

This leaves us with performance optimization, to which I replied already in https://mailarchive.ietf.org/arch/msg/dnsop/h9BlBI0hQ0MtDAQAK_s8Tmj2bUc/ .

Thank you for your time.
Petr Špaček @ ISC



This is specifically concerned only with underscore names which are registered with IANA, and the implications of ENT-based resolution errors. For reference, the list is published here: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#underscored-globally-scoped-dns-node-names <https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#underscored-globally-scoped-dns-node-names>

Not all entries in the underscore table have the same degree of utilization, or relevance, etc.

The ones that jump out from that list, as well as not-yet-published entries, at least in my opinion, are:

  * TLSA
  * SVCB
  * DMARC
  * DKIM
  * ACME
  * validation-contactemail
  * validation-contactphone
  * SPF use of _spf
  * X.509 URIs
  * DNS SD

The reason I'm interested in ensuring that the REASON (rationale) matches the CHOICE we make in the WG, is precisely that the collective knowledge about the deployment prevalence and issues is little better than anecdotal. And, that the impact of picking one (MAY vs SHOULD) might affect lots of other applications and protocols.

DNS is a necessary and fundamental service, used by not only the various parties (end-users and servers, zone owners) but also the services which rely on the DNS itself and proper resolution of entries in the DNS.

The problem MAY be present in middle-boxes (of all sorts of functions and flavors), but MAY NOT be anything under operator control, and might not be easy to identify. The problem MAY ALSO exist in other software, firmware, or hardware, which is acting as an actual DNS device (rather than multi-function middlebox).

So, basically, my suggestion is, that if the WG wants to use "MAY", it should ensure the guidance to implementers is clear, on what might happen, and if it does, how to detect it, report it, and what documentation to provide to operators/users.

The old adage of, "Never test for an error condition you don't know how to handle" has relevant corollaries here:

  * If you do know how to handle an error condition, test for it and
    handle it
  * If you are unable to test for an error condition, maybe don't create
    it in the first place
  * Don't blame the victim

Examples of problems that aren't easy or even possible to fix, and may not be possible to work around, include (but are not limited to):

  * Mandated services or equipment
  * Service-provider (ISP) provided equipment
  * Consumer-grade equipment without support
  * Third party operators of services (e.g. DNS)
  * MITM functionality (e.g. government-operated, or public WiFi
    operated, or hotel service, etc)

The implications to borked stuff, based on the underscore registry entries highlighted could include:

  * Loss of privacy
  * Inability to validate certificates or to discover revoked certificates
  * Loss of spam-prevention ability to receivers
  * Loss of spam-prevention protection to domain owners
  * Inability to discover services
  * Degradation of web performance
  * Inability to auto-renew certificates

The current text does not provide any guidance on the broken-ENT-NXDOMAIN problem, and basically ignores the problem entirely.

If keeping MAY is the approach chosen, I would like to suggest that some text be added to the effect that (a) the specific ENT problem may exist, and (b) what to do to detect it and handle it, or whether to add a "knob" to add support for operators to enable such support.

I'm not sure if Viktor has already supplied language that would work.

If not, something like this (but maybe easier to read, parse, implement, etc) would be helpful:

"When doing QNAME minimization, if an iterative query whose first label begins with an underscore "_", results in an NXDOMAIN, the owner name may be an ENT (empty non terminal). A signed response would include a proof of non-existence, and no additional action is needed in that situation. However, an unsigned response MAY be treated as a possible indicator of an ENT, and the algorithm MAY choose to ignore the NXDOMAIN if the current QNAME is not the same as the original QNAME, and proceed to the next label in the algorithm."

There is a difference between mandating workarounds, and supporting use cases where the impacted party is not in a position to change the outcome of failed DNS resolution.

Brian

P.S. I am genuinely interested in what implementers plan on doing, regardless of whether that is mandated or not. If anyone is willing to share, please do so.


    I'm arguing against mandating workarounds. The recommendation might be
    sound in 2021, but that's not a good enough reason for me to mandate it
    as it might change next month when one major player fixes its
    deployment.


    Historical context:
    Based on experience with Knot Resolver, various workarounds present in
    older resolver implementations were not "needed" by the time Knot
    Resolver came about. Multiple types of formerly-prevalent protocol
    non-compliance became so marginal that it was not worth the complexity
    to implement and maintain workarounds for them anymore.



      > Given that the vast majority of the first underscore queries
    would be
      > hitting ENTs, this would seem to me, at least, to be compelling.
      >
      > Why would you not strongly suggest to other implementers to
    avoid this
      > problem (by stopping the QNAME minimization)?

    When you reach this line, I think it should be clear that I consider
    this a wrong question. We should be asking why RFC should mandate a
    workaround that might get obsolete in an inestimable amount of time.

    Need for workarounds changes, and for this reason I don't consider RFCs
    to be a good place to _mandate_ workarounds which are by definition
    dependent on current (and constantly changing) situation. (To be clear,
    describing workarounds without mandate is fine with me!)

    I hope it clears up why I'm against mandating this.

    Petr Špaček @ ISC


_______________________________________________
DNSOP mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/dnsop

Reply via email to