Linux中國

為集中管理的用戶提供 FIDO2 認證

Fedora 39 通過 SSSD 和 FreeIPA 為集中管理的用戶開啟了 FIDO2 認證功能。此篇文章將指導你如何進行配置和啟用該功能。

FIDO2

FIDO2 是以 公鑰加密 為基礎的開放式認證標準,比起密碼和一次性密碼(OTP),它的安全性更高且易用性更強。它通常以類似小型 USB 和基於 NFC 的硬體安全令牌的方式提供。有幾種符合 FIDO 認可的密鑰品牌,例如:YubiKey、NitroKey、SoloKey v2 等等。

此協議的優勢包括:

  • 通過使用公鑰加密來消除密碼,從而實現無密碼認證。
  • 採用 多因素認證(MFA)以實現強力認證。
  • 減少了應用程序之間密碼或公鑰的重複使用,降低數據泄露的風險。
  • 私鑰位於安全令牌中並且永不離開,這大大減少了被網路釣魚的威脅。

前面的文章

在 Fedora 雜誌中,有多篇文章闡述了如 FIDO2 的應用場景:《如何使用 FIDO2 驗證本地用戶》 和 《如何解鎖硬碟》。而此篇文章介紹了如何使用 FIDO2 驗證遠程用戶。請注意,上述所說的設備,主要是指那些來自 Yubico 採用了其他協議的設備,而此篇指南的目的並非討論這些協議。

集中管理的用戶

SSSDFreeIPA 最近新增了一個名為 通行密鑰 passkey 的特性,以便對集中管理的用戶執行 FIDO2 認證。此功能目前只在 SSSD 2.9.0FreeIPA 4.11.0 等版本中支持。

Fedora 39 已經包含了這些版本,因此,它是第一個為集中管理的用戶啟用 FIDO2 認證的發行版。此外,用戶在認證成功後,也會一併獲取一個 Kerberos 票據,實現對其他服務的身份證明。

請注意,從這裡開始,我將交替使用 FIDO2 和通行密鑰這兩個術語。

FIDO2 認證

FIDO2 配置

作為額外的安全措施,應在設備中啟用 MFA 以防你丟失了密鑰,惡意行為者無法使用它進行認證。

列出連接的通行密鑰設備:

$ fido2-token -L

為你的通行密鑰設備設置 PIN(將大寫字母替換為所需的):

$ fido2-token -C /dev/hidrawX

如果你有一個兼容的設備,你還可以啟用其他認證因素,例如指紋。

集中用戶配置

首先,我們來創建一個用戶,並將通行密鑰(passkey)設置為其認證方式(請根據需要將大寫字母替換為相應的):

$ ipa user-add USERNAME --first NAME --last SURNAME --user-auth-type=passkey

或者,如果你已有一個用戶,並只需要將 passkey 設置為其認證方式:

$ ipa user-mod USERNAME --user-auth-type=passkey

集中管理用戶的 FIDO2 註冊

接下來,我們為該用戶註冊這個通行密鑰。這個步驟會提示你輸入 PIN 碼,隨後觸摸設備:

$ ipa user-add-passkey USERNAME --register
Enter PIN:
Please touch the device.
---------------------------------Added passkey mappings to user "USERNAME"
---------------------------------    User login: USERNAME
    Passkey mapping: passkey:XR/MXigmgiBz1z7/RlWoWZkXKIEf1x9Ux5uPNxtzzSTdTiF407u2nRYMPkK8pWjwUR8Aa2urCcC9cnpLbkKgFg==,MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEZqgERsFFv4Yev1dyo2Ap4PvLirg3P3Uhig5mNA4qf061C9q5rg0nMDz9AOYxZmBrwvQEXHCasMNO9VAIVnBIVg==

此刻,用戶的認證已準備就緒。

注意,如果你想在生產環境中使用此用戶,我建議你至少註冊兩個不同的設備。這樣,即使你丟失了其中一個設備,你也可以用另一個進行認證。

集中管理的用戶的 FIDO2 認證

在初次嘗試中,只有在物理連接令牌的系統中才能進行認證。這意味著你可以使用 su 或圖形界面,但不能遠程使用 ssh。

我們來試試使用 su,記得將大寫字母替換為所需的。當要求你輸入 PIN,然後觸摸設備時,當設備燈閃爍時觸摸它:

$ su - USERNAME@DOMAIN
Insert your passkey device, then press ENTER.
Enter PIN:

如果一切進行順利,Kerberos 票據也應已被授予,然後你就可以向其他服務進行遠程認證:

$ klist
Ticket cache: KCM:879400005:34862
Default principal: USERNAME@DOMAIN
Valid starting Expires        Service principal
10/20/23 09:46:04  10/21/23 09:32:37  krbtgt/DOMAIN@DOMAIN

結論

此認證機制的目標是提升安全性。通過使用一種眾所周知、開放式的標準實現無密碼和多因素認證,從而降低數據泄露和網路釣魚威脅的風險。用戶只需要一個硬體令牌及另外一個如 PIN 或者指紋的認證方式,從而消除對密碼的需求,同時提供了方便的多因素認證方法。更進一步,每個應用或服務都使用一個唯一的密鑰,這樣任何一個應用或服務的數據泄露都不會影響其他的。最後,用戶並不需要知道他們的憑據的具體細節,只需了解他們使用了一個實體令牌,這極大地降低了社交工程攻擊的可能性。

(題圖:MJ/838d5392-79b4-4c22-ab0f-c2ada4bf2833)

via: https://fedoramagazine.org/fido2-for-centrally-managed-users/

作者:Iker Pedrosa 選題:lujun9972 譯者:ChatGPT 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的電子郵箱地址不會被公開。 必填項已用 * 標註

    此站點使用Akismet來減少垃圾評論。了解我們如何處理您的評論數據

    More in:Linux中國