數位簽章?Verisign? Test sign?
Windows 的老習慣,軟性要求kernel program要Sign過、要pass WHQL. WHQL送一個platform原則上是250美元,說多不多說少不少,多送幾次金額也是可觀。特別是x64位元的作業系統一律要求要Sign過才能安裝 核心驅動程式,那還沒有拿到WHQL的怎麼辦呢?總是還是要進行測試才知道要不要送阿。 那又裝不進去,一整個是不是卡住了呢。這時候就要來用簽章了,也就是 使用Sign過,但是還沒Pass WHQL的 driver package。同時它也是你送WHQL的driver package候選人。可以分作三種情況來說:
1. 沒有數位簽章的章:最佳就是用TEST Sign,Test Sign 的方法可回顧前面的文章。可以有條件的在BCDEdit開了TEST mode的情況下,進行安裝。%%不要拿TEST Sign去送WHQL%%
2. 申請並拿到被認可機構(Verisign等)發行的章:這時候就可以大方的將自已的章簽在軟體上了,稍後會加以說明如何 使用這類的私章。
3. 對於蓋過私章的驅動程式得到WHQL:通過DTM的適當測試後,拿到all pass的cpk,送去微軟,目前的時程大概是兩天可以拿到你的結果。
本篇接下去所描述的是第2點,如何使用認可機構發行的數位簽章。
1. 申請簽章,向徵軟核可的單位申請發行給你的章。 有幾個核可單位, 你可以參考(http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx#top)。目前為止業界我個人知道的都是選用VeriSign,收費大概是三年300(?)USD。
申請完成後,VeriSign會來一封信告訴你怎麼download,順便警告你說換台機器你就不能download囉,節錄內容如下:
Dear VeriSign Customer,
Congratulations! VeriSign has approved your request for an Authenticode Digital ID for Microsoft.
===========================
IMPORTANT! When downloading your Digital ID, use the same computer and browser used during enrollment.
If you are using another computer or browser, you will not be able to download your Digital ID.
===========================
所以你可能聽過有人和你說 VeriSign一定要在某一台特定的機器上面才能Sign。 是也不是,不全然是事實,因為簽章是可以轉出的。而且,不需要多久後的某一天,很快會需要在不同的機器上執行簽章的。
寫到這 邊我有點心虛,因為我忘了中間我是怎麼和VeriSign交涉的,總之後來下載完成以後,從IE裡的簽章庫裡可以轉出兩個檔案,一個是XXXXXX.spc另外一個 是XXXXXXX.pvk。 有了這兩個檔案以後,任意的電腦都可以進行簽章的動作。
(ps. VeriSign網站上有線上客服,可以上去問)
在這一動結束後,希望你已經取得spc 和pvk檔案。如果沒有的話,你也有一台已經安裝好籤章的機器,那以下面的import pvk應該可以不用做。
2. 準備簽章工具
2.1 Inf2Cat / Signtool
這兩個工具在WDK or SDK裡,要注意一下版本,如果要Sign 支援Win7的軟體,請拿到WDK 7以上的版本。(SDK我就不瞭了)
2.2 PVK mport tool (http://www.microsoft.com/downloads/details.aspx?FamilyID=F9992C94-B129-46BC-B240-414BDFF679A7&displaylang=EN)
2.3 VeriSign Class 3 Public Primary Certification Authority from (拿到交互認證的.cer檔)(http://www.microsoft.com/whdc/winlogo/drvsign/crosscert.mspx
3. Import cerfification into working system. [Run at the first time, the tool will set VeriSign into certification store.]
3.1 install pvkimprt
3.2 execute pvkimprt "c:\example directory\mycertificate.spc" "c:\example directory\mycertificate.pvk"
4.Check whether the import had been done. Check [IE] -> [工具]->[網際網路選項]->[內容頁]->[憑證]->[個人頁]若有顯示VeriSign Class 3 code xxxxx 發給 你的單位的,那表示這步ok了。
5.弄出你的Cat,不再說明了,請參考inf2cat的使用,或是回顧TEST Sign那邊有範例。
6.Command mode下執行Signtool,要來sign你的cat file,一個範例如下
C:\ >"P:\WDK 7 tool bin\bin\x86\signtool" sign
/v /ac "P:\VeriSign\MSCV-VSClass3.cer" /s my /n "XXXX, Inc." /t http://timestamp.verisign.com/scripts/timstamp.dll "P:\DriverPackage\yyyy.cat"
6.1所有路徑改成你自已的
6.2中間有一個my,它就是my,指的是個人簽章庫,不要改它。
6.3 XXXX是你單位的名子,請參考個人簽章庫裡顯示的內容。
6.4 yyyy是你Cat的名稱
Enter以後會出現一串訊息並 告訴你是否有Sign成功了。
驗證:
在安裝過程中,你會看到你單位的名稱出現,並詢問使用者要不要繼續安裝。
可以在Vista64以及Win7 64下成功驅動裝置。
延伸閱讀
如何提昇driver install時 mack rank level??
http://rebecca9906.blog.ithome.com.tw/post/1710/70805
留言