【问题标题】:Importing a private-public exchange key pair导入公私交换密钥对
【发布时间】:2010-12-20 09:50:55
【问题描述】:

我想将 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 方法是正确的做法。

【问题讨论】:

    标签: encryption cryptography public-key-encryption cryptoapi


    【解决方案1】:

    执行此操作的正确方法是在机器 2 上生成密钥对,仅导出公钥,将其传输到机器 1 并使用它来包装会话密钥。

    您是如何导出和导入 PKCS#12 文件的? Windows 通常会将密钥容器名称作为专有扩展名添加到 PKCS#12 文件中,因此它应该与密钥对的其余部分一起传输。

    【讨论】:

    • 只将私钥保存在一台机器上。如果要导出私钥,请使用对称加密
    • @Ramsus - 我使用 KeyPal 实用程序将现有的交换密钥对导出到 PKCS#12 文件。但是当我重新导入 pfx 文件时,密钥容器名称已经消失。密钥对值保持不变。这就是我询问如何更改容器名称的原因? @Patrick - 我这样做是为了展示这种肮脏方式的功能和架构。
    猜你喜欢
    • 2013-08-06
    • 2012-06-13
    • 2011-01-29
    • 1970-01-01
    • 2019-06-24
    • 2022-01-15
    • 1970-01-01
    • 2013-07-15
    • 2018-07-19
    相关资源
    最近更新 更多