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