SSL证书:Https连接建立过程

Https连接建立过程

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

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证书行业资讯
使用Elasticsearch、Logstash和Kibana管理日志

​ 全面的日志管理和分析策略是关键任务,使组织能够理解运营...

PFS概览

PFS概览 众所周知,若服务器的私钥泄漏,任何可以访问私钥的人...

API测试是什么

什么是API API是Application Programming Interface的简写。 实现了两个或...

最常见的开源协议

对最常见的开源协议做下总结分享 Mozilla Public License MPLLicense,允...

Cisco VPN套件中过期的SSL证书将破坏网络配置

任何运行思科支持的虚拟专用网络(VPN)的人都可能需要安装更...

代码签名入门

代码签名证书简介及其许多好处 今天,几乎所有东西都是电脑。...

Chrome 66 Beta即将上线 你的赛门铁克SSL证书可能会

Google Chrome 66 Beta将于3月15日,即本周四发布。 虽然谷歌和赛门铁...

谷歌将在2018年9月取消“安全”标识

最后甚至会从Chrome的UI中取消挂锁图标。。。 谷歌爸爸在上周四...

手把手Docker java web 应用helloword(四)

从昨天跟大家分享金网科技原创手把手Docker java web 应用hellowor...

常见的SSL错误解决办法

常见的 SSL 错误解决办法 为了保障用户的隐私信息安全,减少信...