如何在Windows中存储RSA密钥对?

瓦西姆·塔布拉兹(Wasim Thabraze)

我正在尝试使用Openssl-RSA编写一个简单的Encryption-Decryption程序。加密数据后,将生成密钥对。如果要解密数据,则需要加密时生成的确切密钥对。

因此,我在哪里以及如何存储此密钥对,以便在可能的情况下可以解密加密的内容?

我正在使用公共密钥进行加密,并使用私钥进行解密。

莫西·卡兹(Moshe Katz)

从技术上讲,您可以将密钥对存储在任意位置,尽管有一些通用的方法可以完成。

如果数据特别敏感并且不需要定期/恒定地使用,则存储私钥的最安全方法是将其存储在闪存驱动器上或打印在保险箱或银行金库中的纸上。(请注意,您可以将公共密钥存储在所需的任何位置-毕竟,这是一条“公共”信息。

如果您需要易于访问的数据,由于每次都需要麻烦地将脱机私钥存储在保险箱或保管库中,通常是不现实的。通常用于密钥存储的常见位置是.ssh在主目录中命名的文件夹(这是Linux上的OpenSSL中的默认设置,并且也经常在其他系统上使用。)通常的做法是将密钥存储为两个文件,并用以下方式描述它们的名称:purpose_type私钥和purpose_type.pub公钥。例如,如果您使用OpenSSL命令行来创建和RSA密钥识别是,它会默认在文件存储id_rsaid_rsa.pub.ssh目录中。就您而言,您可以将密钥文件命名为mydatastorage_rsamydatastorage_rsa.pub

重要提示:如果以这种方式存储私钥,则强​​烈建议您使用密码来保护它。这样可以防止任何能够访问您文件的人使用您的私钥。最初创建密钥对时,可能会提示您提供密钥密码。如果不是,则可以使用OpenSSL命令行工具将密码短语添加到私钥中。

如果您将要进行大量敏感的加密工作,则可以购买一个硬件密钥库,称为“硬件安全模块”,缩写为“ HSM”,该密钥库用于安全存储私钥。除非您实际在安全/加密行业中工作,否则这几乎肯定是太过分了。还有其他硬件解决方案,包括“智能卡”和“ USB加密令牌”,它们比完整的HSM便宜,但仍然需要对硬件的一些投资,而这些投资可能比您需要的更多。


尽管建议使用密码保护私钥,但是如果需要在服务(例如Web服务器)中进行解密,则可能会遇到问题。在这种情况下,您有三个选择:

  1. 每次服务器应用程序启动时提供密码。
  2. 在配置文件中提供密码。(仅某些服务器支持)
  3. 删除密码(或首先不要设置密码)。

虽然第一个是最安全的,但是只有每次手动启动该服务时,才可以使用它。如果需要执行其他两个选项之一,请确保正确保护配置文件(选项2)或私钥(选项3),以防止对其进行访问。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Azure Vault中存储RSA密钥

来自分类Dev

如何在安全(C ++)中存储加密密钥?

来自分类Dev

如何在Android Studio中创建密钥存储文件?

来自分类Dev

如何在mongodb / mongoose中存储密钥代码?

来自分类Dev

如何在AWS KMS中存储自定义密钥

来自分类Dev

如何在JSONStore中存储加密密钥/密码

来自分类Dev

如何在Android Keystore中存储对称密钥

来自分类Dev

如何在 React 中存储生成的 api 密钥?

来自分类Dev

如何在函数中包含存储服务帐户密钥

来自分类Dev

如何在 MySQL 中存储基于时间的 OTP 密钥

来自分类Dev

如何在Java密钥库中存储Bouncy Castle PGP密钥?

来自分类Dev

如何在Java PKCS12密钥库中存储对称密钥

来自分类Dev

在.NET核心用户机密(JSON)中存储多行RSA密钥

来自分类Dev

如何在带有rsa密钥的ssh隧道中获取bash提示?

来自分类Dev

如何在pgp文件中以字节数组的形式获取私用RSA密钥(private)?

来自分类Dev

如何在 Python 的加密模块中访问私有 RSA 密钥的组件?

来自分类Dev

使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

来自分类Dev

使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

来自分类Dev

如何以OpenSSH的新密钥格式存储RSA-4096 SSH密钥

来自分类Dev

如何在Mac OS X Yosemite上导入RSA密钥?

来自分类Dev

如何在Java中使用带密码的RSA密钥

来自分类Dev

如何在Codeigniter RSA库中生成签名和密钥

来自分类Dev

如何在Java中使用带密码的RSA密钥

来自分类Dev

如何在Mac OS X Yosemite上导入RSA密钥?

来自分类Dev

如何在卡外转移RSA公[/私人]密钥?

来自分类Dev

如何在Flutter中以STRING格式获取RSA_encrypt密钥对生成算法中的publicKey

来自分类Dev

如何在iOS / Objective-C中存储身份验证密钥?

来自分类Dev

我应该如何在webapp2会话中存储实体密钥?

来自分类Dev

如何在Java源代码中存储秘密密钥,但不可读

Related 相关文章

  1. 1

    如何在Azure Vault中存储RSA密钥

  2. 2

    如何在安全(C ++)中存储加密密钥?

  3. 3

    如何在Android Studio中创建密钥存储文件?

  4. 4

    如何在mongodb / mongoose中存储密钥代码?

  5. 5

    如何在AWS KMS中存储自定义密钥

  6. 6

    如何在JSONStore中存储加密密钥/密码

  7. 7

    如何在Android Keystore中存储对称密钥

  8. 8

    如何在 React 中存储生成的 api 密钥?

  9. 9

    如何在函数中包含存储服务帐户密钥

  10. 10

    如何在 MySQL 中存储基于时间的 OTP 密钥

  11. 11

    如何在Java密钥库中存储Bouncy Castle PGP密钥?

  12. 12

    如何在Java PKCS12密钥库中存储对称密钥

  13. 13

    在.NET核心用户机密(JSON)中存储多行RSA密钥

  14. 14

    如何在带有rsa密钥的ssh隧道中获取bash提示?

  15. 15

    如何在pgp文件中以字节数组的形式获取私用RSA密钥(private)?

  16. 16

    如何在 Python 的加密模块中访问私有 RSA 密钥的组件?

  17. 17

    使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

  18. 18

    使用Windows密钥存储区中存储的密钥作为OpenSSL中的预共享密钥

  19. 19

    如何以OpenSSH的新密钥格式存储RSA-4096 SSH密钥

  20. 20

    如何在Mac OS X Yosemite上导入RSA密钥?

  21. 21

    如何在Java中使用带密码的RSA密钥

  22. 22

    如何在Codeigniter RSA库中生成签名和密钥

  23. 23

    如何在Java中使用带密码的RSA密钥

  24. 24

    如何在Mac OS X Yosemite上导入RSA密钥?

  25. 25

    如何在卡外转移RSA公[/私人]密钥?

  26. 26

    如何在Flutter中以STRING格式获取RSA_encrypt密钥对生成算法中的publicKey

  27. 27

    如何在iOS / Objective-C中存储身份验证密钥?

  28. 28

    我应该如何在webapp2会话中存储实体密钥?

  29. 29

    如何在Java源代码中存储秘密密钥,但不可读

热门标签

归档