首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >存储密钥存储通道

存储密钥存储通道
EN

Security用户
提问于 2017-01-25 17:50:47
回答 2查看 1K关注 0票数 3

我正在构建一个应用程序,它使用密钥存储作为一种安全存储RSA密钥和证书的方法。

显然,我需要一个密码来取回我的私钥。

储存这个密码的正确方法是什么?我知道,例如,把它埋在代码中不是个好主意。

我可以找到有用的东西,直到我知道,如果我需要学校。

谢谢

EN

回答 2

Security用户

回答已采纳

发布于 2017-01-25 18:59:35

因此,有几种方法可以回答这个问题,但最终它将取决于您的需求和您可以使用的内容。

  • 最简单的解决方案是永远不要存储密码,并在需要时手动输入(在服务开始时)。这看起来很麻烦,但是如果服务是稳定的,您就不太可能经常进入它。
  • 如果您有一个物理设备,或者您有能力具有主机亲和力(将您的虚拟机始终保持在同一台物理机器上)。您可能会利用嵌入在设备中的可信平台模块。在TPM中存储对称密钥是可能的(这里有一个很好的故障:https://security.stackexchange.com/a/51341/2678) --对活动的攻击者来说,它并不比磁盘上的密码更安全,但是如果它被窃取/破坏,则它是单独存储的--它需要的不仅仅是一个简单的磁盘副本。
  • 更好的选择是,您实际上可以将RSA密钥存储在TPM本身中,TPM可以处理密钥操作,而不是直接将它们保存在密钥存储库中。如果您使用的守护进程能够支持PKCS11,这是最好的支持方式。(参见Virtual:https://frankmorgner.github.io/vsmartcard/virtualsmartcard/README.html)也是Java:https://docs.oracle.com/javase/8/docs/technotes/guides/security/p11guide.html

这些绝对不是你能做到的唯一方法,但它应该给你一些想法。

票数 1
EN

Security用户

发布于 2017-01-25 20:14:16

一些共同的选择:

  1. 在你的记忆里。优点:密码不存在可读的副本。缺点:
    • 如果你忘了,再见加密内容。
    • 你必须记住的事实限制了密码的复杂程度。

  2. 密码管理器里。优点:你不需要记住它,它可以是一个强随机密码。缺点:密码管理器本身需要一个密码。优点:你只需要记住密码管理器的一个密码。
  3. 存放在保险箱或银行保管箱里的一张纸。缺点:密码有一个明文的物理副本,如果有人得到它,他们可以解密密钥和证书。优点:如果你忘记密码,你可以检索它;如果你被公共汽车撞到,其他授权方也可以检索它(例如,你的家人)。
票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/149418

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档