IPSec (IP-безопасность): часть 3 — GRE

Опубликовано: 24 Марта, 2023

AH, он же заголовок аутентификации, продолжение…

Мы остановились во второй части, говоря о том, что AH на самом деле аутентифицирует только части заголовка IP, и что это нежелательно. Понимание того, что определенные части IP-заголовка будут изменяться при передаче, потребовало такого подхода. Во многом поэтому вы не видите большого использования AH, а гораздо больше трафика ESP. Тем не менее, давайте продолжим наш взгляд на AH!

AH не ограничивается в использовании только собой. Его также можно использовать в сочетании с ESP или так называемым «вложенным» или в туннельном режиме. Одно из ключевых различий между ESP и AH заключается в следующем. ESP не аутентифицирует какую-либо часть самого заголовка IP, если он не используется в туннельном режиме. Если он находится в туннельном режиме, то исходный IP-заголовок был инкапсулирован ESP, который, в свою очередь, генерирует другой IP-заголовок для маршрутизации. Это для меня суммирует различия между AH и ESP.

Как выглядит АГ?

Как выглядит заголовок AH? Что ж, на самом деле он немного похож на ESP, и, поскольку я не смог найти AH-пакет для просмотра, я перечислю общую разбивку AH-пакета следующим образом;

|| Заголовок Mac || IP-заголовок || Заголовок АН || Данные ||

Выше показано, как будет выглядеть пакет AH, если смотреть горизонтально. Заголовок MAC — это просто MAC-адрес компьютера, за которым следует обычный заголовок IP. Следующим на очереди является заголовок AH. Сам заголовок AH разбит на различные сегменты, как показано ниже;

|| Следующий заголовок || Длина || СПИ || Порядковый номер || Данные аутентификации ||

Следующее поле заголовка относится к инкапсулированному протоколу, а поле длины используется для обозначения размера полезных данных аутентификации, измеренных в 4-байтовых словах. Далее у нас есть значение индекса SPI или параметра безопасности, а после него порядковый номер. И, наконец, сами данные аутентификации.

Это подведет итог нашего общего обзора AH и того, как он работает. Мы видели, что AH имеет некоторые серьезные недостатки, и в действительности вам было бы гораздо лучше использовать ESP в качестве протокола IPSec. Если вы хотите узнать больше об AH, я рекомендую вам ознакомиться с официальным RFC.

GRE или общий протокол инкапсуляции маршрутизации

На самом деле это довольно аккуратный протокол, и его название в значительной степени подводит итог тому, для чего он был разработан. Проще говоря, это общий протокол, который может инкапсулировать другие протоколы, а затем перенаправлять весь пакет в пункт назначения. Это, как говорится, гораздо больше, чем это упрощенное объяснение. Итак, давайте углубимся в GRE.

Общая инкапсуляция маршрутизации сама по себе является протоколом, который будет инкапсулировать другой протокол сетевого уровня и, в свою очередь, будет отправлен через другой протокол сетевого уровня. Мы будем использовать следующий пример, чтобы попытаться дать этому объяснению некоторый контекст. В вашей компьютерной сети есть пакет, который необходимо инкапсулировать и отправить на другой компьютер. Затем этот пакет будет инкапсулирован с использованием универсального протокола инкапсуляции маршрутизации. Этот новый пакет, который использовал GRE для инкапсуляции исходного пакета, затем сам инкапсулируется в другой протокол и весело отправляется на IP-адрес назначения.

Вы были бы совершенно правы, думая, что здесь происходит целая инкапсуляция! Существует первый исходный пакет, который инкапсулируется с помощью GRE, затем инкапсулируется GRE, а затем он, в свою очередь, отправляется. Почти во всех компьютерных коммуникациях используется инкапсуляция в той или иной форме, просто мы не так часто слышим об этом, как когда говорим о GRE. Это важно понимать из-за природы GRE, то есть он предназначен для инкапсуляции другого протокола. Легко запутаться, но можно просто запомнить, что GRE что-то проглатывает и в свою очередь инкапсулируется для передачи. Как выглядит пакет GRE? Что ж, давайте посмотрим на один из них ниже.

GRE-пакет

00:03:11.297652 192.168.1.100 > 192.168.1.200: gre [KSv1] ID:0600 S:0 ppp: Conf-Req(0), Auth-Prot CHAP/MSCHAPv2, Magic-Num=110e07b6, PFC, ACFC, Call -Back CBCP, MRRU=1614, End-Disc Local, Link-Disc=000f (ttl 125, id 18980, длина 89)
0x0000 4500 0059 4a24 0000 7d2f e4da c0a8 0164 E..YJ$..}/……
0x0010 c0a8 01c8 3001 880b 0039 0600 0000 0000 H..X0….9……
0x0020 ff03 c021 0100 0035 0305 c223 8105 0611 …!…5…#….
0x0030 0e07 b607 0208 020d 0306 1104 064e 1317 ………….N..
0x0040 019b 4793 3c42 ae4b ca88 ce57 771b 8ddb..G.<BK…Ww…
0x0050 6600 0000 0017 0400 0f f……..





Вышеупомянутый пакет GRE на самом деле переносится через PPP или, как его называют, PPP-over-GRE. Мы также можем видеть из приведенного выше пакета, что он довольно сложный. Здесь задействовано множество различных показателей. Определение всех вышеперечисленных метрик выходит за рамки этой статьи, но я бы посоветовал вам регистрировать некоторые пакеты GRE в двоичном формате, а затем использовать Ethereal для просмотра различных его частей.

Безусловно, одним из самых простых способов изучения IPSec является простая загрузка и установка одной из бесплатных или условно-бесплатных программ. Только благодаря использованию программ IPSec вы получите более глубокое представление о них. Это, а также фактическое ведение журнала того, что происходит во время сеанса IPSec, полезно. Важно не только логировать саму сессию, но и делать это с самого ее начала. В идеальном мире для вашей домашней компьютерной лаборатории у вас фактически есть два разных подключения к Интернету.

Наличие такой лабораторной установки позволяет вам делать больше с точки зрения экспериментов и, безусловно, помогает настроить более реалистичный тестовый сценарий при попытке узнать больше о VPN и их конфигурации. Однако не каждый может позволить себе такую установку, но, возможно, если вы работаете в крупной компании, вы могли бы попросить людей из ИТ-отдела показать вам все вокруг. Это также было бы очень полезно, поскольку большинство корпораций используют оборудование Cisco и выбрали решения Cisco, ориентированные на VPN.

Заворачивать

В последних трех статьях мы видели, что IPSec действительно является сложной и иногда запутанной областью изучения. По крайней мере, это подтверждает тот факт, что необходимо провести дальнейшее изучение этой области компьютерной безопасности. Существует множество отличных решений IPSec, будь то программное или аппаратное обеспечение. Знать, что происходит под капотом этих устройств безопасности, очень хорошая идея. Никогда не следует оставаться полностью слепым в отношении того, что происходит в их сетях, поскольку вам, вероятно, придется устранять неполадки! Я хорошо провел время, написав эту серию статей, поскольку IPSec — это область, которую я сам часто игнорирую. Возвращаясь к различным RFC для этих протоколов, я хорошо освежил свои знания, и я бы посоветовал вам прочитать окончательный источник информации для ESP, AH, IKE и GRE. Это их соответствующие RFC. Я искренне надеюсь, что вам понравилась эта серия статей об IPSec, и, как всегда, буду рада вашим отзывам. До следующего раза!