Чтобы понять, что такое VPN, достаточно расшифровать и перевести эту аббревиатуру. Под нею понимают «виртуальную частную сеть», объединяющую отдельные компьютеры или локальные сети с целью обеспечения секретности и защищенности передаваемой информации. Эта технология предполагает установку соединения с особым сервером на базе сети общего доступа при помощи специальных программ. В результате этого в существующем соединении появляется канал, надежно защищенный современными алгоритмами шифрования. Иными словами, VPN - это соединение по схеме «точка-точка» внутри незащищенной сети или над нею, которое представляет собой защищенный туннель для обмена информацией между пользователями и сервером.

Фундаментальные свойства VPN

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

Типология VPN

Поняв, что такое VPN, можно переходить к рассмотрению его подвидов, которые выделяются на основе используемых протоколов:

  1. PPTP - туннельный протокол формата «точка-точка», который создает защищенный канал поверх обыкновенной сети. Соединение устанавливается с использованием двух сетевых сессий: данные передаются через PPP по протоколу GRE, соединение инициализируется и управляется через TCP (порт 1723). Его бывает тяжело наладить в мобильных и некоторых других сетях. Сегодня VPN-сеть этого типа является наименее надежной. Ее не следует использовать при работе с данными, которые не должны попасть в руки третьих лиц.
  2. L2TP - туннелирование 2-го уровня. Этот усовершенствованный протокол был разработан на основе PPTP и L2F. Благодаря шифрованию IPSec, а также объединению основного и управляющего каналов в единую сессию UDP, он является намного более безопасным.
  3. SSTP - безопасное туннелирование сокетов на базе SSL. С помощью этого протокола создаются надежные связи через HTTPS. Для функционирования протокола требуется открытый 443 порт, позволяющий налаживать связь из любой точки, даже выходящей за пределы прокси.

Возможности VPN

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

  1. Безопасность. Ни одному пользователю интернета не понравится, если взломают его страницу в социальной сети или, что еще хуже, украдут пароли от банковских карточек и виртуальных кошельков. VPN эффективно защищает персональные данные. Как исходящие, так и входящие потоки информации передаются через туннель в зашифрованной форме. Даже провайдер не может получить к ним доступ. Этот пункт особенно важен для тех, кто часто подключается к сети в интернет-кафе и других точках с незащищенным Wi-Fi. Если не пользоваться VPN в подобных местах, то риску подвергнется не только передаваемая информация, но и подключенное устройство.
  2. Анонимность. VPN снимает вопросы скрытия и смены IP-адресов, потому что никогда не показывает реальный IP пользователя ресурсам, которые тот посещает. Весь поток информации проходит через защищенный сервер. Подключение через анонимные прокси не предполагает шифрования, активность пользователя не является секретом для провайдера, а IP может стать достоянием используемого ресурса. VPN в таком случае будет выдавать собственный IP за пользовательский.
  3. Неограниченный доступ. Многие сайты блокируются на уровне государств или локальных сетей: например, в офисах серьезных фирм недоступны социальные сети. Но хуже, когда на любимый сайт нельзя попасть даже из дома. VPN, подменяя IP пользователя на собственный, автоматически меняет его локацию и открывает путь ко всем заблокированным сайтам.

Области применения VPN

Виртуальные частные сети чаще всего применяются:

  1. Провайдерами и сисадминами компаний для обеспечения безопасного доступа в глобальную сеть. При этом для работы в пределах локальной сети и для выхода на общий уровень используются разные настройки безопасности.
  2. Администраторами для ограничения доступа к частной сети. Этот случай является классическим. При помощи VPN объединяются подразделения предприятий, а также обеспечивается возможность удаленного подключения сотрудников.
  3. Администраторами для объединения сетей различных уровней. Как правило, корпоративные сети являются многоуровневыми, и каждый следующий уровень обеспечивается повышенной защитой. VPN в данном случае обеспечивает большую надежность, чем простое объединение.

Основные нюансы при настройке VPN

Пользователи, которые уже знают, что такое VPN-соединение, часто задаются целью самостоятельно его настроить. Пошаговые инструкции по настройке защищенных сетей под различные операционные системы можно найти повсеместно, однако в них не всегда упоминается один важный момент. При стандартном VPN-соединении главный шлюз указывается для VPN-сети, вследствие чего интернет у пользователя пропадает или подключается через удаленную сеть. Это создает неудобства, а иногда приводит к лишним расходам на оплату двойного трафика. Чтобы избежать неприятностей, необходимо сделать следующее: в настройках сети найти свойства TCP/IPv4 и в окне дополнительных настроек убрать отметку, позволяющую применение главного шлюза в удаленной сети.

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

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

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

