Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Обучение от Mail.Ru Group.
Онлайн-университет
для программистов с
гарантией трудоустройства.
Набор открыт!
2005 г.

IPSec: панацея или вынужденная мера?

Евгений Патий, IT News

Мало-помалу мы все же пришли к тому, к чему должны были прийти еще лет десять назад, - уважительному отношению к обеспечению безопасности. Имеются в виду не только "режимность", административные меры и прочие механизмы влияния на человеческий фактор, но и вполне обоснованные и логически оправданные технические средства.

Однако, безопасность безопасности рознь. С одной стороны, дискеты (утрирую, конечно, где ж их сейчас встретишь) выносить из офиса запрещается, а с другой - подключение региональных филиалов нередко производится в "открытом" виде... Как-то незаметно коммуникационные технологии стали нормой, редкая компания, ну разве что самая начинающая, не подключена к Интернету стационарным каналом, а слова "эксплойт", "хакеры" и "эпидемия" из комиксных ужастиков перекочевали в обыденную жизнь. И на сообщения новостных сайтов типа "взломана сеть компании Ericsson" или "эпидемия червя Mytob принимает катастрофические масштабы" рядовой пользователь если и обращает внимание, то реагирует довольно вяло. К такому положению вещей все привыкли.

К счастью, подобного рода апатия обусловлена не столько привычкой, сколько существованием эффективных средств противодействия. Новый вирус? В браузере скрипты отключить, подозрительные вложения не открывать. И так далее, каждая ситуация, как известно, требует индивидуального подхода.

К великому удовольствию продвинутых пользователей, имеются весьма действенные, я бы сказал, фундаментальные механизмы, которые пригодятся всегда, несмотря на появление новых технологий и стандартов. В качестве конкретного примера приведем все тот же Wi-Fi, при всех неоспоримых преимуществах и удобствах имеющий колоссальный недостаток: безопасность этого вида связи практически равна нулю. Невзирая на наличие алгоритмов шифрования, скрытия идентификатора сети и прочих средств, опытный взломщик способен проникнуть в сеть максимум за один час. Помнится, на начальном этапе массового распространения Wi-Fi в Сети появились "рецепты приготовления" направленной антенны для перехвата данных, в основе которой лежала алюминиевая пивная банка. А уж за программным обеспечением и подробнейшими инструкциями по взлому дело не стало.

Но, как уже говорилось, существуют проверенные в боях методы защиты. На фоне их многообразия краеугольными камнями безопасности выглядят IPSec и SSL: два разных подхода, соответственно две сферы применения. Об одном из них и пойдет речь - это IPSec, завоевавший заслуженную популярность у специалистов и рядовых пользователей.

Итак, IPSec (Internet Protocol Security) - набор стандартов, разработанных специально для создания защищенных соединений "точка-точка" (как раз к вопросу о подключении региональных филиалов). Стандарты были разработаны Internet Engineering Task For (IETF) для организации защищенных соединений в публичных или частных сетях TCP/IP. Конечно же, наибольшая выгода появляется при создании защищенного соединения сквозь публичную сеть. Постараемся раскрыть основы и принципы, на которых базируется IPSec, приведем практические примеры его применения и перечислим некоторые продукты, использующие в своей работе IPSec.

Основы IPSec

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

IPSec представляет собой набор алгоритмов и протоколов с достаточно гибкой внутренней структурой, что позволяет производителям различных устройств, поддерживающих IPSec, самостоятельно выбирать оптимальные с их точки зрения ключи, алгоритмы и методы аутентификации.

Набор протоколов и алгоритмов шифрования включает следующие позиции:

  • IKE (Internet Key Exhange protocol)
  • ISAKMP (Internet Security Association and Key Management Protocol)
  • AH (Authentication Header protocol)
  • ESP (Encapsulating Security Payload protocol)
  • STS (Station-to-Station protocol)
  • HMAC (Hash Message Authentication Code)
  • MD5 (Message Digest 5)
  • SHA-1 (Security Hash Algorithm)
  • 3DES (Triple Data Encryption Standard)
  • XAUTH (Extended Authentication)
  • AES (Advanced Encryption Standard)
