目录一、HTTPS1、HTTPS 的概念2、“ 加密 ”是什么二、HTTPS 的工作过程1、引入对称加密2、引入非对称加密3、中间人攻击4、引入证书三、总结流程一、HTTPS1、HTTPS 的概念HTTPS HTTP 加密TLS / SSLHTTP 明文传输不安全容易被篡改、劫持、窃听HTTPS 也是一个应用层协议在HTTP的基础上用 SSL / TLS 协议加密通信可靠、完整、加密、可信运营商劫持情况比如我们在浏览器下载一系列软件时点击高速下载——会下载应用宝 / 乱七八糟的软件绝大多数就是运营商HTTP劫持HTTPS 运营商劫持不了2、“ 加密 ”是什么明文 要传输的原始数据加密将明文进行了一系列变换之后生成密文解密 将密文再进行一系列变换还原成明文加密和解密的过程中会使用到一个特殊的数据密钥二、HTTPS 的工作过程1、引入对称加密是通过同一个 密钥 把明文加密成密文把密文解密成明文一个简单的对称加密密钥 所有字母向后移动三位明文ABC加密DEF密文解密同样密钥向前移动3位密文变回明文ABC客户端 / 服务器生成一个密钥让对方也持有这个密钥客户端发送给服务器的数据就使用这个密钥进行加密服务器使用这个密钥对客户端发送的数据进行解密流程但服务器要处理很多不同客户端的请求必然不可能使用同一个密钥那么就可以让客户端随机生成一个对称密钥然后通过网络传输给服务器那么将密钥传输的过程有极大可能被黑客拦截那么我们再次使用对称加密吗显然肯定不行在嵌套的对称加密密钥还是会被窃取那么我们就需要引入非对称加密了2、引入非对称加密非对称加密要用到两个密钥一个 公钥 、一个 私钥 公钥和私钥是配对使用的最大缺点为运算速度慢比对称加密慢的多使用常规使用公钥加密私钥解密。也可以反着用服务器生成公钥和私钥然后将公钥发放出去客户端在本地生成对称密钥使用公钥对其进行加密发送给服务器由于中间网络设备没有持有私钥即使截获了数据也无法对其进行解密获取到对称密钥服务器通过私钥对客户端发送的请求进行解密后使用这个对称密钥进行加密并返回响应后续双方使用对称密钥进行数据传输即可因为只有双方知道那么只使用非对称加密是否可以非对称加密对资源的占用多效率低所以我们使用非对称加密来加密对称密钥规避掉开销大的问题由于对称密钥已经到达对方 所以我们之后使用对称密钥加密也同样安全上述方案其实存在 致命缺陷 接下来我们介绍黑客如何进行攻击3、中间人攻击服务器可以生成公钥和私钥那么黑客也可以生成公钥和私钥流程客户端向服务器发起请求服务器明文传输公钥给客户端在传输过程中黑客截取服务器的数据报文并保存公钥将报文中的公钥改为自己的公钥并打包伪造发送给客户端客户端收到报文提取公钥并不知道公钥已经被替换自己形成对称密钥使用黑客的公钥进行加密形成报文并发送给服务器中间人劫持后使用自己的私钥进行解密再用之前保存的服务器公钥进行加密将报文发送给服务器服务器拿到报文用私钥进行解密双方开始使用对称密钥进行数据传输但中间人已经知道对称密钥对数据进行修改、窃取都可以那么我们如何应对中间人攻击4、引入证书数字证书SSL / CA 证书概念把某人 / 某网站的公钥盖上权威机构CA的公章证明这个公钥确实属于它不是伪造的证书中主要包含这些东西1、使用者域名/人名 2、它的公钥 3、有效期4、颁发机构 5、CA使用自己私钥做的签名核心流程在客户端和服务器进行连接时服务器给客户端返回一个证书这个证书包含了公钥也包含了网站信息那么黑客是否可以对 pub3 进行中间人攻击呢答案是不可以pub3 不是通过网络传输的而是操作系统内置的客户端会对证书的真实性进行验证客户端使用同样的算法计算校验和 check1客户端使用公证机构的公钥pub3对签名进行解密得到校验和 check2判断check1check2 如果相同证书有效三、总结流程客户端和服务器流程HTTPS工作过程涉及的密钥有三组非对称加密用于验证证书是否被篡改客户端持有公钥服务器持有私钥服务器使用这个私钥对证书的签名进行加密客户端通过公钥进行解密和校验是否有效非对称加密用于协商生成对称加密的密钥服务器生成公钥——私钥对通过证书传递公钥给客户端客户端使用公钥对对称密钥进行加密传输给服务器服务器通过私钥解密获取到对称密钥对称加密服务器和客户端后续的传输都使用这个对称密钥进行加密和解密
HTTPS的加密流程
目录一、HTTPS1、HTTPS 的概念2、“ 加密 ”是什么二、HTTPS 的工作过程1、引入对称加密2、引入非对称加密3、中间人攻击4、引入证书三、总结流程一、HTTPS1、HTTPS 的概念HTTPS HTTP 加密TLS / SSLHTTP 明文传输不安全容易被篡改、劫持、窃听HTTPS 也是一个应用层协议在HTTP的基础上用 SSL / TLS 协议加密通信可靠、完整、加密、可信运营商劫持情况比如我们在浏览器下载一系列软件时点击高速下载——会下载应用宝 / 乱七八糟的软件绝大多数就是运营商HTTP劫持HTTPS 运营商劫持不了2、“ 加密 ”是什么明文 要传输的原始数据加密将明文进行了一系列变换之后生成密文解密 将密文再进行一系列变换还原成明文加密和解密的过程中会使用到一个特殊的数据密钥二、HTTPS 的工作过程1、引入对称加密是通过同一个 密钥 把明文加密成密文把密文解密成明文一个简单的对称加密密钥 所有字母向后移动三位明文ABC加密DEF密文解密同样密钥向前移动3位密文变回明文ABC客户端 / 服务器生成一个密钥让对方也持有这个密钥客户端发送给服务器的数据就使用这个密钥进行加密服务器使用这个密钥对客户端发送的数据进行解密流程但服务器要处理很多不同客户端的请求必然不可能使用同一个密钥那么就可以让客户端随机生成一个对称密钥然后通过网络传输给服务器那么将密钥传输的过程有极大可能被黑客拦截那么我们再次使用对称加密吗显然肯定不行在嵌套的对称加密密钥还是会被窃取那么我们就需要引入非对称加密了2、引入非对称加密非对称加密要用到两个密钥一个 公钥 、一个 私钥 公钥和私钥是配对使用的最大缺点为运算速度慢比对称加密慢的多使用常规使用公钥加密私钥解密。也可以反着用服务器生成公钥和私钥然后将公钥发放出去客户端在本地生成对称密钥使用公钥对其进行加密发送给服务器由于中间网络设备没有持有私钥即使截获了数据也无法对其进行解密获取到对称密钥服务器通过私钥对客户端发送的请求进行解密后使用这个对称密钥进行加密并返回响应后续双方使用对称密钥进行数据传输即可因为只有双方知道那么只使用非对称加密是否可以非对称加密对资源的占用多效率低所以我们使用非对称加密来加密对称密钥规避掉开销大的问题由于对称密钥已经到达对方 所以我们之后使用对称密钥加密也同样安全上述方案其实存在 致命缺陷 接下来我们介绍黑客如何进行攻击3、中间人攻击服务器可以生成公钥和私钥那么黑客也可以生成公钥和私钥流程客户端向服务器发起请求服务器明文传输公钥给客户端在传输过程中黑客截取服务器的数据报文并保存公钥将报文中的公钥改为自己的公钥并打包伪造发送给客户端客户端收到报文提取公钥并不知道公钥已经被替换自己形成对称密钥使用黑客的公钥进行加密形成报文并发送给服务器中间人劫持后使用自己的私钥进行解密再用之前保存的服务器公钥进行加密将报文发送给服务器服务器拿到报文用私钥进行解密双方开始使用对称密钥进行数据传输但中间人已经知道对称密钥对数据进行修改、窃取都可以那么我们如何应对中间人攻击4、引入证书数字证书SSL / CA 证书概念把某人 / 某网站的公钥盖上权威机构CA的公章证明这个公钥确实属于它不是伪造的证书中主要包含这些东西1、使用者域名/人名 2、它的公钥 3、有效期4、颁发机构 5、CA使用自己私钥做的签名核心流程在客户端和服务器进行连接时服务器给客户端返回一个证书这个证书包含了公钥也包含了网站信息那么黑客是否可以对 pub3 进行中间人攻击呢答案是不可以pub3 不是通过网络传输的而是操作系统内置的客户端会对证书的真实性进行验证客户端使用同样的算法计算校验和 check1客户端使用公证机构的公钥pub3对签名进行解密得到校验和 check2判断check1check2 如果相同证书有效三、总结流程客户端和服务器流程HTTPS工作过程涉及的密钥有三组非对称加密用于验证证书是否被篡改客户端持有公钥服务器持有私钥服务器使用这个私钥对证书的签名进行加密客户端通过公钥进行解密和校验是否有效非对称加密用于协商生成对称加密的密钥服务器生成公钥——私钥对通过证书传递公钥给客户端客户端使用公钥对对称密钥进行加密传输给服务器服务器通过私钥解密获取到对称密钥对称加密服务器和客户端后续的传输都使用这个对称密钥进行加密和解密