Как работает VPN?

Скорее всего, у вас дома есть Wi-Fi-роутер. Подключённые к нему устройства могут обмениваться данными даже без интернета. Получается, у вас есть своя частная сеть, но, чтобы подключиться к ней, нужно физически быть в досягаемости сигнала роутера.

VPN (Virtual Private Network) - это виртуальная частная сеть. Она работает поверх интернета, а потому подключиться к ней можно откуда угодно.

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

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

Сейчас встроенные VPN-клиенты есть во всех актуальных операционных системах, в том числе в Android, iOS, Windows, macOS и Linux.

VPN-соединение между клиентом и сервером, как правило, зашифровано.

Значит, VPN - это хорошо?

Да, если вы являетесь владельцем бизнеса и хотите обезопасить корпоративные данные и сервисы. Пуская сотрудников в рабочую среду только через VPN и по учётным записям, вы всегда будете знать, кто и что делал и делает.

Более того, владелец VPN может мониторить и контролировать вообще весь трафик, который идёт между сервером и пользователем.

Сотрудники много сидят во «ВКонтакте»? Можно закрыть доступ к этому сервису. Геннадий Андреевич половину рабочего дня проводит на сайтах с мемами? Вся его активность автоматически записывается в логи и станет железным аргументом для увольнения.

Зачем тогда VPN?

VPN позволяет обойти географические и законодательные ограничения.

Например, вы в России и хотите . С сожалением вы узнаёте, что этот сервис недоступен из РФ. Воспользоваться им можно, только выходя в интернет через VPN-сервер страны, в которой Spotify работает.

В некоторых странах существует интернет-цензура, ограничивающая доступ к тем или иным сайтам. Вы хотите зайти на какой-то ресурс, но в России он заблокирован. Открыть сайт можно, только выходя в интернет через VPN-сервер страны, в которой он не заблокирован, то есть практически из любой, кроме РФ.

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

В 21 веке информационные технологии занимают неотъемлемое место в жизни практически любого человека. Даже 80-летняя бабушка из деревни, не знающая, как включить компьютер, косвенно связанна с ними. Базы данных, банковские счета, учетные записи в мессенджерах — все это требует высокого уровня безопасности. Интернет, разросшийся до глобальных масштабов, как и любой другой механизм, с усложнением конструкции — становится более уязвимым. Чтобы защитить конфиденциальную информацию, была изобретена технология VPN.

VPN подключение (от англ. Virtual Private Network — виртуальная частная сеть) — технология, позволяющая искусственно сформировать локальную сеть из участников сети интернет, не связанных физически прямым соединением. Это — надстройка над глобальной сетью, обеспечивающая между узлами связь, которая со стороны клиента кажется прямой.


Как работает VPN соединение

Виртуальная сеть VPN работает по принципу установки фиксированного подключения. Связь может устанавливаться напрямую, между двумя узлами одного уровня (по принципу «сеть-сеть» или «клиент-клиент»), или (что более распространено) — между сетью и клиентом. Один из элементов (сервер-инициатор подключения) должен иметь статический (постоянный) адрес IP, по которому его будут находить другие узлы сети. На сервере создается точка доступа в виде шлюза, с доступом в интернет. К ней присоединяются другие участники сети, подключение выполняется в виде изолированного тоннеля.

Для всех узлов коммутации, через которые проходят пакеты данных, информация зашифрована. Она передается в виде неразборчивого потока, перехват которого не даст хакерам ничего. Ключи кодирования-декодирования у многих протоколов (например, OpenVPN) хранятся только на конечных устройствах. А без них злоумышленники не могут сделать с перехваченными данными ничего. Для максимальной безопасности, архив с сертификатами и ключами (без которых не получится поднять защищенный VPN) можно переслать в зашифрованном виде, или вручную передать на флешке. В таком случае вероятность постороннего проникновения в компьютеры сети сводится к нулю.

Зачем нужен VPN

Прямая связь

В сети интернет не имеет значения физическая дистанция между участниками и сложность маршрута, по которому они обмениваются данными. Благодаря IP-адресации и DNS узлам, получить доступ к другому компьютеру во всемирной паутине можно из любого уголка земного шара. Гораздо важнее уровень безопасности соединения, особенно, при обмене конфиденциальной информацией. Чем больше точек коммутации (маршрутизаторов, шлюзов, мостов, узлов) проходят данные — тем выше вероятность их перехвата злоумышленниками. Имея физические параметры ПК или сервера (например, его IP-адрес) — посредством уязвимых методов подключения хакеры могут проникнуть в него, взломав парольную защиту. Именно от таких посягательств призван защитить протокол VPN.

Разблокировка доступа к ресурсам

Вторая функция VPN-сетей — открытие доступа к заблокированным ресурсам. Если на территории страны, в том или ином виде, действует цензура интернета (как в Китае) — ее граждане могут быть ограничены в доступе некоторым ресурсам. Выход в сеть через зарубежные сервера VPN позволяет избежать угрозы репрессий представителям оппозиционных сил в тоталитарных странах. Гос. органы, препятствующие свободе слова (как в Китае или КНДР), не смогут предъявить обвинений в просмотре «идеологически вредных» ресурсов, даже если провайдеры предоставят им бэкап всех перехваченных данных.

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

Защита от взлома частных ресурсов

Еще одна причина, зачем нужно VPN подключение частным клиентам — удаленное администрирование. Если хочется максимально защитить сервер от посторонних вмешательств, можно создать «белый список» IP-адресов, имеющих доступ к нему. Когда один из них (адресов) принадлежит частному VPN-серверу — к администрируемому серверу можно безопасно подключиться из любой точки мира, используя шифрованную связь. Объект администрирования будет считать, что к нему подключились с разрешенного терминала, а администратор может не беспокоиться о риске взлома.

Защита коммерческой тайны

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

Технология, создающая логическую сеть в другой сети, получила аббревиатуру «VPN», что дословно на английском языке расшифровывается как «Virtual Private Network». Говоря простым языком, ВПН включает в себя разные методы связи между девайсами внутри другой сети и обеспечивает возможность применять различные способы защиты, что значительно увеличивает сохранность обмениваемой между компьютерами информации.

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

Определение

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

Как подключить VPN

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


Дальше настройка VPN выполняется, учитывая многообразные сопутствующие нюансы.

Как настроить VPN?

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

Виндовс ХР

Чтобы VPN в операционной системе Windows ХР успешно осуществляла свою работу требуется произвести следующие последовательные шаги:


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

Примечание: ввод параметров всегда осуществляется по-разному, т. к. они зависят не только от сервера, но и от поставщика услуг связи.

Виндовс 8

В этой ОС вопрос, как настроить VPN, не должен вызвать особых затруднений, потому что здесь он почти автоматизирован.

Алгоритм последовательности действий состоит из следующих шагов:

Далее требуется указать опции сети. С этой целью произвести следующие действия:


Примечание: ввод настроек может значительно отличаться в зависимости от конфигурации сети.

Виндовс 7

Процесс выполнения настроек в Windows 7 прост и доступен даже неопытным пользователям компьютеров.

Чтобы их произвести пользователю Windows 7 требуется сделать следующие последовательные шаги:

Примечание: с целью корректной работы необходима тщательный индивидуальный подбор всех параметров.

Android

Чтобы настроить нормальное функционирование гаджета с ОС Android в среде ВПН надо сделать несколько действий:

Характеристики соединения

Эта технология включает в себя разные виды задержек при процедурах передачи данных. Задержки проявляются из-за следующих факторов:

  1. Нужно некоторое время для установления связи;
  2. Идет постоянный процесс кодирования передаваемой информации;
  3. блокам передаваемой информации.

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

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

Когда необходимо получить доступ к корпоративной сети, безопасно передать важную информацию по открытым каналам связи, скрыть свой трафик от бдительного взора провайдера, скрыть свое реальное местоположение при проведении каких-либо не совсем законных (или совсем не законных) действий, обычно прибегают к использованию VPN. Но стоит ли слепо полагаться на VPN, ставя на кон безопасность своих данных и собственную безопасность? Однозначно - нет. Почему? Давай разбираться.

WARNING

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

VPN нам нужен!

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

Утечка VPN-трафика

