SignTool.exe(簽名工具)


 

簽名工具是一個命令行工具,用於用證書對文件進行數字簽名,驗證文件和時間戳文件中的簽名。

用法:signtool [command] [options] [file_name | ...]

command

指定要對文件執行的操作的四個命令之一(catdbsignTimestamp Verify)。

options

用於修改命令的選項。除了全局 /q /v 選項之外,每個命令均支持一組唯一選項。

/q    執行成功時不生成輸出,執行失敗時生成最少的輸出。

/v    執行成功、執行失敗或產生警告消息時生成詳細輸出。

file_name

要進行簽名的文件的路徑。

1.         四個命令

catdb

在目錄數據庫中添加或移除目錄文件。目錄數據庫用於自動查找目錄文件,並由 GUID 標識。

sign

對文件進行數字簽名。數字簽名可以避免文件被篡改,並且基於簽名證書使用戶能夠驗證簽名者。

Timestamp

時間戳文件。

Verify

通過確定簽名證書是否由受信任的頒發機構、是否已撤消了簽名證書,以及簽名證書對於特定策略是否有效驗證文件的數字簽名。

 

2.         catdb 命令選項

/d

指定更新默認目錄數據庫。如果 /d /g 選項都未使用,則簽名工具更新系統組件和驅動程序數據庫。

/gGUID

指定更新由全局唯一標識符 (GUID) 標識的目錄數據庫。

/r

從目錄數據庫中移除指定的目錄。如果未指定該選項,“簽名工具”將向目錄數據庫添加指定的目錄。

/u

指定為添加的目錄文件自動生成唯一的名稱。如有必要,重命名目錄文件,以避免與現有的目錄文件發生沖突。如果未指定該選項,簽名工具將覆蓋與所添加的目錄同名的任何現有目錄。

 

3.         簽名命令選項(Sign)

/a

自動選擇最佳的簽名證書。簽名工具將查找滿足所有指定條件的所有有效的證書,並選擇有效時間最長的一個。如果未指定該選項,簽名工具僅查找一個有效的簽名證書。

/ac  文件

將文件中的其他證書添加到簽名塊。

/c CertTemplateName

指定用於對證書進行簽名的證書模板名(一個 Microsoft 擴展)。

/csp CSPName

指定包含私鑰容器的加密服務提供程序 (CSP)

/d Desc

指定已簽名內容的說明。

/du URL

為已簽名文檔的詳細說明指定統一資源定位器 (URL)

/f SignCertFile

指定文件中的簽名證書。如果文件是個人信息交換 (PFX) 格式且受密碼保護,則使用 /p 選項來指定密碼。如果文件不包含私鑰,則使用 /csp /k 選項指定 CSP 和私鑰容器名。

/fd

指定將用於創建文件簽名的文件摘要算法。默認值為 SHA1

/i IssuerName

指定簽名證書的頒發者的名稱。該值可以是整個頒發者名稱的子字符串。

/kc PrivKeyContainerName

指定私鑰容器名。

/n SubjectName

指定簽名證書的主體的名稱。該值可以是整個主體名稱的子字符串。

/nph

如果支持,為可執行文件取消頁面的哈希。默認值由 SIGNTOOL_PAGE_HASHES 環境變量和 wintrust.dll 版本決定。

/p Password(密碼)

指定打開 PFX 文件時使用的密碼。(使用 /f 選項指定 PFX 文件。)

/ph

如果支持,則生成執行文件的頁面哈希。

/r 根主題名稱

指定簽名證書必須鏈接到的根證書的主體名稱。該值可以是根證書的整個主題名稱的子字符串。

/s StoreName

指定要在搜索證書時打開的存儲區。如果未指定該選項,則打開 My 存儲。

/sha1 Hash(哈希)

指定簽名證書的 SHA1 哈希

/sm

指定使用一個計算機存儲區,而不是使用用戶存儲區。

/t URL

指定時間戳服務器的 URL。如果該選項(或 /tr)不存在,將不會對簽名文件執行時間戳操作。如果時間戳操作失敗,將生成一個警告。此選項不能與 /tr 選項一起使用。

/td alg

/tr 選項一起使用,以請求 RFC 3161 時間戳服務器使用的摘要算法。

/tr URL

指定 RFC 3161 時間戳服務器的 URL。如果該選項(或 /t)不存在,將不會對簽名文件執行時間戳操作。如果時間戳操作失敗,將生成一個警告。此選項不能與 /t 選項一起使用。

/u Usage(用法)

指定簽名證書中必須存在的增強型密鑰用法 (EKU)。可以通過 OID 或字符串指定該用法的值。默認用法為“代碼簽名”(1.3.6.1.5.5.7.3.3)

/uw

指定“Windows 系統組件驗證”(1.3.6.1.4.1.311.10.3.6)的使用情況。

 

4.         時間戳命令選項(TimeStamp)

/t URL

指定時間戳服務器的 URL。要執行時間戳操作的文件必須在以前已經進行了簽名。需要 /t /tr 選項。

/td alg

請求 RFC 3161 時間戳服務器使用的摘要算法。/td /tr 選項一起使用。

/tr URL

指定 RFC 3161 時間戳服務器的 URL。要執行時間戳操作的文件必須在以前已經進行了簽名。需要 /tr /t 選項。

 

5.         驗證命令選項(Verify)

/a

指定可以使用所有方法來驗證文件。首先,搜索目錄數據庫以確定是否在目錄中對文件進行了簽名。如果未在任何目錄中對文件進行簽名,簽名工具將嘗試驗證文件的嵌入簽名。驗證可以或不能在目錄中進行簽名的文件時,建議使用該選項。這些文件的示例包括 Windows 文件或驅動程序。

/ad

使用默認的目錄數據庫查找目錄。

/as

使用系統組件(驅動程序)目錄數據庫查找目錄。

/agCatDBGUID

在目錄數據庫中通過 CatDBGUID 標識查找目錄。

/cCatFile

通過名稱指定目錄文件。

/d

說明簽名工具應打印描述和描述的 URL

/kp

指定應使用內核模式驅動程序簽名策略進行驗證。

/oVersion(版本)

通過操作系統版本驗證文件。版本具有如下格式:PlatformID:VerMajor.VerMinor.BuildNumber

/pa

說明應使用默認認證碼驗證策略。如果未指定 /pa 選項,“簽名工具”將使用Windows 驅動程序驗證策略”。此選項不能與 catdb 選項一起使用。

/pgPolicyGUID

通過 GUID 指定驗證策略。PolicyGUID 對應於驗證策略的 ActionID。此選項不能與 catdb 選項一起使用。

/ph

說明簽名工具應打印並驗證頁數哈希值。

/rRootSubjectName

指定簽名證書必須鏈接到的根證書的主體名稱。該值可以是根證書的整個主題名稱的子字符串。

/tw

如果簽名沒有時間戳,則指定應該生成的一個警告。

 

6.         返回值

當其終止時,簽名工具返回以下的退出代碼之一。

         0                執行成功。

1                執行失敗。

2                執行伴隨着警告完成。

 

相關鏈接:

             (2)強名稱程序集與數字證書

             數字簽名|數字證書

參考資料:

             (MSDN)SignTool.exe(簽名工具)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM