所选语种没有对应资源,请选择:

本站点使用Cookies,继续浏览表示您同意我们使用Cookies。Cookies和隐私政策>

提示

尊敬的用户,您的IE浏览器版本过低,为获取更好的浏览体验,请升级您的IE浏览器。

升级

NE20E-S V800R010C10SPC500 特性描述 - 基础配置 01

本文档是NE20E-S V800R010C10SPC500 特性描述 - 基础配置
评分并提供意见反馈 :
华为采用机器翻译与人工审校相结合的方式将此文档翻译成不同语言,希望能帮助您更容易理解此文档的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 华为对于翻译的准确性不承担任何责任,并建议您参考英文文档(已提供链接)。
SSL

SSL

协议工作过程

  • SSL协议结构

    图5-1所示,SSL位于应用层和传输层之间,它可以为任何基于TCP等可靠连接的应用层协议提供安全性保证。SSL协议分为两层:底层是SSL记录协议(SSL record protocol);上层是SSL握手协议(SSL handshake protocol)、SSL修改密码协议(SSL change cipher spec protocol)和SSL告警协议(SSL alert protocol)。

    图5-1 SSL协议栈
    • SSL记录协议:主要负责对上层的数据进行分块、计算并添加MAC、加密,最后把记录块传输给对方。
    • SSL握手协议:是SSL协议非常重要的组成部分,用来协商通信过程中使用的加密套件(对称加密算法、密钥交换算法和MAC算法等)、在服务器和客户端之间安全地交换密钥,实现服务器和客户端的身份验证。客户端和服务器通过握手协议建立一个会话,会话包含一组参数,主要有会话ID、对方的证书、加密套件(包括密钥交换算法、数据加密算法和MAC算法)及主密钥。
    • SSL密码变化协议:客户端和服务器端通过密码变化协议通知接收方,随后的报文都将使用新协商的加密套件和密钥进行保护和传输。
    • SSL警告协议:用来允许一方向另一方报告告警信息。消息中包含告警的严重级别和描述。
  • SSL握手过程

    SSL通过握手过程在客户端和服务器之间协商会话参数,并建立会话。会话包含的主要参数有会话ID、对方的证书、加密套件(密钥交换算法、数据加密算法和MAC算法等)以及主密钥。通过SSL会话传输的数据,都将采用该会话的主密钥和加密套件进行加密、计算MAC等处理。

    不同情况下,SSL握手过程存在差异。下面将分别描述以下三种情况下的握手过程:

    • 只验证服务器的SSL握手过程

      图5-2 只验证服务器的SSL握手过程示意图
      图5-2所示,只需要验证SSL服务器身份,不需要验证SSL客户端身份时,SSL的握手过程如下:
      1. SSL客户端通过Client Hello消息将它支持的SSL版本、加密算法、密钥交换算法、MAC算法等信息发送给SSL服务器。
      2. SSL服务器确定本次通信采用的SSL版本和加密套件,并通过Server Hello消息通知给SSL客户端。如果SSL服务器允许SSL客户端在以后的通信中重用本次会话,则SSL服务器会为本次会话分配会话ID,并通过Server Hello消息发送给SSL客户端。
      3. SSL服务器将携带自己公钥信息的数字证书通过Certificate消息发送给SSL客户端。
      4. SSL服务器发送Server Hello Done消息,通知SSL客户端版本和加密套件协商结束,开始进行密钥交换。
      5. SSL客户端验证SSL服务器的证书合法后,利用证书中的公钥加密SSL客户端随机生成的密钥,并通过Client Key Exchange消息发送给SSL服务器。
      6. SSL客户端发送Change Cipher Spec消息,通知SSL服务器后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。
      7. SSL客户端计算已交互的握手消息(除Change Cipher Spec消息外所有已交互的消息)的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL服务器。SSL服务器利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。
      8. 同样地,SSL服务器发送Change Cipher Spec消息,通知SSL客户端后续报文将采用协商好的密钥和加密套件进行加密和MAC计算。
      9. SSL服务器计算已交互的握手消息的Hash值,利用协商好的密钥和加密套件处理Hash值(计算并添加MAC值、加密等),并通过Finished消息发送给SSL客户端。SSL客户端利用同样的方法计算已交互的握手消息的Hash值,并与Finished消息的解密结果比较,如果二者相同,且MAC值验证成功,则证明密钥和加密套件协商成功。

      SSL客户端接收到SSL服务器发送的Finished消息后,如果解密成功,则可以判断SSL服务器是数字证书的拥有者,即SSL服务器身份验证成功。因为只有拥有私钥的SSL服务器才能从Client Key Exchange消息中解密得到密钥,从而间接地实现了SSL客户端对SSL服务器的身份验证。

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

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

      图5-4 恢复原有会话的SSL握手过程示意图
      协商会话参数、建立会话的过程中,需要使用非对称密钥算法来加密密钥、验证通信对端的身份,计算量较大,占用了大量的系统资源。为了简化SSL握手过程,SSL允许重用已经协商过的会话,如图5-4所示,具体过程如下:
      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客户端判断密钥和加密套件是否正确。

协议安全机制

  • 连接的私密性

    SSL利用对称加密算法对传输数据进行加密,并利用密钥交换算法—RSA(Rivest Shamir and Adleman,非对称密钥算法的一种)加密传输对称密钥算法中使用的密钥。

    说明:

    为了保证更好的安全性,建议不要使用小于2048位的RSA密钥对。

  • 身份验证机制

    基于证书利用数字签名方法对服务器和客户端进行身份验证,其中客户端的身份验证是可选的。SSL服务器和客户端通过PKI(Public Key Infrastructure,公钥基础设施)提供的机制从CA(Certificate Authority,认证机构)获取证书。

  • 内容的可靠性

    消息传输过程中使用基于密钥的MAC(Message Authentication Code,消息验证码)来检验消息的完整性。

    MAC算法是将密钥和任意长度的数据转换为固定长度数据的一种算法。

    • 发送端在密钥参与下,利用MAC算法计算出消息的MAC值,并将其加在消息之后发送给接收端。
    • 接收端利用同样的密钥和MAC算法计算出消息的MAC值,并与接收到的MAC值比较。

    如果二者相同,则报文没有改变。否则,报文在传输过程中被修改,接收端将丢弃该报文。

翻译
下载文档
更新时间:2019-01-03

文档编号:EDOC1100055318

浏览量:427

下载量:32

平均得分:
本文档适用于这些产品
相关文档
相关版本
Share
上一页 下一页