什么是SSL?
SSL 代表安全套接字层。它是一种用于加密和验证应用程序(如浏览器)和 Web 服务器之间发送的数据的协议。 身份验证 , 加密 Https 的加密机制是一种共享密钥加密和公开密钥加密并用的混合加密机制。
SSL/TLS 协议作用:认证用户和服务,加密数据,维护数据的完整性的应用层协议加密和解密需要两个不同的密钥,故被称为非对称加密;加密和解密都使用同一个密钥的对称加密。优点在于加密、解密效率通常比较高 HTTPS 是基于非对称加密的, 公钥是公开的,
(1)客户端向服务器端发起 SSL 连接请求;
(2) 服务器把公钥发送给客户端,并且服务器端保存着唯一的私钥;
(3)客户端用公钥对双方通信的对称秘钥进行加密,并发送给服务器端;
(4)服务器利用自己唯一的私钥对客户端发来的对称秘钥进行解密;
(5)进行数据传输,服务器和客户端双方用公有的相同的对称秘钥对数据进行加密解密,可以保证在数据收发过程中的安全,即是第三方获得数据包,也无法对其进行加密,解密和篡改。
因为数字签名、摘要是证书防伪非常关键的武器。 “摘要”就是对传输的内容,通过 hash算法计算出一段固定长度的串。然后,在通过 CA 的私钥对这段摘要进行加密,加密后得到的结果就是“数字签名”
SSL/TLS 协议的基本思路是采用公钥加密法,也就是说,客户端先向服务器端索要公钥,然后用公钥加密信息,服务器收到密文后,用自己的私钥解密。
如何保证公钥不被篡改?
将公钥放在数字证书中。只要证书是可信的,公钥就是可信的。
公钥加密计算量太大,如何减少耗用的时间?
每一次对话(session),客户端和服务器端都生成一个”对话密钥”(session key),用它来加密信息。由于”对话密钥”是对称加密,所以运算速度非常快,而服务器公钥只用于加密”对话密钥”本身,这样就减少了加密运算的消耗时间。
(1)客户端向服务器端索要并验证公钥。
(2)双方协商生成”对话密钥”。
(3)双方采用”对话密钥”进行加密通信。上面过程的前两步,又称为”握手阶段”(handshake)。
《计算机网络》书本:
SSL 工作过程,A:客户端,B:服务器端
1.协商加密算法:A 向 B 发送 SSL 版本号和可选加密算法,B 选择自己支持的算法并告知 A
2.服务器鉴别:B 向 A 发送包含公钥的数字证书,A 使用 CA 公开发布的公钥对证书进行验证
3.会话密钥计算:A 产生一个随机秘密数,用 B 的公钥进行加密后发送给 B,B 根据协商的算法产生共享的对称会话密钥并发送给 A.
4.安全数据传输:双方用会话密钥加密和解密它们之间传送的数据并验证其完整性