Два важнейших протокола применительно к IPSec - AH (Authentication Header) и ESP (Encapsulating Security Payload). Как ясно из названия, AH используется для аутентификации отправителя информации и обеспечения целостности данных - с целью убедиться, что данные не были изменены в процессе связи. AH не шифрует данные и не обеспечивает конфиденциальности, этот протокол лишь "подписывает" целый пакет данных.

В отличие от AH, ESP способен обеспечить конфиденциальность информации, так как непосредственно шифрует данные совместно с проверкой подлинности и целостности. Отличие от AH состоит и в том, что ESP не подписывает каждый пакет, оперируя лишь данными.

IPSec способен функционировать в двух режимах: транспортном и туннельном, которые представляют собой два разных подхода к обеспечению безопасности. В транспортном режиме шифруются только полезные данные сообщения - непосредственно информация, подлежащая передаче в процессе сеанса связи. В туннельном - шифрованию подлежат данные, заголовок и маршрутная информация. Нет необходимости говорить, что применение IPSec в транспортном режиме гораздо более рискованно, нежели в туннельном.

Туннельный режим, как правило, используется при построении различных вариаций виртуальных частных сетей (VPN), предоставляя защиту всего трафика от отправителя к получателю. Виртуальные частные сети с IPSec представляют собой сетевые соединения, построенные с использованием криптографии на основе публичных и приватных ключей. Пользователи IPSec VPN генерируют публичные и приватные ключи, которые ассоциируются лишь с ними. Когда сообщение уходит от отправителя к получателю, оно автоматически подписывается приватным ключом пользователя, а получатель использует публичный ключ отправителя для того, чтобы дешифровать принятое сообщение. Конечные точки виртуальной частной сети действуют как базы данных, которые управляют и распространяют ключи и прочую служебную информацию подобно тому, как это делает Certificate Authority (CA).

Преимущества и недостатки IPSec

Наиболее типично применение IPSec для достижения конфиденциальности и целостности данных при их транспортировке по незащищенным каналам. Изначально IPSec предназначался для защиты данных в публичных сетях, однако его различные практические реализации нередко используются для увеличения безопасности частных сетей, так как компании не всегда могут быть уверены, что их корпоративные сети изначально не подвержены вторжениям извне.

Хотя IPSec наиболее популярное и, пожалуй, наилучшее решение для создания виртуальных частных сетей, имеются и некоторые ограничения. В случае его применения в транспортном режиме не исключается возможность атак со стороны, что вызвано некоторыми ограничениями протокола ISAKMP.

Взлом сессии IPSec вполне вероятен, если не используется заголовок аутентификации AH. При таком типе атаки данные злоумышленника могут быть вставлены в полезную передающуюся информацию, например, в случае Unix-систем достаточно вставить в поток команду rm -R, чтобы получатель в итоге недосчитался многих, а то и всех файлов на жестком диске.

Поскольку трафик IPSec маршрутизируем, различные практические реализации IPSec могут подвергнуться более "изящной" атаке - подмене изначального маршрута. Оговоримся, что данный вид атаки возможен лишь при использовании IPSec в транспортном режиме, если же он применяется для построения туннеля, вся роутинговая информация в этом случае шифруется и подобный вид атаки успеха иметь не будет.

Специалисты компании AT&T Research отмечают, что многие потенциально слабые места IPSec являются следствием определенных недостатков алгоритмов шифрования, использованных в конкретной реализации IPSec. Следовательно, с увеличением надежности этих алгоритмов IPSec может стать намного более защищенным.

В настоящее время IPSec - это часть IPv6, но не IPv4. Хотя, конечно же, имеются и реализации IPSec для протокола IP четвертой версии. В реализации для IPv6 некоторые слабые места IPSec, которые все же присутствуют в версии для IPv4, устранены. Так, например, поля фрагментации в заголовке пакета IPv4 потенциально могут быть изменены, поэтому при функционировании IPSec в транспортном режиме злоумышленник может перехватить пакет и изменить поле фрагментации, а затем вставить необходимые данные в передаваемый поток. В IPv6 же промежуточные маршрутизаторы не допускают изменения полей фрагментации.

Конкуренты IPSec

Многие продукты, которые могут использовать IPSec, взаимодействуют с альтернативной технологией шифрования, именуемой "Уровень защищенных сокетов" (Secure Sockets Layer, SSL). Основное различие между IPSec и SSL в том, что IPSec работает на уровне сети, обеспечивая зашиту сетевого соединения от начала и до конца. SSL же действует на уровне приложений, обеспечивая защиту лишь выбранному приложению, например веб-браузеру или программе для работы с электронной почтой. Хотя как IPSec, так и SSL призваны обеспечить конфиденциальность обмена информацией, что достигается совершенно различными способами. SSL был разработан компанией Netscape для защиты трафика HTTP, проходящего через программу-браузер. SSL - протокол уровня отдельной сессии, и в этом отношении он, несомненно, проигрывает IPSec, который позволяет построить постоянный туннель, не зависящий от проходящего сквозь него сетевого трафика.

Протокол SSL основан на клиент-серверной модели и обычно используется для защиты на отрезке "хост-хост". В связи с тем, что IPSec взаимодействует на сетевом уровне, возможны такие варианты, как "подсеть-подсеть", "сеть-сеть" или "сеть-хост". Это наводит на мысль, что IPSec допускает маршрутизацию, а SSL - нет.

Хотя многие пользователи считают SSL и IPSec конкурирующими разработками, данное утверждение не совсем точно, поскольку IPSec и SSL призваны решать различные проблемы. Если для развертывания IPSec требуется предварительное планирование инфраструктуры, то с SSL все намного проще. Как правило, если и клиент, и сервер изначально способны работать с SSL, то процедура настройки защищенной сессии сводится к крайне тривиальному набору действий, доступному даже начинающему пользователю.

Типичные применения IPSec

С распространением корпоративных беспроводных сетей компаниям имеет смысл озаботиться развертыванием виртуальных частных сетей VPN. Сегодня организация VPN поверх имеющейся беспроводной сетевой инфраструктуры признана лучшим способом обеспечить конфиденциальность информационного обмена.

Так как беспроводные точки доступа являются устройствами второго уровня, организация VPN-over-Wireless является столь же несложной задачей, как и развертывание VPN на базе проводной сети. Ниже мы рассмотрим пример построения такой виртуальной частной сети с помощью типичного оборудования: ноутбука с Windows XP и программного роутера под управлением популярной операционной системы FreeBSD.

Исходные данные таковы:

  • Ноутбук Samsung V30 с беспроводной PCMCIA-картой Gigabyte WLMR-101 (802.11b), Windows XP Professional SP2.
  • Точка доступа D-Link DWL-700AP.
  • Коммутатор 3Com OfficeConnect DualSpeed 8 ports.
  • Программный маршрутизатор (Intel Pentium 233MMX, RAM 160 Мбайт SDRAM, SCSI HDD 2 Гбайт), FreeBSD 5.2.1-RELEASE.

Компоненты соединены по схеме, приведенной ниже.

Задача: создать VPN на базе шифрованного туннеля между ноутбуком, имеющим IP-адрес 192.168.1.253, и сервером (192.168.1.1). Предпосылки к этому таковы: имеющиеся средства, которыми производитель предлагает защитить конфиденциальность данных, недостаточны. WEP-шифрование может быть без труда разрушено, а MAC-адрес беспроводной карты - "подслушан" и подменен злоумышленником. В этом случае, естественно, ни о какой безопасности речи быть не может - весь беспроводной трафик попадет к злоумышленнику, а уж последствия зависят от его фантазии и намерений. Поэтому единственный выход - подняться на более высокую ступень эволюции, создав VPN на основе IPSec, ну а взлом такой конфигурации - задача гораздо более сложная. В операционной системе FreeBSD технология IPSec реализована на уровне ядра - то есть, чтобы полноценно ею пользоваться, необходимо собрать ядро с поддержкой IPSec и протокола ESP:

options IPSEC         #IP security
options IPSEC_ESP     #IP security (crypto; define w/ IPSEC)
options IPSEC_DEBUG   #debug for IP security

После компиляции ядра активизируем эту поддержку в основном конфигурационном файле /etc/rc.conf:

ipsec_enable="YES"
ipsec_file="/файл правил"

Описанные выше процедуры уже позволяют организовать VPN на базе IPSec, но для этого нужно еще определить правила в указанном файле, на основе которых будет строиться защищенный туннель. Обычно это файл /etc/ipsec.conf.

