美文网首页
Https连接建立过程

Https连接建立过程

作者: jinwangkeji | 来源:发表于2018-07-31 15:15 被阅读0次

Https的全称是Http over SSL,而SSL是在TCP协议之上的保密层,但是它也是属于传输层的,如果直接传输Http,报文的信息安全是无法被保障的,因为它在应用层的信息传输是明文传输的。

Https传输建立的过程可以分为两个过程,信任建立的过程和连接建立的过程,如果再细分可以分为九个步骤,分别是:

客户端首先会给服务器发送Client Hello, Client Hello中主要包含了以下这几个消息:

其中Ciper Suites其实就是Ciper Suite的集合,也就是说Ciper Suites包含了一个或多个Ciper Suite,那么Ciper Suite到底是什么呢?其实就是对称加密算法,非对称加密算法和Hash算法的一个组合,下面就是一个例子

Ciper Suite:AES_RSA_SHA1

Ciper Suites就是几个Ciper Suite的集合,像这样:

AES_RSA_SHA1、DES_DSA_MD5、AES_RSA_MD5

客户端收到服务器收到的这一系列消息之后,它会从客户端发送的Ciper Suites中挑选出一个Ciper Suite和SSL/TLS版本,然后和自己生成的客户端随机数一起发送给客户端,就是这几个部分:

服务端得向客户端证明自己就是刚刚客户端发送消息的那个服务器,而CA证书里面就包含了这样的信息,需要注意的是,服务端发送给客户端的证书包含的信息并不只是证书本身,也包含了给它发证的签发机构的信息。证书包含的信息大概如下:

验证证书的过程是这样的:

有些机构,如银行等,可能会对客户端也做一次验证,大致过程和服务端验证相似

Pre-master Secret是由客户端通过自身信息算出来的,客户端将会把Pre-master Secret使用刚刚在证书中获得的证书公钥加密后发送给服务器,服务器收到Pre-master后,客户端和服务器都将协商出一个Master Secret, 因为客户端和服务器都拥有 客户端随机数、服务器随机数、Pre-Master Secret,如图所示

得到Master Secret之后客户端和服务器将使用 Ciper Suite和Master Secret一起计算出客户端密钥和服务端密钥以及客户端MAC Secret和服务器MAC Secret,如图:

做完这步之后客户端和服务器会继续建立通信

这里其实仅仅只是发送了一个几字节的通知而已,客户端告诉服务器将使用加密通信

在这里客户端将发送一个Finished消息,这个Finished消息实际上是对上述客户端与服务端发送的消息的一个汇总,用来使服务器来验证客户端是不是刚刚建立信任的客户端,Finished消息结果了两步加工:

HMAC是在获得了客户端MAC Secret和服务端MAC Secret后服务器和客户端都得到的HASH算法

服务端在收到客户端发送的Finished消息后将对消息进行验证,步骤如下: 1. 服务端对之前所有的消息也做一个HMAC 2. 服务端对客户端发送过来的Finished消息进行解密(因为服务端也有客户端密钥) 3. 服务端对1和2得到的消息进行比对,如果一样则说明发送消息的客户端是之前建立起信任的客户端,将进行之后步骤

这两个步骤其实跟前面客户端发送加密通信和Finished消息是一样的,所有这里就略过了

从这个步骤开始客户端和服务器就开始正式的通信了,从应用层看发送的报文的话只会得到这是一个应用层的消息,具体的消息只能看到类似与乱码,与Http明文通信对比十分鲜明。

相关文章

  • Https连接建立过程

    Https的全称是Http over SSL,而SSL是在TCP协议之上的保密层,但是它也是属于传输层的,如果直接...

  • Https连接建立过程

    Https的全称是Http over SSL,而SSL是在TCP协议之上的保密层,但是它也是属于传输层的,如果直接...

  • HTTPS连接建立过程

    在面试的过程中经常会被问到http和https相关的问题,包括https连接建立过程,所以就把相关的内容整理下放在...

  • https 建立连接过程

    思考问题的顺序 学技术时,总是会问什么?这里也不例外,https为什么会存在,它有什么优点,又有什么缺点?为什么网...

  • https建立连接过程

    一、背景 现在大多数的网站都升级为https协议了,包括百度、知乎等,当然还包括对安全性要求高的支付业务和银行业务...

  • TCP、HTTPS连接建立过程

    综述SSL、TLS、CA TCP连接建立 用信鸽来解释HTTPS HTTPS连接建立 综述 理解一个抽象概念,可以...

  • HTTPS建立连接过程

    最近有同事问关于HTTPS连接建立的过程,前段时间看过不少别人的解读,现在把自己的一点理解写下来,请大家多指教交流...

  • HTTPS建立连接过程

    为什么需要HTTPS为了安全,HTTP虽然效率更快,但是他是明文传输的,这就意味着可能会泄露信息,或者被中间人攻击...

  • HTTPS 建立连接的详细过程

    HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意劫持的...

  • HTTPS 建立连接的详细过程

    简介 HTTPS是在HTTP的基础上和ssl/tls证书结合起来的一种协议,保证了传输过程中的安全性,减少了被恶意...

网友评论

      本文标题:Https连接建立过程

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