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

Tommy Jensen <Jensen.Thomas@microsoft.com> Mon, 19 August 2019 17:47 UTC

Return-Path: <Jensen.Thomas@microsoft.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 C2A811200CE for <dns-privacy@ietfa.amsl.com>; Mon, 19 Aug 2019 10:47:55 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.001
X-Spam-Level:
X-Spam-Status: No, score=-2.001 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_NONE=-0.0001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=microsoft.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 kXHSZh4yTDX2 for <dns-privacy@ietfa.amsl.com>; Mon, 19 Aug 2019 10:47:53 -0700 (PDT)
Received: from NAM06-DM3-obe.outbound.protection.outlook.com (mail-eopbgr640134.outbound.protection.outlook.com [40.107.64.134]) (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 C13EA120043 for <dns-privacy@ietf.org>; Mon, 19 Aug 2019 10:47:52 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=A1rBD+gI2sCO50H7vu9K82c5Ff9DbnaG99Fw048Z8u28RBZD/w1uEu7DgXV8VabP4AO0vdn8rMhm4odJCh1/7sN1HITL8Us//aVWqu3yjcCGbsbPtVzf8cqTJxmWp5fz7ovVZLQ4LKTloe1QQ+v+1bYaRGdq3NzOfHc8c7I0UEOGUbyhkCopTC93gHO7NzoosH4594quTUw8lOJkBoOGyuNt9mKffShEqVUqnjLFPkgxFkqIwhYgvcaBzDiZtdHm59EcZqaiRYZ5UL3UhBfSbJvBGo26eHOKqUk7qW+7ZDu8pgynTuoff+ljJclNkTm+mVYO5L59iYZs99TNTORAJw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9ckJ8Eif9/293v1FuuUPJYRWjMtkyK4rjoi6UGLkuG0=; b=jYa9wLLb/CWirBcko/mDZdRD47T5PAfcYQOMUcM9Sf7PJyIFUvBIR5eSA7vS012cc+qKqgWjYoI/yx2ytw+lMaZZFEprvOMawaOOraMu7z3HfWv6RjR4Y6ABrcoPqcE/72aRuo/RRx9hrwKtqWgRY7H8c8X3OMV+pFC2zXa7EFvO5isphmnj9fPGZSRV9sdrxJgudZGm+ynfoognRlzYBgqnufqnU3u1V+4HqpfpWLDegliLRb4KFmqJFKRc8m2ND3KkYTbS0LC4xe/LZ6mmKM+AXACTCNH4TvcDTwH9/b83V9RkC+lu2oTSRm9br6AjMpTG+zMmofB5kHd9K2zaHQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=microsoft.com; dmarc=pass action=none header.from=microsoft.com; dkim=pass header.d=microsoft.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=9ckJ8Eif9/293v1FuuUPJYRWjMtkyK4rjoi6UGLkuG0=; b=FADutkYKzKSAxLRaZfUxnpoGdfUb75nKqfNW5TId+6Q2yeLuxuLWfoeRK7dkAN/myU6hv0MGwciRA4xQBuApHIcjIw+buY+H2eqqpc9she14OxbpbcWWOrUZiCwwLAr7aSaIq1bhI/cc6Up8SYj8Bpv07EmSZ6/t/lRRR8M9e8M=
Received: from CO2PR00MB0072.namprd00.prod.outlook.com (10.166.215.138) by CO2PR00MB0214.namprd00.prod.outlook.com (10.166.214.138) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2228.0; Mon, 19 Aug 2019 17:47:50 +0000
Received: from CO2PR00MB0072.namprd00.prod.outlook.com ([fe80::9901:ff7d:846:97a8]) by CO2PR00MB0072.namprd00.prod.outlook.com ([fe80::9901:ff7d:846:97a8%13]) with mapi id 15.20.2233.000; Mon, 19 Aug 2019 17:47:50 +0000
From: Tommy Jensen <Jensen.Thomas@microsoft.com>
To: Bob Harold <rharolde@umich.edu>
CC: Iain Sharp <isharp@atis.org>, "dns-privacy@ietf.org" <dns-privacy@ietf.org>
Thread-Topic: [dns-privacy] Operating System API support for DNS security policy
Thread-Index: AdVWc+IFAQCIla+6Tnq+4hdu11XGygAN2GoDAAJougAAAA4Nsg==
Date: Mon, 19 Aug 2019 17:47:49 +0000
Message-ID: <CO2PR00MB0072AB503AD2E8ED469BA3FFFAA80@CO2PR00MB0072.namprd00.prod.outlook.com>
References: <MN2PR10MB4046A5FC33FDE3192C93AA95B0A80@MN2PR10MB4046.namprd10.prod.outlook.com> <CY1PR00MB0074C6229B0418BDC1AEC45DFAA80@CY1PR00MB0074.namprd00.prod.outlook.com>, <CA+nkc8Bk_AdP4w9m1wo8L+u98=ip7jrw13U-QdkF_GMhfYXKAA@mail.gmail.com>
In-Reply-To: <CA+nkc8Bk_AdP4w9m1wo8L+u98=ip7jrw13U-QdkF_GMhfYXKAA@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
msip_labels: MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Enabled=True; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SiteId=72f988bf-86f1-41af-91ab-2d7cd011db47; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_SetDate=2019-08-19T17:47:49.494Z; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Name=General; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_ContentBits=0; MSIP_Label_f42aa342-8706-4288-bd11-ebb85995028c_Method=Standard;
authentication-results: spf=none (sender IP is ) smtp.mailfrom=Jensen.Thomas@microsoft.com;
x-originating-ip: [131.107.147.40]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: 3c8d80b5-0eb2-462b-686f-08d724cd5a73
x-ms-office365-filtering-ht: Tenant
x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600158)(711020)(4605104)(1401327)(4618075)(2017052603328)(7193020); SRVR:CO2PR00MB0214;
x-ms-traffictypediagnostic: CO2PR00MB0214:
x-microsoft-antispam-prvs: <CO2PR00MB02143E452548ECAE3AB0DCE2FAA80@CO2PR00MB0214.namprd00.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:8882;
x-forefront-prvs: 0134AD334F
x-forefront-antispam-report: SFV:NSPM; SFS:(10019020)(4636009)(396003)(366004)(376002)(136003)(39860400002)(346002)(15404003)(189003)(199004)(14454004)(53546011)(11346002)(476003)(22452003)(446003)(52536014)(4326008)(5660300002)(33656002)(102836004)(6116002)(8990500004)(26005)(3846002)(486006)(66066001)(76176011)(7696005)(74316002)(81166006)(81156014)(19627405001)(86362001)(316002)(5070765005)(7736002)(8936002)(99286004)(105004)(54906003)(186003)(8676002)(2906002)(66946007)(76116006)(91956017)(10290500003)(6506007)(66446008)(64756008)(66556008)(66476007)(25786009)(236005)(10090500001)(6436002)(229853002)(478600001)(256004)(14444005)(6246003)(71190400001)(71200400001)(15650500001)(6916009)(2171002)(53936002)(9686003)(55016002)(54896002); DIR:OUT; SFP:1102; SCL:1; SRVR:CO2PR00MB0214; H:CO2PR00MB0072.namprd00.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1;
received-spf: None (protection.outlook.com: microsoft.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam-message-info: jD+AHQEPP9YAVWFBDZ2iBBxU6WOZrikqkU0EtsdH/dVocm/T5K9QJBvkO6Jyc8cBWmNsB2ZA3pkSzXaNIRxrgbeVNMqhBFnTH0gjmKI1wEvwKzI+L7g9XCNYd/zQB22Wcq4mYQ0GjL19o2j3azxqYe3QCcR/SgYJaL21QmuE7njN4d+vqXT5kw7elMEF6XzK5kspOxVJSN+YDAvdsrQjPjpl5xJgGx0mfsQDqv0FjBEcx4a6MguI1fwteiskgB5Wv3WASu9nsk0ZXQl2Fh0Q5mtaEwSG5RbMBuRtxPE+t356O+ZmYhA7oln9BxpK69ylRaXVvnL/UerS6hivnB6iWZRx7F6aKn+XBfmyoU1XRjZ9uADdkdRnmqLFdNzhyYY5f5mawqYuWKPE3uM3zjYGDR7N4Q78PkdamXjLOqxfgUw=
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_CO2PR00MB0072AB503AD2E8ED469BA3FFFAA80CO2PR00MB0072namp_"
MIME-Version: 1.0
X-OriginatorOrg: microsoft.com
X-MS-Exchange-CrossTenant-Network-Message-Id: 3c8d80b5-0eb2-462b-686f-08d724cd5a73
X-MS-Exchange-CrossTenant-originalarrivaltime: 19 Aug 2019 17:47:50.0143 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 72f988bf-86f1-41af-91ab-2d7cd011db47
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: O4Z89kunwSevyuNJeWL+LUIE1xZfIrDDXEaPpblM9LfnIQhioXR0nEaIWUMgvRwyZayLahhDUijnYaHHq6Hu7w==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: CO2PR00MB0214
Archived-At: <https://mailarchive.ietf.org/arch/msg/dns-privacy/szDwtVei0em9DmFmHtPEXM9FKLs>
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 17:47:56 -0000

bob> I read this differently - the api needs to tell the app whether the OS does encrypted DNS

I agree. If that was your original Iain, then I apoligize.

Bob, your table also highlights a concern of mine, which is empowering apps to know what the platform has to offer them and when using their own DNS stub will break existing user/administrator expectations. Not all cases are privacy related, but some are.

Thanks,
Tommy
________________________________
From: Bob Harold <rharolde@umich.edu>
Sent: Monday, August 19, 2019 10:38 AM
To: Tommy Jensen <Jensen.Thomas@microsoft.com>
Cc: Iain Sharp <isharp@atis.org>; dns-privacy@ietf.org <dns-privacy@ietf.org>
Subject: Re: [dns-privacy] Operating System API support for DNS security policy


On Mon, Aug 19, 2019 at 1:29 PM Tommy Jensen <Jensen.Thomas=40microsoft.com@dmarc.ietf.org<mailto: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.

--
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<mailto:dns-privacy-bounces@ietf.org>> on behalf of Iain Sharp <isharp@atis.org<mailto:isharp@atis.org>>
Sent: Monday, August 19, 2019 2:56 AM
To: dns-privacy@ietf.org<mailto:dns-privacy@ietf.org> <dns-privacy@ietf.org<mailto: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