美文网首页
SSL交互(握手)过程详解

SSL交互(握手)过程详解

作者: VincentHK | 来源:发表于2018-04-20 17:46 被阅读0次

原文:http://www.cpplive.com/html/1387.html

普通的TCP通信无法保证数据的安全,它随时可能被第三方截获而泄漏通信双方之间的隐私,这显然是我们不希望看到的,尤其在跟用户名、密码、个人信息息息相关的通信过程(如网上银行交易、机密文件传输等等)尤其看重数据交互的隐秘性,所以我们常常用SSL协议来建立安全保密的通信,SSL协议能够保证交互双方的数据按密文方式传输,第三方在没有私钥的情况下几乎无法破解,从而到达保密的目的。究竟SSL是如何交互数据来确保安全的,很多人却不得而知,为了解答大家的疑惑,这里详细介绍一下SSL的交互过程。

1、建立TCP连接

由于SSL协议依赖于TCP连接实施,所以在SSL交互之前需要先建立TCP连接。客户端connect服务端,服务端acccept客户端,经历三次握手以后TCP连接建立。

2、客户端发送SSL请求

客户端(Client)向服务端(Server)发送自身使用的SSL版本(SSL一共有三个版本)、加密算法的相关配置、随机数据以及其在在SSL协议中需要用到的信息。

3、服务端处理SSL请求

服务器(Server)反馈给客户端(Client)自己的SSL版本、加密算法的相关配置、随机数据以及用自己的私有密钥加密的SERVER-HELLO信息。服务端(Server)紧接着将自己的证书(包含公共密钥)传递过去。同时有个可选项目,即服务端(Server)可以要求客服端(Client)发送自己的证书。
4、客户端验证服务端身份

客服端(Client)用服务端(Server)传递过来证书验证服务端(Server)的身份,如果身份未验证通过则结束本次通信。证书验证通过后利用服务端(Server)的公共密钥尝试解开被其用私有密钥加密过的SERVER-HELLO信息,如果解开失败,说明该SERVER-HELLO必然是假的,故结束本次通信。

5、客户端发送公共密钥加密过的随机数据

客户端端(Client)生成随机数据(sharedsecret),并且把这个随机数据用服务端(Server)发送过来的的公共密钥加密,此次加密过程产生本次握手中的premastersecret(这个步骤是有可能有服务端的参与的,具体情况由他们使用的加密算法决定),然后将它(premastersecret)送回给服务端(Server)。如果服务端(Server)要求需要验证客户端(Client),那么客服端(Client)也需要自己把自己的证书(包含公共密钥)传递过去,同时送一些自己签过名(私有密钥加密)的数据过去。

6、服务端用私有密钥解密加密后的随机数据并协商暗号

Server验证完client的身份之后,然后用自己的私有密钥解密得到premastersecret然后双方利用这个premastersecret来共同协商,得到mastersecret(可理解为premastersecret为双方协商的暗号,然后使用这个暗号再协商一个mastersecret用来产生真正的会话密钥用来传输数据)以此来保证数据的决对安全。

7、服务端跟客户端利用暗号生成加密算法跟密钥key

双方用mastersecret一起产生真正的sessionkey,这将是一个对称加密的key。这个key还可以用来验证数据完整性。双方再交换结束信息。握手结束。

接下来双方就可以用协商好的算法和密钥key,采用对称加密算法来通信了。

相关文章

  • SSL交互(握手)过程详解

    原文:http://www.cpplive.com/html/1387.html 普通的TCP通信无法保证数据的安...

  • SSL/TLS握手协议

    根据理解整理的握手协议原理图如下: 参考文章:SSL/TLS协议详解SSL / TLS 工作原理和详细握手过程SS...

  • SSL握手过程详解

    准备工作 【文档】对于一个协议来说,官方的RFC(Request for Comments)是最权威的。如果想要精...

  • TLS/SSL握手过程

    1、握手与密钥协商过程基于RSA握手和密钥交换的客户端验证服务器为示例详解TLS/SSL握手过程。 (1).cli...

  • SSL/TLS 握手过程详解

    我们知道,HTTP 协议都是明文传输内容,在早期只展示静态内容时没有问题。伴随着互联网的快速发展,人们对于网络传输...

  • https握手

    HTTPS SSL握手过程 图解SSL/TLS协议ssl握手过程 用户发起一个请求到服务器,浏览器将自己支持的一套...

  • SSL证书工作原理

    SSL握手 证书主要作用是在SSL握手中,我们来看一下SSL的握手过程 客户端向网站发起https请求 服务器响应...

  • 什么是SSL/TLS握手

    TLS的工作原理–前所未有的简化了SSL / TLS握手过程 伴随所有握手,SSL / TLS握手是一切开始的地方...

  • Moya,KingFisher中使用自签名证书发起HTTPS请求

    HTTPS握手 先说声https握手,发送 HTTPS 请求首先要进行 SSL/TLS 握手,握手过程大致如下: ...

  • 阿里云环境中TLS/SSL握手失败的场景分析

    TLS/SSL握手是一个相对复杂的过程,在阿里云环境中结合产品,安全等特性,可能会让TLS/SSL握手过程的不定性...

网友评论

      本文标题:SSL交互(握手)过程详解

      本文链接:https://www.haomeiwen.com/subject/qkezkftx.html