數位簽章
數位簽章是以 Microsoft 公開金鑰基礎結構技術為基礎,其以 Microsoft Authenticode 為基礎,結合受信任憑證授權單位單位的基礎結構 (CA) 。 Authenticode 是以業界標準為基礎,可讓廠商或 軟體發行者簽署檔案或檔案集合, (例如 驅動程式套件) ,方法是使用 CA 所發行的程式碼簽署 數位憑證 。
Windows 會使用有效的數位簽章來驗證下列專案:
檔案或檔案集合已簽署。
簽署者受信任。
驗證簽署者的憑證授權單位單位是受信任的。
檔案的集合在發佈之後不會改變。
例如,此 驅動程式套件 的簽署程式牽涉到下列各項:
發行者會從 CA 取得 X.509 數位憑證 。 Authenticode 憑證也稱為 簽署憑證。 簽署憑證是一組資料,可識別發行者,而且只有在 CA 驗證發行者的身分識別之後,CA 才會發出。 CA 可以是 Microsoft CA、協力廠商商業 CA 或企業 CA。
簽署憑證可用來簽署驅動程式套件的 類別目錄檔案 ,或將 簽章內嵌 在驅動程式檔案中。 識別受信任發行者和受信任 CA 的憑證會安裝在 Windows 所維護 的憑證存放區 中。
簽署憑證包含私密金鑰和公開金鑰,稱為 金鑰組。 私密金鑰可用來簽署 驅動程式套件 的類別目錄檔案,或將簽章內嵌在驅動程式檔案中。 公開金鑰可用來驗證驅動程式套件類別目錄檔案的簽章,或內嵌在驅動程式檔案中的簽章。
若要簽署類別目錄檔案或將簽章內嵌在檔案中,簽署程式會先產生檔案的密碼編譯雜湊或 指紋。 簽署程式接著會使用私密金鑰加密檔案指紋,並將指紋新增至檔案。
簽署程式也會新增發行者和簽發簽署憑證之 CA 的相關資訊。 數位簽章會新增至檔案區段中的檔案,該檔案在產生檔案指紋時不會處理。
若要驗證檔案的數位簽章,Windows 會擷取發行者和 CA 的相關資訊,並使用公開金鑰解密加密的檔案指紋。
只有在下列情況成立時,Windows 才會接受檔案的完整性和發行者的真確性:
- 解密的指紋符合檔案的指紋。
- 發行者的憑證會安裝在 受信任的發行者憑證存放區中。
- 發行發行者憑證之 CA 的根憑證會安裝在 受信任的根憑證授權單位憑證存放區中。
如需隨插即用 (PnP) 裝置安裝如何使用驅動程式套件類別目錄檔案的數位簽章的詳細資訊,請參閱數位簽章和 PnP 裝置安裝。
如需 Microsoft 公開金鑰基礎結構技術、程式碼簽署和數位簽章的詳細資訊,請參閱 程式碼簽署 和程式 代碼簽署最佳做法簡介。