密碼編譯工具

密碼編譯工具提供用於程式代碼簽署、簽章驗證和其他密碼編譯工作的命令行工具。

程式碼簽署簡介

軟體產業必須為使用者提供信任程序代碼的方法,包括因特網上發佈的程序代碼。 許多網頁只包含靜態資訊,而且風險很小。 不過,有些頁面包含要下載並在用戶計算機上執行的控件和應用程式。 這些可執行檔可能會有下載和執行的風險。

封裝的軟體會使用品牌和受信任的銷售網點來保證使用者的完整性,但在因特網上傳輸程序代碼時,這些保證無法使用。 此外,因特網本身無法提供軟體建立者身分識別的任何保證。 也無法保證任何下載的軟體在建立後都不會改變。 瀏覽器可以顯示警告訊息,說明下載任何種類的數據可能的危險,但瀏覽器無法驗證程式代碼是否為它所聲稱的。 必須採取更活躍的方法,讓因特網成為發佈軟體的可靠媒體。

提供檔案真實性和完整性保證的其中一種方法是將數位簽名附加至這些檔案。 附加至檔案的數位簽名會積極識別該檔案的散發者,並確保在建立簽章之後,不會變更檔案的內容。

您可以使用 Microsoft 的密碼編譯 API 來建立和驗證數位簽名。 如需密碼編譯和 CryptoAPI 函式的背景資訊,請參閱密碼編譯基本概念

如需數位簽名憑證證書存儲的詳細資訊,請參閱下列主題:

目前,CryptoAPI Tools 可讓軟體廠商簽署下列類型的檔案以進行 Authenticode 驗證,以支援 Microsoft Authenticode 技術。

副檔名 目錄
.appx、.msix、.appxbundle、.msixbundle
已封裝的 Windows 應用程式。
.cab
用於應用程式安裝和設定的自封檔案。 在封包檔案中,多個檔案會壓縮成一個檔案。 它們通常位於 Microsoft 軟體散發磁碟上。
。貓
包含數個檔案數位 指紋 的檔案。 .cat 檔案可用來確保其指紋包含之檔案的完整性。
.dll
包含可執行函式的檔案。
.exe
包含可執行程序的檔案。
.js
.vbs
.wsf
適用於 JScript 或 Microsoft Visual Basic Scripting Edition (VBScript) 的 Windows 殼層檔案。
.msi
.msp
.mst
Windows Installer 檔案。
.ocx
包含 Microsoft ActiveX 控制件的檔案。
.ps1
包含 PowerShell 腳本的檔案。
.stl
包含憑證信任清單 (CTL) 的檔案。
。系統
包含驅動程式二進位檔的檔案。

 

如需數位簽名的相關信息,請參閱下列檔:

  • CCITT,建議X.509, 目錄驗證框架,諮詢委員會,國際電話和電報,國際電信聯盟,日內瓦,1989年。
  • RSA 實驗室, PKCS #7:密碼編譯訊息語法標準。 1993 年 11 月 1.5 版。
  • 施奈爾,布魯斯, 套用密碼編譯,2d ed。 紐約:約翰·威利和兒子,1996年。
  • https://www.rsa.com

注意

某些語言和國家或地區可能無法使用這些資源。

 

Microsoft 密碼編譯工具

發佈工具和簽署 DLL 會安裝在 Microsoft SDK 安裝的 \Bin 目錄中。 其中包括下列檔案。

File name 備註
Cert2SPC.exe 僅針對測試目的建立 軟體發行者憑證 (SPC)。
CertMgr.exe 管理憑證、CTL 和 證書吊銷清單 (CRL)。
MakeCat.exe 建立未簽署的目錄檔案,其中包含一組檔案的哈希,以及每個檔案的相關聯屬性。
MakeCert.exe 僅針對測試目的建立 X.509 憑證。
Pvk2pfx.exe 將軟體發行者憑證檔案 (.spc) 或私鑰檔案 (.pvk) 轉換為個人資訊交換 (PFX) 檔格式。
SetReg.exe 設定控制憑證驗證的登錄機碼。
SignTool.exe 簽署和時間戳檔案。 此外,檢查檔案的簽章。