搭載 Android 13 以上版本的裝置:Android 支援初次使用 (TOFU) 驗證方式 (RFC7435)、 可讓使用者安裝根 CA 以信任企業 (EAP) 網路 ,並在已儲存的網路中設定網域名稱。TOFU 允許 使用者初次連線時,裝置即可取得未經驗證的公開金鑰 並保留金鑰以供後續連線使用。
背景
與不需要密碼的個人網路相比,企業網路 使用公開金鑰基礎架構 (PKI) 驗證功能, 預先安裝憑證。在 Android 11 以下版本中,使用者可以選取 在網路設定中,為伺服器 CA 憑證輸入「不要驗證」選項。 繞過伺服器端憑證的驗證。但為了強化 安全並遵守 WPA R2 規格,Android 12 引進了 以及讓企業網路對伺服器憑證進行驗證的要求。這個 額外的要求會造成需要使用者安裝 CA 憑證。TOFU 可讓使用者與 以 PKI 為基礎的企業網路,僅接受其根 CA。
功能行為
支援 TOFU 的裝置會在使用者連上網路時顯示下列行為 預先安裝 驗證公開金鑰
透過 Wi-Fi 選擇器連線到新網路
在 Wi-Fi 挑選器中選取新的企業網路。
裝置會顯示對話方塊 (圖 1),確認 受到信任
輕觸「是,連線」接受網路連線,或輕觸「否,不要」 連線拒絕邀請。
如果你輕觸「是,連線」,裝置會自動設定 安全參數、連線至網路,並啟用自動連線 每個 Pod 都有一個 IP 位址
如果輕觸「否,不要連線」,裝置就會與以下裝置中斷連線: 並停用該網路的自動連線。
圖 1. TOFU 功能的對話方塊
連線至已啟用自動連線的現有網路
連線至已啟用自動連線功能但已啟用自動連線功能的企業網路時 沒有有效的 CA 憑證,裝置會自動連線 會顯示固定式 (不可關閉) 通知。
輕觸通知。
裝置會顯示對話方塊 (圖 1),確認 受到信任
輕觸「是,連線」接受網路連線,或輕觸「否,不要」 連線拒絕邀請。
如果你輕觸「是,連線」,裝置會自動設定 安全參數、連線至網路,並啟用自動連線 每個 Pod 都有一個 IP 位址
如果輕觸「否,不要連線」,裝置就會與以下裝置中斷連線: 並停用該網路的自動連線。
實作
如要支援 TOFU 功能,請實作
Android 開放原始碼計畫 (AOSP)
/hardware/interfaces/wifi/supplicant/aidl/android/hardware/wifi/supplicant
。
Android 13 提供下列公用 API 供應用程式使用:
WifiManager#isTrustOnFirstUseSupported()
: 指出裝置是否支援 TOFU。WifiEnterpriseConfig#enableTrustOnFirstUse(boolean)
: 啟用 TOFU。WifiEnterpriseConfig#isTrustOnFirstUseEnabled()
: 指出是否已啟用 TOF。
驗證
如要驗證裝置上的 TOFU 實作結果,請使用下列測試:
- CTS:
CtsWifiTestCases
- VTS:
VtsHalWifiSupplicantStaNetworkTargetTest