Re: [dns-privacy] [Ext] WGLC : draft-ietf-dprive-unilateral-probing

Paul Hoffman <paul.hoffman@icann.org> Mon, 12 June 2023 19:48 UTC

Return-Path: <paul.hoffman@icann.org>
X-Original-To: dns-privacy@ietfa.amsl.com
Delivered-To: dns-privacy@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id AFADDC13AE3E for <dns-privacy@ietfa.amsl.com>; Mon, 12 Jun 2023 12:48:49 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.596
X-Spam-Level:
X-Spam-Status: No, score=-2.596 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Og94TCLb7hQI for <dns-privacy@ietfa.amsl.com>; Mon, 12 Jun 2023 12:48:45 -0700 (PDT)
Received: from ppa5.dc.icann.org (ppa5.dc.icann.org [192.0.46.78]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 889EEC13AE3C for <dns-privacy@ietf.org>; Mon, 12 Jun 2023 12:48:45 -0700 (PDT)
Received: from MBX112-W2-CO-2.pexch112.icann.org (out.mail.icann.org [64.78.33.6]) by ppa5.dc.icann.org (8.17.1.19/8.17.1.19) with ESMTPS id 35CJmiex022474 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 12 Jun 2023 19:48:44 GMT
Received: from MBX112-W2-CO-1.pexch112.icann.org (10.226.41.128) by MBX112-W2-CO-1.pexch112.icann.org (10.226.41.128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.26; Mon, 12 Jun 2023 12:48:42 -0700
Received: from MBX112-W2-CO-1.pexch112.icann.org ([10.226.41.128]) by MBX112-W2-CO-1.pexch112.icann.org ([10.226.41.128]) with mapi id 15.02.1118.026; Mon, 12 Jun 2023 12:48:42 -0700
From: Paul Hoffman <paul.hoffman@icann.org>
To: Florian Obser <florian+ietf@narrans.de>
CC: "dns-privacy@ietf.org" <dns-privacy@ietf.org>
Thread-Topic: [dns-privacy] [Ext] WGLC : draft-ietf-dprive-unilateral-probing
Thread-Index: AQHZkAIFa64t/3ey40OqazMThvYUVq99Hf4A//+LIuCAAHi3AIAABMUAgAAOUwCAAGnTAIAAsGwA//+h2FKAAHmKgIAAoxlvgAFysYCAAHQHCYACYZ2AgAEPAq2AAMufgIABkdhrgAFgpQA=
Date: Mon, 12 Jun 2023 19:48:42 +0000
Message-ID: <B9001CCC-3686-4EED-8B2E-856291269240@icann.org>
References: <64e17d73-ea1a-00cb-a8a5-b5cfb39c37ae@innovationslab.net> <45ada5a8-b483-dae7-eb56-88411fb2f75c@innovationslab.net> <7a3cd83a-b80d-f00d-b050-0a1d4845146b@innovationslab.net> <D7C916AC-E47D-45FE-9976-188DAE0775EF@icann.org> <CADyWQ+HMj5NH1g_oCTNxYkGDmp2L3EwmMyOv2-bXeXvp5kvm0A@mail.gmail.com> <6B55CCC0-069F-43DD-B9DA-024E4334D6F4@icann.org> <20c5ac1666e4428b8ffa70c7b9e8a19c@verisign.com> <CADyWQ+HJ7ZLWfwxr6vb9HsERMJXuu-1zD_=cr4S+mZ1ieWrYwQ@mail.gmail.com> <0007CDA7-ADD3-43BB-B5D3-3B1810206E0E@icann.org> <8fbed8926b3f4e28b9f3f76a85e0b619@verisign.com> <CANMuhxt5cE--GUtapEL69dFkAFSU5dF3psMCgNRKj8_dXpsFLA@mail.gmail.com> <ABE27A4A-BA96-4505-A3E3-1FE83CAA5A63@icann.org> <m1q6YGM-0000KoC@stereo.hq.phicoh.net> <3B79D45A-1F95-4A4A-9F8D-D3D9C424B4B2@icann.org> <m1q6oAa-0000KqC@stereo.hq.phicoh.net> <E68DAF11-E748-4F3C-AAD3-4E5921B652D9@icann.org> <m1q7FM5-0000LSC@stereo.hq.phicoh.net> <9E965077-D2BA-46C7-99EC-5B4C37918069@icann.org> <m1q82YG-0000MXC@stereo.hq.phicoh.net> <B2088F5F-60B6-4796-B16F-ED7F42838B72@icann.org> <m14jndnsh3.fsf@narrans.de>
In-Reply-To: <m14jndnsh3.fsf@narrans.de>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-originating-ip: [192.0.47.234]
x-source-routing-agent: True
Content-Type: text/plain; charset="us-ascii"
Content-ID: <3C0722D9729A144286E1DB1AB2739436@pexch112.icann.org>
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.254,Aquarius:18.0.957,Hydra:6.0.573,FMLib:17.11.176.26 definitions=2023-06-12_14,2023-06-12_02,2023-05-22_02
Archived-At: <https://mailarchive.ietf.org/arch/msg/dns-privacy/2rhfv8-F6kjsvKTo0N8fdMZxHgk>
Subject: Re: [dns-privacy] [Ext] WGLC : draft-ietf-dprive-unilateral-probing
X-BeenThere: dns-privacy@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Addition of privacy to the DNS protocol <dns-privacy.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dns-privacy>, <mailto:dns-privacy-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dns-privacy/>
List-Post: <mailto:dns-privacy@ietf.org>
List-Help: <mailto:dns-privacy-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dns-privacy>, <mailto:dns-privacy-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 12 Jun 2023 19:48:49 -0000

On Jun 12, 2023, at 1:46 AM, Florian Obser <florian+ietf@narrans.de> wrote:
> 
> On 2023-06-10 22:48 UTC, Paul Hoffman <paul.hoffman@icann.org> wrote:
>> On Jun 10, 2023, at 1:38 PM, Philip Homburg <pch-ietf-dprive@u-1.phicoh.com> wrote:
>>> 
>>>> In such a case, resolvers following
>>>> this protocol will look for authoritative answers to ports 53 and
>>>> 853 on that system, and the system would need to be able to
>>>> differentiate queries for recursive answers from queries for
>>>> authoritative answers.
> 
> I think this needs some MUST requirements because it's an interop
> problem.

Please say more. Would this be MUST requirements on resolvers, auth servers, or both? What requirements would you suggest?

> An issue with the draft is that it never specifies explicitly
> what a successful or unsuccessful probe is. My reading is that it
> decides successful / unsuccessful on the transport layer. E.g. when it
> can talk TLS to *something* on port 853 that's a success. Nevermind what
> that something is.

Yes. The document says (in Section 4.6.4) "When an encrypted transport connection actually completes (e.g., the TLS handshake completes)...".

How would you change that? I don't think "and it responded to a DNS query" will help much, because your concern seems to be a system that is responding to both recursive and authoritative queries on 853. How can this be clarified for your issue?

>>> 
>>> For lack of a better term, I use the word 'lame' here:
>>> 
>>> If, during probing, a recursive resolver decides that the authoritative
>>> server on port 853 is 'lame', then the recursive resolver should fall back
>>> to port 53.
>> 
>> The feeling that I got from the other messages is that the server on
>> 853 is not lame: it is being authoritative for some names and
>> recursive for all others. If so, it's not lame at all.
> 
> ns1.eu.org is authoritative for eu.org:
> $ dig +norec +noall +comments @ns1.eu.org eu.org NS
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54105
> ;; flags: qr aa; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 5
> 
> The DoT recursive resolver refuses to talk to as when we turn of RD:
> $ dig +tls +norec +noall +comments @ns1.eu.org eu.org NS
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 9454
> ;; flags: qr ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
> 
> It is happy to give us a recursive answer though, heck, it's even DNSSEC
> validated:
> $ dig +tls +noall +comments @ns1.eu.org eu.org NS
> ;; Got answer:
> ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48894
> ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 9, AUTHORITY: 0, ADDITIONAL: 5
> 
> 
> From the PoV of the draft (as it currently stands) the DoT probe is
> successful, because something responded to us.

There is a looooong and indecisive (so far!) discussion in DNSOP about what is "lame". I would agree with you that this qualifies as lame: it is supposed to give an authoritative response but instead gives a non-authoritative one.

I think what you are talking about here is Section 4.6.9, the end of which currently says:
   But if R is unsuccessful (e.g. timeout or connection closed):

   *  If Q is not in Do53-queries[X] or in any of *-queries[X]:

      -  Return SERVFAIL to the requesting client

Would the following cover your issue?
   But if R is unsuccessful (e.g. a non-authoritative answer, or is a timeout or connection closed):

   *  If Q is in Do53-queries[X] or in any of *-queries[X]:

      -  set E-session[X] to null

      -  set E-status[X] to fail

      -  set E-completed[X] to T2


   *  Otherwise:

      -  Return SERVFAIL to the requesting client

--Paul Hoffman