HTTPS加密流程解析

这篇我会用通俗易懂的图文并茂来说HTTPS,小白一个可能有些地方有些欠缺请你们理解 >x<web

为何须要HTTPS

  • HTTP报文使用明文(指未通过加密的报文)方式发送浏览器

  • HTTP明文协议的缺陷是致使数据泄露、数据篡改、流量劫持、钓鱼攻击等安全问题的重要缘由安全

  • 具体来讲 , 明文传输的每个环节,数据都有可能被第三方窃取或者篡改,具体来讲,HTTP 数据通过 TCP 层,而后通过WIFI路由器、运营商和目标服务器,这些环节中均可能被中间人拿到数据并进行篡改,也就是咱们常说的中间人攻击。服务器

HTTPS并非一个新的协议, 而是一个增强版的HTTP。其原理是在HTTP和TCP之间创建了一个中间层,当HTTP和TCP通讯时并非像之前那样直接通讯,直接通过了一个中间层进行加密,将加密后的数据包传给TCP, 响应的,TCP必须将数据包解密,才能传给上面的HTTP。这个中间层也叫安全层。安全层的核心就是对数据加解密。编辑器

  • 这个安全层就是 SSL/TLS

对称加密和非对称加密

首先须要理解对称加密和非对称加密的概念,后续延伸到整个加密流程时才能更好地理解flex

对称加密

就是加密和解密使用同一个密钥的加密技术加密

加密解密的过程

对称加密问题

  • 黑客拦截,直接本身加密一个返还给你,你是彻底不知道的

非对称加密

非对称加密也成为公开密钥加密技术,就是使用不一样密钥进行通讯的加密技术spa

  • 若是有 A、 B 两把密钥,若是用 A 加密过的数据包只能用 B 解密,反之,若是用 B 加密过的数据包只能用 A 解密。

加密解密的过程

  • 安全问题解决了 可视客户端没有私钥没法解密

对称+非对称加密

  • 客户端请求服务端orm

  • 服务端给key1给客户端 客户端使用对称加密 将key2放在key1里cdn

  • key1须要密匙解开 别人没有打不开 传到服务端后

  • 服务端使用私钥解开 得到到key2 key2是对称加密解密key2

  • 由于第一次key2被key1加密了,是看不到的,密匙双方都有,别人获取不到, 后续传输直接传公钥key2,客户端和服务端都能用同一个会话秘钥进行加解密了 从而他们的通讯以及安全都获得了保障 黑客:你觉得只有大家在进步?

混合加密的问题

  • 黑客拦截而且本身生成非对称加密 以假乱真

那么这时候为了解决该问题,就出现了一个机构,CA证书颁发机构

CA证书颁发机构

为了解决 主要问题 客户端没法确认收到的公钥是否是真的是服务端发来的

  • 由CA(一个权威的认证机构)颁发的一种证书,里面含有能够标识你身份的信息,相似于咱们的身份证。

  • 证书是必须由服务端主动向CA申请的 服务器提供本身的信息和公钥给CA让其开数字证书

证书主要做用是数据加密和身份认证 , 身份认证就是指web浏览器和web服务器

数字证书+混合加密流程

客户端请求 --> 服务端接收 --> 服务端返回数字证书给客户端 --> 客户端验证证书 --->客户端生成对称加密的随机Key而后用公钥加密 ---> 给服务端 ---> 服务端用他的私钥解密获得随机Key ---> 后续传输用该Key加密传输

  • 最后一步对称加密知不道有没有理解错,若是有问题请大神指点

补充 : 如何验证数字证书?

  • 客户端对数字证书的明文信息进行hash加密得到摘要
  • 而后用CA公钥解密数字签名,获取里面hash加密的摘要
    • CA公钥是公开的 谁都能拿到 对比双方摘要是否相同,验证合法性
  • 验证数字证书的有效期
    • 是否是在CRL(吊销列表)里面
    • 它的上一级证书是否有效,这是一个递归的过程,直到验证到根证书

嘤嘤嘤 结束了 但愿能帮到你们

相关文章
相关标签/搜索