Re: [dnssd] Confirming consensus from DNSSD Privacy discussion in Bangkok

Bob Bradley <bradley@apple.com> Thu, 28 February 2019 03:32 UTC

Return-Path: <bradley@apple.com>
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 4911C127598 for <dnssd@ietfa.amsl.com>; Wed, 27 Feb 2019 19:32:59 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7
X-Spam-Level:
X-Spam-Status: No, score=-7 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=apple.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 2-2Jd1In52ES for <dnssd@ietfa.amsl.com>; Wed, 27 Feb 2019 19:32:57 -0800 (PST)
Received: from ma1-aaemail-dr-lapp02.apple.com (ma1-aaemail-dr-lapp02.apple.com [17.171.2.68]) (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 461C21228B7 for <dnssd@ietf.org>; Wed, 27 Feb 2019 19:32:57 -0800 (PST)
Received: from pps.filterd (ma1-aaemail-dr-lapp02.apple.com [127.0.0.1]) by ma1-aaemail-dr-lapp02.apple.com (8.16.0.27/8.16.0.27) with SMTP id x1S3WRuD028454; Wed, 27 Feb 2019 19:32:52 -0800
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=apple.com; h=mime-version : content-type : sender : from : message-id : subject : date : in-reply-to : cc : to : references; s=20180706; bh=y0OFf5mockuLJ+eY6bsAKRYrTnFS1iY7ps+q5jJHV0Y=; b=GGC07VD1GTUwquOd9uR021Wa41M7tptpwy4MR1kCqUqeTYugE2zTrARAViAR91AO3x83 woLIp0/5lhm3OK4ue/0Di369oLhARbXz70BSZ/Rztv0652q67MVwXqJ7PCCJZl4nzvZc GO03wYEgbsvMnRs7m8SUeEzl94wuvpt9re0z0nyQ789CtOAYG8/Ij9VeSAbdmO43ff1G xD9b5nmnXuU4ncepMe8eYAjsSTYAm2/avrytiza1mWh5NXmDkLV0aRyRKvjuCDHBaOwz 60ibWKZNl/eE11uLC4ioRoMOfIewZbTIlyPNINWqUTH2U9n+zzBCv/5WV+PO8+rc9mi3 3Q==
Received: from ma1-mtap-s03.corp.apple.com (ma1-mtap-s03.corp.apple.com [17.40.76.7]) by ma1-aaemail-dr-lapp02.apple.com with ESMTP id 2qu3r38jc5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NO); Wed, 27 Feb 2019 19:32:51 -0800
MIME-version: 1.0
Content-type: multipart/alternative; boundary="Boundary_(ID_bv/KmB5x7ad9itOK0xQ9fQ)"
Received: from nwk-mmpp-sz12.apple.com (nwk-mmpp-sz12.apple.com [17.128.115.204]) by ma1-mtap-s03.corp.apple.com (Oracle Communications Messaging Server 8.0.2.3.20181024 64bit (built Oct 24 2018)) with ESMTPS id <0PNM007789URX8A0@ma1-mtap-s03.corp.apple.com>; Wed, 27 Feb 2019 19:32:51 -0800 (PST)
Received: from process_milters-daemon.nwk-mmpp-sz12.apple.com by nwk-mmpp-sz12.apple.com (Oracle Communications Messaging Server 8.0.2.3.20181024 64bit (built Oct 24 2018)) id <0PNM004009HCSR00@nwk-mmpp-sz12.apple.com>; Wed, 27 Feb 2019 19:32:51 -0800 (PST)
X-Va-A:
X-Va-T-CD: ef32e8beda2f07f043a654f225792f0e
X-Va-E-CD: a4bee68cb9a28f988d727c8ecff39609
X-Va-R-CD: edf26e1a2599e7fb606d76b44a391aa1
X-Va-CD: 0
X-Va-ID: dca9c05f-75e7-48c4-a973-b4a548e74407
X-V-A:
X-V-T-CD: ef32e8beda2f07f043a654f225792f0e
X-V-E-CD: a4bee68cb9a28f988d727c8ecff39609
X-V-R-CD: edf26e1a2599e7fb606d76b44a391aa1
X-V-CD: 0
X-V-ID: 50ff0925-acfc-4b06-a3e4-7cd3c5a51267
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2019-02-28_02:,, signatures=0
Received: from [17.234.101.71] by nwk-mmpp-sz12.apple.com (Oracle Communications Messaging Server 8.0.2.3.20181024 64bit (built Oct 24 2018)) with ESMTPSA id <0PNM009O49UQ4J10@nwk-mmpp-sz12.apple.com>; Wed, 27 Feb 2019 19:32:51 -0800 (PST)
Sender: bradley@apple.com
From: Bob Bradley <bradley@apple.com>
Message-id: <63A34779-850D-4402-A229-16F1B07268EE@apple.com>
Date: Wed, 27 Feb 2019 19:32:50 -0800
In-reply-to: <CAO8oSXmKwA6yE3A_OczjCBSvLwm1jqT3dEDNGzAB88ZM785+CQ@mail.gmail.com>
Cc: Christian Huitema <huitema@huitema.net>, DNSSD <dnssd@ietf.org>, David Schinazi <dschinazi.ietf@gmail.com>
To: Christopher Wood <christopherwood07@gmail.com>
References: <CAPDSy+6YyW_G7uwfwGPv1KLtJqL96dZ87R-5pnmmffEEniTigg@mail.gmail.com> <47A82E32-32B9-476F-AB79-76C8D182624F@apple.com> <CAO8oSXkGAErtKQgMGGT+88PY4Y+wJ_6Rz493exaymZ_L8F4FNg@mail.gmail.com> <CAPDSy+68V=rx8cAbVq6rKxNbb9yHisCCPURwHoLKsA179NooLw@mail.gmail.com> <e9b4900d-94e3-c79a-2a72-e2f996663b9d@huitema.net> <CAPDSy+4d27SQCStGzPpzzv=pjGiCM+0df988BesRGHdV_vvteA@mail.gmail.com> <CAO8oSXnXre29hjbNCZ1N7b8VBRMubS1yO5_XXr7VY2yxzNAWGw@mail.gmail.com> <1fc0ba86-2619-6efb-5e89-aa0a025c998e@huitema.net> <CAO8oSX=rWYxkKq0H5dEJDKq_Hs3tH2gqSxQ-Cr_SaHDPkrvvCA@mail.gmail.com> <CAO8oSXkfszNXUT6gr1G2OEWgJXe-cX_S4yAJmLm5sUqN0SQ54w@mail.gmail.com> <CAPDSy+7UvYdNOeYZg-R2b+eXuvGNMguXDWtkKgotVpLP5YPk4g@mail.gmail.com> <3d4d353e-5cb5-e35f-fc31-db819b4b2506@huitema.net> <CAO8oSX=9Fi60GigVWgCRkLXxwgF8aD1BveVNicz6_m5S-MQnYg@mail.gmail.com> <867b0844-ddf2-a7d1-4b3c-166fb4770e2d@huitema.net> <CAO8oSXmKwA6yE3A_OczjCBSvLwm1jqT3dEDNGzAB88ZM785+CQ@mail.gmail.com>
X-Mailer: Apple Mail (2.3445.104.2)
X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-02-28_02:, , signatures=0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dnssd/OuP21eM0ewLwoJS9oRDQcnq4vMA>
Subject: Re: [dnssd] Confirming consensus from DNSSD Privacy discussion in Bangkok
X-BeenThere: dnssd@ietf.org
X-Mailman-Version: 2.1.29
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: Thu, 28 Feb 2019 03:32:59 -0000

