波多野结衣按摩,在线观看亚洲视频,国产嫩草在线观看,91视频最新地址

首頁 項目 > 正文

在 Fedora Linux 上使用 FIDO U2F 安全密鑰

FIDO U2F 安全密鑰是一種小型的基于 USB/NFC 的設備。它是一種硬件安全令牌,具有多個安全相關的用途模塊。FIDO U2F 標準兼容的密鑰品牌有多種,包括 NitroKey、SoloKey v2 和 YubiKey。與類似 Yubico OTP 的專有協議相比,FIDO 協議是不依賴特定硬件令牌的,并且使用的工具也不依賴特定制造商。

本文介紹了 FIDO 協議,并展示了如何安裝和啟用 FIDO U2F 安全密鑰作為替代身份驗證因素,以用于登錄終端、GDM 或進行 sudo 認證。


(資料圖片)

對于 YubiKey,特別是其不支持 FIDO2/U2F 的舊版設備,請參閱之前的文章:

如何在 Fedora Linux 上使用 YubiKey

本文不涵蓋存儲 OpenPGP 密鑰或 X.509 證書的操作,因為這些功能與硬件相關,不屬于 FIDO U2F 標準的一部分。

保留備用安全密鑰

一旦你開始使用安全令牌,就必須考慮到自己可能會被鎖定在與這些令牌相關聯的賬戶之外的情況。由于硬件安全令牌是獨特的,并且被設計為非常難以復制,你不能像在使用 KeePass 或 AndOTP 等軟件保險庫時那樣制作備份。因此,你使用主要密鑰進行的所有注冊都應立即使用第二個備份密鑰重復進行,并將其存儲在安全的位置,甚至可能是保險箱中。

在實踐中,這意味著你需要將兩個硬件令牌注冊到你的 Linux 和 Web 賬戶中,并生成兩份 OpenSSH 私鑰,并將這兩份 OpenSSH 公鑰上傳到你使用的服務器和服務(例如 GitHub)中。

如果你丟失了一個密鑰,你將需要使用第二個密鑰登錄與密鑰注冊的每個服務,刪除丟失的密鑰,并注冊一個新密鑰。對于使用 FIDO2 協議的無密碼登錄尤其如此。

FIDO2、U2F 和 FIDO 聯盟

FIDO2 是由FIDO 聯盟維護的一系列標準。FIDO 聯盟希望最終完全摒棄密碼,并提供通過多個因素安全驗證用戶身份的過程,而無需使用密碼。

該標準包括萬維網聯盟(W3C)的網頁認證Web Authentication(WebAuthn)和 FIDO 聯盟的客戶端到認證器協議Client-to-Authenticator Protocol(CTAP)。WebAuthn 是一種用于請求和處理公鑰挑戰進行認證的標準 API。通過這個標準,瀏覽器會向客戶端發送一個挑戰challenge,然后客戶端使用私鑰生成一個響應response,挑戰者再使用之前交換的公鑰進行驗證。如何生成挑戰答案對于服務來說是不可知的,而是由 CTAP 控制。用戶可能會被要求使用多種驗證方法,如生物識別、PIN 或存在性檢查(或這些方法的組合)。這些驗證方式在認證時與注冊密鑰時的方式相同。

為了保護與硬件令牌的任何交互,可以選擇設置一個訪問 PIN,并且默認情況下未設置。大多數密鑰在連續八次輸入訪問 PIN 失敗后將自動失效?;謴褪У拿荑€并設置新 PIN 的唯一方法是重置密鑰。然而,當密鑰重置時,所有其服務注冊將丟失!

FIDO2 密鑰還支持 FIDO U2F 協議(現已更名為 CTAP1)。該協議旨在提供第二或多因素(但非無密碼)認證。Linux 的 PAM 認證系統也可以配置為使用 U2F 協議。雖然 FIDO U2F 不是為無密碼認證設計的,但 U2F PAM 模塊允許無密碼認證。

安全影響

