Zachowanie randomizacji adresu MAC

Funkcja randomizacji adresu MAC umożliwia urządzeniom używanie losowego adresu MAC podczas łączenia się z siecią Wi-Fi. Instrukcje implementacji znajdziesz w artykule Wdrażanie losowego adresu MAC. Na tej stronie opisujemy działanie losowego adresu MAC w Androidzie.

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 śledzenia lokalizacji użytkownika. Urządzenia od dawna używają fabrycznego adresu MAC do łączenia się z siecią Wi-Fi. Fabryczny adres MAC jest globalnie unikalny i statyczny, co umożliwia śledzenie i indywidualną identyfikację urządzenia.

Funkcja randomizacji MAC zwiększa prywatność użytkownika, ponieważ podczas łączenia z siecią Wi-Fi używa losowego adresu MAC.

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 adresu MAC losuje adres, ustawiając bit administrowany lokalnie na 1, a bit unicast na 0. Pozostałe 46 bitów jest losowych.

W przypadku urządzeń z Androidem 10 lub nowszym platforma domyślnie używa losowego adresu MAC. Użytkownicy mogą włączać i wyłączać losowanie adresu MAC w przypadku poszczególnych sieci, korzystając z opcji na ekranie Szczegóły sieciUstawieniach, jak pokazano na ilustracji 1. Jeśli użytkownik wyłączy randomizację adresu MAC w przypadku sieci, platforma użyje fabrycznego adresu MAC (globalnie unikalnego adresu).

Opcja randomizacji adresu MAC

Rysunek 1. opcję randomizacji adresu MAC.

Rodzaje randomizacji adresu MAC

Platforma Android korzysta z 2 rodzajów randomizacji adresów MAC: trwałejnietrwałej. Jeśli użytkownik wyłączy randomizację adresu MAC, używany będzie fabryczny adres MAC.

Android określa, jakiego typu losowego adresu MAC użyć, gdy urządzenie połączy się z siecią Wi-Fi. Domyślnie Android używa trwałej randomizacji. Od Androida 12 Android stosuje nietrwałą randomizację w tych sytuacjach:

  • Aplikacja z sugestiami dotyczącymi sieci określa, że w przypadku sieci ma być używane nietrwałe losowe przypisywanie adresów MAC, za pomocą interfejsu WifiNetworkSuggestion.Builder#setMacRandomizationSetting.
  • Sieć jest otwarta i nie napotkała portalu przechwytującego, a nakładka config_wifiAllowEnhancedMacRandomizationOnOpenSsids jest ustawiona na true. Domyślnie ta nakładka jest wyłączona (false).

Trwała randomizacja

Gdy funkcja randomizacji adresu MAC jest włączona, Android domyślnie używa trwałego typu randomizacji. Android generuje trwały losowy adres MAC na podstawie parametrów profilu sieci, w tym identyfikatora SSID, rodzaju zabezpieczeń lub pełnej i jednoznacznej nazwy domeny (w przypadku sieci Passpoint). Ten adres MAC pozostaje bez zmian do momentu przywrócenia ustawień fabrycznych. Adres MAC nie jest ponownie losowany, jeśli użytkownik zapomni sieć Wi-Fi i doda ją ponownie, ponieważ adres MAC zależy od parametrów profilu sieci.

Stałe adresy MAC są niezbędne w przypadkach, gdy sieci polegają na ich trwałości, aby zapewnić użytkownikowi przydatne funkcje, np. zapamiętywanie urządzenia i umożliwianie użytkownikom pomijania ekranu logowania zgodnie z oczekiwaniami lub włączanie kontroli rodzicielskiej.

W przypadku Androida 10 i 11 platforma używa trwałej randomizacji w przypadku wszystkich sieci, gdy randomizacja adresu MAC jest włączona.

Nietrwała randomizacja

W przypadku nietrwałego typu randomizacji, który jest używany w niektórych sieciach na Androidzie 12 lub nowszym, moduł Wi-Fi ponownie randomizuje adres MAC na początku każdego połączenia lub platforma używa istniejącego zrandomizowanego adresu MAC do połączenia z siecią. Moduł Wi-Fi ponownie losuje adres MAC w tych sytuacjach:

  • Okres dzierżawy DHCP wygasł, a od ostatniego odłączenia urządzenia od tej sieci minęły ponad 4 godziny.
  • Obecny losowy adres MAC profilu sieci został wygenerowany ponad 24 godziny temu. Ponowna randomizacja adresu MAC następuje tylko na początku nowego połączenia. Wi-Fi nie będzie aktywnie rozłączać się w celu ponownego losowego wygenerowania adresu MAC.

Jeśli żadna z tych sytuacji nie występuje, platforma używa wcześniej losowo wygenerowanego adresu MAC do połączenia z siecią.

Opcja programisty dotycząca nietrwałego losowania

Na urządzeniach z Androidem 11 lub nowszym użytkownicy mogą włączyć nietrwałe losowe adresy MAC globalnie dla wszystkich sieci Wi-Fi (w których włączono losowe adresy MAC) na ekranie opcji programisty. Opcję włączania nietrwałej randomizacji adresów MAC dla wszystkich profili znajdziesz w sekcji Ustawienia > Opcje programisty > Nietrwała randomizacja adresów MAC w sieci Wi-Fi.

Opcja nietrwałej randomizacji adresów MAC w sieci Wi-Fi

Rysunek 2. opcja nietrwałej randomizacji adresów MAC w sieci Wi-Fi.