MAC address randomization can provide privacy benefits for enterprises, but the approach isn't without risks or...
challenges. Part one of this series explained the concept of MAC address randomization and the motivations behind such schemes being employed by major operating system vendors, including Microsoft and Apple. This article looks at how these randomization schemes are implemented and executed, as well as the potential risks involved.
MAC address randomization implementations
Two of the most popular MAC address randomization implementations are those in Apple iOS and Microsoft Windows. Starting with iOS 8, Apple's mobile OS has been shipping with MAC address randomization support. Essentially, iOS randomizes the MAC addresses of the Probe Request packets that are employed for discovering Wi-Fi networks, to avoid the nodes from being tracked and/or identified while they are simply discovering Wi-Fi networks. Once a suitable network has been discovered, iOS will employ the real hardware MAC address when connecting to that network (i.e., associating with the corresponding access point). This means that a node will not leak its identity when moving around without connecting to any networks, but advertise its presence when actually connecting to a Wi-Fi network. As it should be obvious, since the real MAC address is employed when connecting to a network, the MAC address will remain globally-unique, permanent and stable across networks.
Another popular operating system that ships with MAC address randomization is Microsoft Windows 10. However, the randomization scheme employed by Windows 10 has improved properties over that of iOS 8: it is meant to produce randomized MAC addresses that are stable within each network, but that changes as the node moves from one network to another. Windows 10 generates random MAC addresses with the expression:
SHA256(SSID, MAC_address, connectionID, secret)
- SHA256(): Cryptographic hash function;
- SSID: The Service Set Identifier (SSID) of the network the node is attaching to;
- MAC_address: Real MAC address of the underlying network interface card;
- ConnectionID: A value that changes each time the user removes and re-adds the corresponding network (i.e., when the user forgets and subsequently connects to this network); and
- Secret: A random number generated during system initialization, and maintained in nonvolatile memory.
The actual randomized MAC address is obtained by extracting the low-order 48-bits from the result of the function above, and setting the g/l bit (b1 bit) of the address to indicate "locally administered address."
Based on the equation above, a node that connects to, say, network X will configure the address A, while the same node will configure the address B when subsequently connecting to a different network, Y -- since the SSID of the network will typically change from network X to network Y. If the node eventually connects back to network X, it will configure, again, the address A -- since all the parameters to the SHA256() function will be the same as in the original case.
MAC address randomization risks
Both of the MAC address randomization schemes discussed earlier in this article result in addresses that are stable within each Wi-Fi network -- with those generated by iOS 8 being actually constant across networks. These schemes should, in principle, result in addresses with the same per-network stability properties as those of the traditional permanent MAC addresses, and hence not represent any operational challenges on existing networks.
However, MAC address randomization could be thought of as work in progress, and one might expect that different operating systems may implement more aggressive randomization schemes that do not result in similar stability properties. In such cases, any applications or tools that rely on the stability of MAC addresses, such as web portals for internet access, might break.
Besides, it is still an open question how MAC address randomization might affect networking and security devices that, while prepared to handle a decent number of MAC addresses, might need to handle a larger number of addresses if nodes reconfigure different randomized MAC addresses over short periods of time, and/or upon network reconnections.
Ongoing work on privacy-enhanced protocols
Even in the presence of the MAC address randomization and improved IP address generation -- see RFC7217 -- a plethora of improperly-generated numeric identifiers are typically employed throughout the protocol stack, thus still resulting in information leakages that may be leveraged to perform similar attacks to those discussed earlier in this article. Because of this, further work is required from standards organizations such as the IEEE and the IETF so that these traditional flaws are eliminated and the privacy properties of different protocols are improved.
Learn more about out-of-band management for network devices
Discover the best ways to handle network security alerts
Read about how to prepare for IPv6 attacks and threats