]> Cypherpunks.ru repositories - govpn.git/blob - doc/news.ru.texi
Use convenient simpler Go 1.9's sync.Map
[govpn.git] / doc / news.ru.texi
1 @node Новости
2 @section Новости
3
4 @node Релиз 7.4
5 @subsection Релиз 7.4
6 @itemize
7 @item Маленький рефакторинг. Минимальная необходимая версия Go 1.9.
8 @item Обновлены зависимые криптографические библиотеки.
9 @end itemize
10
11 @node Релиз 7.3
12 @subsection Релиз 7.3
13 @itemize
14 @item Исправлена редкая возможная ошибка падения сервера во время
15 rehandshake процедуры.
16 @item Обновлены зависимые криптографические библиотеки.
17 @end itemize
18
19 @node Релиз 7.2
20 @subsection Релиз 7.2
21 @itemize
22 @item Исправлена фатальная ошибка в коде генерирования nonce-ов,
23 появившаяся в версии 7.1. Всем @strong{необходимо} обновиться.
24 @end itemize
25
26 @node Релиз 7.1
27 @subsection Релиз 7.1
28 @itemize
29 @item Исправлена ошибка в коде генерирования и определения идентификации
30 клиента: параллельно работающие клиенты могут быть неправильно
31 определены, не давая возможности их подсоединения и позволяя DPI
32 выявлять GoVPN пакеты.
33 @end itemize
34
35 @node Релиз 7.0
36 @subsection Релиз 7.0
37 @itemize
38 @item (X)Salsa20 заменён на ChaCha20. Теоретически он должен быть
39 быстрее и более безопасным. Это несовместимое с предыдущими версиями
40 клиента изменение!
41 @item Возможность использовать TUN-интерфейсы под GNU/Linux. FreeBSD без
42 изменений уже поддерживала эту возможность.
43 @end itemize
44
45 @node Релиз 6.0
46 @subsection Релиз 6.0
47 @itemize
48 @item Argon2d заменён на Balloon хэширование. Найденные Argon2
49 библиотеки, написанные полностью на Go, имеют различные проблемы. Более
50 того, Argon2i должен был быть использован вместо Argon2d, но у него есть
51 возможные @url{http://eprint.iacr.org/2016/027, криптографические
52 недостатки}. Поэтому он заменён на гораздо более простое (и, похоже,
53 даже криптографически лучшее)
54 @url{https://crypto.stanford.edu/balloon/, Balloon хэширование}.
55 @end itemize
56
57 @node Релиз 5.10
58 @subsection Релиз 5.10
59 @itemize
60 @item Добавлена @option{-version} опция, выводящая версию программы.
61 @end itemize
62
63 @node Релиз 5.9
64 @subsection Релиз 5.9
65 @itemize
66 @item Клиент переподключается в цикле когда соединение потеряно.
67 Опционально вы можете отключить это поведение: клиент сразу же выйдет,
68 как и делал раньше.
69 @end itemize
70
71 @node Релиз 5.8
72 @subsection Релиз 5.8
73 @itemize
74 @item Опциональная возможность использовать syslog для журналирования,
75 с @url{https://tools.ietf.org/html/rfc5424, RFC 5424}-похожими
76 структурированными записями.
77 @item Вместо XTEA алгоритма для обфускации nonce используется
78 BLAKE2b-MAC. Теперь нешифрованный режим действительно не зависит от
79 алгоритмов шифрования.
80 @end itemize
81
82 @node Релиз 5.7
83 @subsection Релиз 5.7
84 @itemize
85 @item Имя TAP интерфейса и адрес удалённой стороны теперь передаются в
86 up- и down- скрипты через переменные окружения.
87 @item Argon2 библиотека обновлена чтобы использовать 1.3 версию алгоритма.
88 @end itemize
89
90 @node Релиз 5.6
91 @subsection Релиз 5.6
92 @itemize
93 @item Добавлен up/down скрипт-пример для подмены маршрута по-умолчанию
94 (спасибо Zhuoyun Wei).
95 @item Исправлена ошибка при генерировании документации: @file{.info}
96 файл не устанавливался.
97 @end itemize
98
99 @node Релиз 5.5
100 @subsection Релиз 5.5
101 @itemize
102 @item Возможность работы на 32-х битных платформах. @emph{sync/atomic}
103 библиотека имеет особенности из-за которых предыдущие версии паниковали.
104 @end itemize
105
106 @node Релиз 5.4
107 @subsection Релиз 5.4
108 @itemize
109 @item Добавлена возможность требования синхронизации
110 времени. Она добавит временные метки в PRP аутентификацию сообщений
111 рукопожатия, не позволяя повторить ранее перехваченные пакеты и получить
112 ответ от сервера, делая его видимым для DPI.
113 @end itemize
114
115 @node Релиз 5.3
116 @subsection Релиз 5.3
117 @itemize
118 @item Исправлен небольшой баг связанный с тем что @command{newclient.sh}
119 ловил "Passphrase:" приглашение и помещал его в примерный вывод YAML.
120 Просто заменил вывод приглашения ввода парольной фразы с stdout на
121 stderr.
122 @end itemize
123
124 @node Релиз 5.2
125 @subsection Релиз 5.2
126 @itemize
127 @item Возможность ввода парольной фразы напрямую из терминала
128 (пользовательский ввод), без использования файлов с ключами. Утилита
129 @command{storekey.sh} удалена.
130 @end itemize
131
132 @node Релиз 5.1
133 @subsection Релиз 5.1
134 @itemize
135 @item Сервер конфигурируется через @url{http://yaml.org/, YAML} файл.
136 Очень удобно иметь комментарии и шаблоны, по сравнению с JSON.
137 @item Несовместимая с предыдущими версиями замена функции
138 @emph{HSalsa20} на @emph{BLAKE2b} в коде рукопожатия.
139 @end itemize
140
141 @node Релиз 5.0
142 @subsection Релиз 5.0
143 @itemize
144
145 @item Новый опциональный нешифрованный режим работы.
146 Технически к исходящим пакетам не применяются функции шифрования,
147 поэтому вас не могут вынудить выдать ключи шифрования или привлечь к
148 ответственности за использования шифрования.
149 @item MTU конфигурируются относительно каждого пользователя отдельно.
150 @item Упрощённая схема дополнения полезной нагрузки, экономия в один байт.
151 @item Возможность указать название TAP интерфейса явно, без
152 использования up-скриптов.
153 @item @command{govpn-verifier} утилита теперь может использовать EGD.
154 @end itemize
155
156 @node Релиз 4.2
157 @subsection Релиз 4.2
158 @itemize
159 @item Исправлена некритичная ошибка при которой сервер мог упасть если
160 скрипт запуска (up.sh) не выполнился успешно.
161 @end itemize
162
163 @node Релиз 4.1
164 @subsection Релиз 4.1
165 @itemize
166 @item Вместо PBKDF2 используется
167 @url{https://password-hashing.net/#argon2, Argon2d} алгоритм хэширования
168 паролей.
169 @item Идентификатор клиента хранится внутри проверяльщика (verifier),
170 тем самым упрощая конфигурирование сервера и код.
171 @end itemize
172
173 @node Релиз 4.0
174 @subsection Релиз 4.0
175 @itemize
176 @item Сообщения рукопожатия могут быть зашумлены: их длина скрывается.
177 Теперь они неотличимы от транспортных сообщений.
178 @item Распараллеленная обработка клиентов на стороне сервера.
179 @item Гораздо более высокая общая производительность.
180 @item Конфигурирование сервера единственным JSON файлом.
181 @end itemize
182
183 @node Релиз 3.5
184 @subsection Релиз 3.5
185 @itemize
186 @item Возможность использовать TCP сетевой транспорт.
187 Сервер можно слушать одновременно на UDP и TCP сокетах.
188 @item Возможность использовать HTTP прокси (через CONNECT
189 метод) для доступа к серверу. Сервер может эмулировать поведение HTTP
190 прокси.
191 @item Обновлённая Poly1305 библиотека с исправлениями для ARM.
192 @item Версия Go 1.5+ сильно рекомендуется из-за вопросов
193 производительности.
194 @end itemize
195
196 @node Релиз 3.4
197 @subsection Релиз 3.4
198 @itemize
199 @item Возможность использовать внешний EGD совместимый PRNG.
200 Теперь вы можете использовать GoVPN даже на системах с плохим
201 @file{/dev/random}.
202 @item Опция @option{-noncediff} удалена. Она заменена на хранилище уже
203 замеченных nonce-ов в памяти, тем самым полностью убирая возможность
204 атак перепроигрывания без потерь производительности связанных с
205 перетасовкой пакетов.
206 @end itemize
207
208 @node Релиз 3.3
209 @subsection Релиз 3.3
210 @itemize
211 @item Совместимость со старым GNU Make 3.x. Прежде только BSD Make и GNU
212 Make 4.x поддерживались.
213 @item @file{/dev/urandom} используется для правильного генерирования
214 идентификатора клиента под GNU/Linux системами. Прежде,
215 @file{/dev/random} мог выдать меньше ожидаемого количества данных.
216 @end itemize
217
218 @node Релиз 3.2
219 @subsection Релиз 3.2
220 @itemize
221 @item Детерминированная сборка: коммиты исходного кода зависимых
222 библиотек фиксированы.
223 @item Для сборки из исходного кода, соединение с Интернетом больше не
224 требуется: все зависимые библиотеки включены в tarball релизов.
225 @item Совместимость с FreeBSD Make. GNU Make не обязателен больше.
226 @end itemize
227
228 @node Релиз 3.1
229 @subsection Релиз 3.1
230 @itemize
231 @item Публичные ключи Диффи-Хельмана кодируются алгоритмом Elligator
232 перед отправкой, делая их неотличимыми от случайных строчек,
233 предотвращая определение удачного подбора ключа дешифрования при
234 переборе паролей (используемых для создания DSA публичных ключей).
235 Однако это в среднем потребляет в два раза больше энтропии при
236 генерировании клюей DH.
237 @end itemize
238
239 @node Релиз 3.0
240 @subsection Релиз 3.0
241 @itemize
242 @item EKE протокол заменён на Augmented-EKE и статичный симметричный
243 (обе стороны его имеют) pre-shared ключ заменён на верификатор на
244 стороне сервера. Это требует на 64 байта больше трафика рукопожатия,
245 добавляет Ed25519 зависимость с соответствующими расходами на подпись и
246 проверку, PBKDF2 зависимость и вычисления на стороне клиента.
247
248 A-EKE с PBKDF2 верификаторами устойчивы к атакам по словарю. Можно
249 использовать легко запоминаемые человеком парольные фразы вместо
250 статичных ключей. Верификаторы на стороне сервера не могут быть
251 использованы для аутентификации (скомпрометированный сервер не даст
252 возможность масксироваться под пользователя).
253
254 @item Изменена структура транспортных сообщений: добавлена длина
255 полезной нагрузки. Это увеличивает накладные расходы на два байта, но
256 сообщения сердцебиения стали меньше.
257
258 @item Возможность скрывать размер полезной нагрузки за счёт добавления
259 шума, мусора во время передачи данных. Каждый пакет дополняется до
260 максимального размера MTU.
261
262 @item Возможность скрывать факты появления пакетов полезной нагрузки, за
263 счёт константного по скорости трафика. Это также включает в себя
264 создание шума.
265
266 @item
267 Опции конфигурации @option{-timeout}, @option{-noncediff}, @option{-noise},
268 @option{-cpr} настраиваются по-клиентно.
269 @end itemize
270
271 @node Релиз 2.4
272 @subsection Релиз 2.4
273 @itemize
274 @item Возможность запуска встроенного HTTP-сервера отвечающего JSON-ом с
275 статистикой обо всех подключённых клиентах.
276 @item Документация явно лицензирована под GNU FDL 1.3+.
277 @end itemize
278
279 @node Релиз 2.3
280 @subsection Релиз 2.3
281 @itemize
282 @item Пакеты рукопожатия стали неотличимыми от случайных данных. Теперь
283 весь GoVPN трафик это шум для человека по середине.
284
285 @item Сообщения рукопожатия стали меньше (16% сокращения трафика).
286
287 @item Злоумышленник не может создать обманных пакеты рукопожатия которые
288 заставят сервер генерировать приватный DH ключ, предотвращая потребление
289 энтропии и ресурсоёмкие вычисления.
290 @end itemize
291
292 @node Релиз 2.2
293 @subsection Релиз 2.2
294 @itemize
295 @item Исправлены deadlock-и на некоторые каналы.
296 @end itemize
297
298 @node Релиз 2.1
299 @subsection Релиз 2.1
300 @itemize
301 @item Восстановлена сборка под GNU/Linux системами.
302 @end itemize
303
304 @node Релиз 2.0
305 @subsection Релиз 2.0
306 @itemize
307 @item Добавлена идентификация клиентов.
308 @item Поддержка одновременно нескольких клиентов одним сервером.
309 @item Скрипты up/down для каждого клиента.
310 @end itemize
311
312 @node Релиз 1.5
313 @subsection Релиз 1.5
314 @itemize
315 @item Шифрование/обфусцирование nonce-ов.
316 @end itemize
317
318 @node Релиз 1.4
319 @subsection Релиз 1.4
320 @itemize
321 @item Оптимизации производительности.
322 @end itemize
323
324 @node Релиз 1.3
325 @subsection Релиз 1.3
326 @itemize
327 @item Возможность сердцебиения.
328 @item Возможность пересогласования (rehandshake).
329 @item Опциональные up/down скрипты.
330 @end itemize
331
332 @node Релиз 1.1
333 @subsection Релиз 1.1
334 @itemize
335 @item Поддержка FreeBSD.
336 @end itemize