VPN-блокировки не за горами, но с ними можно бороться

Оnyxion

Местный


Технические специалисты «РосКомСвободы» подготовили просветительский материал по теме VPN, и мы публикуем его первую часть, в которой рассказывается о вероятности блокировок таких сервисов, способах технического противостояния цензуре и защите пользователей.

photo_2021-09-22_10-11-37.jpg


1 ноября 2019 года в силу вступил Закон о «суверенном Рунете», согласно которому, российский сегмент интернета должен «централизованно управляться Роскомнадзором». И ведомство взялось за то, чтобы установить полный контроль. А на пути к этому стоят VPN-сервисы, предоставляющие россиянам доступ к заблокированным в России сайтам.
Роскомнадзор уже неоднократно предпринимал попытки преследования VPN, которые не хотят фильтровать трафик пользователей и осуществлять блокировки по реестру запрещённых сайтов (что само по себе для VPN абсурдно). Так, в течение лета 2021 года в СМИ периодически появляется информация, что то один, то другой VPN-сервис якобы подвергся блокировке от госведомства. Правда, в большинстве случаев их пользователи никаких особых сбоев в работе не замечают. Роскомнадзор же явно намерен продолжать попытки, в том числе используя новые возможности ТСПУ (технические средства противодействия угрозам), блокировать такие сервисы. И, кажется, что риски блокировок или других санкций для строптивых VPN сейчас действительно высоки.


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

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

Глоссарий терминов:

  • Частная сеть (private network) — компьютерная сеть, использующая зарезервированные диапазоны IP-адресов для внутренней адресации, и изолированная от Интернета. Примером может служить частное жилье, где несколько устройств подключены к роутеру, или внутренняя сеть учебного заведения. Для связи с Интернетом частная сеть использует шлюзы — узлы сети, имеющие несколько сетевых интерфейсов, один из которых подключён в внутренней сети, а другой — к внешней.

  • Виртуальная частная сеть (virtual private network, VPN) — сеть, которая позволяет узлам обмениваться данными между собой, не будучи непосредственно соединёнными проводом между собой (как это происходит в случае частной сети), а работая поверх другой сети (в большинстве случаев, Интернета).
    • Первоначально технология использовалась в бизнес-среде, для обеспечения удалённой работы сотрудников (remote access) и для связи внутренних сетей компании, разделённых физически (например, отделений в разных городах, site-to-site).
    • Позже стала использоваться обычными пользователями для обеспечения анонимности в Интернете и обхода ограничений на доступ к ресурсам.
    • Для реализации VPN используются технологии туннелирования.
  • Туннель — технология, позволяющая установить соединение между двумя узлами поверх какой-либо сети и передавать данные других приложений внутри этой сети.
    • Это достигается за счёт инкапсуляции (вложения друг в друга) протоколов.
    • Инкапсулируемый (вложенный) протокол обычно (вне ситуации инкапсуляции) относится к более низкому уровню «сетевой модели», нежели тот, который используется в качестве туннеля. Примером может служить TCP, инкапсулированный внутри HTTP, или Ethernet внутри TCP/UDP. В «обычное время» TCP и UDP работают поверх Ethernet, а HTTP поверх TCP. В случае же прохождения трафика через туннель в некоторых случаях получается двойное использование некоторых протоколов.
  • Протокол шифрования — обеспечивает (де)шифрование данных, передаваемых по сети. Примеры: TLS (ранее SSL), Noise и другие.

  • Сетевая модель TCP/IP — модель, описывающая соотношение протоколов, использующихся для передачи информации по Интернету. В ней выделяют 4 уровня:
    • Канальный уровень (link layer) - самый низкий уровень, на нем обеспечивается физическая передача данным проводным или беспроводным способом. Примеры протоколов: Ethernet (проводной), IEEE 802.11 (беспроводной)
    • Сетевой уровень (internet layer) - отвечает за адресацию и роутинг (маршрутизацию) между сетями. Основной протокол: IP (Internet Protocol)
    • Транспортный уровень (transport layer) - отвечает за установку соединения (канала передачи данных) между 2 узлами в сети и передачу данных по нему. 2 основных протокола: TCP, UDP
      • TCP (Transmission Control Protocol) гарантирует полноту и целостность доставленных данных за счет увеличения объема трафика и снижения скорости обмена данными
      • UDP (User Datagram Protocol) не дает такой гарантии и не имеет соответствующих недостатков
      • Помимо них существуют и другие протоколы этого уровня, например SCTP (Stream Control Transmission Protocol) - более современный протокол, призванный компенсировать некоторые недостатки TCP, или ICMP, который плохо подходит для передачи данных, но используется для передачи технической информации (например, в команде ping, проверяющей доступность узла в сети).
    • Прикладной уровень (application layer) - на нем расположены протоколы различных приложений, выполняющих свои задачи. Примеры протоколов: HTTP, SMTP (передача почтовых сообщений), SSH (удаленное подключение к компьютеру через командную строку, туннелирование TCP-трафика). Существует множество протоколов прикладного уровня

