HTTPS URL是否被加密?

使用TLS / SSL(HTTPS)加密时,所有的URL都被加密了吗? 我想知道,因为我希望在使用TLS / SSL(HTTPS)时隐藏所有URL数据。

如果TLS / SSL为您提供总体URL加密,那么我不必担心隐藏URL中的机密信息。


是的,SSL连接位于TCP层和HTTP层之间。 客户端和服务器首先建立一个安全的加密TCP连接(通过SSL / TLS协议),然后客户端将通过该加密的TCP连接发送HTTP请求(GET,POST,DELETE ...)。


由于没有人提供线捕捉,这里是一个。
服务器名称 (URL的域部分)以明文形式显示在ClientHello数据包中。

以下显示浏览器请求:
https://i.stack.imgur.com/path/?some=parameters&go=here

ClientHello SNI 有关TLS版本字段的更多信息,请参阅此答案(其中有3个版本 - 不是版本,每个字段都包含版本号)!

从https://www.ietf.org/rfc/rfc3546.txt:

3.1。 服务器名称指示

[TLS]没有为客户端提供一种机制来告诉服务器与其联系的服务器的名称。 客户可能希望提供这些信息,以便于在单个底层网络地址上连接到托管多个“虚拟”服务器的服务器。

为了提供服务器名称,客户端可以在(扩展)客户端hello中包含“server_name”类型的扩展名。


简而言之:

  • 如果使用SNI扩展名,则FQDN(URL的域部分) 可以 清楚地ClientHello数据包内传输

  • 由于请求URL是一个HTTP事物(OSI第7层),URL的其余部分( /path/?some=parameters&go=here )在ClientHello内没有任何业务,因此它永远不会显示在TLS握手中(第4层或5)。 稍后会在GET /path/?some=parameters&go=here HTTP/1.1 HTTP请求后,安全 TLS通道建立之后。


  • 执行摘要

    域名可以明文传输(如果在TLS握手中使用SNI扩展),但URL(路径和参数)始终是加密的。


    正如其他答案已经指出的那样,https“URL”确实是加密的。 但是,解析域名时的DNS请求/响应可能不是,当然,如果您使用的是浏览器,您的URL也可能会被记录。

    链接地址: http://www.djcxy.com/p/7041.html

    上一篇: Are HTTPS URLs encrypted?

    下一篇: Are the PUT, DELETE, HEAD, etc methods available in most web browsers?