我即将实施自己的认证机构(CA),仅供内部使用。
现在有一个问题,那就是 CA 私钥永远不应该被利用。所以现在私钥是加密的。
还可以做些什么来增强私钥的安全性?
答案1
我曾在一家公司工作,该公司的 CA 密钥的安全性对于业务的持续成功至关重要。为此,密钥使用自定义协议进行加密,该协议要求至少有 2 个人在场,并将物理令牌插入终端进行解密(至少有 5 个这样的令牌,任何 2 个组合都可以)。终端与带有 CA 密钥的实际机器在物理上是分开的。解密它的用户的界面是 VT220 终端,允许他们输入解密令牌,然后选择他们想要用密钥“签名”的内容(永远不会让他们访问解密的密钥)。这个系统意味着至少有 4 个人必须合作才能破解密钥,两个令牌持有者、有权访问数据中心的人和另一个在服务器上拥有根访问权限的人(因为解密的密钥从未存储在服务器上,只存储在内存中,所以你不能直接窃取盒子,并且拥有此特定服务器根权限的人不允许访问 DC)。
如果您对此类设置的更多细节感兴趣,Bruce Schneier 有一个很棒的网站,涵盖了计算机安全设计和实施:
他还出版了一本非常好的书《应用密码学》,我发现这本书帮助我理解了这类系统的基本原理以及如何构建更安全的基础设施(不戴口袋保护器的人也可以读懂):
答案2
一个很大的好处是将 CA 私钥保存在一台专用计算机上,完全与网络隔离。然后您可以在这台机器上签署新证书,并可能生成新证书,然后使用物理介质将新证书从 CA 机器上传输出去。
当然,这样的设置还需要考虑机器的物理可用性以及允许的媒体的限制。经常使用的 USB 记忆棒可能不是最好的选择……
(顺便说一下,这是安全性和便利性之间权衡的一个非常明显的例子。)
答案3
我赞同另外两个答案,并发表了评论,因为我认为它们都很棒。 如果如果你决定同时选择两者,那可能比较合适,我强烈建议在最初生成密钥时要小心谨慎,因为泄露密钥的最佳时机不是在使用时(此时可以应用许多标准的、可重复的预防措施),而是在生成时,因为一次性的操作更容易被破坏。
这是进行钥匙生成仪式的优秀指南概述了一些有助于确保密钥生成的标准协议,尽管它们大多归结为(a)让多位知识渊博的审计员见证一切,(b)同时记录所做的一切事情(c)根据执行者以外的其他人编写的预定协议。
答案4
很好的问题,也有一些很好的答案。
请记住,只要考虑到这个问题而不是盲目地向前冲,您就比大多数人领先 90%。
牢记这一点并采纳了这里的其他建议,我只想补充一点:不要满足于现状;密切关注安全和密码学新闻,了解有关证书颁发、撤销、破解等的一般问题,最肯定的是关注您用于生成和管理密钥的特定产品的漏洞和问题。
最后:物理安全。如果我能在你的大楼里找到一份合同清洁工的工作,然后有一天把包含你的根证书的磁盘放在我的口袋里,那么制造一些“防黑客”的东西是没有用的。你会惊讶于有多少人错过了这一点。