Thunderbolt – 如何在啟動時使用鍵盤


問題陳述

假設您購買了一台帶有閃亮的新 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].

醬:

[1] https://www.intel.com/content/www/us/en/products/docs/io/thunderbolt/thunderbolt-technology-developer.html

[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/