WiFi 802.1x 認證介紹與設定流程

參考《802.1X 概述與 EAP 類型

關於WiFi 802.1x 認證

WiFi認證有三種模式:Open、PSK(WPA Personal)、802.1x(WPA Enterprise)。
各自連線時需要輸入:無密碼、一組密碼、一組帳號密碼。

出處

進行802.1x驗證時,Client會與Server透過可延伸的驗證通訊協定 (EAP)進行直接溝通傳遞驗證資訊,而EAP中最常使用PEAP:

PEAP

PEAP (防護型可延伸的驗證通訊協定) 提供了一種經由 802.11 Wi-Fi 網路來安全地傳輸驗證資料 (包括舊型的密碼式通訊協定) 的方法。PEAP 達到此一目標的方式,是在 PEAP 用戶端與驗證伺服器之間使用隧道功能。就像競爭的標準型「隧道式傳輸層安全性」(TTLS),PEAP 只使用伺服器端的憑證來驗證 Wi-Fi 區域網路用戶端,因此可以簡化安全 Wi-Fi 區域網路的實施與管理。PEAP 是由 Microsoft、Cisco 及 RSA Security 共同開發。

簡單來說,PEAP的功能是建立Client與Server之間的隧道,接下來會進行第二階段的驗證。而PEAP的隧道建立需要有Server Certificate,因此除了需要Server上要有憑證之外,如果該憑證是不受Client信任的,就會跳出告警問是否要繼續。

目前在Win11、iOS都會跳出告警,但是Android11以後就會強制拒絕,導致Android用戶無法像以往直接連上線。

PEAP在建立隧道後進行第二階段驗證,最常見的驗證方式為「MSCHAPv2」以及其他的驗證方式。某些Radius Server可能不支援此種驗證方式,需要改用Password authentication protocol(PAP)進行驗證。

甚麼憑證受信任?

在大部分情況下,透過802.1x進行驗證會跳出憑證信任的告警,這是因為許多網路環境並沒有進行憑證相關的管理。因此遇到Android新版本問題或是想要使告警視窗消除,就需要學習憑證相關知識。※Android 13 可以選擇第一次信任。

簡單來說,憑證(Certificate)是包含一對以能進行非對稱加密的公鑰與私鑰,將傳輸的資料以公鑰加密,接下來只能透過私鑰解密才能看到原始資料,不僅避免明碼傳輸,也大幅增加安全性。

公鑰會公開傳遞給其他使用者,私鑰留在自己身上。其他使用者想要傳遞資料給自己時,就利用該公鑰加密後,只有擁有對應私鑰的自己才能解密看到原始資料,其他人就算獲取加密訊息也難以解開。

然而,IP被被偽冒也很容易,導致公鑰也可能出現被偽冒的情形,於是就需要一種機制避免公鑰被偽冒,這個機制就是數位簽章。

自己的公鑰再拿去被認證機構(certificate authority, CA)簽署,這些認證機構可以是企業內部或者是公共認證機構,公共認證機構多半預設情形下會被用戶給信任,因為公共認證機構的公鑰在常見的作業系統都預載在用戶端上,而企業CA還需要匯入憑證與設定。

當認證機構簽署之後,上面就會留有一段認證機構的加密訊息,為認證機構用私鑰加密過後的內容,之後用戶端透過預載的CA憑證(公鑰)去檢查這段訊息的真偽,若為真就能信任該伺服器公鑰。

簽署一張憑證,CA可以有好幾個,形成串鏈,最後才到自己。最根層稱為Root CA,基本上為是公共CA或企業CA。接下來是中繼CA,具有簽署憑證的功能。最重要的就是Root CA,若Root CA被破解,就能大量簽署能被信任的憑證,也就不用費心費力去偽冒。

在802.1x中,用戶端會檢查伺服器憑證的Root CA,用戶端上面要有該Root CA的公鑰,在CA清單中能找到該Root CA,能順利解密出簽章訊息,這張伺服器憑證才會被信任。

WiFi 802.1x 環境準備

在瞭解上述內容之後,要建立一個良好的架構,這裡要準備以下幾點:

  • 支援802.1x無線設備
  • 認證伺服器憑證
  • 用戶端信任認證伺服器憑證
支援802.1x無線設備

無線存取點或是行動裝置等雙邊都要能支援802.1x認證,目前WPA Enterprise的版本有1-3,級別越高越新也越安全,但是舊設備不一定能支持最新的版本。

認證伺服器憑證有且有效

當用戶端透過peap建立隧道溝通時,會需要使用認證伺服器憑證,若認證伺服器沒有憑證,就建立不起來,即便輸入帳密正確也無法使用。此外,憑證也要有效,這部分最多是憑證到期,其次是時間不正確。

用戶端信任認證伺服器憑證

在連線 WiFi 802.1x 時,跳出任何憑證告警都是用戶端不信任伺服器憑證,大部分是因為伺服器憑證的Root CA不在用戶端的CA清單上,還有一部份是用戶端沒有在CA清單上將Root CA勾選信任,即使該Root CA是公共CA。這部分會發生在Windows上直接連線802.1x時的WiFi,只要手動設定勾選就不會再跳出告警。

Android可以安裝WiFi憑證,該憑證專門用於特定一個802.1x WiFi連線,不一定要改動CA清單。安裝的WiFi憑證是認證伺服器的Root CA憑證,並不是認證伺服器的憑證。

WiFi 802.1x 設定流程

一切準備好之後,照著以下步驟:

  1. 在認證伺服器匯入憑證,並套用該憑證
  2. 無線控制器與認證伺服器能建立連線
  3. 無線控制器上建立802.1x的WiFi,並選擇剛加入的認證伺服器。
  4. 檢查用戶端是否擁有認證伺服器的Root CA憑證,並且信任。
  5. 用戶端上針對該WiFi進行設定,如帳密、網域與使用憑證等。

在Android上,伺服器憑證的Root CA為公共CA,在CA憑證中則選「使用系統憑證」。

若Root CA不是公共CA,則在CA憑證選擇安裝憑證,並且把認證伺服器憑證的Root CA的憑證給安裝上去,然後再選擇該憑證。

在設定流程中,大部分都是選擇的都是新增加選項,唯有「網域」是未曾提到過但卻要輸入。

網域要填認證伺服器的Common Name Domain,如有個伺服器憑證的主體為「wlan.abc123.com」,那麼網域就要填寫「abc123.com」。如果是使用萬用憑證「*.abc123.com」,網域依然不變,仍填「abc123.com」。