Подробнее о демоне GoVPN
GoVPN это простой демон виртуальных частных сетей, код которого нацелен
на лёгкость чтения и анализа, безопасность, устойчивость к DPI/цензуре.
- Свободное программное
обеспечение, копилефт:
лицензировано под условиями GNU GPLv3.
- Быстрый сильный аутентифицируемый по парольной фразе
несбалансированный протокол согласования ключей с
двусторонней аутентификацией сторон и нулевым неразглашением (PAKE DH
A-EKE (Diffie-Hellman Augmented Encrypted Key Exchange)).
- Несбалансированные верификаторы
устойчивые к внесетевым (offline) атакам по словарю. Используют
усиленный по CPU и памяти алгоритм хэширования. Злоумышленник не может
замаскироваться под клиента даже скомпрометировав базу данных токенов
сервера.
- Зашифрованный и аутентифицируемый транспортный протокол
передачи данных с 128-бит порогом безопасности и
современной не-NIST криптографией.
- Опциональный нешифрованный режим: функции шифрования не
применяются для исходящего трафика, вместо них кодирование всё равно
обеспечивающее конфиденциальность. Юрисдикции и суды не могут вас
вынудить выдать ключи шифрования или привлечь за использование
шифрования.
- Цензуроустойчивые сообщения транспорта и рукопожатия: неотличимые от
шума с опциональным скрытием размеров сообщений.
- Свойство совершенной прямой секретности (perfect forward secrecy).
- Защита от атак повторного воспроизведения (replay) (используя
одноразовые MAC и опциональное условие синхронизации времени).
- Встроенные функции пересогласования ключей (ротация сессионных ключей) и
сердцебиения (heartbeat).
- Возможность скрывать размеры пакетов путём зашумления данных.
- Возможность скрывать временные характеристики полезной нагрузки путём
постоянного по скорости трафика.
- Совместимость с EGD (демон сборки
энтропии) генераторами псевдослучайных чисел.
- Поддержка нескольких клиентов одновременно с специфичной для каждого
конфигурацией. Клиенты имеют заранее установленный идентификатор, невидимый третьим лицам (они анонимны для них).
- Использует TUN/TAP низлежащие
сетевые интерфейсы.
- Может работать поверх UDP и TCP или HTTP прокси для доступа к серверу.
- Полностью IPv4 и IPv6 совместимый.
- Опциональный встроенный HTTP-сервер для получения статистики о подключённых клиентах в режиме реального времени в
JSON формате.
- Сервер конфигурируется используя YAML файл.
- Возможность использовать syslog для журналирования.
- Написан на языке Go с простым кодом,
ориентированным на лёгкость чтения и анализа.
- Поддержка GNU/Linux и
FreeBSD.