-
Notifications
You must be signed in to change notification settings - Fork 3
/
draft-reddy-add-enterprise-policy-01.xml
581 lines (480 loc) · 25.1 KB
/
draft-reddy-add-enterprise-policy-01.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
<?xml version="1.0" encoding="US-ASCII"?>
<!-- This template is for creating an Internet Draft using xml2rfc,
which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
There has to be one entity for each item to be referenced.
An alternate method (rfc include) is described in the references. -->
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs),
please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
(Here they are set differently than their defaults in xml2rfc v1.32) -->
<?rfc strict="yes" ?>
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space
(using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="std" docName="draft-reddy-add-enterprise-policy-01"
ipr="trust200902">
<front>
<title abbrev="Network policy to use Resolvers">Network policy to use
Network-designated DNS Resolvers</title>
<author fullname="Tirumaleswar Reddy" initials="T." surname="Reddy">
<organization>Akamai</organization>
<address>
<postal>
<street>Embassy Golf Link Business Park</street>
<city>Bangalore</city>
<region>Karnataka</region>
<code>560071</code>
<country>India</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Dan Wing" initials="D." surname="Wing">
<organization abbrev="Citrix">Citrix Systems, Inc.</organization>
<address>
<postal>
<street>4988 Great America Pkwy</street>
<city>Santa Clara</city>
<region>CA</region>
<code>95054</code>
<country>USA</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<author fullname="Kevin Smith" initials="K." surname="Smith">
<organization abbrev="Vodafone">Vodafone Group</organization>
<address>
<postal>
<street>One Kingdom Street</street>
<city>London</city>
<country>UK</country>
</postal>
<email>[email protected]</email>
</address>
</author>
<date />
<workgroup>ADD</workgroup>
<abstract>
<t>This document specifies a mechanism to inform endpoints about any
network policy mandating the use of network-designated DNS
resolvers.</t>
</abstract>
</front>
<middle>
<section anchor="intro" title="Introduction">
<t>Historically, an endpoint would utilize network-designated DNS
servers upon joining a network (e.g., DHCP OFFER, IPv6 Router
Advertisement). While it has long been possible to configure endpoints
to ignore the network's suggestions and use a (public) DNS server on the
Internet, this was seldom used because some networks block UDP/53 (in
order to enforce their own DNS policies). Also, there has been an
increase in the availability of "public resolvers" <xref
target="RFC8499"></xref> which DNS clients may be pre-configured to use
instead of the default network resolver for a variety of reasons (e.g.,
offer a good reachability, support an encrypted transport, provide a
claimed privacy policy, (lack of) filtering). With the advent of DoT and
DoH, such network blocking is more difficult. The network is unable to
express its policy to use network-designated resolvers to the endpoints
and the endpoint is unable to identify the reason why the public DNS
server is not reachable.</t>
<t>If DNS resolvers not signaled by the network (e.g., DNS-over-TLS
(DoT) <xref target="RFC7858"></xref> or DNS-over-HTTPS (DoH) <xref
target="RFC8484"></xref>) are used instead of using network-designated
DNS servers, it can adversely impact Enterprise network-based security
features. Indeed, various network security services are provided by
Enterprise networks to protect endpoints (e.g., laptops, printers, IoT
devices) and to enforce enterprise-specific policies. These policies may
be necessary to protect employees, customers, or enterprise network. It
is out of the scope of this memo to characterize such policies nor
assess that they achieve the claimed intent. Nevertheless,
network-designated DNS servers in place for these purposes act on DNS
messages involving endpoints connected to the Enterprise network to
enforce these policies. Therefore, if an endpoint uses a DNS resolver
not signaled by the network, the desired enterprise protection level and
enforcement will be bypassed and thus nullified.</t>
<t>In order to act on DNS messages involving endpoints connected to an
Enterprise network, network security services can be configured to block
DoT traffic by dropping outgoing packets to destination port number 853.
Identifying DoH traffic is far more challenging than identifying DoT
traffic. Network security services may try to identify the well-known
DoH resolvers by their domain name and DoH traffic can be blocked by
dropping outgoing packets to these domains. However, DoH traffic can not
be fully identified without acting as a TLS proxy.</t>
<t>With the advent of DoT and DoH, the network is unable to express any
such policy to the endpoints, and if the network is blocking alternative
resolvers, endpoints are unable to identify the reason why their choice
of public DNS resolver is not reachable. This results in
incompatibilities with the privacy profiles discussed in <xref
target="RFC8310"></xref>:</t>
<t><list style="symbols">
<t>If an endpoint has enabled strict privacy profile (Section 5 of
<xref target="RFC8310"></xref>), the endpoint cannot resolve DNS
names.</t>
<t>If an endpoint has enabled opportunistic privacy profile (Section
5 of <xref target="RFC8310"></xref>), the endpoint will either
fallback to an encrypted connection without authenticating the DNS
server signaled by the local network or fallback to clear text DNS,
and cannot exchange encrypted DNS messages. <vspace
blankLines="1" />The fallback adversely impacts security and privacy
as internal attacks are possible within Enterprise networks. For
example, an internal attacker can modify the DNS responses to
re-direct a client to malicious servers or pervasively monitor the
DNS traffic.</t>
</list></t>
<t>This document describes a mechanism for informing endpoints of
network policy related to network-designated DNS servers, such as those
DNS servers signaled using <xref target="I-D.ietf-add-dnr"></xref> and
<xref target="I-D.ietf-add-ddr"></xref>.</t>
</section>
<section anchor="notation" title="Terminology">
<t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
"OPTIONAL" in this document are to be interpreted as described in BCP 14
<xref target="RFC2119"></xref><xref target="RFC8174"></xref> when, and
only when, they appear in all capitals, as shown here.</t>
<t>This document makes use of the terms defined in <xref
target="RFC8499"></xref>. The terms "Private DNS", "Global DNS" and
"Split DNS" are defined in <xref target="RFC8499"></xref>.</t>
<t>'Encrypted DNS' refers to a DNS protocol that provides an encrypted
channel between a DNS client and server (e.g., DoT, DoH, or DoQ).</t>
<t>The term "enterprise network" in this document extends to a wide
variety of deployment scenarios. For example, an "enterprise" can be a
Small Office, Home Office or Corporation. The clients that connect to a
enterprise network can securely authenticate that network and the client
is sure that it has connected to the network it was expecting.</t>
</section>
<section anchor="SplitDNSAllowed"
title="PvD NetworkDNSOnly and ErrorNetworkDNSOnly Keys">
<t>Provisioning Domains (PvDs) are defined in <xref
target="RFC7556"></xref> as sets of network configuration information
that clients can use to access networks, including rules for DNS
resolution and proxy configuration. <xref target="RFC8801"></xref>
defines a mechanism for discovering multiple Explicit PvDs on a single
network and their Additional Information by means of an HTTP-over-TLS
query using a URI derived from the PvD ID. This set of additional
configuration information is referred to as a Web Provisioning Domain
(Web PvD).</t>
<t>This document defines two PvD Key:<list style="hanging">
<t hangText="The NetworkDNSOnly PvD Key:">which determines if
network will block, or attempt to block, DNS queries sent to DNS
servers that were not signaled by the network. This key has the
value True or False (case insensitive).</t>
<t hangText="The ErrorNetworkDNSOnly PvD Key:">which contains a
extended DNS error code defined in <xref target="RFC8914"></xref>
for the NetworkDNSOnly block. This key is only present if
NetworkDNSOnly is True. Note that the extended error code "Blocked"
defined in Section 4.16 of <xref target="RFC8914"></xref> identifies
access to domains is blocked due to an policy by the operator of the
DNS server, extended error code "Censored" defined in Section 4.17
of <xref target="RFC8914"></xref> identifies access to domains is
blocked based on a requirement from an external entity and the
extended error code "Filtered" defined in Section 4.18 of <xref
target="RFC8914"></xref> identifies access to domains is blocked
based on the request from the client to blacklist domains.</t>
</list></t>
<t>Some enterprise networks require clients to query the
network-designated DNS servers, it sets the PvD NetworkDNSOnly key to
True, otherwise sets NetworkDNSOnly to False. If NetworkDNSOnly is set
to True, it implies the network will block, or attempt to block, DNS
queries sent to DNS servers that were not signaled by the network. If
NetworkDNSOnly is True, the ErrorNetworkDNSOnly key MUST contain the
extended DNS error code defined in <xref target="RFC8914"></xref> for
this block. The ErrorNetworkDNSOnly key is useful when the client does
not use DNS resolution by the network-designated DNS server to reach the
DNS servers not signaled by the network. For example, the client can be
pre-configured with both the domain name and IP addresses of the DNS
server not signaled by the network (Section 7.1 in <xref
target="RFC8310"></xref>) or the client can be pre-configured with the
IP address of the resolver, and it uses IP address in the certificate as
identifier (see <xref target="RFC8738"></xref>). In this case, the
extended error code "Blocked" defined in <xref target="RFC8914"></xref>
cannot be returned to the client to provide additional information about
the cause for the block. Further, the ErrorNetworkDNSOnly key is useful
when the network security service fails to block access to the DNS
server not signaled by the network but successfully filters traffic from
the endpoint to IP addresses not conveyed to the endpoint as part of DNS
resolution by the network-designated DNS server.</t>
<t>The NetworkDNSOnly set to True is an internal security policy
expression by the operator of the network but is not a policy
prescription to the endpoints to disable its use of its other configured
DNS servers; that is, the endpoint can ignore NetworkDNSOnly set to
True. If joining an un-trusted network (e.g., coffeeshop, hotel, airport
network), a True value of NetworkDNSOnly MUST be ignored. The mechanism
the client uses to determine 'trusted network' to assist the user MUST
involve authenticated identity of the network (not merely matching SSID
in the case of WiFi), such as 802.1X or confirming the
network-designated encrypted resolver name is pre-configured in the
Operating System and TLS handshake with it succeeds. For example, the
client can determine "Open" (unencrypted) wireless networks are
untrusted networks, notify the user that using a shared and public
Pre-Shared Key (PSK) for wireless authentication is a untrusted network.
If the pre-shared-key is the same for all clients that connect to the
same WLAN, the shared key will be available to all nodes, including
attackers, so it is possible to mount an active on-path attack (e.g.,
<xref target="Evil-Twin"></xref>, <xref target="Krack"></xref>, <xref
target="Dragonblood"></xref>). For example, coffee shops and air ports
use PSK and are unwilling to perform complex configuration on their
networks. In addition, customers are generally unwilling to do
complicated provisioning on their devices just to obtain free Wi-Fi.
This type of networks can be tagged as "untrusted networks" with minimal
human intervention. In such cases the endpoint MAY choose to use an
alternate network (e.g., cellular) to resolve the global domain
names.</t>
</section>
<section anchor="Scope" title="Scope of NetworkDNSOnly Key">
<t>If a device is managed by an enterprise's IT department, the device
can be configured to use a specific encrypted DNS server. This
configuration may be manual or rely upon whatever deployed device
management tool in an enterprise network. For example, customizing
Firefox using Group Policy to use the Enterprise DoH server is discussed
in <xref target="Firefox-Policy"></xref> for Windows and MacOS, and
setting Chrome policies is discussed in <xref
target="Chrome-Policy"></xref> and <xref
target="Chrome-DoH"></xref>.</t>
<t>If mobile device management (MDM) (e.g., <xref
target="MDM-Apple"></xref>) secures a device, MDM can configure
OS/browser with a specific encrypted DNS server. If an endpoint is
on-boarded, for example, using Over-The-Air (OTA) enrollment <xref
target="OTA"></xref> to provision the device with a certificate and
configuration profile, the configuration profile can include the
authentication domain name (ADN) of the encrypted DNS server. The
OS/Browser can use the configuration profile to use a specific encrypted
DNS server. In this case, MDM is not installed on the device.</t>
<t>Provisioning IT-managed devices, BYOD devices with MDM or
configuration profile with network-designated DNS server is outside the
scope of this document.</t>
<t>Typically, Enterprise networks do not assume that all devices in
their network are managed by the IT team or MDM, especially in the quite
common BYOD scenario. The endpoint can use the discovered
network-designated DNS server to only access DNS names for which the
Enterprise network claims authority and use another public DNS server
for global domains or use the discovered network-designated DNS server
to access both private domains and global domains.</t>
<t>The scope of NetworkDNSOnly key is restricted to unmanaged BYOD
devices without a configuration profile on explicitly trusted networks.
In this use case, the user has authorized the client to override local
DNS settings for a specific network. It is similar to the way users
explicitly disable VPN connection in specific networks and VPN
connection is enabled by default in other networks for privacy. The
unmanaged BYOD devices use mutual authentication of the client and the
enterprise network. The client is typically authenticated with their
user credentials (e.g., username and password). The network is typically
authenticated with a certificate (e.g., PEAP-MSCHAPv2 <xref
target="PEAP"></xref>) or a mutually-authenticated key exchange which is
well-defended from offline attacks (e.g., EAP-pwd <xref
target="RFC8146"></xref>, EAP-PSK <xref target="RFC4764"></xref>).
Importantly, WPA-PSK and WPA2-PSK are not well-defended from offline
attacks and MUST NOT be used in conjunction with NetworkDNSOnly set to
True.</t>
<t><list style="hanging">
<t hangText="Note: ">Many users have privacy and personal data
sovereignty concerns with employers installing MDM on their personal
devices; they are concerned that admin can glean personal
information and could control how they use their devices. When users
do not install MDM on their devices, IT admins do not get visibility
into the security posture of those devices. To overcome this
problem, a host agent can cryptographically attest the security
status associated with device, such as minimum pass code length,
biometric login enabled, OS version etc. This approach is fast
gaining traction especially with the advent of closed OS like <xref
target="win10s">Windows 10 in S mode</xref> or <xref
target="Chromebook">Chromebook</xref>, where applications are
sandboxed (e.g., ransomware attack is not possible) and applications
can only be installed via the OS store.</t>
</list></t>
</section>
<section title="An Example">
<t>The following example shows how the JSON keys defined in this
document can be used:</t>
<t><figure>
<artwork><![CDATA[ {
"identifier": "cafe.example.com.",
"expires": "2020-05-23T06:00:00Z",
"prefixes": ["2001:db8:1::/48", "2001:db8:4::/48"],
"NetworkDNSOnly": True,
"ErrorNetworkDNSOnly": 15
}]]></artwork>
</figure></t>
<t>The JSON keys "identifier", "expires", and "prefixes" are defined in
<xref target="RFC8801"></xref>. </t>
</section>
<section anchor="Security" title="Security Considerations">
<t>The content of NetworkDNSOnly and ErrorSplitDNSBlocked may be passed
to another (DNS) program for processing. As with any network input, the
content SHOULD be considered untrusted and handled accordingly. The
security considerations discussed in <xref
target="SplitDNSAllowed"></xref> and <xref target="Scope"></xref> need
to be considered to restrict the scope of NetworkDNSOnly and
ErrorSplitDNSBlocked PvD Keys to explicitly trusted networks. The
NetworkDNSOnly and ErrorSplitDNSBlocked PvD Keys assigned by an
anonymous or unknown network (e.g., coffee shops) MUST be ignored by the
client.</t>
</section>
<section anchor="IANA" title="IANA Considerations">
<t>IANA is requested to add NetworkDNSOnly and ErrorSplitDNSBlocked PvD
Keys to the Additional Information PvD Keys registry
(https://www.iana.org/assignments/pvds/pvds.xhtml).</t>
</section>
<section title="Acknowledgements">
<t>Thanks to Mohamed Boucadair, Jim Reid, Ben Schwartz, Tommy Pauly,
Paul Vixie, Ben Schwartz, and Vinny Parla for the discussion and
comments.</t>
</section>
</middle>
<!-- *****BACK MATTER ***** -->
<back>
<references title="Normative References">
<?rfc include='reference.RFC.2119'?>
<?rfc include='reference.RFC.8174'?>
<?rfc include='reference.RFC.8801'?>
<?rfc include='reference.RFC.7858'
?>
<?rfc include='reference.RFC.8484'?>
</references>
<references title="Informative References">
<?rfc include='reference.RFC.8499'?>
<?rfc include='reference.RFC.8146' ?>
<?rfc include='reference.RFC.4764' ?>
<?rfc include='reference.RFC.7626' ?>
<?rfc include='reference.RFC.7556' ?>
<?rfc include='reference.RFC.8310'?>
<?rfc include='reference.RFC.8914'?>
<?rfc include='reference.RFC.8738'?>
<?rfc include='reference.I-D.ietf-add-dnr'?>
<?rfc include='reference.I-D.ietf-add-ddr'?>
<!-- not yet in XML library <?rfc include='reference.I-D.ietf-add-ddr'?>
<?rfc include='reference.I-D.ietf-add-dnr'?> -->
<reference anchor="Firefox-Policy"
target="https://github.com/mozilla/policy-templates/blob/master/README.md#dnsoverhttps">
<front>
<title>Policy templates for Firefox</title>
<author></author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="Chrome-Policy"
target="https://support.google.com/chrome/a/answer/2657289?hl=en">
<front>
<title>Chrome policies for users or browsers</title>
<author>
<organization>The Unicode Consortium</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="Chrome-DoH"
target="https://www.chromium.org/developers/dns-over-https">
<front>
<title>Chrome DNS over HTTPS (aka DoH)</title>
<author>
<organization>The Unicode Consortium</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="win10s"
target="https://www.microsoft.com/en-us/windows/s-mode">
<front>
<title>Windows 10 in S mode</title>
<author>
<organization>Microsoft</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="Chromebook"
target="https://support.google.com/chromebook/answer/3438631?hl=en">
<front>
<title>Chromebook security</title>
<author>
<organization>Microsoft</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="MDM-Apple"
target="https://developer.apple.com/documentation/devicemanagement">
<front>
<title>Mobile Device Management</title>
<author>
<organization>Apple</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="OTA"
target="https://developer.apple.com/library/archive/documentation/NetworkingInternet/Conceptual/iPhoneOTAConfiguration/OTASecurity/OTASecurity.html">
<front>
<title>Over-the-Air Profile Delivery Concepts</title>
<author>
<organization>Apple</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="PEAP"
target="https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-peap/5308642b-90c9-4cc4-beec-fb367325c0f9">
<front>
<title>[MS-PEAP]: Protected Extensible Authentication Protocol
(PEAP)</title>
<author>
<organization>Microsoft</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="Evil-Twin"
target="https://en.wikipedia.org/wiki/Evil_twin_(wireless_networks)">
<front>
<title>Evil twin (wireless networks)</title>
<author>
<organization>The Unicode Consortium</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<reference anchor="Krack" target="https://www.krackattacks.com/">
<front>
<title>Key Reinstallation Attacks</title>
<author>
<organization>The Unicode Consortium</organization>
</author>
<date day="" month="" year="2017" />
</front>
</reference>
<reference anchor="Dragonblood"
target="https://papers.mathyvanhoef.com/dragonblood.pdf">
<front>
<title>Dragonblood: Analyzing the Dragonfly Handshake of WPA3 and
EAP-pwd</title>
<author>
<organization>The Unicode Consortium</organization>
</author>
<date day="" month="" year="" />
</front>
</reference>
<!---->
</references>
</back>
</rfc>