干货分享 | 浅析SSL证书的工作原理

发布时间:2021-09-09 00:00:00

互联网的快速发展和普及极大方便了人们的工作和生活,但同时也带来了一定的安全隐患。因为传统的网络通信都使用的是HTTP传输协议,信息数据采用明文方式传输,全程公开暴露,很容易被人监听和劫持,同时HTTP协议无法验证通信双方身份,因此给了钓鱼网站可乘之机,严重影响了信息传输的可靠性和安全性。正是基于这样的背景,SSL证书应运而生。


什么是SSL证书?

SSL证书是一种用于在Web服务器和客户端浏览器之间建立加密链接的数字证书。通过配置和应用SSL证书启用HTTPS协议,可实现对网站真实性的确认和信息传输过程的加密处理,有效保障互联网数据传输的安全性。



SSL证书工作原理
当客户端向一个https网站发起请求时,服务器会将SSL证书发送给客户端进行校验,SSL证书中包含一个公钥。校验成功后,客户端会生成一个随机串,并使用受访网站的SSL证书公钥进行加密,然后再发送给网站服务器。
网站服务器收到加密的随机串后,会利用自己的私钥进行解密,得到由客户端生成的随机串。服务器使用这一随机串,开始与客户端进行对称加密通信,客户端使用随机串对服务器发来的信息进行加密。


从这个过程中可以看出,SSL证书同时使用了非对称加密和对称加密,使用非对称加密运送一把“钥匙”给服务器,保证“钥匙”的安全性,服务器得到“钥匙”后,使用这把“钥匙”对信息进行加密,整个传输过程都处于加密状态,有效保障了信息的完整性、准确性和安全性。


SSL证书工作流程
SSL证书的工作流程分为三个部分:握手协议(Handshake protocol)、记录协议(Record protocol)、警报协议(Alert protocol)。

一、握手协议

握手协议发生在应用程序的数据传输前,是客户端和服务器用SSL连接通信时使用的第一个子协议,也是整个SSL过程中最复杂的一部分协议。该协议允许服务器和客户端相互验证、协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。

 每个握手协议包含以下3个字段:

(1)Type:表示10种消息类型之一

(2)Length:表示消息长度字节数

(3)Content:与消息相关的参数


握手协议有4个阶段:

第一阶段:建立安全能力

SSL握手的第一阶段启动逻辑连接。首先客户端向服务器发出client hello消息等待服务器响应,随后服务器向客户端返回server hello消息,对client hello消息中的信息进行确认。


ClientHello信息 
客户发送CilentHello信息,包含如下内容:

(1)客户端可以支持的SSL最高版本号

(2)一个用于生成主秘密的32字节的随机数。

(3)一个确定会话的会话ID。

(4)一个客户端可以支持的密码套件列表,每个套件都以“SSL”开头,紧跟着的是密钥交换算法。

(5)一个客户端可以支持的压缩算法列表。

ServerHello信息

服务器用ServerHello信息应答客户,包括下列内容:

(1)一个SSL版本号。

(2)一个用于生成主秘密的32字节的随机数。(客户端一个、服务端一个)

(3)会话ID

(4)从客户端的密码套件列表中选择的一个密码套件

(5)从客户端的压缩方法的列表中选择的压缩方法

这个阶段之后,客户端服务端知道了下列内容:

(1)SSL版本

(2)密钥交换、信息验证和加密算法

(3)压缩方法

(4)有关密钥生成的两个随机数。

第二阶段:服务器鉴别与密钥交换

服务器启动SSL握手第2阶段,该阶段只有服务器发送消息,客户端接收消息。


该阶段分为4步:

(1)服务器将数字证书和到根CA整个链发给客户端,使客户端通过服务器证书中的服务器公钥识别认证服务器。

(2)根据密钥交换算法进行服务器秘钥交换

(3)服务器要求客户端进行身份验证。

(4)服务器完成握手。

第三阶段:客户端鉴别与密钥交换

客户端开始握手第三阶段,本阶段只有客户端发送消息,服务器接收消息。


(1)为了验证服务器,客户发送一个证书信息,这是可选的,在IIS中可以配置强制客户端证书认证。

(2)客户端密钥交换:这里客户端将预备主密钥发送给服务端,注意这里会使用服务端的公钥进行加密。

(3)证书验证,对预备秘钥和随机数进行签名,证明拥有证书的公钥。

第四阶段:握手完成

客户端启动SSL握手第4阶段,使服务器结束。该阶段分为4步,前2个消息来自客户端,后2个消息来自服务器。



二、记录协议

记录协议发生在客户端和服务器握手成功后,即客户端和服务器确认双方身份交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务:

(1)保密性:使用握手协议定义的秘密密钥实现

(2)完整性:握手协议定义了MAC,用于保证消息完整性


SSL记录协议接收传输的应用程序消息,将数据分割成可管理的块,然后利用加密算法对数据进行加密,最后添加头文件。接收数据后,需要对其进行解密、验证、解压缩和重新组装。

三、警报协议

客户端和服务器发现错误时,如证书错误、证书到期、握手失败等情况,会向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号和密钥。

以下是一些警告信息:

• unexpected_message:接收了不合适的报文。

• bad_record_mac:收到了不正确的MAC。

• decompression_failure:解压缩函数收到不适当的输入。

• illegal_parameter:握手报文中的一个字段超出范围或与其他字段不兼容。

• certificate_revoked:证书已经被废弃。

• bad_certificate:收到的证书是错误的。

• certificate_expired:证书已经过期。

• handshake_failer:握手过程失败。

当发生了以上情况中的任意一个时,都会启用警报协议。

随着互联网技术的快速发展和普及,企业线上业务的比例快速提升,网站安全的重要性日渐凸显。通过安装和部署SSL证书启用更为安全的HTTPS传输协议,对传输数据进行加密处理,并有效验证服务器身份,最大程度避免了信息泄露和钓鱼网站,有效保障用户数安全,提升企业品牌形象。

如今越来越多的网站开始部署SSL证书,以提升网站的安全防护能力,在政府、金融、科研以及大型企业等重点行业和领域,SSL证书已成为了保障网站数据安全的一种“标配”。

关于 国科云

 国科云是中国科学院控股有限公司(国科控股)旗下域名管理品牌,深耕域名相关技术领域二十余载,提供域名注册及管理、域名锁、云解析IPv6转换SSL证书等一站式域名解决方案。 国科云SSL证书服务与赛门铁克、CFCA等全球顶级CA机构合作,可提供多品牌多类型的SSL证书,以满足不同用户不同场景需求。





相关推荐:

国科云:SSL证书是什么?主要有几种类型?
上一篇:域名管理常见问题:什么是泛解析? 下一篇:域名注册流程:如何选择购买合适的域名?