9

PSK提示在 OpenSSL 中的具体作用是什么?我认为这是对客户端的一种服务器标识,但我没有发现任何具体的内容。

4

1 回答 1

12

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 协议中使用的密钥提示必须设置为“3GPP2 SUPL 1.0 密钥”</p>

同样, EMV 智能卡的TLS-PSK使用身份提示来确定如何计算 PSK。

当服务器未下发参数 psk-identity-hint 时,选择默认模式。此默认模式适用于静态 PSK。否则,psk-identity-hint 确定 xCDOL1 值和 PSK 计算的特定配置文件。

如您所见,如果您从服务器获得 PSK 提示,您已经必须知道它提供了哪些信息以及如何处理它,否则您将无法生成服务器生成的同一组密钥。

脚注:诺基亚负责 PSK-TLS RFC 4279 草案,并将补丁提交给实现规范的 OpenSSL。

于 2012-01-06T04:31:39.327 回答