一篇文章让你彻底弄懂SSL/TLS协议

简介: 一篇文章让你彻底弄懂SSL/TLS协议

目录



一篇文章让你彻底弄懂SSL/TLS协议


SSL/TLS是一种密码通信框架,他是世界上使用最广泛的密码通信方法。SSL/TLS综合运用了密码学中的对称密码,消息认证码,公钥密码,数字签名,伪随机数生成器等,可以说是密码学中的集大成者。


SSL(Secure Socket Layer)安全套接层,是1994年由Netscape公司设计的一套协议,并与1995年发布了3.0版本。


TLS(Transport Layer Security)传输层安全是IETF在SSL3.0基础上设计的协议,实际上相当于SSL的后续版本。


SSL/TLS的应用


image.png


SSL/TLS是一个安全通信框架,上面可以承载HTTP协议或者SMTP/POP3协议等。


TLS协议的架构


image.png


TLS主要分为两层,底层的是TLS记录协议,主要负责使用对称密码对消息进行加密。

上层的是TLS握手协议,主要分为握手协议,密码规格变更协议和应用数据协议4个部分。


  • 握手协议负责在客户端和服务器端商定密码算法和共享密钥,包括证书认证,是4个协议中最最复杂的部分。
  • 密码规格变更协议负责向通信对象传达变更密码方式的信号
  • 警告协议负责在发生错误的时候将错误传达给对方
  • 应用数据协议负责将TLS承载的应用数据传达给通信对象的协议。


握手协议


握手协议是TLS协议中非常重要的协议,通过客户端和服务器端的交互,和共享一些必要信息,从而生成共享密钥和交互证书。


不说话,先上图:


image.png


接下来我们一步步的介绍每一步的含义:


  1. client hello客户端向服务器端发送一个client hello的消息,包含下面内容:
  • 可用版本号
  • 当前时间
  • 客户端随机数
  • 会话ID
  • 可用的密码套件清单
  • 可用的压缩方式清单


我们之前提到了TLS其实是一套加密框架,其中的有些组件其实是可以替换的,这里可用版本号,可用的密码套件清单,可用的压缩方式清单就是向服务器询问对方支持哪些服务。


客户端随机数是一个由客户端生成的随机数,用来生成对称密钥。


  1. server hello服务器端收到client hello消息后,会向客户端返回一个server hello消息,包含如下内容:
  • 使用的版本号
  • 当前时间
  • 服务器随机数
  • 会话ID
  • 使用的密码套件
  • 使用的压缩方式


使用的版本号,使用的密码套件,使用的压缩方式是对步骤1的回答。


服务器随机数是一个由服务器端生成的随机数,用来生成对称密钥。


  1. 可选步骤:certificate


服务器端发送自己的证书清单,因为证书可能是层级结构的,所以处理服务器自己的证书之外,还需要发送为服务器签名的证书。客户端将会对服务器端的证书进行验证。如果是以匿名的方式通信则不需要证书。


  1. 可选步骤:ServerKeyExchange如果第三步的证书信息不足,则可以发送ServerKeyExchange用来构建加密通道。ServerKeyExchange的内容可能包含两种形式:


  • 如果选择的是RSA协议,那么传递的就是RSA构建公钥密码的参数(E,N)。我们回想一下RSA中构建公钥的公式:=E mod N密文=明文E mod N, 只要知道了E和N,那么就知道了RSA的公钥,这里传递的就是E,N两个数字。具体内容可以参考RSA算法详解
  • 如果选择的是Diff-Hellman密钥交换协议,那么传递的就是密钥交换的参数,具体内容可以参考更加安全的密钥生成方法Diffie-Hellman


  1. 可选步骤:CertificateRequest
    如果是在一个受限访问的环境,比如fabric中,服务器端也需要向客户端索要证书。
    如果并不需要客户端认证,则不需要此步骤。


  1. server hello done
    服务器端发送server hello done的消息告诉客户端自己的消息结束了。


  1. 可选步骤:Certificate
    对步骤5的回应,客户端发送客户端证书给服务器


  1. ClientKeyExchange还是分两种情况:
  • 如果是公钥或者RSA模式情况下,客户端将根据客户端生成的随机数和服务器端生成的随机数,生成预备主密码,通过该公钥进行加密,返送给服务器端。
  • 如果使用的是Diff-Hellman密钥交换协议,则客户端会发送自己这一方要生成Diff-Hellman密钥而需要公开的值。具体内容可以参考更加安全的密钥生成方法Diffie-Hellman,这样服务器端可以根据这个公开值计算出预备主密码。


  1. 可选步骤:CertificateVerify
    客户端向服务器端证明自己是客户端证书的持有者。


  1. ChangeCipherSpec(准备切换密码)
    ChangeCipherSpec是密码规格变更协议的消息,表示后面的消息将会以前面协商过的密钥进行加密。


  1. finished(握手协议结束)
    客户端告诉服务器端握手协议结束了。


  1. ChangeCipherSpec(准备切换密码)
    服务器端告诉客户端自己要切换密码了。


  1. finished(握手协议结束)
    服务器端告诉客户端,握手协议结束了。


  1. 切换到应用数据协议
    这之后服务器和客户端就是以加密的方式进行沟通了。


主密码和预备主密码


