https加密整个URL吗?

53i*_*ott 7 security encryption dns url https

我google了很多,很多答案都是肯定的.例如:GET数据是否也在HTTPS中加密? 但我们公司的高级安全工程师告诉我,URL不会被加密.

图像,如果URL已加密,DNS服务器如何找到主机并连接?

我认为这是非常强大的观点,尽管它反对大多数答案.所以我真的很困惑,我的问题是:

  1. https是否会加密请求中的所有内容?(包括URL,主机,路径,参数,标题)
  2. 如果是,DNS服务器如何解密请求并将其发送到主机服务器?

我尝试访问https://www.amazon.com/gp/css/homepage.html/ref=ya_surl_youracct,我的IE向服务器发送了两个请求:

第一:

CONNECT www.amazon.com:443 HTTP/1.0
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Host: www.amazon.com
Content-Length: 0
DNT: 1
Connection: Keep-Alive
Pragma: no-cache
Run Code Online (Sandbox Code Playgroud)

第二:

GET /gp/css/homepage.html/ref=ya_surl_youracct HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: en-US,zh-CN;q=0.5
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: www.amazon.com
DNT: 1
Connection: Keep-Alive
Run Code Online (Sandbox Code Playgroud)

我的浏览器似乎已经请求了两次:第一次是与主机建立连接(没有加密),第二次是通过https发送加密请求?我对吗?如果我正确理解这一点,当客户端使用https调用RESTFUL API时,它每次都会发送两次请求(连接和获取/发布)?

irc*_*ell 11

该URL IS从离开浏览器,直到它击中目标服务器的时间进行加密.

会发生什么是浏览器从URL中提取域名和端口,并使用它来解析DNS本身.然后它启动加密通道到目标服务器IP:端口.然后它通过该加密通道发送HTTP请求.

重要的部分是任何人,但您和目标服务器只能看到您正在连接到特定的IP地址和端口.他们无法说出任何其他信息(如特定的URL,GET参数等).

在大多数情况下,攻击者甚至无法看到域名(尽管如果实际上有DNS查找,他们可以推断出它 - 如果它没有被缓存).

需要了解的重要一点是,DNS(域名服务)是一种完全不同的服务,具有与HTTP不同的协议.浏览器发出DNS查询请求以将域名转换为IP地址.然后它使用该IP地址发出HTTP请求.

但DNS服务器在任何时候都没有收到HTTP请求,除了为用户提供域名 - IP映射之外,它实际上什么都不做.


T.R*_*Rob 7

虽然其他响应是正确的,但除了浏览器和服务器之间的加密之外,还有许多其他考虑因素.以下是一些需要考虑的事情......

  • 服务器的IP地址已解析.
  • 浏览器使用TLS与服务器的IP地址建立TCP套接字连接.这是CONNECT你在你的例子中看到的.
  • 请求通过加密会话发送到服务器.

如果这就是全部,那么你就完成了.没问题.

但等等,还有更多!

在......中显示字段GET而不是POST显示敏感数据时......

  • 有人查看服务器日志.这可能是一个史努比的员工,但也可能是国家安全局或其他三个字母的政府机构,如果在审判中传唤,日志可能会成为公共记录.
  • 攻击者导致网站加密回退到明文或破解密码.查看Qualsys实验室的SSL检查程序,了解网站是否容易受到攻击.
  • 页面上与外部站点的任何链接都将显示页面的URI作为引用者.用户ID和密码无意中通常以这种方式赠送给广告网络.我有时会在自己的博客中发现这些.
  • 该URL在浏览器历史记录中可用,因此可供脚本访问.如果计算机是公共的(有人从酒店或机场休息室的客户PC检查您的网站),GET请求会将数据泄露给使用该设备的其他人.

正如我所提到的,我有时会在博客的引荐来源日志中找到ID,密码和其他敏感信息.在我的情况下,我联系推荐网站的所有者并告诉他们他们正在暴露他们的用户黑客攻击.一个不太谨慎的人会在网站上添加评论或更新,并提供指向他们自己网站的链接,目的是在他们的引荐来源日志中收集敏感数据.

因此,贵公司的高级安全工程师是正确的,URL在许多地方都没有加密,因为这样做非常重要.您和其他受访者也是正确的,它在浏览器的非常狭窄的用例中加密的,在TLS会话的上下文中与服务器通信.您提到的混淆可能与这两个用例范围的差异有关.

请参阅: