RFC 8117
Current Hostname Practice Considered Harmful
Current Hostname Practice Considered Harmful π
Okay bestie, this is RFC 8117, and the title alone is giving main character energy π "Current Hostname Practice Considered Harmful" π
Here's the title block tea β:
- Number and category: RFC 8117, Category: Informational, ISSN: 2070-1721 π¦
- Date: March 2017 π
- Authors: C. Huitema (Private Octopus Inc.), D. Thaler (Microsoft), and R. Winter (University of Applied Sciences Augsburg) π
- Obsoletes or updates: The title block doesn't list any RFC that this one obsoletes or updates πΈ
Abstract β¨
Giving your computer a hostname and then publishing it every time you roam from one network to another is the Internet's version of wearing a name tag on your lapel π·οΈ π Like, everywhere you go, people can read it. This practice can seriously compromise your privacy, so something needs to change to reduce those privacy threats π
There are a few possible fixes, like repairing a bunch of protocols or not disclosing a hostname at all π οΈ This document describes some of the protocols that reveal hostnames today and sketches another option: replace static hostnames with frequently changing randomized values π² Iconic solution, ngl π§
Status of This Memo π
This document is not an Internet Standards Track specification. It's published for informational purposes π
This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Not every document the IESG approves is a candidate for any level of Internet Standard. See Section 2 of RFC 7841 for more on that π€
For information about the current status of this document, any errata, and how to give feedback on it, check http://www.rfc-editor.org/info/rfc8117 π
Copyright Notice π
Copyright (c) 2017 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), as in effect on the date of publication of this document. Please read these documents carefully, because 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 they are provided without warranty as described in the Simplified BSD License π
Table of Contents π§
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Naming Practices . . . . . . . . . . . . . . . . . . . . . . 3
3. Partial Identifiers . . . . . . . . . . . . . . . . . . . . . 4
4. Protocols That Leak Hostnames . . . . . . . . . . . . . . . . 5
4.1. DHCP . . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.2. DNS Address to Name Resolution . . . . . . . . . . . . . 5
4.3. Multicast DNS . . . . . . . . . . . . . . . . . . . . . . 6
4.4. Link-Local Multicast Name Resolution . . . . . . . . . . 6
4.5. DNS-Based Service Discovery . . . . . . . . . . . . . . . 7
4.6. NetBIOS-over-TCP . . . . . . . . . . . . . . . . . . . . 7
5. Randomized Hostnames as a Remedy . . . . . . . . . . . . . . 8
6. Security Considerations . . . . . . . . . . . . . . . . . . . 9
7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9
8. Informative References . . . . . . . . . . . . . . . . . . . 9
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction β¨
Giving names to computers is a long-established practice π₯οΈ In Internet protocols, these names are called "hostnames" [RFC7719]. Hostnames are normally used together with a domain name suffix to build the Fully Qualified Domain Name (FQDN) of a host [RFC1983]. But it's common to use the hostname on its own in all sorts of applications, from file sharing to network management π Hostnames are typically published as part of domain names, and they can be obtained through a variety of name lookup and discovery protocols π
Hostnames have to be unique within the domain where they're created and used π«Ά They don't have to be globally unique identifiers, but they will always be at least partial identifiers, as discussed in Section 3.
Oversharing through hostnames is a real problem for mobile devices π± Adversaries who monitor a remote network, such as a Wi-Fi hot spot, can grab the hostname through passive monitoring or active probing of various Internet protocols, such as DHCP or Multicast DNS (mDNS) π They can then link the hostname to other information from traffic analysis and other sources, and potentially identify the device, its properties, and its user [TRAC2016] π
2. Naming Practices π
There are lots of reasons to name computers, especially when they're on a network π Operating systems like Microsoft Windows or Unix assume that computers have a "hostname." That's how users and admins can do things like ping a computer, add its name to an access control list, remotely mount its disk, or connect through tools like telnet or remote desktop π» Other operating systems keep multiple hostnames for different purposes, for example, for use with certain protocols such as mDNS π§©
On most consumer networks, naming is pretty much up to the user π¨ Some people pick planets or stars, some pick fruits or flowers, and others pick whatever matches their mood when they unbox the device π As long as users are careful not to pick a name that's already in use on the same network, anything goes β¨ Very often, though, the operating system suggests a hostname during installation. That suggestion can include the user name, the login name, and information pulled from the device itself, like its brand, model, or maker [TRAC2016] π
Large organizations have more collisions and need a more structured approach π’ In theory, organizations could use multiple DNS subdomains to ease the pressure on uniqueness, but in practice many don't, and they insist on unique flat names, if only to simplify network management π To keep names unique, organizations set naming guidelines and enforce some kind of structured naming. For example, on the Microsoft corporate network, computer names are derived from the login name of the main user, which leads to names like "huitema-test2" for a machine one of the authors used to test software π
There's less pressure to name small devices, like smartphones, because they usually don't share their disks or allow remote login π² As a result, these devices often have manufacturer-assigned names. Those range from generic names like "Windows Phone" to totally unique ones like BrandX-123456-7890-abcdef. These names often include the device owner's name, the device's brand, and often a hint about which language the owner speaks [TRAC2016] πΈ
3. Partial Identifiers π΅οΈββοΈ
Imagine an adversary wants to track people connecting to a specific Wi-Fi hot spot, say, at a railroad station π Suppose they can retrieve the hostname of one specific laptop. On its own, that might not be enough to identify the laptop's owner π€ But what if the adversary sees that the laptop is named "dthaler-laptop" and that it has set up a VPN connection to the Microsoft corporate network? Put those two pieces together and they firmly point to Dave Thaler, who works at Microsoft. Identification successful ππ
In that example, a login name was inside the hostname, and that definitely helped. But generic names like "jupiter" or "rosebud" also give partial identification, especially if the adversary keeps a database of which hostnames belong to which users ποΈ Generic names come from vocabularies with thousands of possible choices, so finding the name shrinks the search a lot. Other info, like the sites someone visits, can quickly fill in the gaps and lead to user identification π
The network's own circumstances matter too π Experiments on operational networks, such as the IETF meeting network, have shown that with help from external data, like the publicly available IETF attendees list or other sources such as Lightweight Directory Access Protocol (LDAP) servers on the network [TRAC2016], identifying a device's owner can become trivial, even with only partial identifiers in a hostname π±
Unique names assigned by manufacturers don't directly encode a user identifier π
ββοΈ But they're stable and unique to the device across a large context. A name like BrandX-123456-7890-abcdef allows efficient tracking across multiple domains π°οΈ In theory, that only tracks the device and not the user. However, an adversary could link the device to the user some other way, for example, by capturing some cleartext traffic just once. Adversaries could then build databases that link a unique hostname to a user identity, which makes tracking both the user and the device efficient π
4. Protocols That Leak Hostnames π«§
Lots of IETF protocols can leak the "hostname" of a computer. This list isn't exhaustive, but it includes DHCP, DNS address to name resolution, Multicast DNS, Link-Local Multicast Name Resolution, and DNS service discovery π¦
4.1. DHCP π·
Shortly after connecting to a new network, a host can use DHCP [RFC2131] to get an IPv4 address and other parameters [RFC2132]. A DHCP query can reveal the "hostname." DHCP traffic is sent to the broadcast address and is easy to monitor, so adversaries can discover the hostname tied to a computer visiting a particular network π DHCPv6 [RFC3315] has similar issues π
The problems with the hostname and FQDN parameters in DHCP are analyzed in [RFC7819] and [RFC7824]. Possible mitigations are described in [RFC7844] π‘οΈ
4.2. DNS Address to Name Resolution π
The domain name service design [RFC1035] includes the special domain "in-addr.arpa", which is used to resolve the name of a computer from its IPv4 address, using the PTR format defined in [RFC1033] π§ A similar domain, "ip6.arpa", is defined in [RFC3596] for finding the name of a computer from its IPv6 address π«
Adversaries who see a particular address in use on a specific network can try to retrieve the PTR record for that address. That gets them the computer's hostname, or even its FQDN π¬ This may not be useful on many IPv4 networks because of how common NAT is, but it could work on IPv6 networks π Other name lookup mechanisms, such as [RFC4620], have similar issues π
π to be continued in part 2, bestie π
4.3. Multicast DNS π
Multicast DNS (mDNS) is defined in [RFC6762]. It lets hosts send DNS queries over multicast and get answers back from hosts that are part of the service π¦
okay so here's the sus part π If an adversary suspects a particular host is on a network, they can send mDNS requests to look up the A or AAAA records tied to that hostname in the .local domain. If anyone replies, boom, the host is confirmed π
When a new responder starts up, it must send a set of multicast queries. It does this to check that the name it's advertising is unique on the network, and to fill up the caches of other mDNS hosts π§ The problem is that adversaries can watch this traffic and learn the hostname of computers as they join the network they're monitoring. Not me getting my whole name exposed just by plugging in π
mDNS also lets queries go out as unicast to port 5353. An adversary might pick unicast over multicast to stay hidden from, e.g., intrusion detection systems π sneaky, but still a privacy leak, bestie.
4.4. Link-Local Multicast Name Resolution πΈ
Link-Local Multicast Name Resolution (LLMNR) is defined in [RFC4795]. Real talk, it never reached consensus as an IETF standard, but it's widely deployed anyway π Like mDNS, it lets hosts send DNS queries over multicast and get responses from computers running the LLMNR service.
Just like mDNS, LLMNR can be abused by adversaries to confirm a specific host is on a network. They send a multicast request to find the A or AAAA records for the hostname in the .local domain. Same vibe, different protocol π
When an LLMNR responder starts, it sends a set of multicast queries to check that its advertised name is unique on the network. And yep, adversaries can monitor that traffic and find out the hostname of computers as they join the network. It's giving dΓ©jΓ vu π
4.5. DNS-Based Service Discovery π§
DNS-based Service Discovery (DNS-SD) is described in [RFC6763]. It lets participating hosts find the location of services that other hosts are offering. It can be used with DNS servers, or together with mDNS in a serverless environment π
Participating hosts publish a service described by an "instance name", which is usually picked by the user doing the publishing. Obviously this is an active disclosure of info, but the privacy stuff can be managed through user control π«Ά Services should only get published when someone actually decides to publish them, and the info shown in the service name should stay firmly under the device owner's control. Their device, their rules!
Now here's the twist π₯ In theory there shouldn't be any privacy issue. In practice, publishing a service also forces the hostname to get published, because of a chain of dependencies. The service name is used to publish a PTR record announcing the service, and that PTR record typically points to the service name in the local domain. The service names are then used to publish TXT records describing service parameters, and SRV records describing the service location. So the chain drags the hostname along for the ride π
SRV records are described in [RFC2782]. Each record contains four parameters: priority, weight, port number, and hostname. The service name in the PTR record is chosen by the user, but the "hostname" in the SRV record is actually the hostname of the device. Plot twist, the device's name is right there in the record π
Adversaries can monitor the mDNS traffic linked to DNS-SD and pull out the hostname of any computer advertising any service with DNS-SD. So even if you only share one little service, your hostname is out there too π¦
4.6. NetBIOS-over-TCP π
Among other things, NetBIOS-over-TCP [RFC1002] implements a name registration and resolution mechanism called the NetBIOS Name Service. In practice, NetBIOS resource names are often based on hostnames, so the name leak is baked right in π
NetBIOS lets an application register resource names and resolve those names to IP addresses. In environments without a NetBIOS Name Server, the protocol leans heavily on broadcasts, and resource names can be easily pulled out of those broadcasts π NetBIOS also lets you ask a node directly for the names it has registered (that's node status). Bold of it to just... tell you its own name, ngl π
5. Randomized Hostnames as a Remedy β¨
Okay, so how do we fix this mess? There are a few ways to approach the hostname practices π We could tell people to just turn off any protocol that leaks hostnames, at least when they visit some "insecure" place. We could also go through each standard that publishes hostnames and try to fix the corresponding protocols. Or, we could try to revise the way devices manage the hostname parameter π§
Turning off unneeded protocols when visiting insecure places has a lot going for it. It amounts to attack-surface reduction and is clearly beneficial. This is one of the perks of the stealth mode defined in [RFC7288] πΈ But there are two issues with this advice. First, it relies on recognizing which networks are secure or insecure. That's hard to automate, and relying on end-user judgment may not always give good results π¬ Second, some protocols, like DHCP, can't be turned off without losing connectivity, which limits the value of this option. Also, services that rely on hostname-leaking protocols such as mDNS won't be available when those protocols are switched off. And to make matters worse, hostname-leaking protocols aren't always well-known, since they might be proprietary and come bundled with an installed application instead of being provided by the operating system π
It may be possible in many cases to examine a protocol and stop it from leaking hostnames. This is, for example, what's being attempted for DHCP in [RFC7844] π«Ά However, it's unclear whether we can identify, revisit, and fix all the protocols that publish hostnames. In particular, this is impossible for proprietary protocols π
We may be able to mitigate most of the effects of hostname leakage by revisiting the way platforms handle hostnames. In a way, this is similar to the approach of Media Access Control (MAC) address randomization described in [RFC7844]. Let's assume that the operating system, when it connects to a new network, picks a random hostname and starts publicizing that random name in protocols such as DHCP or mDNS, instead of the static value. This makes it way harder for adversaries to monitor and identify users, without stopping protocols such as DNS-SD from working as expected β¨ Of course, this has implications for applications that use these protocols, e.g., when the hostname is displayed to users of the application. They won't as easily be able to identify network shares or services based on the hostname carried in the underlying protocols π Also, generating new hostnames should be synchronized with changes to other tokens used in network protocols, such as the MAC or IP address, to prevent correlation of this information. For example, if the IP address changes but the hostname stays the same, the new IP address can be correlated to belong to the same device based on a leaked hostname. Caught in 4K πΈ
Some operating systems, including Windows, support "per network" hostnames, but some other operating systems only support "global" hostnames. In that case, changing the hostname may be difficult if the host is multihomed, since the same name will be used on several networks π¬ Other operating systems already use potentially different hostnames for different purposes. That could be a good model for combining static hostnames and randomized hostnames, based on their potential use and their threat to a user's privacy π
Obviously, further studies are required before the idea of randomized hostnames can be implemented π¬
6. Security Considerations π₯
This document does not introduce any new protocol. It does point to potential privacy issues in a set of existing protocols π
There are obvious privacy gains from switching to randomized hostnames, and also from changing those names frequently. However, wide deployment might affect security functions or current practices. For example, incident response that uses hostnames to track the source of traffic might be affected. It's common practice to include hostnames and reverse lookup information at various points during an investigation, so this one is a real concern, bestie π
7. IANA Considerations π
This document does not require any IANA actions π
8. Informative References β¨
Okay bestie, this is the reading list π Every doc here is informative, which means it's background that helps you understand the protocols. Nothing here is a hard requirement, but these are the sources the whole RFC is built on, so they're worth a look π
- [RFC1002] NetBIOS Working Group in the Defense Advanced Research Projects Agency, Internet Activities Board, and End-to-End Services Task Force, "Protocol standard for a NetBIOS service on a TCP/UDP transport: Detailed specifications", STD 19, RFC 1002, DOI 10.17487/RFC1002, March 1987,
<http://www.rfc-editor.org/info/rfc1002>. - [RFC1033] Lottor, M., "Domain Administrators Operations Guide", RFC 1033, DOI 10.17487/RFC1033, November 1987,
<http://www.rfc-editor.org/info/rfc1033>. - [RFC1035] Mockapetris, P., "Domain names - implementation and specification", STD 13, RFC 1035, DOI 10.17487/RFC1035, November 1987,
<http://www.rfc-editor.org/info/rfc1035>. - [RFC1983] Malkin, G., Ed., "Internet Users' Glossary", FYI 18, RFC 1983, DOI 10.17487/RFC1983, August 1996,
<http://www.rfc-editor.org/info/rfc1983>. - [RFC2131] Droms, R., "Dynamic Host Configuration Protocol", RFC 2131, DOI 10.17487/RFC2131, March 1997,
<http://www.rfc-editor.org/info/rfc2131>. - [RFC2132] Alexander, S. and R. Droms, "DHCP Options and BOOTP Vendor Extensions", RFC 2132, DOI 10.17487/RFC2132, March 1997,
<http://www.rfc-editor.org/info/rfc2132>. - [RFC2782] Gulbrandsen, A., Vixie, P., and L. Esibov, "A DNS RR for specifying the location of services (DNS SRV)", RFC 2782, DOI 10.17487/RFC2782, February 2000,
<http://www.rfc-editor.org/info/rfc2782>. - [RFC3315] Droms, R., Ed., Bound, J., Volz, B., Lemon, T., Perkins, C., and M. Carney, "Dynamic Host Configuration Protocol for IPv6 (DHCPv6)", RFC 3315, DOI 10.17487/RFC3315, July 2003,
<http://www.rfc-editor.org/info/rfc3315>. - [RFC3596] Thomson, S., Huitema, C., Ksinant, V., and M. Souissi, "DNS Extensions to Support IP Version 6", RFC 3596, DOI 10.17487/RFC3596, October 2003,
<http://www.rfc-editor.org/info/rfc3596>. - [RFC4620] Crawford, M. and B. Haberman, Ed., "IPv6 Node Information Queries", RFC 4620, DOI 10.17487/RFC4620, August 2006,
<http://www.rfc-editor.org/info/rfc4620>. - [RFC4795] Aboba, B., Thaler, D., and L. Esibov, "Link-local Multicast Name Resolution (LLMNR)", RFC 4795, DOI 10.17487/RFC4795, January 2007,
<http://www.rfc-editor.org/info/rfc4795>. - [RFC6762] Cheshire, S. and M. Krochmal, "Multicast DNS", RFC 6762, DOI 10.17487/RFC6762, February 2013,
<http://www.rfc-editor.org/info/rfc6762>. - [RFC6763] Cheshire, S. and M. Krochmal, "DNS-Based Service Discovery", RFC 6763, DOI 10.17487/RFC6763, February 2013,
<http://www.rfc-editor.org/info/rfc6763>. - [RFC7288] Thaler, D., "Reflections on Host Firewalls", RFC 7288, DOI 10.17487/RFC7288, June 2014,
<http://www.rfc-editor.org/info/rfc7288>. - [RFC7719] Hoffman, P., Sullivan, A., and K. Fujiwara, "DNS Terminology", RFC 7719, DOI 10.17487/RFC7719, December 2015,
<http://www.rfc-editor.org/info/rfc7719>. - [RFC7819] Jiang, S., Krishnan, S., and T. Mrugalski, "Privacy Considerations for DHCP", RFC 7819, DOI 10.17487/RFC7819, April 2016,
<http://www.rfc-editor.org/info/rfc7819>. - [RFC7824] Krishnan, S., Mrugalski, T., and S. Jiang, "Privacy Considerations for DHCPv6", RFC 7824, DOI 10.17487/RFC7824, May 2016,
<http://www.rfc-editor.org/info/rfc7824>. - [RFC7844] Huitema, C., Mrugalski, T., and S. Krishnan, "Anonymity Profiles for DHCP Clients", RFC 7844, DOI 10.17487/RFC7844, May 2016,
<http://www.rfc-editor.org/info/rfc7844>. - [TRAC2016] Faath, M., Winter, R., and F. Weisshaar, "How Broadcast Data Reveals Your Identity and Social Graph", IEEE, Wireless Communications and Mobile Computing Conference (IWCMC), 2016 International, DOI 10.1109/IWCMC.2016.7577084, September 2016.
Acknowledgments π«Ά
Huge thanks to the members of the INTAREA Working Group π They gave us loads of discussions and reviews, and the doc is so much better for it β¨
Authors' Addresses π
Christian Huitema
Private Octopus Inc.
Friday Harbor, WA 98250
United States of America
Email: huitema@huitema.net
Dave Thaler
Microsoft
Redmond, WA 98052
United States of America
Email: dthaler@microsoft.com
Rolf Winter
University of Applied Sciences Augsburg
Augsburg
DE
Email: rolf.winter@hs-augsburg.de
π¦ where this page comes from
- ietf: rfc8117 2017-03
- π girlified by claude-haiku-5-5 on : a language model's rewrite of the original, under its terms