Первая проблема, связанная с виртуальными частными сетями, - это утечка трафика. То есть тот трафик, который должен быть передан через VPN-соединение в зашифрованном виде, попадает в сеть в открытом виде. Данный сценарий не является следствием ошибки в VPN-сервере или клиенте. Здесь все гораздо интереснее. Самый простой вариант - внезапный разрыв VPN-соединения. Ты решил просканировать хост или подсеть с помощью Nmap, запустил сканер, отошел на несколько минут от монитора, и тут VPN-соединение внезапно отвалилось. Но сканер при этом продолжает работать. И сканирование идет уже с твоего адреса. Вот такая неприятная ситуация. Но есть сценарии и интересней. Например, утечка VPN-трафика широко распространена в сетях (на хостах), поддерживающих обе версии протокола IP (так называемые dual-stacked сети/хосты).

Корень зла

Сосуществование двух протоколов - IPv4 и IPv6 - имеет множество интересных и тонких аспектов, которые могут приводить к неожиданным последствиям. Несмотря на то что шестая версия протокола IP не имеет обратной совместимости с четвертой версией, обе эти версии как бы «склеены» вместе системой доменных имен (DNS). Чтобы было понятней, о чем идет речь, давай рассмотрим простенький пример. Например, возьмем сайт (скажем, www.example.com), который имеет поддержку IPv4 и IPv6. Соответствующее ему доменное имя (www.example.com в нашем случае) будет содержать DNS-записи обоих типов: А и АААА. Каждая А-запись содержит один IPv4-адрес, а каждая АААА-запись содержит один IPv6-адрес. Причем для одного доменного имени может быть по несколько записей обоих типов. Таким образом, когда приложение, поддерживающее оба протокола, захочет взаимодействовать с сайтом, оно может запросить любой из доступных адресов. Предпочитаемое семейство адресов (IPv4 или IPv6) и конечный адрес, который будет использоваться приложением (учитывая, что их существует несколько для четвертой и шестой версий), будет отличаться от одной реализации протокола к другой.

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

VPN и двойной стек протоколов

Многие реализации VPN не поддерживают или, что еще хуже, полностью игнорируют протокол IPv6. При установке соединения программное обеспечение VPN берет на себя заботу по транспортировке IPv4-трафика - добавляет дефолтный маршрут для IPv4-пакетов, обеспечивая тем самым, чтобы весь IPv4-трафик отправлялся через VPN-соединение (вместо того чтобы он отправлялся в открытом виде через локальный роутер). Однако, если IPv6 не поддерживается (или полностью игнорируется), каждый пакет, в заголовке которого указан IPv6-адрес получателя, будет отправлен в открытом виде через локальный IPv6-роутер.

Основная причина проблемы кроется в том, что, хотя IPv4 и IPv6 - два разных протокола, несовместимых друг с другом, они тесно используются в системе доменных имен. Таким образом, для системы, поддерживающей оба стека протоколов, невозможно обеспечить безопасность соединения с другой системой, не обеспечив безопасность обоих протоколов (IPv6 и IPv4).

Легитимный сценарий утечки VPN-трафика

Рассмотрим хост, который поддерживает оба стека протоколов, использует VPN-клиент (работающий только с IPv4-трафиком) для подключения к VPN-серверу и подключен к dual-stacked сети. Если какому-то приложению на хосте нужно взаимодействовать с dual-stacked узлом, клиент обычно запрашивает и А-, и АААА-DNS-записи. Так как хост поддерживает оба протокола, а удаленный узел будет иметь оба типа DNS-записей (А и АААА), то одним из вероятных вариантов развития событий будет использование для связи между ними IPv6-протокола. А так как VPN-клиент не поддерживает шестую версию протокола, то IPv6-трафик не будет отправляться через VPN-соединение, а будет отправляться в открытом виде через локальную сеть.

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

Преднамеренно вызываем утечку VPN-трафика

Атакующий может преднамеренно вызвать подключение по протоколу IPv6 на компьютере жертвы, посылая поддельные ICMPv6 Router Advertisement сообщения. Подобные пакеты можно рассылать при помощи таких утилит, как rtadvd , SI6 Networks’ IPv6 Toolkit или THC-IPv6 . Как только соединение по протоколу IPv6 установлено, «общение» с системой, поддерживающей оба стека протоколов, может вылиться, как рассмотрено выше, в утечку VPN-трафика.

