Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign updhclient leaks sys-net boot time within DUID-LLT in Client-ID option of DHCP request #2483
Comments
andrewdavidwong
added
C: other
enhancement
privacy
help wanted
labels
Dec 5, 2016
andrewdavidwong
added this to the Far in the future milestone
Dec 5, 2016
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
hopefulfork commentedDec 4, 2016
•
edited
Edited 1 time
-
hopefulfork
edited Dec 4, 2016 (most recent)
Qubes OS version: R3.2
Affected TemplateVMs: fedora-23
Currently dhclient in sys-net uses DUID-LLT scheme [rfc-3315], section 9.2. As dhclient doesn't have persistent storage, this procedure is performed at each boot. This results in leaking time value that is represented in seconds since midnight (UTC), January 1, 2000, modulo 2^32.
Consequences:
Security: leak of system boot time may help with some kinds of attacks. For example, it may be used to help guessing seeds of some random number generators (e.g. simple ones that use time to seed themselves).
Privacy: this leak may be used to identify Qubes system in a network - its time part in DUID-LLT will very often be close to current time, unlike other systems.
tcpdump from sys-net (second part of MAC is spoofed, oui part is hidden as XX:YY:ZZ):
Time is encoded here as 1f:d5:50:52, that corresponds to ~16.9 years since 2000 (yestarday).
Expected behavior:
For systems without persistent storage DUID-LL should be used; this is very similar to DUID-LLT but does not include time - [rfc-3315], section 9.4. [rfc-4361], sections 6.1, 6.2 also basically confirms [rfc-3315].
Note: alternative solution, adding persistent storage for DUID in sys-net will break MAC randomization feature as this will expose MAC as part of DUID.
Steps to reproduce the behavior:
References
[rfc-3315] https://tools.ietf.org/html/rfc3315
[rfc-4361] https://tools.ietf.org/html/rfc4361