SSL是安全套接层协议(Secure Socket Layer)的缩写。它能够为明文的TCP/IP协议(例如HTTP)提供以下安全服务:
- 认证收发方的身份,确认数据是由正确的发送方发送;
- 对收发过程中的数据进行加密,确保不被第三方(中间人)窃听;
- 对收发过程中的数据进行完整性校验,确保数据未受到非预期的篡改。
1. SSL工作原理
SSL同时使用了对称加密和非对称加密技术,以HTTPS为例,其大致工作原理及流程如下:
1. 用户浏览器发起连接请求。
2. 服务器发送其非对称公钥(服务器拥有非对称加密的公私钥对(即SSL证书),私钥始终存放于服务器,不会发出)。
3. 浏览器随机生成对称会话密钥,并使用服务器的非对称公钥对其进行加密。然后将其发送到服务器。
4. 服务器使用其非对称私钥解密获得浏览器对称会话密钥。这时双方都有了对称会话密钥,后续所有的数据传输也都使用这个对称会话密钥进行加密和解密,直到会话结束。新的会话会由浏览器随机生成新的对称会话密钥。