Новости
=======

Релиз 7.5
---------

  * Обновлены зависимые криптографические библиотеки для совместимости с Go 1.11.

Релиз 7.4
---------

  * Маленький рефакторинг. Минимальная необходимая версия Go 1.9.

  * Обновлены зависимые криптографические библиотеки.

Релиз 7.3
---------

  * Исправлена редкая возможная ошибка падения сервера во время rehandshake процедуры.

  * Обновлены зависимые криптографические библиотеки.

Релиз 7.2
---------

  * Исправлена фатальная ошибка в коде генерирования nonce-ов, появившаяся в версии 7.1. Всем необходимо обновиться.

Релиз 7.1
---------

  * Исправлена ошибка в коде генерирования и определения идентификации клиента: параллельно работающие клиенты могут быть неправильно определены, не давая возможности их подсоединения и позволяя DPI выявлять GoVPN пакеты.

Релиз 7.0
---------

  * (X)Salsa20 заменён на ChaCha20. Теоретически он должен быть быстрее и более безопасным. Это несовместимое с предыдущими версиями клиента изменение!

  * Возможность использовать TUN-интерфейсы под GNU/Linux. FreeBSD без изменений уже поддерживала эту возможность.

Релиз 6.0
---------

  * Argon2d заменён на Balloon хэширование. Найденные Argon2 библиотеки, написанные полностью на Go, имеют различные проблемы. Более того, Argon2i должен был быть использован вместо Argon2d, но у него есть возможные криптографические недостатки (http://eprint.iacr.org/2016/027). Поэтому он заменён на гораздо более простое (и, похоже, даже криптографически лучшее) Balloon хэширование (https://crypto.stanford.edu/balloon/).

Релиз 5.10
----------

  * Добавлена -version опция, выводящая версию программы.

Релиз 5.9
---------

  * Клиент переподключается в цикле когда соединение потеряно. Опционально вы можете отключить это поведение: клиент сразу же выйдет, как и делал раньше.

Релиз 5.8
---------

  * Опциональная возможность использовать syslog для журналирования, с RFC 5424 (https://tools.ietf.org/html/rfc5424)-похожими структурированными записями.

  * Вместо XTEA алгоритма для обфускации nonce используется BLAKE2b-MAC. Теперь нешифрованный режим действительно не зависит от алгоритмов шифрования.

Релиз 5.7
---------

  * Имя TAP интерфейса и адрес удалённой стороны теперь передаются в up- и down- скрипты через переменные окружения.

  * Argon2 библиотека обновлена чтобы использовать 1.3 версию алгоритма.

Релиз 5.6
---------

  * Добавлен up/down скрипт-пример для подмены маршрута по-умолчанию (спасибо Zhuoyun Wei).

  * Исправлена ошибка при генерировании документации: .info файл не устанавливался.

Релиз 5.5
---------

  * Возможность работы на 32-х битных платформах. sync/atomic библиотека имеет особенности из-за которых предыдущие версии паниковали.

Релиз 5.4
---------

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

Релиз 5.3
---------

  * Исправлен небольшой баг связанный с тем что newclient.sh ловил "Passphrase:" приглашение и помещал его в примерный вывод YAML. Просто заменил вывод приглашения ввода парольной фразы с stdout на stderr.

Релиз 5.2
---------

  * Возможность ввода парольной фразы напрямую из терминала (пользовательский ввод), без использования файлов с ключами. Утилита storekey.sh удалена.

Релиз 5.1
---------

  * Сервер конфигурируется через YAML (http://yaml.org/) файл. Очень удобно иметь комментарии и шаблоны, по сравнению с JSON.

  * Несовместимая с предыдущими версиями замена функции HSalsa20 на BLAKE2b в коде рукопожатия.

Релиз 5.0
---------

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

  * MTU конфигурируются относительно каждого пользователя отдельно.

  * Упрощённая схема дополнения полезной нагрузки, экономия в один байт.

  * Возможность указать название TAP интерфейса явно, без использования up-скриптов.

  * govpn-verifier утилита теперь может использовать EGD.

Релиз 4.2
---------

  * Исправлена некритичная ошибка при которой сервер мог упасть если скрипт запуска (up.sh) не выполнился успешно.

Релиз 4.1
---------

  * Вместо PBKDF2 используется Argon2d (https://password-hashing.net/#argon2) алгоритм хэширования паролей.

  * Идентификатор клиента хранится внутри проверяльщика (verifier), тем самым упрощая конфигурирование сервера и код.

Релиз 4.0
---------

  * Сообщения рукопожатия могут быть зашумлены: их длина скрывается. Теперь они неотличимы от транспортных сообщений.

  * Распараллеленная обработка клиентов на стороне сервера.

  * Гораздо более высокая общая производительность.

  * Конфигурирование сервера единственным JSON файлом.

Релиз 3.5
---------

  * Возможность использовать TCP сетевой транспорт. Сервер можно слушать одновременно на UDP и TCP сокетах.

  * Возможность использовать HTTP прокси (через CONNECT метод) для доступа к серверу. Сервер может эмулировать поведение HTTP прокси.

  * Обновлённая Poly1305 библиотека с исправлениями для ARM.

  * Версия Go 1.5+ сильно рекомендуется из-за вопросов производительности.

Релиз 3.4
---------

  * Возможность использовать внешний EGD совместимый PRNG. Теперь вы можете использовать GoVPN даже на системах с плохим /dev/random.

  * Опция -noncediff удалена. Она заменена на хранилище уже замеченных nonce-ов в памяти, тем самым полностью убирая возможность атак перепроигрывания без потерь производительности связанных с перетасовкой пакетов.

Релиз 3.3
---------

  * Совместимость со старым GNU Make 3.x. Прежде только BSD Make и GNU Make 4.x поддерживались.

  * /dev/urandom используется для правильного генерирования идентификатора клиента под GNU/Linux системами. Прежде, /dev/random мог выдать меньше ожидаемого количества данных.

Релиз 3.2
---------

  * Детерминированная сборка: коммиты исходного кода зависимых библиотек фиксированы.

  * Для сборки из исходного кода, соединение с Интернетом больше не требуется: все зависимые библиотеки включены в tarball релизов.

  * Совместимость с FreeBSD Make. GNU Make не обязателен больше.

Релиз 3.1
---------

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

Релиз 3.0
---------

  * EKE протокол заменён на Augmented-EKE и статичный симметричный (обе стороны его имеют) pre-shared ключ заменён на верификатор на стороне сервера. Это требует на 64 байта больше трафика рукопожатия, добавляет Ed25519 зависимость с соответствующими расходами на подпись и проверку, PBKDF2 зависимость и вычисления на стороне клиента.

     A-EKE с PBKDF2 верификаторами устойчивы к атакам по словарю. Можно использовать легко запоминаемые человеком парольные фразы вместо статичных ключей. Верификаторы на стороне сервера не могут быть использованы для аутентификации (скомпрометированный сервер не даст возможность масксироваться под пользователя).

  * Изменена структура транспортных сообщений: добавлена длина полезной нагрузки. Это увеличивает накладные расходы на два байта, но сообщения сердцебиения стали меньше.

  * Возможность скрывать размер полезной нагрузки за счёт добавления шума, мусора во время передачи данных. Каждый пакет дополняется до максимального размера MTU.

  * Возможность скрывать факты появления пакетов полезной нагрузки, за счёт константного по скорости трафика. Это также включает в себя создание шума.

  * Опции конфигурации -timeout, -noncediff, -noise, -cpr настраиваются по-клиентно.

Релиз 2.4
---------

  * Возможность запуска встроенного HTTP-сервера отвечающего JSON-ом с статистикой обо всех подключённых клиентах.

  * Документация явно лицензирована под GNU FDL 1.3+.

Релиз 2.3
---------

  * Пакеты рукопожатия стали неотличимыми от случайных данных. Теперь весь GoVPN трафик это шум для человека по середине.

  * Сообщения рукопожатия стали меньше (16% сокращения трафика).

  * Злоумышленник не может создать обманных пакеты рукопожатия которые заставят сервер генерировать приватный DH ключ, предотвращая потребление энтропии и ресурсоёмкие вычисления.

Релиз 2.2
---------

  * Исправлены deadlock-и на некоторые каналы.

Релиз 2.1
---------

  * Восстановлена сборка под GNU/Linux системами.

Релиз 2.0
---------

  * Добавлена идентификация клиентов.

  * Поддержка одновременно нескольких клиентов одним сервером.

  * Скрипты up/down для каждого клиента.

Релиз 1.5
---------

  * Шифрование/обфусцирование nonce-ов.

Релиз 1.4
---------

  * Оптимизации производительности.

Релиз 1.3
---------

  * Возможность сердцебиения.

  * Возможность пересогласования (rehandshake).

  * Опциональные up/down скрипты.

Релиз 1.1
---------

  * Поддержка FreeBSD.