И хотя данная атака может быть достаточно плодотворной (из-за растущего числа сайтов, поддерживающих IPv6), она приведет к утечке трафика, только когда получатель поддерживает обе версии протокола IP. Однако для злоумышленника не составит труда вызвать утечки трафика и для любого получателя (dual-stacked или нет). Рассылая поддельные Router Advertisement сообщения, содержащие соответствующую RDNSS-опцию, атакующий может прикинуться локальным рекурсивным DNS-сервером, затем провести DNS-спуфинг, чтобы осуществить атаку man-in-the-middle и перехватить соответствующий трафик. Как и в предыдущем случае, такие инструменты, как SI6-Toolkit и THC-IPv6, могут легко провернуть такой трюк.

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

  1. Если VPN-клиент сконфигурирован таким образом, чтобы отправлять весь IPv4-трафик через VPN-соединение, то:
  • если IPv6 VPN-клиентом не поддерживается - отключить поддержку шестой версии протокола IP на всех сетевых интерфейсах. Таким образом, у приложений, запущенных на компьютере, не будет другого выбора, как использовать IPv4;
  • если IPv6 поддерживается - убедиться, что весь IPv6-трафик также отправляется через VPN.
  1. Чтобы избежать утечки трафика, в случае если VPN-соединение внезапно отвалится и все пакеты будут отправляться через default gateway, можно:
  2. принудительно заставить весь трафик идти через VPN route delete 0.0.0.0 192.168.1.1 // удаляем default gateway route add 83.170.76.128 mask 255.255.255.255 192.168.1.1 metric 1
  • воспользоваться утилитой VPNetMon , которая отслеживает состояние VPN-соединения и, как только оно пропадает, мгновенно завершает указанные пользователем приложения (например, торрент-клиенты, веб-браузеры, сканеры);
  • или утилитой VPNCheck , которая в зависимости от выбора пользователя может либо полностью отключить сетевую карту, либо просто завершить указанные приложения.
  1. Проверить, уязвима ли твоя машина к утечке DNS-трафика, можно на сайте , после чего применить советы, как пофиксить утечку, описанные .

Расшифровка VPN-трафика

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

Ахиллесова пята

При VPN-соединениях на базе протокола PPTP (Point-to-Point Tunneling Protocol) аутентификация пользователей проводится по протоколу MS-CHAPv2, разработанному компанией Microsoft. Несмотря на то что MS-CHAPv2 устарел и очень часто становится предметом критики, его продолжают активно использовать. Чтобы окончательно отправить его на свалку истории, за дело взялся известный исследователь Мокси Марлинспайк, который на двадцатой конференции DEF CON отчитался, что поставленная цель достигнута - протокол взломан. Надо сказать, что безопасностью этого протокола озадачивались и ранее, но столь долгое использование MS-CHAPv2, возможно, связано с тем, что многие исследователи концентрировались только на его уязвимости к атакам по словарю. Ограниченность исследований и широкое число поддерживаемых клиентов, встроенная поддержка операционными системами - все это обеспечило протоколу MS-CHAPv2 широкое распространение. Для нас же проблема кроется в том, что MS-CHAPv2 применяется в протоколе PPTP, который используется многими VPN-сервисами (например, такими крупными, как анонимный VPN-сервис IPredator и The Pirate Bay’s VPN).

Если обратиться к истории, то уже в 1999 году в своем исследовании протокола PPTP Брюс Шнайер указал, что «Microsoft улучшил PPTP, исправив основные изъяны безопасности. Однако фундаментальная слабость аутентификации и шифрования протокола в том, что он безопасен настолько, насколько безопасен выбранный пользователем пароль». Это почему-то заставило провайдеров поверить, что ничего страшного в PPTP нет и если требовать от пользователя придумывать сложные пароли, то передаваемые данные будут в безопасности. Сервис Riseup.net настолько проникся этой идеей, что решил самостоятельно генерировать для пользователей пароли длиной в 21 символ, не давая им возможности установить свои. Но даже такая жесткая мера не спасает от расшифровки трафика. Чтобы понять почему, давай поближе познакомимся с протоколом MS-CHAPv2 и посмотрим, как же Мокси Марлинспайк сумел его взломать.

Протокол MS-CHAPv2

