Функция рандомизации MAC-адресов позволяет устройствам использовать рандомизированный MAC-адрес при подключении к сети Wi-Fi. Инструкции по реализации см. в разделе Реализация рандомизации MAC-адресов . На этой странице описывается поведение рандомизации MAC-адресов в Android.
MAC-адреса используются устройствами при подключении к сети Wi-Fi или точке доступа. Поскольку эти MAC-адреса передаются без шифрования, их можно перехватить и использовать для потенциального отслеживания местоположения пользователя. Исторически сложилось так, что устройства используют заводской MAC-адрес для подключения к сети Wi-Fi. Заводской MAC-адрес является глобально уникальным и статическим, что позволяет отслеживать и индивидуально идентифицировать устройство.
Функция рандомизации MAC-адресов повышает конфиденциальность пользователей за счет использования рандомизированного MAC-адреса при подключении к сети Wi-Fi.
MAC-адреса имеют длину 48 бит и обычно представлены 12 шестнадцатеричными цифрами (6 октетов, так как каждый октет равен 8 битам), например 00:11:22:AA:BB:CC
. Функция рандомизации MAC рандомизирует адрес, устанавливая локально администрируемый бит в 1, а бит индивидуальной рассылки в 0. Остальные 46 бит рандомизируются.
Для устройств под управлением Android 10 или более поздней версии платформа по умолчанию использует рандомизированный MAC-адрес. Пользователи могут включить или отключить рандомизацию MAC-адресов для отдельных сетей с помощью параметра на экране сведений о сети в настройках , как показано на рис. 1. Если пользователь отключает рандомизацию MAC-адресов для сети, платформа использует заводской MAC-адрес (глобально уникальный адрес).
Рисунок 1. Вариант рандомизации MAC.
Типы рандомизации MAC
Платформа Android использует два типа рандомизации MAC: постоянная рандомизация и непостоянная рандомизация . Если пользователь отключает рандомизацию MAC-адресов, используется заводской MAC-адрес.
Android определяет, какой тип рандомизации MAC-адресов использовать при подключении устройства к сети Wi-Fi. По умолчанию Android использует постоянную рандомизацию. Начиная с Android 12, Android использует непостоянную рандомизацию в следующих ситуациях:
- Приложение предложения сети указывает, что непостоянная рандомизация будет использоваться для сети через
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
API. - Сеть является открытой сетью, которая не сталкивалась с авторизованным порталом, а для наложения
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
установлено значениеtrue
. Это наложение отключено (установлено значениеfalse
) по умолчанию.
Постоянная рандомизация
Android использует постоянный тип рандомизации по умолчанию, когда функция рандомизации MAC-адресов включена. Android генерирует постоянный рандомизированный MAC-адрес на основе параметров сетевого профиля, включая SSID, тип безопасности или полное доменное имя (для сетей Passpoint). Этот MAC-адрес остается неизменным до сброса настроек. MAC-адрес не рандомизируется повторно, если пользователь забывает и повторно добавляет сеть Wi-Fi, поскольку MAC-адрес зависит от параметров сетевого профиля.
Постоянные MAC-адреса необходимы в тех случаях, когда сети полагаются на постоянство MAC-адреса, чтобы предоставить пользователю полезные функции, например, чтобы запомнить устройство и позволить пользователям обходить экран входа в систему, как ожидается, или включить родительский контроль.
Для Android 10 и 11 платформа использует постоянную рандомизацию для всех сетей, когда включена рандомизация MAC-адресов.
Непостоянная рандомизация
При непостоянном типе рандомизации, который используется для некоторых сетей в Android 12 или выше, модуль Wi-Fi повторно рандомизирует MAC-адрес в начале каждого соединения, или платформа использует существующий рандомизированный MAC-адрес для подключения к сети. сеть. Модуль Wi-Fi повторно рандомизирует MAC-адрес в следующих ситуациях:
- Срок аренды DHCP истек, и с момента последнего отключения устройства от этой сети прошло более 4 часов.
- Текущий рандомизированный MAC-адрес для профиля сети был создан более 24 часов назад. Повторная рандомизация MAC-адреса происходит только в начале нового соединения. Wi-Fi не будет активно отключаться с целью повторного рандомизации MAC-адреса.
Если ни одна из этих ситуаций не применима, платформа использует ранее рандомизированный MAC-адрес для подключения к сети.
Вариант разработчика для непостоянной рандомизации
Для устройств под управлением Android 11 или 12 пользователи могут включить непостоянную рандомизацию MAC-адресов глобально для всех сетей Wi-Fi (в которых включена рандомизация MAC-адресов) через экран параметров разработчика . Параметр включения непостоянной рандомизации MAC-адресов для всех профилей находится в разделе « Настройки» > «Параметры разработчика» > «Непостоянная рандомизация MAC-адресов Wi-Fi» .
Рис. 2. Опция рандомизации непостоянного MAC-адреса Wi-Fi.