目录
1.数据的加密
1.1对称加密
1.2非对称加密
2.数据指纹
2.1数据指纹实际的应用
3.数据加密的方式
3.1只使用对称加密
3.2只使用非对称加密
3.3双方都使用对称加密
3.4非对称加密和对称加密一起使用
4.中间人攻击
5.CA证书
5.1什么是CA证书
CA证书的验证
6.https的原理
1.数据的加密
什么是加密?什么是解密?
加密就是将明文通过密钥加密变成密文。
解密就是通过密钥将密文解密变成明文。
1.1对称加密
对称加密就是加密和解密都是用的同一份密钥。
特点:计算速度快,计算量小,加密效率高,算法公开。
1.2非对称加密
非对称加密就是使用两个密钥公钥(公开的密钥)和私钥(不公开的密钥),可以一个用来加密,另一个密钥进行解密。
可以通过公钥加密变成密文,用私钥解密变成明文。也可以反着用。
特点:算法复杂,加密速度慢。
2.数据指纹
数据指纹或者叫数据摘要,对数据进行唯一的标识,假如有一段文本数据,通过哈希算法将这段文本数据进行映射成一个 定长的字符串,这个字符串就是这段文本数据的“指纹”,也就是说如果这段文章被人修改了,哈希算法映射的字符串会发生很大的改变,就可以知道这段文章是否被人修改过。
2.1数据指纹实际的应用
百度网盘的秒传机制
我们向百度网盘传输数据的时候,首先会在自己的电脑上,使用哈希算法映射出一个唯一的数据指纹,百度网盘回拿着生成数据指纹去搜索,如果搜索到了,说明已经有其他用户上传过这个数据了,你想要上传的这个数据在百度网盘的服务器中已经存在了,也就不需要重复上传了。
3.数据加密的方式
3.1只使用对称加密
这时候问题就出现了,客户端向服务器发送了一个密文数据,但是服务器并不知道密钥啊,无法对密文进行解析,所以这种方式是一定不行的。
3.2只使用非对称加密
看似客户端向服务器发送数据是安全的,实则不然。
每次加请求都是用非对称加密会很慢的。
3.3双方都使用对称加密
看似客户端和服务器发送数据都是安全的,实则不然。
只有一方使用对称加密都够慢的了,更别说双发都用了,直接淘汰。
3.4非对称加密和对称加密一起使用
这种方式看似又安全又快,实则不然。
4.中间人攻击
上面四种方法到底不安全到哪里呢?
直接将看似最完美的非对称和对称加密一起用的方式推翻,其他的方式也自然不攻自破了。
首先毋庸置疑,数据传输的过程中都要进行数据的路由与转发,问题就出现在这里。
中间人攻击的核心就是,服务器第一次返回的公钥进行偷梁换柱。
5.CA证书
5.1什么是CA证书
中间人攻击最主要的就是没有办法去甄别客户端收到的公钥是否是被篡改过了,解决了这个问题,自然就解决了中间人攻击。https引入了CA证书解决去解决这个问题,CA证书是需要去CA认证的机构去申请的。
申请的时候需要提供公司的信息,网站的域名,申请人,最重要的服务器的公钥。
CA证书主要构成,一段明文数据 + 签名(对数据指纹进行加密)。
签名:就是对这段明文数据描述的数据指纹进行了加密。
加密是用的是CA机构的私钥加密。
CA证书的验证
如果中间人对公钥进行了修改,数据指纹会对不上的。
如果对签名进行修改,那么AC公钥将无法解析,因为只有是AC机构私钥的加密,才能被浏览器进行解析。
6.https的原理
那么https的原理就很好理解的,我们在方案4的情况下,服务器向客户端返回的不是公钥而是,证书。