draft-ietf-dhc-anonymity-profile-08.txt   rfc7844.txt 
Network Working Group C. Huitema Internet Engineering Task Force (IETF) C. Huitema
Internet-Draft Microsoft Request for Comments: 7844 Microsoft
Intended status: Standards Track T. Mrugalski Category: Standards Track T. Mrugalski
Expires: August 22, 2016 ISC ISSN: 2070-1721 ISC
S. Krishnan S. Krishnan
Ericsson Ericsson
February 19, 2016 May 2016
Anonymity profile for DHCP clients Anonymity Profiles for DHCP Clients
draft-ietf-dhc-anonymity-profile-08.txt
Abstract Abstract
Some DHCP options carry unique identifiers. These identifiers can Some DHCP options carry unique identifiers. These identifiers can
enable device tracking even if the device administrator takes care of enable device tracking even if the device administrator takes care of
randomizing other potential identifications like link-layer addresses randomizing other potential identifications like link-layer addresses
or IPv6 addresses. The anonymity profile is designed for clients or IPv6 addresses. The anonymity profiles are designed for clients
that wish to remain anonymous to the visited network. The profile that wish to remain anonymous to the visited network. The profiles
provides guidelines on the composition of DHCP or DHCPv6 requests, provide guidelines on the composition of DHCP or DHCPv6 messages,
designed to minimize disclosure of identifying information. designed to minimize disclosure of identifying information.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This is an Internet Standards Track document.
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months This document is a product of the Internet Engineering Task Force
and may be updated, replaced, or obsoleted by other documents at any (IETF). It represents the consensus of the IETF community. It has
time. It is inappropriate to use Internet-Drafts as reference received public review and has been approved for publication by the
material or to cite them other than as "work in progress." Internet Engineering Steering Group (IESG). Further information on
Internet Standards is available in Section 2 of RFC 5741.
This Internet-Draft will expire on August 22, 2016. Information about the current status of this document, any errata,
and how to provide feedback on it may be obtained at
http://www.rfc-editor.org/info/rfc7844.
Copyright Notice Copyright Notice
Copyright (c) 2016 IETF Trust and the persons identified as the Copyright (c) 2016 IETF Trust and the persons identified as the
document authors. All rights reserved. document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of (http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License. described in the Simplified BSD License.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3 1. Introduction ....................................................4
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3 1.1. Requirements ...............................................4
2. Application domain . . . . . . . . . . . . . . . . . . . . . 3 2. Application Domain ..............................................4
2.1. MAC address Randomization hypotheses . . . . . . . . . . 4 2.1. MAC Address Randomization Hypotheses .......................5
2.2. MAC address Randomization and DHCP . . . . . . . . . . . 5 2.2. MAC Address Randomization and DHCP .........................6
2.3. Radio fingerprinting . . . . . . . . . . . . . . . . . . 5 2.3. Radio Fingerprinting .......................................6
2.4. Operating system fingerprinting . . . . . . . . . . . . . 6 2.4. Operating System Fingerprinting ............................7
2.5. No anonymity profile identification . . . . . . . . . . . 6 2.5. No Anonymity Profile Identification ........................7
2.6. Using the anonymity profiles . . . . . . . . . . . . . . 7 2.6. Using the Anonymity Profiles ...............................8
2.7. What about privacy for DHCP servers . . . . . . . . . . . 8 2.7. What about privacy for DHCP servers? .......................9
3. Anonymity profile for DHCPv4 . . . . . . . . . . . . . . . . 8 3. Anonymity Profile for DHCPv4 ....................................9
3.1. Avoiding fingerprinting . . . . . . . . . . . . . . . . . 9 3.1. Avoiding Fingerprinting ...................................10
3.2. Client IP address field . . . . . . . . . . . . . . . . . 9 3.2. Client IP Address Field ...................................10
3.3. Requested IP address option . . . . . . . . . . . . . . . 10 3.3. Requested IP Address Option ...............................11
3.4. Client hardware address field . . . . . . . . . . . . . . 11 3.4. Client Hardware Address Field .............................12
3.5. Client Identifier Option . . . . . . . . . . . . . . . . 11 3.5. Client Identifier Option ..................................12
3.6. Parameter Request List Option . . . . . . . . . . . . . . 12 3.6. Parameter Request List Option .............................13
3.7. Host Name Option . . . . . . . . . . . . . . . . . . . . 12 3.7. Host Name Option ..........................................13
3.8. Client FQDN Option . . . . . . . . . . . . . . . . . . . 13 3.8. Client FQDN Option ........................................14
3.9. UUID/GUID-based Client Identifier Option . . . . . . . . 14 3.9. UUID/GUID-Based Client Machine Identifier Option ..........15
3.10. User and Vendor Class DHCP options . . . . . . . . . . . 14 3.10. User and Vendor Class DHCP Options .......................15
4. Anonymity profile for DHCPv6 . . . . . . . . . . . . . . . . 14 4. Anonymity Profile for DHCPv6 ...................................15
4.1. Avoiding fingerprinting . . . . . . . . . . . . . . . . . 15 4.1. Avoiding Fingerprinting ...................................16
4.2. Do not send Confirm messages, unless really sure where . 15 4.2. Do not send Confirm messages, unless really sure about
4.3. Client Identifier DHCPv6 Option . . . . . . . . . . . . . 16 the location ..............................................17
4.3.1. Anonymous Information-Request . . . . . . . . . . . . 17 4.3. Client Identifier DHCPv6 Option ...........................17
4.4. Server Identifier Option . . . . . . . . . . . . . . . . 17 4.3.1. Anonymous Information-request ......................18
4.5. Address assignment options . . . . . . . . . . . . . . . 17 4.4. Server Identifier Option ..................................18
4.5.1. Obtain temporary addresses . . . . . . . . . . . . . 18 4.5. Address Assignment Options ................................18
4.5.2. Prefix delegation . . . . . . . . . . . . . . . . . . 18 4.5.1. Obtain Temporary Addresses .........................19
4.6. Option Request Option . . . . . . . . . . . . . . . . . . 19 4.5.2. Prefix Delegation ..................................20
4.6.1. Previous option values . . . . . . . . . . . . . . . 19 4.6. Option Request Option .....................................20
4.7. Authentication Option . . . . . . . . . . . . . . . . . . 19 4.6.1. Previous Option Values .............................20
4.8. User and Vendor Class DHCPv6 options . . . . . . . . . . 19 4.7. Authentication Option .....................................21
4.9. Client FQDN Option . . . . . . . . . . . . . . . . . . . 20 4.8. User and Vendor Class DHCPv6 Options ......................21
5. Operational Considerations . . . . . . . . . . . . . . . . . 20 4.9. Client FQDN DHCPv6 Option .................................21
6. Security Considerations . . . . . . . . . . . . . . . . . . . 20 5. Operational Considerations .....................................21
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 20 6. Security Considerations ........................................22
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 20 7. References .....................................................22
9. Changes from previous versions . . . . . . . . . . . . . . . 21 7.1. Normative References ......................................22
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 24 7.2. Informative References ....................................23
10.1. Normative References . . . . . . . . . . . . . . . . . . 24 Acknowledgments ...................................................26
10.2. Informative References . . . . . . . . . . . . . . . . . 25 Authors' Addresses ................................................26
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 27
1. Introduction 1. Introduction
There have been reports of systems that would monitor the wireless There have been reports of systems that would monitor the wireless
connections of passengers at Canadian airports [CNBC]. We can assume connections of passengers at Canadian airports [CNBC]. We can assume
that these are either fragments or trial runs of a wider system that that these are either fragments or trial runs of a wider system that
would attempt to monitor Internet users as they roam through wireless would attempt to monitor Internet users as they roam through wireless
access points and other temporary network attachments. We can also access points and other temporary network attachments. We can also
assume that privacy conscious users will attempt to evade this assume that privacy-conscious users will attempt to evade this
monitoring, for example by ensuring that low level identifiers such monitoring -- for example, by ensuring that low-level identifiers
as link-layer addresses are "randomized," so that the devices do not such as link-layer addresses are "randomized", so that the devices
broadcast the same unique identifier in every location that they do not broadcast the same unique identifier in every location that
visit. they visit.
Of course, link layer "MAC" addresses are not the only way to Of course, link-layer MAC (Media Access Control) addresses are not
identify a device. As soon as it connects to a remote network, the the only way to identify a device. As soon as it connects to a
device may use DHCP and DHCPv6 to obtain network parameters. The remote network, the device may use DHCP and DHCPv6 to obtain network
analysis of DHCP and DHCPv6 options shows that parameters of these parameters. The analysis of DHCP and DHCPv6 options shows that
protocols can reveal identifiers of the device, negating the benefits parameters of these protocols can reveal identifiers of the device,
of link-layer address randomization. This is documented in detail in negating the benefits of link-layer address randomization. This is
[I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. The documented in detail in [RFC7819] and [RFC7824]. The natural
natural reaction is to restrict the number and values of such reaction is to restrict the number and values of such parameters in
parameters in order to minimize disclosure. order to minimize disclosure.
In the absence of a common standard, different system developers are In the absence of a common standard, different system developers are
likely to implement this minimization of disclosure in different likely to implement this minimization of disclosure in different
ways. Monitoring entities could then use the differences to identify ways. Monitoring entities could then use the differences to identify
the software version running on the device. The proposed anonymity the software version running on the device. The proposed anonymity
profile provides a common standard that minimizes information profiles provide a common standard that minimizes information
disclosure, including the disclosure of implementation identifiers. disclosure, including the disclosure of implementation identifiers.
1.1. Requirements 1.1. Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119]. document are to be interpreted as described in [RFC2119].
2. Application domain 2. Application Domain
Mobile nodes can be tracked using multiple identifiers, the most Mobile nodes can be tracked using multiple identifiers, the most
prominent being link-layer addresses, a.k.a. MAC addresses. For prominent being link-layer addresses, a.k.a. MAC addresses. For
example, when devices use Wi-Fi connectivity, they place the MAC example, when devices use Wi-Fi connectivity, they place the MAC
address in the header of all the packets that they transmit. address in the header of all the packets that they transmit.
Standard implementation of Wi-Fi use unique 48 bit link-layer Standard implementations of Wi-Fi use unique 48-bit link-layer
addresses, assigned to the devices according to procedures defined by addresses, assigned to the devices according to procedures defined by
IEEE 802. Even when the Wi-Fi packets are encrypted, the portion of IEEE 802. Even when the Wi-Fi packets are encrypted, the portion of
the header containing the addresses will be sent in clear text. the header containing the addresses will be sent in cleartext.
Tracking devices can "listen to the airwaves" to find out what Tracking devices can "listen to the airwaves" to find out what
devices are transmitting near them. devices are transmitting near them.
We can easily imagine that the MAC addresses can be correlated with We can easily imagine that the MAC addresses can be correlated with
other data, e.g., clear text names and cookies, to build a registry other data, e.g., cleartext names and cookies, to build a registry
linking MAC addresses to the identity of devices' owners. Once that linking MAC addresses to the identity of devices' owners. Once that
correlation is done, tracking the MAC address is sufficient to track correlation is done, tracking the MAC address is sufficient to track
individual people, even when all application data sent from the individual people, even when all application data sent from the
devices is encrypted. link-layer addresses can also be correlated devices is encrypted. Link-layer addresses can also be correlated
with IP addresses of devices, negating potential privacy benefits of with IP addresses of devices, negating the potential privacy benefits
IPv6 "privacy" addresses. Privacy advocates have reasons to be of IPv6 "privacy" addresses. Privacy advocates have reasons to be
concerned. concerned.
The obvious solution is to "randomize" the MAC address. Before The obvious solution is to "randomize" the MAC address. Before
connecting to a particular network, the device replaces the MAC connecting to a particular network, the device replaces the MAC
address with a randomly drawn 48 bit value. Link-layer address address with a randomly drawn 48-bit value. Link-layer address
randomization was successfully tried at the IETF in Honolulu in randomization was successfully tried at the IETF meeting in Honolulu
November 2014 [IETFMACRandom] and in following meetings in November 2014 [IETFMACRandom] and in subsequent meetings
[IETFTrialsAndMore]; it is studied in the IEEE 802 EC Privacy [IETFTrialsAndMore]; it is studied in the IEEE 802 EC Privacy
Recommendation Study Group [IEEE802PRSG]. However, we have to Recommendation Study Group [IEEE802PRSG]. However, we have to
consider the linkage between link-layer addresses, DHCP identifiers consider the linkage between link-layer addresses, DHCP identifiers,
and IP addresses. and IP addresses.
2.1. MAC address Randomization hypotheses 2.1. MAC Address Randomization Hypotheses
There is not yet an established standard for randomizing link-layer There is not yet an established standard for randomizing link-layer
addresses. Various prototypes have tried different strategies, such addresses. Various prototypes have tried different strategies,
as: such as:
Per connection: Configure a random link-layer address at the time of Per connection: Configure a random link-layer address at the time of
connecting to a network, e.g. to specific Wi-Fi SSID, and keep it connecting to a network, e.g., to a specific Wi-Fi SSID (Service
for the duration of the connection. Set Identifier), and keep it for the duration of the connection.
Per network: Same as "per connection," but always use the same link- Per network: Same as "per connection", but always use the same
layer address for the same network -- different of course from the link-layer address for the same network -- different, of course,
addresses used in other networks. from the addresses used in other networks.
Time interval: Change the link-layer address at regular time Time interval: Change the link-layer address at regular time
intervals. intervals.
In practice, there are many reasons to keep the link-layer address In practice, there are many reasons to keep the link-layer address
constant for the duration of a link-layer connection, as in the "per constant for the duration of a link-layer connection, as in the
connection" or "per network" variants. On Wi-Fi networks, changing "per connection" or "per network" variants. In Wi-Fi networks,
the link-layer address requires dropping the existing Wi-Fi changing the link-layer address requires dropping the existing Wi-Fi
connection and then re-establishing it, which implies repeating the connection and then re-establishing it, which implies repeating the
connection process and associated procedures. The IP addresses will connection process and associated procedures. The IP addresses will
change, which means that all required TCP connections will have to be change, which means that all required TCP connections will have to be
re-established. If the network access is provided through a NAT, re-established. If the network access is provided through a NAT,
changing IP address also means that the NAT traversal procedures will changing IP addresses also means that the NAT traversal procedures
have to be restarted. This means a lot of disruption. At the same will have to be restarted. This means a lot of disruption. At the
time, an observer on the network will easily notice that a station same time, an observer on the network will easily notice that a
left, another came in just after that, and that the new one appears station left, another came in just after that, and the new one
to be communicating with the same set of IP addresses as the old one. appears to be communicating with the same set of IP addresses as the
This provides for easy correlation. old one. This provides for easy correlation.
The anonymity profile pretty much assumes that the link-layer address The anonymity profiles pretty much assume that the link-layer address
randomization follows the "per connection" or "per network" randomization follows the "per connection" or "per network"
strategies, or a variant of the "time interval" strategy in which the strategies, or a variant of the "time interval" strategy in which the
interval has about the same duration as the average connection. interval has about the same duration as the average connection.
2.2. MAC address Randomization and DHCP 2.2. MAC Address Randomization and DHCP
From a privacy point of view, it is clear that link-layer address, IP From a privacy point of view, it is clear that the link-layer
address and DHCP identifier shall evolve in synchrony. For example, address, IP address, and DHCP identifier shall evolve in synchrony.
if the link-layer address changes and the DHCP identifier stays For example, if the link-layer address changes and the DHCP
constant, then it is really easy to correlate old and new link-layer identifier stays constant, then it is really easy to correlate old
addresses, either by listening to DHCP traffic or by observing that and new link-layer addresses, either by listening to DHCP traffic or
the IP address remains constant, since it is tied to the DHCP by observing that the IP address remains constant, since it is tied
identifier. Conversely, if the DHCP identifier changes but the link- to the DHCP identifier. Conversely, if the DHCP identifier changes
layer address remains constant, the old and new identifiers and but the link-layer address remains constant, the old and new
addresses can be correlated by listening to L2 traffic. The identifiers and addresses can be correlated by listening to L2
procedures documented in the following sections construct DHCP traffic. The procedures documented in the following sections
identifiers from the current link-layer address, automatically construct DHCP identifiers from the current link-layer address,
providing for this synchronization. automatically providing for this synchronization.
The proposed anonymity profiles solve this synchronization issues by The proposed anonymity profiles solve this synchronization issue by
deriving most identifiers from the link-layer address, and generally deriving most identifiers from the link-layer address and by
by making sure that DHCP parameter values do not remain constant generally making sure that DHCP parameter values do not remain
after an address change. constant after an address change.
2.3. Radio fingerprinting 2.3. Radio Fingerprinting
MAC address randomization solves the trivial monitoring problem in MAC address randomization solves the trivial monitoring problem in
which someone just uses a Wi-Fi scanner and records the MAC addresses which someone just uses a Wi-Fi scanner and records the MAC addresses
seen on the air. DHCP anonymity solves the more elaborated scenario seen on the air. DHCP anonymity solves the more elaborate scenario
in which someone monitor link-layer addresses and identities used in in which someone monitors link-layer addresses and identities used in
DHCP at the access point or DHCP server. But these are not the only DHCP at the access point or DHCP server. But these are not the only
ways to track a mobile device. ways to track a mobile device.
Radio fingerprinting is a process that identifies a radio transmitter Radio fingerprinting is a process that identifies a radio transmitter
by the unique "fingerprint" of its signal transmission, i.e., the by the unique "fingerprint" of its signal transmission, i.e., the
tiny differences caused by minute imperfections of the radio tiny differences caused by minute imperfections of the radio
transmission hardware. This can be applied to diverse types of transmission hardware. This can be applied to diverse types of
radios, including Wi-Fi as described for example in radios, including Wi-Fi as described, for example, in
[WiFiRadioFingerprinting]. No amount of link-layer address [WiFiRadioFingerprinting]. No amount of link-layer address
randomization will protect against such techniques. Protections may randomization will protect against such techniques. Protections may
exist, but they are outside the scope of the present document. exist, but they are outside the scope of the present document.
On the other hand, we should not renounce randomization just because On the other hand, we should not renounce randomization just because
radio fingerprinting exists. The radio fingerprinting techniques are radio fingerprinting exists. The radio fingerprinting techniques are
harder to deploy than just recording link-layer addresses with a harder to deploy than just recording link-layer addresses with a
scanner. They can only track devices for which the fingerprint are scanner. Such techniques can only track devices for which the
known, and thus have a narrower scope of application than mass fingerprints are known and thus have a narrower scope of application
monitoring of addresses and DHCP parameters. than mass monitoring of addresses and DHCP parameters.
2.4. Operating system fingerprinting 2.4. Operating System Fingerprinting
When a standard like DHCP allows for multiple options, different When a standard like DHCP allows for multiple options, different
implementers will make different choices for the options that they implementers will make different choices for the options that they
support or the values they chose for the options. Conversely, support or the values they choose for the options. Conversely,
monitoring the options and values present in DHCP messages reveals monitoring the options and values present in DHCP messages reveals
these differences and allows for "operating system fingerprinting," these differences and allows for "operating system fingerprinting",
i.e., finding the type and version of software that a particular i.e., finding the type and version of software that a particular
device is running. Finding these versions provides some information device is running. Finding these versions provides some information
about the device identity, and thus goes against the goal of about the device's identity and thus goes against the goal of
anonymity. anonymity.
The design of the anonymity profiles attempts to minimize the number The design of the anonymity profiles attempts to minimize the number
of options and the choice of values, in order to reduce the of options and the choice of values, in order to reduce the
possibilities of operating system fingerprinting. possibilities of operating system fingerprinting.
2.5. No anonymity profile identification 2.5. No Anonymity Profile Identification
Reviewers of the anonymity profiles have sometimes suggested adding Reviewers of the anonymity profiles have sometimes suggested adding
an option to explicitly identify the profiles as "using the anonymity an option to explicitly identify the profiles as "using the anonymity
option." One suggestion is that if the client wishes to remain option". One suggestion is that the client tell the server about its
anonymous, it would be good if the client told the server about that desire to remain anonymous, so that a willing server could cooperate
in case the server is willing to co-operate. Another possibility and protect the client's privacy. Another possibility would be to
would be to use specific privacy-oriented construct, such as for use a specific privacy-oriented construct, such as, for example, a
example a new type of DUID for a temporary DUID that would be new type of DHCP Unique Identifier (DUID) for a temporary DUID that
changing over time. would be changing over time.
This is not workable in a large number of cases as it is possible This is not workable in a large number of cases, as it is possible
that the network operator (or other entities that have access to the that the network operator (or other entities that have access to the
operator's network) might be actively participating in surveillance operator's network) might be actively participating in surveillance
and anti-privacy, willingly or not. Declaring a preference for and anti-privacy, willingly or not. Declaring a preference for
anonymity is a bit like walking around with a Guy Fawkes mask. (See anonymity is a bit like walking around with a Guy Fawkes mask. (See
[GuyFawkesMask] for an explanation of this usage.) When anonymity is [GuyFawkesMask] for an explanation of this usage.) When anonymity is
required, it is generally not a good idea to stick out of the crowd. required, it is generally not a good idea to stick out of the crowd.
Simply revealing the desire for privacy, could cause the attacker to Simply revealing the desire for privacy could cause the attacker to
react by triggering additional surveillance or monitoring mechanisms. react by triggering additional surveillance or monitoring mechanisms.
Therefore, we feel that it is preferable to not disclose one's desire
Therefore we feel that it is preferable to not disclose one's desire
for privacy. for privacy.
This preference leads to some important implications. In particular, This preference leads to some important implications. In particular,
we make an effort to make the mitigation techniques difficult to we make an effort to make the mitigation techniques difficult to
distinguish from regular client behaviors, if at all possible. distinguish from regular client behaviors, if at all possible.
2.6. Using the anonymity profiles 2.6. Using the Anonymity Profiles
There are downsides to randomizing link-layer addresses and DHCP There are downsides to randomizing link-layer addresses and DHCP
identifiers. By definition, randomization will break management identifiers. By definition, randomization will break management
procedures that rely on tracking link-layer addresses. Even if this procedures that rely on tracking link-layer addresses. Even if this
is not too much of a concern, we have to be worried about the is not too much of a concern, we have to be worried about the
frequency of link-layer address randomization. Suppose for example frequency of link-layer address randomization. Suppose, for example,
that many devices would get new random link-layer addresses at short that many devices would get new random link-layer addresses at short
intervals, maybe every few minutes. This would generate new DHCP intervals, maybe every few minutes. This would generate new DHCP
requests in rapid succession, with a high risk of exhausting DHCPv4 requests in rapid succession, with a high risk of exhausting DHCPv4
address pools. Even with IPv6, there would still be a risk of address pools. Even with IPv6, there would still be a risk of
increased neighbor discovery traffic, and bloating of various address increased neighbor discovery traffic and bloating of various address
tables. Implementers will have to be cautious when programming tables. Implementers will have to be cautious when programming
devices to use randomized MAC addresses. They will have to carefully devices to use randomized MAC addresses. They will have to carefully
chose the frequency with which such addresses will be renewed. choose the frequency with which such addresses will be renewed.
This document only provides guidelines for using DHCP when clients This document only provides guidelines for using DHCP when clients
care about privacy. We assume that the request for anonymity is care about privacy. We assume that the request for anonymity is
materialized by the assignment of a randomized link-layer address to materialized by the assignment of a randomized link-layer address to
the network interface. Once that decision is made, the following the network interface. Once that decision is made, the following
guidelines will avoid leakage of identity in DHCP parameters or in guidelines will avoid leakage of identity in DHCP parameters or in
assigned addresses. assigned addresses.
There may be rare situations where the clients want anonymity to There may be rare situations where the clients want to remain
attackers but not to their DHCP server. These clients should still anonymous to attackers but not to the DHCP server. These clients
use link-layer address randomization to hide from observers, and some should still use link-layer address randomization to hide from
form of encrypted communication to the DHCP server. This scenario is observers, as well as some form of encrypted communication to the
out of scope for this document. DHCP server. This scenario is out of scope for this document.
To preserve anonymity, the clients need to not use stable values for To preserve anonymity, the clients need to not use stable values for
the client identifiers. This is clearly a tradeoff, because a stable the client identifiers. This is clearly a trade-off, because a
client identifier guarantees that the client will receive consistent stable client identifier guarantees that the client will receive
parameters over time. An example is given in [RFC7618], where the consistent parameters over time. An example is given in [RFC7618],
client identifier is used to guarantee that the same client will where the client identifier is used to guarantee that the same client
always get the same combination of IP address and port range. Static will always get the same combination of IP address and port range.
clients benefit most from stable parameters, and can often be already Static clients benefit most from stable parameters and often can
identified by physical connection layer parameters. These static already be identified by physical-connection-layer parameters. These
clients will normally not use the anonymity profile. Mobile clients, static clients will normally not use the anonymity profiles. Mobile
in contrast, have the option of using the anonymity profile in clients, in contrast, have the option of using the anonymity profiles
conjunction with [RFC7618] if they are more concerned with privacy in conjunction with [RFC7618] if they are more concerned with privacy
protection than with stable parameters. protection than with stable parameters.
2.7. What about privacy for DHCP servers 2.7. What about privacy for DHCP servers?
This document only provides recommendations for DHCP clients. The This document only provides recommendations for DHCP clients. The
main target are DHCP clients used in mobile devices. Such devices main targets are DHCP clients used in mobile devices. Such devices
are a tempting target for various monitoring systems, and providing are tempting targets for various monitoring systems, so there is an
them with a simple anonymity solution is urgent. We can argue that urgent need to provide them with a simple anonymity solution. We can
some mobile devices embed DHCP servers, and that providing solutions argue that some mobile devices embed DHCP servers and that providing
for such devices is also quite important. Two plausible examples solutions for such devices is also quite important. Two plausible
would be a DHCP server for a car network, or a DHCP server for a examples would be a DHCP server for a car network and a DHCP server
mobile hot spot. However, mobile servers get a lot of privacy for a mobile hot spot. However, mobile servers get a lot of privacy
protection through the use of access control and link layer protection through the use of access control and link-layer
encryption. Servers may disclose information to clients through encryption. Servers may disclose information to clients through
DHCP, but they normally only do that to clients that have passed the DHCP, but they normally only do that to clients that have passed the
link-layer access control and have been authorized to use the network link-layer access control and have been authorized to use the network
services. This arguably makes solving the server problem less urgent services. This arguably makes solving the server problem less urgent
than solving the client problem. than solving the client problem.
Server privacy issues are presented in [I-D.ietf-dhc-dhcp-privacy] Server privacy issues are presented in [RFC7819] and [RFC7824].
and [I-D.ietf-dhc-dhcpv6-privacy]. Mitigation of these issues is Mitigation of these issues is left for further study.
left to further study.
3. Anonymity profile for DHCPv4 3. Anonymity Profile for DHCPv4
Clients using the DHCPv4 anonymity profile limit the disclosure of Clients using the DHCPv4 anonymity profile limit the disclosure of
information by controlling the header parameters and by limiting the information by controlling the header parameters and by limiting the
number and values of options. The number of options depend on the number and values of options. The number of options depends on the
specific DHCP message: specific DHCP message:
DHCPDISCOVER: The anonymized DHCPDISCOVER messages MUST contain the DHCPDISCOVER: The anonymized DHCPDISCOVER messages MUST contain the
Message Type, MAY contain the Client Identifier, and MAY contain Message Type option, MAY contain the Client Identifier option, and
the Parameter Request List options. It SHOULD NOT contain any MAY contain the Parameter Request List option. It SHOULD NOT
other option. contain any other option.
DHCPREQUEST: The anonymized DHCPREQUEST messages MUST contain the DHCPREQUEST: The anonymized DHCPREQUEST messages MUST contain the
Message Type, MAY contain the Client Identifier, and MAY contain Message Type option, MAY contain the Client Identifier option, and
the Parameter Request List options. If the message is in response MAY contain the Parameter Request List option. If the message is
to a DHCPOFFER, it MUST contain the corresponding Server in response to a DHCPOFFER, it MUST contain the corresponding
Identifier option and the Requested IP address. If the message is Server Identifier option and the Requested IP address option. If
not in response to a DHCPOFFER, it MAY contain a Requested IP the message is not in response to a DHCPOFFER, it MAY contain a
address as explained in Section 3.3. It SHOULD NOT contain any Requested IP address option as explained in Section 3.3. It
other option. SHOULD NOT contain any other option.
DHCPDECLINE: The anonymized DHCPDECLINE messages MUST contain the DHCPDECLINE: The anonymized DHCPDECLINE messages MUST contain the
Message Type, Server Identifier, and Requested IP address options, Message Type option, the Server Identifier option, and the
and MAY contain the Client Identifier options. Requested IP address option; and MAY contain the Client Identifier
option.
DHCPRELEASE: The anonymized DHCPRELEASE messages MUST contain the DHCPRELEASE: The anonymized DHCPRELEASE messages MUST contain the
Message Type and Server Identifier options, and MAY contain the Message Type option and the Server Identifier option, and MAY
Client Identifier option. contain the Client Identifier option.
DHCPINFORM: The anonymized DHCPINFORM messages MUST contain the DHCPINFORM: The anonymized DHCPINFORM messages MUST contain the
Message Type, and MAY contain the Client Identifier and Parameter Message Type option, MAY contain the Client Identifier option, and
Request List options. It SHOULD NOT contain any other option. MAY contain the Parameter Request List option. It SHOULD NOT
contain any other option.
Header fields and option values SHOULD be set in accordance with the Header fields and option values SHOULD be set in accordance with the
DHCP specification, but some header fields and option values SHOULD DHCP specification, but some header fields and option values SHOULD
be constructed per the following guidelines. be constructed per the following guidelines.
The inclusion of HostName and FQDN options in DHCPDISCOVER, The inclusion of the Host Name and Fully Qualified Domain Name (FQDN)
DHCPREQUEST or DHCPINFORM messages is discussed in Section 3.7 and options in DHCPDISCOVER, DHCPREQUEST, or DHCPINFORM messages is
Section 3.8. discussed in Sections 3.7 and 3.8.
3.1. Avoiding fingerprinting 3.1. Avoiding Fingerprinting
There are many choices for implementing DHCPv4 messages. Clients can There are many choices for implementing DHCPv4 messages. Clients can
choose to transmit a specific set of options, pick particular choose to transmit a specific set of options, pick a particular
encoding for these options, and transmit options in different orders. encoding for these options, and transmit options in different orders.
These choices can be use to fingerprint the client. These choices can be used to fingerprint the client.
The following sections provide guidance on the encoding of options The following sections provide guidance on the encoding of options
and fields within the packets. However, this guidance alone may not and fields within the packets. However, this guidance alone may not
be sufficient to prevent fingerprinting from revealing information, be sufficient to prevent fingerprinting from revealing the device
such as the device type, vendor type or OS type and in some cases type, the vendor name, or the OS type and specific version.
specific version, or from revealing whether the client is using the Fingerprinting may also reveal whether the client is using the
anonymity profile. anonymity profile.
The client intending to protect its privacy SHOULD limit the subset The client intending to protect its privacy SHOULD limit the subset
of options sent in messages to the subset listed in the remaining of options sent in messages to the subset listed in the remaining
subsections. subsections.
The client intending to protect its privacy SHOULD randomize options The client intending to protect its privacy SHOULD randomize the
order before sending any DHCPv4 message. If this random ordering ordering of options before sending any DHCPv4 message. If this
cannot be implemented, the client MAY arrange options by increasing random ordering cannot be implemented, the client MAY order the
order of option codes. options by option code number (lowest to highest).
3.2. Client IP address field 3.2. Client IP Address Field
Four bytes in the header of the DHCP messages carry the "Client IP Four octets in the header of the DHCP messages carry the "Client IP
address" (ciaddr) as defined in [RFC2131]. In DHCP, this field is address" (ciaddr) as defined in [RFC2131]. In DHCP, this field is
used by the clients to indicate the address that they used used by the clients to indicate the address that they used
previously, so that as much as possible the server can allocate them previously, so that as much as possible the server can allocate the
the same address. same address to them.
There is very little privacy implication of sending this address in There are very few privacy implications related to sending this
the DHCP messages, except in one case, when connecting to a different address in the DHCP messages, except in the case of connecting to a
network than the last network connected. If the DHCP client somehow different network than the last network connected to previously. If
repeated the address used in a previous network attachment, the DHCP client somehow repeated the address used in a previous
monitoring services might use the information to tie the two network network attachment, monitoring services might use the information to
locations. DHCP clients SHOULD ensure that the field is cleared when tie the two network locations. DHCP clients SHOULD ensure that the
they know that the network attachment has changed, and in particular field is cleared when they know that the network attachment has
if the link layer address is reset by the device's administrator. changed, particularly if the link-layer address is reset by a
device's administrator.
The clients using the anonymity profile MUST NOT include in the The clients using the anonymity profile MUST NOT include in the
message a Client IP Address that has been obtained with a different message a Client IP address that has been obtained with a different
link-layer address. link-layer address.
3.3. Requested IP address option 3.3. Requested IP Address Option
The Requested IP address option is defined in [RFC2132] with code 50. The Requested IP address option is defined in [RFC2132] with code 50.
It allows the client to request that a particular IP address be It allows the client to request that a particular IP address be
assigned. The option is mandatory in some protocol messages per assigned. This option is mandatory in some protocol messages per
[RFC2131], for example when a client selects to use an address [RFC2131] -- for example, when a client selects an address offered by
offered by a server. However, this option is not mandatory in the a server. However, this option is not mandatory in the DHCPDISCOVER
DHCPDISCOVER message. It is simply a convenience, an attempt to message. It is simply a convenience -- an attempt to regain the same
regain the same IP address that was used in a previous connection. IP address that was used in a previous connection. Doing so entails
Doing so entails the risk of disclosing an IP address used by the the risk of disclosing an IP address used by the client at a previous
client at a previous location, or with a different link-layer location or with a different link-layer address. This risk exists
address. The risk exists for all forms of IP addresses, public or for all forms of IP addresses, public or private, as some private
private, as some private addresses may be used in a wide scope, e.g. addresses may be used in a wide scope, e.g., when an Internet Service
when an Internet Service Provider is using Network Address Provider is using NAT.
Translation.
When using the anonymity profile, clients SHOULD NOT use the When using the anonymity profile, clients SHOULD NOT use the
Requested IP address option in DHCPDISCOVER messages. They MUST use Requested IP address option in DHCPDISCOVER messages. They MUST use
the option when mandated by the DHCP protocol, for example in the option when mandated by DHCP -- for example, in DHCPREQUEST
DHCPREQUEST messages. messages.
There are scenarios in which a client connecting to a network There are scenarios in which a client connecting to a network
remembers previously allocated address, i.e. is in the INIT-REBOOT remembers a previously allocated address, i.e., when it is in the
state. In that state, the client that is concerned with privacy INIT-REBOOT state. In that state, any client that is concerned with
SHOULD perform a complete four way handshake starting with privacy SHOULD perform a complete four-way handshake, starting with a
DHCPDISCOVER to obtain a new address lease. If the client can DHCPDISCOVER, to obtain a new address lease. If the client can
ascertain that this is exactly the same network to which it was ascertain that this is exactly the same network to which it was
previously connected, and if the link layer address did not change, previously connected, and if the link-layer address did not change,
the client MAY issue a DHCPREQUEST to try reclaim the current the client MAY issue a DHCPREQUEST to try to reclaim the current
address. address.
3.4. Client hardware address field 3.4. Client Hardware Address Field
Sixteen bytes in the header of the DHCP messages carry the "Client Sixteen octets in the header of the DHCP messages carry the "Client
hardware address" (chaddr) as defined in [RFC2131]. The presence of hardware address" (chaddr) as defined in [RFC2131]. The presence of
this address is necessary for the proper operation of the DHCP this address is necessary for the proper operation of the DHCP
service. service.
Hardware addresses, called "link layer address" in many RFCs, can be Hardware addresses, called "link-layer addresses" in many RFCs, can
used to uniquely identify a device, especially if they follow the be used to uniquely identify a device, especially if they follow the
IEEE 802 recommendations. If the hardware address is reset to a new IEEE 802 recommendations. If the hardware address is reset to a new
value, or randomized, the DHCP client SHOULD use the new randomized randomized value, the DHCP client SHOULD use the new randomized value
value in the DHCP messages. in the DHCP messages.
3.5. Client Identifier Option 3.5. Client Identifier Option
The client identifier option is defined in [RFC2132] with option code The Client Identifier option is defined in [RFC2132] with
61. It is discussed in detail in [RFC4361]. The purpose of the option code 61. It is discussed in detail in [RFC4361]. The purpose
client identifier option is to identify the client in a manner of the Client Identifier option is to identify the client in a manner
independent of the link layer address. This is particularly useful independent of the link-layer address. This is particularly useful
if the DHCP server is expected to assign the same address to the if the DHCP server is expected to assign the same address to the
client after a network attachment is swapped and the link layer client after a network attachment is swapped and the link-layer
address changes. It is also useful when the same node issues address changes. It is also useful when the same node issues
requests through several interfaces, and expects the DHCP server to requests through several interfaces and expects the DHCP server to
provide consistent configuration data over multiple interfaces. provide consistent configuration data over multiple interfaces.
The considerations for hardware independence and strong client The considerations for hardware independence and strong client
identity have an adverse effect on the privacy of mobile clients, identity have an adverse effect on the privacy of mobile clients,
because the hardware-independent unique identifier obviously enables because the hardware-independent unique identifier obviously enables
very efficient tracking of the client's movements. One option would very efficient tracking of the clients' movements. One option would
be to not transmit this option at all, but this may affect be to not transmit this option at all, but this may affect
interoperability and will definitely mark the client as requesting interoperability and will definitely mark the client as requesting
anonymity, exposing it to the risks mentioned in Section 2.5. anonymity, exposing it to the risks mentioned in Section 2.5.
The recommendations in [RFC4361] are very strong, stating for example The recommendations in [RFC4361] are very strong, stating, for
that "DHCPv4 clients MUST NOT use client identifiers based solely on example, that "DHCPv4 clients MUST NOT use client identifiers based
layer two addresses that are hard-wired to the layer two device solely on layer two addresses that are hard-wired to the layer two
(e.g., the Ethernet MAC address)." These strong recommendations are device (e.g., the Ethernet MAC address)." These strong
in fact a tradeoff between ease of management and privacy, and the recommendations are in fact a trade-off between ease of management
tradeoff should depend on the circumstances. and privacy, and the trade-off should depend on the circumstances.
In contradiction to [RFC4361], when using the anonymity profile, DHCP In contradiction to [RFC4361], when using the anonymity profile, DHCP
clients MUST use client identifiers based solely on the link layer clients MUST use client identifiers based solely on the link-layer
address that will be used in the underlying connection. This will address that will be used in the underlying connection. This will
ensure that the DHCP client identifier does not leak any information ensure that the DHCP client identifier does not leak any information
that is not already available to entities monitoring the network that is not already available to entities monitoring the network
connection. It will also ensure that a strategy of randomizing the connection. It will also ensure that a strategy of randomizing the
link layer address will not be nullified by the Client Identifier link-layer address will not be nullified by the Client Identifier
Option. option.
There are usages of DHCP where the underlying connection is a point There are usages of DHCP where the underlying connection is a
to point link, in which case there is no link layer address available point-to-point link, in which case there is no link-layer address
to construct a non-revealing identifier. If anonymity is desired in available to construct a non-revealing identifier. If anonymity is
such networks, the client SHOULD pick a random identifier that is desired in such networks, the client SHOULD pick a random identifier
highly likely to be unique to the current link, using for example a that is highly likely to be unique to the current link, using, for
combination of a local secret and an identifier of the connection. example, a combination of a local secret and an identifier of the
The algorithm for combining secret and identifiers described in connection. The algorithm for combining secrets and identifiers, as
section 5 of [RFC7217] solves a similar problem. The criteria for described in Section 5 of [RFC7217], solves a similar problem. The
the generation of random numbers are stated in [RFC4086]. criteria for the generation of random numbers are stated
in [RFC4086].
3.6. Parameter Request List Option 3.6. Parameter Request List Option
The Parameter Request List (PRL) option is defined in [RFC2132] with The Parameter Request List (PRL) option is defined in [RFC2132] with
option code 55. It list the parameters requested from the server by option code 55. It lists the parameters requested from the server by
the client. Different implementations request different the client. Different implementations request different parameters.
parameters.[RFC2132] specifies that "the client MAY list the options [RFC2132] specifies that "the client MAY list the options in order of
in order of preference." It practice, this means that different preference." In practice, this means that different client
client implementations will request different parameters, in implementations will request different parameters, in different
different orders. orders.
The choice of option numbers and the specific ordering of option The choice of option numbers and the specific ordering of option
numbers in the Parameter Request List can be used to fingerprint the numbers in the PRL can be used to fingerprint the client. This may
client. This may not reveal the identity of a client, but may not reveal the identity of a client but may provide additional
provide additional information, such as the device type, vendor type information such as the device type, the vendor name, or the OS type
or OS type and in some cases specific version. and specific version.
The client willing to protect its privacy SHOULD only request a The client intending to protect its privacy SHOULD only request a
minimal number of options in PRL, and SHOULD also randomly shuffle minimal number of options in the PRL and SHOULD also randomly shuffle
the option codes order in PRL. If this random ordering cannot be the ordering of option codes in the PRL. If this random ordering
implemented, the client MAY order option codes order in PRL by cannot be implemented, the client MAY order the option codes in the
increasing order of option codes. PRL by option code number (lowest to highest).
3.7. Host Name Option 3.7. Host Name Option
The Host Name option is defined in [RFC2132] with option code 12. The Host Name option is defined in [RFC2132] with option code 12.
Depending on implementations, the option value can carry either a Depending on implementations, the option value can carry either an
fully qualified domain name such as "node1984.example.com," or a FQDN such as "node1984.example.com" or a simple host name such as
simple host name such as "node1984." The host name is commonly used "node1984". The host name is commonly used by the DHCP server to
by the DHCP server to identify the host, and also to automatically identify the host and also to automatically update the address of the
update the address of the host in local name services. host in local name services.
Fully qualified domain names are obviously unique identifiers, but FQDNs are obviously unique identifiers, but even simple host names
even simple host names can provide a significant amount of can provide a significant amount of information on the identity of
information on the identity of the device. They are typically chosen the device. They are typically chosen to be unique in the context
to be unique in the context where the device is most often used. If where the device is most often used. In a context that contains a
that context is wide enough, in a large company or in a big substantial number of devices, e.g., in a large company or a big
university, the host name will be a pretty good identifier of the university, the host name will be a pretty good identifier of the
device. Monitoring services could use that information in device, due to the specificity required to ensure uniqueness.
conjunction with traffic analysis and quickly derive the identity of Monitoring services could use that information in conjunction with
the device's owner. traffic analysis and quickly derive the identity of the device's
owner.
When using the anonymity profile, DHCP clients SHOULD NOT send the When using the anonymity profile, DHCP clients SHOULD NOT send the
host name option. If they chose to send the option, DHCP clients Host Name option. If they choose to send the option, DHCP clients
MUST always send a non-qualified host name instead of a fully MUST always send a non-qualified host name instead of an FQDN and
qualified domain name, and MUST obfuscate the host name value. MUST obfuscate the host name value.
There are many ways to obfuscate a host name. The construction rules There are many ways to obfuscate a host name. The construction rules
SHOULD guarantee that a different host name is generated each time SHOULD guarantee that a different host name is generated each time
the link-layer address changes and that the obfuscated host name will the link-layer address changes and that the obfuscated host name will
not reveal the underlying link layer address. The construction not reveal the underlying link-layer address. The construction
SHOULD generate names that are unique enough to minimize collisions SHOULD generate names that are unique enough to minimize collisions
in the local link. Clients MAY use the following algorithm: compute in the local link. Clients MAY use the following algorithm: compute
a secure hash of a local secret and of the link layer address that a secure hash of a local secret and of the link-layer address that
will be used in the underlying connection, and then use the will be used in the underlying connection, and then use the
hexadecimal representation of the first 6 bytes of the hash as the hexadecimal representation of the first 6 octets of the hash as the
obfuscated host name. obfuscated host name.
There is a potential downside to having a specific name pattern for The algorithm described in the previous paragraph generates an easily
hosts that require anonymity, as explained in Section 2.5. For this recognizable pattern. There is a potential downside to having such a
specific name pattern for hosts that require anonymity (the "sticking
out of the crowd" principle), as explained in Section 2.5. For this
reason, the above algorithm is just a suggestion. reason, the above algorithm is just a suggestion.
3.8. Client FQDN Option 3.8. Client FQDN Option
The Client FQDN option is defined in [RFC4702] with option code 81. The Client FQDN option is defined in [RFC4702] with option code 81.
The option allows the DHCP clients to advertise to the DHCP server This option allows the DHCP clients to advertise to the DHCP server
their fully qualified domain name (FQDN) such as their FQDN, such as "mobile.example.com". This would allow the DHCP
"mobile.example.com." This would allow the DHCP server to update in server to update in the DNS the PTR record for the IP address
the DNS the PTR record for the IP address allocated to the client. allocated to the client. Depending on circumstances, either the DHCP
Depending on circumstances, either the DHCP client or the DHCP server client or the DHCP server could update in the DNS the A record for
could update in the DNS the A record for the FQDN of the client. the FQDN of the client.
Obviously, this option uniquely identifies the client, exposing it to Obviously, this option uniquely identifies the client, exposing it to
the DHCP server or to anyone listening to DHCP traffic. In fact, if the DHCP server or to anyone listening to DHCP traffic. In fact, if
the DNS record is updated, the location of the client becomes visible the DNS record is updated, the location of the client becomes visible
to anyone with DNS lookup capabilities. to anyone with DNS lookup capabilities.
When using the anonymity profile, DHCP clients SHOULD NOT include the When using the anonymity profile, DHCP clients SHOULD NOT include the
Client FQDN option in their DHCP requests. Alternatively, they MAY Client FQDN option in their DHCP requests. Alternatively, they MAY
include a special purpose FQDN using the same hostname as in the Host include a special-purpose FQDN using the same host name as in the
Name Option, with a suffix matching the connection-specific DNS Host Name option, with a suffix matching the connection-specific DNS
suffix being advertised by that DHCP server. Having a name in the suffix being advertised by that DHCP server. Having a name in the
DNS allows working with legacy systems that require one to be there, DNS allows working with legacy systems that require one to be there,
e.g., by verifying a forward and reverse lookup succeeds with the e.g., by verifying that a forward and reverse lookup succeeds with
same result. the same result.
3.9. UUID/GUID-based Client Identifier Option 3.9. UUID/GUID-Based Client Machine Identifier Option
The UUID/GUID-based Client Machine Identifier option is defined in The UUID/GUID-based (where "UUID" means "Universally Unique
[RFC4578], with option code 97. The option is part of a set of Identifier" and "GUID" means "Globally Unique Identifier")
options for Intel Preboot eXecution Environment (PXE). The purpose Client Machine Identifier option is defined in [RFC4578] with
of the PXE system is to perform management functions on a device option code 97. This option is part of a set of options for the
before its main OS is operational. The Client Machine Identifier Intel Preboot eXecution Environment (PXE). The purpose of the PXE
carries a 16-octet Globally Unique Identifier (GUID), which uniquely system is to perform management functions on a device before its main
identifies the device. OS is operational. The Client Machine Identifier carries a 16-octet
GUID that uniquely identifies the device.
The PXE system is clearly designed for devices operating in a The PXE system is clearly designed for devices operating in a
controlled environment. The main usage of the PXE system is to controlled environment. The main usage of the PXE system is to
install a new version of the operating system through a high speed install a new version of the operating system through a high-speed
Ethernet connection. The process is typically controlled from the Ethernet connection. The process is typically controlled from the
user interface during the boot process. Common sense seems to user interface during the boot process. Common sense seems to
dictate that getting a new operating system from an unauthenticated dictate that getting a new operating system from an unauthenticated
server at an untrusted location is a really bad idea, and that even server at an untrusted location is a really bad idea and that even if
if the option was available users would not activate it. In any the option was available users would not activate it. In any case,
case, the option is only used in the "pre boot" environment, and the option is only used in the "pre-boot" environment, and there is
there is no reason to use it once the system is up and running. no reason to use it once the system is up and running. Nodes
Nodes visiting untrusted networks MUST NOT send or use the PXE visiting untrusted networks MUST NOT send or use the PXE options.
options.
3.10. User and Vendor Class DHCP options 3.10. User and Vendor Class DHCP Options
Vendor identifying options are defined in [RFC2132] and [RFC3925]. Vendor-identifying options are defined in [RFC2132] and [RFC3925].
When using the anonymity profile, DHCP clients SHOULD NOT use the When using the anonymity profile, DHCPv4 clients SHOULD NOT use the
Vendor Specific Information option (code 43), the Vendor Class Vendor-Specific Information option (code 43), the Vendor Class
Identifier Option (60), the Vendor Class option (code 124), or the Identifier option (code 60), the V-I Vendor Class option (code 124),
Vendor Specific Information option (code 125) as these options or the V-I Vendor-Specific Information option (code 125), as these
potentially reveal identifying information. options potentially reveal identifying information.
4. Anonymity profile for DHCPv6 4. Anonymity Profile for DHCPv6
DHCPv6 is typically used by clients in one of two scenarios: stateful DHCPv6 is typically used by clients in one of two scenarios: stateful
and stateless configuration. In the stateful scenario, clients use a or stateless configuration. In the stateful scenario, clients use a
combination of SOLICIT, REQUEST, CONFIRM, RENEW, REBIND and RELEASE combination of Solicit, Request, Confirm, Renew, Rebind, Release, and
messages to obtain addresses, and manage these addresses. Decline messages to obtain addresses and manage these addresses.
In the stateless scenario, clients configure addresses using a In the stateless scenario, clients configure addresses using a
combination of client managed identifiers and router-advertised combination of client-managed identifiers and router-advertised
prefixes, without involving the DHCPv6 services. Different ways of prefixes, without involving the DHCPv6 services. Different ways of
constructing these prefixes have different implications on privacy, constructing these prefixes have different implications on privacy,
which are discussed in [I-D.ietf-6man-default-iids] and which are discussed in [DEFAULT-IIDs] and [RFC7721]. In the
[I-D.ietf-6man-ipv6-address-generation-privacy]. In the stateless stateless scenario, clients use DHCPv6 to obtain network
scenario, clients use DHCPv6 to obtain network configuration configuration parameters, through the Information-request message.
parameters, through the INFORMATION-REQUEST message.
The choice between the stateful and stateless scenarios depends on The choice between the stateful and stateless scenarios depends on
flag and prefix options published by the "Router Advertisement" flag and prefix options published by the Router Advertisement
messages of local routers, as specified in [RFC4861]. When these messages of local routers, as specified in [RFC4861]. When these
options enable stateless address configuration hosts using the options enable stateless address configuration, hosts using the
anonymity profile SHOULD use stateless address configuration instead anonymity profile SHOULD use stateless address configuration instead
of stateful address configuration, because stateless configuration of stateful address configuration, because stateless configuration
requires fewer information disclosures than stateful configuration. requires fewer information disclosures than stateful configuration.
When using the anonymity profile, DHCPv6 clients carefully select When using the anonymity profile, DHCPv6 clients carefully select
DHCPv6 options used in the various messages that they send. The list DHCPv6 options used in the various messages that they send. The list
of options that are mandatory or optional for each message is of options that are mandatory or optional for each message is
specified in [RFC3315]. Some of these options have specific specified in [RFC3315]. Some of these options have specific
implications on anonymity. The following sections provide guidance implications on anonymity. The following sections provide guidance
on the choice of option values when using the anonymity profile. on the choice of option values when using the anonymity profile.
4.1. Avoiding fingerprinting 4.1. Avoiding Fingerprinting
There are many choices for implementing DHCPv6 messages. As There are many choices for implementing DHCPv6 messages. As
explained in Section 3.1, these choices can be use to fingerprint the explained in Section 3.1, these choices can be used to fingerprint
client. the client.
The following sections provide guidance on the encoding of options. The following sections provide guidance on the encoding of options.
However, this guidance alone may not be sufficient to prevent However, this guidance alone may not be sufficient to prevent
fingerprinting from revealing information, such as the device type, fingerprinting from revealing the device type, the vendor name, or
vendor type or OS type and in some cases specific version, or from the OS type and specific version. Fingerprinting may also reveal
revealing whether the client is using the anonymity profile. whether the client is using the anonymity profile.
The client intending to protect its privacy SHOULD limit the subset The client intending to protect its privacy SHOULD limit the subset
of options sent in messages to the subset listed in the following of options sent in messages to the subset listed in the following
sections. sections.
The client intending to protect its privacy SHOULD randomize options The client intending to protect its privacy SHOULD randomize the
order before sending any DHCPv6 message. If this random ordering ordering of options before sending any DHCPv6 message. If this
cannot be implemented, the client MAY arrange options by increasing random ordering cannot be implemented, the client MAY order the
order of option codes. options by option code number (lowest to highest).
4.2. Do not send Confirm messages, unless really sure where 4.2. Do not send Confirm messages, unless really sure about
the location
[RFC3315] requires clients to send a Confirm message when they attach [RFC3315] requires clients to send a Confirm message when they attach
to a new link to verify whether the addressing and configuration to a new link to verify whether the addressing and configuration
information they previously received is still valid. This information they previously received is still valid. This
requirement was relaxed in [I-D.ietf-dhc-rfc3315bis]. When these requirement was relaxed in [DHCPv6bis]. When these clients send
clients send Confirm messages, they include any IAs assigned to the Confirm messages, they include any Identity Associations (IAs)
interface that may have moved to a new link, along with the addresses assigned to the interface that may have moved to a new link, along
associated with those IAs. By examining the addresses in the Confirm with the addresses associated with those IAs. By examining the
message an attacker can trivially identify the previous point(s) of addresses in the Confirm message, an attacker can trivially identify
attachment. the previous point(s) of attachment.
Clients interested in protecting their privacy SHOULD NOT send Clients interested in protecting their privacy SHOULD NOT send
Confirm messages and instead directly try to acquire addresses on the Confirm messages and instead SHOULD directly try to acquire addresses
new link. However, not sending confirm messages can result in on the new link. However, not sending Confirm messages can result in
connectivity hiatus in some scenarios, e.g. roaming between two connectivity hiatus in some scenarios, e.g., roaming between two
access points in the same wireless network. DHCPv6 clients that can access points in the same wireless network. DHCPv6 clients that can
verify that the previous link and the current link are part of the verify that the previous link and the current link are part of the
same network MAY send Confirm messages while still protecting their same network MAY send Confirm messages while still protecting their
privacy. Such link identification should happen before DHCPv6 is privacy. Such link identification should happen before DHCPv6 is
used, and thus cannot depend on the DHCPv6 information used in used, and thus it cannot depend on the DHCPv6 information used in
[RFC6059]. In practice, the most reliable detection of network [RFC6059]. In practice, the most reliable detection of network
attachment is through link layer security, e.g. [IEEE8021X]. attachment is through link-layer security, e.g., [IEEE8021X].
4.3. Client Identifier DHCPv6 Option 4.3. Client Identifier DHCPv6 Option
The client identifier option is defined in [RFC3315] with option code The DHCPv6 Client Identifier option is defined in [RFC3315] with
1. The purpose of the client identifier option is to identify the option code 1. The purpose of the Client Identifier option is to
client to the server. The content of the option is a DHCP Unique identify the client to the server. The content of the option is a
Identifier (DUID). One of the primary privacy concerns is that a DHCP Unique Identifier (DUID). One of the primary privacy concerns
client is disclosing a stable identifier (the DUID) that can be use is that a client is disclosing a stable identifier (the DUID) that
for tracking and profiling. Three DUID formats are specified in can be used for tracking and profiling. Three DUID formats are
[RFC3315]: Link-layer address plus time (DUID-LLT), Vendor-assigned specified in [RFC3315]: link-layer address plus time (DUID-LLT),
unique ID based on Enterprise Number, and Link-layer address. A Vendor-assigned unique ID based on Enterprise Number, and link-layer
fourth type, DUID-UUID is defined in [RFC6355]. address. A fourth type, DUID-UUID, is defined in [RFC6355].
When using the anonymity profile in conjunction with randomized link- When using the anonymity profile in conjunction with randomized
layer addresses, DHCPv6 clients MUST use the DUID format number 3, link-layer addresses, DHCPv6 clients MUST use DUID format number 3 --
Link-layer address. The value of the Link-layer address should be link-layer address. The value of the link-layer address should be
that currently assigned to the interface. the value currently assigned to the interface.
When using the anonymity profile without the benefit of randomized When using the anonymity profile without the benefit of randomized
link-layer addresses, clients that want to protect their privacy link-layer addresses, clients that want to protect their privacy
SHOULD generate a new randomized DUID-LLT every time they attach to a SHOULD generate a new randomized DUID-LLT every time they attach to a
new link or detect a possible link change event. Syntactically this new link or detect a possible link change event. Syntactically, this
identifier will conform to [RFC3315] but its content is meaningless. identifier will conform to [RFC3315], but its content is meaningless.
The exact details are left up to implementors, but there are several The exact details are left up to implementers, but there are several
factors should be taken into consideration. The DUID type SHOULD be factors that should be taken into consideration. The DUID type
set to 1 (DUID-LLT). Hardware type SHOULD be set appropriately to SHOULD be set to 1 (DUID-LLT). Hardware type SHOULD be set
the hardware type. The link address embedded in the LLT SHOULD be appropriately to the hardware type in question. The link address
set to a randomized value. Time SHOULD be set to a random timestamp embedded in the LLT SHOULD be set to a randomized value. Time SHOULD
from the previous year. Time MAY be set to current time, but this be set to a random timestamp from the previous year. Time MAY be set
will reveal the fact that the DUID is newly generated, and could to current time, but this will reveal the fact that the DUID is newly
provide information for device fingerprinting. The criteria for generated and thus could provide information for device
generating highly unique random numbers are listed in [RFC4086]. fingerprinting. The criteria for generating highly unique random
numbers are listed in [RFC4086].
4.3.1. Anonymous Information-Request 4.3.1. Anonymous Information-request
According to [RFC3315], a DHCPv6 client includes its client According to [RFC3315], a DHCPv6 client includes its client
identifier in most of the messages it sends. There is one exception, identifier in most of the messages it sends. There is one exception,
however. Client is allowed to omit its client identifier when however: the client is allowed to omit its client identifier when
sending Information-Request. sending Information-request messages.
When using stateless DHCPv6, clients wanting to protect their privacy When using stateless DHCPv6, clients wanting to protect their privacy
SHOULD NOT include client identifiers in their Information-Request SHOULD NOT include client identifiers in their Information-request
messages. This will prevent the server from specifying client- messages. This will prevent the server from specifying client-
specific options if it is configured to do so, but the need for specific options if it is configured to do so, but the need for
anonymity precludes such options anyway. anonymity precludes such options anyway.
4.4. Server Identifier Option 4.4. Server Identifier Option
When using the anonymity profile, DHCPv6 clients SHOULD use the When using the anonymity profile, DHCPv6 clients SHOULD use the
Server Identifier Option (code 2) as specified in [RFC3315]. Clients Server Identifier option (code 2) as specified in [RFC3315]. Clients
MUST only include server identifier values that were received with MUST only include server identifier values that were received with
the current link-layer address, because reuse of old values discloses the current link-layer address, because the reuse of old values
information that can be used to identify the client. discloses information that can be used to identify the client.
4.5. Address assignment options 4.5. Address Assignment Options
When using the anonymity profile, DHCPv6 clients might have to use When using the anonymity profile, DHCPv6 clients might have to use
SOLICIT or REQUEST messages to obtain IPv6 addresses through the DHCP Solicit or Request messages to obtain IPv6 addresses through the
server. In DHCPv6, the collection of addresses assigned to a client DHCPv6 server. In DHCPv6, the collection of addresses assigned to a
is identified by an Identity Association (IA).Clients interested in client is identified by an IA. Clients interested in privacy SHOULD
privacy SHOULD request addresses using the Identity Association for request addresses using the IA for the Non-temporary Addresses option
Non-temporary Addresses Option (IA_NA, code 3). (IA_NA, code 3) [RFC3315].
The IA_NA option includes an IAID parameter that identifies a unique The IA_NA option includes an IAID parameter that identifies a unique
identity association for the interface for which the Address is IA for the interface for which the address is requested. Clients
requested. Clients interested in protecting their privacy MUST interested in protecting their privacy MUST ensure that the IAID does
ensure that the IAID does not enable client identification. They not enable client identification. They also need to conform to the
also need to conform to the requirement of [RFC3315] that the IAID requirement of [RFC3315] that the IAID for that IA MUST be consistent
for that IA MUST be consistent across restarts of the DHCP client. across restarts of the DHCPv6 client. We interpret that as requiring
We interpret that as requiring that the IAID MUST be constant for the that the IAID MUST be constant for the association, as long as the
association, as long as the link layer address remains constant. link-layer address remains constant.
Clients MAY meet the privacy, uniqueness and stability requirement of Clients MAY meet the privacy, uniqueness, and stability requirements
the IAID by constructing it as the combination of one byte encoding of the IAID by constructing it as the combination of 1 octet encoding
the interface number in the system, and the first three bytes of the the interface number in the system, and the first 3 octets of the
link layer address. link-layer address.
The clients MAY use the IA Address Option (code 5) but need to The clients MAY use the IA Address option (code 5) [RFC3315] but need
balance the potential advantage of "address continuity" versus the to balance the potential advantage of "address continuity" versus the
potential risk of "previous address disclosure." A potential potential risk of "previous address disclosure". A potential
solution is to remove all stored addresses when a link-layer address solution is to remove all stored addresses when a link-layer address
changes, and to only use the IA Address option with addresses that changes and to only use the IA Address option with addresses that
have been explicitly assigned through the current link-layer address. have been explicitly assigned through the current link-layer address.
4.5.1. Obtain temporary addresses 4.5.1. Obtain Temporary Addresses
[RFC3315] defines a special container (IA_TA, code 4) for requesting [RFC3315] defines a special container (IA_TA, code 4) for requesting
temporary addresses. This is a good mechanism in principle, but temporary addresses. This is a good mechanism in principle, but
there are a number of issues associated with it. First, this is not there are a number of issues associated with it. First, this is not
a widely used feature, so clients depending solely on temporary a widely used feature, so clients depending solely on temporary
addresses may lock themselves out of service. Secondly, [RFC3315] addresses may lock themselves out of service. Secondly, [RFC3315]
does not specify any lifetime or lease length for temporary does not specify any lifetime or lease length for temporary
addresses. Therefore support for renewing temporary addresses may addresses. Therefore, support for renewing temporary addresses may
vary between client implementations, including not being supported at vary between client implementations, including no support at all.
all. Finally, by requesting temporary addresses a client reveals its Finally, by requesting temporary addresses, a client reveals its
desire for privacy and potentially risks countermeasures as described desire for privacy and potentially risks countermeasures as described
in Section 2.5. in Section 2.5.
Because of these Clients interested in their privacy SHOULD NOT use Because of these issues, clients interested in their privacy
IA_TA. SHOULD NOT use IA_TA.
The addresses obtained according to Section 4.5 are temporary in The addresses obtained according to Section 4.5 are meant to be
nature, and will be discarded when the link layer address is changed. non-temporary, but the anonymity profile uses them as temporary, and
They thus meet most of the use cases of the temporary addresses they will be discarded when the link-layer address is changed. They
defined in [RFC4941]. Clients interested in their privacy should not thus meet most of the use cases of the temporary addresses defined in
publish their IPv6 addresses in the DNS or otherwise associate them [RFC4941]. Clients interested in their privacy should not publish
with name services, and thus do not normally need two classes of their IPv6 addresses in the DNS or otherwise associate them with name
addresses, one public, one temporary. services, and thus do not normally need two classes of addresses --
one public, one temporary.
The use of mechanisms to allocate several IPv6 addresses to a client The use of mechanisms to allocate several IPv6 addresses to a client
while preserving privacy is for further study. while preserving privacy is left for further study.
4.5.2. Prefix delegation 4.5.2. Prefix Delegation
The use of DHCPv6 address assignment option for Prefix Delegation is The use of DHCPv6 address assignment option for Prefix Delegation
defined in [RFC3633]. Because current host OS implementations do not (PD) is defined in [RFC3633]. Because current host OS
typically request prefixes, clients that wish to use DHCPv6 PD - just implementations do not typically request prefixes, clients that wish
like clients that wish to use any DHCP or DHCPv6 option that is not to use DHCPv6 PD -- just like clients that wish to use any DHCP or
currently widely used - should recognize that doing so will serve as DHCPv6 option that is not currently widely used -- should recognize
a form of fingerprinting unless or until client use of DHCPv6 PD that doing so will serve as a form of fingerprinting, unless or until
becomes more widespread. the use of DHCPv6 PD by clients becomes more widespread.
The anonymity properties of DHCPv6 Prefix Delegation, which use IA_PD The anonymity properties of DHCPv6 PD, which uses IA_PD IAs, are
identity associations, are similar to those of of DHCPv6 address similar to those of DHCPv6 address assignment using IA_NA IAs. The
assignment using IA_NA identity associations. The IAID could IAID could potentially be used to identify the client, and a prefix
potentially be used to identify the client, and a prefix hint sent in hint sent in the IA_PD Prefix option could be used to track the
the IA_PD Prefix option could be used to track the client's previous client's previous location. Clients that desire anonymity and never
location. Clients that desire anonymity and never request more than request more than one prefix SHOULD set the IAID value to zero, as
one prefix SHOULD set the IAID value to zero, as authorized in authorized in Section 6 of [RFC3633], and SHOULD NOT document any
section 6 of [RFC3633], and SHOULD NOT document any previously previously assigned prefix in the IA_PD Prefix option.
assigned prefix in the IA_PD Prefix option.
4.6. Option Request Option 4.6. Option Request Option
The Option Request Option (ORO) is defined in [RFC3315] with option The Option Request Option (ORO) is defined in [RFC3315] with
code 6. It specifies the options that the client is requesting from option code 6. It specifies the options that the client is
the server. The choice of requested options and the order of requesting from the server. The choice of requested options and the
encoding of these options in the ORO can be used to fingerprint the order of encoding of these options in the ORO can be used to
client. fingerprint the client.
The client willing to protect its privacy SHOULD only request a The client intending to protect its privacy SHOULD only request a
minimal subset of options and SHOULD randomly shuffle the option minimal subset of options and SHOULD randomly shuffle the ordering of
codes order in ORO. If this random ordering cannot be implemented, option codes in the ORO. If this random ordering cannot be
the client MAY order option codes in ORO by increasing order of implemented, the client MAY order the option codes in the ORO by
option codes. option code number (lowest to highest).
4.6.1. Previous option values 4.6.1. Previous Option Values
According to [RFC3315], the client that includes an Option Request According to [RFC3315], the client that includes an ORO in a Solicit
Option in a Solicit or Request message MAY additionally include or Request message MAY additionally include instances of those
instances of those options that are identified in the Option Request options that are identified in the ORO, with data values as hints to
option, with data values as hints to the server about parameter the server about parameter values the client would like to have
values the client would like to have returned. returned.
When using the anonymity profile, clients SHOULD NOT include such When using the anonymity profile, clients SHOULD NOT include such
instances of options because old values might be used to identify the instances of options, because old values might be used to identify
client. the client.
4.7. Authentication Option 4.7. Authentication Option
The purpose of the Authentication option (code 11) is to authenticate The purpose of the Authentication option (code 11) [RFC3315] is to
the identity of clients and servers and the contents of DHCP authenticate the identity of clients and servers and the contents of
messages. As such, the option can be used to identify the client, DHCPv6 messages. As such, the option can be used to identify the
and is incompatible with the stated goal of "client anonymity." client, so it is incompatible with the stated goal of "client
DHCPv6 clients that use the anonymity profile SHOULD NOT use the anonymity". DHCPv6 clients that use the anonymity profile SHOULD NOT
authentication option. They MAY use it if they recognize that they use the Authentication option. They MAY use it if they recognize
are operating in a trusted environment, e.g., in a work place that they are operating in a trusted environment, e.g., in a
network. workplace network.
4.8. User and Vendor Class DHCPv6 options 4.8. User and Vendor Class DHCPv6 Options
When using the anonymity profile, DHCPv6 clients SHOULD NOT use the When using the anonymity profile, DHCPv6 clients SHOULD NOT use the
User Class option (code 15) or the Vendor Class option (code 16), as User Class option (code 15) or the Vendor Class option (code 16)
these options potentially reveal identifying information. [RFC3315], as these options potentially reveal identifying
information.
4.9. Client FQDN Option 4.9. Client FQDN DHCPv6 Option
The Client FQDN option is defined in [RFC4704] with option code 29. The DHCPv6 Client FQDN option is defined in [RFC4704] with
The option allows the DHCP clients to advertise to the DHCP server option code 39. This option allows the DHCPv6 clients to advertise
their fully qualified domain name (FQDN) such as to the DHCPv6 server their FQDN, such as "mobile.example.com". When
"mobile.example.com." When using the anonymity profile, DHCPv6 using the anonymity profile, DHCPv6 clients SHOULD NOT include the
clients SHOULD NOT include the Client FQDN option in their DHCPv6 Client FQDN option in their DHCPv6 messages, because it identifies
messages because it identifies the client. As explained in the client. As explained in Section 3.8, they MAY use a local-only
Section 3.8 they MAY use a local-only FQDN by combining a host name FQDN by combining a host name derived from the link-layer address and
derived from the link layer address and a suffix advertised by the a suffix advertised by the local DHCPv6 server.
local DHCP server.
5. Operational Considerations 5. Operational Considerations
The anonymity profile has the effect of hiding the client identity The anonymity profiles have the effect of hiding the client identity
from the DHCP server. This is not always desirable. Some DHCP from the DHCP server. This is not always desirable. Some DHCP
servers provide facilities like publishing names and addresses in the servers provide facilities like publishing names and addresses in the
DNS, or ensuring that returning clients get reassigned the same DNS, or ensuring that returning clients get reassigned the same
address. address.
Clients using the anonymity profile may be consuming more resources. Clients using an anonymity profile may be consuming more resources.
For example when they change link-layer address and request for a new For example, when a client changes its link-layer address and
IP, the old one is still marked as leased by the server. requests a new IP address, the old IP address is still marked as
leased by the server.
Some DHCP servers will only give addresses to pre-registered MAC Some DHCP servers will only give addresses to pre-registered MAC
addresses, forcing clients to choose between remaining anonymous and addresses, forcing clients to choose between remaining anonymous and
obtaining connectivity. obtaining connectivity.
Implementers SHOULD provide a way for clients to control when the Implementers SHOULD provide a way for clients to control when the
anonymity profile is used, and when standard behavior is preferred. anonymity profiles are used and when standard behavior is preferred.
Implementers MAY implement this control by tying use of the anonymity
profile to that of link-layer address randomization.
6. Security Considerations
The use of the anonymity profile does not change the security
considerations of the DHCPv4 or DHCPv6 protocols.
7. IANA Considerations
This draft does not require any IANA action.
8. Acknowledgments
The inspiration for this draft came from discussions in the Perpass
mailing list. Several people provided feedback on this draft,
notably Noel Anderson, Brian Carpenter, Lorenzo Colitti, Stephen
Farrell, Nick Grifka, Tushar Gupta, Brian Haberman, Gabriel
Montenegro, Marcin Siodelski, Dave Thaler, Bernie Volz, and Jun Wu.
9. Changes from previous versions
The RFC Editor must ensure that this section is removed prior to RFC
publication.
Changes from draft-00 to draft-01:
1. In Section 2.6, added guidance when using [RFC7618].
2. In Section 3.5, added guidance for case when no link layer
address is available.
3. In Section 3.7, changed the recommended mechanism for obfuscating
host names, in order to avoid reveal the underlying link layer
address.
4. In Section 4.2, added an exception to the "should not send
confirm" recommendation, to account for the "good" use of Confirm
when roaming between access points on the same network.
Changes from draft-01 to draft-02:
1. In Section 3, checked the requirements of parameters in messages
to ensure consistency with the main text.
2. In Section 3.5, added guidance for case when no link layer
address is available.
3. In Section 3.7, specified that clients SHOULD NOT send the
option, and that the optional obfuscation mechanism is just a
suggestion.
4. Updated the text in Section 4.5.1 for temporary IPv6 address
allocation.
5. Rewrote Section 5 on operational requirements for clarity.
Changes from draft-02 to draft-03:
1. Removed the update of [RFC4361] since we are specifying when to
use that RFC, but are not recommending any specific change.
2. Fixed a number of typos and nits.
3. In Section 2.7, specified that mitigation of server privacy
issues is left for further study.
4. Moved the guidance on avoiding fingerprinting to Section 3.1 and
Section 4.1.
5. In Section 3.5, added text explaining why the client identifier
option should still be sent, even when anonymity is desired.
6. Added Section 3.6 specifying the random ordering of requested
option codes in the PRL parameter, with an alternative option for
strict ordering.
7. Changed the requirement in Section 4.6 to allow "increasing order
of option codes" as an alternative to "randomized order of
options".
8. In Section 4.5.1 revised the language stating lack of support for
renewing temporary addresses, as RFC 3315 does in fact specify a
mechanism for doing so.
Changes from draft-03 to draft-04 address comments received during
Working Group Last Call:
1. In Section 3, tightened the normative language and the use of
message codes.
2. In Section 3.3, clarified the reference to the INIT-REBOOT
scenario.
3. Revised the writing of Section 4.5 for greater clarity.
Changes from draft-04 to draft-05 address comments received after
Working Group Last Call:
1. Changed the title of Section 4.1 to "Avoiding fingerprinting" to
align with Section 3.1.
2. Fixed editing nits in Section 4.5, and added specification that
the IAID is composed of the interface identifier and the first
three bytes of the HW address. This matches the implementation
in Windows 10, and insures that variations will not be used to
fingerprint the client software.
3. Dropping "This draft updates RFC4361" from the Abstract, since
this draft does not actually update RFC4361.
4. Pruned the list of normative references.
Changes from draft-05 to draft-06 address comments received during AD
evaluation
1. In Section 3.3, clarified that the requirement to not publish
addresses from previous networks also applies to private
addresses.
2. In Section 3.6, corrected the value of the option number to 55.
3. In Section 3.9, provided more guidance on disabling the PXE
option.
4. In Section 4.2, provided guidance on network identification, with
references to [RFC6059] and [IEEE8021X].
5. In Section 4.5, expanded the Identity Association (IA) acronym.
6. In Section 4.3, spelled out DUID-LLT and tightened the text to
make randomized identifiers the recommended default.
Changes from draft-06 to draft-07 address comments received during
IETF last call
1. Added informative references to [RFC4086] and [RFC7217] in
Section 3.5.
2. In Section 4.3, added precision that the generated DUID-LLT are
meaningless, and added an informative reference to [RFC4086].
3. In Section 4.5.2, reworked the text to reflect the consensus from
IPv6 experts and provide informed guidance on the use of the
option if prefix delegation is required.
4. In Section 5, noticed servers that might mandate link layer
address registration.
Changes from draft-07 to draft-08 address comments received during
IESG review
1. Corrected a number of typos and applied several minor editing
suggestions.
2. Added reference to IEEE study group and other IETF experiments in
Section 2.
3. Added reference to journal paper on Guy Fawkes mask in
Section 2.5.
4. Removed "if servers do not object" from appliction scope in
Section 2.6.
5. Removed redondant text from Section 3.4.
6. In Section 3.5, say "will not be nullified by the Client Implementers MAY implement this control by tying the use of the
Identifier Option" instead of "will not be nullified by DHCP anonymity profiles to that of link-layer address randomization.
options."
7. In Section 3.9, remove the qualification "if only for privacy 6. Security Considerations
reasons."
8. Clarified the preference for stateless address configuration in The use of the anonymity profiles does not change the security
Section 4. considerations of the DHCPv4 or DHCPv6 protocols [RFC2131] [RFC3315].
10. References 7. References
10.1. Normative References 7.1. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997, DOI 10.17487/RFC2119, March 1997,
<http://www.rfc-editor.org/info/rfc2119>. <http://www.rfc-editor.org/info/rfc2119>.
[RFC2131] Droms, R., "Dynamic Host Configuration Protocol", [RFC2131] Droms, R., "Dynamic Host Configuration Protocol",
RFC 2131, DOI 10.17487/RFC2131, March 1997, RFC 2131, DOI 10.17487/RFC2131, March 1997,
<http://www.rfc-editor.org/info/rfc2131>. <http://www.rfc-editor.org/info/rfc2131>.
[RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, [RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins,
C., and M. Carney, "Dynamic Host Configuration Protocol C., and M. Carney, "Dynamic Host Configuration Protocol
for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315,
2003, <http://www.rfc-editor.org/info/rfc3315>. July 2003, <http://www.rfc-editor.org/info/rfc3315>.
[RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic [RFC3633] Troan, O. and R. Droms, "IPv6 Prefix Options for Dynamic
Host Configuration Protocol (DHCP) version 6", RFC 3633, Host Configuration Protocol (DHCP) version 6", RFC 3633,
DOI 10.17487/RFC3633, December 2003, DOI 10.17487/RFC3633, December 2003,
<http://www.rfc-editor.org/info/rfc3633>. <http://www.rfc-editor.org/info/rfc3633>.
[RFC4702] Stapp, M., Volz, B., and Y. Rekhter, "The Dynamic Host [RFC4702] Stapp, M., Volz, B., and Y. Rekhter, "The Dynamic Host
Configuration Protocol (DHCP) Client Fully Qualified Configuration Protocol (DHCP) Client Fully Qualified
Domain Name (FQDN) Option", RFC 4702, Domain Name (FQDN) Option", RFC 4702,
DOI 10.17487/RFC4702, October 2006, DOI 10.17487/RFC4702, October 2006,
skipping to change at page 25, line 10 skipping to change at page 23, line 5
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman, [RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861, "Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007, DOI 10.17487/RFC4861, September 2007,
<http://www.rfc-editor.org/info/rfc4861>. <http://www.rfc-editor.org/info/rfc4861>.
[RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy [RFC4941] Narten, T., Draves, R., and S. Krishnan, "Privacy
Extensions for Stateless Address Autoconfiguration in Extensions for Stateless Address Autoconfiguration in
IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007, IPv6", RFC 4941, DOI 10.17487/RFC4941, September 2007,
<http://www.rfc-editor.org/info/rfc4941>. <http://www.rfc-editor.org/info/rfc4941>.
10.2. Informative References 7.2. Informative References
[CNBC] Weston, G., Greenwald, G., and R. Gallagher, "CBC News: [CNBC] Weston, G., Greenwald, G., and R. Gallagher, "CBC News:
CSEC used airport Wi-Fi to track Canadian travellers", Jan CSEC used airport Wi-Fi to track Canadian travellers:
2014, <http://www.cbc.ca/news/politics/csec-used-airport- Edward Snowden documents", January 2014,
wi-fi-to-track-canadian-travellers-edward-snowden- <http://www.cbc.ca/news/politics/
documents-1.2517881>. csec-used-airport-wi-fi-to-track-canadian-travellers-
edward-snowden-documents-1.2517881>.
[DEFAULT-IIDs]
Gont, F., Cooper, A., Thaler, D., and W. Liu,
"Recommendation on Stable IPv6 Interface Identifiers",
Work in Progress, draft-ietf-6man-default-iids-11,
April 2016.
[DHCPv6bis]
Mrugalski, T., Ed., Siodelski, M., Volz, B., Yourtchenko,
A., Richardson, M., Jiang, S., and T. Lemon, "Dynamic Host
Configuration Protocol for IPv6 (DHCPv6) bis", Work in
Progress, draft-ietf-dhc-rfc3315bis-04, March 2016.
[GuyFawkesMask] [GuyFawkesMask]
Nickelsburg, M., "A brief history of the Guy Fawkes mask", Nickelsburg, M., "A brief history of the Guy Fawkes mask",
July 2013, <http://theweek.com/articles/463151/ July 2013, <http://theweek.com/articles/463151/
brief-history-guy-fawkes-mask>. brief-history-guy-fawkes-mask>.
[I-D.ietf-6man-default-iids]
Gont, F., Cooper, A., Thaler, D., and S. LIU,
"Recommendation on Stable IPv6 Interface Identifiers",
draft-ietf-6man-default-iids-10 (work in progress),
February 2016.
[I-D.ietf-6man-ipv6-address-generation-privacy]
Cooper, A., Gont, F., and D. Thaler, "Privacy
Considerations for IPv6 Address Generation Mechanisms",
draft-ietf-6man-ipv6-address-generation-privacy-08 (work
in progress), September 2015.
[I-D.ietf-dhc-dhcp-privacy]
Jiang, S., Krishnan, S., and T. Mrugalski, "Privacy
considerations for DHCP", draft-ietf-dhc-dhcp-privacy-04
(work in progress), February 2016.
[I-D.ietf-dhc-dhcpv6-privacy]
Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy
considerations for DHCPv6", draft-ietf-dhc-
dhcpv6-privacy-04 (work in progress), February 2016.
[I-D.ietf-dhc-rfc3315bis]
Mrugalski, T., Siodelski, M., Volz, B., Yourtchenko, A.,
Richardson, M., Jiang, S., and T. Lemon, "Dynamic Host
Configuration Protocol for IPv6 (DHCPv6) bis", draft-ietf-
dhc-rfc3315bis-03 (work in progress), February 2016.
[IEEE8021X] [IEEE8021X]
IEEE Std 802.1X-2010, "IEEE Standards for Local and IEEE, "IEEE Standard for Local and metropolitan area
Metropolitan Area Networks: Port based Network Access networks - Port-Based Network Access Control",
Control", Feb 2010, <http://standards.ieee.org/getieee802/ IEEE 802.1X-2010, DOI 10.1109/ieeestd.2010.5409813,
download/802.1X-2010.pdf>. <http://ieeexplore.ieee.org/servlet/
opac?punumber=5409757>.
[IEEE802PRSG] [IEEE802PRSG]
IEEE 802 EC PRSG, "IEEE 802 EC Privacy Recommendation IEEE 802 EC PRSG, "IEEE 802 EC Privacy Recommendation
Study Group", Dec 2015, Study Group", February 2016,
<http://www.ieee802.org/PrivRecsg/>. <http://www.ieee802.org/PrivRecsg/>.
[IETFMACRandom] [IETFMACRandom]
Zuniga, JC., "MAC Privacy", November 2014, Zuniga, JC., "MAC Privacy", November 2014,
<http://www.ietf.org/blog/2014/11/mac-privacy/>. <http://www.ietf.org/blog/2014/11/mac-privacy/>.
[IETFTrialsAndMore] [IETFTrialsAndMore]
Bernardos, CJ., Zuniga, JC., and P. O'Hanlon, "Wi-Fi Bernardos, CJ., Zuniga, JC., and P. O'Hanlon, "Wi-Fi
Internet connectivity and privacy: hiding your tracks on Internet connectivity and privacy: hiding your tracks on
the wireless Internet", October 2015, the wireless Internet", October 2015,
skipping to change at page 27, line 31 skipping to change at page 25, line 10
Interface Identifiers with IPv6 Stateless Address Interface Identifiers with IPv6 Stateless Address
Autoconfiguration (SLAAC)", RFC 7217, Autoconfiguration (SLAAC)", RFC 7217,
DOI 10.17487/RFC7217, April 2014, DOI 10.17487/RFC7217, April 2014,
<http://www.rfc-editor.org/info/rfc7217>. <http://www.rfc-editor.org/info/rfc7217>.
[RFC7618] Cui, Y., Sun, Q., Farrer, I., Lee, Y., Sun, Q., and M. [RFC7618] Cui, Y., Sun, Q., Farrer, I., Lee, Y., Sun, Q., and M.
Boucadair, "Dynamic Allocation of Shared IPv4 Addresses", Boucadair, "Dynamic Allocation of Shared IPv4 Addresses",
RFC 7618, DOI 10.17487/RFC7618, August 2015, RFC 7618, DOI 10.17487/RFC7618, August 2015,
<http://www.rfc-editor.org/info/rfc7618>. <http://www.rfc-editor.org/info/rfc7618>.
[RFC7721] Cooper, A., Gont, F., and D. Thaler, "Security and Privacy
Considerations for IPv6 Address Generation Mechanisms",
RFC 7721, DOI 10.17487/RFC7721, March 2016,
<http://www.rfc-editor.org/info/rfc7721>.
[RFC7819] Jiang, S., Krishnan, S., and T. Mrugalski, "Privacy
Considerations for DHCP", RFC 7819, DOI 10.17487/RFC7819,
April 2016, <http://www.rfc-editor.org/info/rfc7819>.
[RFC7824] Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy
Considerations for DHCPv6", RFC 7824,
DOI 10.17487/RFC7824, May 2016,
<http://www.rfc-editor.org/info/rfc7824>.
[WiFiRadioFingerprinting] [WiFiRadioFingerprinting]
Brik, V., Banerjee, S., Gruteser, M., and S. Oh, "Wireless Brik, V., Banerjee, S., Gruteser, M., and S. Oh, "Wireless
Device Identification with Radiometric Signatures", Device Identification with Radiometric Signatures",
September 2008, DOI 10.1.1.145.8873, September 2008,
<http://www.winlab.rutgers.edu/~gruteser/papers/ <http://citeseerx.ist.psu.edu/viewdoc/
brik_paradis.pdf>. summary?doi=10.1.1.145.8873>.
Acknowledgments
The inspiration for this document came from discussions in the
Perpass mailing list. Several people provided feedback on this
document, notably Noel Anderson, Brian Carpenter, Lorenzo Colitti,
Stephen Farrell, Nick Grifka, Tushar Gupta, Brian Haberman, Gabriel
Montenegro, Marcin Siodelski, Dave Thaler, Bernie Volz, and Jun Wu.
Authors' Addresses Authors' Addresses
Christian Huitema Christian Huitema
Microsoft Microsoft
Redmond, WA 98052 Redmond, WA 98052
U.S.A. United States
Email: huitema@microsoft.com Email: huitema@microsoft.com
Tomek Mrugalski Tomek Mrugalski
Internet Systems Consortium, Inc. Internet Systems Consortium, Inc.
950 Charter Street 950 Charter Street
Redwood City, CA 94063 Redwood City, CA 94063
USA United States
Email: tomasz.mrugalski@gmail.com Email: tomasz.mrugalski@gmail.com
Suresh Krishnan Suresh Krishnan
Ericsson Ericsson
8400 Decarie Blvd. 8400 Decarie Blvd.
Town of Mount Royal, QC Town of Mount Royal, QC
Canada Canada
Phone: +1 514 345 7900 x42871 Phone: +1 514 345 7900 x42871
 End of changes. 172 change blocks. 
723 lines changed or deleted 566 lines changed or added

This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/