draft-ietf-dhc-dhcp-privacy-03.txt   draft-ietf-dhc-dhcp-privacy-04.txt 
dhc S. Jiang dhc S. Jiang
Internet-Draft Huawei Technologies Co., Ltd Internet-Draft Huawei Technologies Co., Ltd
Intended status: Informational S. Krishnan Intended status: Informational S. Krishnan
Expires: July 21, 2016 Ericsson Expires: August 17, 2016 Ericsson
T. Mrugalski T. Mrugalski
ISC ISC
January 18, 2016 February 14, 2016
Privacy considerations for DHCPv4 Privacy considerations for DHCP
draft-ietf-dhc-dhcp-privacy-03 draft-ietf-dhc-dhcp-privacy-04
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 Internet-Draft is submitted in full conformance with the
skipping to change at page 1, line 35 skipping to change at page 1, line 35
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet- working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/. Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
This Internet-Draft will expire on July 21, 2016. This Internet-Draft will expire on August 17, 2016.
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
skipping to change at page 2, line 26 skipping to change at page 2, line 26
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 . . . . . . . . . . . . . . . . . . 5
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 Sub-options . . . . . 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 . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
5.1. Device type discovery . . . . . . . . . . . . . . . . . . 8 5.1. Device type discovery . . . . . . . . . . . . . . . . . . 8
5.2. Operating system discovery . . . . . . . . . . . . . . . 9 5.2. Operating system discovery . . . . . . . . . . . . . . . 8
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 . . . . . . . . . . . . . . . . . . 9
5.7. Finding client's IP address or hostname . . . . . . . . . 10 5.7. Finding client's IP address or hostname . . . . . . . . . 9
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 & bulk leasequery . . . . . . . . . . . . . . 10
6. Security Considerations . . . . . . . . . . . . . . . . . . . 11 6. Security Considerations . . . . . . . . . . . . . . . . . . . 11
7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 11 7. Privacy Considerations . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 9. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 10. References . . . . . . . . . . . . . . . . . . . . . . . . . 11
10.1. Normative References . . . . . . . . . . . . . . . . . . 11 10.1. Normative References . . . . . . . . . . . . . . . . . . 11
10.2. Informative References . . . . . . . . . . . . . . . . . 12 10.2. Informative References . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13
1. Introduction 1. Introduction
Dynamic Host Configuration Protocol (DHCP) [RFC2131] is a protocol Dynamic Host Configuration Protocol (DHCP) [RFC2131] is a protocol
that is used to provide addressing and configuration information to that is used to provide addressing and configuration information to
IPv4 hosts. The DHCP protocol uses several identifiers that could IPv4 hosts. DHCP uses several identifiers that could become a source
become a source for gleaning information about the IPv4 host. This for gleaning information about the IPv4 host. This information may
information may include device type, operating system information, include device type, operating system information, location(s) that
location(s) that the device may have previously visited, etc. This the device may have previously visited, etc. This document discusses
document discusses the various identifiers used by DHCP and the the various identifiers used by DHCP and the potential privacy issues
potential privacy issues [RFC6973]. In particular, it also takes [RFC6973]. In particular, it also takes into consideration the
into consideration the problem of pervasive monitoring [RFC7258]. problem of pervasive 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. It is out of scope for that have been analyzed in this document. These changes are out of
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 are
considered less important as they are typically open for public considered less important as they are typically open for public
services. And, it is generally assumed that relay agent to server services. And, it is generally assumed that relay agent to server
communication is protected from casual snooping, as that communication is protected from casual snooping, as that
communication occurs in the provider's backbone. Nevertheless, the communication occurs in the provider's backbone. Nevertheless, the
topics involving relay agents and servers are explored to some topics involving relay agents and servers are explored to some
degree. However, future work may want to further explore privacy of degree. However, future work may want to further explore privacy of
skipping to change at page 3, line 36 skipping to change at page 3, line 36
"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]. When these document are to be interpreted as described in [RFC2119]. When these
words are not in ALL CAPS (such as "should" or "Should"), they have words are not in ALL CAPS (such as "should" or "Should"), they have
their usual English meanings, and are not to be interpreted as their usual English meanings, and are not to be interpreted as
[RFC2119] key words. [RFC2119] key words.
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 may unique for said client in a given context. Examples include
include MAC address, client-id or a hostname. Some MAC address, client-id, and a hostname. Some identifiers may
identifiers may be considered stable only under certain be considered stable only under certain conditions, for
conditions, for example one client implementation may keep example one client implementation may keep its client-id
its client-id stored in stable storage while other may stored in stable storage while another may generate it on the
generate it on the fly and use a different one after each fly and use a different one after each boot. Stable
boot. Stable identifier 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 which contain identification In DHCP, there are a few options that contain identification
information or can be used to extract the identification information information or that can be used to extract identification information
about the client. This section enumerates various options and about the client. This section enumerates various options and the
identifiers conveyed in them, which can be used to disclose client identifiers conveyed in them, which can be used to disclose client
identification. They are targets of various attacks that would be 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, which 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 [RFC3315] in Section 9.2 specifies DUID-LLT (Link-layer + time) as
the recommended DUID (DHCP Unique Identifier) type. [RFC4361], the recommended DUID (DHCP Unique Identifier) type. [RFC4361],
Section 6.1 introduces this concept to DHCPv4. Those two document Section 6.1 introduces this concept to DHCP. Those two documents
recommend that client identifiers be generated by using the permanent recommend that client identifiers be generated by using the permanent
link-layer address of the network interface that the client is trying link-layer address of the network interface that the client is trying
to configure. [RFC4361] updates the recommendation of Client to configure. [RFC4361] updates the recommendation of Client
Identifiers to be "consists of a type field whose value is normally Identifiers to be "consists of a type field whose value is normally
255, followed by a four-byte IA_ID field, followed by the DUID for 255, followed by a four-byte IA_ID field, followed by the DUID for
the client as defined in RFC 3315, section 9". This does not change the client as defined in RFC 3315, section 9". This does not change
the lifecycle of the Client Identifiers. Clients are expected to the lifecycle of the Client Identifiers. Clients are expected to
generate their Client Identifiers once (during first operation) and generate their Client Identifiers once (during first operation) and
store it in a non-volatile storage or use the same deterministic store it in non-volatile storage or use the same deterministic
algorithm to generate the same Client Identifier values again. algorithm to generate the same Client Identifier values again.
This means that most implementations will use the available link- This means that most implementations will use the available link-
layer address during its first boot. Even if the administrator 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
disabled 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
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 being changed on a periodic basis). The exposure of the even if it is being changed on a periodic basis). The exposure of
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 & Options
The 'yiaddr' field [RFC2131] in DHCP message is used to convey The 'yiaddr' field [RFC2131] in DHCP message is used to convey an
allocated address from the server to the client. allocated address from the server to the client.
The DHCPv4 specification [RFC2131] provides a way to specify the The DHCP specification [RFC2131] provides a way to specify the client
client link-layer address in the DHCPv4 message header. A DHCPv4 link-layer address in the DHCP message header. A DHCP message header
message header has 'htype' and 'chaddr' fields to specify the client has 'htype' and 'chaddr' fields to specify the client link-layer
link-layer address type and the link-layer address, respectively. address type and the link-layer address, respectively. The 'chaddr'
The 'chaddr' field is used both as a hardware address for field is used both as a hardware address for transmission of reply
transmission of reply messages and as a client identifier. messages and as a client identifier.
The 'requested IP address' option [RFC2131] is used by 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 fully qualified domain name and about who has the
responsibility for updating the DNS with the associated A and PTR responsibility for updating the DNS with the associated A and PTR
RRs. RRs.
skipping to change at page 5, line 25 skipping to change at page 5, line 25
client sends its hostname as a hint for the server. The DHCP server client sends its hostname as a hint for the server. The DHCP server
MAY be configured to modify the supplied name or to substitute a MAY be configured to modify the supplied name or to substitute a
different name. The server should send its notion of the complete 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 content of a Parameter Request List option are the
option codes for an option requested by the client. option codes for 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 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, or of industry consortium compliance, for example, the running, or of industry consortium compliance, for example, the
version of the operating system the client is running or the amount version of the operating system the client is running or the amount
of memory installed on the client. of memory installed on the client.
3.6. Civic Location Option 3.6. Civic Location Option
DHCP servers use the Civic Location Option [RFC4776] to deliver of DHCP servers use the Civic Location Option [RFC4776] to deliver
the location information (the civic and postal addresses) to the 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.
3.7. Coordinate-Based Location Option 3.7. Coordinate-Based Location Option
The GeoConf and GeoLoc options [RFC6225] is used by DHCP server to The GeoConf and GeoLoc options [RFC6225] are used by a DHCP server to
provide the coordinate-based geographic location information to the provide coordinate-based geographic location information to DHCP
DHCP clients. It enables a DHCP client to obtain its geographic clients. They enable a DHCP client to obtain its geographic
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 DHCP The Client System Architecture Type Option [RFC4578] is used by a
client to send a list of supported architecture types to the DHCP DHCP client to send a list of supported architecture types to the
server. It is used by clients that must be booted using the network DHCP server. It is used by clients that must be booted using the
rather than from local storage, so the server can decide which boot network rather than from local storage, so the server can decide
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 Sub-options
A DHCP relay agent includes a Relay Agent Information [RFC3046] to A DHCP relay agent includes a Relay Agent Information option[RFC3046]
identify the remote host end of the circuit. It contains a "circuit to identify the remote host end of the circuit. It contains a
ID" sub-option for the incoming circuit, which is an agent-local "circuit ID" sub-option for the incoming circuit, which is an agent-
identifier of the circuit from which a DHCP client-to-server packet local identifier of the circuit from which a DHCP client-to-server
was received, and a "remote ID" sub-option which provides a trusted packet was received, and a "remote ID" sub-option which provides a
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 "circuit ID" sub-option 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 DLCI, ATM virtual circuit number, cable data
virtual circuit number, etc. virtual circuit number, etc.
Possible encoding of the "remote ID" sub-option includes: a "caller Possible encoding of the "remote ID" sub-option 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 ATM address, a "modem
ID" of a cable data modem, the remote IP address of a point-to-point ID" of a cable data modem, the remote IP address of a point-to-point
skipping to change at page 7, line 31 skipping to change at page 7, line 31
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 address. When a client requests an
address, the server must pick an address out of configured pool. 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 DHCPv4 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 DHCPv4 and DHCPv6. configuration may allow configuring them in both DHCP and DHCPv6.
Not every allocation strategy is equally suitable for DHCPv4 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 can by one. That strategy has the benefit of being very fast, thus being
be favored in deployments that prefer performance. However, it makes favored in deployments that prefer performance. However, it makes
the allocated addresses very predictable. Also, since the addresses the allocated addresses very predictable. Also, since the addresses
allocated tend to be clustered at the beginning of available pool, it allocated tend to be clustered at the beginning of an available pool,
makes scanning attacks much easier. 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 available identifiers, to allocate an address that is based on one of the available
e.g. client identifier or MAC address. It is also convenient, as identifiers, e.g., client identifier or MAC address. It is also
returning client is very likely to get the same address. Those convenient, as a returning client is very likely to get the same
properties are convenient for system administrators, so DHCP server address. Those properties are convenient for system administrators,
implementors are often requested to implement it. The downside of so DHCP server implementors are often requested to implement it. The
such allocation is that the client has a very stable IP address. downside of such allocation is that the client has a very stable IP
That means that correlation of activities over time, location address. That means that correlation of activities over time,
tracking, address scanning and OS/vendor discovery apply. This is location tracking, address scanning and OS/vendor discovery apply.
certainly an issue in DHCPv6, but due to much smaller address space This is certainly an issue in DHCPv6, but due to a much smaller
is almost never a problem in DHCPv4. address space is almost never a problem in DHCP.
Hash allocation - it's an extension of identifier based allocation. Hash allocation - it's an extension of identifier-based allocation.
Instead of using the identifier directly, it is being hashed first. Instead of using the identifier directly, it is hashed first. If the
If the hash is implemented correctly, it removes the flaw of hash is implemented correctly, it removes the flaw of disclosing the
disclosing the identifier, a property that eliminates susceptibility identifier, a property that eliminates susceptibility to address
to address scanning and OS/vendor discovery. If the hash is poorly scanning and OS/vendor discovery. If the hash is poorly implemented
implemented (e.g. can be reverted), it introduces no improvement over (e.g., it can be reversed), it introduces no improvement over
identifier-based allocation. identifier-based allocation.
Random allocation - a server can pick a resource randomly out of Random allocation - a server can pick a resource randomly out of an
available pool. That strategy works well in scenarios where pool available pool. This allocation scheme essentially prevents
utilization is small, as the likelihood of collision (resulting in returning clients from getting the same address again. On the other
the server needing to repeat randomization) is small. With the pool hand, it is beneficial from a privacy perspective as addresses
allocation increasing, the collision is disproportionally large, due generated that way are not susceptible to correlation attacks, OS/
to birthday paradox. With high pool utilization (e.g. when 90% of vendor discovery attacks, or identity discovery attacks. Note that
available resources being allocated already), the server will use even though the address itself may be resilient to a given attack,
most computational resources to repeatedly pick a random resource, the client may still be susceptible if additional information is
which will degrade its performance. This allocation scheme disclosed other way, e.g., the client's address may be randomized,
essentially prevents returning clients from getting the same address but it still can leak its MAC address in the client-id option.
again. On the other hand, it is beneficial from privacy perspective
as addresses generated that way are not susceptible to correlation
attacks, OS/vendor discovery attacks or identity discovery attacks.
Note that even though the address itself may be resilient to a given
attack, the client may still be susceptible if additional information
is disclosed other way, e.g. client's address can be randomized, but
it still can leak its MAC address in client-id 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
skipping to change at page 9, line 21 skipping to change at page 9, line 14
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 sub-option, 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 info).
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
options 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
This is an enhancement, or a combination of most aforementioned This is an enhancement, or a combination of most of the
mechanisms. Operator who controls non-trivial number of access aforementioned mechanisms. An operator who controls a non-trivial
points or network segments, may use obtained information about a number of access points or network segments, may use obtained
single client and observer client's habits. information about a single client and observe the client's habits.
Although users may not expect true privacy from their operators, the
information that is set up to be monitored by users' service
operators may also be gathered by an adversary who monitors a wide
range of networks and develops 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 client's Many DHCP deployments use DNS Updates [RFC4702] that put a client's
information (current IP address, client's hostname) into DNS, where information (current IP address, client's hostname) into the DNS,
it is easily accessible by anyone interested. Client ID is also where it is easily accessible by anyone interested. Client ID is
disclosed, albeit in not easily accessible form (SHA-256 digest of also disclosed, albeit in not easily accessible form (SHA-256 digest
the client-id). As SHA-256 is considered irreversible, DHCID can't of the client-id). Although SHA-256 is considered irreversible, DHCP
be converted back to client-id. However, SHA-256 digest can be used client ID can't be converted back to client-id. However, SHA-256
as an unique identifier that is accessible by any host. digest can be used as an unique identifier that is accessible 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 deducted by an attacker, identifier and that generation scheme can be deduced by an attacker,
the duration of correlation attack extends to that identifier. In the duration of the correlation attack extends to that of the
many cases, its lifetime is equal to the lifetime of the device identifier. In many cases, its lifetime is equal to the lifetime of
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, e.g. a hostname being put into mapping is discovered by an attacker, it can be used for tracking a
DNS, it can be used for tracking user. In particular both passive (a user. In particular both passive (a service that the client connects
service that the client connects to can log client's address and draw to can log the client's address and draw conclusions regarding its
conclusions regarding its location and movement patterns based on location and movement patterns based on the addresses it is
address it is connecting from) and active (attacker can send ICMP connecting from) and active (an attacker can send ICMP echo requests
echo requests or other probe packets to networks of suspected client or other probe packets to networks of suspected client locations)
locations) methods can be used. To give specific example, by methods can be used. To give specific example, by accessing a social
accessing a social portal from tomek- portal from tomek-laptop.coffee.somecity.com.example, tomek-
laptop.coffee.somecity.com.example, tomek-
laptop.mycompany.com.example and tomek-laptop.myisp.example.com, the laptop.mycompany.com.example and tomek-laptop.myisp.example.com, the
portal administrator can draw conclusions about tomek-laptop's owner portal administrator can draw conclusions about tomek-laptop's
current location and his habits. owner's current location and his habits.
5.10. Leasequery & bulk leasequery 5.10. Leasequery & bulk leasequery
Attackers may pretend as an access concentrator, either DHCP relay Attackers may pretend to be an access concentrator, either as a DHCP
agent or DHCP client, to obtain location information directly from relay agent or as a DHCP client, to obtain location information
the DHCP server(s) using the DHCP leasequery [RFC4388] mechanism. directly from the DHCP server(s) using the DHCP leasequery [RFC4388]
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 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 DHCPv4 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 operator's database, but if intent of this mechanism is to update an operator's database, but if
misused, an attacker could defeat server's authentication mechanisms misused, an attacker could defeat the server's authentication
and subscribe to all updates. He then could continue receiving mechanisms and subscribe to all updates. He then could continue
updates, without any need for local presence. receiving updates, without any need for local presence.
6. Security Considerations 6. Security Considerations
In current practice, the client privacy and the client authentication In current practice, the client privacy and client authentication are
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 their certificates/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
for the server and the network. to the server and the network.
7. Privacy Considerations 7. Privacy Considerations
This document at 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. IANA Considerations
This draft does not request any IANA action. This draft does not request any IANA action.
9. Acknowledgements 9. Acknowledgements
The authors would like to thank the valuable comments made by Stephen The authors would like to thank the valuable comments made by Stephen
Farrell, Ted Lemon, Ines Robles, Russ White, Christian Huitema, Farrell, Ted Lemon, Ines Robles, Russ White, Christian Huitema,
Bernie Volz, Jinmei Tatuya, Marcin Siodelski, Christian Schaefer and Bernie Volz, Jinmei Tatuya, Marcin Siodelski, Christian Schaefer, and
other members of DHC WG. other members of DHC WG.
This document was produced using the xml2rfc tool [RFC2629].
10. References 10. References
10.1. Normative References 10.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",
skipping to change at page 12, line 26 skipping to change at page 12, line 17
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 10.2. Informative References
[RFC2629] Rose, M., "Writing I-Ds and RFCs using XML", RFC 2629,
DOI 10.17487/RFC2629, June 1999,
<http://www.rfc-editor.org/info/rfc2629>.
[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>.
[RFC3527] Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy, [RFC3527] Kinnear, K., Stapp, M., Johnson, R., and J. Kumarasamy,
 End of changes. 49 change blocks. 
150 lines changed or deleted 142 lines changed or added

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