SSL证书的工作原理

Secure Socket Layer(SSL)是一种在两台机器之间提供安全通道的协议,具有保护传输数据及识别通信机器的功能。SSL提供的安全通道是透明的,意思是它不变更两台机器之间传输的数据,保证数据经过加密后,一端写入的数据与另一端读取到的内容是完全一致的。本文通过阐述SSL协议在握手过程中的交互,使用户了解SSL证书的工作原理。
SSL握手过程
在SSL握手阶段,客户端和服务器间的交互过程图如下所示:
上述过程图一共可分为六个阶段,每个阶段的具体工作是:
1.客户端发起请求
客户端以明文传输发起请求。请求信息包含版本信息、加密套件候选列表、压缩算法候选列表、随机数、扩展字段等。具体细节如下:
- 支持的TSL协议版本:从低到高依次是SSLv2、SSLv3、TLSv1、TLSv1.1和TLSv1.2。
- 支持的加密套件: 每个加密套件对应前面TLS原理中的四个功能的组合,包含认证算法 Au (身份验证)、密钥交换算法 KeyExchange(密钥协商)、对称加密算法 Enc (信息加密)和信息摘要算法MAC(完整性校验)。
- 支持的压缩算法:用于后续信息的压缩传输。
- 随机数:用于后续的密钥的生成。
- 扩展字段:支持协议与算法的相关参数以及其它辅助信息等,常见的Server Name Indication(SNI)就属于扩展字段。
2.服务端响应请求
- 服务端返回协商的信息结果,包括选择使用的协议版本(version)、选择的加密套件(cipher suite)、选择的压缩算法(compression method)、随机数(random_S)等,其中,随机数用于后续的密钥协商。
- 服务器端配置对应的证书链,来验证身份与交换密钥。
- 通知客户端信息发送结束。
3.客户端校验证书
客户端验证证书的合法性,如果验证通过,则进行下一步通信。否则,根据错误情况做出响应的提示或操作。合法性验证的内容如下:
- 证书链的可信性:方法如前文所述。
- 证书是否吊销:离线 CRL(证书吊销列表)与在线 OCSP(在线证书列表)两类方式校验,不同的客户端行为会不同。
- 有效期:证书是否在有效时间范围。
- 域名:核查证书域名是否与当前的访问域名匹配,匹配规则后续分析。
4.客户端密钥交换
- 客户端密钥交换:合法性验证通过之后,客户端计算产生随机数字Pre-master,并用证书公钥加密,发送给服务器。
- 此时,客户端已经获取全部的计算协商密钥需要的信息,即两个明文随机数(random_C和random_S) 以及自己计算产生的Pre-master,计算得到协商密钥enc_key=Fuc(random_C, random_S, Pre-Master)。
- 更改密码规范:客户端通知服务器后续的通信都采用协商的通信密钥和加密算法进行加密通信。
- 加密的握手消息:结合之前所有通信参数的hash值与其它相关信息生成一段数据,采用协商密钥session secret与算法进行加密,然后发送给服务器用于数据与握手验证。
5.服务端改变密码规范
- 验证数据和密钥:收到被加密的数据后,用私钥解密,基于之前交换的两个明文随机数(random_C 和random_S),计算得到协商密钥enc_key=Fuc(random_C, random_S, Pre-Master)。通过计算之前所有接收信息的hash值,解密客户端发送的加密握手消息,验证数据和密钥正确性。
- 改变密码规范:验证通过之后,服务器同样发送改变后的密码规范以告知客户端后续的通信都采用协商的密钥与算法进行加密通信。
- 加密的握手消息:服务器结合所有当前的通信参数信息,生成一段数据,并采用协商密钥加密会话与算法加密并发送到客户端;
6.握手结束
客户端计算所有接收信息的哈希值,并采用协商好的密钥解密,验证服务器发送的数据和密钥,验证通过则握手完成。开始使用协商密钥与算法进行加密通信。
握手协议的作用
简单概述,SSL握手过程也是SSL证书作用的实现。如:
- 用户和服务器的合法性认证,对应握手协议中的第三阶段
- 加密数据来隐藏被传送的数据,对应握手协议中的第四就和第五阶段
- 保护数据的完整性,对应握手协议中的第六阶段。
- 有效防止被“冒牌”网站钓鱼。下图为安装了SSL证书后的网站效果:
更多有关SSL证书作用的信息,参阅SSL证书有什么用。
更多信息
公钥和私钥
公钥(Public Key)与私钥(Private Key)就是俗称的不对称加密方式。它们是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。私钥则是非公开的部分,需自行保管。
通过这种算法得到的密钥对,能保证在世界范围内是唯一的。使用这个密钥对时,如果用其中一个密钥加密一段数据,则必须用另一个密钥才能解密。比如:用公钥加密的数据就必须用对应的私钥才能解密,否则将无法成功解密。反之亦然。
-
Cloudflare实战指南:企业级密钥交换算法配置白皮书
SSL证书密钥交换机制主要用于在客户端和服务器之间安全地交换密钥,以确保通信的保密性和完整性。以下是SSL证书密钥交换机制的详细介绍:一、密钥交换的基本原理密钥交换的核心目的是让通信双方(通常称为客户
-
证书链不完整致瘫网站?华为/腾讯云工程师亲授修复秘笈
SSL证书链不完整可能导致浏览器提示证书错误或无法建立安全连接。以下是修复SSL证书链不完整的详细介绍:检查证书链完整性使用在线工具检查:可以使用一些在线的SSL证书检查工具,如SSL Server
-
TLS 1.3时代来临:SSL证书算法如何匹配新一代协议?
选择SSL证书加密算法时,需要考虑多个因素,包括安全性、性能、兼容性和合规性等。以下是一些选择SSL证书加密算法的要点:常见的SSL证书加密算法RSA:RSA是一种广泛应用的非对称加密算法,通过公钥和
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/

随时掌握互联网精彩
- 交管12123原生鸿蒙版正式上线:功能已覆盖60%交管业务
- Linux 往事:一个不会像 GNU 那样大而专业的 OS 是如何成为主流的?
- 高通2023暑期实习生项目丨等待发光的你 一起为梦想摇旗呐喊
- 为什么有些程序员敲代码太慢,效率太低?
- 数据释放空间价值|Whale 帷幄 SDP 定义空间数据未来式
- 精品课程 | 4h入门PHP代码审计之反序列化
- 基于linker实现so加壳补充-------从dex中加载so
- 移动办公时代,我们究竟需要一台怎样的电脑?
- 大厂难进,Java面试该如何一面即中?
- 看雪2020 年度新人奖,如期而至!
- 无线网不安全了?GlobalSign 最全 WiFi 使用建议
- 什么是Thawte SSL证书? Thawte 介绍