簡體   English   中英

您如何部署自己的 Authenticode 時間戳服務?

[英]How do you deploy your own Authenticode Timestamping Service?

我想用我自己的 Authenticode 時間戳服務為我的 DLL 文件加上時間戳。 這可能嗎? 我怎么能做到這一點?

您需要編寫一個自定義的 HTTP 時間戳服務器。 它應該遵循RFC 3161時間戳協議 (TSP) 規則。

當您使用 Windows SDK 中的Signtool.exe等工具為 DLL 簽名以獲取驗證碼時,您可以指定時間戳服務器的 url(使用 /t 開關。另見 /tr 和 /td)。 然后,您將指向您的服務器。

有關相關問題,請參閱此處的 SO: 可信時間戳 - 了解格式 (rfc3161)

還有: Authenticode 的替代時間戳服務

您可以開發自己的時間戳服務。 您可以編寫 TSP (RFC 3161) 服務器,但 Authenticode 不使用 RFC 3161,而是使用MSDN 文章中所述的 PKCS#7/PKCS#9 格式(您也可以實現)。 我們的SecureBlackbox組件包括支持兩種格式的時間戳服務器組件。 更新:最近對 Authenticode 的更新使用標准 RFC 3161 時間戳。

但問題是獲取您將用於簽署時間戳的證書。 該證書必須由其中一個 CA 頒發,據我所知,對於運行時間戳服務器的管理和基礎設施方面存在嚴格的要求。 特別是你需要有一個安全的時間戳硬件。 我沒有深入研究這個問題,但是這些方面比編寫一段代碼要復雜得多。

盡管如此,如果您運行自己的 PKI 基礎設施(擁有自己的可信根證書和 CA 證書),那么擁有可信時間戳證書的問題就會自動解決——您可以生成自己的證書。

您可以使用 SignServer 設置自己的時間戳機構 (TSA),支持 Authenticode 時間戳(和/或 RFC#3161)。

有關下載和安裝說明,請參閱https://www.signserver.org 總之,重要的步驟是:

  1. 確保您具備以下先決條件:

    • 爪哇
    • 一個應用服務器(即 WildFly)
    • 用於部署的 Apache Ant
  2. https://signserver.orghttps://sourceforge.net/projects/signserver/files/signserver/4.0/下載 4.0 版本。

  3. 配置應用服務器

    • 對於 HTTPS(可選)
    • 使網絡服務工作
    • 使用最新的安全修復程序打補丁
  4. 配置 SignServer 部署

    • 在 conf/signserver_deploy.properties 中設置 database.name=nodb 和 database.nodb.location=/an/empty/folder/as/db
  5. 部署 SignServer

    • 出口APPSRV_HOME=/opt/wildfly-9/
    • bin/ant 部署
    • 啟動應用服務器 /opt/wildfly-9/bin/standalone.sh
  6. 檢查服務器是否啟動

    • bin/signserver getstatus 簡介
  7. 設置加密令牌

    • bin/signserver setproperties doc/sample-configs/keystore-crypto-configuration.properties
    • bin/signserver 重新加載 1
    • bin/signserver getstatus 簡介
  8. 設置示例時間戳簽名者

    • bin/signserver setproperties doc/sample-configs/qs_timestamp_configuration.properties
    • bin/signserver 重新加載 2
    • bin/signserver getstatus 簡介
  9. 測試時間戳簽名者

假設您想要使用它進行測試,如果您樂於使用帶有 /tr 開關的 signtool.exe,您就不必查看 RFC,因為 openssl 已經為您實現了足夠的功能。 只需用您喜歡的語言編寫一個 HTTP POST 處理程序,將發布的數據逐字傳遞到“openssl ts -reply”中,然后發回 openssl TS 響應數據。 這足以欺騙“signtool.exe verify /pa”,即使它沒有嚴格遵循 RFC。

編輯:似乎開源 Java Signserver 項目為您提供了一個處理 MSauthenticode (/t) 和 rfc3161 (/tr) 時間戳的服務器。 Signserver 的配置對我來說涉及太多的依賴項,所以我改用了 MSAuthenticode 時間戳的單元測試,將一個小型 HTTP 服務器固定到測試用例上,並且幾乎沒有工作 - 我的 Java 技能充其量是平庸的 - 有一個正在運行的驗證碼時間戳服務器用於開發,並已驗證由此創建的時間戳不受此問題的影響 我不能發布源代碼,但是按照這個提示應該可以讓你很快地工作。

https://PKIaaS.io提供符合 RFC 3161 和 Microsoft Authenticode 的時間戳服務器。 在站點上創建證書頒發機構后,它將在“CA 服務 URL”列表中顯示時間戳 URL,時間戳請求可以發送到該 URL 以進行簽名。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM