АТАКИ НА VPN

НИП ИНФОРМЗАЩИТА

Алексей Лукацкий

12 февраля 2002 г.


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

Что такое VPN?

Прежде чем описывать атаки, необходимо дать определение VPN и кратко перечислить ее основные компоненты. Это позволит понять, куда могут быть направления усилия злоумышленников. Итак, не претендуя на истину в последней инстанции, технологию VPN можно определить, как "комплекс мероприятий по передаче данных из одной точки сети в другую безопасным образом". Это, на первый взгляд, достаточно расплывчатое определение, охватывает все возможные технологии построения VPN (включая и MPLS). Анализ этого определения позволяет сделать ряд замечаний:

Исходя из этого перечня, можно перейти к описанию возможных классов атак на элементы VPN.

Атаки на криптографические алгоритмы

Первое, что приходит на ум, - это атаковать используемый криптографический алгоритм. В настоящий момент все алгоритмы можно условно разделить на две категории - известные и секретные. К известным алгоритмам относятся DES, TripleDES, RSA, AES и наш отечественный ГОСТ 28147-89. Эти алгоритмы известны специалистам достаточно давно, также как и их слабые и сильные стороны.

Варианты атак на криптоалгоритмы достаточно разнообразны. Самой простой является атака только на зашифрованной текст, когда криптоаналитик имеет только зашифрованный тест и путем анализа статистического распределения символов, а также, используя другие методы, пытается распознать исходный текст. Любой алгоритм должен защищать от такой атаки. Более сложным является атака с известным незашифрованным текстом. В этом случае аналитику известен фрагмент исходного текста или он делает обоснованное предположение о нем. Например, это может быть стандартное начало или завершение документа "Конфиденциально", "Уважаемый", "С уважением" и т.д. Существуют и более сложные типы атак, например, дифференциальный криптоанализ, однако их рассмотрение выходит за рамки статьи. Можно только отметить, что большинство распространенных на сегодняшний день алгоритмов устойчивы к этим атакам.

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

Атаки на криптографические ключи

Описанные выше атаки на используемые в настоящее время алгоритмы практически бессильны, что вынуждает злоумышленников проверять все возможные ключи шифрования (атака полным перебором). Поэтому существенно важным является выбор алгоритма с достаточной длиной ключа. В таблице 1 приведен сравнительный анализ времени и средств, затрачиваемый различными классами злоумышленников при полном переборе криптографических ключей, используемых в симметричных алгоритмах (DES, AES, ГОСТ 28147-89 и т.д.). Из этой таблицы видно, что отечественный алгоритм ГОСТ 28147-89 с длиной ключа 256 бит не может быть "взломан" в обозримом будущем, а зарубежные средства, подпадающие под экспортные ограничения США, ломаются относительно легко.

Таблица 1.

Категория
злоумыш-
ленника
Бюджет злоумыш-
ленника
Технология Время полного перебора ключа длиной, бит
40 бит 56 бит
Хакеры-одиночки < $400 Персональный компьютер 1 неделя Неосуществимо
при современном уровне вычислительной техники
Хакерские группы $400 Технология FPGA 5 часов 38 лет
Небольшие фирмы $10 000 Технология FPGA 12 минут 18 месяцев
Крупные фирмы $300 000 Технология FPGA 24 секунды 19 дней
Технология ASIC 18 секунд 3 дня
Транснациональные корпорации $10 000 000 Технология FPGA 7 секунд 13 часов
Технология ASIC 0,005 секунд 6 минут

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

Таблица 2.

Длина ключа для симметричного алгоритма Длина ключа для асимметричного алгоритма
56 бит 385 бита
64 бита 512 бит
80 бит 768 бит
112 бит 1792 бит
128 бит 2304 бит

Разумеется, что длина ключа зависит от того, как долго должна сохраняться в тайне защищаемая информация. Если речь идет о персональных данных или ноу-хау и бизнес-проектах, срок жизни которых может составлять десятилетия, то и длина ключа (при современном уровне развития вычислительной техники) для их защиты должна быть большой (не менее 128 бит). Если же речь идет о защите оперативной информации, например, котировках акций или военных сведениях тактического плана, то, учитывая, что такая информация теряет свою актуальность уже через несколько часов и даже минут, длина ключа может быть и не столь большой. Представьте, что криптоаналитики противника дешифровали сообщение о запуске баллистической ракеты, которая достигает заданной точки через 8 минут, только через 10 минут. Актуальность такой информации равна практически нулю.

Для алгоритмов, основанных на открытых ключах, например, RSA, существует ряд математических проблем, которые не всегда учитываются при построении криптосистемы. К таким моментам можно отнести выбор начальных значений, на основе которых создаются ключи. Есть определенные числа, которые позволяют очень быстро вычислить секретный ключ. В то же время правильный выбор начальных значений позволяет гарантировать невозможность "лобовой" атаки в течение нескольких сотен лет при современном развитии вычислительной техники. Аналогичные проблемы существуют и в симметричной криптографии.

