關於WDK開發內核簽名之WHQL簽名認證流程簡介


WHQL簡介:

   WHQL全稱Windows Hardware Quality Labs testing(Windows硬件質量實驗室測試)它是對所涉及的第三方硬件軟件進行一系列測試,然后提交測試的日志文件到微軟供微軟審核的一個測試流程。該流程也可能包含微軟在各種設備上運行自己的測試,例如不同的硬件和不同的Microsoft Windows版本。我的個人理解WHQL其實就是微軟為了統一平台的驅動完整性搞出來的東西,拿到ev簽名意思證明你是微軟合作的開發商,經過whql測試就證明你驅動在他的那些系統版本上可運行安裝不會報錯,因為我沒調試文件微軟應該只是測試我驅動能能安裝,如果提交測試文件微軟應該會根據你調試文件進行測試然后給你再各個平台上運行的反饋結果 。

WHQL數字簽名申請步驟:

1、首先你應該到微軟的儀表板頁面申請一個Azure AD 賬號地址為:https://partner.microsoft.com/zh-cn/dashboard/hardware/Search 

2、在開發人員設置-賬戶-管理證書 添加一個證書,這一 步需要你利用你從微軟代理的EV證書合作商那里拿到證書后利用SHA2對從該頁面下載的一個BIN文件進行簽名,將該文件重新上傳后微軟將根據你簽名的文件生成一個代碼簽名證書。微軟目前授權的證書機構為Symantec,GlobalSign,DigCert,Entrust這些是微軟正規授權的證書頒發商而沃通之類還有證書簽名方案解決商的只是EV證書機構的代理商,他們拿到代理權然后推出一些證書簽名工具還有方案作為二次銷售。(補充說明bin文件一定要單簽名SHA2不要雙簽也不要用SHA1簽名否則提交后均不能通過審核)。

3、驅動提交文件格式目前為.hlkx, .hckx, .cab, wlk 因為我只是利用人家開源的驅動程序進行開發因此我不需要提交測試文件只要提交.INF 跟.SYS文件讓微軟幫我生成.CAT 帶簽名與.SYS帶簽名的文件即可。

4、cab文件應該將驅動文件放在一個目錄下再生成cab文件如果直接將cat 與 sys文件生成cab微軟的自動腳本解壓后無法識別,這個點MSDN描述的非常不清楚算是一個比較坑的地方,我相信大部分人都沒有布置HLK服務器的條件隱藏cab可能有挺多人用的(我說的大部分人是小公司客戶端一般一人開發的那種情況)。

5、cab文件生成后應該利用簽名工具對該cab文件進行SHA2簽名

6、提交完成后微軟會返回一個下載包里面包含.INF CAT SYS這三個文件后面兩個帶有微軟的WHQL簽名   Microsoft Windows Hardware Compatibility Publisher 該前面證明你已經在微軟測試的相對應平台上沒有任何問題。

結語:

whql剛接觸之前覺得挺深奧的其實它就是一個微軟給你蓋的出廠檢驗合格證,但是產品質量有沒有問題誰也不好說BUG這玩意眾所周知是一個非常玄學的東西,誰也說不准它何時會發生所以就算你拿到了WHQL認證也頂多是你帶了一個有效的數字簽名然后可以報錯藍屏之類的溢出問題。以上就是對WHQL的簡單描述與個人理解如果有不懂的可以留言或者加群624685312我自己建立的一個學習群里面有我學習分享的一些開源代碼。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM