25 апреля, 2024

Основы VPN-шифрования

Содержание:

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

Шифрование — это процесс кодирования информации, в результате которого она становится недоступной для третьих лиц.

Криптографию для шифрования сообщений начали использовать давно — задолго до того, как появилось шифрование на компьютере. В то время шифрование заключалось в замене букв и цифр. Для того, кто не знал алгоритма шифрования, текст выглядел как «китайская грамота». По сути, то же самое происходит и сейчас.

Правда, сегодня методы и алгоритмы шифрования стали значительно сложнее — ведь взломать «человеческий» шифр компьютеру ничего не стоит.

VPN-сервисы используют такие алгоритмы, как AES, Blowfish и Camellia (редко).
Помимо термина «алгоритм шифрования», есть еще и понятие «ключа шифрования». Ключ может иметь разную длину. Например, в алгоритме AES-256 длина ключа шифрования составляет 256 бит.

Виды шифрования

Существует два вида шифрования: симметричное шифрование с секретным ключом и асимметричное шифрование с открытым ключом.

Симметричное шифрование с секретным ключом

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

Асимметричное шифрование с открытым ключом

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

Самая известная система асимметричного шифрования — это PGP (Pretty Good Privacy). Ее версия с открытым исходным кодом (OpenPGP) применяется в очень многих программах.

SSL и TLS

Чаще всего мы сталкиваемся с шифрованием информации, когда заходим на защищенные (с зеленым замком в адресной строке) сайты HTTPS.
На таких сайтах используется протокол безопасности транспортного уровня (англ. Transport Layer Security, TLS). Данный протокол включает в себя и более старый протокол уровня защищенных сокетов (англ. Secure Sockets Layer, SSL), при котором используется комбинация асимметричного и симметричного шифрования.

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

Читать также:  Сбербанк выявил свыше 600 фишинговых доменов и 1300 зараженных сайтов

К счастью, сегодня уникальные закрытые ключи все чаще используются только для одного сеанса безопасной связи, после чего уничтожаются. Такая практика известна как «совершенная прямая секретность» (англ. Perfect Forward Secrecy, PFS).

[vpn_top]

Протоколы VPN-шифрования

OpenVPN

OpenVPN — это «золотой стандарт» VPN-протоколов, которым желательно пользоваться всегда и везде. Помимо того, что это самый надежный протокол шифрования VPN, он также имеет открытый исходный код, а, значит, может публично обновляться и улучшаться.

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

Немаловажно, что OpenVPN работает как через порт UDP, так и через порт TCP 443, который используется для передачи HTTPS-трафика. Поэтому трафик OpenVPN сложно отличить от трафика сайтов электронной коммерции и, соответственно, протокол сложно заблокировать.

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

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

PPTP

Туннельный протокол типа точка-точка (англ. Point-to-Point Tunneling Protocol, PPTP) — это устаревший VPN-протокол от Microsoft, который с 1999 года стал встроенным клиентом Windows. У него есть свои плюсы: он совместим практически с любыми операционными системами и устройствами, не требует установки дополнительного ПО и очень быстро работает.

Основная проблема PPTP состоит в том, что он недостаточно надежен и его легко взломать. Кроме того, он использует протокол GRE, легко блокируемый брандмауэром.

L2TP/IPsec

Протокол туннелирования второго уровня (англ. Layer 2 Tunneling Protocol, L2TP), разработанный Microsoft, сам не шифрует данные — для этого обычно используется протокол IPsec, который задействует алгоритм AES.

Читать также:  Создание беспроводной шпионской камеры с Raspberry Pi

Протокол использует ограниченное количество фиксированных портов, а, значит, его относительно легко заблокировать.

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

При использовании алгоритма AES уязвимостей обнаружено не было, однако есть предположение, что протокол был скомпрометирован АНБ (Агентством национальной безопасности США) и намеренно ослаблен в процессе своего создания.

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

В целом же, учитывая совместимость LT2P/IPsec с большим количеством платформ, данный протокол является неплохим выбором.

SSTP

Протокол безопасного туннелирования сокетов (англ. Secure Socket Tunneling Protocol, SSTP) — это проприетарный протокол Microsoft. Он основан на SSL 3.0, а значит, как и OpenVPN, может использовать TCP-порт 443.

