Обзор VPN технологий

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

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

Заметка про длину ключа шифрования

Грубо говоря, длина ключа, используемого при создании шифра, определяет, сколько времени потребуется для взлома с помощью прямого перебора. Шифры с более длинными ключами требуют значительно больше времени для перебора, чем более короткие («брутфорс» означает перебор всех возможных комбинаций, пока не будет найдена верная).

Сейчас почти невозможно найти VPN-шифрование с использованием ключа длиной менее 128 бит и все сложнее найти 256-битное шифрование в предлагаемых OpenVPN-решениях, ключи которых бывают даже 2048 бит. Но что означают эти цифры на практике, 256-битное шифрование действительно более безопасное, чем 128-битное?

Краткий ответ таков: при практическом применении – нет. Это правда, что взлом 256-битного ключа потребует в 2128 больше вычислительной мощности, чем взлом 128-битного ключа. Это означает, что потребуется 3.4х10^38 операций (количество комбинаций в 128-битном ключе) – подвиг для существующих компьютеров и даже в ближайшем будущем. Если бы мы применили самый быстрый суперкомпьютер (по данным 2011 года его скорость вычислений 10.51 петафлопс), нам потребовалось бы 1.02х10^18 (около 1 миллиарда) лет, чтобы взломать 128-битный AES-ключ путем перебора.

Так как на практике 128-битный шифр не может быть взломан путем перебора, было бы правильно говорить, что ключа такой длины более чем достаточно для большинства применений. Только настоящие параноики (например, чиновники в правительстве, имеющие дело со сверхсекретными документами, которые должны оставаться в тайне в течение следующих 100 или более лет) могут использовать 256-битное шифрование (правительство США, например, использует сертифицированный NIST 256-битный AES-шифр).

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

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

Различные шифры имеют уязвимости, которые могут быть использованы для быстрого взлома. Также могут быть использованы специальные программы, такие как клавиатурные шпионы. Подводя итоги, можно сказать, что использование шифрования с ключом более 128 бит на самом деле вряд ли имеет значение для большинства пользователей.

PPTP

Протокол туннелирования точка-точка (Point-to-Point Tunneling Protocol) – это протокол, изобретенный Microsoft для организации VPN через сети коммутируемого доступа. PPTP является стандартным протоколом для построения VPN уже на протяжении многих лет. Это только VPN-протокол и он опирается на различные методы аутентификации для обеспечения безопасности (наиболее часто используется MS-CHAP v.2). Доступен как стандартный протокол почти во всех операционных системах и устройствах, поддерживающих VPN, что позволяет использовать его без необходимости установки дополнительного программного обеспечения. PPTP остается популярным выбором как предприятий, так и VPN-провайдеров. Его преимущество также в том, что он использует меньше вычислительных ресурсов, следовательно обладает высокой скоростью работы.

Хотя PPTP обычно и используется со 128-битным шифрованием, в следующие несколько лет после включения этого протокола в состав Windows 95 OSR2 в 1999 году были найдены ряд уязвимостей. Наиболее серьезной из которых явилась уязвимость протокола аутентификации MS-CHAP v.2. Используя эту уязвимость, PPTP был взломан в течение 2 дней. И хотя компанией Microsoft была исправлена эта ошибка (за счет использования протокола аутентификации PEAP, а не MS-CHAP v.2), она сама рекомендовала к использованию в качестве VPN проколов L2TP или SSTP.

Плюсы:

  • клиент PPTP встроен почти во все операционные системы
  • очень прост в настройке
  • работает быстро

Минусы:

  • небезопасен (уязвимый протокол аутентификации MS-CHAP v.2 все еще много где используется)

L2TP и L2TP/IPsec

Протокол туннелирования 2 уровня (Layer 2 Tunnel Protocol) – это протокол VPN, который сам по себе не обеспечивает шифрование и конфиденциальность трафика, проходящего через него. По этой причине, как правило, используется протокол шифрования IPsec для обеспечения безопасности и конфиденциальности.

L2TP/IPsec встроен во все современные операционные системы и VPN-совместимые устройства, и так же легко может быть настроен как и PPTP (обычно используется тот же клиент). Проблемы могут возникнуть в том, что L2TP использует UDP-порт 500, который может быть заблокирован файрволлом, если вы находитесь за NAT. Поэтому может потребоваться дополнительная настройка роутера (переадресация портов). Кстати, протокол SSL, например, использует TCP-порт 443, чтобы быть неотличимым от обычного HTTPS-трафика.

