簡體   English   中英

Windows 脫機時驅動程序簽名如何工作?

[英]How does driver signing work when Windows is offline?

我了解簽名的基礎知識。 您必須擁有來自信譽良好的證書頒發機構的私鑰和證書(不一定)。 然后,您必須擁有簽名者的公鑰以驗證其完整性。

我可以在網上看到這個工作; 一個站點從信譽良好的證書頒發機構(例如 Verisign)獲得證書(不一定),Firefox(例如)可以通過聯系所述證書頒發機構來檢查證書的真實性。

是的,我知道您可以使用自生成的證書對事物進行簽名,但是 Firefox 會在發生這種情況時抱怨,Windows 在安裝 3rd 方驅動程序時也會抱怨。

我的問題是這樣的; Windows 如何知道驅動程序在離線時由信譽良好的證書頒發機構簽名並且無法與所述信譽良好的證書頒發機構核對?

Windows 是否保留來自 Windows 內信譽良好的證書頒發機構的公鑰集合? 難道不能更改此列表以加載驅動程序,就好像它擁有信譽良好的證書頒發機構的證書一樣?

驅動程序簽名如何離線工作?

是的,Windows 保留了一組受信任的根證書。 某些軟件,例如 IE 和 Chrome,使用該集合; 某些軟件(例如 Firefox)附帶有自己的列表。 這就是證書驗證的工作原理; 沒有人通過互聯網從 CA 獲得根證書,因為你怎么知道你真的在和 CA 交談?

您可以通過證書插件使用 MMC 查看 Windows 根證書存儲。 請注意,除了全局(“計算機帳戶”)存儲之外,每個用戶帳戶都有自己的證書存儲。

但是,Windows使用驅動程序簽名可信證書的該列表。 相反,Windows 內核有一個內置的根證書列表。 驅動程序的證書驗證基於該內置列表,如果我理解正確,該列表完全由屬於 Microsoft 的根證書組成。

當驅動程序由第三方證書頒發機構簽名時將使用交叉簽名證書

更復雜的是,在大多數情況下,設備驅動程序以兩種不同的方式進行加密驗證; 在安裝過程中一次,然后在驅動程序代碼加載到內核中時再次。 安裝過程中的驗證使用主根證書列表,管理員可以根據具體情況進行覆蓋; 加載驅動程序代碼時的驗證使用內核的根證書列表,不能逐個覆蓋。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM