传输层安全性 (TLS) 入门
2025-04-24 09:50
LayerTwo Labs
2025-04-24 09:50
订阅此专栏
收藏此文章

TLS(Transport Layer Security) 协议将继续在整个互联网中使用。尽管它作为 Web2.0 互联网的底层技术意义重大,但大多数用户需要意识到它的存在,因为浏览器已将 TLS 协议作为默认选项。这凸显了它在确保安全在线通信方面的关键作用。

传输层安全性 (TLS) 是一种加密协议,旨在保护计算机网络通信安全。在当今数字时代,敏感信息通过网络传输,TLS 在确保数据机密性、完整性和身份验证方面发挥着至关重要的作用。本入门指南旨在全面介绍 TLS,包括其内部工作原理、安全特性、漏洞以及最佳实践。

TLS 的工作原理

TLS 通过复杂的握手过程来确保客户端和服务器之间的安全通信。握手过程可分为以下几个步骤:

  1. 客户端 Hello: 客户端通过向服务器发送客户端 Hello 消息来发起握手。此消息包含客户端支持的最高 TLS 版本、一个随机数 (ClientRandom) 以及支持的密码套件列表。
  2. 服务器 Hello 消息: 收到客户端 Hello 消息后,服务器会响应一条服务器 Hello 消息。该消息包含所选的 TLS 版本、随机数 (ServerRandom)、所选的密码套件以及服务器的数字证书。
  3. 身份验证和密钥交换: 客户端验证服务器的数字证书以确保其真实性。这包括检查证书的有效性、向受信任的根证书颁发机构 (CA) 验证证书链,以及确认服务器的域名与证书中指定的域名匹配。客户端还可能执行其他检查,例如验证证书吊销状态。身份验证和密钥交换过程包括以下步骤:
  4. 对称加密: 在 TLS 中,对称加密通常用于加密实际传输的数据。客户端生成一个预主密钥,并使用从服务器数字证书中提取的公钥对其进行加密。服务器使用其私钥解密该预主密钥。客户端和服务器分别根据该预主密钥和之前交换的随机数,生成相同的主密钥。然后,该主密钥用于生成对称加密和解密会话密钥。
  5. 非对称加密: 非对称加密可以安全地交换对称会话密钥,而不会将其暴露给窃听者。Diffie-Hellman (DH) 密钥交换协议在 TLS 中被广泛使用。客户端和服务器交换各自的 DH 公共参数(包括各自的 Diffie-Hellman 公钥),然后双方将各自的私钥与接收到的公钥组合起来计算共享密钥。然后,该共享密钥用于派生对称加密的会话密钥。
  6. 更改密码规范: 密钥交换后,客户端和服务器发送一条消息,表明后续消息将使用协商好的算法和密钥进行加密。
  7. 加密数据交换: 从此时起,客户端和服务器之间传输的所有数据都将使用约定的对称加密算法和会话密钥进行加密和验证。这确保了数据的机密性和完整性。
TLS 流程
TLS 流程

