首先,我很抱歉,因为我对证书和密码学知之甚少。我被抛到一个项目中,在那里我需要创建一个CSR,但是有一个HSM设备,创建和存储私钥。
我的意图是使用Windows并将(CSP)更改为使用HSM供应商。
这是我目前所知道的,并且仍然在PKI领域中教育我自己。如果有人可以分享一些C#代码或如何更改CSP的想法,我将不胜感激。
谢谢
发布于 2022-10-08 16:11:02
您可以使用像"Pkcs11Interop“这样的开源项目在C#中使用HSM (基于PKCS#11接口)来使用C#代码创建企业社会责任,这个项目可以帮助您。
发布于 2022-10-10 20:56:56
如另一个答案所述,您可以使用pkcs11interop。
如果您被锁定使用CSP,HSM提供程序将有一个CSP/CNG提供程序,将windows密码子系统连接到HSM前端。每个HSM供应商将有他们自己的供应商,具体到他们自己的设备。这样做,你使用的前端将使用相同的技术--你不需要改变你正在做的事情,只需要你如何配置它。
一旦安装了提供者(通常由HSM供应商Windows安装媒体完成,无需手动操作),HSM就可以使用了。
当您创建您的.inf文件时,文件中将有两个或三个额外的条目告诉密码子系统密钥在哪里或应该在哪里创建--通过告诉它要使用哪个提供程序、密钥的名称等等。密钥可以已经存在,也可以由您正在使用的工具创建。
您可以使用.inf来定位密钥,然后certreq将生成一个.csr,其中包含有关密钥及其维护位置的信息。
你已经签了.csr。您可能需要使用证书进行-repairstore,以便提供必要的索引或将签名证书映射到HSM中的基础私钥。
一旦它们被链接,Windows可能希望您在需要使用密钥时使用该证书,因为该证书被Windows用来索引私钥所在的位置。我在这里这样说是因为很多人都假设私钥在证书中,因为当他们想用密钥签名时,他们会使用证书。他们没有意识到证书是指向键的指针,而不是键的持有者。
无论如何:您的HSM供应商将有描述安装CNG供应商的过程和技术的文档。一旦完成,您只需以相同的方式使用这些工具,但需要添加足够的信息来路由到正确的密钥提供程序。通常,供应商有与此相关的其他文档,但事实是,一旦供应商到位并开始工作.在那个时候,大多数情况下都是Windows。
https://stackoverflow.com/questions/73899418
复制相似问题