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

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

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

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

【问题讨论】:

    标签: ssl web https sensitive-data


    【解决方案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/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    • 2015-09-15
    • 2012-12-04
    • 2014-04-17
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    相关资源
    最近更新 更多