idnits 2.17.1 draft-ietf-dhc-anonymity-profile-08.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 -- The document date (February 19, 2016) is 2982 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) ** Obsolete normative reference: RFC 3315 (Obsoleted by RFC 8415) ** Obsolete normative reference: RFC 3633 (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-10 == Outdated reference: A later version (-05) exists of draft-ietf-dhc-dhcp-privacy-04 == Outdated reference: A later version (-05) exists of draft-ietf-dhc-dhcpv6-privacy-04 == Outdated reference: A later version (-13) exists of draft-ietf-dhc-rfc3315bis-03 Summary: 3 errors (**), 0 flaws (~~), 5 warnings (==), 1 comment (--). 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 Intended status: Standards Track T. Mrugalski 5 Expires: August 22, 2016 ISC 6 S. Krishnan 7 Ericsson 8 February 19, 2016 10 Anonymity profile for DHCP clients 11 draft-ietf-dhc-anonymity-profile-08.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. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on August 22, 2016. 40 Copyright Notice 42 Copyright (c) 2016 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 58 1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3 59 2. Application domain . . . . . . . . . . . . . . . . . . . . . 3 60 2.1. MAC address Randomization hypotheses . . . . . . . . . . 4 61 2.2. MAC address Randomization and DHCP . . . . . . . . . . . 5 62 2.3. Radio fingerprinting . . . . . . . . . . . . . . . . . . 5 63 2.4. Operating system fingerprinting . . . . . . . . . . . . . 6 64 2.5. No anonymity profile identification . . . . . . . . . . . 6 65 2.6. Using the anonymity profiles . . . . . . . . . . . . . . 7 66 2.7. What about privacy for DHCP servers . . . . . . . . . . . 8 67 3. Anonymity profile for DHCPv4 . . . . . . . . . . . . . . . . 8 68 3.1. Avoiding fingerprinting . . . . . . . . . . . . . . . . . 9 69 3.2. Client IP address field . . . . . . . . . . . . . . . . . 9 70 3.3. Requested IP address option . . . . . . . . . . . . . . . 10 71 3.4. Client hardware address field . . . . . . . . . . . . . . 11 72 3.5. Client Identifier Option . . . . . . . . . . . . . . . . 11 73 3.6. Parameter Request List Option . . . . . . . . . . . . . . 12 74 3.7. Host Name Option . . . . . . . . . . . . . . . . . . . . 12 75 3.8. Client FQDN Option . . . . . . . . . . . . . . . . . . . 13 76 3.9. UUID/GUID-based Client Identifier Option . . . . . . . . 14 77 3.10. User and Vendor Class DHCP options . . . . . . . . . . . 14 78 4. Anonymity profile for DHCPv6 . . . . . . . . . . . . . . . . 14 79 4.1. Avoiding fingerprinting . . . . . . . . . . . . . . . . . 15 80 4.2. Do not send Confirm messages, unless really sure where . 15 81 4.3. Client Identifier DHCPv6 Option . . . . . . . . . . . . . 16 82 4.3.1. Anonymous Information-Request . . . . . . . . . . . . 17 83 4.4. Server Identifier Option . . . . . . . . . . . . . . . . 17 84 4.5. Address assignment options . . . . . . . . . . . . . . . 17 85 4.5.1. Obtain temporary addresses . . . . . . . . . . . . . 18 86 4.5.2. Prefix delegation . . . . . . . . . . . . . . . . . . 18 87 4.6. Option Request Option . . . . . . . . . . . . . . . . . . 19 88 4.6.1. Previous option values . . . . . . . . . . . . . . . 19 89 4.7. Authentication Option . . . . . . . . . . . . . . . . . . 19 90 4.8. User and Vendor Class DHCPv6 options . . . . . . . . . . 19 91 4.9. Client FQDN Option . . . . . . . . . . . . . . . . . . . 20 92 5. Operational Considerations . . . . . . . . . . . . . . . . . 20 93 6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 94 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 95 8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 96 9. Changes from previous versions . . . . . . . . . . . . . . . 21 97 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 98 10.1. Normative References . . . . . . . . . . . . . . . . . . 24 99 10.2. Informative References . . . . . . . . . . . . . . . . . 25 100 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27 102 1. Introduction 104 There have been reports of systems that would monitor the wireless 105 connections of passengers at Canadian airports [CNBC]. We can assume 106 that these are either fragments or trial runs of a wider system that 107 would attempt to monitor Internet users as they roam through wireless 108 access points and other temporary network attachments. We can also 109 assume that privacy conscious users will attempt to evade this 110 monitoring, for example by ensuring that low level identifiers such 111 as link-layer addresses are "randomized," so that the devices do not 112 broadcast the same unique identifier in every location that they 113 visit. 115 Of course, link layer "MAC" addresses are not the only way to 116 identify a device. As soon as it connects to a remote network, the 117 device may use DHCP and DHCPv6 to obtain network parameters. The 118 analysis of DHCP and DHCPv6 options shows that parameters of these 119 protocols can reveal identifiers of the device, negating the benefits 120 of link-layer address randomization. This is documented in detail in 121 [I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. The 122 natural reaction is to restrict the number and values of such 123 parameters in order to minimize disclosure. 125 In the absence of a common standard, different system developers are 126 likely to implement this minimization of disclosure in different 127 ways. Monitoring entities could then use the differences to identify 128 the software version running on the device. The proposed anonymity 129 profile provides a common standard that minimizes information 130 disclosure, including the disclosure of implementation identifiers. 132 1.1. Requirements 134 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 135 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 136 document are to be interpreted as described in [RFC2119]. 138 2. Application domain 140 Mobile nodes can be tracked using multiple identifiers, the most 141 prominent being link-layer addresses, a.k.a. MAC addresses. For 142 example, when devices use Wi-Fi connectivity, they place the MAC 143 address in the header of all the packets that they transmit. 144 Standard implementation of Wi-Fi use unique 48 bit link-layer 145 addresses, assigned to the devices according to procedures defined by 146 IEEE 802. Even when the Wi-Fi packets are encrypted, the portion of 147 the header containing the addresses will be sent in clear text. 148 Tracking devices can "listen to the airwaves" to find out what 149 devices are transmitting near them. 151 We can easily imagine that the MAC addresses can be correlated with 152 other data, e.g., clear text names and cookies, to build a registry 153 linking MAC addresses to the identity of devices' owners. Once that 154 correlation is done, tracking the MAC address is sufficient to track 155 individual people, even when all application data sent from the 156 devices is encrypted. link-layer addresses can also be correlated 157 with IP addresses of devices, negating potential privacy benefits of 158 IPv6 "privacy" addresses. Privacy advocates have reasons to be 159 concerned. 161 The obvious solution is to "randomize" the MAC address. Before 162 connecting to a particular network, the device replaces the MAC 163 address with a randomly drawn 48 bit value. Link-layer address 164 randomization was successfully tried at the IETF in Honolulu in 165 November 2014 [IETFMACRandom] and in following meetings 166 [IETFTrialsAndMore]; it is studied in the IEEE 802 EC Privacy 167 Recommendation Study Group [IEEE802PRSG]. However, we have to 168 consider the linkage between link-layer addresses, DHCP identifiers 169 and IP addresses. 171 2.1. MAC address Randomization hypotheses 173 There is not yet an established standard for randomizing link-layer 174 addresses. Various prototypes have tried different strategies, such 175 as: 177 Per connection: Configure a random link-layer address at the time of 178 connecting to a network, e.g. to specific Wi-Fi SSID, and keep it 179 for the duration of the connection. 181 Per network: Same as "per connection," but always use the same link- 182 layer address for the same network -- different of course from the 183 addresses used in other networks. 185 Time interval: Change the link-layer address at regular time 186 intervals. 188 In practice, there are many reasons to keep the link-layer address 189 constant for the duration of a link-layer connection, as in the "per 190 connection" or "per network" variants. On Wi-Fi networks, changing 191 the link-layer address requires dropping the existing Wi-Fi 192 connection and then re-establishing it, which implies repeating the 193 connection process and associated procedures. The IP addresses will 194 change, which means that all required TCP connections will have to be 195 re-established. If the network access is provided through a NAT, 196 changing IP address also means that the NAT traversal procedures will 197 have to be restarted. This means a lot of disruption. At the same 198 time, an observer on the network will easily notice that a station 199 left, another came in just after that, and that the new one appears 200 to be communicating with the same set of IP addresses as the old one. 201 This provides for easy correlation. 203 The anonymity profile pretty much assumes that the link-layer address 204 randomization follows the "per connection" or "per network" 205 strategies, or a variant of the "time interval" strategy in which the 206 interval has about the same duration as the average connection. 208 2.2. MAC address Randomization and DHCP 210 From a privacy point of view, it is clear that link-layer address, IP 211 address and DHCP identifier shall evolve in synchrony. For example, 212 if the link-layer address changes and the DHCP identifier stays 213 constant, then it is really easy to correlate old and new link-layer 214 addresses, either by listening to DHCP traffic or by observing that 215 the IP address remains constant, since it is tied to the DHCP 216 identifier. Conversely, if the DHCP identifier changes but the link- 217 layer address remains constant, the old and new identifiers and 218 addresses can be correlated by listening to L2 traffic. The 219 procedures documented in the following sections construct DHCP 220 identifiers from the current link-layer address, automatically 221 providing for this synchronization. 223 The proposed anonymity profiles solve this synchronization issues by 224 deriving most identifiers from the link-layer address, and generally 225 by making sure that DHCP parameter values do not remain constant 226 after an address change. 228 2.3. Radio fingerprinting 230 MAC address randomization solves the trivial monitoring problem in 231 which someone just uses a Wi-Fi scanner and records the MAC addresses 232 seen on the air. DHCP anonymity solves the more elaborated scenario 233 in which someone monitor link-layer addresses and identities used in 234 DHCP at the access point or DHCP server. But these are not the only 235 ways to track a mobile device. 237 Radio fingerprinting is a process that identifies a radio transmitter 238 by the unique "fingerprint" of its signal transmission, i.e., the 239 tiny differences caused by minute imperfections of the radio 240 transmission hardware. This can be applied to diverse types of 241 radios, including Wi-Fi as described for example in 242 [WiFiRadioFingerprinting]. No amount of link-layer address 243 randomization will protect against such techniques. Protections may 244 exist, but they are outside the scope of the present document. 246 On the other hand, we should not renounce randomization just because 247 radio fingerprinting exists. The radio fingerprinting techniques are 248 harder to deploy than just recording link-layer addresses with a 249 scanner. They can only track devices for which the fingerprint are 250 known, and thus have a narrower scope of application than mass 251 monitoring of addresses and DHCP parameters. 253 2.4. Operating system fingerprinting 255 When a standard like DHCP allows for multiple options, different 256 implementers will make different choices for the options that they 257 support or the values they chose for the options. Conversely, 258 monitoring the options and values present in DHCP messages reveals 259 these differences and allows for "operating system fingerprinting," 260 i.e., finding the type and version of software that a particular 261 device is running. Finding these versions provides some information 262 about the device identity, and thus goes against the goal of 263 anonymity. 265 The design of the anonymity profiles attempts to minimize the number 266 of options and the choice of values, in order to reduce the 267 possibilities of operating system fingerprinting. 269 2.5. No anonymity profile identification 271 Reviewers of the anonymity profiles have sometimes suggested adding 272 an option to explicitly identify the profiles as "using the anonymity 273 option." One suggestion is that if the client wishes to remain 274 anonymous, it would be good if the client told the server about that 275 in case the server is willing to co-operate. Another possibility 276 would be to use specific privacy-oriented construct, such as for 277 example a new type of DUID for a temporary DUID that would be 278 changing over time. 280 This is not workable in a large number of cases as it is possible 281 that the network operator (or other entities that have access to the 282 operator's network) might be actively participating in surveillance 283 and anti-privacy, willingly or not. Declaring a preference for 284 anonymity is a bit like walking around with a Guy Fawkes mask. (See 285 [GuyFawkesMask] for an explanation of this usage.) When anonymity is 286 required, it is generally not a good idea to stick out of the crowd. 287 Simply revealing the desire for privacy, could cause the attacker to 288 react by triggering additional surveillance or monitoring mechanisms. 290 Therefore we feel that it is preferable to not disclose one's desire 291 for privacy. 293 This preference leads to some important implications. In particular, 294 we make an effort to make the mitigation techniques difficult to 295 distinguish from regular client behaviors, if at all possible. 297 2.6. Using the anonymity profiles 299 There are downsides to randomizing link-layer addresses and DHCP 300 identifiers. By definition, randomization will break management 301 procedures that rely on tracking link-layer addresses. Even if this 302 is not too much of a concern, we have to be worried about the 303 frequency of link-layer address randomization. Suppose for example 304 that many devices would get new random link-layer addresses at short 305 intervals, maybe every few minutes. This would generate new DHCP 306 requests in rapid succession, with a high risk of exhausting DHCPv4 307 address pools. Even with IPv6, there would still be a risk of 308 increased neighbor discovery traffic, and bloating of various address 309 tables. Implementers will have to be cautious when programming 310 devices to use randomized MAC addresses. They will have to carefully 311 chose the frequency with which such addresses will be renewed. 313 This document only provides guidelines for using DHCP when clients 314 care about privacy. We assume that the request for anonymity is 315 materialized by the assignment of a randomized link-layer address to 316 the network interface. Once that decision is made, the following 317 guidelines will avoid leakage of identity in DHCP parameters or in 318 assigned addresses. 320 There may be rare situations where the clients want anonymity to 321 attackers but not to their DHCP server. These clients should still 322 use link-layer address randomization to hide from observers, and some 323 form of encrypted communication to the DHCP server. This scenario is 324 out of scope for this document. 326 To preserve anonymity, the clients need to not use stable values for 327 the client identifiers. This is clearly a tradeoff, because a stable 328 client identifier guarantees that the client will receive consistent 329 parameters over time. An example is given in [RFC7618], where the 330 client identifier is used to guarantee that the same client will 331 always get the same combination of IP address and port range. Static 332 clients benefit most from stable parameters, and can often be already 333 identified by physical connection layer parameters. These static 334 clients will normally not use the anonymity profile. Mobile clients, 335 in contrast, have the option of using the anonymity profile in 336 conjunction with [RFC7618] if they are more concerned with privacy 337 protection than with stable parameters. 339 2.7. What about privacy for DHCP servers 341 This document only provides recommendations for DHCP clients. The 342 main target are DHCP clients used in mobile devices. Such devices 343 are a tempting target for various monitoring systems, and providing 344 them with a simple anonymity solution is urgent. We can argue that 345 some mobile devices embed DHCP servers, and that providing solutions 346 for such devices is also quite important. Two plausible examples 347 would be a DHCP server for a car network, or a DHCP server for a 348 mobile hot spot. However, mobile servers get a lot of privacy 349 protection through the use of access control and link layer 350 encryption. Servers may disclose information to clients through 351 DHCP, but they normally only do that to clients that have passed the 352 link-layer access control and have been authorized to use the network 353 services. This arguably makes solving the server problem less urgent 354 than solving the client problem. 356 Server privacy issues are presented in [I-D.ietf-dhc-dhcp-privacy] 357 and [I-D.ietf-dhc-dhcpv6-privacy]. Mitigation of these issues is 358 left to further study. 360 3. Anonymity profile for DHCPv4 362 Clients using the DHCPv4 anonymity profile limit the disclosure of 363 information by controlling the header parameters and by limiting the 364 number and values of options. The number of options depend on the 365 specific DHCP message: 367 DHCPDISCOVER: The anonymized DHCPDISCOVER messages MUST contain the 368 Message Type, MAY contain the Client Identifier, and MAY contain 369 the Parameter Request List options. It SHOULD NOT contain any 370 other option. 372 DHCPREQUEST: The anonymized DHCPREQUEST messages MUST contain the 373 Message Type, MAY contain the Client Identifier, and MAY contain 374 the Parameter Request List options. If the message is in response 375 to a DHCPOFFER, it MUST contain the corresponding Server 376 Identifier option and the Requested IP address. If the message is 377 not in response to a DHCPOFFER, it MAY contain a Requested IP 378 address as explained in Section 3.3. It SHOULD NOT contain any 379 other option. 381 DHCPDECLINE: The anonymized DHCPDECLINE messages MUST contain the 382 Message Type, Server Identifier, and Requested IP address options, 383 and MAY contain the Client Identifier options. 385 DHCPRELEASE: The anonymized DHCPRELEASE messages MUST contain the 386 Message Type and Server Identifier options, and MAY contain the 387 Client Identifier option. 389 DHCPINFORM: The anonymized DHCPINFORM messages MUST contain the 390 Message Type, and MAY contain the Client Identifier and Parameter 391 Request List options. It SHOULD NOT contain any other option. 393 Header fields and option values SHOULD be set in accordance with the 394 DHCP specification, but some header fields and option values SHOULD 395 be constructed per the following guidelines. 397 The inclusion of HostName and FQDN options in DHCPDISCOVER, 398 DHCPREQUEST or DHCPINFORM messages is discussed in Section 3.7 and 399 Section 3.8. 401 3.1. Avoiding fingerprinting 403 There are many choices for implementing DHCPv4 messages. Clients can 404 choose to transmit a specific set of options, pick particular 405 encoding for these options, and transmit options in different orders. 406 These choices can be use to fingerprint the client. 408 The following sections provide guidance on the encoding of options 409 and fields within the packets. However, this guidance alone may not 410 be sufficient to prevent fingerprinting from revealing information, 411 such as the device type, vendor type or OS type and in some cases 412 specific version, or from revealing whether the client is using the 413 anonymity profile. 415 The client intending to protect its privacy SHOULD limit the subset 416 of options sent in messages to the subset listed in the remaining 417 subsections. 419 The client intending to protect its privacy SHOULD randomize options 420 order before sending any DHCPv4 message. If this random ordering 421 cannot be implemented, the client MAY arrange options by increasing 422 order of option codes. 424 3.2. Client IP address field 426 Four bytes in the header of the DHCP messages carry the "Client IP 427 address" (ciaddr) as defined in [RFC2131]. In DHCP, this field is 428 used by the clients to indicate the address that they used 429 previously, so that as much as possible the server can allocate them 430 the same address. 432 There is very little privacy implication of sending this address in 433 the DHCP messages, except in one case, when connecting to a different 434 network than the last network connected. If the DHCP client somehow 435 repeated the address used in a previous network attachment, 436 monitoring services might use the information to tie the two network 437 locations. DHCP clients SHOULD ensure that the field is cleared when 438 they know that the network attachment has changed, and in particular 439 if the link layer address is reset by the device's administrator. 441 The clients using the anonymity profile MUST NOT include in the 442 message a Client IP Address that has been obtained with a different 443 link-layer address. 445 3.3. Requested IP address option 447 The Requested IP address option is defined in [RFC2132] with code 50. 448 It allows the client to request that a particular IP address be 449 assigned. The option is mandatory in some protocol messages per 450 [RFC2131], for example when a client selects to use an address 451 offered by a server. However, this option is not mandatory in the 452 DHCPDISCOVER message. It is simply a convenience, an attempt to 453 regain the same IP address that was used in a previous connection. 454 Doing so entails the risk of disclosing an IP address used by the 455 client at a previous location, or with a different link-layer 456 address. The risk exists for all forms of IP addresses, public or 457 private, as some private addresses may be used in a wide scope, e.g. 458 when an Internet Service Provider is using Network Address 459 Translation. 461 When using the anonymity profile, clients SHOULD NOT use the 462 Requested IP address option in DHCPDISCOVER messages. They MUST use 463 the option when mandated by the DHCP protocol, for example in 464 DHCPREQUEST messages. 466 There are scenarios in which a client connecting to a network 467 remembers previously allocated address, i.e. is in the INIT-REBOOT 468 state. In that state, the client that is concerned with privacy 469 SHOULD perform a complete four way handshake starting with 470 DHCPDISCOVER to obtain a new address lease. If the client can 471 ascertain that this is exactly the same network to which it was 472 previously connected, and if the link layer address did not change, 473 the client MAY issue a DHCPREQUEST to try reclaim the current 474 address. 476 3.4. Client hardware address field 478 Sixteen bytes in the header of the DHCP messages carry the "Client 479 hardware address" (chaddr) as defined in [RFC2131]. The presence of 480 this address is necessary for the proper operation of the DHCP 481 service. 483 Hardware addresses, called "link layer address" in many RFCs, can be 484 used to uniquely identify a device, especially if they follow the 485 IEEE 802 recommendations. If the hardware address is reset to a new 486 value, or randomized, the DHCP client SHOULD use the new randomized 487 value in the DHCP messages. 489 3.5. Client Identifier Option 491 The client identifier option is defined in [RFC2132] with option code 492 61. It is discussed in detail in [RFC4361]. The purpose of the 493 client identifier option is to identify the client in a manner 494 independent of the link layer address. This is particularly useful 495 if the DHCP server is expected to assign the same address to the 496 client after a network attachment is swapped and the link layer 497 address changes. It is also useful when the same node issues 498 requests through several interfaces, and expects the DHCP server to 499 provide consistent configuration data over multiple interfaces. 501 The considerations for hardware independence and strong client 502 identity have an adverse effect on the privacy of mobile clients, 503 because the hardware-independent unique identifier obviously enables 504 very efficient tracking of the client's movements. One option would 505 be to not transmit this option at all, but this may affect 506 interoperability and will definitely mark the client as requesting 507 anonymity, exposing it to the risks mentioned in Section 2.5. 509 The recommendations in [RFC4361] are very strong, stating for example 510 that "DHCPv4 clients MUST NOT use client identifiers based solely on 511 layer two addresses that are hard-wired to the layer two device 512 (e.g., the Ethernet MAC address)." These strong recommendations are 513 in fact a tradeoff between ease of management and privacy, and the 514 tradeoff should depend on the circumstances. 516 In contradiction to [RFC4361], when using the anonymity profile, DHCP 517 clients MUST use client identifiers based solely on the link layer 518 address that will be used in the underlying connection. This will 519 ensure that the DHCP client identifier does not leak any information 520 that is not already available to entities monitoring the network 521 connection. It will also ensure that a strategy of randomizing the 522 link layer address will not be nullified by the Client Identifier 523 Option. 525 There are usages of DHCP where the underlying connection is a point 526 to point link, in which case there is no link layer address available 527 to construct a non-revealing identifier. If anonymity is desired in 528 such networks, the client SHOULD pick a random identifier that is 529 highly likely to be unique to the current link, using for example a 530 combination of a local secret and an identifier of the connection. 531 The algorithm for combining secret and identifiers described in 532 section 5 of [RFC7217] solves a similar problem. The criteria for 533 the generation of random numbers are stated in [RFC4086]. 535 3.6. Parameter Request List Option 537 The Parameter Request List (PRL) option is defined in [RFC2132] with 538 option code 55. It list the parameters requested from the server by 539 the client. Different implementations request different 540 parameters.[RFC2132] specifies that "the client MAY list the options 541 in order of preference." It practice, this means that different 542 client implementations will request different parameters, in 543 different orders. 545 The choice of option numbers and the specific ordering of option 546 numbers in the Parameter Request List can be used to fingerprint the 547 client. This may not reveal the identity of a client, but may 548 provide additional information, such as the device type, vendor type 549 or OS type and in some cases specific version. 551 The client willing to protect its privacy SHOULD only request a 552 minimal number of options in PRL, and SHOULD also randomly shuffle 553 the option codes order in PRL. If this random ordering cannot be 554 implemented, the client MAY order option codes order in PRL by 555 increasing order of option codes. 557 3.7. Host Name Option 559 The Host Name option is defined in [RFC2132] with option code 12. 560 Depending on implementations, the option value can carry either a 561 fully qualified domain name such as "node1984.example.com," or a 562 simple host name such as "node1984." The host name is commonly used 563 by the DHCP server to identify the host, and also to automatically 564 update the address of the host in local name services. 566 Fully qualified domain names are obviously unique identifiers, but 567 even simple host names can provide a significant amount of 568 information on the identity of the device. They are typically chosen 569 to be unique in the context where the device is most often used. If 570 that context is wide enough, in a large company or in a big 571 university, the host name will be a pretty good identifier of the 572 device. Monitoring services could use that information in 573 conjunction with traffic analysis and quickly derive the identity of 574 the device's owner. 576 When using the anonymity profile, DHCP clients SHOULD NOT send the 577 host name option. If they chose to send the option, DHCP clients 578 MUST always send a non-qualified host name instead of a fully 579 qualified domain name, and MUST obfuscate the host name value. 581 There are many ways to obfuscate a host name. The construction rules 582 SHOULD guarantee that a different host name is generated each time 583 the link-layer address changes and that the obfuscated host name will 584 not reveal the underlying link layer address. The construction 585 SHOULD generate names that are unique enough to minimize collisions 586 in the local link. Clients MAY use the following algorithm: compute 587 a secure hash of a local secret and of the link layer address that 588 will be used in the underlying connection, and then use the 589 hexadecimal representation of the first 6 bytes of the hash as the 590 obfuscated host name. 592 There is a potential downside to having a specific name pattern for 593 hosts that require anonymity, as explained in Section 2.5. For this 594 reason, the above algorithm is just a suggestion. 596 3.8. Client FQDN Option 598 The Client FQDN option is defined in [RFC4702] with option code 81. 599 The option allows the DHCP clients to advertise to the DHCP server 600 their fully qualified domain name (FQDN) such as 601 "mobile.example.com." This would allow the DHCP server to update in 602 the DNS the PTR record for the IP address allocated to the client. 603 Depending on circumstances, either the DHCP client or the DHCP server 604 could update in the DNS the A record for the FQDN of the client. 606 Obviously, this option uniquely identifies the client, exposing it to 607 the DHCP server or to anyone listening to DHCP traffic. In fact, if 608 the DNS record is updated, the location of the client becomes visible 609 to anyone with DNS lookup capabilities. 611 When using the anonymity profile, DHCP clients SHOULD NOT include the 612 Client FQDN option in their DHCP requests. Alternatively, they MAY 613 include a special purpose FQDN using the same hostname as in the Host 614 Name Option, with a suffix matching the connection-specific DNS 615 suffix being advertised by that DHCP server. Having a name in the 616 DNS allows working with legacy systems that require one to be there, 617 e.g., by verifying a forward and reverse lookup succeeds with the 618 same result. 620 3.9. UUID/GUID-based Client Identifier Option 622 The UUID/GUID-based Client Machine Identifier option is defined in 623 [RFC4578], with option code 97. The option is part of a set of 624 options for Intel Preboot eXecution Environment (PXE). The purpose 625 of the PXE system is to perform management functions on a device 626 before its main OS is operational. The Client Machine Identifier 627 carries a 16-octet Globally Unique Identifier (GUID), which uniquely 628 identifies the device. 630 The PXE system is clearly designed for devices operating in a 631 controlled environment. The main usage of the PXE system is to 632 install a new version of the operating system through a high speed 633 Ethernet connection. The process is typically controlled from the 634 user interface during the boot process. Common sense seems to 635 dictate that getting a new operating system from an unauthenticated 636 server at an untrusted location is a really bad idea, and that even 637 if the option was available users would not activate it. In any 638 case, the option is only used in the "pre boot" environment, and 639 there is no reason to use it once the system is up and running. 640 Nodes visiting untrusted networks MUST NOT send or use the PXE 641 options. 643 3.10. User and Vendor Class DHCP options 645 Vendor identifying options are defined in [RFC2132] and [RFC3925]. 646 When using the anonymity profile, DHCP clients SHOULD NOT use the 647 Vendor Specific Information option (code 43), the Vendor Class 648 Identifier Option (60), the Vendor Class option (code 124), or the 649 Vendor Specific Information option (code 125) as these options 650 potentially reveal identifying information. 652 4. Anonymity profile for DHCPv6 654 DHCPv6 is typically used by clients in one of two scenarios: stateful 655 and stateless configuration. In the stateful scenario, clients use a 656 combination of SOLICIT, REQUEST, CONFIRM, RENEW, REBIND and RELEASE 657 messages to obtain addresses, and manage these addresses. 659 In the stateless scenario, clients configure addresses using a 660 combination of client managed identifiers and router-advertised 661 prefixes, without involving the DHCPv6 services. Different ways of 662 constructing these prefixes have different implications on privacy, 663 which are discussed in [I-D.ietf-6man-default-iids] and 664 [I-D.ietf-6man-ipv6-address-generation-privacy]. In the stateless 665 scenario, clients use DHCPv6 to obtain network configuration 666 parameters, through the INFORMATION-REQUEST message. 668 The choice between the stateful and stateless scenarios depends on 669 flag and prefix options published by the "Router Advertisement" 670 messages of local routers, as specified in [RFC4861]. When these 671 options enable stateless address configuration hosts using the 672 anonymity profile SHOULD use stateless address configuration instead 673 of stateful address configuration, because stateless configuration 674 requires fewer information disclosures than stateful configuration. 676 When using the anonymity profile, DHCPv6 clients carefully select 677 DHCPv6 options used in the various messages that they send. The list 678 of options that are mandatory or optional for each message is 679 specified in [RFC3315]. Some of these options have specific 680 implications on anonymity. The following sections provide guidance 681 on the choice of option values when using the anonymity profile. 683 4.1. Avoiding fingerprinting 685 There are many choices for implementing DHCPv6 messages. As 686 explained in Section 3.1, these choices can be use to fingerprint the 687 client. 689 The following sections provide guidance on the encoding of options. 690 However, this guidance alone may not be sufficient to prevent 691 fingerprinting from revealing information, such as the device type, 692 vendor type or OS type and in some cases specific version, or from 693 revealing whether the client is using the anonymity profile. 695 The client intending to protect its privacy SHOULD limit the subset 696 of options sent in messages to the subset listed in the following 697 sections. 699 The client intending to protect its privacy SHOULD randomize options 700 order before sending any DHCPv6 message. If this random ordering 701 cannot be implemented, the client MAY arrange options by increasing 702 order of option codes. 704 4.2. Do not send Confirm messages, unless really sure where 706 [RFC3315] requires clients to send a Confirm message when they attach 707 to a new link to verify whether the addressing and configuration 708 information they previously received is still valid. This 709 requirement was relaxed in [I-D.ietf-dhc-rfc3315bis]. When these 710 clients send Confirm messages, they include any IAs assigned to the 711 interface that may have moved to a new link, along with the addresses 712 associated with those IAs. By examining the addresses in the Confirm 713 message an attacker can trivially identify the previous point(s) of 714 attachment. 716 Clients interested in protecting their privacy SHOULD NOT send 717 Confirm messages and instead directly try to acquire addresses on the 718 new link. However, not sending confirm messages can result in 719 connectivity hiatus in some scenarios, e.g. roaming between two 720 access points in the same wireless network. DHCPv6 clients that can 721 verify that the previous link and the current link are part of the 722 same network MAY send Confirm messages while still protecting their 723 privacy. Such link identification should happen before DHCPv6 is 724 used, and thus cannot depend on the DHCPv6 information used in 725 [RFC6059]. In practice, the most reliable detection of network 726 attachment is through link layer security, e.g. [IEEE8021X]. 728 4.3. Client Identifier DHCPv6 Option 730 The client identifier option is defined in [RFC3315] with option code 731 1. The purpose of the client identifier option is to identify the 732 client to the server. The content of the option is a DHCP Unique 733 Identifier (DUID). One of the primary privacy concerns is that a 734 client is disclosing a stable identifier (the DUID) that can be use 735 for tracking and profiling. Three DUID formats are specified in 736 [RFC3315]: Link-layer address plus time (DUID-LLT), Vendor-assigned 737 unique ID based on Enterprise Number, and Link-layer address. A 738 fourth type, DUID-UUID is defined in [RFC6355]. 740 When using the anonymity profile in conjunction with randomized link- 741 layer addresses, DHCPv6 clients MUST use the DUID format number 3, 742 Link-layer address. The value of the Link-layer address should be 743 that currently assigned to the interface. 745 When using the anonymity profile without the benefit of randomized 746 link-layer addresses, clients that want to protect their privacy 747 SHOULD generate a new randomized DUID-LLT every time they attach to a 748 new link or detect a possible link change event. Syntactically this 749 identifier will conform to [RFC3315] but its content is meaningless. 750 The exact details are left up to implementors, but there are several 751 factors should be taken into consideration. The DUID type SHOULD be 752 set to 1 (DUID-LLT). Hardware type SHOULD be set appropriately to 753 the hardware type. The link address embedded in the LLT SHOULD be 754 set to a randomized value. Time SHOULD be set to a random timestamp 755 from the previous year. Time MAY be set to current time, but this 756 will reveal the fact that the DUID is newly generated, and could 757 provide information for device fingerprinting. The criteria for 758 generating highly unique random numbers are listed in [RFC4086]. 760 4.3.1. Anonymous Information-Request 762 According to [RFC3315], a DHCPv6 client includes its client 763 identifier in most of the messages it sends. There is one exception, 764 however. Client is allowed to omit its client identifier when 765 sending Information-Request. 767 When using stateless DHCPv6, clients wanting to protect their privacy 768 SHOULD NOT include client identifiers in their Information-Request 769 messages. This will prevent the server from specifying client- 770 specific options if it is configured to do so, but the need for 771 anonymity precludes such options anyway. 773 4.4. Server Identifier Option 775 When using the anonymity profile, DHCPv6 clients SHOULD use the 776 Server Identifier Option (code 2) as specified in [RFC3315]. Clients 777 MUST only include server identifier values that were received with 778 the current link-layer address, because reuse of old values discloses 779 information that can be used to identify the client. 781 4.5. Address assignment options 783 When using the anonymity profile, DHCPv6 clients might have to use 784 SOLICIT or REQUEST messages to obtain IPv6 addresses through the DHCP 785 server. In DHCPv6, the collection of addresses assigned to a client 786 is identified by an Identity Association (IA).Clients interested in 787 privacy SHOULD request addresses using the Identity Association for 788 Non-temporary Addresses Option (IA_NA, code 3). 790 The IA_NA option includes an IAID parameter that identifies a unique 791 identity association for the interface for which the Address is 792 requested. Clients interested in protecting their privacy MUST 793 ensure that the IAID does not enable client identification. They 794 also need to conform to the requirement of [RFC3315] that the IAID 795 for that IA MUST be consistent across restarts of the DHCP client. 796 We interpret that as requiring that the IAID MUST be constant for the 797 association, as long as the link layer address remains constant. 799 Clients MAY meet the privacy, uniqueness and stability requirement of 800 the IAID by constructing it as the combination of one byte encoding 801 the interface number in the system, and the first three bytes of the 802 link layer address. 804 The clients MAY use the IA Address Option (code 5) but need to 805 balance the potential advantage of "address continuity" versus the 806 potential risk of "previous address disclosure." A potential 807 solution is to remove all stored addresses when a link-layer address 808 changes, and to only use the IA Address option with addresses that 809 have been explicitly assigned through the current link-layer address. 811 4.5.1. Obtain temporary addresses 813 [RFC3315] defines a special container (IA_TA, code 4) for requesting 814 temporary addresses. This is a good mechanism in principle, but 815 there are a number of issues associated with it. First, this is not 816 a widely used feature, so clients depending solely on temporary 817 addresses may lock themselves out of service. Secondly, [RFC3315] 818 does not specify any lifetime or lease length for temporary 819 addresses. Therefore support for renewing temporary addresses may 820 vary between client implementations, including not being supported at 821 all. Finally, by requesting temporary addresses a client reveals its 822 desire for privacy and potentially risks countermeasures as described 823 in Section 2.5. 825 Because of these Clients interested in their privacy SHOULD NOT use 826 IA_TA. 828 The addresses obtained according to Section 4.5 are temporary in 829 nature, and will be discarded when the link layer address is changed. 830 They thus meet most of the use cases of the temporary addresses 831 defined in [RFC4941]. Clients interested in their privacy should not 832 publish their IPv6 addresses in the DNS or otherwise associate them 833 with name services, and thus do not normally need two classes of 834 addresses, one public, one temporary. 836 The use of mechanisms to allocate several IPv6 addresses to a client 837 while preserving privacy is for further study. 839 4.5.2. Prefix delegation 841 The use of DHCPv6 address assignment option for Prefix Delegation is 842 defined in [RFC3633]. Because current host OS implementations do not 843 typically request prefixes, clients that wish to use DHCPv6 PD - just 844 like clients that wish to use any DHCP or DHCPv6 option that is not 845 currently widely used - should recognize that doing so will serve as 846 a form of fingerprinting unless or until client use of DHCPv6 PD 847 becomes more widespread. 849 The anonymity properties of DHCPv6 Prefix Delegation, which use IA_PD 850 identity associations, are similar to those of of DHCPv6 address 851 assignment using IA_NA identity associations. The IAID could 852 potentially be used to identify the client, and a prefix hint sent in 853 the IA_PD Prefix option could be used to track the client's previous 854 location. Clients that desire anonymity and never request more than 855 one prefix SHOULD set the IAID value to zero, as authorized in 856 section 6 of [RFC3633], and SHOULD NOT document any previously 857 assigned prefix in the IA_PD Prefix option. 859 4.6. Option Request Option 861 The Option Request Option (ORO) is defined in [RFC3315] with option 862 code 6. It specifies the options that the client is requesting from 863 the server. The choice of requested options and the order of 864 encoding of these options in the ORO can be used to fingerprint the 865 client. 867 The client willing to protect its privacy SHOULD only request a 868 minimal subset of options and SHOULD randomly shuffle the option 869 codes order in ORO. If this random ordering cannot be implemented, 870 the client MAY order option codes in ORO by increasing order of 871 option codes. 873 4.6.1. Previous option values 875 According to [RFC3315], the client that includes an Option Request 876 Option in a Solicit or Request message MAY additionally include 877 instances of those options that are identified in the Option Request 878 option, with data values as hints to the server about parameter 879 values the client would like to have returned. 881 When using the anonymity profile, clients SHOULD NOT include such 882 instances of options because old values might be used to identify the 883 client. 885 4.7. Authentication Option 887 The purpose of the Authentication option (code 11) is to authenticate 888 the identity of clients and servers and the contents of DHCP 889 messages. As such, the option can be used to identify the client, 890 and is incompatible with the stated goal of "client anonymity." 891 DHCPv6 clients that use the anonymity profile SHOULD NOT use the 892 authentication option. They MAY use it if they recognize that they 893 are operating in a trusted environment, e.g., in a work place 894 network. 896 4.8. User and Vendor Class DHCPv6 options 898 When using the anonymity profile, DHCPv6 clients SHOULD NOT use the 899 User Class option (code 15) or the Vendor Class option (code 16), as 900 these options potentially reveal identifying information. 902 4.9. Client FQDN Option 904 The Client FQDN option is defined in [RFC4704] with option code 29. 905 The option allows the DHCP clients to advertise to the DHCP server 906 their fully qualified domain name (FQDN) such as 907 "mobile.example.com." When using the anonymity profile, DHCPv6 908 clients SHOULD NOT include the Client FQDN option in their DHCPv6 909 messages because it identifies the client. As explained in 910 Section 3.8 they MAY use a local-only FQDN by combining a host name 911 derived from the link layer address and a suffix advertised by the 912 local DHCP server. 914 5. Operational Considerations 916 The anonymity profile has the effect of hiding the client identity 917 from the DHCP server. This is not always desirable. Some DHCP 918 servers provide facilities like publishing names and addresses in the 919 DNS, or ensuring that returning clients get reassigned the same 920 address. 922 Clients using the anonymity profile may be consuming more resources. 923 For example when they change link-layer address and request for a new 924 IP, the old one is still marked as leased by the server. 926 Some DHCP servers will only give addresses to pre-registered MAC 927 addresses, forcing clients to choose between remaining anonymous and 928 obtaining connectivity. 930 Implementers SHOULD provide a way for clients to control when the 931 anonymity profile is used, and when standard behavior is preferred. 932 Implementers MAY implement this control by tying use of the anonymity 933 profile to that of link-layer address randomization. 935 6. Security Considerations 937 The use of the anonymity profile does not change the security 938 considerations of the DHCPv4 or DHCPv6 protocols. 940 7. IANA Considerations 942 This draft does not require any IANA action. 944 8. Acknowledgments 946 The inspiration for this draft came from discussions in the Perpass 947 mailing list. Several people provided feedback on this draft, 948 notably Noel Anderson, Brian Carpenter, Lorenzo Colitti, Stephen 949 Farrell, Nick Grifka, Tushar Gupta, Brian Haberman, Gabriel 950 Montenegro, Marcin Siodelski, Dave Thaler, Bernie Volz, and Jun Wu. 952 9. Changes from previous versions 954 The RFC Editor must ensure that this section is removed prior to RFC 955 publication. 957 Changes from draft-00 to draft-01: 959 1. In Section 2.6, added guidance when using [RFC7618]. 961 2. In Section 3.5, added guidance for case when no link layer 962 address is available. 964 3. In Section 3.7, changed the recommended mechanism for obfuscating 965 host names, in order to avoid reveal the underlying link layer 966 address. 968 4. In Section 4.2, added an exception to the "should not send 969 confirm" recommendation, to account for the "good" use of Confirm 970 when roaming between access points on the same network. 972 Changes from draft-01 to draft-02: 974 1. In Section 3, checked the requirements of parameters in messages 975 to ensure consistency with the main text. 977 2. In Section 3.5, added guidance for case when no link layer 978 address is available. 980 3. In Section 3.7, specified that clients SHOULD NOT send the 981 option, and that the optional obfuscation mechanism is just a 982 suggestion. 984 4. Updated the text in Section 4.5.1 for temporary IPv6 address 985 allocation. 987 5. Rewrote Section 5 on operational requirements for clarity. 989 Changes from draft-02 to draft-03: 991 1. Removed the update of [RFC4361] since we are specifying when to 992 use that RFC, but are not recommending any specific change. 994 2. Fixed a number of typos and nits. 996 3. In Section 2.7, specified that mitigation of server privacy 997 issues is left for further study. 999 4. Moved the guidance on avoiding fingerprinting to Section 3.1 and 1000 Section 4.1. 1002 5. In Section 3.5, added text explaining why the client identifier 1003 option should still be sent, even when anonymity is desired. 1005 6. Added Section 3.6 specifying the random ordering of requested 1006 option codes in the PRL parameter, with an alternative option for 1007 strict ordering. 1009 7. Changed the requirement in Section 4.6 to allow "increasing order 1010 of option codes" as an alternative to "randomized order of 1011 options". 1013 8. In Section 4.5.1 revised the language stating lack of support for 1014 renewing temporary addresses, as RFC 3315 does in fact specify a 1015 mechanism for doing so. 1017 Changes from draft-03 to draft-04 address comments received during 1018 Working Group Last Call: 1020 1. In Section 3, tightened the normative language and the use of 1021 message codes. 1023 2. In Section 3.3, clarified the reference to the INIT-REBOOT 1024 scenario. 1026 3. Revised the writing of Section 4.5 for greater clarity. 1028 Changes from draft-04 to draft-05 address comments received after 1029 Working Group Last Call: 1031 1. Changed the title of Section 4.1 to "Avoiding fingerprinting" to 1032 align with Section 3.1. 1034 2. Fixed editing nits in Section 4.5, and added specification that 1035 the IAID is composed of the interface identifier and the first 1036 three bytes of the HW address. This matches the implementation 1037 in Windows 10, and insures that variations will not be used to 1038 fingerprint the client software. 1040 3. Dropping "This draft updates RFC4361" from the Abstract, since 1041 this draft does not actually update RFC4361. 1043 4. Pruned the list of normative references. 1045 Changes from draft-05 to draft-06 address comments received during AD 1046 evaluation 1048 1. In Section 3.3, clarified that the requirement to not publish 1049 addresses from previous networks also applies to private 1050 addresses. 1052 2. In Section 3.6, corrected the value of the option number to 55. 1054 3. In Section 3.9, provided more guidance on disabling the PXE 1055 option. 1057 4. In Section 4.2, provided guidance on network identification, with 1058 references to [RFC6059] and [IEEE8021X]. 1060 5. In Section 4.5, expanded the Identity Association (IA) acronym. 1062 6. In Section 4.3, spelled out DUID-LLT and tightened the text to 1063 make randomized identifiers the recommended default. 1065 Changes from draft-06 to draft-07 address comments received during 1066 IETF last call 1068 1. Added informative references to [RFC4086] and [RFC7217] in 1069 Section 3.5. 1071 2. In Section 4.3, added precision that the generated DUID-LLT are 1072 meaningless, and added an informative reference to [RFC4086]. 1074 3. In Section 4.5.2, reworked the text to reflect the consensus from 1075 IPv6 experts and provide informed guidance on the use of the 1076 option if prefix delegation is required. 1078 4. In Section 5, noticed servers that might mandate link layer 1079 address registration. 1081 Changes from draft-07 to draft-08 address comments received during 1082 IESG review 1084 1. Corrected a number of typos and applied several minor editing 1085 suggestions. 1087 2. Added reference to IEEE study group and other IETF experiments in 1088 Section 2. 1090 3. Added reference to journal paper on Guy Fawkes mask in 1091 Section 2.5. 1093 4. Removed "if servers do not object" from appliction scope in 1094 Section 2.6. 1096 5. Removed redondant text from Section 3.4. 1098 6. In Section 3.5, say "will not be nullified by the Client 1099 Identifier Option" instead of "will not be nullified by DHCP 1100 options." 1102 7. In Section 3.9, remove the qualification "if only for privacy 1103 reasons." 1105 8. Clarified the preference for stateless address configuration in 1106 Section 4. 1108 10. References 1110 10.1. Normative References 1112 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 1113 Requirement Levels", BCP 14, RFC 2119, 1114 DOI 10.17487/RFC2119, March 1997, 1115 . 1117 [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", 1118 RFC 2131, DOI 10.17487/RFC2131, March 1997, 1119 . 1121 [RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, 1122 C., and M. Carney, "Dynamic Host Configuration Protocol 1123 for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July 1124 2003, . 1126 [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic 1127 Host Configuration Protocol (DHCP) version 6", RFC 3633, 1128 DOI 10.17487/RFC3633, December 2003, 1129 . 1131 [RFC4702] Stapp, M., Volz, B., and Y. Rekhter, "The Dynamic Host 1132 Configuration Protocol (DHCP) Client Fully Qualified 1133 Domain Name (FQDN) Option", RFC 4702, 1134 DOI 10.17487/RFC4702, October 2006, 1135 . 1137 [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, 1138 "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, 1139 DOI 10.17487/RFC4861, September 2007, 1140 . 1142 [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy 1143 Extensions for Stateless Address Autoconfiguration in 1144 IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, 1145 . 1147 10.2. Informative References 1149 [CNBC] Weston, G., Greenwald, G., and R. Gallagher, "CBC News: 1150 CSEC used airport Wi-Fi to track Canadian travellers", Jan 1151 2014, . 1155 [GuyFawkesMask] 1156 Nickelsburg, M., "A brief history of the Guy Fawkes mask", 1157 July 2013, . 1160 [I-D.ietf-6man-default-iids] 1161 Gont, F., Cooper, A., Thaler, D., and S. LIU, 1162 "Recommendation on Stable IPv6 Interface Identifiers", 1163 draft-ietf-6man-default-iids-10 (work in progress), 1164 February 2016. 1166 [I-D.ietf-6man-ipv6-address-generation-privacy] 1167 Cooper, A., Gont, F., and D. Thaler, "Privacy 1168 Considerations for IPv6 Address Generation Mechanisms", 1169 draft-ietf-6man-ipv6-address-generation-privacy-08 (work 1170 in progress), September 2015. 1172 [I-D.ietf-dhc-dhcp-privacy] 1173 Jiang, S., Krishnan, S., and T. Mrugalski, "Privacy 1174 considerations for DHCP", draft-ietf-dhc-dhcp-privacy-04 1175 (work in progress), February 2016. 1177 [I-D.ietf-dhc-dhcpv6-privacy] 1178 Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy 1179 considerations for DHCPv6", draft-ietf-dhc- 1180 dhcpv6-privacy-04 (work in progress), February 2016. 1182 [I-D.ietf-dhc-rfc3315bis] 1183 Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A., 1184 Richardson, M., Jiang, S., and T. Lemon, "Dynamic Host 1185 Configuration Protocol for IPv6 (DHCPv6) bis", draft-ietf- 1186 dhc-rfc3315bis-03 (work in progress), February 2016. 1188 [IEEE8021X] 1189 IEEE Std 802.1X-2010, "IEEE Standards for Local and 1190 Metropolitan Area Networks: Port based Network Access 1191 Control", Feb 2010, . 1194 [IEEE802PRSG] 1195 IEEE 802 EC PRSG, "IEEE 802 EC Privacy Recommendation 1196 Study Group", Dec 2015, 1197 . 1199 [IETFMACRandom] 1200 Zuniga, JC., "MAC Privacy", November 2014, 1201 . 1203 [IETFTrialsAndMore] 1204 Bernardos, CJ., Zuniga, JC., and P. O'Hanlon, "Wi-Fi 1205 Internet connectivity and privacy: hiding your tracks on 1206 the wireless Internet", October 2015, 1207 . 1210 [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor 1211 Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997, 1212 . 1214 [RFC3925] Littlefield, J., "Vendor-Identifying Vendor Options for 1215 Dynamic Host Configuration Protocol version 4 (DHCPv4)", 1216 RFC 3925, DOI 10.17487/RFC3925, October 2004, 1217 . 1219 [RFC4086] Eastlake 3rd, D., Schiller, J., and S. Crocker, 1220 "Randomness Requirements for Security", BCP 106, RFC 4086, 1221 DOI 10.17487/RFC4086, June 2005, 1222 . 1224 [RFC4361] Lemon, T. and B. Sommerfeld, "Node-specific Client 1225 Identifiers for Dynamic Host Configuration Protocol 1226 Version Four (DHCPv4)", RFC 4361, DOI 10.17487/RFC4361, 1227 February 2006, . 1229 [RFC4578] Johnston, M. and S. Venaas, Ed., "Dynamic Host 1230 Configuration Protocol (DHCP) Options for the Intel 1231 Preboot eXecution Environment (PXE)", RFC 4578, 1232 DOI 10.17487/RFC4578, November 2006, 1233 . 1235 [RFC4704] Volz, B., "The Dynamic Host Configuration Protocol for 1236 IPv6 (DHCPv6) Client Fully Qualified Domain Name (FQDN) 1237 Option", RFC 4704, DOI 10.17487/RFC4704, October 2006, 1238 . 1240 [RFC6059] Krishnan, S. and G. Daley, "Simple Procedures for 1241 Detecting Network Attachment in IPv6", RFC 6059, 1242 DOI 10.17487/RFC6059, November 2010, 1243 . 1245 [RFC6355] Narten, T. and J. Johnson, "Definition of the UUID-Based 1246 DHCPv6 Unique Identifier (DUID-UUID)", RFC 6355, 1247 DOI 10.17487/RFC6355, August 2011, 1248 . 1250 [RFC7217] Gont, F., "A Method for Generating Semantically Opaque 1251 Interface Identifiers with IPv6 Stateless Address 1252 Autoconfiguration (SLAAC)", RFC 7217, 1253 DOI 10.17487/RFC7217, April 2014, 1254 . 1256 [RFC7618] Cui, Y., Sun, Q., Farrer, I., Lee, Y., Sun, Q., and M. 1257 Boucadair, "Dynamic Allocation of Shared IPv4 Addresses", 1258 RFC 7618, DOI 10.17487/RFC7618, August 2015, 1259 . 1261 [WiFiRadioFingerprinting] 1262 Brik, V., Banerjee, S., Gruteser, M., and S. Oh, "Wireless 1263 Device Identification with Radiometric Signatures", 1264 September 2008, 1265 . 1268 Authors' Addresses 1270 Christian Huitema 1271 Microsoft 1272 Redmond, WA 98052 1273 U.S.A. 1275 Email: huitema@microsoft.com 1276 Tomek Mrugalski 1277 Internet Systems Consortium, Inc. 1278 950 Charter Street 1279 Redwood City, CA 94063 1280 USA 1282 Email: tomasz.mrugalski@gmail.com 1284 Suresh Krishnan 1285 Ericsson 1286 8400 Decarie Blvd. 1287 Town of Mount Royal, QC 1288 Canada 1290 Phone: +1 514 345 7900 x42871 1291 Email: suresh.krishnan@ericsson.com