这篇文章主要介绍“HTTPS原理分析”,在日常操作中,相信很多人在HTTPS原理分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答“HTTPS原理分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
<强> HTTPS 强>
随着HTTPS建站的成本下降,现在大部分的网站都已经开始用上HTTPS协议。大家都知道HTTPS比HTTP安全,也听说过与HTTPS,协议相关的概念有SSL,非对称加密,CA证书等,但对于以下灵魂三拷问可能就答不上了:
- <李>
为什么用了HTTPS就是安全的?李李
> <>HTTPS的底层原理如何实现?李李
> <>用了HTTPS就一定安全吗?
李>本文将层层深入,从原理上把HTTPS的安全性讲透。
<强> HTTPS的实现原理强>
大家可能都听说过HTTPS协议之所以是安全的是因为HTTPS协议会对传输的数据进行加密,而加密过程是使用了非对称加密实现。但其实,HTTPS,在内容传输的加密上使用的是对称加密,非对称加密只作用在证书验证阶段。
HTTPS的整体过程分为证书验证和数据传输阶段,具体的交互过程如下:
证书验证阶段:
- <李>
浏览器发起HTTPS请求
李> <李>服务端返回HTTPS证书
李> <李>客户端验证证书是否合法,如果不合法则提示告警
李>数据传输阶段:
- <李>
当证书验证合法后,在本地生成随机数
李> <李>通过公钥加密随机数,并把加密后的随机数传输到服务端
李> <李>服务端通过私钥对随机数进行解密
李> <李>服务端通过客户端传入的随机数构造对称加密算法,对返回结果内容进行加密后传输
李><强>为什么数据传输是用对称加密吗?强>
首先,非对称加密的加解密效率是非常低的,而http的应用场景中通常端与端之间存在大量的交互,非对称加密的效率是无法接受的;
另外,在HTTPS的场景中只有服务端保存了私钥,一对公私钥只能实现单向的加解密,所以HTTPS,中内容传输加密采取的是对称加密,而不是非对称加密。
<强>为什么需要CA认证机构颁发证书吗?强>
HTTP协议被认为不安全是因为传输过程容易被监听者勾线监听,伪造服务器,而HTTPS协议主要解决的便是网络传输的安全性问题。
首先我们假设不存在认证机构,任何人都可以制作证书,这带来的安全风险便是经典的“中间人攻击”问题。
"中间人攻击”的具体过程如下:
过程原理:
- <李>
本地请求被劫持(如DNS劫持等),所有请求均发送到中间人的服务器
李> <李>中间人服务器返回中间人自己的证书
李> <李>客户端创建随机数,通过中间人证书的公钥对随机数加密后传送给中间人,然后凭随机数构造对称加密对传输内容进行加密传输
李> <李>中间人因为拥有客户端的随机数,可以通过对称加密算法进行内容解密
李> <李>中间人以客户端的请求内容再向正规网站发起请求
李> <李>因为中间人与服务器的通信过程是合法的,正规网站通过建立的安全通道返回加密后的数据
李> <李>中间人凭借与正规网站建立的对称加密算法对内容进行解密
李> <李>中间人通过与客户端建立的对称加密算法对正规内容返回的数据进行加密传输
李> <李>客户端通过与中间人建立的对称加密算法对返回结果数据进行解密
李>由于缺少对证书的验证,所以客户端虽然发起的是HTTPS请求,但客户端完全不知道自己的网络已被拦截,传输内容被中间人全部窃取。
<强>浏览器是如何确保CA证书的合法性? 强>
1。证书包含什么信息吗?
- <李>
颁发机构信息
李> <李>公钥
李> <李>公司信息
李> <李>域名
李> <李>有效期
李> <李>指纹
李> <李>…
李><强> 2。证书的合法性依据是什么? 强>
首先,权威机构是要有认证的,不是随便一个机构都有资格颁发证书,不然也不叫做权威机构。另外,证书的可信性基于信任制,权威机构需要对其颁发的证书进行信用背的书,只要是权威机构生成的证书,我们就认为是合法的,所以权威机构会对申请者的信息进行审核,不同等级的权威机构对审核的要求也不一样,于是证书也分为免费的,便宜的和贵的。