最近在B站看到一段关于HTTPS讲解的视频;感觉非常地通俗易懂;
【web安全3】【硬核】HTTPS原理全解析
自己也画图做了笔记,加深一下知识点的记忆
HTTP : 超文本传输协议,采用明文传输的方式,不安全;
HTTPS:具有一定安全性的超文本传输协议,使用了加密算法;
作图推荐使用的 工具: excalidraw在线作图;
本人也是第一次使用,没想到这个画图效果这么棒.
比如模拟这个传统的http的数据传输
.
若是使用对称加密呢;
密文 X
保证安全;K
时,无法确定一共有多少了客户端,不可能做到为每个客户端量身定做一个 加密使用的 K
, 那么在这个交互的协议过程中使用的这个 k
都是同一个.再看看纯使用非对称加密 的效果;
对称加密结合非对称加密
那么HTTPS的加密机制,实际就是结合了 对称加密
和非对称加密
.
先让当前的客户端和服务端 通过
非对称加密算法
协商得出一个 加密用的 key;
达成一致后, 两方采用对称加密算法
即可愉快地交互数据了.
实际之后的数据传输也完全可以用非对称加密,但是一方面是[非对称加密解密
计算开销远大于对称加密
],然后是出于安全性的做法.
首先看看自己假想状态下的 非对称加密混合对称加密
协议;
可是,即使这样的混合加密手段, 中间人还能攻击!!!
mid-pubKey
和mid-selfKey
;拦截客户端
索要公钥的请求, 然后将自己的公钥mid-pubKey
发给客户端;pubKey
存起来;mid-pubKey
加密了num
为X 发了出来,不幸的是有备中间人截获;mid-selfKey
解密X得到 num
;pubKey
加密num
为Y; 发给服务器;selfKey
解密得到num
;真正的客户端和服务器
交互的消息.对称加密结合非对称加密
那么,存在这个不友好的中间人,怎么安全地传输信息呢;
试试CA
CA是什么呢? ----> 点击此处查看百度百科:CA认证
证书颁发机构(CA, Certificate Authority)即颁发数字证书的机构。是负责发放和管理数字证书的权威机构,并作为电子商务交易中受信任的第三方,承担公钥体系中公钥的合法性检验的责任。
由于之前中间人能完美无差地攻击,从一方面来看,因为 客户端无法辨认公钥是不是合法的
;
那么CA权威机构
,恰好可以解决这个问题;
简单分析一下;
(1)首先这样一个友好的CA机构出现了;它有着自己的公钥,私钥,暂且称为CA-pubKey
,CA-selfKey
;
(2)这次服务器不会那么直接了,他先去把自己的公钥交给CA机构, 那么CA机构就可以用自己的私钥CA-selfKey
加密服务器的公钥pubKey
,生成得到证书license
; 颁发给服务器;
(3)这时客户端也聪明了,不要公钥,索要的是证书license
;
(4)然后客户端在自己这里存了CA机构的公钥CA-pubKey
,解密验证证书,得到服务端的公钥pubKey
;
(5)然后就像之前那样,客户端可以加密一段字符串num,生成秘钥X,发给服务器;
(6)服务器用私钥selfKey
解密X得到num;
(7)愉快对称加密交互…
那么这样引入CA机构的方式,中间人要是还想攻击,会出现什么情况呢???
首先,由于CA权威机构的出现,在认证前期,中间人无法动手;
那么试试拦截客户端发来的秘钥 X ; 但是没什么用啊,这里没有私钥,无法操作
前面几个步骤中;大概都有说到前期协商一个
公用的key
阶段;那么这个协商具体是什么呢???
从访问一个网站的过程开始;
标注:图片自取
或访问画板网站在线连接:
https://excalidraw.com/#json=jnjhforkU67oE2dARm7u9,w_UdfAm4ZSvcsQfLfuRdnA