上一篇我們說了驅動簽名,驅動簽名是數字簽名和驅動程序相關聯的產物,那么這篇我們就來說說數字簽名。
數字(zi)簽名基(ji)于 Microsoft 公鑰(yao)基(ji)礎結構技術,基(ji)于 Microsoft Authenticode與受信任的證書頒(ban)發機構 (Ca) 的基(ji)礎結構(gou)結合使用。 驗證碼,基于行業(ye)標準(zhun),允許(xu)供應商,或軟(ruan)件(jian)發布者、 文件的(de)集(ji)合進行(xing)簽名 (如驅動(dong)程序(xu)包) 通過(guo)使用代碼簽名數字證書CA 頒發。
Windows 使用有效的數字簽(qian)名來(lai)驗證以下各項:
該文(wen)件或文(wen)件的集(ji)合進(jin)行簽名。
簽名者是受信(xin)任(ren)。
身(shen)份(fen)驗證簽名者的證書(shu)頒發機構(gou)是受信任。
發布后對其未(wei)被更改的文件的集合(he)。
例如(ru),對于(yu)此(ci)簽名過程驅動程序包(bao)涉及以下:
發布服務器(qi)獲取X.509 數字(zi)證書(shu)從 CA。 驗證(zheng)碼證(zheng)書也稱為簽名證(zheng)書。 簽名證書是一組(zu)數據,用于標識發布(bu)服務(wu)器,并僅(jin)后已驗證的(de)發布(bu)服務(wu)器的(de)標識由(you) CA 頒發。 CA 可以(yi)是 Microsoft CA、 第(di)三方商業 CA 或企業(ye) CA。
用于簽名的(de)證(zheng)書(shu)進行簽名編錄(lu)文(wen)件的(de)驅動(dong)程序包或(huo)設(she)置為嵌入簽名驅動(dong)程序文(wen)件中。 標識受(shou)(shou)信任(ren)的(de)發(fa)行(xing)者和受(shou)(shou)信任(ren)的(de) Ca 的證書(shu)(shu)安裝(zhuang)在證書(shu)(shu)存(cun)儲區的維護 Windows。
簽名證(zheng)書包(bao)含私鑰和(he)公鑰,它被稱為(wei)密鑰對。 使用私鑰進行簽名的編(bian)錄(lu)文件驅(qu)動程序包或驅(qu)動程序文件中(zhong)嵌入簽名。 公鑰用于驗證驅(qu)動程序包的(de)目(mu)錄文件的(de)簽(qian)(qian)名或(huo)簽(qian)(qian)名的(de)驅(qu)動程序文件中嵌(qian)入(ru)的(de)。
若要簽署編錄文(wen)件(jian)或文(wen)件(jian)中嵌入(ru)簽名,簽名過程首先生(sheng)成加密(mi)哈希,或指(zhi)紋,該文(wen)件(jian)。 簽(qian)名過(guo)程然后會使用私鑰加(jia)密的文件指紋(wen),并將指紋(wen)添(tian)加(jia)到文件。
簽(qian)名過程還將添加有關發布服務器和 CA 頒發的(de)簽名證書的(de)信息(xi)。 數字簽名添加(jia)到生(sheng)成文(wen)件(jian)指紋(wen)時(shi)則不會處理(li)該文(wen)件(jian)的(de)節中的(de)文(wen)件(jian)中。
若(ruo)要(yao)驗證的數字簽名的文件,Windows 提取有關(guan)發布服(fu)務器和 CA 的(de)信息,并使用(yong)公鑰進(jin)行解密(mi)的(de)加密(mi)的(de)文件指紋(wen)。
Windows 可接受的文件(jian)的完(wan)整性和(he)真實(shi)性的發(fa)布服務器僅(jin)當滿足以下條件(jian):
已解密的(de)指紋匹(pi)配的(de)文件的(de)指紋。
發(fa)布服務器的(de)證書安裝(zhuang)在受信任的(de)發(fa)行者證書存儲(chu)區。
頒發(fa)的(de)發(fa)布者證(zheng)書的(de) CA 的(de)根證(zheng)(zheng)書安裝在受信任的(de)根證(zheng)(zheng)書頒發機構證(zheng)(zheng)書存儲區。
微軟驅動簽名就是一種數字簽名。在windows平臺上,微(wei)(wei)軟(ruan)(ruan)(ruan)支持兩(liang)種(zhong)簽(qian)名(ming)方式,一種(zhong)是(shi)微(wei)(wei)軟(ruan)(ruan)(ruan)自己的簽(qian)名(ming),我(wo)們見微(wei)(wei)軟(ruan)(ruan)(ruan)驅動簽(qian)名(ming),可以(yi)通過微(wei)(wei)軟(ruan)(ruan)(ruan)的徽(hui)標認證(zheng)(WHQL),獲取到。任外一種是第(di)三方(fang)發布的證書進行(xing)簽名。目前(qian)微軟官方(fang)支持6個第三(san)方證書(shu):digicert、globalsign、Entrust 、 SSL、 Certum、Sectigo。