HTTPS的安全性是如何保证的
保证安全需要做到哪些点?
1. 不能让第三方获取到明文消息
这一点可以有两种方式保证,对称加密和非对称加密。
1.1对称加密:指的就是加密和解密使用同一个秘钥
优点:算法公开、计算量小、加密速度快、加密效率高。
缺点:秘钥的管理和分发非常困难,不够安全。
1.2非对称加密:使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密
非对称加密要符合这三条性质:
①公钥和私钥都可作为加密或解密的一方。
②一方加密后,只有另一方可以解密,加密方不能解密。
③公钥不能推导出私钥,至少在数学理论上不能。
优点:安全性更高,公钥是公开的,秘钥是自己保存的,不需要将私钥给别人。
缺点:加密和解密花费时间长、速度慢,只适合对少量数据进行加密。
1.2.1公钥和私钥的生成(RSA算法)(这只是其中一种算法)
1.2.2非对称加密应用流程
2. 保证接收方收到的消息传输过程中没有被修改
这点可以用摘要算法保证。
2.1 摘要算法的作用
虽然老王不能获取消息,但是老王可以拿到密文后修改密文,在发给小刘。这个时候就需要将消息先进行加密算法,然后将消息和摘要消息1用公钥加密发送给小刘,小刘收到后用私钥解密,然后再用相同的摘要算法算出摘要消息2,摘要消息1和2对比,相同的话就说明没有被篡改。
2.2具体流程
读者们是否有这样的疑问,如果加密算法被老王知道了,那不是也能修改?其实是不能的,因为老王是没有私钥的,他是不能解密出消息的,所以也就不能清楚的区分消息与摘要消息。
3. 确保接收到的消息是指定发送方发送过来的
这一点能用数字证书保证。
3.1问题描述
看了上面的消息传输方法,其实还不是很安全。在第二步小张收到的公钥其实是不能保证是小刘发过来的,也就是公钥有可能被替换掉。这个时候就需要数字证书了。
发送公钥的一方需要提前向CA(数字证书认证)机构认证数字证书。
3.2 认证流程
3.3发送消息流程
如果数字证书不正确,会有类似这样的提示
总结
- 非对称加密的方式实现信息的机密性,解决了窃听的风险。但实际HTTPS中非对称加密只是在连接建立初期用来生成对称加密秘钥的,生成之后双方用此秘钥进行对称加密传输消息,毕竟非对称加密开销太大。
- 摘要算法的方式来实现完整性,它能够为数据生成独一无二的「指纹」,指纹用于校验数据的完
整性,解决了篡改的风险。 - 将服务器公钥放入到数字证书中,解决了冒充的风险。