Протокол аутентификации AH (RFC 2402) предназначен для предотвращения реализации угроз нарушения целостности, т.е. модификации и подмены информации в IP-пакете, а также подмены IP-адреса отправителя. При этом скрытия внутренней структуры корпоративной сети не происходит, поскольку в заголовке пакета указываются реальные адреса и другие данные.
Реализация протокола достаточно проста и заключается в добавлении специального заголовка между стандартным заголовком IP-пакета и полем данных, т.е. заголовком пакета более высокого уровня (например, TCP).
Формат заголовка AH следующий:
1. Next Header (8 бит) – поле, содержащее идентификатор протокола, чей заголовок следует за заголовком AH (например, ESP или TCP).
2. Payload Length (8 бит) – длина заголовка, измеряемая в четырехбайтных словах минус два слова (для совместимости с более ранней спецификацией AH).
3. Reserved (16 бит) – зарезервированное поле, устанавливаемое в нулевое значение.
4. Security Parameters Index (SPI, 32 бита) – индекс параметров защиты, идентифицирует специальную запись, в которой указываются алгоритмы шифрования, хеширования, ключи и другие параметры виртуального канала.
5. Sequence Number Field (32 бита) – номер пакета, предназначенный для дополнительной аутентификации пакетов в виртуальном канале, выставляемый отправителем случайно, но в порядке возрастания. После достижения максимального значения виртуальный канал закрывается и открывается новый.
6. Authentication Data (переменной длины, но чтобы длина всего заголовка была кратной 32 битам в IPv4 и 64 битам в IPv6) – данные аутентификации, содержащие цифровую подпись (ICV, Integrity Check Value) поля данных пакета, самого заголовка AH и не изменяемых в процессе транспортировки полей IP-пакета, а также заполнителя для выравнивания длины.
В качестве алгоритма вычисления цифровой подписи может использоваться любая симметричная схема, основанная на применении однонаправленной хэш-функции от защищаемых данных и секретного ключа. Принимающая сторона повторно выполняет это преобразование для выявления несанкционированных изменений. При вычислении ICV на вход поступает весь пакет, но его изменяющиеся поля, заполнитель и само поле аутентификационных данных принимаются равными нулю. В качестве стандартного алгоритма вычисления аутентификационных данных выбран Hash Message Authentication Codes (HMAC, RFC 2104) с ключами и функциями хеширования SHA-1 (RFC 2404) и MD5 (RFC 1321, 2403), хотя производители аппаратного и программного обеспечения могут использовать и другие алгоритмы.