Re: [dns-privacy] Operating System API support for DNS security policy

stephen.farrell@cs.tcd.ie Mon, 19 August 2019 18:14 UTC

Return-Path: <stephen.farrell@cs.tcd.ie>
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 634B1120098 for <dns-privacy@ietfa.amsl.com>; Mon, 19 Aug 2019 11:14:03 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -4.3
X-Spam-Level:
X-Spam-Status: No, score=-4.3 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_MED=-2.3, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cs.tcd.ie
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 YXxG27ECEhBG for <dns-privacy@ietfa.amsl.com>; Mon, 19 Aug 2019 11:14:01 -0700 (PDT)
Received: from mercury.scss.tcd.ie (mercury.scss.tcd.ie [134.226.56.6]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id CA53C120804 for <dns-privacy@ietf.org>; Mon, 19 Aug 2019 11:14:00 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by mercury.scss.tcd.ie (Postfix) with ESMTP id 4D66EBE3E; Mon, 19 Aug 2019 19:13:58 +0100 (IST)
X-Virus-Scanned: Debian amavisd-new at scss.tcd.ie
X-Amavis-Alert: BAD HEADER SECTION, Improper folded header field made up entirely of whitespace (char 20 hex): References: ...u98=ip7jrw13U-QdkF_GMhfYXKAA@mail.gmail.com>
Received: from mercury.scss.tcd.ie ([127.0.0.1]) by localhost (mercury.scss.tcd.ie [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id GeDYJwOD1Wy8; Mon, 19 Aug 2019 19:13:56 +0100 (IST)
Received: from [10.244.2.235] (95-45-153-252-dynamic.agg2.phb.bdt-fng.eircom.net [95.45.153.252]) by mercury.scss.tcd.ie (Postfix) with ESMTPSA id 69E05BDCF; Mon, 19 Aug 2019 19:13:56 +0100 (IST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cs.tcd.ie; s=mail; t=1566238436; bh=+/evnooDd4yl7LPcCr9VdhPvTxdTkW8KMeXaUUbgW4I=; h=To:Cc:From:Subject:In-Reply-To:References:Date:From; b=aNcN9wzuWBTheQcq0l8k/hI1HLUXL6uMfk8ZjnkHPButhZgRm4w3iy3WPJ8aUEgf4 bTcwespFY7D/2l3PYI/1vGC+sbxINtr8Vu8jYIaU0tYhkqIG1vfO+7TzA2MVa6EwKt vDDEvedQwVVxgZ9uc25Pqgg3XNVh/L8MkE8ppBXY=
X-Priority: 3
To: rharolde@umich.edu
Cc: isharp@atis.org,dns-privacy@ietf.org, Jensen.Thomas=40microsoft.com@dmarc.ietf.org
From: stephen.farrell@cs.tcd.ie
In-Reply-To: <CA+nkc8Bk_AdP4w9m1wo8L+u98=ip7jrw13U-QdkF_GMhfYXKAA@mail.gmail.com>
References: <MN2PR10MB4046A5FC33FDE3192C93AA95B0A80@MN2PR10MB4046.namprd10.prod.outlook.com> <CY1PR00MB0074C6229B0418BDC1AEC45DFAA80@CY1PR00MB0074.namprd00.prod.outlook.com> <CA+nkc8Bk_AdP4w9m1wo8L+u98=ip7jrw13U-QdkF_GMhfYXKAA@mail.gmail.com>
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: base64
Date: Mon, 19 Aug 2019 18:13:56 +0000
Message-ID: <ijd4mi.pwhxb9.31eoyz-qmf@mercury.scss.tcd.ie>
MIME-Version: 1.0
Archived-At: <https://mailarchive.ietf.org/arch/msg/dns-privacy/LIbs9bi1kPE1WRxbfbkwpeLtM9o>
Subject: Re: [dns-privacy] Operating System API support for DNS security policy
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, 19 Aug 2019 18:14:04 -0000


On Monday, 19 August 2019, Bob Harold wrote:
> On Mon, Aug 19, 2019 at 1:29 PM Tommy Jensen <Jensen.Thomas=
> 40microsoft.com@dmarc.ietf.org>; wrote:
> 
> > Hey Iain,
> >
> > Iain> Many applications rely on operating system APIs to access DNS
> > services. As native support of DNS over TLS rolls out in to operating
> > systems it seems likely that some applications will wish to control the
> > security policy that the operating system applies when it performs DNS
> > resolution. For example, the application may wish to require that the
> > operating system uses an encrypted DNS protocol.
> >
> > I actually don't see this being necessary. Walking through the
> > possibilities:
> >
> >    - If the OS supports DoT and the configured servers support it:
> >       - OS should be using DoT whether the app requests it or not
> >    - If the OS supports DoT but the servers don't:
> >       - App intent isn't helpful (to the same server)
> >    - If the OS doesn't support it:
> >       - App intent isn't helpful
> >
> > I read this differently - the api needs to tell the app whether the OS
> does encrypted DNS:
> 
>    - OS supports DoT and can connect to a DoT resolver
>       - App uses OS for DNS
>    - OS does not support DoT
>       - App connects to a DoT server itself, bypassing the OS  (even though
>       I dislike this, unless the user has agreed)
>    - OS supports DoT but cannot reach a DoT server
>       - various choices, we don't need to discuss this now.
>

+1, there's also the case of TLS ESNI where the application wants to only do the lookup if DNS privacy will be used. Different applications may choose different  fallbacks if DNS privacy is  not available from the OS.

Cheers, 
S.

 
> -- 
> Bob Harold
> 
> 
> >
> >
> > My view is that the OS should be taking the most secure DNS route it has
> > available regardless of app request (after all, think of all the apps which
> > won't request DoT but should). In the case where the OS supports DoT but
> > isn't using it, that decision is being made in the context of other
> > information, such as enterprise configuration, that the app may not have.
> >
> > Iain> Unless operating systems support secure DNS standards and expose
> > APIs to allow applications to use them effectively then applications that
> > require secure DNS have little choice other than to roll their own
> > implementations.
> >
> > I totally agree. Platforms should be providing the network tools apps need
> > so all apps can benefit similarly, rather than leaving apps to figure out
> > networking nuance on their own. I just think in this case that there should
> > never have to be a situation where an app needs to request DNS encryption
> > (because either it's already happening or it can't happen for some reason
> > unknown to the app).
> >
> > Summary: I think such an API should be unnecessary on well-behaved
> > platforms.
> >
> > Thanks,
> > Tommy
> > ------------------------------
> > *From:* dns-privacy <dns-privacy-bounces@ietf.org>; on behalf of Iain
> > Sharp <isharp@atis.org>;
> > *Sent:* Monday, August 19, 2019 2:56 AM
> > *To:* dns-privacy@ietf.org <dns-privacy@ietf.org>;
> > *Subject:* [dns-privacy] Operating System API support for DNS security
> > policy
> >
> >
> > All,
> >
> >
> >
> > DNS over TLS offers the ability to perform DNS queries over a TLS secured
> > channel. In my understanding, DNS over TLS is not yet available in all
> > operating systems, but operating system support could become common in
> > future.
> >
> >
> >
> > Many applications rely on operating system APIs to access DNS services. As
> > native support of DNS over TLS rolls out in to operating systems it seems
> > likely that some applications will wish to control the security policy that
> > the operating system applies when it performs DNS resolution. For example,
> > the application may wish to require that the operating system uses an
> > encrypted DNS protocol.
> >
> >
> >
> > Today, most operating systems use the getaddrinfo() function described in
> > RFC3493 as the basis of their API for translating DNS names to IP
> > addresses, but this does not have security policy attributes.. Is anyone
> > aware of any activity to enhance the RFC3493 work to add application
> > control of security policy to the getaddrinfo()  capabilities?
> >
> >
> >
> > Unless operating systems support secure DNS standards and expose APIs to
> > allow applications to use them effectively then applications that require
> > secure DNS have little choice other than to roll their own implementations.
> >
> >
> >
> >
> >
> > Thanks
> >
> >
> >
> > Iain
> >
>