可以在 radius 伺服器上使用 PAP 和 TTLS 嗎?
我們已經部署了 Radius 伺服器(Freeradius 3.x)並將其連接到我們的 LDAP 數據庫(ForgeRock OpenDJ)。
我們已經成功地為 EAP-TTLS配置了有效的證書並將其設置為預設連接方法。(幾乎所有其他設置都保留為預設值)
但是,當 EAP-TTLS 建立時,密碼是使用 PAP 傳輸的。我不是網路專家,但我讀到 PAP 不安全,不應該使用?(我覺得網上有很多令人困惑的材料)
如果我嘗試使用任何其他方法(例如 MS-CHAPv2)登錄,則會失敗並出現各種錯誤:
FAILED: No NT/LM-Password. Cannot perform authentication'
或者
freeradius_1 | (22) eap_md5: ERROR: Cleartext-Password is required for EAP-MD5 authentication
它顯然需要額外的配置。
問題是,當我們在 2019 年擁有 EAP-TTLS 時,我們 PAP 可以嗎?還是我們應該考慮將不同的類型設置為預設值?
我們的 LDAP 對密碼進行了雜湊處理(顯然),所以我們還有其他選擇嗎?根據我找到的這份文件,這似乎是我們唯一的選擇。
在這種情況下,如果伺服器提供的證書由請求者正確驗證,則由 EAP-TLS/TLS 提供機密性(防止窺探)和完整性(防止修改)。
這裡的關鍵是伺服器的證書是正確驗證的。如果不是,那麼攻擊者可以建立一個honeypot網路,向請求者提供一個假證書,然後獲取明文憑據。
任何重視安全的組織都將實施 EAP-TLS(無需密碼)或在其無線客戶端上執行可分解的安裝程序(SecureW2、Cloudpath、eduroamCAT - 如果這是用於 eduroam)以正確配置 802.1X 身份驗證設置。
上次我檢查 Windows 10 時,特別是沒有實現任何類型的證書/SSID 固定,因此表明您在初始身份驗證嘗試期間信任伺服器的證書實際上並沒有增加任何安全性。對於使用不同證書的後續身份驗證嘗試,請求者會很樂意向您提供新證書的指紋,而不會顯示任何不匹配的跡象。解決此問題的唯一方法是手動或使用可分解的安裝程序(如上所述)為無線網路顯式設置證書驗證設置(受信任的 CA、預期的主題名稱模式)。
要回答關於哪些 TTLS/PEAP 內部方法可以與 LDAP 一起使用的其他問題,如果您使用 LDAPv3 身份驗證綁定來驗證使用者身份,那麼是的,只有 PAP 或 GTC(請參閱 PEAPv0/GTC)可以使用。它們都以幾乎相同的方式執行。
如果您在 RADIUS 伺服器上拉回散列並在本地進行比較,並儲存使用者密碼的 NT-Password 散列以及您正在使用的任何其他散列,那麼這允許您執行 MSCHAPv2。
不過老實說,NT-Passwords 使用極弱的散列(MD4),所以它幾乎和在 OpenLDAP 中儲存明文一樣糟糕。您需要權衡 OpenLDAP 安裝被破壞的可能性、所有雜湊值被盜/破解的風險、有人發起 MITM 攻擊的可能性以及密碼子集被盜的風險。
最後要注意的是,如果您使用的是 EAP-PWD,那麼在請求者和 RADIUS 伺服器上對使用密碼的散列副本的支持有限,但這種 EAP 方法在 Linux 環境之外並未得到廣泛支持。
我對 TBH 的情況非常不滿意,但是讓每個人都採用新的 EAP 方法需要多個供應商的巨大努力。
在 FreeRADIUS 方面唯一可以實現的就是在證書驗證設置上設置“抽查”,並糾正任何未能通過它們的使用者。如何做到這一點是通過用一個無效的證書動態地替換提供給請求者的證書,並驗證請求者是否向 RADIUS 伺服器返回了正確的警報 (invalid_ca)。這將導致身份驗證失敗(如果一切正常),但請求者也會很快重試,所以只要抽查很少發生,這沒什麼大不了的。