全球旧事资料 分类
SSLTLS学习
SSL概述
SSLSecureSocketLayer安全套接层。运行于两台PC或PC与SSL代理间的安全代理协议,其功能主要是1)加密,保护传输数据。2)认证,识别通信机器。其基于TCP协议,在协议栈中位于TCP与应用层协议间。SSL协议由握手协议和记录协议组成,握手协议对服务器进行认证,并确立用于保护数据传输的加密密钥,记录协议则用于传输数据。
SSL协议示意图
SSL握手协议
1客户端与服务器就一组用户保护数据的算法达成一致2客户端对服务器端进行认证3客户端与服务器确立一组加密算法所使用的机密密钥4握手可以选择对客户端进行认证
f握手过程如下:握手过程Clie
tHello客户端发送的第一条握手信息,提供客户端可以接受的参数。包括版本号、加密套件、压缩算法,同时发送一个随机数,用于密钥计算。最后还有一个Sessio
_id,用于恢复会话。SeverHello本次连接要使用的版本号、加密套件、压缩算法,及随机值、Sessio
_id。Certificate服务器证书,用户客户端认证服务器。SeverHelloDo
e空消息,表示服务器已发送完所有要发送的消息。Clie
tKeyExcha
ge客户端生成随机密码串,用服务器公钥加密后发送给服务器。Cha
geCipherSpec表示发送方已切换至新的算法和密钥。Fi
ish主密码与连接起来的握手信息的摘要,以确认所有握手消息未被篡改。服务器端发送CCS、Fi
ish报文,握手完成。
握手过程密钥计算简介:使用PRF密码导出函数,利用随机密码串、客户端随机值、服务器端密钥计算随机值生成密码串master_secret;再继续使用PRF密码导出函数,利用密码串、客户端服务器端随机值生成密码组。会话恢复:会话恢复1)客户端与服务器第一次交换时,建立一个新的会话和连接;2)服务器和客户端缓存sessio
_id和master_secret3)客户端再建连接时使用缓存的sessio
_id发起握手;4)服务器若使用相同的sessio
_id表示同意恢复会话,直接使用原有master_secret和新的随机值计算新的密钥组;若服务器缓存不够或原有缓存会话已超时,则在SeverHello中使用新的sessio
_id,这样客户端与服务器将进行完整的握手过程。客户端认证:客户端认证:通过客户端验证,服务器可对某些授权客户端才能存取的服务进行限制。核心思想是使用客户端私有密钥对某些内容进行签名,这样就可以证明他拥有与数字签名相对应的私有密钥。加入客户端认证报文后,握手过程如下:其中蓝色信息即新添加的报文。
f带客户端认证的握手过程CertificateRequest服务器发送此信息指示客户端进行客户端认证;Certificate客户端数字证r
好听全球资料 返回顶部