1. 极安网首页
  2. 网络安全新闻

中科三方:浅析SSL证书的工作原理


互联网的快速发展和普及极大方便了人们的工作和生活,但同时也带来了一定的安全隐患。因为传统的网络通信都使用的是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证书已成为了保障网站数据安全的一种“标配”。

文章来源于互联网:中科三方:浅析SSL证书的工作原理

原创文章,作者: Admin ,转载请注明出处:https://secvery.com/6557.html