Re: [dns-privacy] RE I-D Action: draft-ietf-dprive-dnsodtls-08.txt

"Tirumaleswar Reddy (tireddy)" <tireddy@cisco.com> Mon, 08 August 2016 16:13 UTC

Return-Path: <tireddy@cisco.com>
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 497EF12D185 for <dns-privacy@ietfa.amsl.com>; Mon, 8 Aug 2016 09:13:39 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -15.767
X-Spam-Level:
X-Spam-Status: No, score=-15.767 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_MSPIKE_H3=-0.01, RCVD_IN_MSPIKE_WL=-0.01, RP_MATCHES_RCVD=-1.247, SPF_PASS=-0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id J1xiRyP3yUns for <dns-privacy@ietfa.amsl.com>; Mon, 8 Aug 2016 09:13:37 -0700 (PDT)
Received: from rcdn-iport-5.cisco.com (rcdn-iport-5.cisco.com [173.37.86.76]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id F1E3D12D193 for <dns-privacy@ietf.org>; Mon, 8 Aug 2016 09:13:27 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=48930; q=dns/txt; s=iport; t=1470672807; x=1471882407; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=4HGKJjKBq6lJBBYCaraYnOPXKBhH164f91vOGrv+gJA=; b=UguuOfgq4dgdRqTFDyBkYpruzIsNQ1XTUPPCISb9+7vqXaZSa8mIL+zd azL5VE63M0kPyc/AIvTOHv2bIBWfrUqiAlC+LX3SMX2e4Q9Juv5pBgGy6 2kYBvNmnVxkiEhUzZ3uEZVCKf8mB2pVLMsaVzu4E2X+Iz5ECmE/rt9qQB E=;
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0ATAgBArqhX/4ENJK1dgndOVnwHuQyBfSSFeQIcgSI4FAEBAQEBAQFdJ4ReAQEFIwo+DhACAQYCEQQBASEBBgMCAgIwFAkIAgQOBQiIKQ6VCp0gkBwBAQEBAQEBAQEBAQEBAQEBAQEBAQEXBYYqg0qBA4QqTIJLgloFk3WFRAGGHIJ8hWqBcoRbgzKFS4w0g3cBHjaCDwMcgUxuAQGGXn8BAQE
X-IronPort-AV: E=Sophos;i="5.28,490,1464652800"; d="scan'208,217";a="135540764"
Received: from alln-core-9.cisco.com ([173.36.13.129]) by rcdn-iport-5.cisco.com with ESMTP/TLS/DHE-RSA-AES256-SHA; 08 Aug 2016 16:13:26 +0000
Received: from XCH-RCD-018.cisco.com (xch-rcd-018.cisco.com [173.37.102.28]) by alln-core-9.cisco.com (8.14.5/8.14.5) with ESMTP id u78GDQZq006912 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=FAIL); Mon, 8 Aug 2016 16:13:26 GMT
Received: from xch-rcd-017.cisco.com (173.37.102.27) by XCH-RCD-018.cisco.com (173.37.102.28) with Microsoft SMTP Server (TLS) id 15.0.1210.3; Mon, 8 Aug 2016 11:13:25 -0500
Received: from xch-rcd-017.cisco.com ([173.37.102.27]) by XCH-RCD-017.cisco.com ([173.37.102.27]) with mapi id 15.00.1210.000; Mon, 8 Aug 2016 11:13:25 -0500
From: "Tirumaleswar Reddy (tireddy)" <tireddy@cisco.com>
To: Sara Dickinson <sara@sinodun.com>
Thread-Topic: RE [dns-privacy] I-D Action: draft-ietf-dprive-dnsodtls-08.txt
Thread-Index: AQHR7ZtjX5Qr3O0eikKc4Cjc2cz4aaA4RlKggAa9a4yAAC6ZcA==
Date: Mon, 08 Aug 2016 16:13:25 +0000
Message-ID: <44617254810d4707962bb40f1a65b1d6@XCH-RCD-017.cisco.com>
References: <ed800ee55c434c56b4d27af9125043f5@XCH-RCD-017.cisco.com> <4A83C51B-9CDE-432B-9910-5471DDE88828@sinodun.com>
In-Reply-To: <4A83C51B-9CDE-432B-9910-5471DDE88828@sinodun.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
x-ms-exchange-transport-fromentityheader: Hosted
x-originating-ip: [10.65.70.79]
Content-Type: multipart/alternative; boundary="_000_44617254810d4707962bb40f1a65b1d6XCHRCD017ciscocom_"
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dns-privacy/RoewYEcZKsLJZY7WMU_TjHofHFw>
Cc: "dns-privacy@ietf.org" <dns-privacy@ietf.org>
Subject: Re: [dns-privacy] RE I-D Action: draft-ietf-dprive-dnsodtls-08.txt
X-BeenThere: dns-privacy@ietf.org
X-Mailman-Version: 2.1.17
Precedence: list
List-Id: <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, 08 Aug 2016 16:13:39 -0000

