idnits 2.17.1 draft-ietf-dhc-anonymity-profile-02.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year (Using the creation date from RFC4361, updated by this document, for RFC5378 checks: 2003-10-23) -- The document seems to lack a disclaimer for pre-RFC5378 work, but may have content which was first submitted before 10 November 2008. If you have contacted all the original authors and they are all willing to grant the BCP78 rights to the IETF Trust, then this is fine, and you can ignore this comment. If not, you may need to add the pre-RFC5378 disclaimer. (See the Legal Provisions document at https://trustee.ietf.org/license-info for more information.) -- The document date (August 20, 2015) is 3169 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Outdated reference: A later version (-13) exists of draft-ietf-dhc-rfc3315bis-01 ** Obsolete normative reference: RFC 3315 (Obsoleted by RFC 8415) ** Obsolete normative reference: RFC 4941 (Obsoleted by RFC 8981) == Outdated reference: A later version (-16) exists of draft-ietf-6man-default-iids-05 == Outdated reference: A later version (-08) exists of draft-ietf-6man-ipv6-address-generation-privacy-03 == Outdated reference: A later version (-05) exists of draft-ietf-dhc-dhcp-privacy-00 == Outdated reference: A later version (-05) exists of draft-ietf-dhc-dhcpv6-privacy-00 Summary: 2 errors (**), 0 flaws (~~), 6 warnings (==), 2 comments (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group C. Huitema 3 Internet-Draft Microsoft 4 Updates: 4361 (if approved) T. Mrugalski 5 Intended status: Standards Track ISC 6 Expires: February 21, 2016 S. Krishnan 7 Ericsson 8 August 20, 2015 10 Anonymity profile for DHCP clients 11 draft-ietf-dhc-anonymity-profile-02.txt 13 Abstract 15 Some DHCP options carry unique identifiers. These identifiers can 16 enable device tracking even if the device administrator takes care of 17 randomizing other potential identifications like link-layer addresses 18 or IPv6 addresses. The anonymity profile is designed for clients 19 that wish to remain anonymous to the visited network. The profile 20 provides guidelines on the composition of DHCP or DHCPv6 requests, 21 designed to minimize disclosure of identifying information. This 22 draft updates RFC4361. 24 Status of This Memo 26 This Internet-Draft is submitted in full conformance with the 27 provisions of BCP 78 and BCP 79. 29 Internet-Drafts are working documents of the Internet Engineering 30 Task Force (IETF). Note that other groups may also distribute 31 working documents as Internet-Drafts. The list of current Internet- 32 Drafts is at http://datatracker.ietf.org/drafts/current/. 34 Internet-Drafts are draft documents valid for a maximum of six months 35 and may be updated, replaced, or obsoleted by other documents at any 36 time. It is inappropriate to use Internet-Drafts as reference 37 material or to cite them other than as "work in progress." 39 This Internet-Draft will expire on February 21, 2016. 41 Copyright Notice 43 Copyright (c) 2015 IETF Trust and the persons identified as the 44 document authors. All rights reserved. 46 This document is subject to BCP 78 and the IETF Trust's Legal 47 Provisions Relating to IETF Documents 48 (http://trustee.ietf.org/license-info) in effect on the date of 49 publication of this document. Please review these documents 50 carefully, as they describe your rights and restrictions with respect 51 to this document. Code Components extracted from this document must 52 include Simplified BSD License text as described in Section 4.e of 53 the Trust Legal Provisions and are provided without warranty as 54 described in the Simplified BSD License. 56 Table of Contents 58 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 59 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3 60 2. Application domain . . . . . . . . . . . . . . . . . . . . . 3 61 2.1. MAC Address Randomization hypotheses . . . . . . . . . . 4 62 2.2. MAC Address Randomization and DHCP . . . . . . . . . . . 5 63 2.3. Radio fingerprinting . . . . . . . . . . . . . . . . . . 5 64 2.4. Operating system fingerprinting . . . . . . . . . . . . . 6 65 2.5. No anonymity profile identification . . . . . . . . . . . 6 66 2.6. Using the anonymity profiles . . . . . . . . . . . . . . 7 67 2.7. What about privacy for DHCP servers . . . . . . . . . . . 7 68 3. Anonymity profile for DHCPv4 . . . . . . . . . . . . . . . . 8 69 3.1. Client IP address field . . . . . . . . . . . . . . . . . 9 70 3.2. Requested IP address option . . . . . . . . . . . . . . . 9 71 3.3. Client hardware address . . . . . . . . . . . . . . . . . 10 72 3.4. Client Identifier Option . . . . . . . . . . . . . . . . 10 73 3.5. Host Name Option . . . . . . . . . . . . . . . . . . . . 11 74 3.6. Client FQDN Option . . . . . . . . . . . . . . . . . . . 12 75 3.7. UUID/GUID-based Client Identifier Option . . . . . . . . 12 76 3.8. User and Vendor Class DHCP options . . . . . . . . . . . 13 77 4. Anonymity profile for DHCPv6 . . . . . . . . . . . . . . . . 13 78 4.1. Do not send Confirm messages, unless really sure where . 14 79 4.2. Client Identifier DHCPv6 Option . . . . . . . . . . . . . 14 80 4.2.1. Anonymous Information-Request . . . . . . . . . . . . 15 81 4.3. Server Identifier Option . . . . . . . . . . . . . . . . 15 82 4.4. Address assignment options . . . . . . . . . . . . . . . 15 83 4.4.1. Obtain temporary addresses . . . . . . . . . . . . . 16 84 4.5. Option Request Option . . . . . . . . . . . . . . . . . . 16 85 4.5.1. Previous option values . . . . . . . . . . . . . . . 17 86 4.6. Authentication Option . . . . . . . . . . . . . . . . . . 17 87 4.7. User and Vendor Class DHCPv6 options . . . . . . . . . . 17 88 4.8. Client FQDN Option . . . . . . . . . . . . . . . . . . . 17 89 5. Operational Considerations . . . . . . . . . . . . . . . . . 18 90 6. Security Considerations . . . . . . . . . . . . . . . . . . . 18 91 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 18 92 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 18 93 9. Changes from previous versions . . . . . . . . . . . . . . . 18 94 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 19 95 10.1. Normative References . . . . . . . . . . . . . . . . . . 19 96 10.2. Informative References . . . . . . . . . . . . . . . . . 20 98 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 100 1. Introduction 102 Reports surfaced recently of systems that would monitor the wireless 103 connections of passengers at Canadian airports [CNBC]. We can assume 104 that these are either fragments or trial runs of a wider system that 105 would attempt to monitor Internet users as they roam through wireless 106 access points and other temporary network attachments. We can also 107 assume that privacy conscious users will attempt to evade this 108 monitoring, for example by ensuring that low level identifiers such 109 as link-layer addresses are "randomized," so that the devices do not 110 broadcast a unique identifier in every location that they visit. 112 Of course, link layer "MAC" addresses are not the only way to 113 identify a device. As soon as it connects to a remote network, the 114 device may use DHCP and DHCPv6 to obtain network parameters. The 115 analysis of DHCP and DHCPv6 options shows that parameters of these 116 protocols can reveal identifiers of the device, negating the benefits 117 of link-layer address randomization. This is documented in detail in 118 [I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. The 119 natural reaction is to restrict the number and values of such 120 parameters in order to minimize disclosure. 122 In the absence of a common standard, different system developers are 123 likely to implement this minimization of disclosure in different 124 ways. Monitoring entities could then use the differences to identify 125 the software version running on the device. The proposed anonymity 126 profile provides a common standard that minimizes information 127 disclosure, including the disclosure of implementation identifiers. 129 1.1. Requirements 131 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 132 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 133 document are to be interpreted as described in [RFC2119]. 135 2. Application domain 137 Mobile nodes can be tracked using multiple identifiers, the most 138 prominent being MAC addresses. For example, when devices use Wi-Fi 139 connectivity, they place the MAC address in the header of all the 140 packets that they transmit. Standard implementation of Wi-Fi use 141 unique 48 bit MAC addresses, assigned to the devices according to 142 procedures defined by IEEE 802. Even when the Wi-Fi packets are 143 encrypted, the portion of the header containing the addresses will be 144 sent in clear text. Tracking devices can "listen to the airwaves" to 145 find out what devices are transmitting near them. 147 We can easily imagine that the MAC addresses can be correlated with 148 other data, e.g., clear text names and cookies, to build a registry 149 linking MAC addresses to the identity of devices' owners. Once that 150 correlation is done, tracking the MAC address is sufficient to track 151 individual people, even when all application data sent from the 152 devices is encrypted. MAC addresses can also be correlated with IP 153 addresses of devices, negating potential privacy benefits of IPv6 154 "privacy" addresses. Privacy advocates have some reason to be 155 concerned. 157 The obvious solution is to "randomize" the MAC address. Before 158 connecting to a particular network, the device replaces the MAC 159 address with a randomly drawn 48 bit value. MAC address 160 randomization was successfully tried at the IETF in Honolulu in 161 November 2014 [IETFMACRandom]. However, we have to consider the 162 linkage between MAC addresses, DHCP identifiers and IP addresses. 164 2.1. MAC Address Randomization hypotheses 166 There is not yet an established standard for randomizing MAC 167 addresses. Various prototypes have tried different strategies, such 168 as: 170 Per connection: Configure a random MAC address at the time of 171 connecting to a network, e.g. to specific Wi-Fi SSID, and keep it 172 for the duration of the connection. 174 Per network: Same as "per connection," but always use the same MAC 175 address for the same network -- different of course from the 176 addresses used in other networks. 178 Time interval: Change the MAC address at regular time intervals. 180 In practice, there are many reasons to keep the MAC address constant 181 for the duration of a link-layer connection, as in the "per 182 connection" or "per network" variants. On Wi-Fi networks, changing 183 the MAC address requires dropping the existing Wi-Fi connection and 184 then re-establishing it, which implies repeating the connection 185 process and associated procedures. The IP addresses will change, 186 which means that all required TCP connections will have to be re- 187 established. If the network access is provided through a NAT, 188 changing IP address also means that the NAT traversal procedures will 189 have to be restarted. This means a lot of disruption. At the same 190 time, an observer on the network will easily notice that a station 191 left, another came in just after that, and that the new one appears 192 to be communicating with pretty much the same set of IP addresses as 193 the old one. This provides for easy correlation. 195 The anonymity profile pretty much assumes that the MAC address 196 randomization follows the "per connection" or "per network" 197 strategies, or a variant of the "time interval" strategy in which the 198 interval has about the same duration as the average connection. 200 2.2. MAC Address Randomization and DHCP 202 From a privacy point of view, it is clear that MAC Addresses, IP 203 addresses and DHCP identifiers shall evolve in synchrony. For 204 example, if the MAC address changes and the DHCP identifier stays 205 constant, then it is really easy to correlate old and new MAC 206 addresses, either by listening to DHCP traffic or by observing that 207 the IP address remains constant, since it is tied to the DHCP 208 identifier. Conversely, if the DHCP identifier changes but the MAC 209 address remains constant, the old and new identifiers and addresses 210 can be correlated by listening to L2 traffic. The procedures 211 documented in the following sections construct DHCP identifiers from 212 the current MAC address, automatically providing for this 213 synchronization. 215 The proposed anonymity profiles solve this synchronization issues by 216 deriving most identifiers from the MAC address, and generally by 217 making making sure that DHCP parameter values do not remain constant 218 after an address change. 220 2.3. Radio fingerprinting 222 MAC address randomization solves the trivial monitoring problem in 223 which someone just uses a Wi-Fi scanner and records the MAC addresses 224 seen on the air. DHCP anonymity solves the more elaborated scenario 225 in which someone monitor MAC addresses and identities used in DHCP at 226 the access point or DHCP server. But this are not the only ways to 227 track a mobile device. 229 Radio fingerprinting is a process that identifies a radio transmitter 230 by the unique "fingerprint" of its signal transmission, i.e., the 231 tiny differences caused by minute imperfections of the radio 232 transmission hardware. This can be applied to diverse types of 233 radios, including Wi-Fi as described for example in 234 [WiFiRadioFingerprinting]. No amount of MAC address randomization 235 will protect against such techniques. Protections may exist, but 236 they are outside the scope of the present document. 238 On the other hand, we should not renounce randomization just because 239 radio fingerprinting exists. The radio fingerprinting techniques are 240 harder to deploy than just recording MAC addresses with a scanner. 241 They can only track devices for which the fingerprint are known, and 242 thus have a narrower scope of application than mass monitoring of 243 addresses and DHCP parameters. 245 2.4. Operating system fingerprinting 247 When a standard like DHCP allows for multiple options, different 248 implementers will make different choices for the options that they 249 support or the values they chose for the options. Conversely, 250 monitoring the options and values present in DHCP messages reveals 251 these differences and allows for "operating system fingerprinting," 252 i.e., finding the type and version of software that a particular 253 device is running. Finding these versions provides some information 254 about the device identity, and thus goes against the goal of 255 anonymity. 257 The design of the anonymity profiles attempts to minimize the number 258 of options and the choice of values, in order to reduce the 259 possibilities of operating system fingerprinting. 261 2.5. No anonymity profile identification 263 Reviewers of the anonymity profiles have sometimes suggested adding 264 an option to explicitly identify the profiles as "using the anonymity 265 option." One suggestion is that if the client wishes to remain 266 anonymous, it would be good if the client told the server about that 267 in case the server is willing to co-operate. Another possibility 268 would be to use specific privacy-oriented construct, such as for 269 example a new type of DUID of temporary DUID that would be changing 270 over time. 272 This is not workable in a large number of cases as it is possible 273 that the network operator (or other entities that have access to the 274 operator's network) might be actively participating in surveillance 275 and anti-privacy, willingly or not. Declaring a preference for 276 anonymity is a bit like walking around with a Guy Fawkes mask. When 277 anonymity is required, it is generally not a good idea to stick out 278 of the crowd. Simply revealing the desire for privacy, could cause 279 the attacker to react by triggering additional surveillance or 280 monitoring mechanisms. Therefore we feel that it is preferable to 281 not disclose one's desire for privacy. 283 This preference leads to some important implications. In particular, 284 we make an effort to make the mitigation techniques difficult to 285 distinguish from regular client behaviors, if at all possible. 287 2.6. Using the anonymity profiles 289 There are downsides to randomizing MAC addresses and DHCP 290 identifiers. By definition, randomization will break management 291 procedures that rely on tracking MAC addresses. Even if this is not 292 too much of a concern, we have to be worried about the frequency of 293 MAC address randomization. Suppose for example that many devices 294 would get new random MAC addresses at short intervals, maybe every 295 few minutes. This would generate new DHCP requests in rapid 296 succession, with a high risk of exhausting DHCPv4 address pools. 297 Even with IPv6, there would still be a risk of increased neighbor 298 discovery traffic, and bloating of various address tables. 299 Implementers will have to be cautious when programming devices to use 300 randomized MAC addresses. They will have to carefully chose the 301 frequency with which such addresses will be renewed. 303 This document only provides guidelines for using DHCP when clients 304 care about privacy and servers do not object. We assume that the 305 request for anonymity is materialized by the assignment of a 306 randomized MAC address to the network interface. Once that decision 307 is made, the following guidelines will avoid leakage of identity in 308 DHCP parameters or in assigned addresses. 310 There may be rare situations where the clients want anonymity to 311 attackers but not to their DHCP server. These clients should still 312 use MAC Address randomization to hide from observers, and some form 313 of encrypted communication to the DHCP server. This scenario is not 314 yet supported in this document. 316 To preserve anonymity, the clients need to not use stable values for 317 the client identifiers. This is clearly a tradeoff, because a stable 318 client identifier guarantees that the client will receive consistent 319 parameters over time. An example is given in 320 [I-D.ietf-dhc-dynamic-shared-v4allocation], where the client 321 identifier is used to guarantee that the same client will always get 322 the same combination of IP address and port range. Static clients 323 benefit most from stable parameters, and can often be already 324 identified by physical connection layer parameters. These static 325 clients will normally not use the anonymity profile. Mobile clients, 326 in contrast, have the option of using the anonymity profile in 327 conjunction with [I-D.ietf-dhc-dynamic-shared-v4allocation] if they 328 are more concerned with privacy protection than with stable 329 parameters. 331 2.7. What about privacy for DHCP servers 333 This document only provides recommendations for DHCP clients. The 334 main target are DHCP clients used in mobile devices. Such devices 335 are a tempting target for various monitoring systems, and providing 336 them with a simple anonymity solution is urgent. We can argue that 337 some mobile devices embed DHCP servers, and that providing solutions 338 for such devices is also quite important. Two plausible examples 339 would be a DHCP server for a car network, or a DHCP server for a 340 mobile hot spot. However, mobile servers get a lot of privacy 341 protection through the use of access control and link layer 342 encryption. Servers may disclose information to clients through 343 DHCP, but they normally only do that to clients that have passed the 344 link-layer access control and have been authorized to use the network 345 services. This arguably makes solving the server problem less urgent 346 than solving the client problem. 348 The server part will be covered by the general mitigation work going 349 on in DHCP working group, following the analyses presented in 350 [I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. 352 3. Anonymity profile for DHCPv4 354 Clients using the DHCPv4 anonymity profile limit the disclosure of 355 information by controlling the header parameters and by limiting the 356 number and values of options. The number of options depend on the 357 specific DHCP message: 359 DISCOVER: The anonymized DISCOVER messages MUST contain the Message 360 Type, Client Identifier, and Parameter Request List options. It 361 SHOULD NOT contain any other option. 363 REQUEST: The anonymized REQUEST messages SHOULD contain the Message 364 Type, Client Identifier, Requested IP address and Parameter 365 Request List options. If the message is in response to an OFFER, 366 it SHOULD contain the corresponding Server Identifier option. It 367 SHOULD NOT contain any other option. 369 DECLINE: The anonymized DECLINE messages SHOULD contain the Message 370 Type, Client Identifier and Server Identifier options. 372 RELEASE: The anonymized RELEASE messages SHOULD contain the Message 373 Type, Client Identifier and Server Identifier options. 375 INFORM: The anonymized INFORM messages MUST contain the Message 376 Type, Client Id, and Parameter Request List options. It SHOULD 377 NOT contain any other option. 379 Header fields and option values SHOULD be set in accordance with the 380 DHCP specification, but some header fields and option values SHOULD 381 be constructed per the following guidelines. 383 The inclusion of HostName and FQDN options in DISCOVER, REQUEST or 384 INFORM messages is discussed in Section 3.5 and Section 3.6. 386 3.1. Client IP address field 388 Four bytes in the header of the DHCP messages carry the "Client IP 389 address" (ciaddr) as defined in [RFC2131]. In DHCP, this field is 390 used by the clients to indicate the address that they used 391 previously, so that as much as possible the server can allocate them 392 the same address. 394 There is very little privacy implication of sending this address in 395 the DHCP messages, except in one case, when connecting to a different 396 network than the last network connected. If the DHCP client somehow 397 repeated the address used in a previous network attachment, 398 monitoring services might use the information to tie the two network 399 locations. DHCP clients should ensure that the field is cleared when 400 they know that the network attachment has changed, and in particular 401 of the link layer address is reset by the device's administrator. 403 The clients using the anonymity profile MUST NOT include in the 404 message a Client IP Address that has been obtained with a different 405 MAC address. 407 3.2. Requested IP address option 409 The Requested IP address option (code 50) allows the client to 410 request that a particular IP address be assigned. The option is 411 mandatory in some protocol messages per [RFC2131], for example when a 412 client selects to use an address offered by a server. However, this 413 option is not mandatory in the DHCPDISCOVER message. It is simply a 414 convenience, an attempt to regain the same IP address that was used 415 in a previous connection. Doing so entails the risk of disclosing an 416 IP address used by the client at a previous location, or with a 417 different MAC Address. 419 When using the anonymity profile, clients SHOULD NOT use the 420 Requested IP address option in DHCPDISCOVER Messages. They MUST use 421 the option when mandated by the DHCP protocol, for example in 422 DHCPREQUEST Messages. 424 There are scenarios in which a client connects to a network when a 425 lease is still valid. In that state, the client that is concerned 426 with privacy SHOULD perform a complete four way handshake starting 427 with DHCPDISCOVER to obtain a new address lease. If the client can 428 ascertain that this is exactly the same network to which it was 429 previously connected, and if the link layer address did not change, 430 the client MAY issue a DHCPREQUEST to try reclaim the current 431 address. 433 3.3. Client hardware address 435 Sixteen bytes in the header of the DHCP messages carry the "Client 436 hardware address" (chaddr) as defined in [RFC2131]. The presence of 437 this address is necessary for the proper operation of the DHCP 438 service. 440 Hardware addresses, called "link layer address" in many RFCs, can be 441 used to uniquely identify a device, especially if they follow the 442 IEEE 802 recommendations. These unique identifiers can be used by 443 monitoring services to track the location of the device and its user. 444 The only plausible defense is to somehow reset the hardware address 445 to a random value when visiting an untrusted location, before 446 transmitting anything at that location with the hardware address. If 447 the hardware address is reset to a new value, or randomized, the DHCP 448 client SHOULD use the new randomized value in the DHCP messages. 450 3.4. Client Identifier Option 452 The client identifier option is defined in [RFC2132] with option code 453 61. It is discussed in details in [RFC4361]. The purpose of the 454 client identifier option is to identify the client in a manner 455 independent of the link layer address. This is particularly useful 456 if the DHCP server is expected to assign the same address to the 457 client after a network attachment is swapped and the link layer 458 address changes. It is also useful when the same node issues 459 requests through several interfaces, and expects the DHCP server to 460 provide consistent configuration data over multiple interfaces. 462 The considerations for hardware independence and strong client 463 identity have an adverse effect on the privacy of mobile clients, 464 because the hardware-independent unique identifier obviously enables 465 very efficient tracking of the client's movements. 467 The recommendations in [RFC4361] are very strong, stating for example 468 that "DHCPv4 clients MUST NOT use client identifiers based solely on 469 layer two addresses that are hard-wired to the layer two device 470 (e.g., the Ethernet MAC address)." These strong recommendations are 471 in fact a tradeoff between ease of management and privacy, and the 472 tradeoff should depend on the circumstances. 474 In contradiction to [RFC4361], When using the anonymity profile, DHCP 475 clients MUST use client identifiers based solely on the link layer 476 address that will be used in the underlying connection. This will 477 ensure that the DHCP client identifier does not leak any information 478 that is not already available to entities monitoring the network 479 connection. It will also ensure that a strategy of randomizing the 480 link layer address will not be nullified by DHCP options. 482 In general, clients that care about privacy SHOULD NOT use RFC4361 as 483 doing so would provide a stable identifier even when MAC 484 randomization is used. If RFC4361 needs to be used, it is 485 RECOMMENDED for the client to only use the DUID type DUID-LL (3) with 486 the link layer address of the interface on which the DHCP message is 487 sent. 489 There are usages of DHCP where the underlying connection is a point 490 to point link, in which case there is no link layer address available 491 to construct a non-revealing identifier. If anonymity is desired in 492 such networks, the client SHOULD pick a random identifier that is 493 unique to the current link, using for example a combination of a 494 local secret and an identifier of the connection. 496 3.5. Host Name Option 498 The Host Name option is defined in [RFC2132] with option code 12. 499 Depending on implementations, the option value can carry either a 500 fully qualified domain name such as "node1984.example.com," or a 501 simple host name such as "node1984." The host name is commonly used 502 by the DHCP server to identify the host, and also to automatically 503 update the address of the host in local name services. 505 Fully qualified domain names are obviously unique identifiers, but 506 even simple host names can provide a significant amount of 507 information on the identity of the device. They are typically chosen 508 to be unique in the context where the device is most often used. If 509 that context is wide enough, in a large company or in a big 510 university, the host name will be a pretty good identifier of the 511 device. Monitoring services could use that information in 512 conjunction with traffic analysis and quickly derive the identity of 513 the device's owner. 515 When using the anonymity profile, DHCP clients SHOULD NOT send the 516 host name option. If they chose to send the option, DHCP clients 517 MUST always send a non-qualified host name instead of a fully 518 qualified domain name, and MUST obfuscate the host name value. 520 There are many ways to obfuscate a host name. The construction rules 521 SOULD guarantee that a different host name is generated each time the 522 link-layer address changes and that the obfuscated host name will not 523 reveal the underlying link layer address. The construction SHOULD 524 generate names that are unique enough to minimize collisions in the 525 local link. Clients MAY use the following algorithm: compute a 526 secure hash of a local secret and of the link layer address that will 527 be used in the underlying connection, and then use the hexadecimal 528 representation of the first 6 bytes of the hash as the obfuscated 529 host name. 531 There is a potential downside to having a specific name pattern for 532 hosts that require anonymity, as explained in Section 2.5. For this 533 reason, the above algorithm is just a suggestion. 535 3.6. Client FQDN Option 537 The Client FQDN option is defined in [RFC4702] with option code 81. 538 The option allows the DHCP clients to advertise to the DHCP server 539 their fully qualified domain name (FQDN) such as 540 "mobile.example.com." This would allow the DHCP server to update in 541 the DNS the PTR record for the IP address allocated to the client. 542 Depending on circumstances, either the DHCP client or the DHCP server 543 could update in the DNS the A record for the FQDN of the client. 545 Obviously, this option uniquely identifies the client, exposing it to 546 the DHCP server or to anyone listening to DHCP traffic. In fact, if 547 the DNS record is updated, the location of the client becomes visible 548 to anyone with DNS lookup capabilities. 550 When using the anonymity profile, DHCP clients SHOULD NOT include the 551 Client FQDN option in their DHCP requests. Alternatively, they MAY 552 include a special purpose FQDN using the same hostname as in the Host 553 Name Option, with a suffix matching the connection-specific DNS 554 suffix being advertised by that DHCP server. Having a name in the 555 DNS allows working with legacy systems that require one to be there, 556 e.g., by verifying a forward and reverse lookup succeeds with the 557 same result. 559 3.7. UUID/GUID-based Client Identifier Option 561 The UUID/GUID-based Client Machine Identifier option is defined in 562 [RFC4578], with option code 97. The option is part of a set of 563 options for Intel Preboot eXecution Environment (PXE). The purpose 564 of the PXE system is to perform management functions on a device 565 before its main OS is operational. The Client Machine Identifier 566 carries a 16-octet Globally Unique Identifier (GUID), which uniquely 567 identifies the device. 569 The PXE system is clearly designed for devices operating in a 570 controlled environment, and its functions are not meant to be used by 571 mobile nodes visiting untrusted networks. If only for privacy 572 reasons, nodes visiting untrusted networks MUST disable the PXE 573 functions, and MUST NOT send the corresponding options. 575 3.8. User and Vendor Class DHCP options 577 Vendor identifying options are defined in [RFC2132] and [RFC3925]. 578 When using the anonymity profile, DHCP clients SHOULD NOT use the 579 Vendor Specific Information option (code 43), the Vendor Class 580 Identifier Option (60), the Vendor Class option (code 124), or the 581 Vendor Specific Information option (code 125) as these options 582 potentially reveal identifying information. 584 4. Anonymity profile for DHCPv6 586 DHCPv6 is typically used by clients in one of two scenarios: stateful 587 and stateless configuration. In the stateful scenario, clients use a 588 combination of SOLICIT, REQUEST, CONFIRM, RENEW, REBIND and RELEASE 589 messages to obtain addresses, and manage these addresses. 591 In the stateless scenario, clients configure addresses using a 592 combination of client managed identifiers and router-advertised 593 prefixes, without involving the DHCPv6 services. Different ways of 594 constructing these prefixes have different implications on privacy, 595 which are discussed in [I-D.ietf-6man-default-iids] and 596 [I-D.ietf-6man-ipv6-address-generation-privacy]. In the stateless 597 scenario, clients use DHCPv6 to obtain network configuration 598 parameters, through the INFORMATION-REQUEST message. 600 The choice between the stateful and stateless scenario depends of 601 flag and prefix options published by the "Router Advertisement" 602 messages of local routers, as specified in [RFC4861]. When these 603 options enable stateless address configuration hosts using the 604 anonymity profile SHOULD choose it over stateful address 605 configuration, because stateless configuration requires fewer 606 information disclosure than stateful configuration. 608 When using the anonymity profile, DHCPv6 clients carefully select 609 DHCPv6 options used in the various messages that they sent. The list 610 of options that are mandatory or optional for each message is 611 specified in [RFC3315]. Some of these options have specific 612 implications on anonymity. The following sections provide guidance 613 on the choice of option values when using the anonymity profile. 615 4.1. Do not send Confirm messages, unless really sure where 617 The [RFC3315] requires clients to send a Confirm message when they 618 attach to a new link to verify whether the addressing and 619 configuration information they previously received is still valid. 620 This requirement was relaxed in [I-D.ietf-dhc-rfc3315bis]. When 621 these clients send Confirm messages, they include any IAs assigned to 622 the interface that may have moved to a new link, along with the 623 addresses associated with those IAs. By examining the addresses in 624 the Confirm message an attacker can trivially identify the previous 625 point(s) of attachment. 627 Clients interested in protecting their privacy SHOULD NOT send 628 Confirm messages and instead directly try to acquire addresses on the 629 new link. However, not sending confirm messages can result in 630 connectivity hiatus in some scenarios, e.g. roaming between two 631 access points in the same wireless network. DHCPv6 clients that can 632 verify that the previous link and the current link are part of the 633 same network MAY send Confirm messages while still protecting their 634 privacy. 636 4.2. Client Identifier DHCPv6 Option 638 The client identifier option is defined in [RFC3315] with option code 639 1. The purpose of the client identifier option is to identify the 640 client to the server. The content of the option is a DHCP User ID 641 (DUID). One of the primary privacy concerns is that a client is 642 disclosing a stable identifier (the DUID) that can be use for 643 tracking and profiling. Three DUID formats are specified: Link-layer 644 address plus time, Vendor-assigned unique ID based on Enterprise 645 Number, Link-layer address. 647 When using the anonymity profile in conjunction with randomized MAC 648 addresses, DHCPv6 clients MUST use the DUID format number 3, Link- 649 layer address. The value of the Link-layer address should be that 650 currently assigned to the interface. 652 When using the anonymity profile without the benefit of randomized 653 MAC addresses, clients that want to protect their privacy SHOULD 654 generate a new randomized DUID-LLT every time they attach to a new 655 link or detect a possible link change event. The exact details are 656 left up to implementors, but there are several factors should be 657 taken into consideration. The DUID type SHOULD be set to 1 (DUID- 658 LLT). Hardware type SHOULD be set appropriately to the hardware 659 type. Time MAY be set to current time, but this will reveal the fact 660 that the DUID is newly generated. Implementors interested in hiding 661 this fact MAY use a time stamp from the past. e.g. a random timestamp 662 from the previous year could be a good value. In the most common 663 cases the link-layer address is based on MAC. The first three octets 664 are composed of the OUI (Organizationally Unique Identifier) that is 665 expected to have a value assigned to a real organization. See 666 [IEEE-OUI] for currently assigned values. Using a value that is 667 unassigned may disclose the fact that a DUID is randomized. Using a 668 value that belongs to a third party may have legal implications. 670 4.2.1. Anonymous Information-Request 672 According to [RFC3315], a DHCPv6 client typically includes its client 673 identifier in most of the messages it sends. There is one exception, 674 however. Client is allowed to omit its client identifier when 675 sending Information-Request. 677 When using stateless DHCPv6, clients wanting to protect their privacy 678 SHOULD NOT include client identifiers in their Information-Request 679 messages. This will prevent the server from specifying client- 680 specific options if it is configured to do so, but the need for 681 anonymity precludes such options anyway. 683 4.3. Server Identifier Option 685 When using the anonymity profile, DHCPv6 clients SHOULD use the 686 Server Identifier Option (code 2) as specified in [RFC3315]. Clients 687 MUST only include server identifier values that were received with 688 the current MAC address, because reuse of old values discloses 689 information that can be used to identify the client. 691 4.4. Address assignment options 693 When using the anonymity profile, DHCPv6 clients might have to use 694 SOLICIT or REQUEST messages to obtain IPv6 addresses through the DHCP 695 server. The clients SHOULD only use the options necessary to perform 696 the requested DHCPv6 transactions, such as Identity Association for 697 Non-temporary Addresses Option (code 3) or Identity Association for 698 Temporary Addresses Option (code 4). 700 The clients MAY use the IA Address Option (code 5) but need to 701 balance the potential advantage of "address continuity" versus the 702 potential risk of "previous address disclosure." A potential 703 solution is to remove all stored addresses when a MAC address 704 changes, and to only use the IA Address option with addresses that 705 have been explicitly assigned through the current MAC address. 707 The interaction between prefix delegation and anonymity require 708 further study. For now, the simple solution is to avoid using prefix 709 delegation when striving for anonymity. When using the anonymity 710 profiles, clients SHOULD NOT use IA_PD, the prefix delegation form of 711 address assignment. 713 4.4.1. Obtain temporary addresses 715 [RFC3315] defines a special container (IA_TA) for requesting 716 temporary addresses. This is a good mechanism in principle, but 717 there are a number of issues associated with it. First of all, this 718 is not widely used feature. Thus clients cannot count on it to be 719 always available. Secondly, [RFC3315] does not specify any renewal 720 mechanisms for temporary addresses. Therefore the support for 721 renewing temporary addresses in server implementations usually varies 722 between poor and non-existent. Finally, a client reveals its desire 723 for privacy just by requesting temporary addresses, and potentially 724 risks countermeasures as described in Section 2.5. 726 Clients interested in their privacy SHOULD NOT use the IA_TA. They 727 should simply send an IA_NA with a randomized IAID. This, along with 728 the mitigation technique discussed in Section 4.3, will ensure that a 729 client will get a new address that can be renewed and can be used as 730 long as needed. To get a new address, it can send Request message 731 with a new randomized IAID before releasing the older one. This will 732 cause the server to assign a new address, as it still has a valid 733 lease for the old IAID value. Once a new address is assigned, the 734 address obtained using the older IAID value can be released safely or 735 be allowed to time out. 737 From the Operating System perspective, addresses obtained using this 738 technique SHOULD be treated as temporary addresses as specified in 739 [RFC4941]. 741 Note that this solution may not work if the server enforces specific 742 policies such as providing only one address per client. If client 743 does not succeed in obtaining a second address using a new IAID, it 744 needs to release the first one (using an old IAID) and then retry 745 asking for a new address. 747 4.5. Option Request Option 749 A DHCPv6 client may reveal other types of information, besides unique 750 identifiers. There are many ways a DHCPv6 client can perform certain 751 actions and the specifics can be used to fingerprint the client. 752 This may not reveal the identity of a client, but may provide 753 additional information, such as the device type, vendor type or OS 754 type and in some cases specific version. 756 One specific method used for fingerprinting utilizes the order in 757 which options are included in the message. Another related technique 758 utilizes the order in which option codes are included in an Option 759 Request Option (ORO). 761 The client willing to protect its privacy SHOULD randomize options 762 order before sending any DHCPv6 message. Such a client SHOULD also 763 randomly shuffle the option codes order in ORO. 765 4.5.1. Previous option values 767 According to [RFC3315], the client that includes an Option Request 768 Option in a Solicit or Request message MAY additionally include 769 instances of those options that are identified in the Option Request 770 option, with data values as hints to the server about parameter 771 values the client would like to have returned. 773 When using the anonymity profile, clients SHOULD NOT include such 774 instances of options because old values might be used to identify the 775 client. 777 4.6. Authentication Option 779 The purpose of the Authentication option (code 11) is to authenticate 780 the identity of clients and servers and the contents of DHCP 781 messages. As such, the option can be used to identify the client, 782 and is incompatible with the stated goal of "client anonymity." 783 DHCPv6 clients that use the anonymity profile SHOULD NOT use the 784 authentication option. They MAY use it if they recognize that they 785 are operating in a trusted environment, e.g., in a work place 786 network. 788 4.7. User and Vendor Class DHCPv6 options 790 When using the anonymity profile, DHCPv6 clients SHOULD NOT use the 791 User Class option (code 15) or the Vendor Class option (code 16), as 792 these options potentially reveal identifying information. 794 4.8. Client FQDN Option 796 The Client FQDN option is defined in [RFC4704] with option code 29. 797 The option allows the DHCP clients to advertize to the DHCP their 798 fully qualified domain name (FQDN) such as "mobile.example.com." 799 When using the anonymity profile, DHCPv6 clients SHOULD NOT include 800 the Client FQDN option in their DHCPv6 messages because it identifies 801 the client. As explained in Section 3.6 they MAY use a local-only 802 FQDN by combining a host name derived from the link layer address and 803 a suffix advertised by the local DHCP server. 805 5. Operational Considerations 807 The anonymity profile has the effect of hiding the client identity 808 from the DHCP server. This is not always desirable. Some DHCP 809 servers provide facilities like publishing names and addresses in the 810 DNS, or ensuring that returning clients get reassigned the same 811 address. 813 Clients using the anonymity profile may be consuming more resources. 814 For example when they change MAC address and request for a new IP, 815 the old one is still marked as leased by the server. 817 Implementers SHOULD provide a way for clients to control when the 818 anonymity profile is used, and when standard behavior is preferred. 819 Implementers MAY implement this control by tying use of the anonymity 820 profile to that of link-layer address randomization. 822 6. Security Considerations 824 The use of the anonymity profile does not change the security 825 considerations of the DHCPv4 or DHCPv6 protocols. 827 7. IANA Considerations 829 This draft does not require any IANA action. 831 8. Acknowledgments 833 The inspiration for this draft came from discussions in the Perpass 834 mailing list. Several people provided feedback on this draft, 835 notably Noel Anderson, Lorenzo Colitti, Stephen Farrell, Nick Grifka, 836 Tushar Gupta, Gabriel Montenegro, Marcin Siodelski, Dave Thaler and 837 Jun Wu. 839 9. Changes from previous versions 841 Changes from draft-00 to draft-01: 843 1. In Section 2.6, added guidance when using 844 [I-D.ietf-dhc-dynamic-shared-v4allocation]. 846 2. In Section 3.4, added guidance for case when no link layer 847 address is available. 849 3. In Section 3.5, changed the recommended mechanism for obfuscating 850 host names, in order to avoid reveal the underlying link layer 851 address. 853 4. In Section 4.1, added an exception to the "should not send 854 confirm" recommendation, to account for the "good" use of Confirm 855 when roaming between access points on the same network. 857 10. References 859 10.1. Normative References 861 [I-D.ietf-dhc-rfc3315bis] 862 Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., 863 Richardson, M., Jiang, S., and T. Lemon, "Dynamic Host 864 Configuration Protocol for IPv6 (DHCPv6) bis", draft-ietf- 865 dhc-rfc3315bis-01 (work in progress), July 2015. 867 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 868 Requirement Levels", BCP 14, RFC 2119, March 1997. 870 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 871 2131, DOI 10.17487/RFC2131, March 1997, 872 . 874 [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor 875 Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997, 876 . 878 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., 879 and M. Carney, "Dynamic Host Configuration Protocol for 880 IPv6 (DHCPv6)", RFC 3315, July 2003. 882 [RFC3925] Littlefield, J., "Vendor-Identifying Vendor Options for 883 Dynamic Host Configuration Protocol version 4 (DHCPv4)", 884 RFC 3925, DOI 10.17487/RFC3925, October 2004, 885 . 887 [RFC4361] Lemon, T. and B. Sommerfeld, "Node-specific Client 888 Identifiers for Dynamic Host Configuration Protocol 889 Version Four (DHCPv4)", RFC 4361, DOI 10.17487/RFC4361, 890 February 2006, . 892 [RFC4702] Stapp, M., Volz, B., and Y. Rekhter, "The Dynamic Host 893 Configuration Protocol (DHCP) Client Fully Qualified 894 Domain Name (FQDN) Option", RFC 4702, DOI 10.17487/ 895 RFC4702, October 2006, 896 . 898 [RFC4704] Volz, B., "The Dynamic Host Configuration Protocol for 899 IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) 900 Option", RFC 4704, October 2006. 902 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 903 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 904 September 2007. 906 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 907 Extensions for Stateless Address Autoconfiguration in 908 IPv6", RFC 4941, September 2007. 910 10.2. Informative References 912 [CNBC] Weston, G., Greenwald, G., and R. Gallagher, "CBC News: 913 CSEC used airport Wi-Fi to track Canadian travellers", Jan 914 2014, . 918 [I-D.ietf-6man-default-iids] 919 Gont, F., Cooper, A., Thaler, D., and S. LIU, 920 "Recommendation on Stable IPv6 Interface Identifiers", 921 draft-ietf-6man-default-iids-05 (work in progress), July 922 2015. 924 [I-D.ietf-6man-ipv6-address-generation-privacy] 925 Cooper, A., Gont, F., and D. Thaler, "Privacy 926 Considerations for IPv6 Address Generation Mechanisms", 927 draft-ietf-6man-ipv6-address-generation-privacy-03 (work 928 in progress), January 2015. 930 [I-D.ietf-dhc-dhcp-privacy] 931 Jiang, S., Krishnan, S., and T. Mrugalski, "Privacy 932 considerations for DHCP", draft-ietf-dhc-dhcp-privacy-00 933 (work in progress), February 2015. 935 [I-D.ietf-dhc-dhcpv6-privacy] 936 Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy 937 considerations for DHCPv6", draft-ietf-dhc- 938 dhcpv6-privacy-00 (work in progress), February 2015. 940 [I-D.ietf-dhc-dynamic-shared-v4allocation] 941 Cui, Y., Qiong, Q., Farrer, I., Lee, Y., Sun, Q., and M. 942 Boucadair, "Dynamic Allocation of Shared IPv4 Addresses", 943 draft-ietf-dhc-dynamic-shared-v4allocation-09 (work in 944 progress), May 2015. 946 [IEEE-OUI] 947 IEEE, "Organizationally Unique Identifiers 948 http://www.ieee.org/netstorage/standards/oui.txt", 949 . 951 [IETFMACRandom] 952 Zuniga, JC., "MAC Privacy", November 2014, 953 . 955 [RFC4578] Johnston, M. and S. Venaas, Ed., "Dynamic Host 956 Configuration Protocol (DHCP) Options for the Intel 957 Preboot eXecution Environment (PXE)", RFC 4578, DOI 958 10.17487/RFC4578, November 2006, 959 . 961 [WiFiRadioFingerprinting] 962 Brik, V., Banerjee, S., Gruteser, M., and S. Oh, "Wireless 963 Device Identification with Radiometric Signatures", 964 September 2008, . 967 Authors' Addresses 969 Christian Huitema 970 Microsoft 971 Redmond, WA 98052 972 U.S.A. 974 Email: huitema@microsoft.com 976 Tomek Mrugalski 977 Internet Systems Consortium, Inc. 978 950 Charter Street 979 Redwood City, CA 94063 980 USA 982 Email: tomasz.mrugalski@gmail.com 984 Suresh Krishnan 985 Ericsson 986 8400 Decarie Blvd. 987 Town of Mount Royal, QC 988 Canada 990 Phone: +1 514 345 7900 x42871 991 Email: suresh.krishnan@ericsson.com