TLS协议:TLS的含义及工作原理
含义
互联网基于数据交换和处理。为了正确处理和交换数据,计算机使用符合通用标准的规则集合。这些指导原则被称为网络协议。网络协议向全球互联网中的计算机解释如何相互通信。
TLS(传输层安全)是一种用于安全数据交易的加密协议。1999年,IETF(互联网工程任务组)发布了TLS的第一个版本,以升级SSL 3.0标准。
SSL标准最初是由网景公司发明的,旨在保护未加密且易受攻击的HTTP超文本传输协议。
2015年,SSL标准被宣布为过时。后来,TLS几乎完全取代了SSL。到2022年,TLS 1.3将成为最现代和先进的安全协议。
OSI 模型中的 TLS

OSI (开放系统互连)模型对该协议的范围给出了初步的近似值。
简单协议可以属于一个OSI层次,复杂协议由于特性多样,所以可以同时属于不同的OSI层次。
TLS 具有四个层次的特点:应用层、表示层、会话层、传输层。
- 应用层:与面向用户的应用程序通信。
- 传输层:数据事务。
- 表示级别:加密。
- 会话级别的会话恢复。
TLS 的工作原理
HTTP 是互联网上的主要数据交易协议。最初并不安全,但通过 SSL/TLS 加密后变得安全。
TLS 是 HTTP 的加密安全附加组件。它设置连接规则并调用加密系统来保护连接。升级后的 HTTP 版本被广泛称为 HTTPS。
TLS 设定了三个主要安全目标:
- 保密
- 正直
- 安全身份验证
这些目标的实现是 TLS 工作原则的本质。
保密
机密性保护是一系列旨在避免不必要的信息访问的行动。
无机密性保护的系统示例:

- 用户想要登录银行网站。
- 用户通过客户端机器连接到银行服务器。
- 客户发送包含银行凭证的消息。
- 服务器检查登录名和密码并允许用户登录。
机密性受到威胁!攻击者(“中间人”)可以拦截消息并阅读内容。
具有简单对称加密的系统示例:

客户端向服务器发送带有银行凭证的消息。同时,客户端在发送消息之前会使用密钥对其进行加密。对于中间人来说,这项任务更难解决,但仍然有可能获取消息并解密内容。
TLS 安全加密
TLS 协议使用更安全的非对称加密类型。它启动客户端和服务器之间的相互验证过程。此过程称为握手。该协议可以调用不同的算法来执行握手,但 RSA 和 Diffie-Hellman 算法最受欢迎。这是 RSA 握手的简化示例。
服务器持有两个密钥,而不是每个连接一个密钥:公钥和私钥。任何人都可以查看公钥。但是,使用此密钥加密的消息只能使用私钥解密。服务器会保留此私钥,不会与任何人共享。

- 客户端连接到服务器并请求安全连接。
- 服务器响应并向客户端发送公钥。
- 客户端用此密钥加密数据并发回。即使攻击者获取了消息,他们也无法在没有私钥的情况下解密。
- 服务器收到消息并使用私钥解密。
完整性
数据完整性保护是一系列保持信息不变的措施。其主要目标是避免由于系统故障导致的信息损坏。
TLS使用对称哈希函数(如MD5、SHA等)来实现完整性:
1. 客户端将数据数组转换为加密字符串并获得哈希值。
2. 客户端将数据和哈希值一起打包发送。
3. 服务器接收并提取数据和哈希值,再次将数据转换为哈希,并将提取的哈希与新接收到的哈希进行比较。如果它们不匹配,则表示消息已损坏。
认证
认证保护意味着真实性检查。例如,客户端连接到银行时,中间人可能会将客户端重定向到类似网站以窃取客户端的凭证。
数字证书有助于检查服务器是否可信。服务器可以通过被称为证书颁发机构(CA)的可信机构来认证其公钥。这些公司包括IdenTrust、DigiCert和GoDaddy等。他们使用根CA证书认证公钥。当客户端机器连接到服务器并获取密钥时,它会向CA询问:这个密钥是否真实?如果密钥未被认证,CA将阻止连接。
TLS 代理:它是什么以及它如何工作
什么是代理?

代理是客户端和服务器之间的中介。所有流量都通过中介。中介点连接的好处是:
- 负载均衡
- 身份隐藏
- 防范入侵、跟踪和恶意软件
- 流量过滤
- 节省带宽
TLS 代理的工作原理
适用于 Windows、Mac 或 Linux 的 TLS 代理是管理 HTTPS 流量的方式。它像其他代理一样充当中介服务器。不同之处在于它在 HTTPS 隧道内工作,使用握手算法保护信息。因此,此中介必须参与加密数据交换。
根据参与此过程的方式,TLS 代理有两种类型。直通代理将消息从客户端转发到服务器,然后再转发回来。终止代理会在中间中断连接。
TLS终止代理
TLS终止代理的类型
TLS终止代理是连接中的一个活跃参与者。它将HTTPS流量从客户端路由到服务器,并中断连接以读取和分析流量。为此,中介将客户端和服务器之间的隧道分为两部分:客户端-代理,代理-服务器。TSL连接在一侧停止。根据停止的侧面,连接有两种类型:
- 卸载:终止“代理-服务器”连接。来自客户端的入站HTTPS数据作为HTTP转发到服务器。
- 加密:终止“客户端-代理”连接。来自客户端的入站HTTP数据作为HTTPS转发到服务器。
- 桥接是两种连接类型的组合。
卸载
卸载类型是网络构建中最常见的一种。

