SSL什么时候加密从浏览器到服务器的数据?

When does SSL encrypt data from browser to server?

我的理解,使用https协议的网站数据在浏览器和服务器之间传输时会被加密。什么时候加密?

在登录表单中,我使用 Telerik Fiddler Web Debuger 捕获请求,我仍然看到明文密码。另一个问题,使用嗅探流量工具或代理的 IT 管理员可以捕获 HTTPS 请求并查看敏感值,不是吗?

那么数据什么时候加密呢?

这是一个有趣的问题。当通过 HTTPS 发送请求时,浏览器的网络库将对数据进行加密。当通过 HTTPS 发送请求时,客户端(浏览器)将执行 TLS 握手以协商加密细节,然后发送加密数据。我假设您看到的明文密码在 Fiddler 的浏览器插件中,而不是在代理应用程序中。在检查该特定请求时,您始终可以在浏览器的网络选项卡中看到包含清除密码的网络请求 information/payload。当通过 HTTPS 发送时,您将无法在代理拦截器以及 wireshark 等嗅探器应用程序中看到纯文本形式的请求数据。 正如您从 Telerik Fidler 的视频中看到的那样,它们只显示 HTTP 请求。

您绝对可以设置一个能够检查 SSL 流量的代理(中间人代理)。这是在许多公司网络中完成的。为此,您将使用浏览器信任的 SSL 证书设置转发代理,然后允许代理解密来自浏览器的 HTTPS 请求并检查它。

当通过 HTTP 发送数据时,可以嗅探数据,并且此人可以看到请求信息和有效负载。这就是人们应该始终通过 TLS 连接发送敏感数据的原因

更新:

此图显示了通过 HTTPS 的客户端到服务器的连接。表单数据在通过互联网发送之前始终加密

这张图片来自SonicWall SSL Control