Найти тему
IT Проповедник

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

Оглавление

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

Если вы уже знаете, как работает VPN, то можете почитать тут, действительно ли он безопасен. А если вы еще не знаете, что такое VPN, то можете прочитать нашу статью.

-2

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

Инкапсуляция

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

-3

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

-4

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

1) У нас есть первоначальный пакет:

-5

2) Помещаем этот пакет внутрь другого пакета (инкапсулируем):

-6

То есть один пакет теперь передает другой пакет. Однако как веб-сервер поймет, что тут была инкапсуляция? А ему и не нужно. Эту «обертку» снимает VPN-сервер, а на веб-сервер (сайт), который вы хотели посетить, попадет пакет в первоначальном виде. Представить это можно в виде такой картинки:

-7

Соответственно, процедура обработки пакета при ответе сервера происходит в обратном порядке: пакет идет на VPN сервер, запаковывается и передаётся на девайс, где клиентом VPN распаковывается. И только после этого вы видите ответ сервера в вашем браузере.

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

-8

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

Шифрование

Шифрование – это процесс преобразования данных таким образом, что только компьютер с правильным ключом может преобразовать иx обратно в читаемую форму. Для всех же остальных эти данные будут оставаться в нечитаемом, совершенно бессмысленном виде.

Очень важно:

VPN является настолько же безопасным, каким является шифрование, которое он использует для защиты ваших данных.

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

VPN-протоколы

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

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

Существует несколько доступных протоколов VPN, но не все из них безопасны в использовании. Вот таблица наиболее распространенных:

-9
  • OpenVPN. На данный момент предпочтительный протокол VPN. Он с открытым исходным кодом, с достаточной и проверенной степенью безопасности, а также работает почти на всех устройствах с поддержкой VPN. OpenVPN хорошо протестирован и остается золотым стандартом отрасли. Лучше использовать OpenVPN там, где это возможно.
  • IKEv2 / IPSec. IKEv2 - это более новый протокол VPN с закрытым исходным кодом. Он безопасен, довольно быстр и легко справляется с изменениями в сети. Это делает его идеальным протоколом для мобильных устройств, которые постоянно переключаются между Wi-Fi и мобильными сетями.
  • L2TP / IPSec. Этот протокол довольно устарел и имеет несколько недостатков в системе безопасности. При использовании с шифром AES он обычно считается безопасным, но есть предположения, что протокол был скомпрометирован АНБ.
  • SSTP. Этот протокол с закрытым исходным кодом. Был разработан компанией Microsoft и основан на SSL 3.0, который, кстати, уязвим к MITM атаке Poodle. Однако, это еще не было подтверждено. Тем не менее сообщество экспертов однозначно сходится на том, что явно не стоит рисковать и использовать его, когда есть более надежные протоколы.
  • PPTP. Этот протокол точно не стоит использовать. Он уже давно скомпрометирован, а на его взлом могут понадобиться считанные минутки.
  • Wireguard. Это самый новый протокол на сегодняшний день. Он вселяет надежды и является весьма многообещающим, поскольку стремится быть безопасным и удобным для пользования. Однако до сих пор не было стабильного выпуска. Поэтому данный протокол все еще считается экспериментальным.

Шифры

В то время, как VPN-протоколы создают VPN-туннель, безопасно соединяя клиента с сервером, шифры используются непосредственно для шифрования передаваемой информации. Операции шифрования и расшифрования строятся на знании определенного секрета – ключа. Без него дешифровать информацию чрезвычайно трудно. 

Говоря о шифровании, обычно упоминается название шифра (например, AES),  а также длина ключа (128), которая обозначает количество битов в данном ключе. 

На данный момент рекомендуемой длиной ключа для симметричного шифрования считается 256 бит. Этой длины достаточно, чтобы увеличить перебираемое множество настолько, что нужно потратить несколько миллиардов лет в попытке поиска ключа.

Соответственно, в VPN-протоколах тоже используются различные шифры:

  • AES. Он как OpenVPN в мире симметричных шифров. Он используется правительством США для конфиденциальных данных и считается чрезвычайно безопасным. Часто используются и 128-, и 256-битные ключи (есть еще длиной 196). И тот, и другой варианты считаются безопасными.
  • Blowfish. Раньше этот шифр использовался в OpenVPN по умолчанию, однако теперь его заменяет AES, поскольку первый не считается безопасным из-за уязвимости к атаке дня рождения.
  • Camellia. Этот шифр очень похож на AES с точки зрения скорости и безопасности. Однако, в отличие от AES, это не было доказано Национальным институтом стандартов и технологий. То есть он не был так же тщательно изучен и протестирован.

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

Спасибо за прочтение!

Ключевые слова: VPN, ВПН, Как работает VPN, инкапсуляция, туннель, протокол, шифр, ключ

Источник: IT Проповедник