SSL(Secure Socket Layer)安全套接字协议是运行在应用层和TCP层之间的安全机制。保证上层应用数据传输的保密性、完整性以及传输双发身份的合法性。
SSL协议包括:握手协议(Handshake protocol)、SSLpassword变化协议(SSL change cipher spec protocol)、警报协议(Alert protocol)、记录协议(Record protocol)。
握手协议是SSL连接通信的第一个子协议也是最复杂的协议。
SSL分层结构
通过握手过程,客户端与服务端之间协商会话参数(包括相互验证、协商加密和MAC算法、生成会话密钥等)。
SSL握手协议过程
第一阶段:建立安全能力
客户端-client_hello:
服务端-server_hello:
第二阶段:服务端验证和密钥交换
服务端-certificate:
服务端-server_key_exchange:
服务端-certificate_request:
服务端-server_hello_done:
第三阶段:客户端验证和密钥交换
客户端-certificate:
客户端-client_key_exchange:
客户端-certificate_verify:
第四阶段:完成
客户端-change_cipher_spec:
客户端-finished:
服务端-change_cipher_spec:
服务端-finished: