SSL协议以及握手过程

SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等。

HTTPS将HTTP和SSL结合,即加了SSL隧道封装的HTTP,通过SSL对客户端身份和服务器进行验证,对传输的数据进行加密。不同情况下SSL的协商过程存在差异,本节以只验证服务器为例介绍。SSL的协商过程如图1所示。
图1 SSL协商过程 

1.客户端发送的第一条消息为ClientHello,其中包含了客户端所推荐的加密参数和准备使用的加密算法。
2.服务器以三条消息进行响应:
a.发送选择加密算法的ServerHello。
b.服务器发送携带自己公钥的Certificate消息。
c.服务器发送表示握手阶段不再有任何消息的ServerHelloDone。
3.客户端发送一条Client Key Exchange消息,将一个随机生成的使用服务器公钥加密的密钥发送给服务器。
4.Change Cipher Spec消息表示客户端在此之后发送的所有消息都将使用刚刚商定的密钥进行加密。
5.Finished消息包含了对整个连接过程的校验,是通过先计算已交互的握手消息的Hash值,再利用协商好的密钥对Hash值加密得到的。服务器利用同样地方法计算已交互的握手信息的Hash值与Finished消息解密结果比较,就能够判断要使用的加密算法是否是安全商定的。
6.一旦服务器接收到了客户端的Finished消息,它就会发送自己的Change Cipher Spec和Finished消息,于是连接就准备好进行应用数据的传输了。
SSL主要分为2个阶段:
服务器认证阶段:
1)客户端向服务器发送一个开始信息“Hello”以便开始一个新的会话连接;
2)服务器根据客户的信息确定是否需要生成新的主密钥,如需要则服务器在响应客户的“Hello”信息时将包含生成主密钥所需的信息;
3)客户根据收到的服务器响应信息,产生一个主密钥,并用服务器的公开密钥加密后传给服务器;
4)服务器回复该主密钥,并返回给客户一个用主密钥认证的信息,以此让客户认证服务器。
用户认证阶段:
在此之前,服务器已经通过了客户认证,这一阶段主要完成对客户的认证。经认证的服务器发送一个提问给客户,客户则返回(数字)签名后的提问和其公开密钥,从而向服务器提供认证。


  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值