3

我想在我自己的一些服务器之间运行一些加密连接。可以使用 Curl(或其他某种机制)使用 HTTPS 进行连接,无需 SSL 证书验证。我正在使用 PHP,但该语言对于这个问题可能并不重要。

我假设在没有 SSL 证书的情况下使用 HTTPS 至少比通过纯 HTTP 进行完全相同的连接更安全,因为至少它是加密的,并且作恶者将不得不付出更大的努力来拦截和解密信息。

据我所知,SSL 证书只说“这个受信任的第三方说您连接的服务器归声称拥有它的人所有”。如果我使用自己的域名或 IP 地址连接,我知道我是所有者。如果我是连接两端的所有者,SSL 证书会提供哪些附加价值?

4

2 回答 2

8

不验证您连接到的服务器的身份会使连接对潜在的 MITM 攻击开放。SSL/TLS 可以在没有证书的情况下使用(使用匿名密码套件),但它们不安全(默认情况下禁用);正如 TLS RFC 所说:“请注意,这种模式容易受到中间人攻击,因此不推荐使用。 ”此外,HTTPS 规范本身期望有一个 X.509 证书。

检查远程方的身份是保护系统安全的必要元素。与可能不是他们声称的身份的远程方秘密交换数据并不是很有用(即使保密得到保证)。

话虽如此,您不必通过商业 CA。您可以使用自签名证书(必须将其作为可信证书单独导入每个客户端),也可以创建自己的机构 CA。有一些工具可以做到这一点,包括 OpenSSL CA.pl(参见手册页)、TinyCAOpenCA等。一些操作系统还提供自己的小型 CA 功能。

如果我使用自己的域名或 IP 地址连接,我知道我是所有者。如果我是连接两端的所有者,SSL 证书会提供哪些附加价值?

该证书向您保证您确实连接到您的机器并且流量没有被拦截。这就是为什么您需要检查它是否是您认可的证书。

于 2012-04-05T13:57:38.093 回答
-2

SSL 证书更适合您的客户或使用您网站的人。无论哪种情况,数据都是通过相同的连接传输的——这只是第三方是否证明您是安全的问题。

在我上一份工作中,我们在上一份工作中通过 https/ftps 完成了所有内部数据传输,但直到最近才拥有 SSL 证书。由于数据传输是内部的,因此没有区别。

于 2012-04-05T13:38:56.863 回答