上面的步骤8生成了预备主密码,主密码是根据密码套件中定义的单向散列函数实现的伪随机数生成器+预备主密码+客户端随机数+服务器端随机数生成的。


主密码主要用来生成称密码的密钥,消息认证码的密钥和对称密码的CBC模式所使用的初始化向量。详见分组密码和模式


TLS记录协议


TLS记录协议主要负责消息的压缩,加密及数据的认证:


image.png


先上图。


消息首先将会被分段,然后压缩,再计算其消息验证码,然后使用对称密码进行加密,加密使用的是CBC模式,CBC模式的初始向量是通过主密码来生成的。


得到密文之后会附加类型,版本和长度等其他信息,最终组成最后的报文数据。


相关文章
|
20天前
|
安全 算法 网络安全
SSL/TLS协议如何确保HTTP通信的安全
通过这些机制和过程,SSL/TLS对HTTP通信提供了强大的保护,确保数据不被未授权的第三方访问或篡改,这对维护数据隐私和网络安全至关重要。随着互联网技术的不断进步,SSL/TLS协议本身也在不断更新和升级,以对抗新出现的威胁和满足现代网络的要求。
92 10
|
2月前
|
安全 应用服务中间件 网络安全
在Linux环境部署Flask应用并启用SSL/TLS安全协议
至此,你的Flask应用应该能够通过安全的HTTPS协议提供服务了。记得定期更新SSL证书,Certbot可以帮你自动更新证书。可以设定cronjob以实现这一点。
187 10
|
7月前
|
安全 算法 网络协议
解析:HTTPS通过SSL/TLS证书加密的原理与逻辑
HTTPS通过SSL/TLS证书加密,结合对称与非对称加密及数字证书验证实现安全通信。首先,服务器发送含公钥的数字证书,客户端验证其合法性后生成随机数并用公钥加密发送给服务器,双方据此生成相同的对称密钥。后续通信使用对称加密确保高效性和安全性。同时,数字证书验证服务器身份,防止中间人攻击;哈希算法和数字签名确保数据完整性,防止篡改。整个流程保障了身份认证、数据加密和完整性保护。
|
3月前
|
安全 应用服务中间件 网络安全
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
251 0
Nginx SSL/TLS协议栈中配置深度解析与实践指南-优雅草卓伊凡
|
5月前
|
安全 网络安全 数据安全/隐私保护
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
HTTP 与 HTTPS 协议及 SSL 证书解析-http和https到底有什么区别?-优雅草卓伊凡
289 3
|
6月前
|
安全 算法 网络安全
SSL/TLS:构建数字世界的加密长城
**协议演进:从网景实验室到全球标准** 1994年,网景公司推出SSL协议,首次实现40位密钥加密传输,开启网络安全新纪元。此后,SSL 3.0、TLS 1.0相继问世,至2018年TLS 1.3将握手速度提升60%,强制前向加密确保历史会话安全。TLS协议通过非对称加密、对称加密和证书信任链等多层架构保障通信安全。2014年POODLE漏洞促使全行业禁用SSL 3.0,催生防降级机制。
|
7月前
|
安全 算法 物联网
SSL/TLS:互联网通信的加密基石与安全实践
**简介:** 在数字化时代,互联网每天传输海量敏感数据,网络攻击频发。SSL/TLS协议作为网络安全的基石,通过加密技术确保数据安全传输。本文解析SSL/TLS的技术架构、密码学原理、应用场景及常见误区,探讨其在未来的发展趋势,强调持续演进以应对新型威胁的重要性。 SSL/TLS不仅保障Web安全,还广泛应用于API、邮件、物联网等领域,并遵循合规标准如PCI DSS和GDPR。
|
3月前
|
安全 数据建模 应用服务中间件
阿里云SSL证书价格、证书类型及免费版证书申请和证书部署教程参考
阿里云SSL证书有收费版也有免费版,收费版DV域名级SSL类型405元起,免费版证书为DV域名级SSL类型,每个实名个人和企业主体在一个自然年内可以一次性领取20张免费证书。本文为大家详细介绍阿里云SSL证书价格情况,包括不同域名类型、证书类型、证书等级和证书品牌的相关收费标准,以及免费版证书的申请和部署教程参考。
|
6月前
|
算法 应用服务中间件 网络安全
阿里云WoSign“国密RSA双SSL证书”应用实践
阿里云WoSign品牌SSL证书是阿里云平台热销的国产品牌证书之一,支持签发国密合规的SM2算法SSL证书以及全球信任的RSA算法SSL证书,能够满足平台用户不同的SSL证书应用需求,同时为用户提供国密模块支持,实现“国密/RSA双证书部署”。
637 6
阿里云WoSign“国密RSA双SSL证书”应用实践
|
6月前
|
算法 安全 应用服务中间件
2025阿里云智惠采购季,WoSign SSL国产证书折上折满减优惠
**2025阿里云“智慧采购季,就上阿里云”活动火热进行中!** 3月1日至31日,阿里云WoSign品牌SSL证书新老用户同享折上折满减优惠。DV SSL证书低至220元/年起,轻松实现HTTPS加密,保障数据传输安全。领取“智惠采购季上云礼包”,先领券再下单,享受满减优惠。WoSign品牌SSL证书国密RSA双算法支持,确保广泛兼容与可靠部署。
811 2
2025阿里云智惠采购季,WoSign SSL国产证书折上折满减优惠

热门文章

最新文章