Как уже было сказано, MSCHAPv2 применяется для аутентификации пользователей. Происходит она в несколько этапов:

  • клиент посылает запрос на аутентификацию серверу, открыто передавая свой login;
  • сервер возвращает клиенту 16-байтовый случайный отклик (Authenticator Challenge);
  • клиент генерирует 16-байтовый PAC (Peer Authenticator Challenge - равный отклик аутентификации);
  • клиент объединяет PAC, отклик сервера и свое user name в одну строку;
  • с полученной строки снимается 8-байтовый хеш по алгоритму SHA-1 и посылается серверу;
  • сервер извлекает из своей базы хеш данного клиента и расшифровывает его ответ;
  • если результат расшифровки совпадет с исходным откликом, все ОK, и наоборот;
  • впоследствии сервер берет PAC клиента и на основе хеша генерирует 20-байтовый AR (Authenticator Response - аутентификационный ответ), передавая его клиенту;
  • клиент проделывает ту же самую операцию и сравнивает полученный AR с ответом сервера;
  • если все совпадает, клиент аутентифицируется сервером. На рисунке представлена наглядная схема работы протокола.

На первый взгляд протокол кажется излишне сложным - куча хешей, шифрование, случайные challenge. На самом деле все не так уж и сложно. Если присмотреться внимательней, то можно заметить, что во всем протоколе остается неизвестной только одна вещь - MD4-хеш пароля пользователя, на основании которого строятся три DES-ключа. Остальные же параметры либо передаются в открытом виде, либо могут быть получены из того, что передается в открытом виде.


Так как почти все параметры известны, то мы можем их не рассматривать, а остановить свое пристальное внимание на том, что неизвестно, и выяснить, что это нам дает.


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

Имея на руках перехваченный трафик, можно попробовать его расшифровать. Есть несколько инструментов (например, asleap), которые позволяют подобрать пароль пользователя через атаку по словарю. Недостаток этих инструментов в том, что они не дают стопроцентной гарантии результата, а успех напрямую зависит от выбранного словаря. Подбирать же пароль простым брутфорсом тоже не очень эффективно - например, в случае с PPTP VPN сервисом riseup.net, который принудительно устанавливает пароли длиной в 21 символ, придется перебирать 96 вариантов символа для каждого из 21 символов. Это в результате дает 96^21 вариантов, что чуть больше, чем 2^138. Иными словами, надо подобрать 138-битный ключ. В ситуации же, когда длина пароля неизвестна, имеет смысл подбирать MD4-хеш пароля. Учитывая, что его длина равна 128 бит, получаем 2^128 вариантов - на данный момент это просто нереально вычислить.

Разделяй и властвуй

MD4-хеш пароля используется в качестве входных данных для трех DES-операций. DES-ключи имеют длину 7 байт, так что каждая DES-операция использует 7-байтовый фрагмент MD4-хеша. Все это оставляет возможность для классической атаки divide and conquer. Вместо того чтобы полностью брутить MD4-хеш (а это, как ты помнишь, 2^128 вариантов), мы можем подбирать его по частям в 7 байт. Так как используются три DES-операции и каждая DES-операция абсолютно независима от других, это дает общую сложность подбора, равную 2^56 + 2^56 + 2^56, или 2^57.59. Это уже значительно лучше, чем 2^138 и 2^128, но все еще слишком большое число вариантов. Хотя, как ты мог заметить, в эти вычисления закралась ошибка. В алгоритме используются три DES-ключа, каждый размером в 7 байт, то есть всего 21 байт. Эти ключи берутся из MD4-хеша пароля, длина которого всего 16 байт.


То есть не хватает 5 байт для построения третьего DES-ключа. В Microsoft решили эту задачу просто, тупо заполнив недостающие байты нулями и фактически сведя эффективность третьего ключа к двум байтам.


Так как третий ключ имеет эффективную длину всего лишь два байта, то есть 2^16 вариантов, его подбор занимает считаные секунды, доказывая эффективность атаки divide and conquer. Итак, можно считать, что последние два байта хеша известны, остается подобрать оставшиеся 14. Также разделив их на две части по 7 байт, имеем общее число вариантов для перебора, равное 2^56 + 2^56 = 2^57. Все еще слишком много, но уже значительно лучше. Обрати внимание, что оставшиеся DES-операции шифруют один и тот же текст, только при помощи разных ключей. Можно записать алгоритм перебора следующим образом:

