idnits 2.17.1 draft-huitema-dhc-anonymity-profile-01.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 : ---------------------------------------------------------------------------- ** The document seems to lack a both a reference to RFC 2119 and the recommended RFC 2119 boilerplate, even if it appears to use RFC 2119 keywords. RFC 2119 keyword, line 123: '... The keywords MUST, MUST NOT, REQUIR...' RFC 2119 keyword, line 124: '... SHOULD NOT, RECOMMENDED, MAY, and O...' RFC 2119 keyword, line 324: '...ISCOVER messages MUST contain the Mess...' RFC 2119 keyword, line 326: '... options. It SHOULD NOT contain an...' RFC 2119 keyword, line 328: '...REQUEST messages SHOULD contain the Me...' (33 more instances...) -- The draft header indicates that this document updates RFC4361, but the abstract doesn't seem to mention this, which it should. 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 (March 2, 2015) is 3341 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- ** Obsolete normative reference: RFC 3315 (Obsoleted by RFC 8415) == Outdated reference: A later version (-16) exists of draft-ietf-6man-default-iids-02 == Outdated reference: A later version (-08) exists of draft-ietf-6man-ipv6-address-generation-privacy-04 == 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 (~~), 5 warnings (==), 3 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) March 2, 2015 5 Intended status: Informational 6 Expires: September 3, 2015 8 Anonymity profile for DHCP clients 9 draft-huitema-dhc-anonymity-profile-01.txt 11 Abstract 13 Some DHCP options carry unique identifiers. These identifiers can 14 enable device tracking even if the device administrator takes care of 15 randomizing other potential identifications like link-layer addresses 16 or IPv6 addresses. The anonymity profile is designed for clients 17 that wish to remain anonymous to the visited network. The profile 18 provides guidelines on the composition of DHCP or DHCPv6 requests, 19 designed to minimize disclosure of identifying information. 21 Status of This Memo 23 This Internet-Draft is submitted in full conformance with the 24 provisions of BCP 78 and BCP 79. 26 Internet-Drafts are working documents of the Internet Engineering 27 Task Force (IETF). Note that other groups may also distribute 28 working documents as Internet-Drafts. The list of current Internet- 29 Drafts is at http://datatracker.ietf.org/drafts/current/. 31 Internet-Drafts are draft documents valid for a maximum of six months 32 and may be updated, replaced, or obsoleted by other documents at any 33 time. It is inappropriate to use Internet-Drafts as reference 34 material or to cite them other than as "work in progress." 36 This Internet-Draft will expire on September 3, 2015. 38 Copyright Notice 40 Copyright (c) 2015 IETF Trust and the persons identified as the 41 document authors. All rights reserved. 43 This document is subject to BCP 78 and the IETF Trust's Legal 44 Provisions Relating to IETF Documents 45 (http://trustee.ietf.org/license-info) in effect on the date of 46 publication of this document. Please review these documents 47 carefully, as they describe your rights and restrictions with respect 48 to this document. Code Components extracted from this document must 49 include Simplified BSD License text as described in Section 4.e of 50 the Trust Legal Provisions and are provided without warranty as 51 described in the Simplified BSD License. 53 Table of Contents 55 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 56 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3 57 2. Application domain . . . . . . . . . . . . . . . . . . . . . 3 58 2.1. MAC Address Randomization hypotheses . . . . . . . . . . 4 59 2.2. MAC Address Randomization and DHCP . . . . . . . . . . . 5 60 2.3. Radio fingerprinting . . . . . . . . . . . . . . . . . . 5 61 2.4. Operating system fingerprinting . . . . . . . . . . . . . 6 62 2.5. No anonymity profile identification . . . . . . . . . . . 6 63 2.6. Using the anonymity profiles . . . . . . . . . . . . . . 6 64 2.7. What about privacy for DHCP servers . . . . . . . . . . . 7 65 3. Anonymity profile for DHCPv4 . . . . . . . . . . . . . . . . 7 66 3.1. Client IP address field . . . . . . . . . . . . . . . . . 8 67 3.2. Requested IP address option . . . . . . . . . . . . . . . 8 68 3.3. Client hardware address . . . . . . . . . . . . . . . . . 9 69 3.4. Client Identifier Option . . . . . . . . . . . . . . . . 9 70 3.5. Host Name Option . . . . . . . . . . . . . . . . . . . . 10 71 3.6. Client FQDN Option . . . . . . . . . . . . . . . . . . . 10 72 3.7. UUID/GUID-based Client Identifier Option . . . . . . . . 11 73 3.8. User and Vendor Class DHCP options . . . . . . . . . . . 11 74 4. Anonymity profile for DHCPv6 . . . . . . . . . . . . . . . . 11 75 4.1. Client Identifier DHCPv6 Option . . . . . . . . . . . . . 12 76 4.2. Server Identifier Option . . . . . . . . . . . . . . . . 12 77 4.3. Address assignment options . . . . . . . . . . . . . . . 12 78 4.4. Option Request Option . . . . . . . . . . . . . . . . . . 13 79 4.4.1. Previous option values . . . . . . . . . . . . . . . 13 80 4.5. Authentication Option . . . . . . . . . . . . . . . . . . 13 81 4.6. User and Vendor Class DHCPv6 options . . . . . . . . . . 13 82 4.7. Client FQDN Option . . . . . . . . . . . . . . . . . . . 13 83 5. Management considerations . . . . . . . . . . . . . . . . . . 14 84 6. Security Considerations . . . . . . . . . . . . . . . . . . . 14 85 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 86 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 14 87 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 14 88 9.1. Normative References . . . . . . . . . . . . . . . . . . 14 89 9.2. Informative References . . . . . . . . . . . . . . . . . 15 90 Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 16 92 1. Introduction 94 Reports surfaced recently of systems that would monitor the wireless 95 connections of passengers at Canadian airports [CNBC]. We can assume 96 that these are either fragments or trial runs of a wider system that 97 would attempt to monitor Internet users as they roam through wireless 98 access points and other temporary network attachments. We can also 99 assume that privacy conscious users will attempt to evade this 100 monitoring, for example by ensuring that low level identifiers such 101 as link-layer addresses are "randomized," so that the devices do not 102 broadcast a unique identifier in every location that they visit. 104 Of course, link layer "MAC" addresses are not the only way to 105 identify a device. As soon as it connects to a remote network, the 106 device may use DHCP and DHCPv6 to obtain network parameters. The 107 analysis of DHCP and DHCPv6 options shows that parameters of these 108 protocols can reveal identifiers of the device, negating the benefits 109 of link-layer address randomization. This is documented in detail in 110 [I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. The 111 natural reaction is to restrict the number and values of such 112 parameters in order to minimize disclosure. 114 In the absence of a common standard, different system developers are 115 likely to implement this minimization of disclosure in different 116 ways. Monitoring entities could then use the differences to identify 117 the software version running on the device. The proposed anonymity 118 profile provides a common standard that minimizes information 119 disclosure, including the disclosure of implementation identifiers. 121 1.1. Requirements 123 The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, 124 SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this 125 document, are to be interpreted as described in [RFC2026]. 127 2. Application domain 129 Mobile nodes can be tracked using multiple identifiers, the most 130 prominent being MAC addresses. For example, when devices use Wi-Fi 131 connectivity, they place the MAC address in the header of all the 132 packets that they transmit. Standard implementation of Wi-Fi use 133 unique 48 bit MAC addresses, assigned to the devices according to 134 procedures defined by IEEE 802. Even when the Wi-Fi packets are 135 encrypted, the portion of the header containing the addresses will be 136 sent in clear text. Tracking devices can "listen to the airwaves" to 137 find out what devices are transmitting near them. 139 We can easily imagine that the MAC addresses can be correlated with 140 other data, e.g., clear text names and cookies, to build a registry 141 linking MAC addresses to the identity of devices' owners. Once that 142 correlation is done, tracking the MAC address is sufficient to track 143 individual people, even when all application data sent from the 144 devices is encrypted. MAC addresses can also be correlated with IP 145 addresses of devices, negating potential privacy benefits of IPv6 146 "privacy" addresses. Privacy advocates have some reason to be 147 concerned. 149 The obvious solution is to "randomize" the MAC address. Before 150 connecting to a particular network, the device replaces the MAC 151 address with a randomly drawn 48 bit value. MAC address 152 randomization was successfully tried at the IETF in Honolulu in 153 November 2014 [IETFMACRandom]. However, we have to consider the 154 linkage between MAC addresses, DHCP identifiers and IP addresses. 156 2.1. MAC Address Randomization hypotheses 158 There is not yet an established standard for randomizing MAC 159 addresses. Various prototypes have tried different strategies, such 160 as: 162 Per connection: Configure a random MAC address at the time of 163 connecting to a network, e.g. to specific Wi-Fi SSID, and keep it 164 for the duration of the connection. 166 Per network: Same as "per connection," but always use the same MAC 167 address for the same network -- different of course from the 168 addresses used in other networks. 170 Time interval: Change the MAC address at regular time intervals. 172 In practice, there are many reasons to keep the MAC address constant 173 for the duration of a link-layer connection, as in the "per 174 connection" or "per network" variants. On Wi-Fi networks, changing 175 the MAC address requires dropping the existing Wi-Fi connection and 176 then re-establishing it, which implies repeating the connection 177 process and associated procedures. The IP addresses will change, 178 which means that all required TCP connections will have to be re- 179 established. If the network access is provided through a NAT, 180 changing IP address also means that the NAT traversal procedures will 181 have to be restarted. This means a lot of disruption. At the same 182 time, an observer on the network will easily notice that a station 183 left, another came in just after that, and that the new one appears 184 to be communicating with pretty much the same set of IP addresses as 185 the old one. This provides for easy correlation. 187 The anonymity profile pretty much assumes that the MAC address 188 randomization follows the "per connection" or "per network" 189 strategies, or a variant of the "time interval" strategy in which the 190 interval has about the same duration as the average connection. 192 2.2. MAC Address Randomization and DHCP 194 From a privacy point of view, it is clear that MAC Addresses, IP 195 addresses and DHCP identifiers shall evolve in synchrony. For 196 example, if the MAC address changes and the DHCP identifier stays 197 constant, then it is really easy to correlate old and new MAC 198 addresses, either by listening to DHCP traffic or by observing that 199 the IP address remains constant, since it is tied to the DHCP 200 identifier. Conversely, if the DHCP identifier changes but the MAC 201 address remains constant, the old and new identifiers and addresses 202 can be correlated by listening to L2 traffic. The procedures 203 documented in the following sections construct DHCP identifiers from 204 the current MAC address, automatically providing for this 205 synchronization. 207 The proposed anonymity profiles solve this synchronization issues by 208 deriving most identifiers from the MAC address, and generally by 209 making making sure that DHCP parameter values do not remain constant 210 after an address change. 212 2.3. Radio fingerprinting 214 MAC address randomization solves the trivial monitoring problem in 215 which someone just uses a Wi-Fi scanner and records the MAC addresses 216 seen on the air. DHCP anonymity solves the more elaborated scenario 217 in which someone monitor MAC addresses and identities used in DHCP at 218 the access point or DHCP server. But this are not the only ways to 219 track a mobile device. 221 Radio fingerprinting is a process that identifies a radio transmitter 222 by the unique "fingerprint" of its signal transmission, i.e., the 223 tiny differences caused by minute imperfections of the radio 224 transmission hardware. This can be applied to diverse types of 225 radios, including Wi-Fi as described for example in 226 [WiFiRadioFingerprinting]. No amount of MAC address randomization 227 will protect against such techniques. Protections may exist, but 228 they are outside the scope of the present document. 230 On the other hand, we should not renounce randomization just because 231 radio fingerprinting exists. The radio fingerprinting techniques are 232 harder to deploy than just recording MAC addresses with a scanner. 233 They can only track devices for which the fingerprint are known, and 234 thus have a narrower scope of application than mass monitoring of 235 addresses and DHCP parameters. 237 2.4. Operating system fingerprinting 239 When a standard like DHCP allows for multiple options, different 240 implementers will make different choices for the options that they 241 support or the values they chose for the options. Conversely, 242 monitoring the options and values present in DHCP messages reveals 243 these differences and allows for "operating system fingerprinting," 244 i.e., finding the type and version of software that a particular 245 device is running. Finding these versions provides some information 246 about the device identity, and thus goes against the goal of 247 anonymity. 249 The design of the anonymity profiles attempts to minimize the number 250 of options and the choice of values, in order to reduce the 251 possibilities of operating system fingerprinting. 253 2.5. No anonymity profile identification 255 Reviewers of the anonymity profiles have sometimes suggested adding 256 an option to explicitly identify the profiles as "using the anonymity 257 option." One suggestion is that if the client wishes to remain 258 anonymous, it would be good if the client told the server about that 259 in case the server is willing to co-operate. 261 The problem of course is that declaring an anonymous option is a bit 262 like walking around with a Guy Fawkes mask. When anonymity is 263 required, it is generally not a good idea to stick out of the crowd. 264 That is the reason why anonymity profiles do not include an explicit 265 declaration fo anonymity. 267 2.6. Using the anonymity profiles 269 There are downsides to randomizing MAC addresses and DHCP 270 identifiers. By definition, randomization will break management 271 procedures that rely on tracking MAC addresses. Even if this is not 272 too much of a concern, we have to be worried about the frequency of 273 MAC address randomization. Suppose for example that many devices 274 would get new random MAC addresses at short intervals, maybe every 275 few minutes. This would generate new DHCP requests in rapid 276 succession, with a high risk of exhausting DHCPv4 address pools. 277 Even with IPv6, there would still be a risk of increased neighbor 278 discovery traffic, and bloating of various address tables. 279 Implementers will have to be cautious when programming devices to use 280 randomized MAC addresses. They will have to carefully chose the 281 frequency with which such addresses will be renewed. 283 This document only provides guidelines for using DHCP when clients 284 care about privacy and servers do not object. We assume that the 285 request for anonymity is materialized by the assignment of a 286 randomized MAC address to the network interface. Once that decision 287 is made, the following guidelines will avoid leakage of identity in 288 DHCP parameters or in assigned addresses. 290 There may be rare situations where the clients want anonymity to 291 attackers but not to their DHCP server. These clients should still 292 use MAC Address randomization to hide from observers, and some form 293 of encrypted communication to the DHCP server. This scenario is not 294 yet supported in this document. 296 2.7. What about privacy for DHCP servers 298 This document only provides recommendations for DHCP clients. The 299 main target are DHCP clients used in mobile devices. Such devices 300 are a tempting target for various monitoring systems, and providing 301 them with a simple anonymity solution is urgent. We can argue that 302 some mobile devices embed DHCP servers, and that providing solutions 303 for such devices is also quite important. Two plausible examples 304 would be a DHCP server for a car network, or a DHCP server for a 305 mobile hot spot. However, mobile servers get a lot of privacy 306 protection through the use of access control and link layer 307 encryption. Servers may disclose information to clients through 308 DHCP, but they normally only do that to clients that have passed the 309 link-layer access control and have been authorized to use the network 310 services. This arguably makes solving the server problem less urgent 311 than solving the client problem. 313 The server part will be covered by the general mitigation work going 314 on in DHCP working group, following the analyses presented in 315 [I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. 317 3. Anonymity profile for DHCPv4 319 Clients using the DHCPv4 anonymity profile limit the disclosure of 320 information by controlling the header parameters and by limiting the 321 number and values of options. The number of options depend on the 322 specific DHCP message: 324 DISCOVER: The anonymized DISCOVER messages MUST contain the Message 325 Type, Client Identifier, Host name, and Parameter Request List 326 options. It SHOULD NOT contain any other option. 328 REQUEST: The anonymized REQUEST messages SHOULD contain the Message 329 Type, Client Identifier, Host name, and Parameter Request List 330 options. If the message is in response to an OFFER, it SHOULD 331 contain the corresponding Server Identifier option. It SHOULD NOT 332 contain any other option. 334 DECLINE: The anonymized DECLINE messages SHOULD contain the Message 335 Type, Client Identifier and Server Identifier options. 337 RELEASE: The anonymized RELEASE messages SHOULD contain the Message 338 Type, Client Identifier and Server Identifier options. 340 INFORM: The anonymized INFORM messages MUST contain the Message 341 Type, Client Id, Host name, and Parameter Request List options. 342 It SHOULD NOT contain any other option. 344 Header fields and option values SHOULD be set in accordance with the 345 DHCP specification, but some header fields and option values SHOULD 346 be constructed per the following guidelines. 348 3.1. Client IP address field 350 Four bytes in the header of the DHCP messages carry the "Client IP 351 address" (ciaddr) as defined in [RFC2131]. In DHCP, this field is 352 used by the clients to indicate the address that they used 353 previously, so that as much as possible the server can allocate them 354 the same address. 356 There is very little privacy implication of sending this address in 357 the DHCP messages, except in one case, when connecting to a different 358 network than the last network connected. If the DHCP client somehow 359 repeated the address used in a previous network attachment, 360 monitoring services might use the information to tie the two network 361 locations. DHCP clients should ensure that the field is cleared when 362 they know that the network attachment has changed, and in particular 363 of the link layer address is reset by the device's administrator. 365 The clients using the anonymity profile MUST NOT include in the 366 message a Client IP Address that has been obtained with a different 367 MAC address. 369 3.2. Requested IP address option 371 The Requested IP address option (code 50) allows the client to 372 request that a particular IP address be assigned. The option is 373 mandatory in some protocol messages per [RFC2131], for example when a 374 client selects to use an address offered by a server. However, this 375 option is not mandatory in the DHCPDISCOVER message. It is simply a 376 convenience, an attempt to regain the same IP address that was used 377 in a previous connection. Doing so entails the risk of disclosing an 378 IP address used by the client at a previous location, or with a 379 different MAC Address. 381 When using the anonymity profile, clients SHOULD NOT use the 382 Requested IP address option in DHCPDISCOVER Messages. 384 3.3. Client hardware address 386 Sixteen bytes in the header of the DHCP messages carry the "Client 387 hardware address" (chaddr) as defined in [RFC2131]. The presence of 388 this address is necessary for the proper operation of the DHCP 389 service. 391 Hardware addresses, called "link layer address" in many RFCs, can be 392 used to uniquely identify a device, especially if they follow the 393 IEEE 802 recommendations. These unique identifiers can be used by 394 monitoring services to track the location of the device and its user. 395 The only plausible defense is to somehow reset the hardware address 396 to a random value when visiting an untrusted location, before 397 transmitting anything at that location with the hardware address. If 398 the hardware address is reset to a new value, or randomized, the DHCP 399 client SHOULD use the new randomized value in the DHCP messages. 401 3.4. Client Identifier Option 403 The client identifier option is defined in [RFC2132] with option code 404 61. It is discussed in details in [RFC4361]. The purpose of the 405 client identifier option is to identify the client in a manner 406 independent of the link layer address. This is particularly useful 407 if the DHCP server is expected to assign the same address to the 408 client after a network attachment is swapped and the link layer 409 address changes. It is also useful when the same node issues 410 requests through several interfaces, and expects the DHCP server to 411 provide consistent configuration data over multiple interfaces. 413 The considerations for hardware independence and strong client 414 identity have an adverse effect on the privacy of mobile clients, 415 because the hardware-independent unique identifier obviously enables 416 very efficient tracking of the client's movements. 418 The recommendations in [RFC4361] are very strong, stating for example 419 that "DHCPv4 clients MUST NOT use client identifiers based solely on 420 layer two addresses that are hard-wired to the layer two device 421 (e.g., the Ethernet MAC address)." These strong recommendations are 422 in fact a tradeoff between ease of management and privacy, and the 423 tradeoff should depend on the circumstances. 425 In contradiction to [RFC4361], When using the anonymity profile, DHCP 426 clients MUST use client identifiers based solely on the link layer 427 address that will be used in the underlying connection. This will 428 ensure that the DHCP client identifier does not leak any information 429 that is not already available to entities monitoring the network 430 connection. It will also ensure that a strategy of randomizing the 431 link layer address will not be nullified by DHCP options. 433 3.5. Host Name Option 435 The Host Name option is defined in [RFC2132] with option code 12. 436 Depending on implementations, the option value can carry either a 437 fully qualified domain name such as "node1984.example.com," or a 438 simple host name such as "node1984." The host name is commonly used 439 by the DHCP server to identify the host, and also to automatically 440 update the address of the host in local name services. 442 Fully qualified domain names are obviously unique identifiers, but 443 even simple host names can provide a significant amount of 444 information on the identity of the device. They are typically chosen 445 to be unique in the context where the device is most often used. If 446 that context is wide enough, in a large company or in a big 447 university, the host name will be a pretty good identifier of the 448 device. Monitoring services could use that information in 449 conjunction with traffic analysis and quickly derive the identity of 450 the device's owner. 452 When using the anonymity profile, DHCP clients MUST always send a 453 non-qualified host name instead of a fully qualified domain name, and 454 SHOULD obfuscate the host name value, so it could not be linked to 455 anything other than the link layer address. A simple solution would 456 be to set the host name value to a hexadecimal representation of the 457 link layer address that will be used in the underlying connection. 459 3.6. Client FQDN Option 461 The Client FQDN option is defined in [RFC4702] with option code 81. 462 The option allows the DHCP clients to advertise to the DHCP server 463 their fully qualified domain name (FQDN) such as 464 "mobile.example.com." This would allow the DHCP server to update in 465 the DNS the PTR record for the IP address allocated to the client. 466 Depending on circumstances, either the DHCP client or the DHCP server 467 could update in the DNS the A record for the FQDN of the client. 469 Obviously, this option uniquely identifies the client, exposing it to 470 the DHCP server or to anyone listening to DHCP traffic. In fact, if 471 the DNS record is updated, the location of the client becomes visible 472 to anyone with DNS lookup capabilities. 474 When using the anonymity profile, DHCP clients SHOULD NOT include the 475 Client FQDN option in their DHCP requests. Alternatively, they MAY 476 include a special purpose FQDN using the same hostname as in the Host 477 Name Option, with a suffix matching the connection-specific DNS 478 suffix being advertised by that DHCP server. Having a name in the 479 DNS allows working with legacy systems that require one to be there, 480 e.g., by verifying a forward and reverse lookup succeeds with the 481 same result. 483 3.7. UUID/GUID-based Client Identifier Option 485 The UUID/GUID-based Client Machine Identifier option is defined in 486 [RFC4578], with option code 97. The option is part of a set of 487 options for Intel Preboot eXecution Environment (PXE). The purpose 488 of the PXE system is to perform management functions on a device 489 before its main OS is operational. The Client Machine Identifier 490 carries a 16-octet Globally Unique Identifier (GUID), which uniquely 491 identifies the device. 493 The PXE system is clearly designed for devices operating in a 494 controlled environment, and its functions are not meant to be used by 495 mobile nodes visiting untrusted networks. If only for privacy 496 reasons, nodes visiting untrusted networks MUST disable the PXE 497 functions, and MUST NOT send the corresponding options. 499 3.8. User and Vendor Class DHCP options 501 Vendor identifying options are defined in [RFC2132] and [RFC3925]. 502 When using the anonymity profile, DHCP clients SHOULD NOT use the 503 Vendor Specific Information option (code 43), the Vendor Class 504 Identifier Option (60), the Vendor Class option (code 124), or the 505 Vendor Specific Information option (code 125) as these options 506 potentially reveal identifying information. 508 4. Anonymity profile for DHCPv6 510 DHCPv6 is typically used by clients in one of two scenarios: stateful 511 and stateless configuration. In the stateful scenario, clients use a 512 combination of SOLICIT, REQUEST, CONFIRM, RENEW, REBIND and RELEASE 513 messages to obtain addresses, and manage these addresses. 515 In the stateless scenario, clients configure addresses using a 516 combination of client managed identifiers and router-advertised 517 prefixes, without involving the DHCPv6 services. Different ways of 518 constructing these prefixes have different implications on privacy, 519 which are discussed in [I-D.ietf-6man-default-iids] and 520 [I-D.ietf-6man-ipv6-address-generation-privacy]. In the stateless 521 scenario, clients use DHCPv6 to obtain network configuration 522 parameters, through the INFORMATION-REQUEST message. 524 When using the anonymity profile, DHCPv6 clients carefully select 525 DHCPv6 options used in the various messages that they sent. The list 526 of options that are mandatory or optional for each message is 527 specified in [RFC3315]. Some of these options have specific 528 implications on anonymity. The following sections provide guidance 529 on the choice of option values when using the anonymity profile. 531 4.1. Client Identifier DHCPv6 Option 533 The client identifier option is defined in [RFC3315] with option code 534 1. The purpose of the client identifier option is to identify the 535 client to the server. The content of the option is a DHCP User ID 536 (DUID) for which three formats are specified: Link-layer address plus 537 time, Vendor-assigned unique ID based on Enterprise Number, Link- 538 layer address. 540 When using the anonymity profile, DHCPv6 clients MUST use the DUID 541 format number 3, Link-layer address. The value of the Link-layer 542 address should be that currently assigned to the interface. 544 4.2. Server Identifier Option 546 When using the anonymity profile, DHCPv6 clients SHOULD use the 547 Server Identifier Option (code 2) as specified in [RFC3315]. Clients 548 MUST only include server identifier values that were received with 549 the current MAC address, because reuse of old values discloses 550 information that can be used to identify the client. 552 4.3. Address assignment options 554 When using the anonymity profile, DHCPv6 clients might have to use 555 SOLICIT or REQUEST messages to obtain IPv6 addresses through the DHCP 556 server. The clients SHOULD only use the options necessary to perform 557 the requested DHCPv6 transactions, such as Identity Association for 558 Non-temporary Addresses Option (code 3) or Identity Association for 559 Temporary Addresses Option (code 4). 561 The clients MAY use the IA Address Option (code 5) but need to 562 balance the potential advantage of "address continuity" versus the 563 potential risk of "previous address disclosure." A potential 564 solution is to remove all stored addresses when a MAC address 565 changes, and to only use the IA Address option with addresses that 566 have been explicitly assigned through the current MAC address. 568 4.4. Option Request Option 570 When using the anonymity profile, DHCPv6 clients SHOULD use the 571 Option Request Option (code 6) as specified in [RFC3315]. 573 4.4.1. Previous option values 575 According to [RFC3315], the client that includes an Option Request 576 Option in a Solicit or Request message MAY additionally include 577 instances of those options that are identified in the Option Request 578 option, with data values as hints to the server about parameter 579 values the client would like to have returned. 581 When using the anonymity profile, clients SHOULD NOT include such 582 instances of options because old values might be used to identify the 583 client. 585 4.5. Authentication Option 587 The purpose of the Authentication option (code 11) is to authenticate 588 the identity of clients and servers and the contents of DHCP 589 messages. As such, the option can be used to identify the client, 590 and is incompatible with the stated goal of "client anonymity." 591 DHCPv6 clients that use the anonymity profile SHOULD NOT use the 592 authentication option. They MAY use it if they recognize that they 593 are operating in a trusted environment, e.g., in a work place 594 network. 596 4.6. User and Vendor Class DHCPv6 options 598 When using the anonymity profile, DHCPv6 clients SHOULD NOT use the 599 User Class option (code 15) or the Vendor Class option (code 16), as 600 these options potentially reveal identifying information. 602 4.7. Client FQDN Option 604 The Client FQDN option is defined in [RFC4704] with option code 29. 605 The option allows the DHCP clients to advertize to the DHCP their 606 fully qualified domain name (FQDN) such as "mobile.example.com." 607 When using the anonymity profile, DHCPv6 clients SHOULD NOT include 608 the Client FQDN option in their DHCPv6 messages because it identifies 609 the client. As explained in Section 3.6 they MAY use a local-only 610 FQDN by combining a host name derived from the link layer address and 611 a suffix advertised by the local DHCP server. 613 5. Management considerations 615 The anonymity profile has the effect of hiding the client identity 616 from the DHCP server. This is not always desirable. Some DHCP 617 servers provide facilities like publishing names and addresses in the 618 DNS, or ensuring that returning clients get reassigned the same 619 address. Implementers should be careful to only use the anonymity 620 profile when privacy trumps management considerations. 622 Servers dealing with clients using this profile who want to honour 623 the client's wishes, ought minimise logging because that may assist 624 the client. 626 6. Security Considerations 628 The use of the anonymity profile does not change the security 629 considerations of the DHCPv4 or DHCPv6 protocols. 631 7. IANA Considerations 633 This draft does not require any IANA action. 635 8. Acknowledgments 637 The inspiration for this draft came from discussions in the Perpass 638 mailing list. Several people provided feedback on early versions of 639 this draft, notably Noel Anderson, Stephen Farrell, Tushar Gupta, 640 Gabriel Montenegro, Dave Thaler and Jun Wu. 642 9. References 644 9.1. Normative References 646 [RFC2026] Bradner, S., "The Internet Standards Process -- Revision 647 3", BCP 9, RFC 2026, October 1996. 649 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 650 2131, March 1997. 652 [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor 653 Extensions", RFC 2132, March 1997. 655 [RFC3315] Droms, R., Bound, J., Volz, B., Lemon, T., Perkins, C., 656 and M. Carney, "Dynamic Host Configuration Protocol for 657 IPv6 (DHCPv6)", RFC 3315, July 2003. 659 [RFC3925] Littlefield, J., "Vendor-Identifying Vendor Options for 660 Dynamic Host Configuration Protocol version 4 (DHCPv4)", 661 RFC 3925, October 2004. 663 [RFC4361] Lemon, T. and B. Sommerfeld, "Node-specific Client 664 Identifiers for Dynamic Host Configuration Protocol 665 Version Four (DHCPv4)", RFC 4361, February 2006. 667 [RFC4578] Johnston, M. and S. Venaas, "Dynamic Host Configuration 668 Protocol (DHCP) Options for the Intel Preboot eXecution 669 Environment (PXE)", RFC 4578, November 2006. 671 [RFC4702] Stapp, M., Volz, B., and Y. Rekhter, "The Dynamic Host 672 Configuration Protocol (DHCP) Client Fully Qualified 673 Domain Name (FQDN) Option", RFC 4702, October 2006. 675 [RFC4704] Volz, B., "The Dynamic Host Configuration Protocol for 676 IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) 677 Option", RFC 4704, October 2006. 679 9.2. Informative References 681 [CNBC] Weston, G., Greenwald, G., and R. Gallagher, "CBC News: 682 CSEC used airport Wi-Fi to track Canadian travellers", Jan 683 2014, . 687 [I-D.ietf-6man-default-iids] 688 Gont, F., Cooper, A., Thaler, D., and W. Will, 689 "Recommendation on Stable IPv6 Interface Identifiers", 690 draft-ietf-6man-default-iids-02 (work in progress), 691 January 2015. 693 [I-D.ietf-6man-ipv6-address-generation-privacy] 694 Cooper, A., Gont, F., and D. Thaler, "Privacy 695 Considerations for IPv6 Address Generation Mechanisms", 696 draft-ietf-6man-ipv6-address-generation-privacy-04 (work 697 in progress), February 2015. 699 [I-D.ietf-dhc-dhcp-privacy] 700 Jiang, S., Krishnan, S., and T. Mrugalski, "Privacy 701 considerations for DHCP", draft-ietf-dhc-dhcp-privacy-00 702 (work in progress), February 2015. 704 [I-D.ietf-dhc-dhcpv6-privacy] 705 Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy 706 considerations for DHCPv6", draft-ietf-dhc- 707 dhcpv6-privacy-00 (work in progress), February 2015. 709 [IETFMACRandom] 710 Zuniga, JC., "MAC Privacy", November 2014, 711 . 713 [WiFiRadioFingerprinting] 714 Brik, V., Banerjee, S., Gruteser, M., and S. Oh, "Wireless 715 Device Identification with Radiometric Signatures", 716 September 2008, 717 . 720 Author's Address 722 Christian Huitema 723 Microsoft 724 Redmond, WA 98052 725 U.S.A. 727 Email: huitema@microsoft.com