跳到主要内容

4. Extended Master Secret

4. Extended Master Secret

当 extended master secret extension 在 full handshake 中被协商时, master_secret 按如下方式计算:

master_secret = PRF(pre_master_secret, "extended master secret",
session_hash)
[0..47];

extended master secret computation 与 [RFC5246] 中描述的方式有以下差异:

  • 使用 "extended master secret" label, 而不是 "master secret".

  • 使用 session_hash, 而不是 ClientHello.randomServerHello.random.

session_hash 依赖 handshake log, 该 log 包括 ClientHello.randomServerHello.random, 以及来自客户端和服务器的 ciphersuites, key exchange information 和 certificates (如有). 因此, extended master secret 依赖所有这些 session parameters 的选择.

该设计反映了一项建议: keys 应绑定到计算它们的 security contexts [SP800-108]. 将 key exchange messages 的 hash 混入 master key derivation 的技术, 已经用于 Secure Shell (SSH) [RFC4251] 等其他知名协议.

Clients 和 servers SHOULD NOT 接受不使用 extended master secret 的 handshakes, 尤其是在它们依赖 compound authentication 等特性, 而这些特性落入 Section 6.1 所述 vulnerable cases 时.