繁体   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