-
Notifications
You must be signed in to change notification settings - Fork 3
/
draft-ietf-dhc-anonymity-profile-03.txt
1344 lines (938 loc) · 57.3 KB
/
draft-ietf-dhc-anonymity-profile-03.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Network Working Group C. Huitema
Internet-Draft Microsoft
Intended status: Standards Track T. Mrugalski
Expires: March 4, 2016 ISC
S. Krishnan
Ericsson
September 1, 2015
Anonymity profile for DHCP clients
draft-ietf-dhc-anonymity-profile-03.txt
Abstract
Some DHCP options carry unique identifiers. These identifiers can
enable device tracking even if the device administrator takes care of
randomizing other potential identifications like link-layer addresses
or IPv6 addresses. The anonymity profile is designed for clients
that wish to remain anonymous to the visited network. The profile
provides guidelines on the composition of DHCP or DHCPv6 requests,
designed to minimize disclosure of identifying information. This
draft updates RFC4361.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute
working documents as Internet-Drafts. The list of current Internet-
Drafts is at http://datatracker.ietf.org/drafts/current/.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on March 4, 2016.
Copyright Notice
Copyright (c) 2015 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
Huitema, et al. Expires March 4, 2016 [Page 1]
Internet-Draft DHCP Anonymity Profile September 2015
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the Simplified BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
1.1. Requirements . . . . . . . . . . . . . . . . . . . . . . 3
2. Application domain . . . . . . . . . . . . . . . . . . . . . 3
2.1. MAC address Randomization hypotheses . . . . . . . . . . 4
2.2. MAC address Randomization and DHCP . . . . . . . . . . . 5
2.3. Radio fingerprinting . . . . . . . . . . . . . . . . . . 5
2.4. Operating system fingerprinting . . . . . . . . . . . . . 6
2.5. No anonymity profile identification . . . . . . . . . . . 6
2.6. Using the anonymity profiles . . . . . . . . . . . . . . 7
2.7. What about privacy for DHCP servers . . . . . . . . . . . 8
3. Anonymity profile for DHCPv4 . . . . . . . . . . . . . . . . 8
3.1. Option encoding and avoiding fingerprinting . . . . . . . 9
3.2. Client IP address field . . . . . . . . . . . . . . . . . 9
3.3. Requested IP address option . . . . . . . . . . . . . . . 10
3.4. Client hardware address . . . . . . . . . . . . . . . . . 10
3.5. Client Identifier Option . . . . . . . . . . . . . . . . 11
3.6. Parameter Request List . . . . . . . . . . . . . . . . . 11
3.7. Host Name Option . . . . . . . . . . . . . . . . . . . . 12
3.8. Client FQDN Option . . . . . . . . . . . . . . . . . . . 13
3.9. UUID/GUID-based Client Identifier Option . . . . . . . . 13
3.10. User and Vendor Class DHCP options . . . . . . . . . . . 14
4. Anonymity profile for DHCPv6 . . . . . . . . . . . . . . . . 14
4.1. Option encoding and avoiding fingerprinting . . . . . . . 14
4.2. Do not send Confirm messages, unless really sure where . 15
4.3. Client Identifier DHCPv6 Option . . . . . . . . . . . . . 15
4.3.1. Anonymous Information-Request . . . . . . . . . . . . 16
4.4. Server Identifier Option . . . . . . . . . . . . . . . . 16
4.5. Address assignment options . . . . . . . . . . . . . . . 16
4.5.1. Obtain temporary addresses . . . . . . . . . . . . . 17
4.6. Option Request Option . . . . . . . . . . . . . . . . . . 17
4.6.1. Previous option values . . . . . . . . . . . . . . . 18
4.7. Authentication Option . . . . . . . . . . . . . . . . . . 18
4.8. User and Vendor Class DHCPv6 options . . . . . . . . . . 18
4.9. Client FQDN Option . . . . . . . . . . . . . . . . . . . 18
5. Operational Considerations . . . . . . . . . . . . . . . . . 19
6. Security Considerations . . . . . . . . . . . . . . . . . . . 19
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 19
8. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 19
9. Changes from previous versions . . . . . . . . . . . . . . . 19
Huitema, et al. Expires March 4, 2016 [Page 2]
Internet-Draft DHCP Anonymity Profile September 2015
10. References . . . . . . . . . . . . . . . . . . . . . . . . . 21
10.1. Normative References . . . . . . . . . . . . . . . . . . 21
10.2. Informative References . . . . . . . . . . . . . . . . . 22
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 23
1. Introduction
Reports surfaced recently of systems that would monitor the wireless
connections of passengers at Canadian airports [CNBC]. We can assume
that these are either fragments or trial runs of a wider system that
would attempt to monitor Internet users as they roam through wireless
access points and other temporary network attachments. We can also
assume that privacy conscious users will attempt to evade this
monitoring, for example by ensuring that low level identifiers such
as link-layer addresses are "randomized," so that the devices do not
broadcast a unique identifier in every location that they visit.
Of course, link layer "MAC" addresses are not the only way to
identify a device. As soon as it connects to a remote network, the
device may use DHCP and DHCPv6 to obtain network parameters. The
analysis of DHCP and DHCPv6 options shows that parameters of these
protocols can reveal identifiers of the device, negating the benefits
of link-layer address randomization. This is documented in detail in
[I-D.ietf-dhc-dhcp-privacy] and [I-D.ietf-dhc-dhcpv6-privacy]. The
natural reaction is to restrict the number and values of such
parameters in order to minimize disclosure.
In the absence of a common standard, different system developers are
likely to implement this minimization of disclosure in different
ways. Monitoring entities could then use the differences to identify
the software version running on the device. The proposed anonymity
profile provides a common standard that minimizes information
disclosure, including the disclosure of implementation identifiers.
1.1. Requirements
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in [RFC2119].
2. Application domain
Mobile nodes can be tracked using multiple identifiers, the most
prominent being link-layer addresses, a.k.a. MAC addresses. For
example, when devices use Wi-Fi connectivity, they place the MAC
address in the header of all the packets that they transmit.
Standard implementation of Wi-Fi use unique 48 bit link-layer
addresses, assigned to the devices according to procedures defined by
Huitema, et al. Expires March 4, 2016 [Page 3]
Internet-Draft DHCP Anonymity Profile September 2015
IEEE 802. Even when the Wi-Fi packets are encrypted, the portion of
the header containing the addresses will be sent in clear text.
Tracking devices can "listen to the airwaves" to find out what
devices are transmitting near them.
We can easily imagine that the MAC addresses can be correlated with
other data, e.g., clear text names and cookies, to build a registry
linking MAC addresses to the identity of devices' owners. Once that
correlation is done, tracking the MAC address is sufficient to track
individual people, even when all application data sent from the
devices is encrypted. link-layer addresses can also be correlated
with IP addresses of devices, negating potential privacy benefits of
IPv6 "privacy" addresses. Privacy advocates have reasons to be
concerned.
The obvious solution is to "randomize" the MAC address. Before
connecting to a particular network, the device replaces the MAC
address with a randomly drawn 48 bit value. Link-layer address
randomization was successfully tried at the IETF in Honolulu in
November 2014 [IETFMACRandom]. However, we have to consider the
linkage between link-layer addresses, DHCP identifiers and IP
addresses.
2.1. MAC address Randomization hypotheses
There is not yet an established standard for randomizing link-layer
addresses. Various prototypes have tried different strategies, such
as:
Per connection: Configure a random link-layer address at the time of
connecting to a network, e.g. to specific Wi-Fi SSID, and keep it
for the duration of the connection.
Per network: Same as "per connection," but always use the same link-
layer address for the same network -- different of course from the
addresses used in other networks.
Time interval: Change the link-layer address at regular time
intervals.
In practice, there are many reasons to keep the link-layer address
constant for the duration of a link-layer connection, as in the "per
connection" or "per network" variants. On Wi-Fi networks, changing
the link-layer address requires dropping the existing Wi-Fi
connection and then re-establishing it, which implies repeating the
connection process and associated procedures. The IP addresses will
change, which means that all required TCP connections will have to be
re-established. If the network access is provided through a NAT,
Huitema, et al. Expires March 4, 2016 [Page 4]
Internet-Draft DHCP Anonymity Profile September 2015
changing IP address also means that the NAT traversal procedures will
have to be restarted. This means a lot of disruption. At the same
time, an observer on the network will easily notice that a station
left, another came in just after that, and that the new one appears
to be communicating with pretty much the same set of IP addresses as
the old one. This provides for easy correlation.
The anonymity profile pretty much assumes that the link-layer address
randomization follows the "per connection" or "per network"
strategies, or a variant of the "time interval" strategy in which the
interval has about the same duration as the average connection.
2.2. MAC address Randomization and DHCP
From a privacy point of view, it is clear that link-layer address, IP
address and DHCP identifier shall evolve in synchrony. For example,
if the link-layer address changes and the DHCP identifier stays
constant, then it is really easy to correlate old and new link-layer
addresses, either by listening to DHCP traffic or by observing that
the IP address remains constant, since it is tied to the DHCP
identifier. Conversely, if the DHCP identifier changes but the link-
layer address remains constant, the old and new identifiers and
addresses can be correlated by listening to L2 traffic. The
procedures documented in the following sections construct DHCP
identifiers from the current link-layer address, automatically
providing for this synchronization.
The proposed anonymity profiles solve this synchronization issues by
deriving most identifiers from the link-layer address, and generally
by making making sure that DHCP parameter values do not remain
constant after an address change.
2.3. Radio fingerprinting
MAC address randomization solves the trivial monitoring problem in
which someone just uses a Wi-Fi scanner and records the MAC addresses
seen on the air. DHCP anonymity solves the more elaborated scenario
in which someone monitor link-layer addresses and identities used in
DHCP at the access point or DHCP server. But these are not the only
ways to track a mobile device.
Radio fingerprinting is a process that identifies a radio transmitter
by the unique "fingerprint" of its signal transmission, i.e., the
tiny differences caused by minute imperfections of the radio
transmission hardware. This can be applied to diverse types of
radios, including Wi-Fi as described for example in
[WiFiRadioFingerprinting]. No amount of link-layer address
Huitema, et al. Expires March 4, 2016 [Page 5]
Internet-Draft DHCP Anonymity Profile September 2015
randomization will protect against such techniques. Protections may
exist, but they are outside the scope of the present document.
On the other hand, we should not renounce randomization just because
radio fingerprinting exists. The radio fingerprinting techniques are
harder to deploy than just recording link-layer addresses with a
scanner. They can only track devices for which the fingerprint are
known, and thus have a narrower scope of application than mass
monitoring of addresses and DHCP parameters.
2.4. Operating system fingerprinting
When a standard like DHCP allows for multiple options, different
implementers will make different choices for the options that they
support or the values they chose for the options. Conversely,
monitoring the options and values present in DHCP messages reveals
these differences and allows for "operating system fingerprinting,"
i.e., finding the type and version of software that a particular
device is running. Finding these versions provides some information
about the device identity, and thus goes against the goal of
anonymity.
The design of the anonymity profiles attempts to minimize the number
of options and the choice of values, in order to reduce the
possibilities of operating system fingerprinting.
2.5. No anonymity profile identification
Reviewers of the anonymity profiles have sometimes suggested adding
an option to explicitly identify the profiles as "using the anonymity
option." One suggestion is that if the client wishes to remain
anonymous, it would be good if the client told the server about that
in case the server is willing to co-operate. Another possibility
would be to use specific privacy-oriented construct, such as for
example a new type of DUID for a temporary DUID that would be
changing over time.
This is not workable in a large number of cases as it is possible
that the network operator (or other entities that have access to the
operator's network) might be actively participating in surveillance
and anti-privacy, willingly or not. Declaring a preference for
anonymity is a bit like walking around with a Guy Fawkes mask. When
anonymity is required, it is generally not a good idea to stick out
of the crowd. Simply revealing the desire for privacy, could cause
the attacker to react by triggering additional surveillance or
monitoring mechanisms. Therefore we feel that it is preferable to
not disclose one's desire for privacy.
Huitema, et al. Expires March 4, 2016 [Page 6]
Internet-Draft DHCP Anonymity Profile September 2015
This preference leads to some important implications. In particular,
we make an effort to make the mitigation techniques difficult to
distinguish from regular client behaviors, if at all possible.
2.6. Using the anonymity profiles
There are downsides to randomizing link-layer addresses and DHCP
identifiers. By definition, randomization will break management
procedures that rely on tracking link-layer addresses. Even if this
is not too much of a concern, we have to be worried about the
frequency of link-layer address randomization. Suppose for example
that many devices would get new random link-layer addresses at short
intervals, maybe every few minutes. This would generate new DHCP
requests in rapid succession, with a high risk of exhausting DHCPv4
address pools. Even with IPv6, there would still be a risk of
increased neighbor discovery traffic, and bloating of various address
tables. Implementers will have to be cautious when programming
devices to use randomized MAC addresses. They will have to carefully
chose the frequency with which such addresses will be renewed.
This document only provides guidelines for using DHCP when clients
care about privacy and servers do not object. We assume that the
request for anonymity is materialized by the assignment of a
randomized link-layer address to the network interface. Once that
decision is made, the following guidelines will avoid leakage of
identity in DHCP parameters or in assigned addresses.
There may be rare situations where the clients want anonymity to
attackers but not to their DHCP server. These clients should still
use link-layer address randomization to hide from observers, and some
form of encrypted communication to the DHCP server. This scenario is
not yet supported in this document.
To preserve anonymity, the clients need to not use stable values for
the client identifiers. This is clearly a tradeoff, because a stable
client identifier guarantees that the client will receive consistent
parameters over time. An example is given in [RFC7618], where the
client identifier is used to guarantee that the same client will
always get the same combination of IP address and port range. Static
clients benefit most from stable parameters, and can often be already
identified by physical connection layer parameters. These static
clients will normally not use the anonymity profile. Mobile clients,
in contrast, have the option of using the anonymity profile in
conjunction with [RFC7618] if they are more concerned with privacy
protection than with stable parameters.
Huitema, et al. Expires March 4, 2016 [Page 7]
Internet-Draft DHCP Anonymity Profile September 2015
2.7. What about privacy for DHCP servers
This document only provides recommendations for DHCP clients. The
main target are DHCP clients used in mobile devices. Such devices
are a tempting target for various monitoring systems, and providing
them with a simple anonymity solution is urgent. We can argue that
some mobile devices embed DHCP servers, and that providing solutions
for such devices is also quite important. Two plausible examples
would be a DHCP server for a car network, or a DHCP server for a
mobile hot spot. However, mobile servers get a lot of privacy
protection through the use of access control and link layer
encryption. Servers may disclose information to clients through
DHCP, but they normally only do that to clients that have passed the
link-layer access control and have been authorized to use the network
services. This arguably makes solving the server problem less urgent
than solving the client problem.
Server privacy issues are presented in [I-D.ietf-dhc-dhcp-privacy]
and [I-D.ietf-dhc-dhcpv6-privacy]. Mitigation of these issues is
left to further study.
3. Anonymity profile for DHCPv4
Clients using the DHCPv4 anonymity profile limit the disclosure of
information by controlling the header parameters and by limiting the
number and values of options. The number of options depend on the
specific DHCP message:
DISCOVER: The anonymized DISCOVER messages MUST contain the Message
Type, Client Identifier, and Parameter Request List options. It
SHOULD NOT contain any other option.
REQUEST: The anonymized REQUEST messages SHOULD contain the Message
Type, Client Identifier, Requested IP address and Parameter
Request List options. If the message is in response to an OFFER,
it SHOULD contain the corresponding Server Identifier option. It
SHOULD NOT contain any other option.
DECLINE: The anonymized DECLINE messages SHOULD contain the Message
Type, Client Identifier and Server Identifier options.
RELEASE: The anonymized RELEASE messages SHOULD contain the Message
Type, Client Identifier and Server Identifier options.
INFORM: The anonymized INFORM messages MUST contain the Message
Type, Client Identifier, and Parameter Request List options. It
SHOULD NOT contain any other option.
Huitema, et al. Expires March 4, 2016 [Page 8]
Internet-Draft DHCP Anonymity Profile September 2015
Header fields and option values SHOULD be set in accordance with the
DHCP specification, but some header fields and option values SHOULD
be constructed per the following guidelines.
The inclusion of HostName and FQDN options in DISCOVER, REQUEST or
INFORM messages is discussed in Section 3.7 and Section 3.8.
3.1. Option encoding and avoiding fingerprinting
There are many choices for implementing DHCPv4 messages. Clients can
choose to transmit a specific set of options, pick particular
encoding for these options, and transmit options in different orders.
These choices can be use to fingerprint the client.
The following sections provide guidance on the encoding of options.
However, this guidance alone may not be sufficient to prevent
fingerprinting from revealing information, such as the device type,
vendor type or OS type and in some cases specific version, or from
revealing whether the client is using the anonymity profile.
The client willing to protect its privacy SHOULD limit the subset of
options sent in messages to the subset listed in the following
sections.
The client willing to protect its privacy SHOULD randomize options
order before sending any DHCPv4 message. If this random ordering
cannot be implemented, the client MAY arrange options by increasing
order of option codes.
3.2. Client IP address field
Four bytes in the header of the DHCP messages carry the "Client IP
address" (ciaddr) as defined in [RFC2131]. In DHCP, this field is
used by the clients to indicate the address that they used
previously, so that as much as possible the server can allocate them
the same address.
There is very little privacy implication of sending this address in
the DHCP messages, except in one case, when connecting to a different
network than the last network connected. If the DHCP client somehow
repeated the address used in a previous network attachment,
monitoring services might use the information to tie the two network
locations. DHCP clients should ensure that the field is cleared when
they know that the network attachment has changed, and in particular
if the link layer address is reset by the device's administrator.
Huitema, et al. Expires March 4, 2016 [Page 9]
Internet-Draft DHCP Anonymity Profile September 2015
The clients using the anonymity profile MUST NOT include in the
message a Client IP Address that has been obtained with a different
link-layer address.
3.3. Requested IP address option
The Requested IP address option id defined in [RFC2132] with code 50.
It allows the client to request that a particular IP address be
assigned. The option is mandatory in some protocol messages per
[RFC2131], for example when a client selects to use an address
offered by a server. However, this option is not mandatory in the
DHCPDISCOVER message. It is simply a convenience, an attempt to
regain the same IP address that was used in a previous connection.
Doing so entails the risk of disclosing an IP address used by the
client at a previous location, or with a different link-layer
address.
When using the anonymity profile, clients SHOULD NOT use the
Requested IP address option in DHCPDISCOVER messages. They MUST use
the option when mandated by the DHCP protocol, for example in
DHCPREQUEST messages.
There are scenarios in which a client connects to a network when a
lease is still valid. In that state, the client that is concerned
with privacy SHOULD perform a complete four way handshake starting
with DHCPDISCOVER to obtain a new address lease. If the client can
ascertain that this is exactly the same network to which it was
previously connected, and if the link layer address did not change,
the client MAY issue a DHCPREQUEST to try reclaim the current
address.
3.4. Client hardware address
Sixteen bytes in the header of the DHCP messages carry the "Client
hardware address" (chaddr) as defined in [RFC2131]. The presence of
this address is necessary for the proper operation of the DHCP
service.
Hardware addresses, called "link layer address" in many RFCs, can be
used to uniquely identify a device, especially if they follow the
IEEE 802 recommendations. These unique identifiers can be used by
monitoring services to track the location of the device and its user.
The only plausible defense is to somehow reset the hardware address
to a random value when visiting an untrusted location, before
transmitting anything at that location with the hardware address. If
the hardware address is reset to a new value, or randomized, the DHCP
client SHOULD use the new randomized value in the DHCP messages.
Huitema, et al. Expires March 4, 2016 [Page 10]
Internet-Draft DHCP Anonymity Profile September 2015
3.5. Client Identifier Option
The client identifier option is defined in [RFC2132] with option code
61. It is discussed in detail in [RFC4361]. The purpose of the
client identifier option is to identify the client in a manner
independent of the link layer address. This is particularly useful
if the DHCP server is expected to assign the same address to the
client after a network attachment is swapped and the link layer
address changes. It is also useful when the same node issues
requests through several interfaces, and expects the DHCP server to
provide consistent configuration data over multiple interfaces.
The considerations for hardware independence and strong client
identity have an adverse effect on the privacy of mobile clients,
because the hardware-independent unique identifier obviously enables
very efficient tracking of the client's movements. One option would
be to not transmit this option at all, but this may affect
interoperability and will definitely mark the client as requesting
anonymity, exposing it to the risks mentioned in Section 2.5.
The recommendations in [RFC4361] are very strong, stating for example
that "DHCPv4 clients MUST NOT use client identifiers based solely on
layer two addresses that are hard-wired to the layer two device
(e.g., the Ethernet MAC address)." These strong recommendations are
in fact a tradeoff between ease of management and privacy, and the
tradeoff should depend on the circumstances.
In contradiction to [RFC4361], when using the anonymity profile, DHCP
clients MUST use client identifiers based solely on the link layer
address that will be used in the underlying connection. This will
ensure that the DHCP client identifier does not leak any information
that is not already available to entities monitoring the network
connection. It will also ensure that a strategy of randomizing the
link layer address will not be nullified by DHCP options.
There are usages of DHCP where the underlying connection is a point
to point link, in which case there is no link layer address available
to construct a non-revealing identifier. If anonymity is desired in
such networks, the client SHOULD pick a random identifier that is
unique to the current link, using for example a combination of a
local secret and an identifier of the connection.
3.6. Parameter Request List
The Parameter Request List (PRL) option is defined in [RFC2132] with
option code 61. It list the parameters requested from the server by
the client. Different implementations request different
parameters.[RFC2132] specifies that "the client MAY list the options
Huitema, et al. Expires March 4, 2016 [Page 11]
Internet-Draft DHCP Anonymity Profile September 2015
in order of preference." It practice, this means that different
client implementations will request different parameters, in
different orders.
The choice of option numbers and the specific ordering of option
numbers in the Parameter Request List can be used to fingerprint the
client. This may not reveal the identity of a client, but may
provide additional information, such as the device type, vendor type
or OS type and in some cases specific version.
The client willing to protect its privacy SHOULD only request a
minimal number of options in PRL, and SHOULD also randomly shuffle
the option codes order in PRL. If this random ordering cannot be
implemented, the client MAY order option codes order in PRL by
increasing order of option codes.
3.7. Host Name Option
The Host Name option is defined in [RFC2132] with option code 12.
Depending on implementations, the option value can carry either a
fully qualified domain name such as "node1984.example.com," or a
simple host name such as "node1984." The host name is commonly used
by the DHCP server to identify the host, and also to automatically
update the address of the host in local name services.
Fully qualified domain names are obviously unique identifiers, but
even simple host names can provide a significant amount of
information on the identity of the device. They are typically chosen
to be unique in the context where the device is most often used. If
that context is wide enough, in a large company or in a big
university, the host name will be a pretty good identifier of the
device. Monitoring services could use that information in
conjunction with traffic analysis and quickly derive the identity of
the device's owner.
When using the anonymity profile, DHCP clients SHOULD NOT send the
host name option. If they chose to send the option, DHCP clients
MUST always send a non-qualified host name instead of a fully
qualified domain name, and MUST obfuscate the host name value.
There are many ways to obfuscate a host name. The construction rules
SOULD guarantee that a different host name is generated each time the
link-layer address changes and that the obfuscated host name will not
reveal the underlying link layer address. The construction SHOULD
generate names that are unique enough to minimize collisions in the
local link. Clients MAY use the following algorithm: compute a
secure hash of a local secret and of the link layer address that will
be used in the underlying connection, and then use the hexadecimal
Huitema, et al. Expires March 4, 2016 [Page 12]
Internet-Draft DHCP Anonymity Profile September 2015
representation of the first 6 bytes of the hash as the obfuscated
host name.
There is a potential downside to having a specific name pattern for
hosts that require anonymity, as explained in Section 2.5. For this
reason, the above algorithm is just a suggestion.
3.8. Client FQDN Option
The Client FQDN option is defined in [RFC4702] with option code 81.
The option allows the DHCP clients to advertise to the DHCP server
their fully qualified domain name (FQDN) such as
"mobile.example.com." This would allow the DHCP server to update in
the DNS the PTR record for the IP address allocated to the client.
Depending on circumstances, either the DHCP client or the DHCP server
could update in the DNS the A record for the FQDN of the client.
Obviously, this option uniquely identifies the client, exposing it to
the DHCP server or to anyone listening to DHCP traffic. In fact, if
the DNS record is updated, the location of the client becomes visible
to anyone with DNS lookup capabilities.
When using the anonymity profile, DHCP clients SHOULD NOT include the
Client FQDN option in their DHCP requests. Alternatively, they MAY
include a special purpose FQDN using the same hostname as in the Host
Name Option, with a suffix matching the connection-specific DNS
suffix being advertised by that DHCP server. Having a name in the
DNS allows working with legacy systems that require one to be there,
e.g., by verifying a forward and reverse lookup succeeds with the
same result.
3.9. UUID/GUID-based Client Identifier Option
The UUID/GUID-based Client Machine Identifier option is defined in
[RFC4578], with option code 97. The option is part of a set of
options for Intel Preboot eXecution Environment (PXE). The purpose
of the PXE system is to perform management functions on a device
before its main OS is operational. The Client Machine Identifier
carries a 16-octet Globally Unique Identifier (GUID), which uniquely
identifies the device.
The PXE system is clearly designed for devices operating in a
controlled environment, and its functions are not meant to be used by
mobile nodes visiting untrusted networks. If only for privacy
reasons, nodes visiting untrusted networks MUST disable the PXE
functions, and MUST NOT send the corresponding options.
Huitema, et al. Expires March 4, 2016 [Page 13]
Internet-Draft DHCP Anonymity Profile September 2015
3.10. User and Vendor Class DHCP options
Vendor identifying options are defined in [RFC2132] and [RFC3925].
When using the anonymity profile, DHCP clients SHOULD NOT use the
Vendor Specific Information option (code 43), the Vendor Class
Identifier Option (60), the Vendor Class option (code 124), or the
Vendor Specific Information option (code 125) as these options
potentially reveal identifying information.
4. Anonymity profile for DHCPv6
DHCPv6 is typically used by clients in one of two scenarios: stateful
and stateless configuration. In the stateful scenario, clients use a
combination of SOLICIT, REQUEST, CONFIRM, RENEW, REBIND and RELEASE
messages to obtain addresses, and manage these addresses.
In the stateless scenario, clients configure addresses using a
combination of client managed identifiers and router-advertised
prefixes, without involving the DHCPv6 services. Different ways of
constructing these prefixes have different implications on privacy,
which are discussed in [I-D.ietf-6man-default-iids] and
[I-D.ietf-6man-ipv6-address-generation-privacy]. In the stateless
scenario, clients use DHCPv6 to obtain network configuration
parameters, through the INFORMATION-REQUEST message.
The choice between the stateful and stateless scenario depends on
flag and prefix options published by the "Router Advertisement"
messages of local routers, as specified in [RFC4861]. When these
options enable stateless address configuration hosts using the
anonymity profile SHOULD choose it over stateful address
configuration, because stateless configuration requires fewer
information disclosures than stateful configuration.
When using the anonymity profile, DHCPv6 clients carefully select
DHCPv6 options used in the various messages that they send. The list
of options that are mandatory or optional for each message is
specified in [RFC3315]. Some of these options have specific
implications on anonymity. The following sections provide guidance
on the choice of option values when using the anonymity profile.
4.1. Option encoding and avoiding fingerprinting
There are many choices for implementing DHCPv6 messages. As
explained in Section 3.1, these choices can be use to fingerprint the
client.
The following sections provide guidance on the encoding of options.
However, this guidance alone may not be sufficient to prevent
Huitema, et al. Expires March 4, 2016 [Page 14]
Internet-Draft DHCP Anonymity Profile September 2015
fingerprinting from revealing information, such as the device type,
vendor type or OS type and in some cases specific version, or from
revealing whether the client is using the anonymity profile.
The client willing to protect its privacy SHOULD limit the subset of
options sent in messages to the subset listed in the following
sections.
The client willing to protect its privacy SHOULD randomize options
order before sending any DHCPv6 message. If this random ordering
cannot be implemented, the client MAY arrange options by increasing
order of option codes.
4.2. Do not send Confirm messages, unless really sure where
[RFC3315] requires clients to send a Confirm message when they attach
to a new link to verify whether the addressing and configuration
information they previously received is still valid. This
requirement was relaxed in [I-D.ietf-dhc-rfc3315bis]. When these
clients send Confirm messages, they include any IAs assigned to the
interface that may have moved to a new link, along with the addresses
associated with those IAs. By examining the addresses in the Confirm
message an attacker can trivially identify the previous point(s) of
attachment.
Clients interested in protecting their privacy SHOULD NOT send
Confirm messages and instead directly try to acquire addresses on the
new link. However, not sending confirm messages can result in
connectivity hiatus in some scenarios, e.g. roaming between two
access points in the same wireless network. DHCPv6 clients that can
verify that the previous link and the current link are part of the
same network MAY send Confirm messages while still protecting their
privacy.
4.3. Client Identifier DHCPv6 Option
The client identifier option is defined in [RFC3315] with option code
1. The purpose of the client identifier option is to identify the
client to the server. The content of the option is a DHCP Unique
Identifier (DUID). One of the primary privacy concerns is that a
client is disclosing a stable identifier (the DUID) that can be use
for tracking and profiling. Three DUID formats are specified in
[RFC3315]: Link-layer address plus time, Vendor-assigned unique ID
based on Enterprise Number, Link-layer address. A fourth type, DUID-
UUID is defined in [RFC6355].
When using the anonymity profile in conjunction with randomized link-
layer addresses, DHCPv6 clients MUST use the DUID format number 3,
Huitema, et al. Expires March 4, 2016 [Page 15]
Internet-Draft DHCP Anonymity Profile September 2015
Link-layer address. The value of the Link-layer address should be
that currently assigned to the interface.
When using the anonymity profile without the benefit of randomized
link-layer addresses, clients that want to protect their privacy
SHOULD generate a new randomized DUID-LLT every time they attach to a
new link or detect a possible link change event. The exact details
are left up to implementors, but there are several factors should be
taken into consideration. The DUID type SHOULD be set to 1 (DUID-
LLT). Hardware type SHOULD be set appropriately to the hardware
type. Time MAY be set to current time, but this will reveal the fact
that the DUID is newly generated. Implementors interested in hiding
this fact MAY use a time stamp from the past. e.g. a random timestamp
from the previous year could be a good value.
4.3.1. Anonymous Information-Request
According to [RFC3315], a DHCPv6 client typically includes its client
identifier in most of the messages it sends. There is one exception,
however. Client is allowed to omit its client identifier when
sending Information-Request.
When using stateless DHCPv6, clients wanting to protect their privacy
SHOULD NOT include client identifiers in their Information-Request
messages. This will prevent the server from specifying client-
specific options if it is configured to do so, but the need for
anonymity precludes such options anyway.
4.4. Server Identifier Option
When using the anonymity profile, DHCPv6 clients SHOULD use the
Server Identifier Option (code 2) as specified in [RFC3315]. Clients
MUST only include server identifier values that were received with
the current link-layer address, because reuse of old values discloses
information that can be used to identify the client.
4.5. Address assignment options
When using the anonymity profile, DHCPv6 clients might have to use
SOLICIT or REQUEST messages to obtain IPv6 addresses through the DHCP
server. The clients SHOULD only use the options necessary to perform
the requested DHCPv6 transactions, such as Identity Association for
Non-temporary Addresses Option (code 3) or Identity Association for
Temporary Addresses Option (code 4).
The clients MAY use the IA Address Option (code 5) but need to
balance the potential advantage of "address continuity" versus the
potential risk of "previous address disclosure." A potential
Huitema, et al. Expires March 4, 2016 [Page 16]
Internet-Draft DHCP Anonymity Profile September 2015
solution is to remove all stored addresses when a link-layer address
changes, and to only use the IA Address option with addresses that
have been explicitly assigned through the current link-layer address.
The interaction between prefix delegation and anonymity require
further study. For now, the simple solution is to avoid using prefix
delegation when striving for anonymity. When using the anonymity
profiles, clients SHOULD NOT use IA_PD, the prefix delegation form of
address assignment.
4.5.1. Obtain temporary addresses
[RFC3315] defines a special container (IA_TA) for requesting
temporary addresses. This is a good mechanism in principle, but
there are a number of issues associated with it. First, this is not
a widely used feature, so clients depending solely on temporary
addresses may lock themselves out of service. Secondly, [RFC3315]
does not specify any lifetime or lease length for temporary
addresses. Therefore support for renewing temporary addresses may
vary between client implementations, including not being supported at
all. Finally, by requesting temporary addresses a client reveals its
desire for privacy and potentially risks countermeasures as described
in Section 2.5.
Clients interested in their privacy SHOULD NOT use IA_TA. They
should simply send an IA_NA with a randomized IAID. This, along with
the mitigation technique discussed in Section 4.4, will ensure that a
client will get a new address that can be renewed and can be used as
long as needed. To get a new address, it can send Request message
with a new randomized IAID before releasing the other one. This will
cause the server to assign a new address, as it still has a valid
lease for the old IAID value. Once a new address is assigned, the
address obtained using the older IAID value can be released safely,
using the Release message or it may simply be allowed to time out.
This solution may not work if the server enforces specific policies,
e.g. only one address per client. If client does not succeed in
receiving a second address using a new IAID, it may release the first
one (using the old IAID) and then retry asking for a new address.
From the Operating System perspective, addresses obtained using this
technique SHOULD be treated as temporary as specified in [RFC4941].
4.6. Option Request Option
The Option Request Option (ORO) is defined in [RFC3315] with option
code 6. It specifies the options that the client is requesting from
the server. The choice of requested options and the order of
Huitema, et al. Expires March 4, 2016 [Page 17]
Internet-Draft DHCP Anonymity Profile September 2015
encoding of these options in the ORO can be used to fingerprint the
client.
The client willing to protect its privacy SHOULD only request a
minimal subset of options and SHOULD randomly shuffle the option
codes order in ORO. If this random ordering cannot be implemented,
the client MAY order option codes in ORO by increasing order of
option codes.
4.6.1. Previous option values
According to [RFC3315], the client that includes an Option Request
Option in a Solicit or Request message MAY additionally include
instances of those options that are identified in the Option Request
option, with data values as hints to the server about parameter
values the client would like to have returned.
When using the anonymity profile, clients SHOULD NOT include such
instances of options because old values might be used to identify the
client.
4.7. Authentication Option
The purpose of the Authentication option (code 11) is to authenticate
the identity of clients and servers and the contents of DHCP
messages. As such, the option can be used to identify the client,
and is incompatible with the stated goal of "client anonymity."
DHCPv6 clients that use the anonymity profile SHOULD NOT use the
authentication option. They MAY use it if they recognize that they
are operating in a trusted environment, e.g., in a work place
network.
4.8. User and Vendor Class DHCPv6 options
When using the anonymity profile, DHCPv6 clients SHOULD NOT use the
User Class option (code 15) or the Vendor Class option (code 16), as
these options potentially reveal identifying information.
4.9. Client FQDN Option
The Client FQDN option is defined in [RFC4704] with option code 29.
The option allows the DHCP clients to advertise to the DHCP server
their fully qualified domain name (FQDN) such as
"mobile.example.com." When using the anonymity profile, DHCPv6