Поведение рандомизации MAC

Функция рандомизации MAC-адресов позволяет устройствам использовать случайный MAC-адрес при подключении к сети Wi-Fi. Инструкции по реализации см. в разделе «Реализация рандомизации MAC-адресов» . На этой странице описывается поведение рандомизации MAC-адресов в Android.

Когда ваше устройство подключается к сети Wi-Fi или точке доступа, оно использует MAC-адреса. Поскольку эти 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-адрес (глобально уникальный адрес).

опция рандомизации MAC

Рисунок 1. Вариант рандомизации MAC.

типы рандомизации MAC

В Android-фреймворке используются два типа рандомизации MAC-адресов: постоянная и непостоянная . Если пользователь отключает рандомизацию MAC-адресов, используется заводской MAC-адрес.

Android определяет, какой тип рандомизации MAC-адреса использовать при подключении устройства к сети Wi-Fi. По умолчанию Android использует постоянную рандомизацию. Начиная с Android 12, в следующих ситуациях используется непостоянная рандомизация:

  • Приложение для подбора сети указывает, что для сети должна использоваться непостоянная рандомизация, используя API WifiNetworkSuggestion.Builder#setMacRandomizationSetting .
  • Сеть является открытой и не сталкивалась с порталом авторизации, а параметр config_wifiAllowEnhancedMacRandomizationOnOpenSsids установлен в true . По умолчанию этот параметр отключен (установлено значение false ).

Постоянная рандомизация

По умолчанию Android использует тип постоянной рандомизации, если включена рандомизация MAC-адреса. Android генерирует постоянный рандомизированный MAC-адрес на основе параметров профиля сети, включая SSID, тип безопасности или FQDN (для сетей 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 и выше можно включить непостоянную рандомизацию MAC-адресов для всех сетей Wi-Fi (в которых включена рандомизация MAC-адресов) через экран параметров разработчика . Параметр включения непостоянной рандомизации MAC-адресов для всех профилей находится в разделе «Настройки» > «Параметры разработчика» > «Постоянная рандомизация MAC-адресов Wi-Fi» .

Опция непостоянной рандомизации MAC-адресов в Wi-Fi

Рисунок 2. Вариант непостоянной рандомизации MAC-адресов в Wi-Fi.