Кратко
- RFC 5387 допускает симметричную, одностороннюю и распределённую по слоям аутентификацию, но channel binding должен проверяться на обоих концах.
- Посредник способен соединить две сильные IPsec SA. Шифрование каждого плеча остаётся настоящим, а утверждение о едином канале между приложениями — ложным.
Переход, который выглядел непрерывным
У каждой SA есть срок жизни по времени или объёму данных. Когда он заканчивается, система создаёт новую. Порты, адреса и приложение остаются прежними, поэтому оператор воспринимает событие как обычную замену ключа.
RFC 5387 предупреждает: непрерывность ассоциации существует только внутри одной SA, если отдельный механизм не доказал переход. В момент rekey злоумышленник на пути может подменить жертву и занять новую ассоциацию. Успешный handshake новой SA доказывает лишь её локальное создание.
Connection latch связывает поток с идентичностью peer и качеством защиты. Channel binding вводит данные, уникально описывающие пару SA, в аутентификацию верхнего уровня. Если свойства сохранены и проверены, поток может продолжиться. Если peer или защита изменились, канал должен сломаться до приёма новых данных.
Так выглядит перенос полномочия в технической форме. Новый ключ, оператор или агент не наследует смысл предыдущего решения только потому, что продолжает ту же работу.
Два защищённых плеча и ложная середина
Атакующий устанавливает SA A с клиентом и SA B с сервером. На обоих плечах работают конфиденциальность, целостность и защита от replay. Между ними посредник расшифровывает данные и снова шифрует их, пересылая верхнюю аутентификацию без изменений.
Оба журнала правдивы: каждый конец действительно видел IPsec. Но конечные точки сетевых SA не совпадают с конечными точками приложения. Из двух локальных фактов нельзя вывести прямой сквозной канал.
RFC 5387 требует привязать каждую SA к верхней сессии и её сторонам. RFC 5056 обобщает проверку: приложения подтверждают, что наблюдают одинаковые channel-binding data. Две созданные посредником связи дадут разные значения, и связанная аутентификация должна завершиться ошибкой.
Название протокола, адрес или сертификат не идентифицируют экземпляр. RFC 5929 и RFC 9266 показывают, что тип binding имеет точные свойства уникальности. Инвентарная запись «поддерживается» не равна квитанции конкретной сессии.
Направление идентичности выбирает политика
Публичный сервер может аутентифицироваться перед анонимным клиентом. В корпоративной системе клиент подтверждает пользователя в приложении, а сервер — сетевую идентичность в IKE. Разные слои естественно знают разных principals.
RFC 5387 описывает симметричные и асимметричные SAB и CBB. В A-CBB обычные IKE credentials есть только у одной стороны. Верхняя аутентификация тоже может быть односторонней. Клиент сверху и сервер снизу способны вместе дать взаимную аутентификацию, распределённую по слоям.
Но проверка самого канала остаётся двусторонней. Каждый конец должен получить binding и сравнить его со своим наблюдением. Свидетельство одной стороны не говорит, какую SA видел другой конец.
Кто обязан доказать имя — вопрос полномочий. Совпадает ли общий объект — вопрос согласованности доказательств. Политическая асимметрия не разрешает односторонне устанавливать общий факт.
Latch хранит обещание, а не процесс
IPsec-канал у RFC 5387 сохраняет peer identity и качество защиты на всём потоке. RFC 5660 позднее описал latching как наблюдение за изменениями SPD и SAD, способными нарушить исходные требования приложения.
Фиксируются тип защиты, transport или tunnel mode, криптографическое качество, локальная и удалённая идентичности. При несовместимом изменении верхний уровень получает синхронное уведомление, а не продолжает молча.
SA могут меняться; обещание — нет. Правильный rekey создаёт квитанцию, связывающую старое и новое состояние. Неправильный меняет свойство и должен остановить канал. Такое разделение позволяет автоматизировать переход, не превращая автоматизацию в источник власти.
Между верхними сессиями latch иногда кэшируется против inter-session spoofing, но channel binding выполняется заново для каждой сессии. Память о прошлом не является согласием на настоящее.
Поздний отказ не означает нулевой ущерб
Полностью аутентифицированный IKE должен отвергнуть посредника при создании SA. В CBB неаутентифицированный IKE может успеть создать состояние. Ошибка появится позже, когда верхняя аутентификация проверит binding.
Это полезная граница принятия, но до неё расходуются CPU и память, передаются сообщения, иногда раскрывается материал, пригодный для офлайн-подбора пароля. Финальный отказ не стирает экспозицию.
Поэтому испытание измеряет окно: время, байты, credentials, ресурсы и привилегии до обнаружения. Права расширяются только после успешной привязки, а цена неаутентифицированного этапа ограничивается.
Оператор должен видеть три состояния: SA создана, канал подтверждён, principal авторизован. Один зелёный статус делает причинность невидимой.
Испытание с настоящим посредником
Сначала клиент и сервер соединяются напрямую. Оба сохраняют binding value, верхнюю сессию, peer, качество защиты и результат аутентификации. Записи должны описывать один канал.
Затем контролируемый proxy строит две сильные SA и пересылает верхний обмен. Алгоритмы не ослабляются, пакеты не повреждаются. Ошибка binding должна показать неверную композицию при правильных компонентах.
Тест повторяется для server-only, client-only, двусторонней и разделённой по слоям аутентификации. Политика имени меняется, двусторонняя сверка — нет.
После этого выполняется rekey в длинном потоке. Один переход сохраняет свойства и проходит; другой меняет peer или качество и разрывает latch до следующих данных. Отчёт фиксирует, кто заметил расхождение, какое состояние удалено и что увидело приложение.
Квитанция композиции
Она называет нижний канал, верхнюю сессию и endpoints, направление аутентификации в каждом слое, оба решения проверки, зафиксированные свойства и историю переходов. Пропуск, различие или неразрешённая смена закрывают путь.
Так сохраняется граница между хранителем записи и источником полномочия. Посредник может честно управлять двумя SA, но не вправе объявить их каналом, на который согласились стороны.
RFC 5387 защищает смысл доказательства: локальный контроль отвечает только за наблюдаемую границу. Сквозная истина появляется там, где конечные стороны сравнили один и тот же факт.
Источники
- RFC 5387 в HTML
- RFC 5387 в тексте
- Карточка публикации RFC 5387
- RFC 5387 в IETF Datatracker
- RFC 5386: неаутентифицированный IPsec
- RFC 5056: channel bindings
- RFC 5660: IPsec connection latching
- RFC 4301: архитектура IPsec
- RFC 4302: Authentication Header
- RFC 4303: Encapsulating Security Payload
- RFC 4306: первоначальная IKEv2
- RFC 7296: последующая IKEv2
- RFC 5929: bindings для TLS
- RFC 9266: bindings для TLS 1.3
- RFC 2743: GSS-API
- RFC 4422: SASL
- RFC 4120: Kerberos V5
- RFC 4251: архитектура SSH
- RFC 4322: opportunistic encryption с IKE
- RFC 4953: защита TCP от spoofing
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
