https如何比http更安全



我正在努力理解https和http之间的区别。根据我目前所读到的内容,https是带加密的http。

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

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

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

您似乎不清楚HTTPS到底加密了什么,所以这里有一个大致的概述:

  • 浏览器形成一个HTTP请求,它由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";URL";转换成简单可路由的TCP/IP分组。

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

客户端在发送请求之前对未加密的主机名进行DNS请求。事实上,这是唯一的";弱点";整个链的一部分:攻击者可以通过观察DNS流量,或者可能通过TLS协议中的SNI头,或者仅仅通过猜测目标IP地址,来知道请求被发送到哪个主机。它不会告诉攻击者请求包含的URL,只会告诉主机或服务器。具体的URL/路径和其他一切都在HTTP请求中加密,该请求用TCP/IP封装的TLS封装。

相关内容

  • 没有找到相关文章

最新更新