Funkcja randomizacji adresów MAC umożliwia urządzeniom korzystanie z losowego adresu MAC podczas łączenia się z siecią Wi-Fi. Aby uzyskać instrukcje dotyczące implementacji, zobacz Implementowanie losowania adresów MAC . Na tej stronie opisano zachowanie randomizacji adresów MAC w systemie Android.
Adresy MAC są używane przez urządzenia podczas łączenia się z siecią Wi-Fi lub punktem dostępu. Ponieważ te adresy MAC są przesyłane bez szyfrowania, można je przechwycić i wykorzystać do potencjalnego śledzenia lokalizacji użytkownika. Historycznie rzecz biorąc, urządzenia korzystały z fabrycznego adresu MAC do łączenia się z siecią Wi-Fi. Fabryczny adres MAC jest globalnie unikalny i statyczny, co pozwala na śledzenie i indywidualną identyfikację urządzenia.
Funkcja randomizacji adresów MAC zwiększa prywatność użytkownika, korzystając z losowego adresu MAC podczas łączenia się z siecią Wi-Fi.
Adresy MAC mają długość 48 bitów i są zwykle reprezentowane przez 12 cyfr szesnastkowych (6 oktetów, ponieważ każdy oktet ma 8 bitów), np. 00:11:22:AA:BB:CC
. Funkcja randomizacji MAC losuje adres, ustawiając bit administrowany lokalnie na 1, a bit emisji pojedynczej na 0. Pozostałe 46 bitów jest losowych.
W przypadku urządzeń z systemem Android 10 lub nowszym platforma domyślnie używa losowego adresu MAC. Użytkownicy mogą włączyć lub wyłączyć losowość adresów MAC dla poszczególnych sieci za pomocą opcji na ekranie Szczegóły sieci w Ustawieniach , jak pokazano na rysunku 1. Jeśli użytkownik wyłączy losowanie adresów MAC dla sieci, platforma użyje fabrycznego adresu MAC (unikalnego adresu globalnego).
Rysunek 1. Opcja randomizacji MAC.
Typy randomizacji MAC
Struktura Androida wykorzystuje dwa typy randomizacji MAC: randomizację trwałą i randomizację nietrwałą . Jeśli użytkownik wyłączy randomizację MAC, używany będzie fabryczny adres MAC.
Android określa, jakiego typu losowania adresów MAC użyć, gdy urządzenie połączy się z siecią Wi-Fi. Domyślnie system Android korzysta z trwałej randomizacji. Począwszy od Androida 12, Android używa nietrwałej randomizacji w następujących sytuacjach:
- Aplikacja z sugestiami sieciowymi określa, że w sieci ma być używana nietrwała randomizacja za pośrednictwem interfejsu API
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
. - Sieć jest siecią otwartą, która nie napotkała portalu przechwytującego, a nakładka
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
ma ustawioną wartośćtrue
. Ta nakładka jest domyślnie wyłączona (ustawiona nafalse
).
Stała randomizacja
Android domyślnie używa trwałego typu randomizacji, gdy włączona jest funkcja losowania MAC. Android generuje trwały, losowy adres MAC na podstawie parametrów profilu sieciowego, w tym identyfikatora SSID, typu zabezpieczeń lub nazwy FQDN (w przypadku sieci Passpoint). Ten adres MAC pozostaje taki sam aż do przywrócenia ustawień fabrycznych. Adres MAC nie jest ponownie losowany, jeśli użytkownik zapomni i ponownie doda sieć Wi-Fi, ponieważ adres MAC zależy od parametrów profilu sieciowego.
Trwałe adresy MAC są niezbędne w przypadkach, gdy sieci polegają na trwałości adresu MAC, aby zapewnić użytkownikowi użyteczną funkcjonalność, na przykład w celu zapamiętania urządzenia i umożliwienia użytkownikom ominięcia ekranu logowania zgodnie z oczekiwaniami lub włączenia kontroli rodzicielskiej.
W przypadku Androida 10 i 11 platforma wykorzystuje trwałą randomizację dla wszystkich sieci, gdy włączona jest randomizacja MAC.
Randomizacja nietrwała
W przypadku nietrwałego typu randomizacji, który jest używany w niektórych sieciach w systemie Android 12 lub nowszym, moduł Wi-Fi ponownie losuje adres MAC na początku każdego połączenia lub struktura wykorzystuje istniejący losowy adres MAC do połączenia się z sieć. Moduł Wi-Fi ponownie losuje adres MAC w następujących sytuacjach:
- Upłynął czas trwania dzierżawy DHCP i upłynęły ponad 4 godziny od ostatniego rozłączenia urządzenia z tą siecią.
- Bieżący losowy adres MAC dla profilu sieci został wygenerowany ponad 24 godziny temu. Ponowna losowość adresów MAC ma miejsce tylko na początku nowego połączenia. Wi-Fi nie będzie aktywnie rozłączać się w celu ponownego losowania adresu MAC.
Jeśli żadna z tych sytuacji nie ma zastosowania, platforma używa wcześniej losowego adresu MAC do połączenia z siecią.
Opcja deweloperska dla nietrwałej randomizacji
W przypadku urządzeń z systemem Android 11 lub nowszym użytkownicy mogą globalnie włączyć nietrwałą randomizację adresów MAC dla wszystkich sieci Wi-Fi (w których włączono losowanie adresów MAC) na ekranie opcji programisty . Opcję włączenia nietrwałej losowości adresów MAC dla wszystkich profili można znaleźć w Ustawieniach > Opcje programisty > Nietrwała losowość adresów MAC Wi-Fi .
Rysunek 2. Opcja nietrwałej losowości adresów MAC w sieci Wi-Fi.