draft-ietf-dhc-dhcp-privacy-05.txt   rfc7819.txt 
dhc S. Jiang Internet Engineering Task Force (IETF) S. Jiang
Internet-Draft Huawei Technologies Co., Ltd Request for Comments: 7819 Huawei Technologies Co., Ltd
Intended status: Informational S. Krishnan Category: Informational S. Krishnan
Expires: August 24, 2016 Ericsson ISSN: 2070-1721 Ericsson
T. Mrugalski T. Mrugalski
ISC ISC
February 21, 2016 April 2016
Privacy considerations for DHCP Privacy Considerations for DHCP
draft-ietf-dhc-dhcp-privacy-05
Abstract Abstract
DHCP is a protocol that is used to provide addressing and DHCP is a protocol that is used to provide addressing and
configuration information to IPv4 hosts. This document discusses the configuration information to IPv4 hosts. This document discusses the
various identifiers used by DHCP and the potential privacy issues. various identifiers used by DHCP and the potential privacy issues.
Status of This Memo Status of This Memo
This Internet-Draft is submitted in full conformance with the This document is not an Internet Standards Track specification; it is
provisions of BCP 78 and BCP 79. published for informational purposes.
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). Not all documents
approved by the IESG are a candidate for any level of Internet
Standard; see Section 2 of RFC 5741.
This Internet-Draft will expire on August 24, 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/rfc7819.
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 . . . . . . . . . . . . . . . . . . . . . . . . 2 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Requirements Language and Terminology . . . . . . . . . . . . 3 2. Requirements Language and Terminology . . . . . . . . . . . . 3
3. DHCP Options Carrying Identifiers . . . . . . . . . . . . . . 3 3. DHCP Options Carrying Identifiers . . . . . . . . . . . . . . 4
3.1. Client Identifier Option . . . . . . . . . . . . . . . . 4 3.1. Client Identifier Option . . . . . . . . . . . . . . . . 4
3.2. Address Fields & Options . . . . . . . . . . . . . . . . 4 3.2. Address Fields and Options . . . . . . . . . . . . . . . 4
3.3. Client FQDN Option . . . . . . . . . . . . . . . . . . . 5 3.3. Client FQDN Option . . . . . . . . . . . . . . . . . . . 5
3.4. Parameter Request List Option . . . . . . . . . . . . . . 5 3.4. Parameter Request List Option . . . . . . . . . . . . . . 5
3.5. Vendor Class and Vendor-Identifying Vendor Class Options 5 3.5. Vendor Class and Vendor-Identifying Vendor Class Options 5
3.6. Civic Location Option . . . . . . . . . . . . . . . . . . 5 3.6. Civic Location Option . . . . . . . . . . . . . . . . . . 6
3.7. Coordinate-Based Location Option . . . . . . . . . . . . 6 3.7. Coordinate-Based Location Option . . . . . . . . . . . . 6
3.8. Client System Architecture Type Option . . . . . . . . . 6 3.8. Client System Architecture Type Option . . . . . . . . . 6
3.9. Relay Agent Information Option and Sub-options . . . . . 6 3.9. Relay Agent Information Option and Suboptions . . . . . . 6
4. Existing Mechanisms That Affect Privacy . . . . . . . . . . . 7 4. Existing Mechanisms That Affect Privacy . . . . . . . . . . . 7
4.1. DNS Updates . . . . . . . . . . . . . . . . . . . . . . . 7 4.1. DNS Updates . . . . . . . . . . . . . . . . . . . . . . . 7
4.2. Allocation strategies . . . . . . . . . . . . . . . . . . 7 4.2. Allocation Strategies . . . . . . . . . . . . . . . . . . 7
5. Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5. Attacks . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1. Device type discovery . . . . . . . . . . . . . . . . . . 8 5.1. Device Type Discovery . . . . . . . . . . . . . . . . . . 9
5.2. Operating system discovery . . . . . . . . . . . . . . . 8 5.2. Operating System Discovery . . . . . . . . . . . . . . . 9
5.3. Finding location information . . . . . . . . . . . . . . 9 5.3. Finding Location Information . . . . . . . . . . . . . . 9
5.4. Finding previously visited networks . . . . . . . . . . . 9 5.4. Finding Previously Visited Networks . . . . . . . . . . . 9
5.5. Finding a stable identity . . . . . . . . . . . . . . . . 9 5.5. Finding a Stable Identity . . . . . . . . . . . . . . . . 9
5.6. Pervasive monitoring . . . . . . . . . . . . . . . . . . 9 5.6. Pervasive Monitoring . . . . . . . . . . . . . . . . . . 10
5.7. Finding client's IP address or hostname . . . . . . . . . 10 5.7. Finding Client's IP Address or Hostname . . . . . . . . . 10
5.8. Correlation of activities over time . . . . . . . . . . . 10 5.8. Correlation of Activities over Time . . . . . . . . . . . 10
5.9. Location tracking . . . . . . . . . . . . . . . . . . . . 10 5.9. Location Tracking . . . . . . . . . . . . . . . . . . . . 10
5.10. Leasequery & bulk leasequery . . . . . . . . . . . . . . 10 5.10. Leasequery and Bulk Leasequery . . . . . . . . . . . . . 11
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 11 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 12
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 8.1. Normative References . . . . . . . . . . . . . . . . . . 12
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 8.2. Informative References . . . . . . . . . . . . . . . . . 12
10.1. Normative References . . . . . . . . . . . . . . . . . . 11 Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . . 14
10.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14
1. Introduction 1. Introduction
Dynamic Host Configuration Protocol (DHCP) [RFC2131] is a protocol The Dynamic Host Configuration Protocol (DHCP) [RFC2131] is used to
that is used to provide addressing and configuration information to provide addressing and configuration information to IPv4 hosts. DHCP
IPv4 hosts. DHCP uses several identifiers that could become a source uses several identifiers that could become a source for gleaning
for gleaning information about the IPv4 host. This information may information about the IPv4 host. This information may include device
include device type, operating system information, location(s) that type, operating system information, location(s) that the device may
the device may have previously visited, etc. This document discusses have previously visited, etc. This document discusses the various
the various identifiers used by DHCP and the potential privacy issues identifiers used by DHCP and the potential privacy issues [RFC6973].
[RFC6973]. In particular, it also takes into consideration the In particular, it takes into consideration the problem of pervasive
problem of pervasive monitoring [RFC7258]. monitoring [RFC7258].
Future works may propose protocol changes to fix the privacy issues Future works may propose protocol changes to fix the privacy issues
that have been analyzed in this document. These changes are out of that have been analyzed in this document. Those changes are out of
scope for this document. scope for this document.
The primary focus of this document is around privacy considerations The primary focus of this document is around privacy considerations
for clients to support client mobility and connection to random for clients to support client mobility and connection to random
networks. The privacy of DHCP servers and relay agents are networks. The privacy of DHCP servers and relay agents is considered
considered less important as they are typically open for public less important as they are typically open for public services. And,
services. And, it is generally assumed that relay agent to server it is generally assumed that communication from relay agent to server
communication is protected from casual snooping, as that is protected from casual snooping, as that communication occurs in
communication occurs in the provider's backbone. Nevertheless, the the provider's backbone. Nevertheless, the topics involving relay
topics involving relay agents and servers are explored to some agents and servers are explored to some degree. However, future work
degree. However, future work may want to further explore privacy of may want to further explore the privacy of DHCP servers and relay
DHCP servers and relay agents. agents.
2. Requirements Language and Terminology 2. Requirements Language and Terminology
Naming convention from [RFC2131] and related is used throughout this Naming conventions from [RFC2131] and related documents are used
document. throughout this document.
In addition the following terminology is used: In addition, the following terminology is used:
Stable identifier - Any property disclosed by a DHCP client that Stable identifier - Any property disclosed by a DHCP client that
does not change over time or changes very infrequently and is does not change over time or changes very infrequently and is
unique for said client in a given context. Examples include unique for said client in a given context. Examples include
MAC address, client-id, and a hostname. Some identifiers may MAC address, client-id, and a hostname. Some identifiers may
be considered stable only under certain conditions, for be considered stable only under certain conditions; for
example one client implementation may keep its client-id example, one client implementation may keep its client-id
stored in stable storage while another may generate it on the stored in stable storage, while another may generate it on
fly and use a different one after each boot. Stable the fly and use a different one after each boot. Stable
identifiers may or may not be globally unique. identifiers may or may not be globally unique.
3. DHCP Options Carrying Identifiers 3. DHCP Options Carrying Identifiers
In DHCP, there are a few options that contain identification In DHCP, there are a few options that contain identification
information or that can be used to extract identification information information or that can be used to extract identification information
about the client. This section enumerates various options and the about the client. This section enumerates various options and the
identifiers conveyed in them, which can be used to disclose client identifiers that they convey and that can be used to disclose client
identification. They are targets of various attacks that are identification. They are targets of various attacks that are
analyzed in Section 5. analyzed in Section 5.
3.1. Client Identifier Option 3.1. Client Identifier Option
The Client Identifier Option [RFC2131] is used to pass an explicit The Client Identifier option [RFC2131] is used to pass an explicit
client identifier to a DHCP server. client identifier to a DHCP server.
The client identifier is an opaque key, which must be unique to that The client identifier is an opaque key that must be unique to that
client within the subnet to which the client is attached. It client within the subnet to which the client is attached. It
typically remains stable after it has been initially generated. It typically remains stable after it has been initially generated. It
may contain a hardware address, identical to the contents of the may contain a hardware address, identical to the contents of the
'chaddr' field, or another type of identifier, such as a DNS name. 'chaddr' field, or another type of identifier, such as a DNS name.
[RFC3315] in Section 9.2 specifies DUID-LLT (Link-layer + time) as Section 9.2 of [RFC3315] specifies DUID-LLT (Link-layer plus time) as
the recommended DUID (DHCP Unique Identifier) type. [RFC4361], the recommended DUID (DHCP Unique Identifier) type in DHCPv6.
Section 6.1 introduces this concept to DHCP. Those two documents Section 6.1 of [RFC4361] introduces this concept to DHCP. Those two
recommend that client identifiers be generated by using the permanent documents recommend that client identifiers be generated by using the
link-layer address of the network interface that the client is trying permanent link-layer address of the network interface that the client
to configure. [RFC4361] updates the recommendation of Client is trying to configure. [RFC4361] updates the recommendation for a
Identifiers to be "consists of a type field whose value is normally Client Identifier as follows: "[it] consists of a type field whose
255, followed by a four-byte IA_ID field, followed by the DUID for value is normally 255, followed by a four-byte IA_ID field, followed
the client as defined in RFC 3315, section 9". This does not change by the DUID for the client as defined in RFC 3315, section 9". This
the lifecycle of the Client Identifiers. Clients are expected to does not change the lifecycle of client identifiers. Clients are
generate their Client Identifiers once (during first operation) and expected to generate their client identifiers once (during first
store it in non-volatile storage or use the same deterministic operation) and store them in non-volatile storage or use the same
algorithm to generate the same Client Identifier values again. deterministic algorithm to generate the same client identifier values
again.
This means that most implementations will use the available link- This means that typically an implementation will use the available
layer address during its first boot. Even if the administrator link-layer address during its first boot. Even if the administrator
enables link-layer address randomization, it is likely that it was enables link-layer address randomization, it is likely that it was
not yet enabled during the first device boot. Hence the original, not yet enabled during the first device boot. Hence the original,
unobfuscated link-layer address will likely end up being announced as unobfuscated link-layer address will likely end up being announced as
the client identifier, even if the link-layer address has changed (or the client identifier, even if the link-layer address has changed (or
even if it is being changed on a periodic basis). The exposure of even if it is being changed on a periodic basis). The exposure of
the original link-layer address in the client identifier will also the original link-layer address in the client identifier will also
undermine other privacy extensions such as [RFC4941]. undermine other privacy extensions such as [RFC4941].
3.2. Address Fields & Options 3.2. Address Fields and Options
The 'yiaddr' field [RFC2131] in DHCP message is used to convey an The 'yiaddr' field [RFC2131] in a DHCP message is used to convey an
allocated address from the server to the client. allocated address from the server to the client.
The DHCP specification [RFC2131] provides a way to specify the client The DHCP specification [RFC2131] provides a way to specify the client
link-layer address in the DHCP message header. A DHCP message header link-layer address in the DHCP message header. A DHCP message header
has 'htype' and 'chaddr' fields to specify the client link-layer has 'htype' and 'chaddr' fields to specify the client link-layer
address type and the link-layer address, respectively. The 'chaddr' address type and the link-layer address, respectively. The 'chaddr'
field is used both as a hardware address for transmission of reply field is used both as a hardware address for transmission of reply
messages and as a client identifier. messages and as a client identifier.
The 'requested IP address' option [RFC2131] is used by a client to The 'requested IP address' option [RFC2131] is used by a client to
suggest that a particular IP address be assigned. suggest that a particular IP address be assigned.
3.3. Client FQDN Option 3.3. Client FQDN Option
The Client Fully Qualified Domain Name (FQDN) option [RFC4702] is The Client Fully Qualified Domain Name (FQDN) option [RFC4702] is
used by DHCP clients and servers to exchange information about the used by DHCP clients and servers to exchange information about the
client's fully qualified domain name and about who has the client's FQDN and about who has the responsibility for updating the
responsibility for updating the DNS with the associated A and PTR DNS with the associated A and PTR RRs.
RRs.
A client can use this option to convey all or part of its domain name A client can use this option to convey all or part of its domain name
to a DHCP server for the IP-address-to-FQDN mapping. In most case a to a DHCP server for the IP-address-to-FQDN mapping. In most cases,
client sends its hostname as a hint for the server. The DHCP server a client sends its hostname as a hint for the server. The DHCP
MAY be configured to modify the supplied name or to substitute a server may be configured to modify the supplied name or to substitute
different name. The server should send its notion of the complete a different name. The server should send its notion of the complete
FQDN for the client in the Domain Name field. FQDN for the client in the Domain Name field.
3.4. Parameter Request List Option 3.4. Parameter Request List Option
The Parameter Request List option [RFC2131] is used to inform the The Parameter Request List option [RFC2131] is used to inform the
server about options the client wants the server to send to the server about options the client wants the server to send to the
client. The content of a Parameter Request List option are the client. The contents of a Parameter Request List option are the
option codes for options requested by the client. option codes of the options requested by the client.
3.5. Vendor Class and Vendor-Identifying Vendor Class Options 3.5. Vendor Class and Vendor-Identifying Vendor Class Options
The Vendor Class option [RFC2131], the Vendor-Identifying Vendor The Vendor Class option [RFC2131], the Vendor-Identifying Vendor
Class option, and the Vendor-Identifying Vendor Information option Class option, and the Vendor-Identifying Vendor Information option
[RFC3925] are used by the DHCP client to identify the vendor that [RFC3925] are used by the DHCP client to identify the vendor that
manufactured the hardware on which the client is running. manufactured the hardware on which the client is running.
The information contained in the data area of this option is The information contained in the data area of this option is
contained in one or more opaque fields that identify the details of contained in one or more opaque fields that identify the details of
the hardware configuration of the host on which the client is the hardware configuration of the host on which the client is running
running, or of industry consortium compliance, for example, the or of industry consortium compliance -- for example, the version of
version of the operating system the client is running or the amount the operating system the client is running or the amount of memory
of memory installed on the client. installed on the client.
3.6. Civic Location Option 3.6. Civic Location Option
DHCP servers use the Civic Location Option [RFC4776] to deliver DHCP servers use the Civic Location Option [RFC4776] to deliver
location information (the civic and postal addresses) to DHCP location information (the civic and postal addresses) to DHCP
clients. It may refer to three locations: the location of the DHCP clients. It may refer to three locations: the location of the DHCP
server, the location of the network element believed to be closest to server, the location of the network element believed to be closest to
the client, or the location of the client, identified by the "what" the client, or the location of the client, identified by the "what"
element within the option. element within the option.
skipping to change at page 6, line 20 skipping to change at page 6, line 29
location. location.
3.8. Client System Architecture Type Option 3.8. Client System Architecture Type Option
The Client System Architecture Type Option [RFC4578] is used by a The Client System Architecture Type Option [RFC4578] is used by a
DHCP client to send a list of supported architecture types to the DHCP client to send a list of supported architecture types to the
DHCP server. It is used by clients that must be booted using the DHCP server. It is used by clients that must be booted using the
network rather than from local storage, so the server can decide network rather than from local storage, so the server can decide
which boot file should be provided to the client. which boot file should be provided to the client.
3.9. Relay Agent Information Option and Sub-options 3.9. Relay Agent Information Option and Suboptions
A DHCP relay agent includes a Relay Agent Information option[RFC3046] A DHCP relay agent includes a Relay Agent Information option[RFC3046]
to identify the remote host end of the circuit. It contains a to identify the remote host end of the circuit. It contains a
"circuit ID" sub-option for the incoming circuit, which is an agent- "circuit ID" suboption for the incoming circuit, which is an agent-
local identifier of the circuit from which a DHCP client-to-server local identifier of the circuit from which a DHCP client-to-server
packet was received, and a "remote ID" sub-option which provides a packet was received, and a "remote ID" suboption that provides a
trusted identifier for the remote high-speed modem. trusted identifier for the remote high-speed modem.
Possible encoding of "circuit ID" sub-option includes: router Possible encoding of the "circuit ID" suboption includes: router
interface number, switching hub port number, remote access server interface number, switching hub port number, remote access server
port number, frame relay DLCI, ATM virtual circuit number, cable data port number, frame relay Data Link Connection Identifier (DLCI), ATM
virtual circuit number, etc. virtual circuit number, cable data virtual circuit number, etc.
Possible encoding of the "remote ID" sub-option includes: a "caller Possible encoding of the "remote ID" suboption includes: a "caller
ID" telephone number for dial-up connection, a "user name" prompted ID" telephone number for dial-up connection, a "user name" prompted
for by a remote access server, a remote caller ATM address, a "modem for by a remote access server, a remote caller's ATM address, a
ID" of a cable data modem, the remote IP address of a point-to-point "modem ID" of a cable data modem, the remote IP address of a point-
link, a remote X.25 address for X.25 connections, etc. to-point link, a remote X.25 address for X.25 connections, etc.
The link-selection sub-option [RFC3527] is used by any DHCP relay The link-selection suboption [RFC3527] is used by any DHCP relay
agent that desires to specify a subnet/link for a DHCP client request agent that desires to specify a subnet/link for a DHCP client request
that it is relaying but needs the subnet/link specification to be that it is relaying but needs the subnet/link specification to be
different from the IP address the DHCP server should use when different from the IP address the DHCP server should use when
communicating with the relay agent. It contains an IP address, which communicating with the relay agent. It contains an IP address that
can identify the client's subnet/link. Also, assuming network can identify the client's subnet/link. Also, assuming there is
topology knowledge, it also reveals client location. knowledge of the network topology, it also reveals client location.
A DHCP relay includes a Subscriber-ID option [RFC3993] to associate A DHCP relay includes a Subscriber-ID option [RFC3993] to associate
some provider-specific information with clients' DHCP messages that some provider-specific information with clients' DHCP messages that
is independent of the physical network configuration through which is independent of the physical network configuration through which
the subscriber is connected. The "subscriber-id" assigned by the the subscriber is connected. The "subscriber-id" assigned by the
provider is intended to be stable as customers connect through provider is intended to be stable as customers connect through
different paths, and as network changes occur. The Subscriber-ID is different paths and as network changes occur. The Subscriber-ID is
an ASCII string, which is assigned and configured by the network an ASCII string that is assigned and configured by the network
provider. provider.
4. Existing Mechanisms That Affect Privacy 4. Existing Mechanisms That Affect Privacy
This section describes deployed DHCP mechanisms that affect privacy. This section describes deployed DHCP mechanisms that affect privacy.
4.1. DNS Updates 4.1. DNS Updates
The Client FQDN (Fully Qualified Domain Name) Option [RFC4702] used The Client FQDN (Fully Qualified Domain Name) Option [RFC4702] used
along with DNS Updates [RFC2136] defines a mechanism that allows both along with DNS Updates [RFC2136] defines a mechanism that allows both
skipping to change at page 7, line 27 skipping to change at page 7, line 36
clients. Both forward (A) and reverse (PTR) resource records can be clients. Both forward (A) and reverse (PTR) resource records can be
updated. This allows other nodes to conveniently refer to a host, updated. This allows other nodes to conveniently refer to a host,
despite the fact that its IP address may be changing. despite the fact that its IP address may be changing.
This mechanism exposes two important pieces of information: current This mechanism exposes two important pieces of information: current
address (which can be mapped to current location) and client's address (which can be mapped to current location) and client's
hostname. The stable hostname can then be used to correlate the hostname. The stable hostname can then be used to correlate the
client across different network attachments even when its IP client across different network attachments even when its IP
addresses keep changing. addresses keep changing.
4.2. Allocation strategies 4.2. Allocation Strategies
A DHCP server running in typical, stateful mode is given a task of A DHCP server running in typical, stateful mode is given a task of
managing one or more pools of IP address. When a client requests an managing one or more pools of IP addresses. When a client requests
address, the server must pick an address out of a configured pool. an address, the server must pick an address out of a configured pool.
Depending on the server's implementation, various allocation Depending on the server's implementation, various allocation
strategies are possible. Choices in this regard may have privacy strategies are possible. Choices in this regard may have privacy
implications. Note that the constraints in DHCP and DHCPv6 are implications. Note that the constraints in DHCP and DHCPv6 are
radically different, but servers that allow allocation strategy radically different, but servers that allow allocation strategy
configuration may allow configuring them in both DHCP and DHCPv6. configuration may allow configuring them in both DHCP and DHCPv6.
Not every allocation strategy is equally suitable for DHCP and for Not every allocation strategy is equally suitable for DHCP and for
DHCPv6. DHCPv6.
Iterative allocation - a server may choose to allocate addresses one Iterative allocation: A server may choose to allocate addresses one
by one. That strategy has the benefit of being very fast, thus being by one. That strategy has the benefit of being very fast, thus
favored in deployments that prefer performance. However, it makes being favored in deployments that prefer performance. However, it
the allocated addresses very predictable. Also, since the addresses makes the allocated addresses very predictable. Also, since the
allocated tend to be clustered at the beginning of an available pool, addresses allocated tend to be clustered at the beginning of an
it makes scanning attacks much easier. available pool, it makes scanning attacks much easier.
Identifier-based allocation - some server implementations may choose Identifier-based allocation: Some server implementations may choose
to allocate an address that is based on one of the available to allocate an address that is based on one of the available
identifiers, e.g., client identifier or MAC address. It is also identifiers, e.g., client identifier or MAC address. It is also
convenient, as a returning client is very likely to get the same convenient, as a returning client is very likely to get the same
address. Those properties are convenient for system administrators, address. Those properties are convenient for system
so DHCP server implementers are often requested to implement it. The administrators, so DHCP server implementers are often requested to
downside of such allocation is that the client has a very stable IP implement it. The downside of such an allocation is that the
address. That means that correlation of activities over time, client has a very stable IP address. That means that correlation
location tracking, address scanning and OS/vendor discovery apply. of activities over time, location tracking, address scanning, and
This is certainly an issue in DHCPv6, but due to a much smaller OS/vendor discovery apply. This is certainly an issue in DHCPv6,
address space is almost never a problem in DHCP. but due to a much smaller address space it is almost never a
problem in DHCP.
Hash allocation - it's an extension of identifier-based allocation. Hash allocation: This is an extension of identifier-based
Instead of using the identifier directly, it is hashed first. If the allocation. Instead of using the identifier directly, it is
hash is implemented correctly, it removes the flaw of disclosing the hashed first. If the hash is implemented correctly, it removes
identifier, a property that eliminates susceptibility to address the flaw of disclosing the identifier, a property that eliminates
scanning and OS/vendor discovery. If the hash is poorly implemented susceptibility to address scanning and OS/vendor discovery. If
(e.g., it can be reversed), it introduces no improvement over the hash is poorly implemented (e.g., it can be reversed), it
identifier-based allocation. introduces no improvement over identifier-based allocation.
Random allocation - a server can pick a resource randomly out of an Random allocation: A server can pick a resource randomly out of an
available pool. This allocation scheme essentially prevents available pool. This allocation scheme essentially prevents
returning clients from getting the same address again. On the other returning clients from getting the same address again. On the
hand, it is beneficial from a privacy perspective as addresses other hand, it is beneficial from a privacy perspective as
generated that way are not susceptible to correlation attacks, OS/ addresses generated that way are not susceptible to correlation
vendor discovery attacks, or identity discovery attacks. Note that attacks, OS/vendor discovery attacks, or identity discovery
even though the address itself may be resilient to a given attack, attacks. Note that even though the address itself may be
the client may still be susceptible if additional information is resilient to a given attack, the client may still be susceptible
disclosed other way, e.g., the client's address may be randomized, if additional information is disclosed in another way, e.g., the
but it still can leak its MAC address in the client-id option. client's address may be randomized, but it still can leak its MAC
address in the Client Identifier option.
Other allocation strategies may be implemented. Other allocation strategies may be implemented.
Given the limited size of most IPv4 public address pools, allocation Given the limited size of most IPv4 public address pools, allocation
mechanisms in IPv4 may not provide much privacy protection or leak mechanisms in IPv4 may not provide much privacy protection or leak
much useful information, if misused. much useful information, if misused.
5. Attacks 5. Attacks
5.1. Device type discovery 5.1. Device Type Discovery
The type of device used by the client can be guessed by the attacker The type of device used by the client can be guessed by the attacker
using the Vendor Class Option, the 'chaddr' field, and by parsing the using the Vendor Class Option, the 'chaddr' field, and by parsing the
Client ID Option. All of those options may contain an Client ID Option. All of those options may contain an
Organizationally Unique Identifier (OUI) that represents the device's Organizationally Unique Identifier (OUI) that represents the device's
vendor. That knowledge can be used for device-specific vulnerability vendor. That knowledge can be used for device-specific vulnerability
exploitation attacks. exploitation attacks.
5.2. Operating system discovery 5.2. Operating System Discovery
The operating system running on a client can be guessed using the The operating system running on a client can be guessed using the
Vendor Class option, the Client System Architecture Type option, or Vendor Class option, the Client System Architecture Type option, or
by using fingerprinting techniques on the combination of options by using fingerprinting techniques on the combination of options
requested using the Parameter Request List option. requested using the Parameter Request List option.
5.3. Finding location information 5.3. Finding Location Information
The location information can be obtained by the attacker by many The location information can be obtained by the attacker by many
means. The most direct way to obtain this information is by looking means. The most direct way to obtain this information is by looking
into a message originating from the server that contains the Civic into a message originating from the server that contains the Civic
Location, GeoConf, or GeoLoc options. It can also be indirectly Location, GeoConf, or GeoLoc options. It can also be indirectly
inferred using the Relay Agent Information option, with the remote ID inferred using the Relay Agent Information option, with the remote ID
sub-option, the circuit ID option (e.g., if an access circuit on an suboption, the circuit ID option (e.g., if an access circuit on an
Access Node corresponds to a civic location), or the Subscriber ID Access Node corresponds to a civic location), or the Subscriber ID
Option (if the attacker has access to subscriber info). Option (if the attacker has access to subscriber information).
5.4. Finding previously visited networks 5.4. Finding Previously Visited Networks
When DHCP clients connect to a network, they attempt to obtain the When DHCP clients connect to a network, they attempt to obtain the
same address they had used before they attached to the network. They same address they had used before they attached to the network. They
do this by putting the previously assigned address in the requested do this by putting the previously assigned address in the requested
IP address option. By observing these addresses, an attacker can IP address option. By observing these addresses, an attacker can
identify the network the client had previously visited. identify the network the client had previously visited.
5.5. Finding a stable identity 5.5. Finding a Stable Identity
An attacker might use a stable identity gleaned from DHCP messages to An attacker might use a stable identity gleaned from DHCP messages to
correlate activities of a given client on unrelated networks. The correlate activities of a given client on unrelated networks. The
Client FQDN option, the Subscriber ID option, and the Client ID Client FQDN option, the Subscriber ID option, and the Client ID
option can serve as long-lived identifiers of DHCP clients. The option can serve as long-lived identifiers of DHCP clients. The
Client FQDN option can also provide an identity that can easily be Client FQDN option can also provide an identity that can easily be
correlated with web server activity logs. correlated with web server activity logs.
5.6. Pervasive monitoring 5.6. Pervasive Monitoring
Pervasive Monitoring [RFC7258] is widespread (and often covert) Pervasive monitoring [RFC7258] is widespread (and often covert)
surveillance through intrusive gathering of protocol artefacts, surveillance through intrusive gathering of protocol artifacts,
including application content, or protocol metadata such as headers. including application content, or protocol metadata such as headers.
An operator who controls a non-trivial number of access points or An operator who controls a nontrivial number of access points or
network segments, may use obtained information about a single client network segments may use obtained information about a single client
and observe the client's habits. Although users may not expect true and observe the client's habits. Although users may not expect true
privacy from their operators, the information that is set up to be privacy from their operators, the information that is set up to be
monitored by users' service operators may also be gathered by an monitored by users' service operators may also be gathered by an
adversary who monitors a wide range of networks and develops adversary who monitors a wide range of networks and develops
correlations from that information. correlations from that information.
5.7. Finding client's IP address or hostname 5.7. Finding Client's IP Address or Hostname
Many DHCP deployments use DNS Updates [RFC4702] that put a client's Many DHCP deployments use DNS Updates [RFC4702] that put a client's
information (current IP address, client's hostname) into the DNS, information (current IP address, client's hostname) into the DNS,
where it is easily accessible by anyone interested. Client ID is where it is easily accessible by anyone interested. Client ID is
also disclosed, albeit in not easily accessible form (SHA-256 digest also disclosed, albeit not in an easily accessible form (SHA-256
of the client-id). As SHA-256 is considered irreversible, DHCP digest of the client-id). As SHA-256 is considered irreversible,
client ID can't be converted back to client-id. However, SHA-256 DHCP client ID can't be converted back to client-id. However,
digest can be used as an unique identifier that is accessible by any SHA-256 digest can be used as a unique identifier that is accessible
host. by any host.
5.8. Correlation of activities over time 5.8. Correlation of Activities over Time
As with other identifiers, an IP address can be used to correlate the As with other identifiers, an IP address can be used to correlate the
activities of a host for at least as long as the lifetime of the activities of a host for at least as long as the lifetime of the
address. If that address was generated from some other, stable address. If that address was generated from some other, stable
identifier and that generation scheme can be deduced by an attacker, identifier and that generation scheme can be deduced by an attacker,
the duration of the correlation attack extends to that of the the duration of the correlation attack extends to that of the
identifier. In many cases, its lifetime is equal to the lifetime of identifier. In many cases, its lifetime is equal to the lifetime of
the device itself. the device itself.
5.9. Location tracking 5.9. Location Tracking
If a stable identifier is used for assigning an address and such If a stable identifier is used for assigning an address and such
mapping is discovered by an attacker, it can be used for tracking a mapping is discovered by an attacker, it can be used for tracking a
user. In particular both passive (a service that the client connects user. In particular, both passive (a service that the client
to can log the client's address and draw conclusions regarding its connects to can log the client's address and draw conclusions
location and movement patterns based on the addresses it is regarding its location and movement patterns based on the addresses
connecting from) and active (an attacker can send ICMP echo requests it is connecting from) and active (an attacker can send ICMP echo
or other probe packets to networks of suspected client locations) requests or other probe packets to networks of suspected client
methods can be used. To give specific example, by accessing a social locations) methods can be used. To give a specific example, by
portal from tomek-laptop.coffee.somecity.com.example, tomek- accessing a social portal from
laptop.mycompany.com.example and tomek-laptop.myisp.example.com, the tomek-laptop.coffee.somecity.com.example,
portal administrator can draw conclusions about tomek-laptop's tomek-laptop.mycompany.com.example, and
owner's current location and his habits. tomek-laptop.myisp.example.com, the portal administrator can draw
conclusions about tomek-laptop's owner's current location and his
habits.
5.10. Leasequery & bulk leasequery 5.10. Leasequery and Bulk Leasequery
Attackers may pretend to be an access concentrator, either as a DHCP Attackers may pretend to be an access concentrator, either as a DHCP
relay agent or as a DHCP client, to obtain location information relay agent or as a DHCP client, to obtain location information
directly from the DHCP server(s) using the DHCP leasequery [RFC4388] directly from the DHCP server(s) using the DHCP leasequery [RFC4388]
mechanism. mechanism.
Location information is information needed by the access concentrator Location information is information needed by the access concentrator
to forward traffic to a broadband-accessible host. This information to forward traffic to a broadband-accessible host. This information
includes knowledge of the host hardware address, the port or virtual includes knowledge of the host hardware address, the port or virtual
circuit that leads to the host, and/or the hardware address of the circuit that leads to the host, and/or the hardware address of the
intervening subscriber modem. intervening subscriber modem.
Furthermore, the attackers may use the DHCP bulk leasequery [RFC6926] Furthermore, the attackers may use the DHCP bulk leasequery [RFC6926]
mechanism to obtain bulk information about DHCP bindings, even mechanism to obtain bulk information about DHCP bindings, even
without knowing the target bindings. without knowing the target bindings.
Additionally, active leasequery [RFC7724] is a mechanism for Additionally, active leasequery [RFC7724] is a mechanism for
subscribing to DHCP lease update changes in near real-time. The subscribing to DHCP lease update changes in near real-time. The
intent of this mechanism is to update an operator's database, but if intent of this mechanism is to update an operator's database;
misused, an attacker could defeat the server's authentication however, if the mechanism is misused, an attacker could defeat the
mechanisms and subscribe to all updates. He then could continue server's authentication mechanisms and subscribe to all updates. He
receiving updates, without any need for local presence. then could continue receiving updates, without any need for local
presence.
6. Security Considerations 6. Security Considerations
In current practice, the client privacy and client authentication are In current practice, the client privacy and client authentication are
mutually exclusive. The client authentication procedure reveals mutually exclusive. The client authentication procedure reveals
additional client information in their certificates/identifiers. additional client information in the certificates and identifiers.
Full privacy for the clients may mean the clients are also anonymous Full privacy for the clients may mean the clients are also anonymous
to the server and the network. to the server and the network.
7. Privacy Considerations 7. Privacy Considerations
This document in its entirety discusses privacy considerations in This document in its entirety discusses privacy considerations in
DHCP. As such, no dedicated discussion is needed. DHCP. As such, no dedicated discussion is needed.
8. IANA Considerations 8. References
This draft does not request any IANA action.
9. Acknowledgements
The authors would like to thank the valuable comments made by Stephen
Farrell, Ted Lemon, Ines Robles, Russ White, Christian Huitema,
Bernie Volz, Jinmei Tatuya, Marcin Siodelski, Christian Schaefer,
Robert Sparks, Peter Yee, and other members of DHC WG.
This document was produced using the xml2rfc tool [RFC7749].
10. References
10.1. Normative References 8.1. Normative References
[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>.
[RFC2136] Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound, [RFC2136] Vixie, P., Ed., Thomson, S., Rekhter, Y., and J. Bound,
"Dynamic Updates in the Domain Name System (DNS UPDATE)", "Dynamic Updates in the Domain Name System (DNS UPDATE)",
RFC 2136, DOI 10.17487/RFC2136, April 1997, RFC 2136, DOI 10.17487/RFC2136, April 1997,
<http://www.rfc-editor.org/info/rfc2136>. <http://www.rfc-editor.org/info/rfc2136>.
[RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J., [RFC6973] Cooper, A., Tschofenig, H., Aboba, B., Peterson, J.,
Morris, J., Hansen, M., and R. Smith, "Privacy Morris, J., Hansen, M., and R. Smith, "Privacy
Considerations for Internet Protocols", RFC 6973, Considerations for Internet Protocols", RFC 6973,
DOI 10.17487/RFC6973, July 2013, DOI 10.17487/RFC6973, July 2013,
<http://www.rfc-editor.org/info/rfc6973>. <http://www.rfc-editor.org/info/rfc6973>.
[RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an [RFC7258] Farrell, S. and H. Tschofenig, "Pervasive Monitoring Is an
Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May Attack", BCP 188, RFC 7258, DOI 10.17487/RFC7258, May
2014, <http://www.rfc-editor.org/info/rfc7258>. 2014, <http://www.rfc-editor.org/info/rfc7258>.
10.2. Informative References 8.2. Informative References
[RFC3046] Patrick, M., "DHCP Relay Agent Information Option", [RFC3046] Patrick, M., "DHCP Relay Agent Information Option",
RFC 3046, DOI 10.17487/RFC3046, January 2001, RFC 3046, DOI 10.17487/RFC3046, January 2001,
<http://www.rfc-editor.org/info/rfc3046>. <http://www.rfc-editor.org/info/rfc3046>.
[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, July
2003, <http://www.rfc-editor.org/info/rfc3315>. 2003, <http://www.rfc-editor.org/info/rfc3315>.
skipping to change at page 13, line 48 skipping to change at page 14, line 14
[RFC6926] Kinnear, K., Stapp, M., Desetti, R., Joshi, B., Russell, [RFC6926] Kinnear, K., Stapp, M., Desetti, R., Joshi, B., Russell,
N., Kurapati, P., and B. Volz, "DHCPv4 Bulk Leasequery", N., Kurapati, P., and B. Volz, "DHCPv4 Bulk Leasequery",
RFC 6926, DOI 10.17487/RFC6926, April 2013, RFC 6926, DOI 10.17487/RFC6926, April 2013,
<http://www.rfc-editor.org/info/rfc6926>. <http://www.rfc-editor.org/info/rfc6926>.
[RFC7724] Kinnear, K., Stapp, M., Volz, B., and N. Russell, "Active [RFC7724] Kinnear, K., Stapp, M., Volz, B., and N. Russell, "Active
DHCPv4 Lease Query", RFC 7724, DOI 10.17487/RFC7724, DHCPv4 Lease Query", RFC 7724, DOI 10.17487/RFC7724,
December 2015, <http://www.rfc-editor.org/info/rfc7724>. December 2015, <http://www.rfc-editor.org/info/rfc7724>.
[RFC7749] Reschke, J., "The "xml2rfc" Version 2 Vocabulary", Acknowledgements
RFC 7749, DOI 10.17487/RFC7749, February 2016,
<http://www.rfc-editor.org/info/rfc7749>. The authors would like to thank the valuable comments made by Stephen
Farrell, Ted Lemon, Ines Robles, Russ White, Christian Huitema,
Bernie Volz, Jinmei Tatuya, Marcin Siodelski, Christian Schaefer,
Robert Sparks, Peter Yee, and other members of DHC WG.
Authors' Addresses Authors' Addresses
Sheng Jiang Sheng Jiang
Huawei Technologies Co., Ltd Huawei Technologies Co., Ltd
Q14, Huawei Campus, No.156 Beiqing Road Q14, Huawei Campus, No.156 Beiqing Road
Hai-Dian District, Beijing, 100095 Hai-Dian District, Beijing 100095
P.R. China China
Email: jiangsheng@huawei.com Email: jiangsheng@huawei.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
Email: suresh.krishnan@ericsson.com Email: suresh.krishnan@ericsson.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
 End of changes. 70 change blocks. 
210 lines changed or deleted 202 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/