上一篇我們說了驅(qū)動簽名,驅(qū)動簽名是數(shù)字簽名和驅(qū)動程序相關(guān)聯(lián)的產(chǎn)物,那么這篇我們就來說說數(shù)字簽名。
數(shù)字簽名基于 Microsoft 公鑰基礎(chǔ)結(jié)構(gòu)技術(shù),基于 Microsoft Authenticode與受信任的證書頒發(fā)機構(gòu) (Ca) 的基礎(chǔ)結(jié)構(gòu)結(jié)合使用。 驗證碼,基于行業(yè)標準,允許供應(yīng)商,或軟件發(fā)布者、 文件的集合進行簽名 (如驅(qū)動程序包) 通過使用代碼簽名數(shù)字證書CA 頒發(fā)。
Windows 使用有效的數(shù)字簽名來驗證以下各項:
該文件或文件的集合進行簽名。
簽名者是受信任。
身份驗證簽名者的證書頒發(fā)機構(gòu)是受信任。
發(fā)布后對其未被更改的文件的集合。
例如,對于此簽名過程驅(qū)動程序包涉及以下:
發(fā)布服務(wù)器獲取X.509 數(shù)字證書從 CA。 驗證碼證書也稱為簽名證書。 簽名證書是一組數(shù)據(jù),用于標識發(fā)布服務(wù)器,并僅后已驗證的發(fā)布服務(wù)器的標識由 CA 頒發(fā)。 CA 可以是 Microsoft CA、 第三方商業(yè) CA 或企業(yè) CA。
用于簽名的證書進行簽名編錄文件的驅(qū)動程序包或設(shè)置為嵌入簽名驅(qū)動程序文件中。 標識受信任的發(fā)行者和受信任的 Ca 的證書安裝在證書存儲區(qū)的維護 Windows。
簽名證書包含私鑰和公鑰,它被稱為密鑰對。 使用私鑰進行簽名的編錄文件驅(qū)動程序包或驅(qū)動程序文件中嵌入簽名。 公鑰用于驗證驅(qū)動程序包的目錄文件的簽名或簽名的驅(qū)動程序文件中嵌入的。
若要簽署編錄文件或文件中嵌入簽名,簽名過程首先生成加密哈希,或指紋,該文件。 簽名過程然后會使用私鑰加密的文件指紋,并將指紋添加到文件。
簽名過程還將添加有關(guān)發(fā)布服務(wù)器和 CA 頒發(fā)的簽名證書的信息。 數(shù)字簽名添加到生成文件指紋時則不會處理該文件的節(jié)中的文件中。
若要驗證的數(shù)字簽名的文件,Windows 提取有關(guān)發(fā)布服務(wù)器和 CA 的信息,并使用公鑰進行解密的加密的文件指紋。
Windows 可接受的文件的完整性和真實性的發(fā)布服務(wù)器僅當滿足以下條件:
已解密的指紋匹配的文件的指紋。
發(fā)布服務(wù)器的證書安裝在受信任的發(fā)行者證書存儲區(qū)。
頒發(fā)的發(fā)布者證書的 CA 的根證書安裝在受信任的根證書頒發(fā)機構(gòu)證書存儲區(qū)。
微軟驅(qū)動簽名就是一種數(shù)字簽名。在windows平臺上,微軟支持兩種簽名方式,一種是微軟自己的簽名,我們見微軟驅(qū)動簽名,可以通過微軟的徽標認證(WHQL),獲取到。任外一種是第三方發(fā)布的證書進行簽名。目前微軟官方支持6個第三方證書:digicert、globalsign、Entrust 、 SSL、 Certum、Sectigo。