新闻资讯  快讯  焦点  财经  政策  社会
互 联 网   电商  金融  数据  计算  技巧
生活百科  科技  职场  健康  法律  汽车
手机百科  知识  软件  修理  测评  微信
软件技术  应用  系统  图像  视频  经验
硬件技术  知识  技术  测评  选购  维修
网络技术  硬件  软件  设置  安全  技术
程序开发  语言  移动  数据  开源  百科
安全防护  资讯  黑客  木马  病毒  移动
站长技术  搜索  SEO  推广  媒体  移动
财经百科  股票  知识  理财  财务  金融
教育考试  育儿  小学  高考  考研  留学
您当前的位置:首页 > IT百科 > 站长技术 > 网站

https到底加密了什么?

时间:2019-08-09 11:55:51  来源:  作者:

问题描述

都说https是在http和tcp两层之间加密,针对的是传输过程,只有客户端和服务端才能解密,变成明文。但是又有很多人说,https协议下,用get请求不加密,需要用post才会加密,而且这么说的人很多。

我的疑惑就是,如果把整个数据都加密了,是不是无论get和post都是一样的?

因为不懂抓包技术,所以比较好奇。https传输下,抓包者抓到的都是乱码? 能抓到URL,或者header之类的信息嘛?

再补充一个问题,网上还有一种中间人抓包模式?

如果有人在我和服务器之间抓包,伪造证书,搞这个中间人模式,那么浏览器是不是直接提示证书不安全?

如果浏览器也分辨不出来的话,是不是ssl证书质量不过关?

如果ssl证书质量过关,浏览器还无法分辨的话,那https岂不是一点用没有?该抓还抓,该截还截?

https到底加密了什么?

 

正文

首先直接说结论,https安全通信模式,是使用TLS加密传输所有的http协议。再重复一遍,是所有!

通常将TLS加密传输http这个通信过程称为https,如果使用协议封装的逻辑结构来表达就是:

IP + TCP + TLS +【HTTP】

其中用【】括起来的http是完全被加密保护起来的。

既然http被完全加密起来了,那使用https加密传输信息,途径互联网的时候,互联网上的第三方可以知道我们在访问什么网站吗?

可以的!

你可能会很惊奇,既然http已经被完全加密了,怎么第三方还会知道我们访问什么网站?

我们在访问一个网站时,比如www.zhihu.com,首先会使用DNS将网站的域名解析成IP地址,然后才可以使用IP地址来网站建立TCP连接、TLS安全连接。由于DNS是不加密的,所以第三方只要通过读取明文的DNS查询与响应报文,就可以知道我们再访问哪些网站。

读者会心生一计,如果我将域名与IP地址的对应关系,保存在本地的host文件里,那么下次就不需要发送DNS查询报文了,那么第三方就无法知道我们在访问什么网站了,对吗?

好主意!

但是第三方可以通过服务器的IP地址,使用DNS反向解析得到服务器的域名。

像知乎这样的网站通常会使用边缘加速,一个边缘加速服务器IP地址会host成千上百个网站,使用DNS反向解析会返回上千个域名,对吗?

对的!

但是我们与服务器TLS握手时,会在Client Hello报文的“TLS Extension”里携带一个明文的“Server Name Indication”用于指示边缘服务器我们真正要访问哪个网站,第三方读取一下SNI就会得到答案。

即使我们的浏览器有点古老,不支持SNI扩展,第三方就没有办法知道我们访问哪个网站了?

当然可以知道,因为TLS握手时,服务器推送过来的Server Hello里会携带明文的证书,证书里会清清楚楚地标明客户端正要访问什么网站。

现在互联网上大体有以下三种通信模式:

  • 不安全通信

 

https到底加密了什么?

 

 

  • 不完全安全通信
https到底加密了什么?

 

  •  
  • 安全通信

 

https到底加密了什么?

 

 

对于不安全通信、安全通信其实非常好理解,它们分别对应http与https。

 

http的协议封装的逻辑架构是这个样子的:

 

IP + TCP + HTTP

 

https的协议封装的逻辑架构是这样的:

IP + TCP + TLS +【HTTP】

 

两者都使用http协议通信,只是由于后者有TLS的撑腰(安全加密),才使得https通信安全。

 

不完全安全通信又代表什么呢?

 

https+ http

 

读者会很纳闷,如下图所示,访问微信公众平台明明使用https://的协议前缀(Prefix),应该全部使用https完全安全通信,而不会使用https+ http混合通信,对吗?

 

