我想将一台RSA 1024私有 - 公共交换密钥对从Machine-1导出到Machine-2。我在XP中使用cryptoAPI。
在Machine-1中,我生成了密钥对。我包装了一个实际加密一些真实数据的会话密钥。密钥容器名称为“PAIR1”。
在Machine-2中,我想用私钥(我在Machine-1中生成)解开会话密钥。为此,我想将密钥对从Machine-1导出到Machine-2。
我知道导出持久密钥的安全漏洞。
我尝试了什么?
我将密钥对从Machine_1导出为PKCS#12 -pfx文件。当我将它导入Machine-2时,密钥容器名称已从“PAIR1”更改为空。我的应用程序需要相同的容器名称才能在交换密钥对中选择正确的私钥。是否可以更改密钥容器名称?
这会有效吗?
用Machine-2的公钥包裹交换密钥对并将其导入Machine-2。在这种情况下,请注意,密钥容器名称将保持不变或将更改?我觉得这可能是正确的方法。
编辑: 我问这个查询的原因是因为我用一个交换密钥对(公钥)包装了一个会话密钥,并将包装好的密钥和加密数据放在服务器的介质中。 这种媒体将绕过不同的客户端,并将返回到服务器。此时,我将用解包的会话密钥解密我的数据。这种解包需要交换私钥。 我这样做是为了演示目的,我不能指望我们的营销人员进行密钥交换等。我们希望向客户展示安全方面,并减少与营销人员建立事物的麻烦。
最后,我导出了密钥对并导入了我想要的密码对,尽管Ramsus方法是正确的方法。
答案 0 :(得分:1)
正确方法是在机器2上生成密钥对,仅导出公钥,将其传输到machine-1并使用它来包装会话密钥。
您是如何导出和导入PKCS#12文件的? Windows通常会将密钥容器名称作为专有扩展名添加到PKCS#12文件中,因此它应该与密钥对的其余部分一起传输。