Кратко
- RFC 2402 вычислял ICV для подготовленного представления: неизменяемые поля оставались, предсказуемо изменяемые принимали ожидаемое значение на входе, а непредсказуемое содержимое заменялось нулями.
- Совпавший ICV не доказывал неизменность всех сетевых битов. Фрагментация шла после исходящего AH, сборка — до входной проверки; replay-проверка могла быть выключена, а политика и приложение решали позднее.
TTL уменьшается на маршрутизаторе, а контрольная сумма IPv4 меняется вслед за ним. Буквальная проверка сочла бы нормальную пересылку вмешательством. Полное исключение стерло бы место и длину поля. RFC 2402 сохранил октеты в структуре, но заполнял их нулями во входе Integrity Check Value.
IP Authentication Header ноября 1998 года обеспечивал целостность без соединения и проверку источника, поддерживая необязательную защиту от повтора, которую получатель выбирал для каждой SA. Конфиденциальности он не давал. Он охватывал данные верхних уровней и столько IP-заголовка, сколько возможно, но сам документ называл покрытие заголовка частичным.
AH содержал Next Header, длину, Reserved, SPI, Sequence Number и Authentication Data. SPI, адрес назначения и протокол AH выбирали одностороннюю ассоциацию, алгоритм и ключ. Номер последовательности всегда передавался и увеличивался отправителем, даже если получатель не проверял повторы.
ICV-вход состоял из трёх классов. Неизменяемые поля и верхние данные входили своими значениями. Изменяемые поля с предсказуемым итогом приводились к ожидаемому состоянию. Непредсказуемое содержимое заполнялось нулями. Authentication Data тоже временно обнулялось, пока вычислялось значение для этого места.
Обнуление не было удалением. Октеты оставались на позициях, сохраняли выравнивание и включали длину поля в структуру, хотя содержимое не защищалось. Подготовленное представление повторяло каркас пакета, а не все значения. «Нормализация» — позднее объяснение; RFC говорил о неизменяемом, изменяемом предсказуемом и изменяемом.
Для IPv4 включались Version, IHL, Total Length, Identification, протокол AH, Source Address и обычный Destination Address. Назначение при source routing было изменяемым, но предсказуемым. TOS, Flags, Fragment Offset, TTL и Header Checksum обнулялись. Маршрутизаторы меняли TOS, могли ставить DF, уменьшали TTL и пересчитывали сумму.
Поэтому правильный ICV мог соседствовать с меньшим TTL. Он подтверждал совпадение подготовленного представления под одной SA, ключом и алгоритмом, а не неподвижность сетевого образа. Исключённые поля оставались в пакете, но их значения не входили в утверждение AH.
IPv6 применял тот же принцип. Class, Flow Label и Hop Limit обнулялись в модели 1998 года. Назначение под Routing Header было предсказуемым. Опции Hop-by-Hop и Destination помечали изменяемость Option Data; изменяемые данные становились нулевыми октетами, а тип и длина оставались покрыты. Новая опция должна была определить собственную обработку.
Padding ещё сильнее разделял расчёт и передачу. Явное заполнение в Authentication Data передавалось и аутентифицировалось. Алгоритм мог требовать неявные нули до границы блока; они участвовали в вычислении, но не появлялись в сети. Представление могло содержать заменённые значения и непереданные байты.
Фрагментация определяла единицу проверки. В транспортном режиме AH применялся к целому датаграмму до фрагментации. Маршрутизаторы могли разделить его, но получатель собирал до AH. Объект, всё ещё выглядевший фрагментом на этой стадии, отбрасывался и регистрировался. В туннельном режиме защищённый внешний пакет мог нести уже фрагментированный внутренний пакет — другой уровень.
На входе реализация выбирала SA, сохраняла полученный ICV, обнуляла Authentication Data и непредсказуемые поля, добавляла неявное заполнение и сравнивала. При включённой защите от повтора номер мог фильтроваться сначала, но окно продвигалось лишь после ICV. При выключенной защите наличие номера не доказывало replay-решения.
RFC 2402 считал датаграмму действительной на этапе AH. Архитектура RFC 2401 всё ещё требовала входную политику до доставки или пересылки, а приложение решало позже. SA, представление отправителя, ICV, фрагменты, сборка, представление получателя, сравнение, необязательный replay, политика и приложение были разными квитанциями.
Спецификация историческая. Она заменила RFC 1826 и была заменена RFC 4302 и RFC 4305. HMAC-MD5 и HMAC-SHA-1 не являются нынешними рекомендациями. RFC 4302 сохранил частичное покрытие, изменив поиск SA, расширенные номера и управление алгоритмами.
Поздние тексты Lu Heng о работающем коде и слоях реальности дают аналитическую рамку, а не лексику RFC. Метка «аутентифицировано» имеет силу только через реально построенное и сравненное представление; она не включает исключённые поля, необязательные проверки и будущие результаты.
Источники
- Запись RFC 2402 в IETF Datatracker
- Проверенная опечатка RFC 2402
- Lu Heng — Минимальная начальная спецификация и локальное решение
- Lu Heng — Слои реальности и ясность
- Lu Heng — Первенство работающего кода
- Запись RFC 2402 у RFC Editor
- RFC 1826 — IP Authentication Header
- RFC 2085 — HMAC-MD5 IP Authentication
- RFC 2401 — Архитектура безопасности протокола Интернет
- RFC 2402 — IP Authentication Header
- RFC 4302 — IP Authentication Header
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров
