MAC rastgele hale getirme özelliği, cihazların kablosuz ağa bağlanırken rastgele bir MAC adresi kullanmasına olanak tanır. Uygulama talimatları için MAC adresini rastgele atama özelliğini uygulama başlıklı makaleyi inceleyin. Bu sayfada, Android'de MAC rastgele hale getirme davranışı açıklanmaktadır.
MAC adresleri, cihazlar bir kablosuz ağa veya erişim noktasına bağlanırken kullanılır. Bu MAC adresleri şifreleme olmadan iletildiğinden yakalanabilir ve kullanıcının konumunu izlemek için kullanılabilir. Cihazlar, kablosuz ağa bağlanmak için genellikle fabrika MAC adresini kullanır. Fabrika MAC adresi, cihazın izlenmesine ve ayrı ayrı tanımlanmasına olanak tanıyan, dünya genelinde benzersiz ve statik bir adrestir.
MAC rastgele seçimi özelliği, kablosuz ağa bağlanırken rastgele bir MAC adresi kullanarak kullanıcı gizliliğini artırır.
MAC adresleri 48 bit uzunluğundadır ve genellikle 00:11:22:AA:BB:CC
gibi 12 onaltılık basamakla (her sekizlik 8 bit olduğundan 6 sekizlik) temsil edilir. MAC rastgele oluşturma özelliği, yerel olarak yönetilen bitini 1 ve unicast bitini 0 değerine ayarlayarak adresi rastgele hale getirir. Diğer 46 bit rastgele oluşturulur.
Android 10 veya sonraki sürümleri çalıştıran cihazlarda çerçeve varsayılan olarak rastgele MAC adresi kullanır. Kullanıcılar, Şekil 1'de gösterildiği gibi Ayarlar'daki Ağ ayrıntıları ekranındaki bir seçenek aracılığıyla ağlar için MAC rastgeleleştirmeyi etkinleştirebilir veya devre dışı bırakabilir. Kullanıcı bir ağ için MAC adresini rastgele atama özelliğini devre dışı bırakırsa çerçeve, fabrika MAC adresini (genel olarak benzersiz adres) kullanır.
Şekil 1. MAC rastgele hale getirme seçeneği.
MAC rastgele seçim türleri
Android çerçevesi iki tür MAC rastgeleleştirme kullanır: kalıcı rastgeleleştirme ve kalıcı olmayan rastgeleleştirme. Kullanıcı MAC rastgeleleştirmeyi devre dışı bırakırsa fabrika MAC adresi kullanılır.
Android, cihaz bir kablosuz ağa bağlanırken hangi MAC rastgeleleştirme türünün kullanılacağını belirler. Android varsayılan olarak kalıcı rastgeleleştirme kullanır. Android 12'den itibaren Android, aşağıdaki durumlarda kalıcı olmayan rastgeleleştirme kullanır:
- Ağ önerisi uygulaması,
WifiNetworkSuggestion.Builder#setMacRandomizationSetting
API'si aracılığıyla ağ için kalıcı olmayan rastgeleleştirmenin kullanılacağını belirtir. - Ağ, giriş portalıyla karşılaşmamış açık bir ağdır ve
config_wifiAllowEnhancedMacRandomizationOnOpenSsids
yer paylaşımıtrue
olarak ayarlanmıştır. Bu yer paylaşımı varsayılan olarak devre dışıdır (false
olarak ayarlanmıştır).
Kalıcı rastgele hale getirme
Android, MAC adresini rastgele atama özelliği etkinleştirildiğinde varsayılan olarak kalıcı rastgele atama türünü kullanır. Android, SSID, güvenlik türü veya FQDN (Passpoint ağları için) gibi ağ profili parametrelerine göre kalıcı, rastgele bir MAC adresi oluşturur. Bu MAC adresi, fabrika ayarlarına sıfırlanana kadar aynı kalır. Kullanıcı kablosuz ağı unutup yeniden eklerse MAC adresi, ağ profili parametrelerine bağlı olduğundan tekrar rastgele hale getirilmez.
Ağların, kullanıcıya faydalı işlevler sunmak (örneğin, bir cihazı hatırlama ve kullanıcıların giriş ekranını beklendiği gibi atlamasına izin vermek veya ebeveyn denetimlerini etkinleştirmek) sağlamak için MAC adresinin kalıcılığına bağlı olduğu durumlarda kalıcı MAC adresleri gereklidir.
Android 10 ve 11 için çerçeve, MAC adresini rastgele atama özelliği etkinleştirildiğinde tüm ağlar için kalıcı rastgele atama kullanır.
Kalıcı olmayan rastgele hale getirme
Kablosuz bağlantı modülü, Android 12 veya sonraki sürümlerdeki bazı ağlarda kullanılan kalıcı olmayan rastgele hale getirme türünde her bağlantının başında MAC adresini yeniden rastgele yapar veya çerçeve, ağa bağlanmak için mevcut rastgele MAC adresini kullanır. Kablosuz modül, MAC adresini aşağıdaki durumlarda yeniden rastgele oluşturur:
- DHCP kiralama süresi sona erdi ve cihazın bu ağdan son bağlantısının kesilmesinden bu yana 4 saatten fazla zaman geçti.
- Ağ profili için mevcut rastgele MAC, 24 saatten uzun bir süre önce oluşturulmuştur. MAC adresinin yeniden rastgele seçilmesi yalnızca yeni bir bağlantının başlangıcında gerçekleşir. Kablosuz ağ, MAC adresini yeniden rastgele hale getirmek amacıyla etkin bir şekilde bağlantıyı kesmez.
Bu durumların hiçbiri geçerli değilse çerçeve, ağa bağlanmak için daha önce rastgele hale getirilmiş MAC adresini kullanır.
Kalıcı olmayan rastgele hale getirme için geliştirici seçeneği
Android 11 veya sonraki sürümleri çalıştıran cihazlarda kullanıcılar, geliştirici seçenekleri ekranını kullanarak tüm kablosuz ağlar (MAC rastgeleleştirme özelliği etkin olan) için kalıcı olmayan MAC rastgeleleştirme özelliğini dünya genelinde etkinleştirebilir. Tüm profiller için kalıcı olmayan MAC rastgele hale getirmeyi etkinleştirme seçeneği Ayarlar > Geliştirici Seçenekleri > Kablosuz kalıcı olmayan MAC rastgele hale getirme modu'nda bulunur.
Şekil 2. Kablosuz kalıcı olmayan MAC rastgele hale getirme seçeneği.