Authenticode 是一種 Microsoft 程式代碼簽署技術,可識別 Authenticode 簽署軟體的發行者。 Authenticode 也會驗證軟體自簽署和發佈以來沒有任何變更。
Authenticode 會使用密碼編譯技術來驗證發行者身分識別和程式代碼完整性。 它將數位簽章與受信任實體(包括憑證授權單位 (CA))的基礎設施相結合,向使用者保證驅動程式源自指定的發布者。 Authenticode 可讓使用者將數位簽章中的憑證鏈結至受信任的根憑證,以驗證軟體發行者的身分識別。
軟體發行者會使用 Authenticode 來簽署驅動程式或驅動程式套件,方法是使用數位憑證來標記驅動程式或驅動程式套件。 憑證會驗證發行者的身分識別,並讓程式碼的收件者能夠驗證程式碼的完整性。 憑證是識別軟體發行者的一組資料。 只有在該授權單位驗證軟體發行者的身分之後,CA 才會發出憑證。 憑證資料包括發行者的公開密碼編譯金鑰。 憑證通常是這類憑證鏈的一部分,最終參考知名的 CA,例如 VeriSign。
Authenticode 程式代碼簽署不會變更驅動程式的可執行檔部分。 相反地,它會完成下列動作:
內嵌簽章:簽署程式會在驅動程式檔案的非執行部分內嵌數位簽章。 如需詳細資訊,請參閱 驅動程式檔案中的內嵌簽章。
數位簽署的目錄檔案:簽署程式需要從驅動程式套件內每個目錄檔案 (.cat) 的內容產生檔案雜湊值。 此雜湊值包含在目錄檔案中。 然後,目錄檔案會使用內嵌簽章進行簽署。 如此一來,型錄檔案就是一種分離的簽章。
備註
硬體認證套件 (HCK) 包含各種裝置類型的測試類別。 您可以在 HLK API 參考中檢閱 Windows 硬體實驗室套件 (HLK) 的測試類別清單。 如果此清單中包含裝置類型的測試類別,軟體發行者應該取得驅動程式套件的 Windows 硬體品質實驗室 (WHQL) 發行簽章。 不過,如果 HCK 沒有裝置類型的測試程式,軟體發行者可以使用 Microsoft Authenticode 技術來簽署驅動程式套件。 如需詳細資訊,請參閱 簽署驅動程式以供公開發行。