windows要求已數字簽名的驅動程序?
我寫了個驅動,也買了個代碼簽名。簽名後安裝出現這個問題。但是簽名的確沒有問題。不知道為什麼。我點開左下角的什麼是已簽名的驅動程序出現我不明白哪裡出錯了。我進行了如下驗證:在這台計算機上無法安裝成功,但是在另一台上使用同樣的方法安裝成功。同樣是Win7X64系統。居然ghost版本的安裝成功,而從msdn上下載的正版的不成功。不知什麼原因,求指點。
給你做一個表:
無簽名 自簽名 WHQL簽名
默認: 不能 不能 可以
禁用數字簽名強制檢測: 可以 可以 可以
打開Test Mode: 不能 可以 可以
自簽名:你自己買的簽名(從正規渠道獲得的各種EV簽名,比如wosign或者verisigned等),或者你自己創建發布的簽名(具體信任策略要看你本地策略)
WHQL簽名:微軟官方給你簽的,只用於驅動認證的(需要提交測試報告,交錢才能獲得,據說最近免費了)禁用數字簽名強制檢測:開機按F8
TestMode:用bcdedit命令打開,用於本地測試驅動的穩定性。你的問題:
Q. 為什麼有些機器可以裝?A. 有些ghost機器默認打開了Test Mode,目的是為了裝上自己的某些未通過WHQL認證的驅動,所以你能裝上,但這樣其實有風險,TestMode最好是關閉。Q. 你買的簽名為什麼有的機器不能裝?
A. 因為你買的是自簽名,這種簽名是證明你的軟體是通過你的手裡發布出去的(受信任的發布者),驅動驗證的簽名是WHQL,不是你的自簽名。特別提醒:
簽名和WHQL認證不是同一個東西。
簽名的用途是證明二進位文件來自可靠的發布者,並且內容未被改變,受信任的合法證書也包含在這個範圍。
WHQL認證是微軟認可你的驅動,你的驅動即使有合法的簽名,沒通過WHQL認證也是無法被載入的。Windows Vista以後驅動載入檢查的是WHQL簽名,不是你的自簽名。
32位系統不檢查WHQL,只是給一個警告。有一種可能是你的簽名證書是最新的(老的簽名證書,只採用128位散列演算法,安全性不夠,win10在2016起不予承認)
那這個新的簽名證書,雖然在win10上好使,但有兩個問題:1、XP sp2無法識別它;2、win7 64位在沒打某個補丁的時候也不能識別它。ghost版可以,估計是早打了這個補丁。
簽名證書從誰那裡買的,就加qq問他,他們很清楚這個。
我的做法是:win7 64的驅動用舊的簽名證書,win10用新的,哪怕它們在二進位上一樣。讓用戶裝補丁太麻煩了。win7不知道有沒有,win8以上的系統高級重啟都可以選擇禁用驅動簽名的啟動模式
我也碰見過這個問題,不過各種關閉驗證的方法都沒用。
並且我也發現了ghost版那些都能裝,只是再三比對之後在明顯的位置沒發現區別。不過ghost版估計不是驗證通過了你的簽名而是它根本不驗證吧....於是最後找了個叫做Driver Signature Enforcement Overrider的程序,給沒給不能通過驗證的sys文件好像是打了個測試簽名還是什麼的,之後就能裝了.....不過這樣似乎你的簽名就沒派上用處啦.,.推薦閱讀:
TAG:MicrosoftWindows | 操作系統 | 信息技術IT | 驅動程序 | 數字簽名 |