Атаки на датчики случайных чисел

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

Датчики случайных чисел (ДСЧ), а точнее датчики псевдослучайных чисел являются одним из ключевых элементов при построении любой криптографической системы, в т.ч. и VPN, и позволяют создавать действительно стойкие ключи. Псевдослучайными они называются потому, что по-настоящему случайные числа существуют в природе, а на компьютере получить их практически невозможно. Самый простой способ - не глядя несколько раз нажать на кнопки клавиатуры или подвигать мышкой. Если злоумышленник может предсказать значения, генерируемые ДСЧ, то он может и вычислить криптографические ключи, что ставит под удар всю инфраструктуру VPN. Поэтому рекомендуется выбирать действительно эффективные датчики псевдослучайных чисел, которые обычно реализуются аппаратным образом, и не использовать функции random, rnd и т.д., встроенные в многие языки программирования. В России качество ДСЧ (как и вообще любых криптографических систем) подтверждается Федеральным Агентством Правительственной Связи и Информации при Президенте РФ (ФАПСИ). Один из таких датчиков реализован на электронном замке "Соболь", который имеет сертификат ФАПСИ и может быть использован (и используется) при построении криптографических систем.

Атаки на протоколы VPN

В настоящий момент для построения VPN используется ряд протоколов, включая IPSec, PPTP, L2TP и т.д. Эти протоколы не шифруют данные, они лишь определяют, как используются алгоритмы шифрования и ряд других условий, необходимых для построения VPN (включая контроль целостности, аутентификацию абонентов и т.д.). За последние пару лет многие исследователи принимались за анализ данных протоколов с точки зрения безопасности, но серьезных "дыр" обнаружено практически не было. А те, что все-таки были обнаружены, касались вопросов неправильной эксплуатации или уже устранены разработчиками. Однако, теоретическая возможность обнаружения уязвимостей в протоколах IPSec, PPTP и т.д. остается.

Атаки на протоколы аутентификации

Установление соединения между абонентами сами требует их аутентификации, т.е. проверки подлинности. В качестве протоколов аутентификации, могут использоваться RADIUS, TACACS (в т.ч. и TACACS+) и сертификаты. Я не буду подробно останавливаться на атаках на эти протоколы и освещу только распространившийся в последнее время метод использования сертификатов. Особенно это актуально, учитывая тот факт, что сертификаты являются ключевым элементом Федерального Закона об электронной цифровой подписи. Основная проблема связан с доверием к удостоверяющим центрам (Certificate Authority), которые призваны выдавать на каждый открытый ключ абонента сети свой сертификат. Если этот центр не дает абсолютной гарантии, то вся инфраструктура VPN и "гроша ломаного не стоит". Узлы сети VPN не смогут доверять сертификатам, выданным удостоверяющим центром. Существуют и другие возможные атаки на систему сертификатов, но объем данной статьи не позволяют рассмотреть их все.

Атаки на реализацию

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

Если же говорить о конкретных уязвимостях, то можно их назвать не меньше десятка. В частности, уязвимости реализации PPTP, приводящие к отказу в обслуживании в ОС Windows NT, межсетевом экране WatchGuard Firebox II, маршрутизаторах Cisco и BinTec. Не обошлось и без уявимостей IPSec. Например, в OpenBSD была уязвимость, также приводящая к отказу в обслуживании, связанная с некорректной обработкой пакетов AH/ESP (специальные режимы IPSec), а в Windows 2000 в декабре прошлого года была обнаружена уязвимость в реализации протокола обмена ключами IKE для IPSec.

Еще можно добавить, что существуют варианты атак не только на программную составляющую VPN, но и на аппаратные элементы, например, на таблетки Touch Memory, смарт-карты и другие аппаратные носители криптографических ключей.

Атаки на оборудование VPN

Достаточно часто VPN реализуется на базе уже существующего сетевого оборудования, как правило, маршрутизаторов (например, Cisco 1720) или программно-аппаратных межсетевых экранов (например, CheckPoint VPN-1 на базе платформы Nokia IP Security Solutions). Также существуют и специализированные устройства построения VPN (например, "Континент-К"). А раз это обычное устройство, поддерживающее стек TCP/IP, то на него могут быть реализованы атаки "отказ в обслуживании", которые могут нарушить функционирование, как самого устройства, так и временно нарушить взаимодействие защищаемых с их помощью сетей и узлов.

Атаки на операционные системы

Нередко VPN реализуется чисто программными средствами (например, в Windows 2000) и программное обеспечение VPN является надстройкой над операционной системой, что нередко и используется злоумышленниками. Поэтому независимо от надежности и защищенности ПО VPN, уязвимости операционной системы могут свести "на нет" все защитные механизмы VPN. Особенно это важно для продукции компании Microsoft, которая не отличается серьезной продуманностью с точки зрения защиты - нет недели, чтобы не обнаружилась очередная дыра в операционных системах Windows NT, Windows 2000 и, с недавнего времени, Windows XP.

Атаки на пользователей

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

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

Заключение

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