SSL通信handshake过程

SSL协议

SSL(Secure Sockets Layer 安全套接层)是网络通信提供安全及数据完整性的一种安全协议。SSL协议为NetScape所研发,用以保障在Internet上数据传输的的安全,利用数据加密技术可确保数据在网上的传输过程不会被拦截窃听。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通信提供安全支出。SSL协议可分为两层:SSL记录协议(SSL Record Protocol)和SSL握手协议。SSL记录协议建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能支持。而SSL握手协议则建立在SSL记录协议之上,用于在实际的数据传输开始前,通信双方进行身份认证、协商加密算法、交换加密密钥等操作。
SSL协议提供的主要服务有:
1、认证用户和服务器,保证数据发送到正确的客户端和服务器;
2、加密数据以防止数据中途被窃取;
3、维护数据的完整性,确保数据在传输过程中不被改变。

SSL协议handshake过程

下图为SSL协议的hanshake过程,其过程大体可以分为四个阶段:
1、客户端请求建立SSL连接,首先客户端生成一个随机数RNc,并将其与客户端支持的加密算法信息发送给服务器端;随后,服务器端回复客户端的建立请求,生成一个随机数RNs,并将其与服务器端支持的加密算法信息回复给客户端。
2、服务器端向客户端发送服务器证书(包含着服务器的公钥)并请求客户端发送其对应的证书。客户端接受到服务器的证书后,会验证服务器证书的合法性。
3、客户端验证服务器证书的合法性通过后,客户端会向服务器提交自己的客户端证书,服务器也会对客户端的证书进行验证。随后客户端会将此前收到的信息进行hash处理,并且用自己的私钥进行加密后发送给服务器端。服务器端收到相应的信息后,会用客户端的公钥解密检查hash和签名。验证通过后,客户端会随机生成一个临时的对称加密密钥PMS,并用服务器的公钥加密后发送给服务器端。最后双方根据此前生成的RNc、RNs和PMS计算得出真正的对称加密密钥MS。
4、随后双方建立起以对称加密密钥MS为key的安全加密连接开始通信,并且结束SSL的handshake过程。


SSL通信handshake过程_第1张图片
SSL协议handshake过程

你可能感兴趣的:(SSL通信handshake过程)