隱私:隨機選擇 MAC 地址
隱私:隨機選擇 MAC 地址
從 Android 8.0 開始,Android 裝置在未連線到網路的情況下探測新網路時會使用隨機 MAC 地址。
在 Android 9 中,您可以啟用開發者選項(預設處於停用狀態),使裝置在連線到 WLAN 網路時使用隨機選擇的 MAC 地址。系統會對每個 SSID 使用隨機選擇的 MAC 地址。
隨機選擇 MAC 地址可防止監聽器使用 MAC 地址來生成裝置活動的歷史記錄,從而加強對使用者隱私的保護。
此外,隨機選擇 MAC 地址也是 WLAN 感知和 WLAN RTT 操作的一部分。
實現
要在裝置上實現隨機選擇 MAC 地址,請執行以下操作:
-
與 WLAN 晶片供應商合作實現
IWifiStaIface.setMacAddress()
HAL 方法。- AOSP 參考實現會關閉介面、更改 MAC 地址並備份介面。這種參考實現行為可能不適用於某些晶片供應商。
-
在“設定”
config.xml
中,將config_wifi_support_connected_mac_randomization
設定為 true(該步驟可在裝置自定義疊層中完成)。- 此標記用於控制參考“設定”實現的開發者選項中是否顯示“連線時隨機選擇 MAC 網址”切換開關。如果設定為 true
- 此標記用於控制參考“設定”實現的開發者選項中是否顯示“連線時隨機選擇 MAC 網址”切換開關。如果設定為 true
-
使用驗證中所述的方法測試實現。
系統介面必須:
- 在開發者選單中有一項可啟用或停用該功能的設定。
- 如果啟用了隨機選擇 MAC 地址功能,則在系統顯示 WLAN 介面 MAC 地址時顯示生成的隨機 MAC 地址。
使用設定介面的參考實現來實現新提示。
驗證
要驗證該功能是否如期正常執行,請同時執行整合測試 (ACTS) 和手動測試。
要執行整合測試,請使用位於 tools/test/connectivity/acts/tests/google/wifi
中的 ACTS 檔案 WifiConnectedMacRandomizationTest.py
要執行手動測試,請執行以下操作:
- 開啟該功能並驗證裝置是否能夠連線到 WLAN 網路。
- 驗證 WLAN 設定中顯示的 MAC 地址是否與裝置正在使用的 MAC 地址(通過 ifconfig 確定)相符。
- 執行資料包捕獲來驗證裝置是否使用隨機選擇的 MAC 地址(而非出廠 MAC 地址)。
- 檢查裝置是否會在連線到同一網路時使用同一 MAC 地址,驗證裝置是否儲存了基於網路隨機選擇的 MAC 地址。
- 驗證忘記網路並重新連線到同一 SSID 後是否會生成新的隨機 MAC 地址。
在連線到網路時,您可能會遇到長達 3 秒的延遲,這是因為只要設定了新的 MAC 地址,系統就會清除掃描結果。在連線到網路並驗證網際網路連線時,也可能會出現其他延遲。
如果 WLAN 驅動程式或韌體未正確同步 MAC 地址狀態與主機核心,則網際網路連線檢查將會失敗。如果出現這種情況,請諮詢您的晶片合作伙伴,確保驅動程式或韌體已根據新的 MAC 地址進行了相應更新。