FIDO2 / U2F 通過將安全密鑰與用戶賬戶綁定來工作。大多數密鑰默認啟用/使用基本的存在性檢查。它們通常通過點亮并提示你觸摸密鑰來進行存在性檢查。FIDO2 PIN 是可選的,默認情況下未設置。當密鑰用于登錄 Linux 帳戶或用于使用 sudo 時,只需確保設備和密鑰物理上存在即可。FIDO2 PIN 是一個重要的附加驗證步驟,用于確保只有你才能使用密鑰進行身份驗證。

等一下!現在我還要記住額外的 PIN 嗎?這不就是一個更短的密碼嗎?

—— 擔心的讀者

FIDO2 PIN 不是密碼,它是一個簡短、容易記住的短語。這并不是一個問題,因為:

你需要物理訪問密鑰且輸入 PIN 錯誤達到八次會使密鑰失效,這使得暴力破解變得困難。

相反地,現在你可以使用存儲在密碼管理器中的安全密碼,而無需記住它。

谷歌在 2016 年進行的一項案例研究,題為 《安全密鑰:現代網絡的實用密碼學第二因素》,顯示了安全密鑰有效地保護用戶免受密碼重用、釣魚和中間人攻擊的影響。

使用 PAM 進行用戶認證

本地系統認證使用可插拔認證模塊(PAM)。U2F 設備的 PAM 模塊(因此進行認證)是pam_u2f。你的密鑰是否支持 FIDO2 或 FIDO U2F 取決于其固件版本和硬件型號。

設置如下:

安裝 PAM 模塊。將密鑰注冊到你的用戶賬戶上。使用authselect在 PAM 中激活智能卡支持。

authselect是一個用于配置帶有可重現配置文件的 PAM 的工具。使用authselect的配置文件可以避免手動修改/etc/pam.d目錄下的配置文件。

依賴項

所需的軟件包可在官方倉庫中獲取。

[…]$ sudo dnf install pam-u2f pamu2fcfg fido2-tools
在密鑰上設置 FIDO2 PIN

FIDO2 標準定義了一種用于訪問保護的可選 PIN。如果 PIN 丟失或失效,沒有 PUK 或其他恢復方式,請確保你有一種備用的身份驗證方法。如果通過連續輸入無效的 PIN 使 PIN 失效,恢復的唯一方法是重置密鑰。然而,重置密鑰會刪除其所有憑據,并將其與以前注冊的所有服務斷開連接。

fido2-tools包含一個用于設置密鑰的 FIDO2 PIN 的工具:fido2-token。使用fido2-token -L獲取當前連接的 FIDO2 設備列表,并使用fido2-token -C 設置一個新的 PIN:

[…]$ fido2-token -L/dev/hidraw1: vendor=0x1050, product=0x0407 (Yubico YubiKey OTP+FIDO+CCID)[…]$ fido2-token -C /dev/hidraw1Enter current PIN for /dev/hidraw1:Enter new PIN for /dev/hidraw1:
將安全密鑰注冊到本地賬戶

使用工具pamu2fcfg檢索一個配置行,該行將放入~/.config/Yubico/u2f_keys中。pam_u2f是由 Yubico 提供的通用 U2F 密鑰模塊,因此使用 Yubico 特定的默認配置路徑。該文件中的每個配置行由用戶名和密鑰特定的憑據/配置部分以冒號分隔。確保每個用戶僅使用一行。

fedora-user:owBYtPIH2yzjlSQaRrVcxB...Pg==,es256,+presence+pin[:該用戶另外的密鑰]

如果密鑰受 PIN 保護,你將被要求輸入 PIN 來進行此操作。對于第一個密鑰的初始注冊,請使用以下命令:

[…]$ mkdir -p ~/.config/Yubico[…]$ pamu2fcfg --pin-verification > ~/.config/Yubico/u2f_keys

要將另一個密鑰(例如備份密鑰)添加到此單用戶配置中,請使用以下命令:

[…]$ pamu2fcfg --nouser --pin-verification >> ~/.config/Yubico/u2f_keys

pam_u2f還支持使用一個中心身份驗證文件。在這種情況下,請確保每個用戶使用一行,并將給定用戶的所有密鑰保持在同一行上。如果兩行引用相同的用戶名,那么只有最后一行將被使用!請參閱pam_u2f 手冊頁獲取所有可用選項的詳細信息。

使用 authselect 配置 PAM

