1、Https采用混合加密过程
Https加密分为建立连接前的连接阶段,和建立连接后的通信阶段。
在连接阶段,Https采用非对称加密方式进行连接,公钥加密,私钥解密
2、Https通过摘要算法和数字签名
为了保证数据传输的安全性,发送方==>根据内容计算出一个指纹,和内容一起发送, 接收方===>根据内容生成一个指纹,然后根据指纹进行比对。若不一样,内容则被修改过。
指纹的实现就是通过摘要算法实现的。 摘要算法计算内容的哈希值,这个哈希值是唯一的,而且不能通过哈希值反推内容。
==========>但是并不能证明发送方的内容是客户端发送的,有可能恶意攻击,为了证明指纹是客户端的,
==========>采用非对称加密算法,一个公钥,一个是私钥。公钥和私钥是双向加解密的,
若是公钥加密,私钥解密====》保证传输内容的安全性,只有持有私钥的人才能解密出内容
若是私钥加密,公钥解密====》保证消息不会被冒充,只有持有私钥的人才能对内容生成指纹
数字签名算法辨识采用私钥加密内容的哈希值,公钥解密。
3、数字证书
摘要算法保证和数据的完整性
数字签名保证消息来源的可靠性
但是还是缺少身份认证的环节,有可能伪造出一对 公钥私钥,当进行私钥加密,公钥解密的时候,用自己的私钥做成数字签名。
====》既然公钥私钥可以 成对伪造,那就把公钥向权威机构进行校验合法性,如果公钥能解密数字证书,那就是真的公钥
Https建立连接的流程是在三次握手之后,再加上一次SSL校验
SSL协议基本流程:
客户端向服务器索要并验证服务器的公钥
双方协商生产会话秘钥
双方使用回话密钥进行加密通信
详细流程:
随机数,客户端支持的密码套件列表随机数,服务端确认密码套件列表,服务端数字证书随机数,发送给服务端; 加密通信算法改变通知,表示后续的信息将用私钥通信。有了这三个随机数,客户端和服务端使用双方协商的算法,各自生成本次会话的秘钥
数字证书的生成过程;
首先CA会将持有者的公钥、信息、有效时间等信息打成一个包,然后对这些信息进行Hash计算,得到一个Hash值
CA使用自己的私钥将Hash值加密,生成数字签名
最后将数字签名添加在文件证书上,形成数字证书
客户端校验数字证书: