我刚刚在我网站的帐户创建页面上设置了SSL。我希望将其扩展到我的整个网站。
但是,我有一个问题。 SSL加密如何实际运行并保护传输中的数据?此外,黑客通常可以使用哪些方法拦截通过HTTP以纯文本格式发送的数据?我知道有“嗅探”,但这始终是唯一给出的方法,从来没有任何详细说明。有没有办法检查通过HTTP和HTTPS发送的数据?比较和对比?答案 0 :(得分:11)
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不需要证书,但是如果你有证书就可以使用它们。