@node Новости @section Новости @node Релиз 5.8 @subsection Релиз 5.8 @itemize @item Опциональная возможность использовать syslog для журналирования, с @url{https://tools.ietf.org/html/rfc5424, RFC 5424}-похожими структурированными записями. @item Вместо XTEA алгоритма для обфускации nonce используется BLAKE2b-MAC. Теперь нешифрованный режим действительно не зависит от алгоритмов шифрования. @end itemize @node Релиз 5.7 @subsection Релиз 5.7 @itemize @item Имя TAP интерфейса и адрес удалённой стороны теперь передаются в up- и down- скрипты через переменные окружения. @item Argon2 библиотека обновлена чтобы использовать 1.3 версию алгоритма. @end itemize @node Релиз 5.6 @subsection Релиз 5.6 @itemize @item Добавлен up/down скрипт-пример для подмены маршрута по-умолчанию (спасибо Zhuoyun Wei). @item Исправлена ошибка при генерировании документации: @file{.info} файл не устанавливался. @end itemize @node Релиз 5.5 @subsection Релиз 5.5 @itemize @item Возможность работы на 32-х битных платформах. @emph{sync/atomic} библиотека имеет особенности из-за которых предыдущие версии паниковали. @end itemize @node Релиз 5.4 @subsection Релиз 5.4 @itemize @item Добавлена возможность требования @ref{Timesync, синхронизации времени}. Она добавит временные метки в PRP аутентификацию сообщений рукопожатия, не позволяя повторить ранее перехваченные пакеты и получить ответ от сервера, делая его видимым для DPI. @end itemize @node Релиз 5.3 @subsection Релиз 5.3 @itemize @item Исправлен небольшой баг связанный с тем что @command{newclient.sh} ловил "Passphrase:" приглашение и помещал его в примерный вывод YAML. Просто заменил вывод приглашения ввода парольной фразы с stdout на stderr. @end itemize @node Релиз 5.2 @subsection Релиз 5.2 @itemize @item Возможность ввода парольной фразы напрямую из терминала (пользовательский ввод), без использования файлов с ключами. Утилита @command{storekey.sh} удалена. @end itemize @node Релиз 5.1 @subsection Релиз 5.1 @itemize @item Сервер конфигурируется через @url{http://yaml.org/, YAML} файл. Очень удобно иметь комментарии и шаблоны, по сравнению с JSON. @item Несовместимая с предыдущими версиями замена функции @emph{HSalsa20} на @emph{BLAKE2b} в коде рукопожатия. @end itemize @node Релиз 5.0 @subsection Релиз 5.0 @itemize @item Новый опциональный @ref{Encless, нешифрованный режим} работы. Технически к исходящим пакетам не применяются функции шифрования, поэтому вас не могут вынудить выдать ключи шифрования или привлечь к ответственности за использования шифрования. @item @ref{MTU} конфигурируются относительно каждого пользователя отдельно. @item Упрощённая схема дополнения полезной нагрузки, экономия в один байт. @item Возможность указать название TAP интерфейса явно, без использования up-скриптов. @item @command{govpn-verifier} утилита теперь может использовать @ref{EGD}. @end itemize @node Релиз 4.2 @subsection Релиз 4.2 @itemize @item Исправлена некритичная ошибка при которой сервер мог упасть если скрипт запуска (up.sh) не выполнился успешно. @end itemize @node Релиз 4.1 @subsection Релиз 4.1 @itemize @item Вместо PBKDF2 используется @url{https://password-hashing.net/#argon2, Argon2d} алгоритм хэширования паролей. @item Идентификатор клиента хранится внутри проверяльщика (verifier), тем самым упрощая конфигурирование сервера и код. @end itemize @node Релиз 4.0 @subsection Релиз 4.0 @itemize @item Сообщения рукопожатия могут быть зашумлены: их длина скрывается. Теперь они неотличимы от транспортных сообщений. @item Распараллеленная обработка клиентов на стороне сервера. @item Гораздо более высокая общая производительность. @item Конфигурирование сервера единственным JSON файлом. @end itemize @node Релиз 3.5 @subsection Релиз 3.5 @itemize @item Возможность использовать @ref{Network, TCP} сетевой транспорт. Сервер можно слушать одновременно на UDP и TCP сокетах. @item Возможность использовать @ref{Proxy, HTTP прокси} (через CONNECT метод) для доступа к серверу. Сервер может эмулировать поведение HTTP прокси. @item Обновлённая Poly1305 библиотека с исправлениями для ARM. @item Версия Go 1.5+ сильно рекомендуется из-за вопросов производительности. @end itemize @node Релиз 3.4 @subsection Релиз 3.4 @itemize @item Возможность использовать внешний @ref{EGD} совместимый PRNG. Теперь вы можете использовать GoVPN даже на системах с плохим @file{/dev/random}. @item Опция @option{-noncediff} удалена. Она заменена на хранилище уже замеченных nonce-ов в памяти, тем самым полностью убирая возможность атак перепроигрывания без потерь производительности связанных с перетасовкой пакетов. @end itemize @node Релиз 3.3 @subsection Релиз 3.3 @itemize @item Совместимость со старым GNU Make 3.x. Прежде только BSD Make и GNU Make 4.x поддерживались. @item @file{/dev/urandom} используется для правильного генерирования идентификатора клиента под GNU/Linux системами. Прежде, @file{/dev/random} мог выдать меньше ожидаемого количества данных. @end itemize @node Релиз 3.2 @subsection Релиз 3.2 @itemize @item Детерминированная сборка: коммиты исходного кода зависимых библиотек фиксированы. @item Для сборки из исходного кода, соединение с Интернетом больше не требуется: все зависимые библиотеки включены в tarball релизов. @item Совместимость с FreeBSD Make. GNU Make не обязателен больше. @end itemize @node Релиз 3.1 @subsection Релиз 3.1 @itemize @item Публичные ключи Диффи-Хельмана кодируются алгоритмом Elligator перед отправкой, делая их неотличимыми от случайных строчек, предотвращая определение удачного подбора ключа дешифрования при переборе паролей (используемых для создания DSA публичных ключей). Однако это в среднем потребляет в два раза больше энтропии при генерировании клюей DH. @end itemize @node Релиз 3.0 @subsection Релиз 3.0 @itemize @item EKE протокол заменён на Augmented-EKE и статичный симметричный (обе стороны его имеют) pre-shared ключ заменён на верификатор на стороне сервера. Это требует на 64 байта больше трафика рукопожатия, добавляет Ed25519 зависимость с соответствующими расходами на подпись и проверку, PBKDF2 зависимость и вычисления на стороне клиента. A-EKE с PBKDF2 верификаторами устойчивы к атакам по словарю. Можно использовать легко запоминаемые человеком парольные фразы вместо статичных ключей. Верификаторы на стороне сервера не могут быть использованы для аутентификации (скомпрометированный сервер не даст возможность масксироваться под пользователя). @item Изменена структура транспортных сообщений: добавлена длина полезной нагрузки. Это увеличивает накладные расходы на два байта, но сообщения сердцебиения стали меньше. @item Возможность скрывать размер полезной нагрузки за счёт добавления шума, мусора во время передачи данных. Каждый пакет дополняется до максимального размера MTU. @item Возможность скрывать факты появления пакетов полезной нагрузки, за счёт константного по скорости трафика. Это также включает в себя создание шума. @item Опции конфигурации @option{-timeout}, @option{-noncediff}, @option{-noise}, @option{-cpr} настраиваются по-клиентно. @end itemize @node Релиз 2.4 @subsection Релиз 2.4 @itemize @item Возможность запуска встроенного HTTP-сервера отвечающего JSON-ом с статистикой обо всех подключённых клиентах. @item Документация явно лицензирована под GNU FDL 1.3+. @end itemize @node Релиз 2.3 @subsection Релиз 2.3 @itemize @item Пакеты рукопожатия стали неотличимыми от случайных данных. Теперь весь GoVPN трафик это шум для человека по середине. @item Сообщения рукопожатия стали меньше (16% сокращения трафика). @item Злоумышленник не может создать обманных пакеты рукопожатия которые заставят сервер генерировать приватный DH ключ, предотвращая потребление энтропии и ресурсоёмкие вычисления. @end itemize @node Релиз 2.2 @subsection Релиз 2.2 @itemize @item Исправлены deadlock-и на некоторые каналы. @end itemize @node Релиз 2.1 @subsection Релиз 2.1 @itemize @item Восстановлена сборка под GNU/Linux системами. @end itemize @node Релиз 2.0 @subsection Релиз 2.0 @itemize @item Добавлена идентификация клиентов. @item Поддержка одновременно нескольких клиентов одним сервером. @item Скрипты up/down для каждого клиента. @end itemize @node Релиз 1.5 @subsection Релиз 1.5 @itemize @item Шифрование/обфусцирование nonce-ов. @end itemize @node Релиз 1.4 @subsection Релиз 1.4 @itemize @item Оптимизации производительности. @end itemize @node Релиз 1.3 @subsection Релиз 1.3 @itemize @item Возможность сердцебиения. @item Возможность пересогласования (rehandshake). @item Опциональные up/down скрипты. @end itemize @node Релиз 1.1 @subsection Релиз 1.1 @itemize @item Поддержка FreeBSD. @end itemize @node Релиз 1.0 @subsection Релиз 1.0 @itemize @item Первый стабильный релиз. @end itemize