[dns-privacy] Review of draft-ietf-dprive-rfc7626-bis-03

"Martin Thomson" <mt@lowentropy.net> Mon, 02 December 2019 00:01 UTC

Return-Path: <mt@lowentropy.net>
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 90A2D120052; Sun, 1 Dec 2019 16:01:20 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.699
X-Spam-Level:
X-Spam-Status: No, score=-2.699 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=lowentropy.net header.b=mT+SlSbP; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=tvI4SSWs
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 FXMwlAR0xBz6; Sun, 1 Dec 2019 16:01:18 -0800 (PST)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2B4CF1200F6; Sun, 1 Dec 2019 16:01:18 -0800 (PST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.nyi.internal (Postfix) with ESMTP id 459DE224AB; Sun, 1 Dec 2019 19:01:17 -0500 (EST)
Received: from imap2 ([10.202.2.52]) by compute1.internal (MEProxy); Sun, 01 Dec 2019 19:01:17 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lowentropy.net; h=mime-version:message-id:date:from:to:subject:content-type; s= fm3; bh=BYqvjteiMh9qQmb2XbTkfhKoHb68w6Hp1XXT4f6aWHk=; b=mT+SlSbP Gc9vOWrIMcgc5LHhmszzjw4gM4M+c8yAywwA5+81Cs7Ik8MymaJXX252QlT31Bf0 XD0iFOgEmNbAmU26sqeF3aYyBBwFF4BP/uWEKHLnJgzyyFJ4/5pa0Gto92lJiXhm 1JTZBIn2xjrQjglhP3HDq1KR8wfVPyAxfjcs+HURrvgPAaDd7h5PcpKhafmzN/pg oDNbkUUCajsZNlxdefwdtv8MvGj2QCm3s+MDutxJ0PZ4sZsEy7llcQPgtn9HZnVn +MegZXgJnjbtTRdjMynvk+sgcrumHRaI1/S9TUcm7tgywQHtlxVL/4pF+jn4x+oW aHgs4YUGJlbPhg==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:message-id :mime-version:subject:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm1; bh=BYqvjteiMh9qQmb2XbTkfhKoHb68w 6Hp1XXT4f6aWHk=; b=tvI4SSWsksvTN+v1REEpfNiAUITeFOLhcc1zyUmuSJTzs 6TfLedBegM4OQG9K31m7mawnrU85P+eORJhTEdHefb7mJm0/wlf0uB+cTOCO0lnV prNsT/nb0exc7KWdRXAB2AXh8cjYmOdjlWrx9srCQopteOIRkMoDWCohocStxOQF U67VXWw/2V/l4GA7CRyM03nfU94mvMSbVl3oEKdwUXoJeGD/iG0Fl+r4pKlppt74 BD8jGd96Lc9TWNqFgQrTI13Ec7Owxa4ZB/ZwjM4/EFgrzlfBAY76RCnIMSrVTGnR W33bl3I1b2HN3wUHrreegZtEJpeWxouA2F5RB4xpg==
X-ME-Sender: <xms:TFTkXTdrmthZY-pM8HRIvc7JEET_5e7Jno81z6MKXxE_7qrOIMOQQA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedufedrudejgedgudejucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfffhffvufgtsehttdertd erredtnecuhfhrohhmpedfofgrrhhtihhnucfvhhhomhhsohhnfdcuoehmtheslhhofigv nhhtrhhophihrdhnvghtqeenucfrrghrrghmpehmrghilhhfrhhomhepmhhtsehlohifvg hnthhrohhphidrnhgvthenucevlhhushhtvghrufhiiigvpedt
X-ME-Proxy: <xmx:TVTkXRoIkB2kJdpVJNkMheLa_9HUmpaPjA5Do1boBcg98ZGHdrv4Bg> <xmx:TVTkXSL5J4_CN4qPm8nygvYoMSR5MAL9C7g47ZqmMliGdcXMynIopw> <xmx:TVTkXZDGoQhXs6Wn_E-gDlQOHlRMGIdLec2txI2e8C6dpvj-wIrpdA> <xmx:TVTkXUEIxIy9TYA9krYY5llogY4kVJ0LOZ8sOTy_N0P1piNPe9aOmQ>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id DF738E00A2; Sun, 1 Dec 2019 19:01:16 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.1.7-578-g826f590-fmstable-20191119v1
Mime-Version: 1.0
Message-Id: <4639bd67-6fca-47d1-aaeb-85fcd0394f46@www.fastmail.com>
Date: Mon, 02 Dec 2019 11:00:36 +1100
From: "Martin Thomson" <mt@lowentropy.net>
To: last-call@ietf.org, dns-privacy@ietf.org
Content-Type: text/plain
Archived-At: <https://mailarchive.ietf.org/arch/msg/dns-privacy/KGOMjN-W3_wywvZUZ12j-sAC6ps>
Subject: [dns-privacy] Review of draft-ietf-dprive-rfc7626-bis-03
X-BeenThere: dns-privacy@ietf.org
X-Mailman-Version: 2.1.29
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, 02 Dec 2019 00:01:21 -0000

Prompted by my surprise at seeing Brian Trammell's mention of a '[firefox]' reference in this document, I reviewed the contents of this draft more closely.

Summary

I found a number of issues with the additions in this -bis document.  Of particular concern is Section 3.5.1 (formerly Section 2.5.1 in RFC 7626), which has been expanded from one paragraph to four pages.  That there is a need for new content here is clear.  One thing that has become very clear is that our understanding of the role of recursive resolvers has evolved a lot in the past year.  However, I don't believe that the current text is a fair representation of the problems we're facing.  Right now, the community is in the middle of highly contentious debate on the general topic, and I don't think that the new content reflects consensus.

It does appear as though there is an attempt here to address the invariant technical characteristics without engaging more controversial positions.  I don't believe that has been successful.  The effect is to preempt an active area of contention.

I am opposed to the IETF publishing this document in its current form.

Section 2

> This document does not attempt a comparison of specific privacy protections provided by individual networks or organisations, it makes only general observations about typical current practices.

Having been called out here, I would question whether this claim is indeed correct.

BTW, what is "HTTPS destination IP address fingerprinting"?  Was the intent of this paragraph to say that this document only examines the DNS protocol independent of the greater context in which it is used?  That is, it looks at DNS without considering how privacy risks might result from the use of DNS in combination with other protocols?

Section 3.4.2

This section appears to address several related issues around the use of TLS primarily: fingerprinting, identification, and linkability (the document uses the word "correlation" in line with RFC 6973).  There are parts where fingerprinting is equated with identification or linkability in ways that appear confused.

For instance,

> The use of clear text transport options to optimize latency may also identify a user, e.g., using TCP Fast Open with TLS 1.2 [RFC7413].

The use of TFO is a linkability issue, not an identification one.  TFO can also be used without encrypted transport.

However, this seems overly negative. Resumption and TFO cookies - and therefore any linkability they might provide - is discretionary on the part of clients. You might (as is done later) raise the question here about the competing concerns of individuals and implementations, but that's a meta-level question that I'll get back to.

As a minor note here, TLS 1.3 resumption also provides a server with the ability to link sessions.  This document seems to assume that this is a property of TLS 1.2 only, which is incorrect.  There are proposals that might allow for unlinkable resumption, but those are still just proposals.

Also on linkability and identification:

> Certain configuration options for encrypted transports could also in principle fingerprint a user or client application.

Though there are definitely ways in which the listed options contribute to fingerprinting, the paragraph talks about session resumption, where the concern is primarily linkability.  Mixing these concepts only serves to confuse rather than enlighten.

When it comes to fingerprinting, it's important to distinguish between an ability to identify the software in use (Windows vs. Linux, Safari vs. Chrome) and the ability to distinguish different users.  The text here conflates these notions in an unhelpful fashion. The fingerprinting highlighted is a result of characteristics inherent to the software, not user-specific details.

For the most part, we (as protocol designers) accept that distinguishing software is possible and we don't generally attempt to erase differences that only serve to reinforce those signals. Suppressing differences in wire image across implementations generally runs counter to the desire for diversity in implementation choices.  This text - perhaps unintentionally - takes the somewhat sensational position that distinguishing between FreeBSD and Solaris is as relevant as the sort of fingerprinting that might be used to isolate individuals.  It does that by concentrating on choices that are usually made by implementations not individuals.

This is where a clear recognition of the distinction between implementation choices and how implementations represent (or maybe don't represent, if that is the way you feel) the choices of individuals requires a little more care.  I don't know how easy it is to engage on that topic without also engaging with the current debate though.

Section 3.5.1.1

This section references announcements of product plans that will eventually - even by the time that this document is published - be outdated.  This is, in my view, the most controversial section of the document, and it is all based on somewhat tenuous information.

All the "at the time of writing" text in this section would need to be removed in order for me to be comfortable with the publication of this document.

Similarly, I find the following text problematic:

> If applications enable application-specific DNS settings without properly informing the user of the change (or do not provide an option for user configuration of the application's recursive resolver) there is a potential privacy issue; depending on the network context and the application default, the application might use a recursive server that provides less privacy protection than the default network-provided server without the user's full knowledge.

This text presumes a great deal about the environment into which these applications are being deployed.  It appeals to a status quo bias by examining an area of a larger change that might have negative consequences without regarding the effect in the aggregate. Moreover, it sets unrealistic expectations - "the user's full knowledge" - about what might an application might need to do in order to make these deployment decisions.  In other words, whether it was intended or not, this takes a firm stance on the current rather contentious debate.

Separately, I appreciate that some people believe that these developments signal a move toward greater centralization of the DNS service, but that too is the subject of the ongoing debate.

Maybe there is a version of this section that the IETF can publish, but not until we actually have consensus on these subjects.  I have to most strenuously object to any attempt to publish a document if this section remains.

Section 3.5.1.2

I admit that I don't understand the purpose of this section. Concentrating on minutiae, like the details of DHCP or ARP/NDP spoofing, is far too low level. If we were to simply assume the usual threat model [RFC3552], then the conclusions here are obvious: if you fail to authenticate the server, then you get the server that an attacker chooses.

I would remove this section in favour of improving Section 3.5.1.4, which addresses the most pertinent question.

Section 3.5.1.3

The arguments here again fall under an area of active debate. The second paragraph makes the claim that in-network blocking of encrypted DNS might be done for reasons that benefit users. That relies on a number of unstated assumptions. More seriously, this particular subject is one of the most contentious parts of the current debate and it has no place in a document that purports to represent community consensus.

Either way, I think that RFC 7754 has a far better treatment of the broader topic.  This section might be better served with a reference to that.

Section 3.5.1.4

Again, this might be too close to the current debate, but I find it odd that there is no connection drawn between authentication of resolvers and choosing the resolver that receives the potentially privacy-sensitive information in queries. This choice is the single overriding issue upon which the entirety of the difficult debate depends.  Maybe there was a conscious decision to gloss over the point to avoid the controversy.  Given the significance of this point to the topic, I don't see how it can be avoided.

There's an unstated assumption throughout the document that the best defense for privacy is some form of active choice or at least informed consent on the part of end users. That too is an area where there is some contention.

Section 3.5.1.5.1

The arguments here repeat those from Section 3.4.2 (nit: not 3.4 as stated).  A section reference would be enough.

Section 3.5.1.5.2

I can't see anything in this section that Section 8 of RFC 8484 doesn't already say.

The text here does claim that the use of DoH rather than Do<other> is a choice to trade privacy for some other vaguely-defined property, which I might read as convenience. It is hard to read the extended treatment of this as anything other than prejudicial.  For instance, by labeling DoH as complex and requiring of detailed analysis, it implies that there are unstated intricacies that are traps for the unwary. This document is intended to demystify the privacy properties of DNS as a whole, so would it not be better to explain what the essential properties are?

The one new piece is the claim that there is fingerprinting information inherent to the use of HTTP.  While there is perhaps some merit in the argument that a narrow range of options for encoding the same semantics produce less variance, it is not clear that DNS is any more free of this sort of variance than HTTP.  Maybe HTTP has more options for the creation of side channels, but DNS isn't free of those. Aside from the Accept-Language thing - which RFC 8484 addresses - I believe that these leaks are implementation-specific and rarely an individual-specific choice, but the document strongly implies that there is a risk to individual privacy.  If that is indeed the claim, it could be made directly in more concrete terms.