Open super-fool opened 3 years ago
这里我们需要补一个知识 , 加密算法 , 对称加密 和 非对称加密 的概念 , 简单的说 , 对称加密就是加密和解密都使用同一个密码 , 非对称加密就是加密和解密使用不同的密码 , 这里就有公钥和私钥的区分了 , 私钥加密的数据能用公钥解密 , 公钥加密的数据能用私钥解密 , 但是公钥加密的数据公钥不能解密 , 所以在算法的区别上 , 非对称加密的方式在性能上不如对称加密 .
讲回重点 , SSL加密传输数据的核心原理 , 核心是在ssl握手建立ssl连接阶段,客户端请求服务端请求建立ssl连接,第一个请求数据包采用明文传输,携带客户端使用的ssl协议版本,支持的加密套件,还有一个随机数等等参数,服务端收到消息后也采用明文传输回复一个数据包,携带确定ssl版本,加密套件,随机数等等参数,并且发送Ca域名证书给客户端,服务器的ca域名证书是ca机构根据ca证书的私钥加密生成的,所以客户端可以使用操作系统内置的ca证书的公钥进行解密,能够解密就算是信任了证书确实是ca机构颁发的,所以不担心证书被非法篡改,信任了证书没被篡改后,通过解密服务器证书获得的服务器的IP,域名等等信息进行判断服务端的真实性,并且从服务器证书中获得了服务器证书公钥,客户端使用服务端的随机数+自己的第一个包传递的随机数来重新生成一个字符串作为通信加密的对称加密密钥,并且使用服务器证书的公钥进行加密传输给服务端,客户端是使用公钥加密的,只有服务端可以使用私钥解密后得到通信加密使用的对称加密密钥,然后客户端和服务端会再次各发出一个使用对称加密后的数据包,双方都能解密,则完成了ssl连接的建立,并且双方都拿到了对称加密的密钥,后续的通讯传输都加密解密就行了
http 明文传输数据
https 加密文本传输, 通过加密算法将数据打乱(不可读)来传输
SSL就是https的s, 位于安全套接层. 使用公钥来加密, 公钥存放于服务器中, 当浏览器访问HTTPs网页时, 会先去服务器读取证书, 获取完后在请求服务器发送数据.
TLS transport layer security, 运输层安全, 是最新的行业标准加密协议. 是SSL的继承者, 有着相同的规范.
非对称加密特点:
参考: https://www.bilibili.com/video/BV1j7411H7vV/?spm_id_from=333.788.recommend_more_video.0