Атрибут целостности сообщения WebRTC ICE-Stun

Что я использую для ключа HMAC-SHA1 при проверке атрибута MESSAGE-INTEGRITY запросов привязки STUN из Chrome? (хром находится в роли ICE-CONTROLLING, поскольку предложение SDP поступает от партнера ICE-LITE)

В RFC-5245 говорится:

Чтобы вычислить целостность сообщения для проверки, агент использует фрагмент удаленного имени пользователя и пароль, полученные от SDP от его однорангового узла. Фрагмент локального имени пользователя известен непосредственно агенту как его собственный кандидат.

Но в нем не указано, как они объединяются агентом для формирования ключа HMAC SHA1.

Я пробовал разные комбинации ice-username: ice-password для формирования ключа, но, похоже, ни одна из них не может сгенерировать такой же хеш, как атрибут целостности сообщения в запросе привязки из chrome.

Кто-нибудь знает, как формируется ключ HMAC?


person lilroo    schedule 24.10.2019    source источник


Ответы (1)


Запросы для вас будут подписаны вашим локальным ice-pwd, а ответы должны быть подписаны им (как описано ere).

См. RFC 5389 о том, как вычислить хэш.

person Philipp Hancke    schedule 24.10.2019
comment
Спасибо! Вы фактически вернули меня на правильный путь, поскольку моя настоящая проблема заключалась в том, что я использовал неправильную длину во время хеширования. Это легко упустить: длина во время хеширования должна включать только конец атрибута MESSAGE-INTEGRITY, а НЕ ОТПЕЧАТКУ ПАЛЬЦА! - person lilroo; 24.10.2019
comment
да. К сожалению, нет тестового вектора вроде tools.ietf.org/html/rfc5769 - - в таких случаях очень помогает конкретный пример - person Philipp Hancke; 24.10.2019
comment
@PhilippHancke RFC 5389 поддерживает только SHA1 для атрибута целостности сообщения. Однако предлагаемый RFC [@ раздел 14.6] (tools.ietf.org/id/) поддерживает SHA256. Безопасно ли предполагать поддержку SHA1 только в контексте запроса привязки ICE для проверок подключения в WebRTC? Я спрашиваю, потому что один из популярных серверов STUN / TURN с открытым исходным кодом может поддерживать SHA256, SHA512 также. Мне было интересно, откуда это взялось. Опять же ... Меня интересует только контекст WebRTC. - person Sunny; 10.03.2020