代理服务器从客户端接收加密消息(HTTPS)并解密。由于代理只能处理解密文件,因此此时它们可以分析和管理数据。例如,它可以平衡后端的负载,允许网络监视并阻止恶意活动。然后,中介使用 HTTP 将流量转发到服务器。
当服务器响应时,中介会再次收到消息。此时,它还可以允许数据分析并启用有用的功能:恶意软件和入侵检测、内容过滤以及启用其他版本的协议。然后,代理会再次加密数据并将其发送给客户端。
作为中介机构,它可以完成所有的加密和解密工作,从而减轻服务器的负担,使它们能够更快地运行。
这种方法的最大缺点是 HTTP 流量隧道中有一个不安全的部分。中间人可以访问那里的数据并窃取数据。幸运的是,没有其他漏洞——中间人无法创建网关来窃取信息。
要启动终止过程,代理服务器需要拥有与任何服务器从 CA 获得的证书类型相同的证书。TLS 隧道内的服务器需要证明自己值得信赖,可以启动握手过程 – 而这正是终止中介所做的。
加密
加密类型类似于卸载,但数据是从服务器端加密的。中介接收纯文本客户端数据(HTTP)。然后它加密流量并使用 HTTPS 将其转发到服务器。服务器响应,中介解密数据并将其转发给客户端。
桥

此类型在双方建立加密连接。第一个代理从客户端获取数据。客户端和代理进行握手。中介解密来自客户端的数据并运行必要的应用程序:恶意软件过滤、负载平衡和 HTTP 清漆。然后中介再次加密数据 – 现在与服务器握手。它发送数据,接收响应,解密并再次优化。然后它加密信息以将其发送给用户。
换句话说,代理会中断连接,但流量仍保持加密。流量在中间点解密,因此如果中间方存在漏洞,数据可能会受到损害。
使用代理终止的原因
- 使 HTTPS 与 HTTP 通信(有助于建立前端 HTTPS 与后端 HTTP 的连接)。
- 添加基于证书的认证点。
- 卸载服务器。
- 用于负载平衡。
- 启用加密数据无法访问的功能:数据分析、恶意软件和入侵检测、内容过滤和 HTTP 清漆。
- 启用其他协议版本。
- 如果代理比端点更靠近客户端,则握手过程会更快。
使用代理终止的利与弊
优点
- 允许 HTTPS 与 HTTP 通信
- 卸载服务器
- 不是很贵
- 高效负载平衡
- 数据分析
- 允许对流量采取行动
- 网络监控、入侵检测
- 允许启用 HTTP 加速器
缺点
- 易受中间人攻击
- 不适合重要网络
- 如果你有很多后端服务器,那么中点就会出现瓶颈
TLS 直通代理

直通代理是连接中的被动参与者。它“坐”在客户端和服务器之间,将加密消息从一个转发到另一个,中间不进行任何干预或解密。所有数据仅在端点进行解密。这种连接类型减轻了中介的负担,使其能够更准确地执行负载均衡。
端到端直通隧道是安全的,因为安全的HTTPS连接不会像终止过程那样转变为HTTP。中间人无法在隧道的任何部分访问受保护的数据。
这种方法的缺点是成本高,并且无法对网络流量执行任何操作。
使用直通代理的目的
- 封装在 HTTPS 流量中的代理。
- 更准确的负载平衡
- 路径所有部分上的安全连接。
- 防止“中间人”攻击。
使用直通代理的利与弊
优点
- 为HTTPS-HTTPS连接提供稳定的通道
- 不需要证书
- 不易受到中间人攻击
缺点
- 昂贵的
- 无缓存
- 没有数据分析
- 未对交通采取任何行动
总结:TLS终止代理与直通代理
TLS终止代理和直通代理各有其优缺点。然而,很难说哪种类型更好,因为终止代理和直通代理追求不同的目标。简要总结如下,展示了这两种类型之间的差异及其优缺点。
功能 | 终止代理 | 直通代理 |
网络设计 | 中间网关 | 端到端 |
数据加密/解密 | 在中间点 | 在端点 |
参与握手过程 | 主动 | 被动 |
连接结构 | HTTPS-代理-HTTP | HTTP-代理-HTTPS |
额外的安全措施 | 需要证书 | 不需要证书 |
HTTP兼容 | 是 | 否 |
安全性 | 易受中间人攻击 | 安全 |
代理功能效率 | 高 | 有限 |
减轻后端负担 | 是 | 否 |
成本 | 较便宜 | 较贵 |