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)就是俗称的不对称加密方式。它们是通过一种算法得到的一个密钥对,公钥是密钥对中公开的部分,常用于加密会话密钥、验证数字签名,或加密可以用相应的私钥解密的数据。私钥则是非公开的部分,需自行保管。
通过这种算法得到的密钥对,能保证在世界范围内是唯一的。使用这个密钥对时,如果用其中一个密钥加密一段数据,则必须用另一个密钥才能解密。比如:用公钥加密的数据就必须用对应的私钥才能解密,否则将无法成功解密。反之亦然。
-
Apple提议将SSL证书有效期缩短为45天
SSL/TLS证书的有效期一直在缩短。2017年,证书的最大有效期从1185天(约39个月)缩短到825天(约27个月),当时人们认为这是SSL证书发展中的一大转变。而在接下来的几年里,证书的有效期还
-
Go语言的数据加密和安全传输
在Go语言中提供数据加密和安全传输,有几种主要的方法:使用SSL/TLS实现安全传输、使用HTTPS协议、使用HTTP/2进行安全传输、使用加密算法例如AES和RSA来加密信息。其中,SSL/TLS(
-
GoGetSSL产品介绍及简介
GoGetSSL是一个平台,您可以在该平台上以极低的价格从多个不同的证书颁发机构购买各种SSL证书。 在本文中,我将帮助您了解什么是SSL证书以及如何为您的企业选择正确的GoGetSSL证书。1.对证
[广告]赞助链接:
关注数据与安全,洞悉企业级服务市场:https://www.ijiandao.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
随时掌握互联网精彩
- GBASE南大通用自主研发的国产数据库
- PDF24 Tools: 免费且易于使用的在线PDF工具
- Dynadot如何PUSH域名?
- Resellerclub如何PUSH域名?
- 漏洞多,不安全!AI编程助手你还敢用吗?
- 什么样的CISO对企业来说是有用的?
- Windows、低代码、AI等5大技术主题“出圈”!Microsoft Build 2022大会即将重磅开启
- 历史上的今天:世界上第一位计算机科学博士出生;微软发布 Surface Pro;Google Buzz 问世
- 甲骨文 CleanCache 将从 Linux 内核中清除;GNU Parallel 20 周年 | 开源日报
- Google、苹果、亚马逊向“自动驾驶”发起进攻!
- 在Z|贝壳找房(80万/年)、上海百胜(56万/年)招贤;9年IT、6年信安经验求职信安总监
- 取代树莓派,这 9 款系统基础芯片跃跃欲试!