Microsoft Authenticode - 雙代碼簽名SHA1和SHA256 算法的說明

General Information ID:    INFO2274    Updated:    02/09/2017

Description

本文提供關於如何使用單個Microsoft Authenticode證書對​微軟的Windows軟件​兩個簽名算法(SHA1和SHA256)的說明, 這在你需要對軟件做不同算法簽名的情況下非常​有效的
例如,假設你想在Windows 7和Windows8運行你​軟件,Windows 8支持SHA256算法創建的簽名,Windows 7支持SHA256算法的簽名,但需要微軟更新(請參閱Microsoft安全公告2949927)

在這種情況下,您可以使用SHA1和SHA2的​證書將您的軟件使用SHA1算法簽名再追加SHA256簽名算法

簽名工具和系統需求

操作系統:

  • Windows 8.1, Windows 8

簽名工具:​
下載並安裝以下​工具​

所需證書:

  • SHA1證書

SHA2證書

注意:您需要同時擁有SHA1和SHA2的證書來進行雙重簽名。用SHA1證書來進行SHA1算法簽名,SHA2證書進行SHA2算法簽名。您無法使用一張證書來同時簽署SHA1和SHA2算法。如果您只有一張SHA1或者SHA2證書,請按照以下鏈接來申請額外的證書。

申請額外算法證書
 

簽名說明​:

 

此範例使用數個 SignTool 支援的參數:

 

注意SHA1時間戳網址是http://timestamp.verisign.com/scripts/timstamp.dll

          SHA-1 RFC 3161 時間戳網址是 http://sha1timestamp.ws.symantec.com/sha1/timestamp

          SHA256 RFC 3161 時間戳網址是http://sha256timestamp.ws.symantec.com/sha256/

 

第1步:使用SHA1證書進行SHA1算法簽名​​

 

下面的語法使用存儲在您的個人證書存儲區的證書文件簽署

包括時間戳:

 

 

 

 

signtool.exe sign /a /s MY /n "證書的公司名稱​" /fd sha1 /t http://timestamp.verisign.com/scripts/timstamp.dll /v "<需要簽名的文件名>"

 

 

 

第2步:使用SHA2證書追加SHA2算法簽名

 

一旦應用程序文件在步驟1中做了SHA1簽署,按照下面的步驟在相同的應用程序文件
來追加第二個SHA256算法簽名。

下面的語法使用存儲在您的個人證書存儲區的證書文件簽署

包括時間戳:

 

 

 

signtool.exe sign /a /s MY /n "證書的公司名稱" /as /fd sha256 /tr http://sha256timestamp.ws.symantec.com/sha256/  /v "<需要簽名的文件名>"


注意:如果你是使用存儲在密碼保護.PFX文件的證書文件來簽名,只需使用參數 “/f PFX證書文件名.pfx/ p PFX密碼” 來取代參數 "/a /s MY /n "證書的公司名稱"

 

第3步:驗證簽名

 

在您的Windows電腦​瀏覽已簽名的應用程序文件

 



如果簽名的過程是成功的,您應該看到在這個標籤中所列的SHA1和SHA256簽名算法。

有關更多信息,請參閱以下微軟知識庫中的文章:​
https://msdn.microsoft.com/en-us/library/windows/hardware/hh967734%28v=vs.85%29.aspx
 

 

  • Sign:設定工具簽署名為 CatFileName.cat 的目錄檔
  • /a: 自動選擇最佳的簽名證書。登錄工具會找到所有滿足規定條件,並選擇一個有效時間最長的有效證書。如果這個選項不存在,登錄工具期望發現只有一個有效的簽名證書。
  • /v:指定 verbose 選項,用於成功執行或警告訊息
  • /s:指定名為 SPCCertificateStore 的憑證存放區(如果憑證匯入「個人存放區」中,則 SPCCertificateStore 為 My
  • /n:是指憑證中出現在「ISSUED TO」欄位的公司名稱。
  • /t:指定數位簽章將加上 URL 所指的時間戳記授權單位 (TSA) 發行的時間戳記
  • /f: 指定一個文件中的簽名證書。僅支持個人信息交換(PFX)文件格式。​
  • /p: 如果該文件是受密碼保護的PFX格式,使用/ p選項來指定密碼。​
  • /as: 追加此簽名。如果目前沒有主簽名,這一簽名會成為主簽名​
  • /fd: 指定文件摘要算法用於創建文件簽名。默認值為SHA1​
  • /tr: 指定RFC3161時間戳服務器的URL。如果該選項(或/t)不存在,則簽名的文件不會被時間標記。如果時間戳失敗會生成一條警告。此選項不能與/t 選項並用。​
  1. 右擊簽名的應用程序文件
  2. 點擊屬性(Properties)
  3. 單擊數字簽名(Digital Signatures)標籤

Contact Support

Find Answers

Languages