一、啥是HTTPS
其实就是http协议,只不过http没有对传输报文加密,不安全,因此为了安全对报文做了加密,实现的方式就是在应用层再加上SSL协议来加密,这就是https
二、实现原理
那么双方的加密如何实现呢,目前的主流加密方式是对称加密和非对称加密,这两个有啥区别嘞?
1、对称加密:
- 加密和解密都是用同一个秘钥
- 速度快
- 管理和分配秘钥的时候不安全。
2、非对称加密:
- 公钥和私钥是成对的,它们互相解密。
- 公钥加密,私钥解密,或者公钥解密,私钥加密。
- 私钥数字签名,公钥验证。
- 安全
🆗,现在知道了吧,对称加密用一把钥匙,速度快,这个其实是比较理想的方案,但是问题就是不安全,因为在传输双方的公钥过程中可能会被中间人截获公钥并修改公钥,这样就可以掩人耳目的监听数据报文了。大家想想,本来就是要解决安全问题,这样一来那不就是脱裤子放屁吗,所以为了实现安全,还要保障高效开发者决定用非对称加密来加密对称公钥,发送给对方,对方就可以安全获得对称公钥,这样就可以保证后面的数据继续用对称加密/解密方式。
但是问题还是继续不断,如果现在有人偷偷把你的非对称公钥改了呢,你就不知道对方到底是原客户还是假客户,为了解决这个问题,又设立了CA(即certificate authority),现在CA 写了一封信,里面是原用户身份信息和原用户的非对称公钥,然后CA通过hash算法生成一个摘要(digest),并把它用私钥加密成数字签名,这个签名其实就是CA证书。
现在原用户只要给你发送报文时附上这个CA证书,再通过你CA公钥来解密证书,如果解开了证明的确是CA的认证,现在自己再通过hash算法获取CA的认证信的digest,如果digest和原来的digest一样,则证明CA证书没有被篡改,下面就可以安全地阅览CA证书地内容了。
如果身份信息的确是原用户的那么你就可以使用里面的原用户公钥来解密原用户的报文了。
本文参考:https://blog.csdn.net/gao131360144/article/details/80005278