SSL工作原理( 六 )


& 说明:
l Change Cipher Spec消息属于SSL密码变化协议 , 其他握手过程交互的消息均属于SSL握手协议 , 统称为SSL握手消息 。
l 计算Hash值 , 指的是利用Hash算法(MD5或SHA)将任意长度的数据转换为固定长度的数据 。
 
3.2.2 验证服务器和客户端的SSL握手过程

SSL工作原理

文章插图
 
图6 验证服务器和客户端的SSL握手过程
SSL客户端的身份验证是可选的 , 由SSL服务器决定是否验证SSL客户端的身份 。如图6中蓝色部分标识的内容所示 , 如果SSL服务器验证SSL客户端身份 , 则SSL服务器和SSL客户端除了交互“3.2.1 只验证服务器的SSL握手过程”中的消息协商密钥和加密套件外 , 还需要进行以下操作:
(1) SSL服务器发送Certificate Request消息 , 请求SSL客户端将其证书发送给SSL服务器 。
(2) SSL客户端通过Certificate消息将携带自己公钥的证书发送给SSL服务器 。SSL服务器验证该证书的合法性 。
(3) SSL客户端计算已交互的握手消息、主密钥的Hash值 , 利用自己的私钥对其进行加密 , 并通过Certificate Verify消息发送给SSL服务器 。
(4) SSL服务器计算已交互的握手消息、主密钥的Hash值 , 利用SSL客户端证书中的公钥解密Certificate Verify消息 , 并将解密结果与计算出的Hash值比较 。如果二者相同 , 则SSL客户端身份验证成功 。
3.2.3 恢复原有会话的SSL握手过程
SSL工作原理

文章插图
 
图7 恢复原有会话的SSL握手过程
协商会话参数、建立会话的过程中 , 需要使用非对称密钥算法来加密密钥、验证通信对端的身份 , 计算量较大 , 占用了大量的系统资源 。为了简化SSL握手过程 , SSL允许重用已经协商过的会话 , 具体过程为:
(1) SSL客户端发送Client Hello消息 , 消息中的会话ID设置为计划重用的会话的ID 。
(2) SSL服务器如果允许重用该会话 , 则通过在Server Hello消息中设置相同的会话ID来应答 。这样 , SSL客户端和SSL服务器就可以利用原有会话的密钥和加密套件 , 不必重新协商 。
(3) SSL客户端发送Change Cipher Spec消息 , 通知SSL服务器后续报文将采用原有会话的密钥和加密套件进行加密和MAC计算 。
(4) SSL客户端计算已交互的握手消息的Hash值 , 利用原有会话的密钥和加密套件处理Hash值 , 并通过Finished消息发送给SSL服务器 , 以便SSL服务器判断密钥和加密套件是否正确 。
(5) 同样地 , SSL服务器发送Change Cipher Spec消息 , 通知SSL客户端后续报文将采用原有会话的密钥和加密套件进行加密和MAC计算 。
(6) SSL服务器计算已交互的握手消息的Hash值 , 利用原有会话的密钥和加密套件处理Hash值 , 并通过Finished消息发送给SSL客户端 , 以便SSL客户端判断密钥和加密套件是否正确 。
4 典型组网应用4.1 HTTPSHTTPS是基于SSL安全连接的HTTP协议 。HTTPS通过SSL提供的数据加密、身份验证和消息完整性验证等安全机制 , 为Web访问提供了安全性保证 , 广泛应用于网上银行、电子商务等领域 。
图8为HTTPS在网上银行中的应用 。某银行为了方便客户 , 提供了网上银行业务 , 客户可以通过访问银行的Web服务器进行帐户查询、转帐等 。通过在客户和银行的Web服务器之间建立SSL连接 , 可以保证客户的信息不被非法窃取 。
SSL工作原理

文章插图
 
图8 HTTPS在网上银行中的应用
4.2 SSL VPNSSL VPN是以SSL为基础的VPN技术 , 利用SSL提供的安全机制 , 为用户远程访问公司内部网络提供了安全保证 。如图9所示 , SSL VPN通过在远程接入用户和SSL VPN网关之间建立SSL安全连接 , 允许用户通过各种Web浏览器 , 各种网络接入方式 , 在任何地方远程访问企业网络资源 , 并能够保证企业网络的安全 , 保护企业内部信息不被窃取 。
SSL工作原理

文章插图
 
图9 SSL VPN的典型组网环境




推荐阅读