Многие ресурсы, рассказывая пользователям о VPN, как правило, рекомендуют OpenVPN с шифрованием 256 бит, объясняя, что это самый надежный протокол. Но на самом деле это не совсем протокол, а на итоговую безопасность VPN влияют несколько показателей, и каждый из них очень важен.
Мы начинаем цикл глав о выборе безопасного VPN, в рамках которого рассмотрим показатели, влияющие на итоговую безопасность VPN, и в их разрезе расскажем о некоторых уязвимых местах VPN-туннеля.
Протокол туннелирования
Как правило, выбор VPN начинается с выбора протокола туннелирования (далее ПТ). Сегодня на рынке имеется несколько вариантов ПТ для реализации виртуальной частной сети: OpenVPN, PPTP, L2TP/IPsec, IPsec IKEv2 и другие, не получившие широкого распространения. Сразу хотелось бы отметить, что OpenVPN не совсем верно называть протоколом туннелирования, это программное обеспечение для создания виртуальной сети, но пусть будет протокол, дабы избежать путаницы.
Что такое протокол? Представьте себе ситуацию: вы встретились с человеком и хотите с ним пообщаться, но говорите на разных языках. Разумеется, вы не поймете друг друга, и речи о каком-либо полноценном взаимодействии идти не может. Протокол – это и есть язык взаимодействия, в данном случае между компьютером и VPN-сервером.
PPTP
PPTP – первый протокол, поддерживаемый на платформе Windows. Протокол имеет слабое шифрование и может быть взломан как спецслужбами, так и квалифицированными злоумышленниками. Из плюсов стоит отметить отсутствие необходимости устанавливать дополнительное программное обеспечение и скорость работы. PPTP VPN требует минимальных ресурсов и по сравнению с OpenVPN почти не расходует заряд при использовании на мобильных устройствах.
Почему этот протокол до сих пор используется? Главная его проблема – слабая защита передачи ключа, но это не значит, что любой желающий может взломать шифрование. PPTP имеет и свои плюсы: простоту в настройке и использовании, неплохую защиту и смену IP-адреса. PPTP, может, и не самый защищенный протокол, но определенно лучше, чем ничего.
L2TP/IPsec
Что о нем надо знать:
- он медленнее других из-за двойного инкапсулирования (создается IPsec-туннель, а данные ходят через L2TP);
- использует стандартные порты, и потому его легко может заблокировать интернет-провайдер или системный администратор;
- операционные системы имеют встроенную поддержку этой технологии, нет необходимости ставить дополнительное ПО;
- при его правильной настройке нет информации о возможности расшифровать данные.
Мы его не рекомендуем и не используем из-за скорости, потому много рассказывать о нем в рамках курса не станем.
IPsec IKEv2
Что такое IKEv2 в этой связке? Это, если говорить очень просто, авторизация через сертификат, и она, к сожалению, поддерживается не всеми устройствами.
Что о нем надо знать:
- работает быстрее, нежели L2TP/IPsec, сопоставим с OpenVPN, медленнее PPTP;
- поддерживается не всеми операционными системами (хотя сам IPsec поддерживается везде);
- при правильной настройке его не могут расшифровать ни спецслужбы, ни злоумышленники (по крайней мере, так считается в среде IT-специалистов).
Стоит отметить поддержку IPsec на всех популярных операционных системах как положительный момент. Но есть по этому поводу и другое мнение: в отличие от встроенных систем шифрования диска, наличие встроенных систем IPsec не вызывало возмущений со стороны спецслужб. Его реализовали даже в Windows, где всегда воздерживались от инструментов защиты данных, недоступных для взлома спецслужбам. Этот факт многим кажется подозрительным.
OpenVPN
OpenVPN – бесплатное решение с открытым исходным кодом, которое, по признанию большинства специалистов, является самым лучшим на сегодняшний день для создания частной виртуальной сети (VPN).
Что надо знать об OpenVPN:
- не входит в состав стандартных дистрибутивов современных операционных систем, потому требует установки дополнительного программного обеспечения;
- при правильной настройке его не смогут расшифровать ни спецслужбы, ни злоумышленники;
- при нестандартных настройках сложно блокируется.
Да, OpenVPN требует установки дополнительного программного обеспечения, но это проверенный временем софт с открытым исходным кодом, установка и настройка которого не создаст проблем даже новичку. OpenVPN работает на всех современных операционных системах: Windows, macOS, Linux, Android, iOS.
Выбор транспортного протокола для OpenVPN. TCP или UDP?
Зашифрованная информация, созданная при помощи OpenVPN, может передаваться по одному из двух протоколов: UDP или TCP. VPN-провайдеры обычно предлагают оба варианта, сопровождая их комментарием "TCP надежней, UDP быстрее".
Представьте себе, что вы рубите лес для постройки дома и вам надо спускать срубленные деревья вниз по реке до места строительства. Вы можете просто бросать их в воду, и ваш помощник будет ловить их на месте стройки ‒ это будет самым быстрым и простым способом. Но если бревно застрянет в процессе доставки или будет похищено, вы не узнаете этого, разве что когда вам не хватит бревен на постройку дома.
А если вы присвоите каждому бревну номер и ваш помощник будет звонить после получения каждого бревна, уведомляя об успешной доставке, в этом случае, даже если какие-то бревна будут потеряны, вы узнаете об этом незамедлительно и отправите замену. Но согласитесь, такой способ отправки бревен займет больше времени, а потому, если река широкая и не извилистая, лучше использовать простой и быстрый способ.
Аналогичная ситуация и в выборе протокола: UDP – быстрый способ без подтверждения доставки пакетов, его мы рекомендуем использовать при стабильном интернете. TCP не такой быстрый, но зато доставка каждого пакета подтверждается, он рекомендуется при плохой связи.
TCP необходим в тех ситуациях, когда UDP-трафик блокируется провайдером или настройками роутера. Альтернативный вариант OpenVPN TCP по 443 порту не может быть заблокирован, так как этот порт используется для всех HTTPS-соединений, и пользователи просто не смогут открывать сайты.
Мы в своих решениях ставим OpenVPN UDP, но если в течение 15 секунд не получается подключиться при помощи UDP, автоматически начинается TCP-соединение.
В следующей главе мы поговорим про TLS authentication, порт соединения, генерацию сессионного ключа, алгоритмы шифрования, длину ключа, аутентификацию данных и другие составляющие безопасного VPN-соединения.