Три года назад Apple представила функцию Private Wi-Fi Address, которая должна была скрывать MAC-адрес устройств при подключении к сети для защиты конфиденциальности пользователей. Как теперь заявляют исследователи, эта функция не работала изначально.
«Для подключения к сети Wi-Fi устройство должно идентифицировать себя в сети с помощью уникального сетевого адреса, называемого Media Access Control (MAC), — рассказывает Apple в документации. — Если устройство всегда использует один и тот же MAC-адрес Wi-Fi во всех сетях, сетевым операторам и другим наблюдателям проще соотнести этот адрес с сетевой активностью устройства и его местоположением во время использования сети. Это позволяет осуществлять отслеживание и профилирование пользователей, причем применимо ко всем устройствам во всех сетях Wi-Fi».
Функция Private Wi-Fi Address должна была препятствовать такой слежке путем генерации разных MAC-адресов для каждого SSID.
Однако, как выяснилось теперь, функция спуфинга не работала должным образом с самого момента ее появления в iOS 14, iPadOS 14 и watchOS 7. Проблема возникла из-за ошибки в mDNSResponder, процессе, связанном с сетевым протоколом Bonjour.
Этот баг получил идентификатор CVE-2023-42846 и была обнаружена специалистами из компании Mysk Inc, которая разрабатывает различные приложения для iOS и macOS.
«Функция Private Wi-Fi Address была бесполезна с момента ее появления в iOS 14, — пишут эксперты в Mastodon. — Когда iPhone подключается к сети, он отправляет multicast-запросы для обнаружения устройств AirPlay в сети. В этих запросах iOS передает реальный Wi-Fi MAC-адрес устройства».
Исследователи объясняют, что Apple действительно заменяет реальный MAC-адрес устройства на data link уровне подменным MAC-адресом. Однако при этом реальный MAC-адрес устройства передавался наряду с подменным в запросах для обнаружения AirPlay (даже при подключении к VPN).
По словам экспертов, с помощью Wireshark видно, что реальный MAC-адрес передается в поле Option Data, как показано в ролике ниже.
Apple исправила ошибку, связанную с mDNSResponder на прошлой неделе, выпустив iOS 17.1, iPadOS 17.1 и watchOS 10.1. Пользователи iOS 16 и iPadOS 16 также получили исправление, а патча для более старой iOS 15 пока нет.