0

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

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

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

  1. 创建将签署证书的私有 CA。如果我理解得很好,CA 的证书必须存在于每个实体的信任库中,以便其他实体的证书可以使用 CA 的证书进行验证。
  2. 创建私有 CA 作为第一个解决方案。但是,私有 CA 的证书是由商业 CA(例如 Verisign)签署的。我不知道它为以前的解决方案增加了什么。
  3. 由商业 CA 签署每个实体的证书。但这种解决方案似乎很昂贵。
  4. 仅使用自签名证书。每个实体的证书都是由它自签名的,并且必须添加到它想要与之通信的每个实体的信任库中。

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

谢谢

4

1 回答 1

1

我已经为您的选项编号以便于阅读。

您的选项 4 具有与第一个选项相当的安全性和管理细节。即,您的选择范围缩小到自己与第三方 CA 服务。虽然您可以从 CA 机构购买自己的 CA 证书,但它会花费很多,emm。但是“很多”是多少是由CA销售人员根据具体情况确定的。

就管理复杂性而言,我将它们按以下顺序排列(首先是最简单的):3、1、2、4

在选项 1、2、4 中,您必须管理您的证书,这需要了解 PKI 及其安全程序(除了纯技术之外,您还需要确保私钥受到保护)以及用于证书生成和管理的软件(openssl 等)对于大多数活动来说还不够,很可能您需要编写自己的代码来生成证书)。

拥有一个 OCSP 服务器也是一个好主意,在选项 1、2、4 的情况下您必须自己运行它。

于 2012-07-19T09:50:12.203 回答