НИП ИНФОРМЗАЩИТА
Алексей Лукацкий
12 февраля 2002 г.
О 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 используется ряд протоколов, включая 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 реализуется на базе уже существующего сетевого оборудования, как правило, маршрутизаторов (например, 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 - программное и аппаратное обеспечение, пользователей, реализацию и т.д.