OpenId 2.0: тип сеанса и тип ассоциации
Спецификация 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.
Означает ли это, что длина ключа MAC должна составлять 20 байтов для типа сеанса DH-SHA1 и 32 байта для типа сеанса DH-SHA256? Раздел 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 версий?
Еще одна точка данных: поставщик OpenId по адресу https://me.yahoo.com/ кажется, принимает запросы на связь с типом сеанса DH-SHA1 и типом ассоциации HMAC-SHA256, возвращая 20-байтовый ключ MAC.