所有内容均为测试可用,真实
当前位置:绿茶加糖-郭保升 > SSL证书 > 正文

HTTPS通信时地址是加密的吗?

07-11 SSL证书

我的答案是肯定的:加密。

这个回答乍看之下很反直觉,让人不禁想追问,如果地址都加密了信息还怎么发往目的主机呢?

就像寄信,如果把收件地址都加密了,邮递员还怎么送信呢?

会产生上述问题的原因在于,质疑“地址会加密”的人所说的“地址”,跟我说的“地址”可能并不是一个东西,大家其实在各说各话。

质疑“地址会加密”的人,大概率说的是“IP地址”。而IP地址确实是不会加密的,也不可能加密,否则就会出现前文所述的“邮递员困境”。

而我说“HTTPS通信时地址是加密的”,这里的地址其实说的是HTTP协议的地址,其本质是“应用层地址”,是区别于IP的“网络层地址”的。

HTTP协议数据包的地址在其请求报文的“起始行”,位于URL字段中,是字符信息。

图片

而网络层的IP地址则在IP报文的IP地址字段中,是二进制信息。

图片

HTTP协议的应用层地址URL和网络层地址IP,这两个地址是同时存在、互不干涉但又相互配合的。

这里要特别强调下“应用层”和“网络层”的位置关系,透过TCP/IP模型,你会发现应用层在上,网络层在下。

图片

与此同时,负责加密与解密的SSL/TLS又是位于应用层之下,传输层之上。这也就是说,加密与解密工作是在“应用层”和“网络层”之间进行的。

图片

而继续透过TCP/IP参考模型观察报文的封装,你会发现这个封装过程其实是“从上往下”进行的,是“面向机器”的。

图片

再形象点说就是,整个网络模型的报文封装结构就像一个“洋葱”,最里面的是“应用层”,然后由内向外分别是“传输层”、“网络层”和“网络接口层”。

图片

这就意味着主机在向外部发送信息时,上层报文的全部内容,既包括数据信息,亦包括地址信息,全部都会作为下层报文的“数据信息”来处理。

也就是说应用层的整个HTTP报文都会作为SSL/TLS的处理数据被加密处理,这其中既包括HTTP报文的数据信息,亦包括其地址信息。

图片

与此同时,网络层因为在SSL/TLS之下,中间甚至还隔了一个传输层,所以IP地址就不会被加密。

版权保护: 本文由 绿茶加糖-郭保升 原创,转载请保留链接: https://www.guobaosheng.com/tuijian/2025/0711/364.html