我正在使用PKCS11Interop在HSM中执行密钥管理操作。我使用的HSM是网络HSM,Thales N-Shield。以下是我的设置的详细信息:
1- HSM
1- RFS服务器
3-客户端
我的软件应用程序是分布式的,并托管在这3个客户端上。密钥将在其中一个客户端中生成,并可由存在于其他客户端中的应用程序组件使用。
但是,我注意到在一个客户端机器上生成的密钥对于其他客户端机器是不可访问的,除非两个客户端都执行rfs-sync。
问:有没有一种方法可以使用一些PKCS11Interop应用程序接口将客户端密钥与RFS同步?如果为No,则以何种方式在RFS和客户端计算机之间同步密钥。
我知道可以使用C#代码执行可执行文件,但看起来不像是一个干净程序。
发布于 2017-08-02 04:13:49
您要做的不是PKCS#11标准的一部分。因此,我怀疑PKCS11Interop能否做到这一点(通过查看它的文档here)。
当您使用PKCS#11 (PKCS11Interop)在令牌(Thales n-Shield)上生成对象时,安装在客户端上的Thale的安全管理器实际上是在HSM上生成对象。如果我没记错的话,Thales将这些对象作为平面文件存储在客户机上,该文件由安全管理器的主密钥加密。因此,从技术上讲,它不会存储在HSM上。这就是为什么您必须与RFS同步,然后更新其他客户端以查看新的键/对象的原因。
您必须与Thales人员核实,看看他们是否可以提供一种自动化的方法。或者你必须实现你自己的同步机制。由于rfs-sync是泰利斯提供的命令行工具,您将查看是否可以通过C#执行这些命令。或者检查他们是否有C#库可以为您完成这项工作。
https://stackoverflow.com/questions/45433869
复制相似问题