SSL 何时加密从浏览器到服务器的数据?

Posted

技术标签:

【中文标题】SSL 何时加密从浏览器到服务器的数据?【英文标题】:When does SSL encrypt data from browser to server? 【发布时间】:2021-04-13 02:41:51 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

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

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

更新:

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

此图片来自SonicWall SSL Control

【讨论】:

@Yan,“您绝对可以设置一个能够检查 SSL 流量的代理(中间人代理)。这在很多公司网络中都完成了。为此,您需要设置一个具有浏览器信任的 SSL 证书的转发代理,然后允许代理解密来自浏览器的 HTTPS 请求并对其进行检查。” => 所以登录表单必须以非明文形式发送密码? @Rango HTTPS 请求(标头和有效负载)在通过 Internet 发送之前始终被加密。添加了对答案的更新。当浏览器在提交表单时发出 HTTPS 请求时,也会发生相同的流程。 感谢您的详细信息。我了解浏览器在发送到 Web 服务器之前会加密 HTTPS 请求。所以任何人,任何工具都无法捕获和解密请求数据。我有一个困惑。我执行以下操作: > 从telerik.com/download/fiddler 安装 Progress Telerik Fiddler Web 调试器工具(不是浏览器检查扩展)。 > 安装后打开工具。 > 打开浏览器,进入谷歌登录页面。 > 输入账号,点击下一步。 > 返回 Progress Telerik Fiddler Web Debugger 工具,检查 google 请求。 > 我可以看到普通数据。 所以我的问题,IT管理员可以在公司网络上设置相同的工具,他可以检查请求。 在设置 Fiddler 时是否点击了接受 Fiddler 根证书?本教程或多或少是您设置提琴手所做的吗? codementor.io/@aydindev/…

以上是关于SSL 何时加密从浏览器到服务器的数据?的主要内容,如果未能解决你的问题,请参考以下文章

SSL证书有啥用呢

接收到的数据是不是通过 https 加密?

关于网站服务器的https访问,真的需要购买证书吗

网站开启ssl证书有啥优势?

SSL证书(HTTPS)背后的加密算法

SSL证书是什么?SSL证书怎么申请?