Hi Sara,

Please see inline

From: Sara Dickinson [mailto:sara@sinodun.com]
Sent: Monday, August 8, 2016 5:52 PM
To: Tirumaleswar Reddy (tireddy) <tireddy@cisco.com>
Cc: dns-privacy@ietf.org
Subject: RE [dns-privacy] I-D Action: draft-ietf-dprive-dnsodtls-08.txt


On 5 Aug 2016, at 03:47, Tirumaleswar Reddy (tireddy) <tireddy@cisco.com<mailto:tireddy@cisco.com>> wrote:

Hi Sara,

Thanks for the review. Please see inline

Hi Tiru,

Thanks for the detailed response.



With regard to the separate https://tools.ietf.org/html/draft-wing-dprive-
profile-and-msg-flows-01 I’ll re-iterate my question from the Yokohama WG:
Is there anything DNS specific in the draft? I don’t recall anything particularly
DNS specific. I definitely see value in a draft comparing message flows
between TLS and DTLS in general, but my feeling is it might be better
progressed though another working group with more (D)TLS experts - TLS or
UTA ?

I don't think other WG will care enough for this draft, maybe the chairs can request reviewers from the above WG’s.

I’d be interested to know what others think about this.



then also drop
the suggested acronym "(DNSoD, pronounced "dee-eon-sod”)”. In draft-ietf-
dprive-dtls-and-tls-profiles we use DNS-over-(D)TLS throughout so calling this
mechanism simply DNS-over-DTLS feels more consistent.

The acronym was added as it sounded easy to pronounce.

I haven’t ever heard that acronym used -  I’ve only heard people talk about DNS-over-DTLS :-)

[TR] Okay, removed the acronym ☺

If the acronym is retained then I think in a pass is needed though the document to improve consistency because at the moment both DNSoD and DNS-over-DTLS are used in different sections to (I think) mean the same thing.


1. Introduction:

- Second bullet point, last paragraph: I think it is currently correct that TCP
Fast open is not yet ubiquitous but given the recent significant deployment
efforts I’m not sure that will remain true for long.  Also, TFO is now available
on Windows, Linux, OS X and (server side) FreeBSD.

Removed the second line in the last paragraph.

I think the reference to TFO is still relevant and shouldn’t be completely removed, how about something like:

“ DTLS session resumption consumes 1 round trip whereas TLS session
    resumption can start only after TCP handshake is complete. However TCP Fast Open [
   RFC7413] can eliminate 1-RTT in the latter case. “

[TR] Updated.

- I’d also like to see some statement about how many concurrent DTLS
sessions a client should establish to a particular DNS Server (just one?).

Yes, one DTLS session is sufficient. Its already discussed in Section 3.3
<snip>To reduce client and server workload, clients SHOULD re-use the DTLS session. A single DTLS session can be used to send multiple DNS requests and receive multiple DNS responses.</snip>