Важно учитывать, что мы создаем туннель от ноутбука к серверу, другими словами, трафик будет шифроваться лишь на этом участке; если же сервер является еще и шлюзом для выхода в Интернет (как в описываемом примере), то за пределами сервера трафик окажется уже нешифрованным.

IPSec использует базу данных для того, чтобы решить, как обращаться с трафиком. Эта база данных содержит правила: какой трафик и как именно его шифровать. Правила делятся на два типа: Policy и Association; Security Policy Database (SPD) определяет, какой трафик шифровать, а Security Association Database (SAD) - методы шифрования этого трафика.

Основной инструмент в FreeBSD для управления этими базами данных называется setkey. Определим правила ipsec.conf для нашего случая и рассмотрим их подробнее:

add 192.168.0.1 192.168.1.253 esp 691 -E rijndael-cbc "1234567890123456";
add 192.168.1.253 192.168.0.1 esp 693 -E rijndael-cbc "1234567890123456";

spdadd 192.168.1.0/24 0.0.0.0/0 any -P in ipsec esp/tunnel/192.168.1.253-192.168.0.1 /require;
spdadd 0.0.0.0/0 192.168.1.0/24 any -P out ipsec esp/tunnel/192.168.0.1 192.168.1.253 /require;

Первые два правила add - это вхождения SAD, последние два (spdadd) - SPD. Пункты add устанавливают ключи шифрования между двумя компьютерами, а spdadd непосредственно описывают сам туннель. Необходимо четко прописывать правила для каждого направления трафика, так как применительно к IPSec понятия "первый компьютер" и "второй компьютер" слишком расплывчаты, а значит, описание механизма взаимодействия должно быть максимально точным - иначе туннель просто не будет функционировать.

  • Правило 1 определяет индекс 691 и алгоритм шифрования rijndael-cbc с публичным ключом 1234567890123456 между компьютерами 192.168.0.1 и 192.168.1.253.
  • Правило 2 описывает аналогичные требования для обратного направления: от 192.168.1.253 к 192.168.1.1, но с индексом 693.
  • Правило 3: все сетевые соединения внутри 192.168.1.0/24 и "наружу" (0.0.0.0/0) обязательно проходят сквозь туннель.
  • Правило 4: то же, что и правило 3, но в обратном направлении.
Итак, мы выбрали и описали следующую стратегию: ни одного байта мимо туннеля, весь трафик шифруется. После описания правил перезагружаемся с ядром, поддерживающим IPSec, - при этом правила, описанные в /etc/ipsec.conf, загружаются автоматически. Сервер готов к "поднятию" туннеля, но необходимо описать его на ноутбке. Для этого нужно запустить службу IPSec, если она не запущена по умолчанию, и воспользоваться мастером установки сетевых соединений Windows.

Весьма желательно установить на сервере и программное обеспечение для автоматического обмена ключами шифрования - Racoon, иначе на клиентских машинах придется вручную прописывать ключи в дебрях управляющих консолей Windows.

Заключение

Проста ли настройка IPSec? Пожалуй, проста. Стоит ли внедрять эту технологию вместо ненадежного WEP-шифрования беспроводных сетей? Несомненно, стоит. А тем временем технология IPSec получает крайне неоднозначные оценки специалистов в области безопасности. С одной стороны, отмечается, что протокол IPSec является лучшим среди всех других протоколов защиты передаваемых по сети данных, разработанных ранее (включая разработанный Microsoft PPTP). С другой стороны, присутствует чрезмерная сложность и избыточность протокола - это в принципе не так уж страшно, если овчинка стоит выделки, но некоторые ортодоксально настроенные сетевики отмечают, что имеются серьезные проблемы безопасности практически во всех главных компонентах IPSec.

Соответственно, ответ на вопрос, панацея ли IPSec или вынужденная мера, по нашему мнению, выглядит так: это панацея, потому что вынужденная мера.

Новости мира IT:

Архив новостей

Последние комментарии:

Релиз ядра Linux 4.14  (6)
Пятница 17.11, 16:12
Apple запустила Pay Cash (2)
Четверг 09.11, 21:15
Loading

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...