Но так как текст шифруется один и тот же, то правильнее сделать вот так:

То есть получается 2^56 вариантов ключей для перебора. А это значит, что безопасность MS-CHAPv2 может быть сведена к стойкости одного DES-шифрования.

Взлом DES

Теперь, когда диапазон подбора ключа известен, для успешного завершения атаки дело остается только за вычислительными мощностями. В 1998 году Electronic Frontier Foundation построила машину Deep Crack, которая стоила 250 тысяч долларов и позволяла взламывать DES-ключ в среднем за четыре с половиной дня. В настоящее время Pico Computing, специализирующаяся на построении FPGA-оборудования для криптографических приложений, построила FPGA-устройство (DES cracking box), которое реализует DES как конвейер с одной DES-операцией на каждый тактовый цикл. Обладая 40 ядрами по 450 МГц, оно позволяет перебирать 18 миллиардов ключей в секунду. Обладая такой скоростью перебора, DES cracking box в худшем случае взламывает ключ DES за 23 часа, а в среднем за полдня. Данная чудо-машина доступна через коммерческий веб-сервис loudcracker.com . Так что теперь можно взломать любой MS-CHAPv2 handshake меньше, чем за день. А имея на руках хеш пароля, можно аутентифицироваться от имени этого пользователя на VPN-сервисе или просто расшифровывать его трафик.

Для автоматизации работы с сервисом и обработки перехваченного трафика Мокси выложил в открытый доступ утилиту chapcrack. Она парсит перехваченный сетевой трафик, ища MS-CHAPv2 handshake’и. Для каждого найденного «рукопожатия» она выводит имя пользователя, известный открытый текст, два известных шифртекста и взламывает третий DES-ключ. Кроме этого, она генерирует токен для CloudCracker, в котором закодированы три параметра, необходимые, чтобы сервис взломал оставшиеся ключи.

CloudCracker & Chapcrack

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

  1. Скачиваем библиотеку Passlib , реализующую более 30 различных алгоритмов хеширования для языка Python, распаковываем и устанавливаем: python setup.py install
  2. Устанавливаем python-m2crypto - обертку OpenSSL для Python: sudo apt-get install python-m2crypto
  3. Скачиваем саму утилиту chapcrack , распаковываем и устанавливаем: python setup.py install
  4. Chapcrack установлена, можно приступать к парсингу перехваченного трафика. Утилита принимает на вход cap-файл, ищет в нем MS-CHAPv2 handshake’и, из которых извлекает необходимую для взлома информацию. chapcrack parse -i tests/pptp
  5. Из выводимых утилитой chapcrack данных копируем значение строки CloudCracker Submission и сохраняем в файл (например, output.txt)
  6. Идем на cloudcracker.com, на панели «Start Cracking» выбираем File Type, равный «MS-CHAPv2 (PPTP/WPA-E)», выбираем предварительно подготовленный на предыдущем шаге файл output.txt, нажимаем Next -> Next и указываем свой e-mail, на который придет сообщение по окончании взлома.

К небольшому сожалению, сервис CloudCracker платный. К счастью, за взлом ключиков придется отдать не так уж много - всего 20 баксов.

Что делать?

Хоть Microsoft и пишет на своем сайте, что на данный момент не располагает сведениями об активных атаках с использованием chapcrack, а также о последствиях таких атак для пользовательских систем, но это еще не значит, что все в порядке. Мокси рекомендует всем пользователям и провайдерам PPTP VPN решений начинать миграцию на другой VPN-протокол. А PPTP-трафик считать незашифрованным. Как видишь, налицо еще одна ситуация, когда VPN может нас серьезно подвести.

Заключение

Так сложилось, что VPN ассоциируется с анонимностью и безопасностью. Люди прибегают к использованию VPN, когда хотят скрыть свой трафик от бдительных глаз провайдера, подменить свое реальное географическое положение и так далее. На деле получается, что трафик может «протечь» в сеть в открытом виде, а если и не в открытом, то зашифрованный трафик могут достаточно быстро расшифровать. Все это еще раз напоминает, что нельзя слепо полагаться на громкие обещания полной безопасности и анонимности. Как говорится, доверяй, но проверяй. Так что будь начеку и следи за тем, чтобы твое VPN-соединение было по-настоящему безопасным и анонимным.