Однако, в отличие от OpenVPN, SSTP не имеет открытого исходного кода, так что проверить и улучшить его не получится. И этот минус перевешивает все преимущества от интеграции данного протокола в Windows.

Еще один недостаток SSTP состоит в том, что SSL 3.0 уязвим для атаки типа «человек посередине», известной как POODLE. Подвержен ли атаке сам SSTP, неизвестно, но рисковать, пожалуй, не стоит.

IKEv2

Протокол обмена ключами в интернет версии 2 (англ. Internet Key Exchange version 2, IKEv2) — это еще один проприетарный протокол с закрытым исходным кодом, разработанный Microsoft и Cisco. Он совместим с iOS, Windows от 7 и выше, а также Blackberry. Есть версии с открытым исходным кодом для Linux.

Плюсом протокола IKEv2 является то, что его удобно использовать на мобильных устройствах, поскольку он остается стабильным при смене сети и способен повторно подключаться при потере соединения.

Жаль, что столь быстрый и надежный протокол закрыт для сторонних разработчиков.

Алгоритмы шифрования

AES

Усовершенствованный стандарт шифрования (англ. Advanced Encryption Standard, AES) — это симметричный алгоритм блочного шифрования, который в 2001 году был одобрен Национальным институтом стандартов и технологий США (англ. National Institute of Standards and Technology, NIST). С тех пор AES считается «золотым стандартом» шифрования в VPN-индустрии.

Читать также:  Основы Linux,Часть 6 ( работа с сетью)

Благодаря 128-битным размерам блоков, данный алгоритм может применяться для кодировки файлов более крупных размеров в сравнении, например, с Blowfish.

Стандарт AES-128 по-прежнему считается надежным, однако сегодня больше востребован еще более безопасный AES-256.

Blowfish

Blowfish — это алгоритм шифрования, использующийся по умолчанию в OpenVPN (при желании можно изменить настройки и использовать и другие алгоритмы). Обычно используется Blowfish-128, хотя в теории размер ключа может варьироваться от 32 до 448 бит.

В целом данный алгоритм надежен, однако у него есть некоторые уязвимости, так что лучше использовать его в дополнение к AES-256.

Camellia

Алгоритм Camellia очень схож с AES, но, в отличие от последнего, он не подвергался столь же тщательному тестированию, не имеет сертификата НИСТ и редко используется для шифрования VPN.

Шифрование Handshake

Так же, как и подключение к HTTPS-сайту, соединение с VPN-сервером требует использования шифрования с открытым ключом (как правило, используется криптосистема RSA) через «рукопожатие» (англ. handshake) TLS.

Криптосистема RSA лежит в основе интернет-безопасности уже два десятилетия, но, к сожалению, есть подозрения, что RSA-1204 была взломана АНБ.

Хотя сегодня большинство VPN-сервисов отказались от использования RSA-1024, некоторые из них до сих пор продолжают работать с этим стандартом. Выбирайте RSA-2048 — данный стандарт считается надежным и по сей день.

Желательно, чтобы при VPN-шифровании использовалась совершенная прямая секретность (англ. Perfect Forward Secrecy, PFS). Как правило, это предполагает обмен ключами по алгоритму Диффи-Хеллмана (англ. Diffie-Hellman, DH) или по алгоритму эллиптических кривых Диффи-Хэллмана (англ. Elliptic curve Diffie-Hellman, ECDH).

Алгоритм ECDH может использоваться для создания «рукопожатия» сам по себе, а вот DH в одиночку лучше не использовать, поскольку данный алгоритм имеет уязвимости. Зато его можно применять в паре с RSA — в таком случае проблем не возникнет.

Авторизация с помощью алгоритма хеширования SHA

Безопасный алгоритм хеширования (англ. Secure Hash Algorithm, SHA) используется для проверки данных и подключений SSL/TLS — таких, как OpenVPN.

Алгоритм отслеживает любые отклонения от настоящего сертификата TLS и, тем самым, предотвращает атаки типа «человек посередине», не позволяя хакерам перенаправлять соединение на свой собственный сервер вместо сервера вашего провайдера VPN.

Хотя сегодня SHA-1 уже не способен эффективно защищать сайты, при использовании с протоколом OpenVPN он работает достаточно надежно. Однако лучше использовать версии SHA-2 и SHA-3 — они более безопасны.

Добавить комментарий