2012-07-19 92 views
0

对于具有多个应用程序服务器和多个客户端的系统,我想介绍相互身份验证以及TLS提供的其他安全保护。签署证书的解决方案

服务器和客户端可能位于不同的网络以及同一网络上。

每个实体(客户端或服务器)都有自己的密钥存储区,存储其私有/公用密钥对和包装公钥的X.509证书。但是,在这一点上,证书是自签名的。所以,它不会被其他通信实体验证。经过一番研究,我看到了一些解决方案:

  1. 创建一个专用CA来签署证书。如果我对 有所了解,则CA的证书必须出现在每个实体的 信任库中,以便使用CA的证书验证其他实体的证书可以 。
  2. 创建专用CA作为第一个解决方案。但是,私人CA的证书由商业CA(例如Verisign)签署。 I 不知道它增加了以前的解决方案。
  3. 由商业CA签署每个实体的证书。但这个解决方案看起来很贵
  4. 仅使用自签名证书。每个实体的证书都由它自己签名,并且必须添加到每个要与之通信的实体的信任库中。

这是我的第一次安全体验。在您认为有效的解决方案中,您推荐哪一个?

感谢

+0

考虑[CACERT](https://www.cacert.org /)。 – 2012-07-19 09:47:31

回答

1

我已经编号的你的选择更容易阅读。

您的选项4具有与第一个类似的安全和管理细节。即您的选项将缩小到自有vs第三方CA服务。虽然您可以从CA授权机构购买您自己的CA证书,但它会花费很多,呃。但是,CA的销售人员逐案确定“多少”是多少。

在管理复杂性方面我把它们按以下顺序(首先是最简单的): 3,1,2,4

在选项1,2,4,你必须管理你的证书这就需要PKI的知识和它的安全程序(除了纯粹的技术,您将需要确保私钥保护)和软件证书生成和管理(OpenSSL和都将是不够的大多数活动,并最有可能你将需要编写自己的代码来生成证书)。

而且这是一个好主意,有一个OCSP服务器也是如此,你就必须在选项1,2的情况下自行运行,4

+0

我也希望不是每个人都可以获得中间CA(选项2),因为他们可能能够为不属于他们的机器颁发证书,并让它被任何浏览器识别。 – Bruno 2012-07-19 09:53:27

+0

感谢您的回答。你知道一些关于创建私有CA的文档吗? – 2012-07-19 10:09:05

+0

@MickaelMarrache,你可能会感兴趣的[这个问题](http://security.stackexchange.com/q/7030/2435)。 – Bruno 2012-07-19 10:16:37