But this doesn’t explicitly say a client SHOULD only use one session. How about considering adding a section based on 6.2.2 of RFC7766 (https://tools.ietf.org/html/rfc7766#section-6.2.2) to cover this?

[TR] Done.

3.3 Established Sessions

- Is there anything additional here that can be said about expected session
lifetimes or idle timeouts? Is it expected that clients keep session open
indefinitely until some sort of error is encountered or can some sort of
reasonable idle timeout be suggested? Is there any expectation about whether
the client or server typically terminates a session?

Yes, updated draft.
NEW:
In between normal DNS traffic while the communication to the DNS server is quiescent,

You could re-use/reference the definition of an idle DNS-over-TCP session as defined in RFC7766 here for clarity and consistency ?

the DNS client may want to probe the server to ensure it has maintained cryptographic state. Such probes can also keep alive firewall or NAT bindings. This probing reduces the frequency of needing a new handshake when a DNS query needs to be resolved, improving the user experience at the cost of bandwidth and processing time.

I’m not clear what kind of ‘probing’ you are suggesting here? A dummy DNS message or some sort of keepalive mechanism - can you expand please ?

[TR] DTLS heartbeat is used for probing, updated text. I am not sure what to pick from RFC7766 (edns-tcp-keepalive is specific to TCP) ?

-- Question: What does a server do if the client doesn’t send an EDNS0 option?

The maximum DNS response size of 512 bytes plus DTLS overhead will be well within the Path MTU.

Sorry - I meant that adding a sentence on this to the draft might be helpful to remove ambiguity.

[TR] Okay, added the following lines: If the DNS client does set the EDNS0 option defined in [RFC6891] then the maximum DNS response size of 512 bytes plus DTLS overhead will be well within the Path MTU. If the Path MTU is not known, an IP MTU of 1280 bytes SHOULD be assumed.

-- I do think there is a DTLS Usage Profile specific point to make related to this,
which is that if a client gets a truncated answer over DTLS it could choose to
fallback to UDP/TCP instead of TLS _if_ it were using an Opportunistic profile
which would result in a kind of ‘hybrid’ security.

In Opportunistic profile, if server sends truncated response then
DNS client should first try TLS and if the TLS handshake fails then fallback to TCP.


I don’t really see any
advantage in that if TLS is available, but the last sentence is unclear on this
possibility, suggesting only TLS can be used - which is correct for Strict Privacy
but perhaps not (at least technically) for Opportunistic. This feel worthy of
some discussion.

Added following line:
If DNS-over-TLS connection fails and the client is using Opportunistic Privacy profile then the client can fallback to DNS-over-TCP.

On re-reading this and the profiles draft (draft-ietf-dprive-dtls-and-tls-profiles), this seems rather specific. I’m leaning towards keeping the discussion protocol neutral, as we did in the profiles draft... but I’d like to see some more feedback on this...

There is, of course, a small subset of DNS responses that are too large to be sent using DTLS, but could be send plain text over UDP given the same MTU. The TC bit in this scenario simply signals to the client that the response is too large for DTLS, but of course this signalling can’t convey any more detailed information. Again, it is a bit of a corner case but a question in my mind is how detailed this draft should be in specifying the fallback mechanisms?

One approach would be something like:

“Upon receiving a response with the TC bit set and wanting to
   receive the entire response, the client behaviour is governed by the current Usage profile
   [draft-ietf-dprive-dtls-and-tls-profiles]. For Strict Privacy the client MUST only send
   a new DNS request for the same resource record over an encrypted transport
  (e.g. DNS-over-TLS [RFC7858]). Clients using Opportunistic Privacy SHOULD
  try for the best case  (an encrypted and authenticated transport) but MAY fallback to intermediate cases and eventually the worst case
   scenario (clear text) in order to obtain a response”

This is then almost identical to the text in section 4.2 of the profiles draft but allows clients flexibility.

[TR] Proposed text looks good, updated draft.


DNS client can setup both DNSoD and DNS-over-TLS connections in parallel, to reduce the latency to send DNS queries over DNS-over-TLS if the DNS response is truncated over the DNSoD and the client needs the entire response.

Ah, ‘parallel connections’  is a new idea and warrants discussion. It also seems to be spilling over into the area of preference between the protocols, which I think I would argue is out of scope for this document. Additionally it occurs to me that using DNS-over-DTLS and then just using ‘one-shot’ TLS for truncated messages is really paying a price (more so than falling back to TCP from UDP). So perhaps it makes more sense to use the above rather neutral text and defer this discussion to another document that can include implementation and deployment experience ?

[TR] Removed above line from my local copy.

- “For servers with no connection history…” I think this sentence can also be
removed since it is more fully covered in the draft-ietf-dprive-dtls-and-tls-
profiles draft.

I don’t think it's discussed in profile draft, please check.

I read this as just another description of selecting behaviour depending on the Usage Profile (called I think Privacy Profile here) where b) is Opportunistic and c) is Strict. I don’t think is says anything new above that unless I have mis-read or misunderstood?

[TR] Removed.

- “Once a DNSoD client has established
  a security association with a particular DNS server, and outstanding
  normal DNS queries with that server (if any) have been received, the
  DNSoD client MUST ignore any subsequent normal DNS responses from
  that server, as all subsequent responses should be encrypted.”
I think this text is a hangover from the earlier draft when port 53 was used.

No, the above line explains that if the DNS client is using DNSoD it must not accept plain text DNS responses arriving on any port.
Added more details to clarify.

Can you send the updated text please - a few more thoughts occur to me here but perhaps they are addressed in the new text ?

[TR] Sure, will do.

-Tiru

Sara.