Кратко

  • Контролирующий агент ICE номинирует действительную пару для каждого компонента; если два полных агента претендуют на одну роль, их равномерно выбранные 64-битные значения распределяют работу.
  • Более высокое значение не удостоверяет участника, владельца адреса, человеческое согласие, честность сигнализации, защиту медиаданных или успех сервиса.

Выбор исполнителя без выбора главного

Слово «контролирующий» звучит как положение в иерархии. В RFC 5245 это лишь роль в процедуре. Каждый полный агент заранее выбирает число от нуля до 2^64−1. Если оба передают ICE-CONTROLLING, числа сравниваются. Один сохраняет роль, другой меняет её; ответ 487 Role Conflict помогает привести автоматы к согласованному состоянию.

В сравнении нет сведений о том, кто позвонил, отправил предложение, оплатил услугу или владеет устройством. После смены роли агент не выбирает новое число только из-за смены функции. Значение не является долговременным идентификатором. Оно нужно, чтобы две машины не принимали одну и ту же процедурную развилку.

Поэтому подпись «владелец сеанса» в панели не объясняет протокол, а расширяет его вывод. Случайный исход начинает выглядеть как делегирование власти, которого не было.

Номинации предшествует цепочка проверок

ICE собирает локальные, серверно-рефлексивные и ретранслируемые кандидаты, обменивается ими через уже существующую сигнализацию, формирует пары и выполняет проверки STUN. Успешная транзакция может добавить пару в список действительных. Это свидетельство двустороннего прохождения проверочных сообщений по данному пути в данный момент.

Затем контролирующий агент применяет локальную политику. При обычной номинации он посылает проверку с USE-CANDIDATE. RFC 8445 сохранил этот вариант и удалил агрессивную номинацию RFC 5245.

Приоритет кандидата, успешная проверка, действительность, номинация и итоговый выбор — разные квитанции. Приоритет не доказывает достижимость; действительность не означает выбор; выбор не гарантирует вечную пригодность. Единый статус «подключено» лишает расследование этой причинной истории.

ICE получает доверие из внешнего канала

ICE предполагает наличие сигнализации и сам не обеспечивает прохождение NAT для неё. Кандидаты, фрагменты имён пользователей и краткосрочные пароли приходят через эту внешнюю границу. Целостность STUN защищает проверки, но её смысл зависит от безопасной доставки ключей нужным сторонам.

Если сигнализация подменена, безупречный алгоритм может обработать ложные данные. В RFC 8445 рассматриваются ложно-недействительные, ложно-действительные и ложные peer-reflexive результаты. Термин «действительный» ограничен контекстом транзакции и ключа; это не документ на владение адресом и не универсальная аутентификация.

Журналу нужна не только отметка проверки целостности, но и происхождение учётных данных. Иначе известно, что сообщение соответствует ключу, но неизвестно, почему ключ представлял ожидаемого собеседника.

У согласия собственные часы

RFC 7675 считает начальный успех ICE первоначальным прикладным согласием на отправку по паре, одновременно уточняя: человек в этом не участвует. Согласие относится к одному 5-кортежу и должно продлеваться повторными запросами и ответами.

Запись о выбранной паре может сохраняться, когда последняя проверка согласия уже устарела. Сам ICE не сообщает момент окончания согласия. Следовательно, выбранную пару, охваченный 5-кортеж, время последнего продления и человеческое либо деловое разрешение из другой системы надо хранить отдельно.

Путь также ничего не обещает о полезной нагрузке. Конфиденциальность, целостность и аутентификация медиаданных относятся к другим протоколам. Приложение решает, смогло ли оно декодировать и принять данные. Выбранная пара не доказывает разборчивый звук, соблюдение SLA или результат встречи.

Доступность адреса не даёт права на него

RFC 8828 защищает приватность host-кандидатов, поскольку их раскрытие показывает топологию. Знать адрес, достигать его и иметь право публиковать — три разных утверждения. RFC 5128 также показывает, что прямой путь может не работать и потребуется ретранслятор. Номинированный путь не обязательно прямой, дешёвый, устойчивый или независимый.

Вместо одного зелёного индикатора нужна лестница: заявление роли, разрешение конфликта, аутентифицированный обмен кандидатами, целостность STUN, успешная пара, номинация, двусторонний выбор, актуальное согласие, защищённый трафик, приём приложением и наблюдаемый результат.

Дисциплина слоёв реальности Лу Хэна не позволяет нижней квитанции заимствовать полномочия верхней. RFC 5245 теперь исторический: общую процедуру заменил RFC 8445, а SDP-часть выделена в RFC 8839. Для аудита важно поколение спецификации, но не меняется граница: случайность назначает исполнителя, а не обладателя власти.

Источники