Статьи

Анонимность в Интернете: VPN-сети

17.06.2013

/

В настоящее время широкое распространение получили VPN-сети. Виртуальная частная сеть – именно так переводится аббревиатура VPN – Virtual Private Network. Данная технология будет рассмотрена в настоящем исследовании исключительно с точки зрения обеспечения анонимности пользователя в Интернете. Концептуально схема использования VPN достаточно проста и основывается на полном доверии к VPN-серверу. Клиент подключается к серверу, а сервер уже от своего имени осуществляет доступ к целевому ресурсу. Соединение между клиентом и сервером VPN зашифровано. Общая схема работы VPN представлена далее на рисунке 1.

Рисунок 1 – Схема работы VPN

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

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

В настоящее время существуют несколько протоколов VPN:

  • PPTP – используется наиболее широко, быстрый, легко настраивается, однако считается «наименее защищённым» по сравнению с остальными, некоторые версии протокола уязвимы к перехвату учетных данных при подключении;
  • L2TP + IPSec. Протокол L2TP обеспечивает транспорт, а IPSec отвечает за шифрование. Данная связка имеет более сильное шифрование, чем PPTP, устойчива к уязвимостям PPTP, обеспечивает также целостность сообщений и аутентификацию сторон. Однако всё это более медленно, чем PPTP;
  • OpenVPN – открытый протокол, требует отдельного клиента для подключения. Достаточно безопасный протокол, но немного более сложный в своей настройке;
  • SSTP – наиболее защищённый протокол, использующий SSL 3.0.

Практически все коммерческие VPN-провайдеры предлагаю выбор из двух протоколов: OpenVPN и PPTP. Реже предлагается протокол L2TP+IPSec. И уж совсем единицы, например, сервис www.vpnreactor.com, предлагают протокол SSTP. Стоит отметить, что многие провайдеры принимают для оплаты своих услуг анонимную криптовалюту, например, Bitcoin.

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

Любопытное исследование, касающееся анонимности и надёжности VPN-серверов, было проведено ресурсом www.torrentfreak.com, VPN-провайдерам были заданы вопросы:

  1. Храните ли вы журналы, позволяющие вам или третьим лицам сопоставить ip-адрес или временную отметку с вашим клиентом? Если да, то какие данные вы храните?
  2. Под какой юрисдикцией работает ваша компания, и при каких обстоятельствах вы раскроете данные третьей стороне?
  3. В случае, если вы получите DMCA-уведомление или его европейский аналог, что вы с ним сделаете?
  4. С какими платежными системами Вы работаете, и как они связаны с учетными записями пользователей?

Полные результаты опроса представлены здесь: https://torrentfreak.com/vpn-services-that-take-your-anonymity-seriously-2013-edition-130302/. Общий мотив ответов следующий: «Журналы не хранятся, а если и хранятся, то очень недолго, по ним вычислить абонента нельзя. На нас очень трудно надавить и заставить выдать хоть что-то». Среди всех прочих хорошо себя зарекомендовали провайдеры PRQ, Mullvad, Ipredator. Резюмируя, стоит отметить, что большинство VPN-провайдеров единодушно сходятся в своих ответах по поводу анонимности клиентов, и не дают усомниться в своей надёжности. Разумеется, других ответов от сервисов, главной целью которых является обеспечения анонимности пользователей, ожидать не приходилось.

Отдельно стоит отметить сервисы, предоставляющие цепочки из двух и более VPN-серверов. Как правило, встречаются услуги вроде «DoubleVPN», когда перед тем, как выйти в Интернет, ваш траффик проходит 2 разных VPN-сервера в разных странах, или даже «QuadVPN», когда используется 4 сервера, которые пользователь может выбрать сам и расположить в произвольном порядке. На практике опять же всё опять упирается в доверие к VPN-провайдеру или провайдерам, если их несколько. Общая схема такого подключения показана на рисунке 2.

Рисунок 2 – Пример DoubleVPN

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

  1. Удаляем любые маршруты по умолчанию:

    route delete 0.0.0.0 mask 0.0.0.0

  2. Разрешаем доступ в интернет только к адресу VPN-сервера:

    route add 55.55.55.55 mask 255.255.255.255 192.168.0.1

  3. Добавляем маршрут по умолчанию со шлюзом – адресом VPN-сервера:

    route add 0.0.0.0 mask 0.0.0.0 55.55.55.55

Где: 192.168.0.1 — шлюз интернета, 55.55.55.55 — VPN-шлюз.

Еще одним способом является установка в свойствах открытого Интернет-соединения несуществующих DNS-серверов, например, 127.0.0.1. В таком случае веб-сёрфинг и другие подобные задачи становятся невозможными без подключения к VPN-серверу.

Также существует специальное ПО, например, VPN-watcher, которое для заданных приложений проверяет VPN-соединение несколько раз в секунду и приостанавливает их работу, если VPN-соединение обрывается.

Перспективным выглядит использование частного VPN-сервера с последующим направлением траффика на общий SOCKS-сервер. В таком случае при правильном выборе SOCKS-провайдера будет достигаться скрытие адреса VPN-сервера, в результате клиента будет труднее вычислить.

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

Ещё одним методом обеспечения анонимности, функционирование которого, в общем, очень похоже на применение VPN-сервера, является использование SSH-туннеля. SSH туннель — это туннель, создаваемый посредством SSH-соединения и используемый для шифрования туннелированных данных. Как гласит одноимённая статья в Википедии: «SSH (англ. Secure SHell — «безопасная оболочка») — сетевой протокол прикладного уровня, позволяющий производить удалённое управление операционной системой и туннелирование TCP-соединений (например, для передачи файлов)».

При использовании SSH-туннеля открытый траффик какого-либо протокола шифруется на одном конце SSH-соединения, клиенте, и расшифровывается на другом, SSH-сервере. Стоит отметить, что, начиная с версии 4.3, открытая реализация SSH, OpenSSH, может использовать туннельные сетевые интерфейсы 2-го и 3-го уровней модели OSI, то есть организовывать аналоги VPN-соединений со всеми их плюсами и минусами. При этом протокол SSH поддерживает несколько вариантов работы.

В первом варианте приложение должно иметь настройки HTTP\SOCKS5-прокси для направления траффика в SSH-туннель. Это является минусом, так как SSH-туннель туннелирует отдельные приложения, а не весь траффик, как это делает VPN. В туннелируемых приложениях опять же должны быть доступны настройки выбора HTTP\SOCKS5-прокси. В принципе данная проблема решается использованием дополнительных программ, соксификаторов, которые отправляют траффик приложения через прокси-сервер, однако настраивать каждую программу для работы с SSH-туннелем неудобно. Во втором случае можно организовать практически полноценное VPN-соединение и обойтись без настройки SOCKS.

Схема работы SSH-туннеля показана на рисунке 3.

Рисунок 3 – Схема работы SSH-туннеля

Из минусов такого решения можно отметить сравнительно более низкую, чем VPN, производительность на медленных каналах связи. В итоге, в задаче обеспечении анонимности клиента VPN-сервисы успешно вытеснили SSH-туннели, которые используются в основном для удалённого управления компьютерами и решения иных специализированных задач.