> On Feb 27, 2019, at 6:04 PM, Christopher Wood <christopherwood07@gmail.com> wrote:
> 
> On Wed, Feb 27, 2019 at 5:58 PM Christian Huitema <huitema@huitema.net <mailto:huitema@huitema.net>> wrote:
> 
> 
> On 2/27/2019 5:40 PM, Christopher Wood wrote:
>> On Wed, Feb 27, 2019 at 5:37 PM Christian Huitema <huitema@huitema.net> <mailto:huitema@huitema.net> wrote:
>>> On 2/27/2019 4:48 PM, David Schinazi wrote:
>>> 
>>> <chair hat off>
>>> Given that our main target is local networks, I personally believe spending an extra round trip to prevent dictionary attacks sounds worth it.
>>> 
>>> I am thinking of using the ESNI extension, or developing a very similar extension specifically for the purpose of private discovery. The ESNI extension format is defined in https://datatracker.ietf.org/doc/draft-ietf-tls-esni/?include_text=1 <https://datatracker.ietf.org/doc/draft-ietf-tls-esni/?include_text=1> as:
>>> 
>>>       struct {
>>>           CipherSuite suite;
>>>           KeyShareEntry key_share;
>>>           opaque record_digest<0..216-1>;
>>>           opaque encrypted_sni<0..216-1>;
>>>       } ClientEncryptedSNI;
>>> 
>>> The service name is encrypted, but we would have to do something to not reveal the hash of the key in the "record digest".
>> This seems to highlight my main reservation about the 1-RTT approach.
>> I think we ought not to complicate things and just pay the round trip.
> My priority there is not the 1 RTT design, but rather the integration with TLS. I don't like coming up with a new crypto protocol, even when using well known patterns.
> 
> 
> That’s a fair concern. Note that I’m not advocating for something that’s not TLS. I’m simply advocating for something that’s not one stage.

I may be missing something, but the TLS/ESNI approach seems to assume you already know the peer you want to communicate with and their IP address to make a TLS connection. For local network communication, you would need some earlier message exchange, such as normal mDNS to discovery that info.

The main reason for the first message (multicast probe) in my proposal was to enable the initial discovery of peers (before any specific queries). Since that message needed to be sent anyway, before any unicast messages could be sent, it included an ephemeral key to also act as the first round of key exchange (1 multicast out, N unicast in).

Since I also wanted to keep the query itself confidential between the two peers (friend A can't decrypt my queries to friend B), the sender couldn't encrypt with its public key unless it include a separate, encrypted query for every peer in its database (likely prohibitive). Given those requirements, the initial multicast probe reduces the number of messages rather than adding additional round trips.
> As for the complication, the only requirement is to omit the record_digest, or redefine it to include a nonce. Apart from that the prototype can just reuse the existing code.
> 
> 
> The record digest is required to prevent downgrade attacks in the normal ESNI case. Depending on how the keys are installed, it may be fine to omit here. 
> 
> Can you please be specific for how you expect this optional nonce to work? It would help this discussion, I think.
> 
> Thanks,
> Chris
> 
> 
>