
872 Глава 8. Безопасность в сетях
Противоположная точка зрения состоит в том, что пользователи все равно не
осознают необходимости применения мер безопасности и просто не способны
корректно использовать все предоставленные возможности. При этом никто не
захочет каким-либо образом изменять существующие программы, поэтому сете-
вой уровень должен выполнять проверку подлинности и/или шифровать сооб-
щения незаметно для пользователя. Долгие годы сражений привели к победе
этой точки зрения: был разработан стандарт безопасности, ориентированный на
сетевой уровень. Одним из аргументов было то, что шифрование на сетевом уров-
не, с одной стороны, не помешает тем пользователям, которые серьезно относят-
ся к безопасности, нас другой — в некоторой степени убережет беспечных поль-
зователей.
Результатом всех этих дискуссий было создание стандарта IPsec (IP secu-
rity — IP-безопасность), описанного в RFC 2401, 2402, 2406 и др. Не всем поль-
зователям требуется шифрация соединений (выполнение соответствующих про-
цедур может занимать существенную часть вычислительных ресурсов). Однако
вместо того чтобы делать шифрацию необязательной, пользователю предлагает-
ся в случае необходимости выбирать пустой алгоритм. В RFC 2410 расписы-
ваются такие достоинства пустого алгоритма, как простота, легкость реализации
и высокая скорость.
IPsec служит основой для множества услуг, алгоритмов и модулей. Причиной
наличия множества услуг является то, что далеко не все хотят постоянно пла-
тить за все возможные услуги, поэтому нужные сервисы предоставляются пор-
ционно. Основные услуги таковы: секретность, целостность данных, защита от
взлома методом повторения сообщений (когда жулик повторяет подслушанный
разговор). Все это основано на криптографии с симметричными ключами, по-
скольку здесь критична высокая производительность.
Для чего нужен целый набор алгоритмов? Дело в том, что считающийся сего-
дня надежным алгоритм завтра может быть сломан. Если сделать IPsec незави-
симым от конкретного алгоритма, стандарт выживет даже в случае взлома одно-
го из алгоритмов.
Для чего нужны разные модули? Для того чтобы можно было защищать и од-
но TCP-соединение, и весь трафик между парой хостов, и весь трафик между па-
рой защищенных хостов, и т. д.
Несколько удивительно, что IPsec ориентирован на соединение, несмотря на
его присутствие на уровне IP. На самом деле, это не так странно, как кажется.
Ведь безопасность можно обеспечить только созданием ключа и использованием
его в течение какого-то времени. А это, по сути дела, разновидность соединения.
К тому же все соединения погашают расходы на их установление за счет переда-
чи большого количества пакетов. «Соединение» в контексте IPsec называется за-
щищающей связью (security connection). Защищающая связь — это симплексное
соединение между двумя конечными точками, с которым связан специальный
идентификатор защиты. Если требуется передача защищенных данных в обоих
направлениях, понадобятся две защищающие связи. Идентификаторы защиты
передаются в пакетах, следующих по этим надежным соединениям, и использу-
Защита соединений 873
ются по прибытии защищенных пакетов для поиска ключей и другой важной ин-
формации.
Технически IPsec состоит из двух основных частей. Первая описывает два но-
вых заголовка, которые можно добавлять к пакету для передачи идентификатора
защиты, данных контроля целостности и другой информации. Вторая часть,
ISAKMP (Internet Security and Key Management Protocol — интернет-безопас-
ность и протокол управления ключами), предназначена для создания ключей. Мы
не станем вдаваться в подробности устройства ISAKMP, потому что, во-первых,
это очень сложная тема и, во-вторых, основной протокол IKE (Internet Key Ex-
change — обмен ключами в Интернете) работает очень некорректно и требует за-
мены (Perlman и Kaufman, 2000).
IPsec может работать в двух режимах. В транспортном режиме заголовок
IPsec вставляется сразу за заголовком IP. Поле Protocol заголовка IP изменяется
таким образом, чтобы было понятно, что далее следует заголовок IPsec (перед
заголовком TCP). В заголовке IPsec содержится информация, касающаяся безо-
пасности, — в частности, идентификатор защищающей связи, новый порядковый
номер и, возможно, проверка целостности поля полезной нагрузки.
В режиме туннелирования весь IP-пакет вместе с заголовком вставляется
внутрь нового IP-пакета с совершенно новым заголовком. Этот режим хорош то-
гда, когда туннель заканчивается где-нибудь вне конечного пункта. В некоторых
случаях концом туннеля является шлюз, обеспечивающий безопасность, напри-
мер, корпоративный брандмауэр. В этом режиме брандмауэр вставляет и извле-
кает пакеты, проходящие через него в разные стороны. При такой организации
машины ЛВС компании гарантированно будут обслужены по стандарту IPsec.
Об этом совершенно не приходится беспокоиться: все заботы берет на себя бранд-
мауэр.
Еще режим туннелирования полезен, когда несколько TCP-соединений объе-
диняются вместе и обрабатываются в виде единого шифрованного потока, по-
скольку в данном случае взломщик не может узнать, кто и кому передает пакеты,
а также в каком количестве. А ведь иногда даже объем трафика, передаваемого
одним лицом другому, является ценной информацией. Например, если во время
военного кризиса трафик между Пентагоном и Белым домом резко снижается
и при этом так же резко растет трафик между Пентагоном и какой-нибудь воен-
ной базой в Колорадо, перехватчик может сделать из этого далеко идущие выводы.
Изучение структуры потока по проходящим пакетам называется анализом
трафика. Если используется туннелирование, такой анализ становится задачей
весьма сложной. Недостаток режима туннелирования заключается в том, что
приходится расширять заголовок IP-пакетов, за счет чего заметно возрастает
суммарный размер пакетов. В транспортном режиме размер пакетов изменяется
незначительно.
Первый из новых заголовков называется заголовком идентификации (АН —
Authentication Header). С его помощью проверяется целостность данных и вы-
полняется защита от взлома путем повторной передачи. Однако он не имеет ни-
какого отношения к секретности (то есть шифрации данных). Применение АН в
транспортном режиме показано на рис. 8.23. В стандарте IPv4 он располагается