Список распространённых протоколов VPN:

1. L2TP/IPsec — связка из двух протоколов, где сначала IPsec устанавливает защищённый канал связи, внутри которого L2TP устанавливает защищённый туннель. Такая комбинация считается морально устаревшей по соображениям безопасности и невысокой производительности.
a) IPSec (Internet Protocol Security) - разработан Инженерным советом Интернета (Internet Engineering Task Force, IETF) для IPv6 (первоначально был обязательным, позже стал рекомендацией)
i) Может использоваться также как протокол туннелирования (tunnel mode), но в связке с L2TP используется в «транспортном» режиме (transport mode).
b) L2TP (Layer 2 Tunneling Protocol) — протокол туннелирования. Его стандарт был опубликован в 2000 году и явился развитием протоколов L2F (Layer 2 Forwarding Protocol, Cisco) и PPTP.
i) Сам по себе не имеет механизма шифрования данных.
2. Альтернативно используется связка IKEv2/IPsec, которая обеспечивает бо́льшую скорость передачи данных в сравнении с L2TP/IPsec и позволяет поддерживать соединение при переключении от одной сети к другой (что актуально для мобильных приложений). Такая комбинация не отличается максимальной защитой, но обеспечивает высокую скорость и стабильность соединения.
a) IKEv2 (Internet Key Exchange) — протокол обмена ключами, позволяющий установить предварительное безопасное соединение для того чтобы узлы сети смогли безопасно обменяться информацией, необходимой для установки полноценного защищённого подключения (используемый алгоритм шифрования, ключ шифрования и т. п.)
b) То есть в данной связке IPsec используется как протокол туннелирования.
3. OpenVPN — свободное ПО, демон для установки защищённого соединения между клиентами и сервером.
a) Использует собственный протокол, включающий в себя SSL/TLS для шифрования данных.
b) Открытый исходный код позволяет любому желающему провести собственный аудит и убедиться в отсутствии случайно или специально оставленных бэкдоров.
c) Имеет репутацию надёжного, проверенного временем решения.
4. WireGuard — современный протокол, созданный как замена OpenVPN.
a) Малая кодовая база упрощает аудит по сравнению с OpenVPN.
b) Занимает лидирующие позиции по скорости и использует современные технологии шифрования. Впрочем, так же существует критика проекта со стороны некоторых криптоаналитиков за отсутствие такой расширяемости в плане использования протоколов шифрования, которая есть у IPSec.
c) NordLynx — проприетарный вариант WireGuard, используемый NordVPN. По утверждению компании он «решает проблему WireGuard, который должен хранить на сервере IP-адреса подключённых к нему клиентов».

Прочие протоколы VPN:

