Cryptography 以编程方式将HSM客户端生成的密钥与RFS服务器同步

Cryptography 以编程方式将HSM客户端生成的密钥与RFS服务器同步,cryptography,pkcs#11,hsm,pkcs11interop,Cryptography,Pkcs#11,Hsm,Pkcs11interop,我正在使用PKCS11Interop在HSM中执行密钥管理操作。我使用的HSM是网络HSM,泰雷兹N-Shield。以下是我的设置的详细信息: 1-HSM 1-RFS服务器 3-客户 我的软件应用程序是分布式的,托管在3个客户端上。密钥将在其中一个客户端中生成,并可由其他客户端中的应用程序组件使用 但是,我注意到,除非两个客户机都执行rfs同步,否则在一台客户机上生成的密钥无法被其他客户机访问 问题:是否有一种方法可以使用某些PKCS11Interop API将客户机密钥与RFS同步?如果没有,

我正在使用PKCS11Interop在HSM中执行密钥管理操作。我使用的HSM是网络HSM,泰雷兹N-Shield。以下是我的设置的详细信息:

1-HSM

1-RFS服务器

3-客户

我的软件应用程序是分布式的,托管在3个客户端上。密钥将在其中一个客户端中生成,并可由其他客户端中的应用程序组件使用

但是,我注意到,除非两个客户机都执行rfs同步,否则在一台客户机上生成的密钥无法被其他客户机访问

问题:是否有一种方法可以使用某些PKCS11Interop API将客户机密钥与RFS同步?如果没有,那么我可以用什么方式在RFS和客户机之间同步密钥


我知道exe可以用C代码执行,但看起来不像是干净的程序

您试图做的不是PKCS#11标准的一部分。因此,我怀疑PKCS11Interop能否实现这一点(通过查看其文档)

当您使用PKCS#11(PKCS11Interop)在令牌(泰雷兹n-Shield)上生成对象时,安装在客户端上的泰雷兹安全管理器实际上正在HSM上生成。如果我没记错的话,泰雷兹将这些对象存储在客户机上,作为由security manager的主密钥加密的平面文件。因此,从技术上讲,它不会存储在HSM上。这就是您必须与RFS进行同步,然后更新其他客户端以查看新密钥/对象的原因


您必须与泰雷兹公司的人员核实,看看他们是否能够提供一种自动化的方法。或者您必须实现自己的同步机制。由于rfs sync是泰雷兹提供的命令行工具,因此您需要查看是否可以通过C#执行命令。或者询问他们是否有为您提供此功能的C#库。

谢谢,我理解并看到了您所说的内容。我相信很多其他人也会面临这个问题。我只是想找出在这种情况下遵循的标准做法。@Aashish因为这是针对泰利斯HSMs的,所以您没有可以遵循的标准做法。我曾在同一时间与各种HSM合作,只是泰利斯HSM有所不同。因此,我必须跳转(我通过java编程执行rfs命令),使泰利斯HSM像其他HSM一样工作,以便我编写的PKCS11框架适用于所有类型的HSM。