在 Fedora Linux 上使用 FIDO U2F 安全密鑰
FIDO U2F 安全密鑰是一種小型的基于 USB/NFC 的設(shè)備。它是一種硬件安全令牌,具有多個安全相關(guān)的用途模塊。FIDO U2F 標(biāo)準(zhǔn)兼容的密鑰品牌有多種,包括 NitroKey、SoloKey v2 和 YubiKey。與類似 Yubico OTP 的專有協(xié)議相比,F(xiàn)IDO 協(xié)議是不依賴特定硬件令牌的,并且使用的工具也不依賴特定制造商。
本文介紹了 FIDO 協(xié)議,并展示了如何安裝和啟用 FIDO U2F 安全密鑰作為替代身份驗證因素,以用于登錄終端、GDM 或進行 sudo 認(rèn)證。
(資料圖片)
對于 YubiKey,特別是其不支持 FIDO2/U2F 的舊版設(shè)備,請參閱之前的文章:
如何在 Fedora Linux 上使用 YubiKey
本文不涵蓋存儲 OpenPGP 密鑰或 X.509 證書的操作,因為這些功能與硬件相關(guān),不屬于 FIDO U2F 標(biāo)準(zhǔn)的一部分。
保留備用安全密鑰一旦你開始使用安全令牌,就必須考慮到自己可能會被鎖定在與這些令牌相關(guān)聯(lián)的賬戶之外的情況。由于硬件安全令牌是獨特的,并且被設(shè)計為非常難以復(fù)制,你不能像在使用 KeePass 或 AndOTP 等軟件保險庫時那樣制作備份。因此,你使用主要密鑰進行的所有注冊都應(yīng)立即使用第二個備份密鑰重復(fù)進行,并將其存儲在安全的位置,甚至可能是保險箱中。
在實踐中,這意味著你需要將兩個硬件令牌注冊到你的 Linux 和 Web 賬戶中,并生成兩份 OpenSSH 私鑰,并將這兩份 OpenSSH 公鑰上傳到你使用的服務(wù)器和服務(wù)(例如 GitHub)中。
如果你丟失了一個密鑰,你將需要使用第二個密鑰登錄與密鑰注冊的每個服務(wù),刪除丟失的密鑰,并注冊一個新密鑰。對于使用 FIDO2 協(xié)議的無密碼登錄尤其如此。
FIDO2、U2F 和 FIDO 聯(lián)盟FIDO2 是由FIDO 聯(lián)盟維護的一系列標(biāo)準(zhǔn)。FIDO 聯(lián)盟希望最終完全摒棄密碼,并提供通過多個因素安全驗證用戶身份的過程,而無需使用密碼。
該標(biāo)準(zhǔn)包括萬維網(wǎng)聯(lián)盟(W3C)的網(wǎng)頁認(rèn)證Web Authentication(WebAuthn)和 FIDO 聯(lián)盟的客戶端到認(rèn)證器協(xié)議Client-to-Authenticator Protocol(CTAP)。WebAuthn 是一種用于請求和處理公鑰挑戰(zhàn)進行認(rèn)證的標(biāo)準(zhǔn) API。通過這個標(biāo)準(zhǔn),瀏覽器會向客戶端發(fā)送一個挑戰(zhàn)challenge,然后客戶端使用私鑰生成一個響應(yīng)response,挑戰(zhàn)者再使用之前交換的公鑰進行驗證。如何生成挑戰(zhàn)答案對于服務(wù)來說是不可知的,而是由 CTAP 控制。用戶可能會被要求使用多種驗證方法,如生物識別、PIN 或存在性檢查(或這些方法的組合)。這些驗證方式在認(rèn)證時與注冊密鑰時的方式相同。
為了保護與硬件令牌的任何交互,可以選擇設(shè)置一個訪問 PIN,并且默認(rèn)情況下未設(shè)置。大多數(shù)密鑰在連續(xù)八次輸入訪問 PIN 失敗后將自動失效?;謴?fù)失效的密鑰并設(shè)置新 PIN 的唯一方法是重置密鑰。然而,當(dāng)密鑰重置時,所有其服務(wù)注冊將丟失!
FIDO2 密鑰還支持 FIDO U2F 協(xié)議(現(xiàn)已更名為 CTAP1)。該協(xié)議旨在提供第二或多因素(但非無密碼)認(rèn)證。Linux 的 PAM 認(rèn)證系統(tǒng)也可以配置為使用 U2F 協(xié)議。雖然 FIDO U2F 不是為無密碼認(rèn)證設(shè)計的,但 U2F PAM 模塊允許無密碼認(rèn)證。
安全影響FIDO2 / U2F 通過將安全密鑰與用戶賬戶綁定來工作。大多數(shù)密鑰默認(rèn)啟用/使用基本的存在性檢查。它們通常通過點亮并提示你觸摸密鑰來進行存在性檢查。FIDO2 PIN 是可選的,默認(rèn)情況下未設(shè)置。當(dāng)密鑰用于登錄 Linux 帳戶或用于使用 sudo 時,只需確保設(shè)備和密鑰物理上存在即可。FIDO2 PIN 是一個重要的附加驗證步驟,用于確保只有你才能使用密鑰進行身份驗證。
等一下!現(xiàn)在我還要記住額外的 PIN 嗎?這不就是一個更短的密碼嗎?
—— 擔(dān)心的讀者
FIDO2 PIN 不是密碼,它是一個簡短、容易記住的短語。這并不是一個問題,因為:
你需要物理訪問密鑰且輸入 PIN 錯誤達到八次會使密鑰失效,這使得暴力破解變得困難。相反地,現(xiàn)在你可以使用存儲在密碼管理器中的安全密碼,而無需記住它。
谷歌在 2016 年進行的一項案例研究,題為 《安全密鑰:現(xiàn)代網(wǎng)絡(luò)的實用密碼學(xué)第二因素》,顯示了安全密鑰有效地保護用戶免受密碼重用、釣魚和中間人攻擊的影響。
使用 PAM 進行用戶認(rèn)證本地系統(tǒng)認(rèn)證使用可插拔認(rèn)證模塊(PAM)。U2F 設(shè)備的 PAM 模塊(因此進行認(rèn)證)是pam_u2f
。你的密鑰是否支持 FIDO2 或 FIDO U2F 取決于其固件版本和硬件型號。
設(shè)置如下:
安裝 PAM 模塊。將密鑰注冊到你的用戶賬戶上。使用authselect
在 PAM 中激活智能卡支持。authselect是一個用于配置帶有可重現(xiàn)配置文件的 PAM 的工具。使用authselect
的配置文件可以避免手動修改/etc/pam.d
目錄下的配置文件。
所需的軟件包可在官方倉庫中獲取。
[…]$ sudo dnf install pam-u2f pamu2fcfg fido2-tools
在密鑰上設(shè)置 FIDO2 PINFIDO2 標(biāo)準(zhǔn)定義了一種用于訪問保護的可選 PIN。如果 PIN 丟失或失效,沒有 PUK 或其他恢復(fù)方式,請確保你有一種備用的身份驗證方法。如果通過連續(xù)輸入無效的 PIN 使 PIN 失效,恢復(fù)的唯一方法是重置密鑰。然而,重置密鑰會刪除其所有憑據(jù),并將其與以前注冊的所有服務(wù)斷開連接。
fido2-tools
包含一個用于設(shè)置密鑰的 FIDO2 PIN 的工具:fido2-token
。使用fido2-token -L
獲取當(dāng)前連接的 FIDO2 設(shè)備列表,并使用fido2-token -C
設(shè)置一個新的 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 特定的默認(rèn)配置路徑。該文件中的每個配置行由用戶名和密鑰特定的憑據(jù)/配置部分以冒號分隔。確保每個用戶僅使用一行。
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 手冊頁獲取所有可用選項的詳細(xì)信息。
authselect是一個用于控制系統(tǒng) PAM 配置的工具。它引入了配置文件作為額外的抽象層。一個authselect
配置文件可以更改多個 PAM 配置文件。配置文件具有控制附加功能和行為的參數(shù),例如啟用 FIDO U2F 安全密鑰。有關(guān)authselect
的詳細(xì)介紹計劃在未來的文章中進行。
顯示當(dāng)前活動的authselect
配置文件。如果選擇了 SSSD(系統(tǒng)安全服務(wù)守護程序)配置文件并啟用了 U2F 支持,則輸出可能類似于以下內(nèi)容:
[…]$ authselect currentProfile ID: sssdEnabled features:- with-pam-u2f
使用authselect
和with-pam-u2f
標(biāo)志,在 PAM 中激活 FIDO U2F 支持:
[…]$ sudo authselect select sssd with-pam-u2f
如果你還想使用指紋讀取器,必須同時啟用這兩個功能:
[…]$ sudo authselect select sssd with-pam-u2f with-fingerprint
這會在 PAM 中激活具有pam_u2f
和指紋讀取器支持的 SSSD 配置文件。例如,當(dāng)使用上述authselect
配置文件在終端上使用 sudo 時,首先會要求你提供指紋,如果指紋識別失敗,則使用 U2F 密鑰。然而,GDM 將首先使用 U2F 密鑰。
當(dāng)使用生物識別、U2F 密鑰或任何其他不需要密碼短語登錄 GNOME 的方法時,無法自動解鎖“登錄”鑰匙環(huán)。這是因為,默認(rèn)情況下,鑰匙環(huán)的密碼短語設(shè)置為與你的登錄密碼短語相同。通常,PAM 將你的登錄密碼短語傳遞給鑰匙環(huán)守護程序。由于你在通過生物識別或 U2F 密鑰進行身份驗證時不需要輸入密碼短語,因此 PAM 沒有密碼短語可以傳遞給鑰匙環(huán)守護程序。這個問題沒有簡單直接的解決方法。
如果你為家目錄使用 LUKS 加密并且操作的是單用戶系統(tǒng),你可以從鑰匙環(huán)中移除密碼短語。這將使你的 GNOME 鑰匙環(huán)在文件級別上保持未加密。但它仍然在塊級別上由 LUKS 加密,因為 LUKS 加密與單用戶系統(tǒng)上的默認(rèn)基于文件的鑰匙環(huán)加密等效。由于鑰匙環(huán)的加密僅旨在保護其內(nèi)容免受離線訪問,鑰匙環(huán)在登錄后將被解密/解鎖,任何運行時應(yīng)用程序或惡意軟件在解鎖后都有可能訪問鑰匙環(huán)的內(nèi)容。由于 LUKS 也是一種離線保護機制,因此可以認(rèn)為它是鑰匙環(huán)正常基于文件的加密的替代選擇。
如果你的系統(tǒng)被多個用戶使用,則 LUKS 加密和鑰匙環(huán)的正?;谖募募用懿皇堑刃У?。在具有只由 LUKS 保護的鑰匙環(huán)的多用戶系統(tǒng)中,具有解密磁盤和引導(dǎo)系統(tǒng)授權(quán)的任何用戶都能夠訪問同一系統(tǒng)上的任何其他用戶的鑰匙環(huán)。
移除 GNOME “登錄”鑰匙環(huán)密碼短語非常簡單。只需設(shè)置一個新的空密碼,鑰匙環(huán)將被解鎖,并且其內(nèi)容將以未加密的方式存儲在文件級別上。可以使用圖形實用程序 Seahorse(也稱為“密碼和密鑰”)來在 GNOME “登錄”鑰匙環(huán)上設(shè)置一個空密碼。
警惕和其他用例即將發(fā)布的文章將探討如何使用 U2F Dracut 插件使用 FIDO2/U2F 密鑰解鎖 LUKS 加密的磁盤。
OpenSSH 8.2+ 支持使用ed25519-sk
安全密鑰。這個主題已經(jīng)在之前的文章《如何在 Fedora Linux 上使用 YubiKey》中涉及到。
需要注意的是,F(xiàn)IDO2/U2F 是一種認(rèn)證標(biāo)準(zhǔn)。還有其他用于安全令牌的用例(主要由 Yubico 建立),例如 (T)OTP、PIV(用于 x509 密鑰管理)或 OpenPGP,這些用例不是一般性的,而是具體硬件上的用例。
關(guān)鍵詞:
您可能也感興趣:
為您推薦
鄉(xiāng)村齊魯好戲不斷!文化搭臺家門口 好戲連臺真精彩
會同縣:開展路域環(huán)境專項整治行動
火箭舊帥揭秘哈登莫雷矛盾真因:莫雷縱容大胡子自食其果
排行
- 之江生物跌2.82% 2021年上市募資21億海通證券保薦
- 深圳要求建設(shè)工地落實“六個到位” 建設(shè)項目實施圍合式管理
- 截至3月末,深圳29個金融科技應(yīng)用試點項目已全部上線運行
- 廈企投資建設(shè)的高性能膜材項目開工 未來總產(chǎn)值將達60億元
- 重慶巴南第二季度重點項目集中簽約,合同投資金額215億元
- 全國知名民企走進重慶萬州區(qū),簽約重點合作項目21個
- 青海海西4000兆瓦風(fēng)光儲氫一體化項目簽約,總投資額214億元
- 深圳寶安區(qū)啟動23個新開工項目,年度投資計劃42.1億元
- 一季度沈陽新簽約億元以上項目480個,同比增長22.1%
- 福州晉安招商大會簽約項目45項,總投資208.43億元
最近更新
- 在 Fedora Linux 上使用 FIDO U2F 安全密鑰
- 銀行財眼|金融統(tǒng)計指標(biāo)數(shù)據(jù)錯報等8項違規(guī) 齊魯銀行被罰297.5萬元
- 為企創(chuàng)新發(fā)展賦能 石家莊稅費紅利盡享快享
- 鎮(zhèn)江建成江蘇首個“10GPON全覆蓋區(qū)縣”
- 雀巢咖啡是哪一個國家的品牌(雀巢咖啡是哪國的品牌)
- 第十四屆北京奧運城市體育文化節(jié)開幕
- 長期干旱致巴拿馬運河出現(xiàn)船舶擁堵現(xiàn)象
- 5年內(nèi)痛失3個孩子!53歲的他近日也因癌癥去世
- 預(yù)告|靜為律所特約“我的律師朋友”:反家暴,我們能做什么?
- 拆掉“圍墻”,資源共享!臺州651家機關(guān)企事業(yè)單位參與這項暖...
- 施秉縣紅十字會:為延續(xù)生命“儲存”愛心
- 上午九點,男籃一哥火速馳援喬帥,易建聯(lián)激動,必穩(wěn)穩(wěn)出線
- 晶科能源需求強勁中期營收首超500億 N型組件大規(guī)模量產(chǎn)出貨...
- 防輻射服怎么清洗(防輻射服怎么清洗和保養(yǎng))
- 惠譽下調(diào)厄瓜多爾長期發(fā)行人評級至“CCC+”
- 記者調(diào)查:切莫讓共享按摩椅成了“公害”
- 劉若英西安演唱會突然延期,光退票就可以嗎?
- 內(nèi)涵傷感語錄
- 蹲便的正確方法(蹲便的正確方法圖解)
- iPhone13黃屏怎么調(diào)
- 央行主管媒體:短期因素疊加引發(fā)人民幣匯率波動
- 商品市場高位回落,“兩棲”投資何去何從
- 定金不退會構(gòu)成詐騙嗎
- 扶的反義詞 扶的反義詞是什么
- 南陽個人醫(yī)保參保流程(南陽醫(yī)保繳費)
- 猥褻10歲女孩判刑兩年 男子“隔空猥褻”10歲女童被判刑 基...
- 男子偷窺不成躲后備廂因缺氧半昏迷,民警砸破車窗救出
- 還記得2NE1的樸春嗎?她這幾年怎么了?
- 4-2擊敗日本選手奪冠,世乒賽亞軍轟10-12、14-12、11-9、9-11、11-6、11-7
- 360壓縮怎么修復(fù)損壞的壓縮包(360壓縮文件損壞怎么修復(fù))
今日要聞
- 圖赫爾:很感激離開德甲后的那段執(zhí)教經(jīng)歷,這讓我走出了舒適圈
- A股糧食股票龍頭股一覽(2023/8/16)
- 聯(lián)想集團新一季財報凈利降66% 股價午后跳水收跌3%
- 地下城堡2英雄屬性表2021_地下城堡2最稀有英雄
- 英維克(002837.SZ):入選精密溫控節(jié)能設(shè)備研發(fā)中心及生產(chǎn)基地重點產(chǎn)業(yè)項目遴選方案
- 手游吃雞技巧_手游吃雞如何快速上手
- 五龍山軍事拓展 軍事拓展
- 南陽個人醫(yī)保參保流程(南陽醫(yī)保繳費)
- 歐超杯:曼城6-5逆轉(zhuǎn)塞維利亞,21歲新星救主,瓜迪奧拉加冕4冠王
- 7月LPR報價出爐:1年期為3.55% 5年期以上為4.2%