TLS协议详解!

TLS简介

SSL 即安全套接字层,它在 OSI 七层网络模型中处于第五层,SSL 在 1999 年被 IETF(互联网工程组)更名为 TLS ,即传输安全层,直到现在,TLS 一共出现过三个版本,1.1、1.2 和 1.3 ,目前最广泛使用的是 1.2,所以接下来的探讨都是基于 TLS 1.2 的版本上的。

TLS1.2 和 TLS 1.3 的区别

TLS 1.2 的握手中,一般是需要 4 次握手,先要通过 Client Hello (第 1 次握手)和 Server Hello(第 2 次握手) 消息协商出后续使用的加密算法,再互相交换公钥(第 3 和 第 4 次握手),然后计算出最终的会话密钥,下图的左边部分就是 TLS 1.2 的握手过程:

上图的右边部分就是 TLS 1.3 的握手过程,可以发现 TLS 1.3 把 Hello 和公钥交换这两个消息合并成了一个消息,于是这样就减少到只需 1 RTT 就能完成 TLS 握手

TLS-2

HTTPS

HTTPS 的全称是 Hypertext Transfer Protocol Secure,它用来在计算机网络上的两个端系统之间进行安全的交换信息(secure communication),它相当于在 HTTP 的基础上加了一个 Secure 安全的词眼,那么我们可以给出一个 HTTPS 的定义:HTTPS 是一个在计算机世界里专门在两点之间安全的传输文字、图片、音频、视频等超文本数据的约定和规范。HTTPS 是 HTTP 协议的一种扩展,它本身并不保传输的证安全性,那么谁来保证安全性呢?在 HTTPS 中,使用传输层安全性(TLS)安全套接字层(SSL)对通信协议进行加密。也就是 HTTP + SSL(TLS) = HTTPS

图片

如果网站没有使用 HTPPS ,谷歌浏览器会显示不安全的提示。

图片

HTTPS 并不是一项新的应用层协议,只是 HTTP 通信接口部分由 SSL 和 TLS 替代而已。通常情况下,HTTP 会先直接和 TCP 进行通信。在使用 SSL 的 HTTPS 后,则会先演变为和 SSL 进行通信,然后再由 SSL 和 TCP 进行通信。也就是说,HTTPS 就是身披了一层 SSL 的 HTTP

图片

SSL 是一个独立的协议,不只有 HTTP 可以使用,其他应用层协议也可以使用,比如 SMTP(电子邮件协议)Telnet(远程登录协议) 等都可以使用。

工作原理

TLS-1

下面是客户端与服务器建立连接的完整过程,显然前三个 TCP 数据包是三次握手包。

image-20211016144312901

下面是只显示 TLS 协议的通信过程

image-20211016144356568

客户端发起握手协商操作,它将发送一个 ClientHello 消息给服务器,消息中明确了其所支持的SSL/TLS版本、Cipher suite 加密算法组合等,可以让服务器选择,并提供了一个客户端随机数,用于以后生成会话密钥使用。

image-20211016225842365

服务器将返回一个 ServerHello 消息,该消息包含了服务器选择的协议版本、加密算法,以及服务器随机数、会话ID等内容。其中,服务器选择的协议版本应小于等于客户端 ClientHello 中的协议版本。

image-20211016225951653

服务器发送ServerHello消息,选择好协议版本和加密算法组合后,将发送 Certificate 消息,该消息包含了服务器的证书等信息,可通过证书链认证该证书的真实性。根据选择的加密算法组合的不同,服务器证书中的公钥也可被用于加密后面握手过程中生成的 Premaster secret

image-20211016230127206

ServerKeyExchange 消息,消息中包含了服务器这边的 EC Diffie-Hellman 算法相关参数。

ServerHelloDone 消息,告知客户端服务器这边握手相关的消息发送完毕。

从数据包中可以看出这两个小时是一起发的。

image-20211016230403581

客户端发送 Client Key Exchange Change Cipher Spec 消息

image-20211016230901904

服务器发送 ChangeCipherSpec 消息,通知客户端此消息以后服务器会以加密方式发送数据。

image-20211016231110857

接下来的数据就都被加密了。

image-20211016231154032

下面是 TLS 1.3 的通信过程。

image-20211016144026992

部分图片来源公众号小林coding和java建设者

参考文档

看完这篇 HTTPS,和面试官扯皮就没问题了

字节二面:优化 HTTPS 的手段,你知道几个?

TLS协议分析

  • 25
    点赞
  • 186
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SOME/IP(Scalable service-Oriented MiddlewarE over IP)是一种用于汽车领域的通信协议,它提供了一种标准化的方式来实现车辆内部和车辆之间的通信。下面是对SOME/IP协议的详细介绍: 1. 概述:SOME/IP协议是一种基于IP网络的通信协议,它允许不同的汽车电子控制单元(ECU)之间进行高效的通信。它提供了一种灵活的、可扩展的架构,使得不同的ECU可以通过网络进行数据交换和服务调用。 2. 架构:SOME/IP协议采用了客户端-服务器模型,其中客户端是请求服务的一方,而服务器是提供服务的一方。客户端和服务器之间通过SOME/IP消息进行通信。SOME/IP消息可以包含请求、响应和通知等不同类型的数据。 3. 服务发现:SOME/IP协议支持服务发现机制,使得ECU可以动态地发现和注册可用的服务。服务发现可以通过广播或者组播方式进行,从而实现了自动化的服务发现和注册过程。 4. 数据传输:SOME/IP协议使用UDP/IP作为底层传输协议,这使得它具有较低的延迟和较高的实时性。SOME/IP消息可以通过UDP数据报进行传输,同时支持数据的加密和压缩等功能。 5. 安全性:SOME/IP协议提供了一些安全机制,用于保护通信数据的机密性和完整性。它支持基于TLS(Transport Layer Security)的加密和身份验证,以及基于IPSec(Internet Protocol Security)的网络层安全。 6. 扩展性:SOME/IP协议具有良好的扩展性,可以支持不同的应用场景和需求。它定义了一套灵活的消息格式和协议扩展机制,使得新的功能和服务可以很容易地添加到协议中。 7. 应用领域:SOME/IP协议主要应用于汽车领域,用于实现车辆内部的通信和车辆之间的通信。它可以用于实现诸如车辆诊断、远程控制、软件更新等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值