# PSK是什么？定义、例子与常见误区

> PSK（预共享密钥）是 TLS 双方在握手前就已共同持有的秘密，用于会话恢复，或在不使用证书的情况下完成身份认证。

Source: https://ssl.sh/zh/glossary/psk/
Last updated: 2026-11-10

预共享密钥有两种来源。外部 PSK 通过带外方式预先配置，常见于无法处理证书的物联网和资源受限设备，TLS 1.2 为此提供了 TLS_PSK_WITH_AES_128_GCM_SHA256 等专用套件。恢复 PSK 则来自之前的连接：在 [TLS 1.3](https://ssl.sh/zh/glossary/tls-1-3/) 中，服务器发送 NewSessionTicket，这张票据就成为客户端下次可以出示的 PSK 标识。TLS 1.3 用同一个 pre_shared_key 扩展处理这两种情况，其中的 binder 值用来证明客户端确实知道这个密钥。

## 为什么重要
使用 PSK 恢复会话可以省掉证书传输、证书链验证和签名运算，速度更快，[0-RTT](https://ssl.sh/zh/glossary/0-rtt/) 早期数据也建立在它之上。安全取舍由 psk_key_exchange_modes 扩展决定：psk_ke 只用 PSK，不具备[前向保密](https://ssl.sh/zh/glossary/forward-secrecy/)；psk_dhe_ke 会额外做一次新的 (EC)DHE 交换，浏览器通常只提供 psk_dhe_ke。国内物联网平台的设备接入有时也采用 PSK 方式，这时密钥的生成和保管尤其关键。

## 例子
TLS 1.3 会话恢复时 ClientHello 中的相关字段，以及用 OpenSSL 快速测试会话恢复：

```text
psk_key_exchange_modes: psk_dhe_ke
key_share:              x25519 (...)
early_data              (only when sending 0-RTT data)
pre_shared_key:         identity = <ticket>, binder = <HMAC over the ClientHello>
```

```bash
openssl s_client -connect example.com:443 -sess_out session.pem
openssl s_client -connect example.com:443 -sess_in session.pem
```

服务器接受 PSK 时，第二次运行的输出中会显示 `Reused`。

## 常见误区
- **PSK 连接没有前向保密。** 只有 psk_ke 模式没有，psk_dhe_ke 会把 PSK 与临时密钥交换结合起来。
- **PSK 就是一个密码。** 外部 PSK 必须是高熵的随机密钥，低熵的口令可以被攻击者拿录下的握手离线猜解。
- **TLS 1.3 中会话票据和 PSK 是两套机制。** TLS 1.3 的会话票据就是恢复 PSK 的标识。

## 相关术语

- [会话恢复](https://ssl.sh/zh/glossary/session-resumption/): 会话恢复是 TLS 的一种机制，客户端重连时复用先前会话的密钥材料，跳过完整的密钥交换和证书验证。
- [Session Ticket](https://ssl.sh/zh/glossary/session-ticket/): Session Ticket 是服务器交给客户端保管的加密会话状态，客户端下次连接时出示它即可恢复会话，服务器无需保存任何状态。
- [0-RTT](https://ssl.sh/zh/glossary/0-rtt/): 0-RTT 是 TLS 1.3 和 QUIC 的特性，允许回访的客户端用上一次会话留下的密钥，在第一个数据包里就发送应用数据。
- [TLS 1.3](https://ssl.sh/zh/glossary/tls-1-3/): TLS 1.3 是当前最新的传输层安全协议版本（2018 年的 RFC 8446，现行规范为 RFC 9846），完整握手只需一个往返，且只保留 AEAD 加密算法。
- [前向保密](https://ssl.sh/zh/glossary/forward-secrecy/): 前向保密是密钥交换的一种安全属性：即使服务器的长期私钥日后泄露，过去连接的会话密钥也不会因此暴露。
- [密钥交换](https://ssl.sh/zh/glossary/key-exchange/): 密钥交换是 TLS 握手中客户端与服务器建立共享秘密的步骤，保护连接的对称密钥都由这个共享秘密派生而来。
