【学习笔记】TLS

一、 介绍

        TLS 的前身是 Netscape 在 1994 年推出的 SSL(Secure Sockets Layer),最初版本为 SSL 2.0,随后改进为 SSL 3.0。但是 SSL 2.0/3.0 都存在设计漏洞和安全缺陷。为此,IETF 于 1999 年发布了 TLS 1.0(RFC 2246),做了若干改进,一步脱离了 SSL 的命运。此后,TLS 继续演进,先后发布了 TLS 1.1、TLS 1.2,直至 2018 年确定的 TLS 1.3(RFC 8446),成为当前最广泛支持的版本。

二、 TLS 的核心目标

  1. 加密通信(Confidentiality)
    通过对称加密算法(如 AES)确保数据在传输过程中无法被外界解读。
  2. 完整性验证(Integrity)
    利用消息认证码(MAC)或 AEAD(Authenticated Encryption with Associated Data)算法,确保数据未被篡改。
  3. 身份认证(Authentication)
    通过非对称加密与数字证书,确认通信双方的身份,防止中间人伪装。

三、 TLS 握手流程

在这里插入图片描述

  1. ClientHello
    客户端发送支持的TLS版本、加密套件列表、随机数以及扩展(如 Server Name Indication)等信息。

  2. SeverHello
    服务器从客户端提供的选项中,选择协议版本和加密套件,返回随机数,并附带其数字证书(公钥)及可选的服务器密钥交换参数。

  3. 证书验证
    客户端校验证书链(是否由受信任的 CA 签发、是否在有效期内、是否被吊销等),并提取服务器公钥。

  4. 密钥协商

    • TLS 1.2 及以前: 客户端生成预主密钥(pre-master secret),用服务器公钥加密后发送;服务器用私钥解密,两端各自通过随机数和预主密钥计算出对称会话密钥。
    • TLS 1.3: 使用椭圆曲线 Diffie–Hellman(ECDHE)完成密钥交换,双方各自计算共享密钥,无需额外的预主密钥加密步骤。
  5. Finished 消息
    双方使用派生出的对称密钥计算并交换 Finished 报文,确认整个握手过程未被篡改。之后,所有应用数据都在此对称密钥下加密传输。

四、 TLS 关键技术

  1. 对称加密算法

    • 常见: AES-GCM、ChaCha20-Poly1305。
    • 作用: 为大流量数据提供高速加密/解密。
  2. 非对称加密算法

    • 常见: RSA、ECDSA。
    • 用途: 数字签名与证书验证,以及在早期版本中传输预主密钥。
  3. 密钥交换协议

    • TLS 1.2 以前: RSA 或 DHE/ECDHE;
    • TLS 1.3: 仅保留 ECDHE(椭圆曲线 Diffie–Hellman)和 DHE,确保前向安全性(即历史密钥无法因长期密钥泄露而被破解)。
  4. 消息认证码(MAC)与 AEAD

    • TLS 1.2 多使用 HMAC-SHA256;
    • TLS 1.3 强制使用 AEAD 模式(如 AES-GCM、ChaCha20-Poly1305),同时实现加密与完整性验证。
  5. 数字证书与 PKI

    • 服务器(或客户端)通过 X.509 证书链,将自己的公钥与身份绑定;
    • 根证书由受信任的证书颁发机构(CA)签发,构建信任链。

五、TLS 与 HTTPS

        HTTPS = HTTP + TLS
        相较于HTTP,HTTPS 先在客户端和服务器之间建立一个 TLS 加密通道 (第三节TLS 握手流程),然后在这条已经加密好的通道上,按原本的 HTTP 规范 发送请求和接收响应。

六、实践

  1. 仅启用 TLS 1.2+ 或更高版本, 并优先使用 TLS 1.3。

  2. 弃用不安全的算法: 禁用 RC4、MD5、SHA-1、RSA 密钥交换。

  3. 配置强加密套件:TLS_AES_128_GCM_SHA256TLS_CHACHA20_POLY1305_SHA256

  4. 使用证书自动管理工具: 如 Let’s Encrypt + Certbot,实现证书的自动更新与轮换。

  5. 启用 HSTS(HTTP Strict Transport Security): 强制客户端使用 HTTPS,防止降级攻击。

  6. 定期安全扫描与渗透测试, 及时发现并修复配置或实现中的漏洞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值