8

我最近刚刚在我网站的帐户创建页面上设置了 SSL。我希望将其进一步扩展到我的整个网站。

不过,我有一个问题。SSL 加密如何实际工作并保护传输中的数据?此外,黑客通常可以使用哪些方法来拦截通过 HTTP 以纯文本形式发送的数据?我知道有“嗅探”,但这始终是唯一给出的方法,从来没有任何详细说明。有没有办法检查通过 HTTP 和 HTTPS 发送的数据?比较和对比?

4

1 回答 1

14

HTTP 没有以任何方式加密。任何可以嗅探 HTTP 客户端和服务器之间的数据包的网络嗅探器(大多数网络适配器为此目的支持混杂模式)都可以查看 HTTP 数据。

另一方面,HTTPS 数据是使用 SSL/TLS 加密的 HTTP 数据。SSL/TLS 在出站数据到达网络之前对其进行加密,在入站数据离开网络后对其进行解密。网络上没有纯文本,因此数据包是否被第三方嗅探并不重要。如果没有加密密钥,嗅探到的数据就是垃圾。在 SSL/TLS 握手期间,客户端和服务器在交换任何应用程序数据之前相互协商加密密钥、证书等。发送到服务器的数据使用服务器的密钥进行加密,发送到客户端的数据使用客户端的密钥进行加密。这保证了客户端发送的加密数据只能被服务器解密,反之亦然。

从 SSL/TLS 加密连接中拦截和提取纯文本的唯一方法是使用中间人攻击。这意味着 SSL 客户端连接到 MITM,然后 MITM 连接到 SSL 服务器,并在它们之间来回传输数据。MITM 需要访问客户端或服务器正在运行的网络,并且必须能够将客户端的连接重新路由到它自己而不是服务器。但如果它能做到这一点,MITM 就可以与双方协商其自己的 SSL/TLS 连接,因此它拥有所有必要的加密信息。然后,它可以使用它与 SSL 客户端协商的加密密钥接收和解密 SSL 客户端发送的数据,然后使用它与 SSL 服务器协商的加密密钥重新加密并将该数据传递给 SSL 服务器。反之亦然。SSL 客户端和 SSL 服务器将不知道他们正在与 MITM 交谈而不是彼此交谈,除非您使用证书以便 SSL 客户端和 SSL 服务器可以在初始握手期间验证彼此的身份。SSL/TLS 不需要证书,但如果您拥有它们,它们就可以很好地使用。

于 2012-10-05T23:08:49.457 回答