問題陳述
假設您購買了一台帶有閃亮的新 USB-C 擴展塢的新筆記本電腦。安裝新的 Fedora 並加密您的硬盤。我的筆記本電腦是旅行設備,所以我不想隨身攜帶未加密的硬盤。我想完成安裝,關閉蓋子,因為我有外接顯示器,重新啟動機器,最後使用通過 USB 2.0 連接到 USB-C 擴展塢的外接鍵盤輸入 LUKS 密碼,不起作用!
鍵盤完全沒有反應。如果我打開蓋子並嘗試使用內部鍵盤,它可以正常工作,一旦機器啟動,外部鍵盤也可以正常工作。你有什麼問題?
無論如何,這個 Thunderbolt 是什麼,為什麼有人想要一個?
Thunderbolt 是一種硬件接口,用於連接顯示器、外接網卡等外圍設備。 [1] 顯卡也是 [1]物理連接器與 USB-C 相同,但端口旁邊通常標有一個小閃電,以區分“常規”USB-C 端口和 Thunderbolt 端口。
當然,它的傳輸速度非常快,可以支持如此苛刻的外設,但也存在一定的安全隱患。為了達到這些傳輸速度,Thunderbolt 對外圍設備使用直接內存訪問 (DMA)。顧名思義,這種方法允許外部設備直接讀寫內存,而無需與正在運行的操作系統交互。
我想你已經可以在這裡找到問題了。如果一個陌生人在我的筆記本電腦周圍走來走去(即使屏幕鎖定),是否真的可以插入設備並讀取我電腦內存中的內容?
Thunderbolt 用戶安全解決方案
在最近的版本中,Gnome Preferences 包含一個用於 Thunderbolt 設備配置的選項卡。您可以啟用或禁用外部設備的 DMA 訪問,以及驗證設備的身份。

Bolt 是負責管理 Thunderbolt 設備的組件。有關詳細信息,請參閱 man 8 螺栓。
命令行工具
當然,也可以通過命令行進行控制。 我建議閱讀 man Boltctl 或直接檢查上游存儲庫。 https://gitlab.freedesktop.org/bolt/bolt
預啟動支持 – 鍵盤問題的解決方案
預引導環境中的情況略有不同。負責設備身份驗證的用戶空間服務尚未運行,因此如果設備被允許,固件應該對其進行操作。要啟用此功能,請轉到 BIOS 並查找“Preboot Environment 中的支持”。例如,在聯想筆記本電腦上,它會顯示:

當您啟用此功能時,Bolt 會將經過身份驗證的設備添加到允許的設備列表中。下次啟動機器時,您應該可以使用外接鍵盤了。
運行 boltctl 找到“bootacl”。確保您的設備在允許的設備列表中。

還要注意“安全:安全”這一行。 如果您看到類似“安全:用戶”的內容,我建議您重新配置您的 BIOS。
預啟動支持的技術細節
這個解決方案有一些不幸的技術細節。 Thunderbolt 支持不同的安全級別。 如果您正在運行 Fedora,請使用“安全”級別來驗證設備是否真實,使用主機生成並存儲在設備上的每個設備密鑰。我們建議您檢查另一方面,固件僅使用“用戶”級別,該級別使用設備提供的簡單 UUID。不同之處在於,惡意設備可以通過提供與合法設備相同的 UUID 來聲稱是不同的設備。由於內存尚不包含敏感數據,因此這不是問題。
有關更多技術細節,請參閱以下博客文章。 https://christian.kellner.me/2019/02/11/thunderbolt-preboot-access-control-list-support-in-bolt/
結論是
如您所見,Fedora 最新版本的解決方案是一個簡單的 BIOS 切換。因此,如果您的筆記本電腦在啟動過程中仍處於開機狀態,請對其進行配置,以便下次不需要它。同時 檢查默認安全級別是否為“安全” 而不是“用戶” [5].
醬:
[2] https://christian.kellner.me/2019/02/11/thunderbolt-preboot-access-control-list-support-in-bolt/
[3] https://gitlab.freedesktop.org/bolt/bolt
[4] https://wiki.gnome.org/Design/Whiteboards/ThunderboltAccess
[5] https://christian.kellner.me/2019/02/27/thunderclap-and-linux/