上一章中我们学习了HTTP,这一章我们来学习一下HTTPS。
1. 为何引入HTTPS
HTTP看起来足够好了,为什么要使用HTTPS呢,原因是HTTP协议内容都是按照⽂本的⽅式明⽂传输的,这就导致在传输过程中出现⼀些被篡改的情况,例如:当我们登录微信时,对方能抓到我们的登录账号和密码,甚至能知道我们的支付密码,所以我们引入了HTTPS。
2. 什么是HTTPS
HTTPS也是⼀个应⽤层协议,是在HTTP协议的基础上引⼊了⼀个加密层TLS/SSL。
TLS/SSL协议流程:
- 客户端向服务器索要并验证服务器的公钥。
- 双方协商生产「会话秘钥」。
- 双方采用「会话秘钥」进行加密通信
前两步被称为TLS/SSL握手阶段。
经过TLS/SSL加密之后,就会将明文转化成密文,就能保证数据的安全性。
在网络传输中,通信双方都需要经过加密层TLS/SSL。
3. 加密和解密
3.1 基本过程
加密就是把明⽂(要传输的信息)进⾏⼀系列变换,⽣成密⽂,解密就是把密⽂再进⾏⼀系列变换,还原成明⽂。
在这个加密和解密的过程中,往往需要⼀个或者多个中间的数据,辅助进⾏这个过程,这样的数据称为,密钥
举个例子:比如我现在有明文a和密钥key,我想将a数据传给对方,但是不能通过明文方式,我们可以对a加密。加密的方案有很多,例如我们可以让a ^ key加密成密文,再把密文传递给对方,对方拿到a ^ key之后,再拿密钥就能进行解密了。
3.2 为什么要加密解密
因为http的内容是明⽂传输的,明⽂数据会经过路由器、wifi热点、通信服务运营商、代理服务器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传输的信息且不被双⽅察觉,这就是 中间⼈攻击 ,所以我们才需要对信息进⾏加密
例如:运营商劫持
我们想下载一个天天动听的软件,由于数据都是明文,运营商发现你要下载的是天天动听,直接给你改成了qq浏览器,用户在下载完之后才发现上当了。
不⽌运营商可以劫持,其他的⿊客也可以⽤类似的⼿段进⾏劫持,来窃取⽤⼾隐私信息,或者篡改内容。
在互联⽹上,明⽂传输是⽐较危险的事情!!!
3.3 常见加密方式
3.3.1 对称加密
- 采⽤单钥密码系统的加密⽅法,同⼀个密钥可以同时⽤作信息的加密和解密,这种加密⽅法称为对称加密,也称为单密钥加密,特征:加密和解密所⽤的密钥是相同的
- 常⻅对称加密算法(了解):DES、3DES、AES、TDEA、Blowfish、RC2等
- 特点:算法公开、计算量⼩、加密速度快、加密效率⾼
对称加密就是只有一个密钥,加密和解密都使用同一个密钥。前面举的例子,按位异或就是一个比较简单的对称加密方式。
3.3.2 非对称加密
- 需要两个密钥来进⾏加密和解密,这两个密钥是公开密钥(public key,简称公钥)和私有密钥(private key,简称私钥)。
- 常⻅⾮对称加密算法(了解):RSA,DSA,ECDSA
- 特点:算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,⽽使得加密解密速度没有对称加密解密的速度快。
- ⾮对称加密要⽤到两个密钥,⼀个叫做"公钥",⼀个叫做"私钥"。
- 公钥和私钥是配对的,最⼤的缺点就是运算速度⾮常慢,⽐对称加密要慢很多。
- 公钥和私钥的关系就像锁和钥匙&