1. 程式人生 > >隱私:隨機選擇 MAC 地址

隱私:隨機選擇 MAC 地址

隱私:隨機選擇 MAC 地址

從 Android 8.0 開始,Android 裝置在未連線到網路的情況下探測新網路時會使用隨機 MAC 地址。

在 Android 9 中,您可以啟用開發者選項(預設處於停用狀態),使裝置在連線到 WLAN 網路時使用隨機選擇的 MAC 地址。系統會對每個 SSID 使用隨機選擇的 MAC 地址。

隨機選擇 MAC 地址可防止監聽器使用 MAC 地址來生成裝置活動的歷史記錄,從而加強對使用者隱私的保護。

此外,隨機選擇 MAC 地址也是 WLAN 感知和 WLAN RTT 操作的一部分。

實現

要在裝置上實現隨機選擇 MAC 地址,請執行以下操作:

  1. 與 WLAN 晶片供應商合作實現 IWifiStaIface.setMacAddress() HAL 方法。

    • AOSP 參考實現會關閉介面、更改 MAC 地址並備份介面。這種參考實現行為可能不適用於某些晶片供應商。
  2. 在“設定”config.xml 中,將 config_wifi_support_connected_mac_randomization 設定為 true(該步驟可在裝置自定義疊層中完成)。

    • 此標記用於控制參考“設定”實現的開發者選項中是否顯示“連線時隨機選擇 MAC 網址”切換開關。如果設定為 true
      ,則顯示該切換開關;如果設定為 false,則不顯示該切換開關。
  3. 使用驗證中所述的方法測試實現。

系統介面必須:

  • 在開發者選單中有一項可啟用或停用該功能的設定。
  • 如果啟用了隨機選擇 MAC 地址功能,則在系統顯示 WLAN 介面 MAC 地址時顯示生成的隨機 MAC 地址。

使用設定介面的參考實現來實現新提示。

驗證

要驗證該功能是否如期正常執行,請同時執行整合測試 (ACTS) 和手動測試。

要執行整合測試,請使用位於 tools/test/connectivity/acts/tests/google/wifi 中的 ACTS 檔案 WifiConnectedMacRandomizationTest.py

,驗證裝置是否使用隨機選擇的 MAC 地址,以及是否正確儲存為每個網路隨機選擇的 MAC 地址。

要執行手動測試,請執行以下操作:

  1. 開啟該功能並驗證裝置是否能夠連線到 WLAN 網路。
  2. 驗證 WLAN 設定中顯示的 MAC 地址是否與裝置正在使用的 MAC 地址(通過 ifconfig 確定)相符。
  3. 執行資料包捕獲來驗證裝置是否使用隨機選擇的 MAC 地址(而非出廠 MAC 地址)。
  4. 檢查裝置是否會在連線到同一網路時使用同一 MAC 地址,驗證裝置是否儲存了基於網路隨機選擇的 MAC 地址。
  5. 驗證忘記網路並重新連線到同一 SSID 後是否會生成新的隨機 MAC 地址。

在連線到網路時,您可能會遇到長達 3 秒的延遲,這是因為只要設定了新的 MAC 地址,系統就會清除掃描結果。在連線到網路並驗證網際網路連線時,也可能會出現其他延遲。

如果 WLAN 驅動程式或韌體未正確同步 MAC 地址狀態與主機核心,則網際網路連線檢查將會失敗。如果出現這種情況,請諮詢您的晶片合作伙伴,確保驅動程式或韌體已根據新的 MAC 地址進行了相應更新。