理论上是这样的,但现实有时却偏离理论。理想是丰满的,现实却是骨感的。

 

当我们使用https访问https://www.example.com时,服务器返回的内容是https加密的,这一点问题没有,当浏览器准备显示的时候,发现要显示的内容是一个链接资源,而这个资源的链接地址是:http:// www.example.com,于是浏览器使用不加密的http,去访问服务器,将链接所对应的资源拉下来,然后显示在浏览器上。

 

最终,我们看到的页面由两部分组成:https的安全页面 + http的不安全页面,我们称之为混合页面(Mixed Content)

 

为何会产生混合页面?

最早的服务器提供的是http服务,很多资源的链接地址无意中使用了绝对路径,比如“http:// www.example.com”,在这个绝对路径中,不仅仅包含了路径“www.example.com/*****”,同时还包含了访问协议类型“http”。

 

这种绝对路径在http通信用的好好的,用于指示浏览器使用TCP 80端口访问服务器。

 

当https慢慢成为主流通信方式,越来越多的公司开始从http向https的迁徙,很多服务器跑在了有TLS保护的443端口。

 

当我们访问“https:// www.example.com”,浏览器可以协议前缀,准确地知道我们要访问的是服务器的443端口。

 

https到底加密了什么?

 

 

一旦链接使用绝对路径,浏览器就会乖乖地使用“http://www.example.com/*****”访问服务器的80端口。

 

如何解决混合页面问题?

将所有链接的绝对路径改写为相对路径“//www.example.com/*****”。

如果浏览器使用https访问服务器,会默认添加成“https: //www.example.com/*****”。

如果浏览器使用http访问服务器,会默认添加成“http: //www.example.com/*****”。

 

当你意识到自己访问的页面有一部分是明文传输时,会否大吃一斤?

 

混合页面的存在,网站的owner肯定是知道的,甚至故意将一部分静态页面(图片、视频、音频)使用http传输,以减轻服务器处理加密报文的负担。

 

有潜在的读取浏览器cookie的动态页面(JAVAscript),绝对不能使用明文传输。

 

使用完全加密的https通信时,则没有那么麻烦,所以将网站采用完全https通信是最明智的选择。

 

再来回顾上一篇的问题,https会加密所有的http内容,但是当浏览器尝试去拉取不安全(http)链接时,此时已经不是安全通信了。当抓包时,就会出现在一堆加密报文中,穿插着不加密的报文,读完这两篇文章,希望这个问题不再是问题。