authselect是一個用于控制系統 PAM 配置的工具。它引入了配置文件作為額外的抽象層。一個authselect配置文件可以更改多個 PAM 配置文件。配置文件具有控制附加功能和行為的參數,例如啟用 FIDO U2F 安全密鑰。有關authselect的詳細介紹計劃在未來的文章中進行。

顯示當前活動的authselect配置文件。如果選擇了 SSSD(系統安全服務守護程序)配置文件并啟用了 U2F 支持,則輸出可能類似于以下內容:

[…]$ authselect currentProfile ID: sssdEnabled features:- with-pam-u2f

使用authselectwith-pam-u2f標志,在 PAM 中激活 FIDO U2F 支持:

[…]$ sudo authselect select sssd with-pam-u2f

如果你還想使用指紋讀取器,必須同時啟用這兩個功能:

[…]$ sudo authselect select sssd with-pam-u2f with-fingerprint

這會在 PAM 中激活具有pam_u2f和指紋讀取器支持的 SSSD 配置文件。例如,當使用上述authselect配置文件在終端上使用 sudo 時,首先會要求你提供指紋,如果指紋識別失敗,則使用 U2F 密鑰。然而,GDM 將首先使用 U2F 密鑰。

解鎖 GNOME 鑰匙環守護程序

當使用生物識別、U2F 密鑰或任何其他不需要密碼短語登錄 GNOME 的方法時,無法自動解鎖“登錄”鑰匙環。這是因為,默認情況下,鑰匙環的密碼短語設置為與你的登錄密碼短語相同。通常,PAM 將你的登錄密碼短語傳遞給鑰匙環守護程序。由于你在通過生物識別或 U2F 密鑰進行身份驗證時不需要輸入密碼短語,因此 PAM 沒有密碼短語可以傳遞給鑰匙環守護程序。這個問題沒有簡單直接的解決方法。

如果你為家目錄使用 LUKS 加密并且操作的是單用戶系統,你可以從鑰匙環中移除密碼短語。這將使你的 GNOME 鑰匙環在文件級別上保持未加密。但它仍然在塊級別上由 LUKS 加密,因為 LUKS 加密與單用戶系統上的默認基于文件的鑰匙環加密等效。由于鑰匙環的加密僅旨在保護其內容免受離線訪問,鑰匙環在登錄后將被解密/解鎖,任何運行時應用程序或惡意軟件在解鎖后都有可能訪問鑰匙環的內容。由于 LUKS 也是一種離線保護機制,因此可以認為它是鑰匙環正?;谖募募用艿奶娲x擇。

如果你的系統被多個用戶使用,則 LUKS 加密和鑰匙環的正?;谖募募用懿皇堑刃У摹T诰哂兄挥?LUKS 保護的鑰匙環的多用戶系統中,具有解密磁盤和引導系統授權的任何用戶都能夠訪問同一系統上的任何其他用戶的鑰匙環。

移除 GNOME “登錄”鑰匙環密碼短語非常簡單。只需設置一個新的空密碼,鑰匙環將被解鎖,并且其內容將以未加密的方式存儲在文件級別上。可以使用圖形實用程序 Seahorse(也稱為“密碼和密鑰”)來在 GNOME “登錄”鑰匙環上設置一個空密碼。

警惕和其他用例

即將發布的文章將探討如何使用 U2F Dracut 插件使用 FIDO2/U2F 密鑰解鎖 LUKS 加密的磁盤。

OpenSSH 8.2+ 支持使用ed25519-sk安全密鑰。這個主題已經在之前的文章《如何在 Fedora Linux 上使用 YubiKey》中涉及到。

需要注意的是,FIDO2/U2F 是一種認證標準。還有其他用于安全令牌的用例(主要由 Yubico 建立),例如 (T)OTP、PIV(用于 x509 密鑰管理)或 OpenPGP,這些用例不是一般性的,而是具體硬件上的用例。

關鍵詞:

最近更新

關于本站 管理團隊 版權申明 網站地圖 聯系合作 招聘信息

Copyright © 2005-2023 創投網 - www.extremexp.net All rights reserved
聯系我們:39 60 29 14 2@qq.com
皖ICP備2022009963號-3