TLS 握手过程通过建立共享密钥、验证服务器身份以及设置加密参数来确保通信安全。握手过程中使用的具体算法、密钥长度和协议取决于协商的密码套件。TLS 支持多种加密算法,包括对称加密算法(例如高级加密标准 (AES))、非对称加密算法(例如 RSA 或椭圆曲线加密 (ECC))以及密钥交换协议(例如 Diffie-Hellman (DH) 或椭圆曲线 Diffie-Hellman (ECDH)。

TLS 是一种复杂的协议,为在线通信提供安全的基础。它的握手过程和加密机制可以保护传输中的数据,确保全球用户的隐私和完整性。

TLS 版本和协议

TLS 已经历了多个版本,每个版本都引入了安全性和性能方面的改进。以下是主要 TLS 版本的细分:

  1. TLS 1.0: TLS 1.0 于 1999 年发布,作为 SSL 3.0 的升级版本,引入了多项安全增强功能。然而,由于 POODLE(降级旧式加密的填充预言)和 BEAST(针对 SSL/TLS 的浏览器漏洞)等漏洞,TLS 1.0 目前被认为是不安全的。
  2. TLS 1.1: TLS 1.1 于 2006 年发布,旨在解决 TLS 1.0 中存在的漏洞。它引入了更强大的密码套件并改进了安全机制,使其更能抵御攻击。然而,TLS 1.1 也被认为已经过时,并且已被新版本所取代。
  3. TLS 1.2: TLS 1.2 于 2008 年发布,带来了显著的安全增强和新的加密算法。它支持更强大的密码套件,并增强了对填充预言攻击和重新协商攻击等攻击的抵御能力。TLS 1.2 已被广泛采用,并被认为是安全通信的最低推荐版本。
  4. TLS 1.3: TLS 1.3 发布于 2018 年,代表着一项重大的协议革新。它显著提升了安全性,降低了延迟,并增强了性能。TLS 1.3 简化了握手流程,默认支持前向保密,并移除了旧版加密算法和不安全的功能。它还引入了 0-RTT(零往返时间恢复)和早期数据等功能,从而提高了 TLS 连接的效率。

TLS 版本及其安全性改进如下:

  • TLS 1.0:在 SSL 3.0 的基础上提供安全性增强。
  • TLS 1.1:解决了 TLS 1.0 中的漏洞并引入了更强大的密码套件。
  • TLS 1.2:带来了显著的安全性增强并提高了抵抗攻击的能力。
  • TLS 1.3:彻底改革了协议,引入了重大的安全改进,并增强了性能。

TLS 1.0、1.1 和 SSL 因存在安全漏洞而被弃用,强烈建议各组织迁移到 TLS 1.2 或更高版本。TLS 1.3 凭借其改进的安全性和性能特性,正被广泛采用,成为安全通信的首选 TLS 版本。

TLS 组件和安全功能

TLS 包含多个组件和安全功能,以建立安全可信的通信:

  1. TLS 记录协议: TLS 记录协议封装数据,并在客户端和服务器之间安全地传输。它将数据划分为可管理的单元(称为 TLS 记录),然后对其进行加密、完整性保护和传输。
  2. 密码套件: 密码套件是用于加密、密钥交换和消息认证的加密算法。典型的密码套件包含加密算法(例如 AES)、密钥交换方法(例如 RSA 或 Diffie-Hellman)以及消息认证码 (MAC) 算法(例如 HMAC)。密码套件的选择取决于所需的安全级别以及客户端和服务器的兼容性。
  3. 公钥基础设施 (PKI) 和证书颁发机构 (CA): PKI 是一个通过数字证书提供安全通信的框架。CA 是受信任的第三方实体,负责颁发数字证书,将实体(例如服务器)的身份与其公钥绑定。这些证书用于服务器身份验证,使客户端能够验证服务器身份的真实性。CA 通过使用其私钥对证书进行签名,并将信任链返回到受信任的根 CA,从而建立信任。
  4. 服务器和客户端身份验证: TLS 支持服务器和客户端身份验证机制。服务器身份验证通过验证服务器的数字证书来确保客户端与目标服务器通信。客户端可以通过验证证书的完整性、检查证书链以及确认服务器的域与证书中指定的域匹配来验证证书。客户端身份验证提供相互信任,并向服务器验证客户端的身份。这通过受信任的 CA 颁发的客户端证书来实现。服务器可以验证客户端的证书,以确保只有授权的客户端才能访问敏感资源。
  5. 完美前向保密 (PFS) 和会话恢复: 完美前向保密确保即使长期私钥被泄露,过去的通信仍然安全。PFS 通过为每个会话生成临时会话密钥来实现,这些密钥并非源自服务器的长期私钥。这可以防止攻击者即使获取了服务器的私钥也无法解密过去的通信。

会话恢复技术允许客户端和服务器重用先前建立的会话参数,以优化性能。这些技术包括会话 ID 和会话票据,无需执行完整握手即可快速恢复安全会话。

常见的 TLS 漏洞和攻击

与任何加密协议一样,TLS 也面临着威胁加密通信安全的漏洞和攻击。以下是一些常见的 TLS 漏洞和攻击:

  1. BEAST(针对 SSL/TLS 的浏览器漏洞): BEAST 攻击利用了 TLS 1.0 及更早版本中使用的密码块链接 (CBC) 模式中的一个漏洞。攻击者可以通过注入已知明文并分析生成的密文来逐步解密加密数据。TLS 1.1 和 1.2 版本通过对每条消息使用不同的密码套件构造和随机初始化向量 (IV) 来缓解此漏洞。
  2. Heartbleed: Heartbleed 是 OpenSSL(一种广泛使用的 TLS 实现)中的一个严重漏洞。它允许攻击者从服务器内存中读取敏感信息,包括私钥、会话密钥和用户数据。此漏洞已通过 OpenSSL 补丁版本的发布得到修复,受影响的服务器需要更新其软件并撤销受损的证书。
  3. 中间人 (MitM) 攻击: 在中间人攻击中,攻击者会拦截客户端和服务器之间的通信,伪装成双方。攻击者可以在客户端和服务器不知情的情况下解密并篡改其间传输的数据。通过正确验证数字证书、强身份验证机制以及像 Diffie-Hellman 这样的安全密钥交换协议,可以有效抵御中间人攻击。
  4. TLS 拦截: TLS 拦截,也称为 SSL/TLS 拦截或 SSL/TLS 检查,是指由受信任实体(通常是组织的网络安全设备或代理服务器)拦截加密的 TLS 流量。虽然 TLS 拦截可以用于合法目的(例如监控威胁),但如果实施不当,会带来安全风险。它会破坏端到端加密模型,需要谨慎管理私钥以防止未经授权的访问。
  5. TLS 降级攻击: 在 TLS 降级攻击中,攻击者会强制客户端和服务器使用安全性较低的旧版 TLS 或强度较低的密码套件。通过利用旧版本中的漏洞,攻击者可以削弱通信的安全性,并可能解密传输的数据。要抵御降级攻击,需要使用强度较高的密码套件、仅支持安全的 TLS 版本,并实施安全协议。

及时更新 TLS 实施并应用补丁修复已知漏洞至关重要。定期进行安全审计和监控新出现的漏洞至关重要。此外,实施强大的密码套件、遵循证书管理的推荐做法以及确保安全的密钥交换机制,有助于降低与 TLS 漏洞和攻击相关的风险。

实施 TLS 的最佳实践

遵循最佳实践实施 TLS 对于确保最佳安全性至关重要。以下是实施 TLS 的关键建议:

配置强密码套件:

  • 仅启用能够提供可靠加密和身份验证的强密码套件。避免使用弱密码套件或已弃用的密码套件。
  • 优先使用具有完美前向保密 (PFS) 的密码套件,例如使用 Diffie-Hellman (DH) 或椭圆曲线 Diffie-Hellman (ECDH) 密钥交换的密码套件。
  • 推荐的密码套件示例包括 TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384、TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 和 TLS_AES_256_GCM_SHA384。

禁用弱协议:

  • 禁用 SSL、TLS 1.0 和 TLS 1.1 等过时且易受攻击的协议。
  • 我更喜欢 TLS 1.2 或最新的 TLS 1.3,以提高安全性和性能。
  • TLS 1.3 引入了显著的安全增强功能,应尽可能采用。

选择强大的加密算法和密钥长度:

  • 使用强加密算法,例如用于对称加密的 AES、用于非对称加密的 RSA 或 ECC 以及用于散列的 SHA-256。
  • 确保使用足够长的密钥来抵御暴力攻击。例如,使用 2048 位或更高的 RSA 密钥以及 256 位或更高的 ECC 曲线。

有效的 TLS 证书管理:

  • 从受信任的证书颁发机构 (CA) 获取数字证书以确保真实性。
  • 实施适当的证书存储和保护措施,保护私钥免遭未经授权的访问。
  • 定期轮换证书,替换即将过期的旧证书以维护安全。
  • 在证书到期之前进行监控和更新,以防止服务中断。

安全密钥存储:

  • 将私钥存储在安全硬件模块 (HSM) 或密钥管理系统中,以防止未经授权的访问和盗窃。
  • 利用密钥加密和强大的访问控制来保护私钥。

密码套件优先级:

  • 设置适当的密码套件顺序,优先考虑更强大、更安全的套件。
  • 考虑使用“TLS_FALLBACK_SCSV”机制来减轻降级攻击。

通过实施强密码套件、禁用弱协议、选择稳健的加密算法和密钥长度、有效管理证书、保护密钥存储以及确定密码套件的优先级,组织可以增强其 TLS 实施的安全性。遵循这些最佳实践有助于防御各种攻击,确保数据的机密性和完整性,并增强对安全在线通信的信任。

TLS 及其未来发展

TLS 作为安全通信的关键协议,正在不断发展和改进。以下是有关 TLS 及其未来发展的关键方面:

  1. TLS 1.4 及后续版本: TLS 1.4 即将发布,旨在增强安全性、性能和功能集。虽然目前 TLS 1.4 的具体技术细节可能无法在撰写本文时公布,但预计它会根据社区反馈和新兴的安全需求进行进一步的改进。
  2. 后量子密码学 (PQC): 量子计算机的出现对现有的密码算法构成了潜在威胁。后量子密码学 (PQC) 是一个活跃的研究领域,专注于开发能够抵御量子计算机攻击的算法。TLS 很可能会在标准化的后量子算法中融入这些算法,从而确保量子计算时代的长期安全性。
  3. 轻量级实现: 在物联网 (IoT) 和 5G 网络等新兴技术中部署 TLS,需要轻量级实现以适应资源受限的设备。优化的 TLS 协议和加密算法(例如基于椭圆曲线加密 (ECC) 的算法)是首选,以确保高效的性能并保持安全性。
  4. 高效的密钥交换机制: 高效的密钥交换机制在 TLS 部署中至关重要。随着新的密钥交换算法和协议的引入,其效率和抗攻击性成为关注的焦点。诸如椭圆曲线 Diffie-Hellman (ECDH) 及其变体等技术正在不断改进,以实现安全高效的密钥交换。

TLS 是一种动态协议,能够适应新兴技术、不断演变的安全威胁以及高效通信的需求。TLS 1.4、后量子密码学、轻量级实现和高效密钥交换机制的持续发展,旨在确保该协议在应对不断变化的挑战时保持良好的弹性、可扩展性和安全性。通过紧跟这些发展动态,组织可以继续利用 TLS 作为可靠且安全的协议来满足其通信需求。

总结

传输层安全性 (TLS) 通过提供机密性、完整性和身份验证,在确保在线通信安全方面至关重要。了解 TLS 握手、加密机制、漏洞和最佳实践对于组织和开发人员至关重要。通过优先实施 TLS 并遵守建议的安全措施,我们可以确保敏感数据的持续保护,并在数字领域建立信任。

参考:

  1. Ristic, I. (2018). Bulletproof SSL and TLS: Understanding and deploying SSL/TLS and PKI to secure servers and web applications. Feisty Duck.
  2. Rescorla, E. (2018). SSL and TLS: Designing and Building Secure Systems. Addison-Wesley Professional.
  3. Transport Layer Security (TLS) Protocol.”[1] Internet Engineering Task Force (IETF).
  4. “TLS 1.3: Cryptographic improvements and their benefits.”[2] Cloudflare Blog.
  5. “Transport Layer Security (TLS).” OWASP.

原文链接:https://medium.com/zkpass/a-primer-on-transport-layer-security-tls-a7495eeff004

关于 The3Cloud

The3Cloud[3] 旨在构建一个安全的通信平台,该平台优先考虑跨不同应用程序的互操作性和强大的安全性。截至本文撰写时,我们已是:世界上第一个开源 zkTLS 实现,包含以下两个主要组件:

  • The3Cloud — zkTLS[4]
  • The3Cloud — Interpolation Protocol[5]

The3Cloud ZkTLS 使用 ZkVM 实现两个密钥验证,以使用 Risc0[6] 和 SP1[7] 后端证明完整的 TLS 堆栈:

  • Authentication of Communication and Identity// 通信和身份验证:通过验证认证链确保 TLS 会话获得授权,这确认通信实体具有由授权证书颁发机构 (CA) 颁发的有效、可信证书。

  • Data Integrity and Validity// 数据完整性和有效性:验证传输的数据是否符合预定义的请求和响应模板,确保请求和响应的完整性,且不泄露敏感信息。这可以防止未经授权或格式错误的数据被处理。

我们的使命是:打造一个开发者友好的生态系统,通过消除传统鸿沟,将这些生态系统统一到一个无缝、安全的框架中,从而加速 dApp 的开发。

  • https://docs.the3.cloud
  • https://t.me/the3cloud
  • https://medium.com/@the3cloud
  • https://discord.com/invite/2KKYsMkeFZ

我们非常高兴与您合作,共同探索 zkTLS 如何赋能您的项目。如有疑问或合作意向,请联系 contact@the3.cloud。

关于 NakaLa₿s 狙击猎人社群

为什么叫 Naka? 取自比特币创始人 Satoshi Nakamoto 中Naka

我们是一群来自“零级市场”,具备挖掘、捕获“破坏式创新”「特质及品味」人的狙击猎人社群!

让我们一起一起掀桌子:上车 Crypto2.0 牌桌做主人,不做“Crypto1.0 牌桌”韭菜…...

我们认为一生成功捕获一次:零级市场「破坏式创新」足矣!

欢迎对Bitcoin2.0、一人公司 /Solopreneur 、一人资本 /Solo VC、DevRel 开发者关系、社会企业 /social enterprise、网络国家 /The Network State、开发者经济体、破坏式创新等话题感兴趣的朋友们,一起加入 NakaLa₿s 捕手社群,一起做狙击猎人,拒做韭菜!!

  • 访问 https://news.naka.vc[8]
  • 关注 https://t.me/Naka_Labs[9]
  • 关注 https://x.com/JinJian5[10]
  • 订阅星球 https://t.zsxq.com/B5FJs
扫码订阅星球,获取中英文电子书 :-)
扫码订阅星球,获取中英文电子书 :-)
参考资料
[1] 

Transport Layer Security (TLS) Protocol.”: https://www.ietf.org/wg/tls/

[2] 

“TLS 1.3: Cryptographic improvements and their benefits.”: https://blog.cloudflare.com/tls-1-3-cryptographic-improvements/

[3] 

The3Cloud: https://docs.the3.cloud

[4] 

The3Cloud — zkTLS: https://github.com/the3cloud/zktls

[5] 

The3Cloud — Interpolation Protocol: https://github.com/the3cloud/zktls-contracts

[6] 

Risc0: https://risczero.com/

[7] 

SP1: https://github.com/succinctlabs/sp1

[8] 

https://news.naka.vc: https://news.naka.vc

[9] 

https://t.me/Naka_Labs: https://t.me/Naka_Labs

[10] 

https://x.com/JinJian5: https://x.com/JinJian5


【免责声明】市场有风险,投资需谨慎。本文不构成投资建议,用户应考虑本文中的任何意见、观点或结论是否符合其特定状况。据此投资,责任自负。

LayerTwo Labs
数据请求中
查看更多

推荐专栏

数据请求中
在 App 打开