WireGuard — один из самых новых VPN-протоколов. Датой начала массового внедрения WireGuard можно считать 28 января 2020 года, когда он был включен в конфигурацию ядра Linux. В этом же году появилась его поддержка в Debian, Windows, Android, а стабильный релиз потокола состоялся 19 февраля 2021 года, где обеспечена поддержка всех популярных операционных систем.
Технические характеристики WireGuard
Протокол WireGuard использует современные методы шифрования и протоколы:
- Curve25519 — для обмена ключами;
- ChaCha20 — для симметричного шифрования;
- Poly1305 — для аутентификации;
- SipHash — для обработки ключей хеш-таблицы;
- BLAKE2s — для выполнения процедуры хеширования;
- HKDF — для генерации ключей.
Соединения устанавливаются через UDP-порты.
WireGuard имеет открытый исходный код.
Преимущества WireGuard
По сравнению с существующими VPN-протоколы, такими как IPsec и OpenVPN, у WireGuard множество существенных преимуществ. Он имеет компактный и лёгкий код: всего 4000 строк, в то время как в IPSec и OpenVPN их более 400000. Благодаря этому он по праву может считаться одним из самых безопасных, быстрых и простых в использовании VPN-решений. Простота кодовой базы минимизирует количество возможных точек уязвимости, которые могут быть использованы для атак. Компактность протокола делает его прекрасно подходящим как для небольших устройств (мобильные устройства, домашние роутеры), так и для промышленных магистральных маршрутизаторов.
Также нельзя не отметить и безопасность WireGuard, которая обеспечивается принципиально другими, новыми методами. Сравните их с теми, что используют IPSec или OpenVPN и, как говорится, почувствуйте разницу. Ко всему прочему, безопасность при установленном соединении проверяется постоянно и автоматически: каждые несколько минут встроенный механизм производит сверку актуальности ключей и при необходимости пересматривает их.
Недостатки WireGuard
К недостаткам протокола можно отнести разве что его «молодость». Также факт использования UDP-порта говорит о том, что протокол может легко заблокировать администратор сети.