Протокол IPsec на данный момент не имеет никаких серьезных уязвимостей и считается очень безопасным при использовании таких алгоритмов шифрования, как AES. Однако, поскольку он инкапсулирует данные дважды, это не так эффективно, как SSL-решения (например, OpenVPN или SSTP), и поэтому работает немного медленнее.

Плюсы:

  • очень безопасен
  • легко настраивается
  • доступен в современных операционных системах

Минусы:

  • работает медленнее, чем OpenVPN
  • может потребоваться дополнительная настройка роутера

OpenVPN

OpenVPN является достаточно новой технологией с открытым кодом, которая использует библиотеку OpenSSL и протоколы SSLv3/TLSv1, наряду с множеством других технологий для обеспечения надежного VPN-решения. Одним из его главных преимуществ является то, что OpenVPN очень гибок в настройках. Этот протокол может быть настроен на работу на любом порту, в том числе на 443 TCP-порту, что позволяет маскировать трафик внутри OpenVPN под обычный HTTPS (который использует, например, Gmail) и поэтому его трудно заблокировать.

Еще одним преимуществом OpenVPN является то, что используемые для шифрования библиотеки OpenSSL поддерживают множество криптографических алгоритмов (например, AES, Blowfish, 3DES, CAST-128, Camelia и другие). Наиболее распространенные алгоритмы, которые используют VPN-провайдеры – AES и Blowfish. AES является новой технологией, и хотя оба считаются безопасными, тот факт, что он имеет 128-битный размер блока, а не 64-битный как у Blowfish, означает, что он может работать с большими (более 1Гб) файлами лучше. Различия, однако, довольно незначительные. То, как быстро работает OpenVPN, зависит от выбранного алгоритма шифрования, но, как правило, работает быстрее, чем IPsec.

OpenVPN стал технологией №1 при использовании VPN, и хотя он изначально не поддерживается операционными системами, этот протокол широко поддерживается через стороннее программное обеспечение. Совсем недавно невозможно было использовать OpenVPN на iOS и Android без джейлбрейка и рута, а сейчас появились сторонние приложения, которые частично решили эту проблему.

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

Плюсы:

  • гибко настраивается
  • очень безопасен (зависит от выбранного алгоритма шифрования, но все они безопасны)
  • может работать сквозь файрволлы
  • может использовать широкий спектр алгоритмов шифрования

Минусы:

  • необходимо стороннее программное обеспечение
  • может быть неудобен в настройке
  • ограниченная поддержка портативными устройствами

SSTP

Протокол безопасного туннелирования сокетов (Secure Socket Tunneling Protocol) – был представлен Microsoft в Windows Vista SP1, и хотя он теперь доступен на Linux, RouterOS и SEIL, он по-прежнему используется в значительной степени только Windows-системами (есть очень маленький шанс, что он появится на Apple устройствах). SSTP использует SSL v.3 и, следовательно, предлагает аналогичные преимущества, что и OpenVPN (например, возможность использовать TCP-порт 443 для обхода NAT), а так как он интегрирован в Windows, он проще в использовании и более стабилен, чем OpenVPN.

Плюсы:

  • очень безопасен (зависит от алгоритма шифрования, обычно используется очень стойкий AES)
  • полностью интегрирован в Windows (начиная с Windows Vista SP1)
  • имеет поддержку Microsoft
  • может работать сквозь файрволлы

Минусы:

  • работает только в Windows-среде

Заключение

PPTP небезопасен (даже его создатели в Microsoft отказались от него), поэтому его использования следует избегать. В то время, как простота установки и кроссплатформенная совместимость являются привлекательными, L2TP/IPsec имеет те же преимущества и является более безопасным.

L2TP/IPsec является хорошим решением VPN, но не таким хорошим, как OpenVPN. Однако, для быстрой настройки VPN без необходимости установки дополнительного программного обеспечения остается лучшим решением, особенно для мобильных устройств, где поддержка OpenVPN по-прежнему на низком уровне.

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

SSTP предлагает большинство преимуществ OpenVPN, но только в среде Windows. Это означает, что он лучше интегрирован в ОС, но благодаря этому он слабо поддерживается VPN-провайдерами.

Большинство пользователей могут использовать OpenVPN на своих настольных компьютерах, возможно, дополнив его L2TP/IPsec на своих мобильных устройствах.

Цельнотянуто с Хабра