Tags:https   点击:()  评论:()
声明:本站部分内容来自互联网,内容观点仅代表作者本人,如有任何版权侵犯请与我们联系,我们将立即删除。
▌相关评论
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
▌相关推荐
Nginx配置同一个域名http与https两种方式都可访问,证书是阿里云上免费申请的server{listen 80;listen 443 ssl;ssl on;server_name 域名;index index.html index.htm index....【详细内容】
2019-12-27   https  点击:(2)  评论:(0)  加入收藏
一、HTTP存在的问题1.1 可能被窃听 HTTP 本身不具备加密的功能,HTTP 报文使用明文方式发送 由于互联网是由联通世界各个地方的网络设施组成,所有发送和接收经过某些设备的数...【详细内容】
2019-12-23   https  点击:(3)  评论:(0)  加入收藏
升级 https 记录1、去阿里云购买证书(免费版),并提交审核资料 购买的证书2、下载证书 下载证书3、查看上图页面的第三步 JKS证书安装4、在证书目录下执行阿里云提供的命令,密码...【详细内容】
2019-12-23   https  点击:(12)  评论:(0)  加入收藏
http传输如下: 此时信息是明文传输,如果信息被人截获,则能看到里面的内容,极不安全那就需要对内容加密,过程如下: 浏览器生成一个秘钥 浏览器向服务器请求公钥 服务器向浏览器发送...【详细内容】
2019-12-23   https  点击:(5)  评论:(0)  加入收藏
现在越来越多的网站都用https来保障自己网站的安全,而配置https就必须安装SSL证书,SSL证书一般都需要购买,价格也不太便宜,因此,很多站长都抱怨SSL证书的价格太贵,所以一直采取观...【详细内容】
2019-12-10   https  点击:(21)  评论:(0)  加入收藏
随着 HTTPS 建站的成本下降,现在大部分的网站都已经开始用上 HTTPS 协议。 图片来自 Pexels大家都知道 HTTPS 比 HTTP 安全,也听说过与 HTTPS 协议相关的概念有 SSL 、非对称...【详细内容】
2019-12-06   https  点击:(16)  评论:(0)  加入收藏
自互联网出现以来,超文本传输协议HTTP协议被广泛用于在Web浏览器和网站服务器之间传递信息。但随着互联网的发展,另一种协议——HTTPS出现,并与HTTP一同服务于这个互...【详细内容】
2019-11-28   https  点击:(22)  评论:(0)  加入收藏
相关链接:Apache+WordPress部署SSL加密服务,全站开启https访问第一步、部署SSL加密服务准备工作1.在VPS已部署好LNMP一键安装包;2.申请SSL证书(百度免费SSL证书),我以阿里云提过...【详细内容】
2019-11-27   https  点击:(20)  评论:(0)  加入收藏
很多时候我们都要看我们使用的软件发送的什么包,或者我们使用的网站发送的数据包是什么,甚至我们还想修改一下里面的数据来看看。再这里给大家来介绍一下我们入了利用Proxifie...【详细内容】
2019-11-25   https  点击:(112)  评论:(0)  加入收藏
如今,https协议正在被广泛重视和使用。随着今年2月初,谷歌旗下Chrome浏览器宣布将所有http标示为不安全网站,许多网站都争相从http升级到了https。当你打开很多网站时,会发现浏...【详细内容】
2019-11-15   https  点击:(26)  评论:(0)  加入收藏
本篇将讨论 HTTPS 的加解密原理,很多人都知道 RSA,以为 HTTPS=RSA,使用 RSA 加解密数据,实际上这是不对的。HTTPS 是使用 RSA 进行身份验证和交换密钥,然后再使用交换的密钥进行...【详细内容】
2019-11-07   https  点击:(15)  评论:(0)  加入收藏
本篇写的是HTTPS在Tomcat中的配置方法;至于HTTPS安全认证的原理,大家可以上网查看去理解;学习建议:大家可以使用面向对象的方式去理解握手协议,单向认证与双向认证的原理。(这篇本...【详细内容】
2019-11-04   https  点击:(20)  评论:(0)  加入收藏
基本概念HTTP:超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,因此,HTTP协议不适合传输一些敏感信...【详细内容】
2019-11-04   https  点击:(18)  评论:(0)  加入收藏
一、前言1.1 正向代理功能比较简单,但是原生nginx不支持https代理,如果访问https网站,会报错。# nginx代理不支持http CONNECT方法:curl: (56) Received HTTP code 400 from pro...【详细内容】
2019-10-30   https  点击:(107)  评论:(0)  加入收藏
TLS传输层安全性协定 TLS(Transport Layer Security),及其前身安全套接层 SSL(Secure Sockets Layer)是一种安全协议,目的是为网际网路通信,提供安全及数据完整性保障。 如图,TLS 在...【详细内容】
2019-10-24   https  点击:(22)  评论:(0)  加入收藏
由于HTTP协议存在着明文传输、不能很好的验证通信方的身份和无法验证报文的完整性等一些安全方面的确点,才诞生了HTTPS。严格来时HTTPS不是一种协议而是HTTP + SSL (TSL)的结...【详细内容】
2019-10-21   https  点击:(34)  评论:(0)  加入收藏
目前web开发,大部分公司都用的是前后端分离模式,即前端专注于前端页面交互,后端专注于功能实现及提供web api接口。在某次新站点的开发过程中,为了网站的安全性,要求web站点使用h...【详细内容】
2019-10-18   https  点击:(398)  评论:(0)  加入收藏
名称解释https:一种安全的http协议,因此可以称为安全的超文本传输协议,https提出在http和tcp之间添加一层加密层(SSL层),这一层负责数据的加密和解密。数字证书:简称CA,它由权威机...【详细内容】
2019-10-18   https  点击:(286)  评论:(0)  加入收藏
配置Web认证(输入HTTPS网址)+限速示例介绍配置Web认证(输入HTTPS网址)+限速的配置示例。适用产品和版本适用于V600R008C10及以后版本的NE40E/ME60系列产品。组网需求如图1-13所...【详细内容】
2019-10-15   https  点击:(40)  评论:(0)  加入收藏
HTTP/2HTTP 2.0即超文本传输协议 2.0,是下一代HTTP协议。是由互联网工程任务组(IETF)的Hypertext Transfer Protocol Bis (httpbis)工作小组进行开发。是自1999年http1.1发布后...【详细内容】
2019-10-14   https  点击:(41)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条