【问题标题】:How is https more secure than http? [closed]https如何比http更安全? [关闭]
【发布时间】:2021-02-16 20:01:29
【问题描述】:

我试图了解 https 和 http 之间的区别。根据我目前所阅读的内容,https 是带有加密的 http。

所以在用户提交密码表单的场景中,如果是http,密码将以基于文本的格式通过网络发送,而在https的情况下,密码将以加密格式发送. 所以https更安全。用户的用户名和密码不会暴露给窥探者。

但我的问题是,假设有人在窥探网络,而我们正在使用 https,窥探者/黑客仍然可以访问加密数据,他可以使用加密数据访问会话 cookie 并登录到网站。

我们如何防范这种情况?或者 https 在这种情况下如何帮助我们?

【问题讨论】:

  • the snooper/hacker still has access to the encrypted data, he can use the encrypted data to gain access of session cookie and login to the website. 他不能。 所有内容都经过加密,包括 cookie。
  • @tkausl 如果一切都加密了,路由器如何路由http请求?
  • 您是否认为攻击者可以简单地重放加密数据?加密在服务器和每个单独的客户端之间单独协商。攻击者需要连接到服务器并用自己的秘密协商自己的加密会话;在这一点上,捕获的其他人的数据一文不值,因为它是用不同的秘密加密的。
  • “一切”是指 HTTP 请求(第 7 层),路由发生在第 3 层。
  • 路由器不路由 HTTP 请求,它们路由 TCP/IP 数据包。这些是围绕 HTTP 的信封。

标签: http security https websecurity


【解决方案1】:

您似乎不太清楚 HTTPS 究竟加密了什么,所以这里有一个粗略的概述:

  • 浏览器形成一个HTTP request,它由GET /foo/bar等行和其他HTTP标头以及可能的请求正文组成
  • 浏览器查找服务器的 IP,该服务器属于它将向其发送请求的域
  • 它联系该服务器并协商一个 TLS 会话,其中包括为两端协商特定于会话的秘密
  • 它会加密它在第一步中创建的 HTTP 请求并将其发送到服务器
  • 通信是分层的:HTTP 请求被包裹在 TLS 中并被打包成 TCP/IP 数据包,路由器只是路由 IP 数据包而不需要知道任何内容;一般来说,路由器与协议无关,它们不知道 HTTP,只知道封装的 TCP/IP 协议
  • 接收服务器正在解包 TCP/IP 数据包,重组 TLS 请求,解密它,最后得到纯 HTTP 请求

假设有人在窥探网络,而我们正在使用https,窥探者/黑客仍然可以访问加密数据,他可以使用加密数据访问会话cookie并登录网站

没有。即使有人捕获了加密的请求,他们也无法解密它(*假设协议中没有缺陷并且暴力解密是不切实际的)。而且他们不能简单地重放加密的请求,因为他们需要建立自己的 TLS 连接,这将涉及不同的秘密,并且服务器将无法解密最初用别人的秘密加密的数据。

我的意思是如果 url 被加密,路由将如何发生

如上所述,路由器不路由 URL,仅路由 TCP/IP 数据包;并且发送请求的客户端知道 URL,已经将“URL”转换为简单的可路由 TCP/IP 数据包。

DNS 查找将 url 转换为需要发送数据包的 ip 地址。如果 url 被加密,则 dns 查找不应该工作

客户端在发送请求之前对未加密的主机名进行 DNS 请求。这实际上是整个链的唯一“弱点”:攻击者可以通过能够观察 DNS 流量或可能通过 TLS 中的 SNI 标头知道请求被发送到哪个主机协议或简单地通过从目标 IP 地址猜测。它不会告诉攻击者请求包含什么URL,只会告诉攻击者主机或服务器。具体的 URL/路径和其他所有内容都在包裹在 TCP/IP 中的 TLS 中的 HTTP 请求中进行加密。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-27
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2013-01-22
    • 2011-02-27
    相关资源
    最近更新 更多