問題陳述
想像一下購買一台帶有新光面 USB-C 擴展塢的新筆記本電腦。安裝新的 Fedora 並加密您的硬盤。由於筆記本電腦是旅行設備,因此不建議隨身攜帶未加密的硬盤。我想完成安裝,因為我有外接顯示器,關上蓋子,重新啟動機器,最後使用通過USB 2.0連接到USB-C擴展塢的外接鍵盤輸入LUKS密碼,但功能我不會。
鍵盤完全沒有反應。打開蓋子並嘗試內置鍵盤,它工作正常。當機器啟動時,外接鍵盤也能正常工作。問題是什麼?
無論如何,這個 Thunderbolt 是什麼,為什麼有人想要它?
Thunderbolt 是一種硬件接口,用於連接顯示器和外部網卡等外圍設備。 [1] 連顯卡 [1]..物理連接器與 USB-C 相同,但通常在端口旁邊標有一個小閃電,以區分“普通”USB-C 端口和 Thunderbolt 端口。
當然,它具有非常高的傳輸速度來支持這些要求苛刻的外圍設備,但它也帶來了一定的安全風險。為了實現這些傳輸速率,Thunderbolt 對其外圍設備使用直接內存訪問 (DMA)。顧名思義,這種方法允許外部設備直接讀取和寫入內存,而無需與正在運行的操作系統進行通信。
您已經可以在這裡找到問題所在。如果一個陌生人漫遊我的筆記本電腦(即使屏幕被鎖定),是否真的可以連接設備並讀取計算機內存中的內容?讓我更詳細地解釋一下。
面向用戶的 Thunderbolt 安全解決方案
在最近的版本中,Gnome 設置包括一個 Thunderbolt 設備配置選項卡。您可以在外部設備上啟用或禁用 DMA 訪問並驗證設備的身份。

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

啟用此功能後,Volt 會將經過身份驗證的設備添加到允許的設備列表中。下次啟動機器時,您將能夠使用外接鍵盤。
運行 Boltctl 並找到“bootacl”。確保允許的設備列表中包含您要使用的設備。

還要注意“安全:安全”這一行。 如果還有“security:user”之類的東西,建議重新配置BIOS。
預啟動支持的技術細節
不幸的是,該解決方案具有技術細節。 Thunderbolt 支持不同的安全級別。 如果您正在運行 Fedora,請使用“安全”級別,通過使用主機生成並存儲在設備上的 per-device 密鑰來驗證設備是否確實如所聲稱的那樣。我建議這樣做。另一方面,固件僅使用“用戶”級別,該級別使用設備提供的簡單 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/