簡體   English   中英

配置NSS Signtool以與Thales HSM一起使用?

[英]Configure NSS Signtool to work with a Thales HSM?

我有個問題。 我的組織需要對XPI文件類型執行代碼簽名。 證書及其私鑰必須由硬件安全模塊保護。 這是出於安全原因。

Mozilla提供的現有NSS Signtool尚無法找到一種獲取該工具的方法,無法識別Java密鑰庫,Windows中的CSP或Mac中的鑰匙串。 研究的所有解決方案都要求將密鑰復制到NSS Signtool默認配置為使用的軟件數據庫中。

我需要簽署XPI文件類型,而我試圖找到一種適用於Java,Windows CSP或Mac鑰匙串的解決方案的原因是,我現有的Thales HSM技術具有這3個選項作為與模塊進行通信的接口。

我看到有一個名為XPISigner的基於Java的文件,但不再支持該解決方案,並且我們發現的唯一版本僅與Luna HSM兼容,而該方式與當前的Java版本不兼容。

是否有人設法獲得受HSM保護的密鑰才能與NSS Signtool一起使用? 還是有任何機制將NSS Signtool與Java密鑰庫集成? (使用java選項的想法是我可以然后操縱所述解決方案以與我的HSM一起使用)

謝謝!

我能夠使用從nss-3.13.6生成的nsscapi.dll拼湊出一個解決方案。 然后,我將其他庫依賴項復制到了nss-3.20構建中,以用於整個應用程序。

用於簽名代碼的nsscapi.dll是用於NSS的基本PKCS11至Capi模塊接口。 它顯然存在內存泄漏問題,但是由於我使用NSS的范圍是偶爾僅對XPI文件進行簽名,因此我可以偶爾重新啟動該模塊。

該解決方案涉及:使用mozilla-build構建的nss-3.20,以及此軟件包“ nss”子文件夾中的“ make nss_build_all”。

Visual Studio C ++可再發行的2015 x86版本(32位為64位不適用於該項目)。

Thales CAPI與Windows的接口(是的,它們具有直接的PKCS11模塊,但是對於我的自定義環境,只有CAPI和Java密鑰庫是可選項,因此我沒有使用Thales PKCS11模塊)

修改了PATH環境變量,使其指向NSS構建中的bin和lib文件夾。

使用“ modutil”將位於nss-3.20 \\ dist \\ WIN95xxx \\ lib \\文件夾中的nsscapi.dll加載到NSS構建中:

modutil -dbdir "c:\apps\certs" -add "capi" -libfile "C:\Apps\nss-3.20\dist\WIN954.0_DBG.OBJ\lib\nsscapi.dll" -mechanisms RSA:DSA:RC2:RANDOM

我已經將Thales配置為向CAPI填充代碼簽名證書,因此我已經在CAPI中擁有代碼簽名證書。

我必須使用mmc.exe中的“證書”管理單元來查看當前用戶的“個人”證書存儲。 然后將我要使用的代碼簽名證書的“友好”名稱修改為“ test”之類有意義的名稱。 這樣,NSSCAPI模塊可以在具有可見性的列表中唯一地標識該證書。

在更改我的測試代碼簽名證書之一上的友好名稱的步驟之后,我使用NSS signtool顯示可用證書的列表:

signtool -d "c:\apps\certs" -L

我將“ test.xpi”文件解壓縮到“ c:\\ apps \\ certs”的“ test”子文件夾中,該子文件夾是我剛剛創建的子文件夾名稱,您可以使用所需的內容。

我的清單包含一個條目:

  • Microsoft證書存儲:測試

*表示它是可用於NSS中的代碼簽名的有效證書

然后,我使用signtool對測試XPI文件中的代碼進行簽名:

signtool -d "C:\Users\mlawson\AppData\Roaming\Mozilla\Firefox\Profiles\4jnnnb1y.default" -k "Microsoft Certificate Store":"test" test/

有了成功!

如果此答案的格式已關閉,我謹向您致歉。 這是我第一次發帖至堆棧溢出,並回答一條發帖(即使這是我自己的)。 我掩飾了這篇文章中的一些高級步驟,以使其簡短,因為Mozilla網站上已經記錄了一些較大的“操作方法”,例如構建NSS。 泰雷茲(Thales)記錄了與泰雷茲(Thales)相關的配置,與解釋泰米爾(Cale)CAPI接口的用例是自定義和專有的配置無關。 但是使用nsscapi.dll和此解決方案的總體概念確實適用於與MSCAPI相關的任何事物,並且能夠與NSS一起使用是很方便的。 nsscapi.dll也可以作為模塊加載到firefox“安全設備”中,以便firefox也可以使用CAPI,盡管我不知道到底有多好...

暫無
暫無

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

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