Re: [dnssd] DNSSD privacy scaling issues

Christian Huitema <huitema@huitema.net> Mon, 15 January 2018 01:08 UTC

Return-Path: <huitema@huitema.net>
X-Original-To: dnssd@ietfa.amsl.com
Delivered-To: dnssd@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 4755612D942 for <dnssd@ietfa.amsl.com>; Sun, 14 Jan 2018 17:08:17 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.601
X-Spam-Level:
X-Spam-Status: No, score=-2.601 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_LOW=-0.7, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
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 GgEa8Ukpcmr0 for <dnssd@ietfa.amsl.com>; Sun, 14 Jan 2018 17:08:15 -0800 (PST)
Received: from mx43-out1.antispamcloud.com (mx43-out1.antispamcloud.com [138.201.61.189]) (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 511E712D940 for <dnssd@ietf.org>; Sun, 14 Jan 2018 17:08:15 -0800 (PST)
Received: from xsmtp12.mail2web.com ([168.144.250.177]) by mx15.antispamcloud.com with esmtps (TLSv1.2:AES128-SHA:128) (Exim 4.89) (envelope-from <huitema@huitema.net>) id 1eatFz-0002rj-Ls for dnssd@ietf.org; Mon, 15 Jan 2018 02:08:12 +0100
Received: from [10.5.2.18] (helo=xmail08.myhosting.com) by xsmtp12.mail2web.com with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.82) (envelope-from <huitema@huitema.net>) id 1eatFy-00052j-9M for dnssd@ietf.org; Sun, 14 Jan 2018 20:08:11 -0500
Received: (qmail 28168 invoked from network); 15 Jan 2018 01:08:07 -0000
Received: from unknown (HELO [192.168.200.68]) (Authenticated-user:_huitema@huitema.net@[72.235.171.77]) (envelope-sender <huitema@huitema.net>) by xmail08.myhosting.com (qmail-ldap-1.03) with ESMTPA for <dnssd@ietf.org>; 15 Jan 2018 01:08:07 -0000
To: dnssd@ietf.org
References: <dfdc831e-9ab4-6a19-ae58-ab8d55731110@huitema.net>
From: Christian Huitema <huitema@huitema.net>
Message-ID: <250af321-a0bb-7119-735d-6545da88a684@huitema.net>
Date: Sun, 14 Jan 2018 15:08:07 -1000
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0
MIME-Version: 1.0
In-Reply-To: <dfdc831e-9ab4-6a19-ae58-ab8d55731110@huitema.net>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
X-Originating-IP: 168.144.250.177
X-AntiSpamCloud-Domain: xsmtpout.mail2web.com
X-AntiSpamCloud-Username: 168.144.250.0/24
Authentication-Results: antispamcloud.com; auth=pass smtp.auth=168.144.250.0/24@xsmtpout.mail2web.com
X-AntiSpamCloud-Outgoing-Class: unsure
X-AntiSpamCloud-Outgoing-Evidence: Combined (0.52)
X-Recommended-Action: accept
X-Filter-ID: EX5BVjFpneJeBchSMxfU5p0+QGs71DGlhXK/ATIe5H8Xv9krsgRhBn0ayn6qsUc7oeDwbaJnZ2Ta Zhv/Bk6d8K1PdOWeIW8R8TgUu5HhPnIbEJkWf7p+C0zSPKWfqh/PTGulXfuaNr1V9B1E4+3dI3nk BRYAruZ5hO/GfxnCDKdWpXZEoctxN/zoJa2wa6+xjj0HlFDoqoWF20+xKQ35+nd/nGlMBQ0xDQkm A/S/XltWjP649SQzhF817kql58kAx71HfxpF/K3Kf4qEIfLm3dpo8E55I3oL4X/9gaBZfvr6VL1B tSX2x7FdoqxZLLNInsq4c1pop2DuIERl592w1UzGVaY28QIxbnHhmVmUg//xFvReUB/vUq9cRUSN fRacYvJxnE2uvPYPCbpmnXes/ii2IAbWxB6xZ+NuqELn3pmRVYKU9W9tbmVXJBqdHHDm4W04ooUi IegHnDOOrq+/aMk+XoreKQ2SPH1UIIzo7c3uTDbeuuD7RyXX9xP+P0f0+rz8o+OMH4YIPUlGxVNH elCKv2BSQL6Ky6n1o/ddWfPh9PobrbwB1Jj4vRnvuFdQKx3Zprq3ZEpafGy+zLjUntilh9dvYvV/ 5Pg3UZt3l4cobM5+AwD0A5qDgSPsXJ3GzCf4c0o7D6gM9WJQM09qxZnHEeB4hpRrmo/duzUUp/Lm dAppSIgUFfrADTYugkxoeFI3SBdsbM99WXFhG1DOOHLYM3A6BXfvel8OEFDbU529jj6VuEkkQiOd 2CLFCAI+R4HKWR6SMBqrz1a2dl/GB4j2lB9TLiDMfXuvSrucRXom7I3bwInONPnB4uC7Qfcgpsib JQz6bCR19sO/++nnSqCDBedeB75TJ0VuxRY+unEnaeycva4NRXu2m3j3Y8zB9xGo0bndvIE+SDBs cm+vLiZuZ5OAUoGBziSYFLZuu6wTRhJez+ibxiREoUwadL3g
X-Report-Abuse-To: spam@quarantine5.antispamcloud.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/D4u4wAeFaJTRANNdbHIu-tD1JqY>
Subject: Re: [dnssd] DNSSD privacy scaling issues
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.22
Precedence: list
List-Id: "Discussion of extensions to DNS-based service discovery for routed networks." <dnssd.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/dnssd>, <mailto:dnssd-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/dnssd/>
List-Post: <mailto:dnssd@ietf.org>
List-Help: <mailto:dnssd-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/dnssd>, <mailto:dnssd-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 15 Jan 2018 01:08:17 -0000


On 1/14/2018 2:55 PM, Christian Huitema wrote:
> We want privacy. That means that the devices will "offer service to some
> subset of clients", rather than "offer to everybody". But we do not
> delegate privacy to the infrastructure, so we cannot have solutions in
> which the infrastructure performs access control. That leaves solution
> in which the service is "offered to everybody", but only qualified
> clients understand the "real name" behind the obfuscated name. Hence the
> general structure: service announces an obfuscated name, typically
> function of time and secret. Clients will find the available services on
> the network, and filter out those that they are not interested in.
>
> There are two options for the trust token: symmetric key, or asymmetric.
>
> In the symmetric version, client and server manage a shared secret. Both
> client and server can construct the obfuscated name. Server publishes a
> name, encrypt or hash of time-based nonce with shared key. Clients can
> also construct a priori the obfuscated names of the servers that they
> are interested in. Client retrieves all names and check whether some of
> them match the expected peer list. Or, in server based discovery, client
> asks server whether obfuscated name is published. The problem there is a
> tradeoff between scalability and impersonation. If we use the same
> shared secret for all clients, the protocol scales well, but any
> authorized client can impersonate the server for all other clients. If
> we use pairwise secrets, as specified in the current draft, clients
> cannot impersonate the server for other clients but the protocol
> complexity increases significantly.
>
> In the asymmetric version, client knows the public key of the server.
> Server constructs the obfuscated instance name by encrypting the a
> time-based nonce with the private key. Client looks at all available
> obfuscated names, and attempts to decrypt every available name. This
> does not scale very well - public key operation times number of keys
> known to client times number of services present. But...
>
> In the asymmetric version, server could also construct an obfuscated
> service name by encrypting a time-based nonce with the public key.
> Client can also construct the obfuscated service name, because it knows
> the public key. It can look for that name, and normally only finds one
> instance of the server. It can verify that this is the right server by
> decrypting the obfuscated name. So we get a privacy respecting discovery
> system in which the server publishes exactly one record, and the client
> typically accesses exactly one record per service/server that it discovers.
>

In the asymmetric key version, privacy depends on the public key being
secret. If it is not, anybody can attempt to decrypt the obfuscated name
published by the servers, and check whether the result matches the
expected time-based nonce -- we get a "nonce-oracle". Adversaries can
collect lists of public keys, and use the oracle to track which servers
are advertising on a given network.

Treating the public key as a shared secret between the server and
authorized clients does significantly simplify the protocol:
"authorization to discover" simply means access to the public key. As we
saw above, we can use a nonce encrypted with the public key (or hashed
with the public key) as a service identifier. Maybe add the actual
service name in the mix if several services are managed using the same
public key.

Note that using the same key for all clients does not diminish privacy
compared to a solution that uses just bilateral secrets. The real secret
is the identity, presence and location of the server, and that secret
can be discovered by any authorized client. If just one client is
compromised, the server privacy is compromised, and having separate
secrets for each client won't change that.

-- Christian Huitema