使用 OpenSSL 的 PSK 提示
Posted
技术标签:
【中文标题】使用 OpenSSL 的 PSK 提示【英文标题】:PSK Hint with OpenSSL 【发布时间】:2012-01-30 11:33:43 【问题描述】:PSK Hint 在 OpenSSL 中的具体作用是什么? 我认为这是对客户端的一种服务器标识,但我没有发现任何具体的内容。
【问题讨论】:
【参考方案1】:PSK 身份提示定义不明确(请参阅RFC 4279)。在预共享密钥 (PSK) 方案中,客户端和服务器都必须能够派生相同的一组加密密钥。身份提示是服务器提供的,用于告诉客户端如何派生密钥。
由于每个服务器都可以有自己独特的生成密钥的方式,因此客户端必须了解有关服务器的一些信息才能知道如何处理 PSK 身份提示。并且每个实现都以不同的方式使用提示。
例如,NETCONF 在生成 PSK 时直接使用提示(其中+
表示连接):
PSK = SHA-1(SHA-1(psk_identity + "Key Pad for Netconf" + password) +
psk_identity_hint)
而 Symbian 安全用户平面位置 (SUPL) 协议使用它来显示协议版本并提供客户端可以使用的 PSK 生成器列表。
在 PSK-TLS 中使用的密钥标识符必须采用 RAND@SLP 的形式,其中 SLP 是 FQDN 格式,而 RAND 是一个 128 位的数字。下列 为 SUPL 1.0 定义了密钥标识符:
...
PSK_H-SLP_Master_Key 和 PSK_SPC_Key 必须是 128 位或 256 位 长。 PSK-TLS 协议中使用的 Key Hints 必须设置为“3GPP2 SUPL 1.0 密钥”
同样,EMV smart cards 的 TLS-PSK 使用身份提示来确定如何计算 PSK。
当参数 psk-identity-hint 未由 服务器,选择默认模式。此默认模式适用于 静态 PSK。否则 psk-identity-hint 确定一个特定的 xCDOL1 值和 PSK 计算的配置文件。
如您所见,如果您从服务器获得 PSK 提示,您已经必须知道它提供了哪些信息以及如何处理它,否则您将无法生成与服务器相同的密钥集服务器生成。
脚注:诺基亚负责 PSK-TLS 草案 RFC 4279 和 submitted the patch 到 OpenSSL 实施规范。
【讨论】:
以上是关于使用 OpenSSL 的 PSK 提示的主要内容,如果未能解决你的问题,请参考以下文章
OpenSSL 1.1.1 PSK TLS1.3 - TLS_256_GCM_SHA384 密码套件没有合适的签名算法错误