2

OpenID 2.0 规范很少提及 OpenID 关联请求中会话类型和关联类型之间的关系。我的问题:(1)会话类型“DH-SHA1”和关联类型“HMAC-SHA256”的组合是否有效?(2) 反过来呢,即“DH-SHA256”和“HMAC-SHA1”?

我不认为规范明确禁止这些混合组合,但第 8.2.3 节描述了加密 MAC 密钥以进行传输的过程,如下所示:

enc_mac_key

     Value: base64(H(btwoc(g ^ (xa * xb) mod p)) XOR MAC key)

     Description: The MAC key (shared secret), encrypted with the
     secret Diffie-Hellman value.  H is either "SHA1" or "SHA256"
     depending on the session type.

这是否意味着会话类型 DH-SHA1 的 MAC 密钥长度必须为 20 字节,会话类型 DH-SHA256 的 MAC 密钥长度必须为 32 字节?规范第 6.2 节规定

OpenID Authentication supports two signature algorithms:
o  HMAC-SHA1 - 160 bit key length ([RFC2104] and [RFC3174])
o  HMAC-SHA256 - 256 bit key length ([RFC2104] and [FIPS180-2]

这是否意味着 DH-SHA1 必须始终与 HMAC-SHA1 配对,对于 ...256 版本也是如此?

另一个数据点:https ://me.yahoo.com/ 上的 OpenId 提供程序似乎接受会话类型为 DH-SHA1 和关联类型为 HMAC-SHA256 的关联请求,返回一个 20 字节的 MAC 密钥。

4

0 回答 0