如何保护您的CA的私钥?

我即将实施自己的authentication中心(CA),仅供内部使用。

现在有一个问题,那就是CA私有永远不能被利用。 所以现在私钥是encryption的。

还有什么可以做的,以提高私钥的安全性?

我曾在一家公司工作,那里的CA密钥的安全性对业务的持续成功至关重要。 为此,使用自定义协议对密钥进行encryption,该协议要求至less有2个人与插入terminal的物理令牌解密(至less有5个令牌,任意2个组合可以工作)。 使用CA密钥将terminal与实际机器物理分离。 用户解密它的界面是一个VT220terminal,允许他们input解密令牌,然后select他们想要用密钥“签名”(永远不要让他们访问解密的密钥)。 这个系统意味着至less有4个人必须共同努力来妥协关键,两个令牌持有者,访问数据中心的人以及另一个在服务器上具有根访问权的人(因为解密的密钥从未存储在该服务器只在内存中,你不能只是偷了盒子,而具有root权限的人到这个特定的服务器是不允许DC访问)。

如果你对这种设置有更多的细节感兴趣,Bruce Schneier有一个很好的网站,涵盖了计算机安全devise和实现:

http://www.schneier.com/

他还发表了一本非常好的应用密码学书籍,帮助我了解这样的系统的基本原理,以及如何构build更安全的基础设施(可以由不佩戴口袋保护器的人读取):

http://www.schneier.com/book-applied.html

一个巨大的收益是将专用CA密钥保存在完全与networking隔离的专用计算机上。 然后,您将在此计算机上签名并可能生成新证书,然后使用物理介质将新证书从CA计算机中转出。

如设置,当然也包括考虑有关机器的物理可用性,以及对允许的媒体的限制。 一个良好的旅行USB棒可能不是最好的select…

(顺便说一下,这是安全性和便利性之间权衡的一个非常明显的例子。)

我已经提出了另外两个答案,并对其进行了评论,因为我认为他们都很出色。 如果你决定为他们两个而努力,而且这可能是合适的,我强烈build议在最初的一代关心的护理,因为妥协一个关键的最佳时间是不使用(在许多标准的,可重复的预防措施可以应用),但在一代时间,这是一次性更容易颠覆。

这个执行密钥生成仪式的优秀指南列出了一些可以帮助确保密钥生成的标准协议,尽pipe它们大部分归结为:(a)所有事情都由多名知识渊博的审计人员见证,他们(b)同时logging(c)根据由执行者以外的人所写的预定协议完成的一切事情。

根据您的认真程度,您应该考虑使用FIPS 140-2( http://en.wikipedia.org/wiki/FIPS_140#Security_levels )硬件来存储CA密钥和这些密钥的备份。 您应该有一个根CA和一个中间CA,以便您可以保持您的根CA离线和物理安全。 根目录只需要更新或签署新的中间CA,而中间的CA则保持在线进行日常操作。 正如其他人所build议的那样,安全密钥生成和密钥pipe理是非常重要的。

VeriSign(现在的赛门铁克)CPS是商业CA如何生成和保护其密钥的一个很好的参考。 请看第五章和第六章,特别是: http : //www.verisign.com/repository/cps/ 。 (我在威瑞信工作了几年)

此外,NIST还有一些好的关键pipe理出版物( http://csrc.nist.gov/publications/drafts/800-57/Draft_SP800-57-Part1-Rev3_May2011.pdf )和一代,你的公司也应该有一个CPS指定用于pipe理您的CA的策略和实践。 IETF提供了一个很好的模板: http : //www.ietf.org/rfc/rfc2527.txt

很好的问题和一些很好的答案。

请记住,仅仅考虑这个问题,而不是盲目地收费,你大概比其他大多数人高出90%。

牢记这一点,并在这里采取其他的build议,我只想补充:不要坐在你的桂冠; 密切关注与证书颁发,撤销,破解等一般问题有关的安全和encryption新闻,以及关于用于生成和pipe理密钥的特定产品的漏洞和问题。

最后:物理安全。 如果我能够在你的大楼里find合同清洁员的工作,然后把含有你的根证书的磁盘放在口袋里,那么做一些“黑客certificate”是没有帮助的。 你会惊讶有多less人错过了那个。