TLS 1.3 预共享密钥(PSK)实战指南
预共享密钥(PSK,Pre-Shared Key)是 TLS 1.3 引入的重要特性,允许通信双方在握手前共享对称密钥,简化握手流程并提升性能。本文详细介绍 PSK 的原理、使用场景以及 OpenSSL 命令行实战。 什么是 PSK? PSK 是一种在 TLS 握手前就共享的对称密钥。在传统 TLS 握手过程中,客户端和服务端需要通过公钥密码学协商出共享密钥;而使用 PSK 时,双方直接使用预先共享的密钥进行加密通信。 PSK 的优势 减少握手延迟:省去公钥协商步骤,缩短握手时间 降低计算开销:无需执行昂贵的非对称加密运算 适用于特定场景:物联网设备、CDN 加速等对性能要求高的场景 PSK 的使用场景 会话恢复(Session Resumption):TLS 会话恢复本质上使用 PSK 物联网设备:计算资源受限的设备间安全通信 CDN 边缘节点:需要快速建立大量连接的场景 内部服务通信:在可信网络中使用对称密钥 PSK 密钥生成 PSK 密钥通常是 256 位(32 字节)的随机数据。使用 OpenSSL 生成: 1 2 # 生成 256 位 PSK 密钥(32 字节 = 64 个十六进制字符) openssl rand -hex 32 输出示例: 1 779cfa0b22020c13ae4e841e0c96b1b90b3afa48f6bcb85192f1694156676aac ⚠️ 注意:PSK 密钥必须安全存储和传输,不要在代码中硬编码或通过网络明文传输。 OpenSSL s_client PSK 测试 基础连接测试 使用 PSK 连接到支持 PSK 的服务器:...