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.
Gdy urządzenie łączy się z siecią Wi-Fi lub punktem dostępu, używa adresów MAC. 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 lokalnie administrowany 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. Możesz włączyć lub wyłączyć losowość adresu MAC dla poszczególnych sieci, korzystając z opcji na ekranie Szczegóły sieci w Ustawieniach, jak pokazano na ilustracji 1. Jeśli wyłączysz randomizację adresu MAC w przypadku sieci, platforma będzie używać fabrycznego adresu MAC (globalnie unikalnego adresu).
Rysunek 1. opcję randomizacji adresu MAC.
Rodzaje randomizacji adresu MAC
Platforma Android korzysta z 2 rodzajów randomizacji adresów MAC: trwałej i nietrwałej. Jeśli użytkownik wyłączy randomizację adresu MAC, używany będzie fabryczny adres MAC.
Android określa, jakiego typu randomizacji adresu MAC użyć, gdy urządzenie łączy się z siecią Wi-Fi. Domyślnie Android używa trwałej randomizacji. Od Androida 12 Android w tych sytuacjach używa nietrwałego losowania:
- Aplikacja z sugestiami dotyczącymi sieci określa, że w przypadku sieci ma być używane nietrwałe losowe przypisywanie adresów IP, za pomocą interfejsu
WifiNetworkSuggestion.Builder#setMacRandomizationSettingAPI. - Sieć jest otwarta i nie napotkała portalu przechwytującego, a nakładka
config_wifiAllowEnhancedMacRandomizationOnOpenSsidsjest ustawiona natrue. Domyślnie ta nakładka jest wyłączona (false).
Trwała randomizacja
Gdy randomizacja 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 w przypadku sieci Passpoint – w pełni kwalifikowanej nazwy domeny (FQDN). Ten adres MAC pozostaje taki sam do momentu przywrócenia urządzenia do ustawień fabrycznych. Adres MAC nie jest ponownie generowany losowo, jeśli zapomnisz sieć Wi-Fi i dodasz ją ponownie, ponieważ zależy on od parametrów profilu sieci.
Stałe adresy MAC są niezbędne, gdy sieci korzystają z ich trwałości, aby zapewnić przydatne funkcje. Mogą na przykład pomóc zapamiętać urządzenie i umożliwić pominięcie ekranu logowania zgodnie z oczekiwaniami lub włączyć kontrolę rodzicielską.
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 randomizacji nietrwałej, która jest używana w niektórych sieciach na urządzeniach z Androidem 12 lub nowszym, moduł Wi-Fi ponownie losuje adres MAC na początku każdego połączenia lub platforma używa istniejącego losowego 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ę, aby ponownie zrandomizować adres 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 możesz włączyć globalne, nietrwałe losowanie adresu MAC dla wszystkich sieci Wi-Fi (w których jest włączone losowanie adresu 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.
Rysunek 2. opcja nietrwałej randomizacji adresów MAC w sieci Wi-Fi.