ssl算法和tls算法的关系
在我的理解中ssl算法属于是tls算法的父亲,但是由于tls算法比ssl算法优秀很多,所以说现在基本上都使用tls算法,而tls算法的使用情景和我们的日常生活息息相关,比如http协议和https协议,这两个协议的根本区别是http协议采用明文传输,而https协议采用了tls加密算法,采用公钥,私钥,会话秘钥进行加密(公钥/私钥对用于非对称加密,主要用于密钥交换;会话密钥用于对称加密,用于实际的数据传输。),还有vpn协议,也是采用了tls加密。
加密算法产生的背景
在http协议中,我们的报文都是明文传输,这样就会导致黑客很容易就得到报文数据,并且可能对报文数据进行篡改,使得我们的聊天非常不安全
而有了https协议以后,就会在应用层对数据进行加密,使得黑客就算得到数据以后还是没办法看懂报文是什么,但是如果只是单纯的加密的话,可能黑客还会将数据进行篡改,使得数据失效
TLS算法讲解
首先是TCP的三次握手,然后,客户端向服务器发送支持的tls版本的加密算法,当服务端得到对应的报文以后,返回所要的tls版本和加密算法,然后再将自己的ca证书发送给客户端,然后客户端判断ca证书的真实性(验证证书的指纹和签名),然后系统中的ca公钥提取出证书中的服务器公钥,然后客户端生成预主秘钥利用服务器公钥加密后发送给服务端,服务端利用服务端私钥解密得到预主秘钥,然后此时就利用这个预主秘钥(也就是会话秘钥)进行后面的数据加密传输。