1. PPTP (Point-to-Point Tunneling Protocol) — морально устаревший протокол, не обеспечивающий надёжного шифрования.
1) SSTP (Secure Socket Tunneling Protocol) — проприетарный протокол Microsoft, позволяет использовать PPTP вместе с SSL/TLS шифрованием.
2) MPPE (Microsoft Point-to-Point Encryption) — используется для шифрования данных в рамках PPTP и PPP (Point-to-Point Protocol).
2. SoftEther — протокол, используемый приложением SoftEther VPN (которое также поддерживает альтернативные протоколы).
1) Обеспечивает хорошую защиту от DPI (deep packet inspection) за счёт использования инкапсуляции Ethernet внутрь HTTPS.
2) Поддерживает VPN over ICMP и VPN over DNS, позволяя проникать сквозь сети, которые не пропускают через себя TCP/UDP трафик.
3. Cisco AnyConnect — технология установления подключения к VPN. Для обмена данными может использовать также протоколы UDP и SCTP (Stream Control Transmission Protocol). В некоторых случаях (UDP) так же использует DTLS (Datagram Transport Layer Security) для обеспечения безопасности соединения.
1) OpenConnect — open-source реализация данного способа подключения.
4. Lightway — собственная разработка ExpressVPN как альтернатива WireGuard. Отличается минимальной кодовой базой, и, по утверждению разработчиков, стабильно работает при переключении между разными сетями.

Смежные технологии:

1. TLS, ранее SSL (Transport Layer Security, Secure Sockets Layer) - распространённый криптографический протокол (используется в том числе в рамках HTTPS). Широко используется в рамках протоколов подключения к VPN (OpenVPN, SoftEther, Cisco AnyConnect).
2. SSH (Secure SHell) — Сам по себе - протокол для удалённого управления. Но самая распространённая его реализация, OpenSSH позволяет в пределах такого соединения установить туннель и предоставляет интерфейс (по протоколу SOCKS) для подключения поверх этого туннеля, результат такого соединения похож на анонимизацию пользователя через VPN, но не является им. Такая технология неоптимальна, так как использование TCP over TCP приводит к низкому качеству связи.

Сами по себе популярные VPN-протоколы уязвимы к блокировкам при помощи технологии DPI (Deep packet inspection), которая анализирует проходящий через сетевой узел трафик, и блокирует пакеты, которые распознает, как принадлежащие VPN-протоколам.
Однако существуют технологии, позволяющие дополнительно замаскировать VPN-трафик под другой тип трафика, что затрудняет его выявление при помощи DPI.

Технологии обфускации:

1. Shadowsocks, протокол шифрования, созданный на основе SOCKS5, позволяет в числе прочего скрывать факт использования VPN, пропуская трафик, через промежуточный SOCKS5 прокси-сервер, что позволяет обходить блокировки VPN.
1) SOCKS — протокол для обмена данными через прокси-сервер. Его расширение SOCKS5 обеспечивает механизм аутентификации.
2. obfs4 (obfs4proxy) — одна из реализаций PT (Pluggable Transports - «подключаемые транспорты») в рамках проекта Tor. Также может использоваться в рамках OpenVPN и в соединении с другими технологиями. PT маскируют трафик Tor (или VPN) под другой тип трафика, что позволяет обходить блокировки со стороны провайдеров или властей.
3. Cloak — ещё один вариант PT, который маскирует трафик других протоколов под HTTP-трафик, что затрудняет его блокировку.
1) Помимо вышеупомянутых, существуют и другие варианты PT.
4. Stunnel — технология туннелирования, позволяющая в том числе маскировать трафик под HTTPS, то есть в конечном счёте под TLS, что затрудняет блокирование VPN трафика.
5. OpenVPN Scramble (XOR Obfuscation) — технология обфускации трафика, использующая шифр XOR (также известный как гаммирование) для того, чтобы DPI алгоритмы не могли распознать его.
6. Chameleon — проприетарный протокол VyprVPN, маскирующий трафик OpenVPN.
7. V2Ray — часть Project V (набор инструментов для защиты приватности в сети), предоставляет возможность работы с прокси-серверами, поддерживает различные протоколы, в том числе Shadowsocks.

По факту коммерческие VPN-сервисы чаще всего предлагают следующие протоколы:
  • OpenVPN как проверенное и надёжное решение.
  • WireGuard как современную альтернативу.
  • IKEv2/IPsec как легаси-вариант (постепенно выводится из обращения).
  • Собственные проприетарные решения.
 
Чтобы такой материал осилить нужно 5 институтов закончить . Нихчего непонятно , но очень интересно 👍
 
Угорі Унизу