]> Cypherpunks.ru repositories - govpn.git/blob - doc/news.texi
Preparing to 7.2 release
[govpn.git] / doc / news.texi
1 @node News
2 @unnumbered News
3
4 See also this page @ref{Новости, on russian}.
5
6 @node Release 7.2
7 @section Release 7.2
8 @itemize
9 @item Fixed fatal bug in nonce generation code, appeared in 7.1 version.
10 Everyone @strong{have to} update.
11 @end itemize
12
13 @node Release 7.1
14 @section Release 7.1
15 @itemize
16 @item Fixed bug in client's identity generation and detection code:
17 simultaneous clients may be incorrectly identified, preventing their
18 connection establishing and allowing DPI to detect GoVPN packets.
19 @end itemize
20
21 @node Release 7.0
22 @section Release 7.0
23 @itemize
24 @item (X)Salsa20 is replaced with ChaCha20. Theoretically it should be
25 faster and more secure. Previous versions are not compatible with it!
26 @item Ability to use TUN-interfaces under GNU/Linux. FreeBSD has already
27 supported them without any modifications.
28 @end itemize
29
30 @node Release 6.0
31 @section Release 6.0
32 @itemize
33 @item Argon2d is replaced with Balloon hashing. Found Argon2 libraries
34 written on pure Go have various problems. Moreover Argon2i should be
35 used instead, but it has some possible
36 @url{http://eprint.iacr.org/2016/027, cryptographic defects}. So it is
37 replaced with much more simpler (and seems even cryptographically
38 better) @url{https://crypto.stanford.edu/balloon/, Balloon hashing}.
39 @end itemize
40
41 @node Release 5.10
42 @section Release 5.10
43 @itemize
44 @item @option{-version} option added, printing program version.
45 @end itemize
46
47 @node Release 5.9
48 @section Release 5.9
49 @itemize
50 @item Client reconnects in the loop when connection is lost. Optionally
51 you can disable that behaviour: client will exit immediately, as it
52 previously did.
53 @end itemize
54
55 @node Release 5.8
56 @section Release 5.8
57 @itemize
58 @item Optional ability to use syslog for logging, with
59 @url{https://tools.ietf.org/html/rfc5424, RFC 5424}-like
60 structured records.
61 @item XTEA algorithm is not used anymore for nonce obfuscation, but
62 BLAKE2b-MAC instead. Encryptionless mode now really does not depend on
63 encryption functions.
64 @end itemize
65
66 @node Release 5.7
67 @section Release 5.7
68 @itemize
69 @item TAP interface name and remote peer's address are passed to up- and
70 down- scripts through environment variables.
71 @item Update Argon2 library to use version 1.3 of the algorithm.
72 @end itemize
73
74 @node Release 5.6
75 @section Release 5.6
76 @itemize
77 @item Added up/down example script for replacing default route (thanks
78 to Zhuoyun Wei).
79 @item Fixed documentation bug: @file{.info} was not installing.
80 @end itemize
81
82 @node Release 5.5
83 @section Release 5.5
84 @itemize
85 @item Ability to work on 32-bit platforms. @emph{sync/atomic} library
86 has some specific issues that caused panics on previous versions.
87 @end itemize
88
89 @node Release 5.4
90 @section Release 5.4
91 @itemize
92 @item Added optional time synchronization requirement.
93 It will add timestamps in handshake PRP authentication, disallowing to
94 repeat captured packet and get reply from the server, making it visible
95 to DPI.
96 @end itemize
97
98 @node Release 5.3
99 @section Release 5.3
100 @itemize
101 @item Fixed minor bug with @command{newclient.sh} that caught
102 "Passphrase:" prompt and inserted it into example YAML output.
103 Just replaced stdout output to stderr for that prompt.
104 @end itemize
105
106 @node Release 5.2
107 @section Release 5.2
108 @itemize
109 @item Ability to read passphrases directly from the terminal (user's
110 input) without using of keyfiles. @command{storekey.sh} utility removed.
111 @end itemize
112
113 @node Release 5.1
114 @section Release 5.1
115 @itemize
116 @item Server is configured using @url{http://yaml.org/, YAML} file. It
117 is very convenient to have comments and templates, comparing to JSON.
118 @item Incompatible with previous versions replacement of @emph{HSalsa20}
119 with @emph{BLAKE2b} in handshake code.
120 @end itemize
121
122 @node Release 5.0
123 @section Release 5.0
124 @itemize
125 @item New optional encryptionless mode of operation.
126 Technically no encryption functions are applied for outgoing packets, so
127 you can not be forced to reveal your encryption keys or sued for
128 encryption usage.
129 @item MTUs are configured on per-user basis.
130 @item Simplified payload padding scheme, saving one byte of data.
131 @item Ability to specify TAP interface name explicitly without any
132 up-scripts for convenience.
133 @item @command{govpn-verifier} utility also can use EGD.
134 @end itemize
135
136 @node Release 4.2
137 @section Release 4.2
138 @itemize
139 @item Fixed non-critical bug when server may fail if up-script is not
140 executed successfully.
141 @end itemize
142
143 @node Release 4.1
144 @section Release 4.1
145 @itemize
146 @item @url{https://password-hashing.net/#argon2, Argon2d} is used instead
147 of PBKDF2 for password verifier hashing.
148 @item Client's identity is stored inside the verifier, so it simplifies
149 server-side configuration and the code.
150 @end itemize
151
152 @node Release 4.0
153 @section Release 4.0
154 @itemize
155 @item Handshake messages can be noised: their messages lengths are
156 hidden. Now they are indistinguishable from transport messages.
157 @item Parallelized clients processing on the server side.
158 @item Much higher overall performance.
159 @item Single JSON file server configuration.
160 @end itemize
161
162 @node Release 3.5
163 @section Release 3.5
164 @itemize
165 @item Ability to use TCP network transport.
166 Server can listen on both UDP and TCP sockets.
167 @item Ability to use HTTP proxies (through CONNECT method)
168 for accessing the server. Server can also emulate HTTP proxy behaviour.
169 @item Updated Poly1305 library with ARM-related bugfixes.
170 @item Go 1.5+ version is highly recommended because of performance
171 reasons.
172 @end itemize
173
174 @node Release 3.4
175 @section Release 3.4
176 @itemize
177 @item Ability to use external EGD-compatible PRNGs. Now you are
178 able to use GoVPN even on systems with the bad @file{/dev/random},
179 providing higher quality entropy from external sources.
180 @item Removed @option{-noncediff} option. It is replaced with in-memory
181 storage of seen nonces, thus eliminating possible replay attacks at all
182 without performance degradation related to inbound packets reordering.
183 @end itemize
184
185 @node Release 3.3
186 @section Release 3.3
187 @itemize
188 @item Compatibility with an old GNU Make 3.x. Previously only BSD Make
189 and GNU Make 4.x were supported.
190 @item @file{/dev/urandom} is used for correct client identity generation
191 under GNU/Linux systems. Previously @file{/dev/random} can produce less
192 than required 128-bits of random.
193 @end itemize
194
195 @node Release 3.2
196 @section Release 3.2
197 @itemize
198 @item Deterministic building: dependent libraries source code commits
199 are fixed in our makefiles.
200 @item No Internet connection is needed for building the source code: all
201 required libraries are included in release tarballs.
202 @item FreeBSD Make compatibility. GNU Make is not necessary anymore.
203 @end itemize
204
205 @node Release 3.1
206 @section Release 3.1
207 @itemize
208 @item
209 Diffie-Hellman public keys are encoded with Elligator algorithm when
210 sending over the wire, making them indistinguishable from the random
211 strings, preventing detection of successful decryption try when guessing
212 passwords (that are used to create DSA public keys). But this will
213 consume twice entropy for DH key generation in average.
214 @end itemize
215
216 @node Release 3.0
217 @section Release 3.0
218 @itemize
219 @item
220 EKE protocol is replaced by Augmented-EKE and static symmetric (both
221 sides have it) pre-shared key replaced with server-side verifier. This
222 requires, 64 more bytes in handshake traffic, Ed25519 dependency with
223 corresponding sign/verify computations, PBKDF2 dependency and its
224 usage on the client side during handshake.
225
226 A-EKE with PBKDF2-based verifiers is resistant to dictionary attacks,
227 can use human memorable passphrases instead of static keys and
228 server-side verifiers can not be used for authentication (compromised
229 server does not leak client's authentication keys/passphrases).
230
231 @item
232 Changed transport message structure: added payload packet's length.
233 This will increase transport overhead for two bytes, but heartbeat
234 packets became smaller
235
236 @item
237 Ability to hide underlying packets lengths by appending noise, junk
238 data during transmission. Each packet can be fill up-ed to its
239 maximal MTU size.
240
241 @item
242 Ability to hide underlying packets appearance rate, by generating
243 Constant Packet Rate traffic. This includes noise generation too.
244 @item
245 Per-peer @option{-timeout}, @option{-noncediff}, @option{-noise} and
246 @option{-cpr} configuration options for server.
247 @end itemize
248
249 @node Release 2.4
250 @section Release 2.4
251 @itemize
252 @item Added ability to optionally run built-in HTTP-server responding
253 with JSON of all known connected peers information. Real-time client's
254 statistics.
255 @item Documentation is explicitly licenced under GNU FDL 1.3+.
256 @end itemize
257
258 @node Release 2.3
259 @section Release 2.3
260 @itemize
261 @item Handshake packets became indistinguishable from the random. Now
262 all GoVPN's traffic is the noise for men in the middle.
263
264 @item Handshake messages are smaller (16% traffic reduce).
265
266 @item Adversary now can not create malicious fake handshake packets that
267 will force server to generate private DH key, preventing entropy
268 consuming and resource heavy computations.
269 @end itemize
270
271 @node Release 2.2
272 @section Release 2.2
273 @itemize
274 @item Fixed several possible channel deadlocks.
275 @end itemize
276
277 @node Release 2.1
278 @section Release 2.1
279 @itemize
280 @item Fixed Linux-related building.
281 @end itemize
282
283 @node Release 2.0
284 @section Release 2.0
285 @itemize
286 @item Added clients identification.
287 @item Simultaneous several clients support by server.
288 @item Per-client up/down scripts.
289 @end itemize
290
291 @node Release 1.5
292 @section Release 1.5
293 @itemize
294 @item Nonce obfuscation/encryption.
295 @end itemize
296
297 @node Release 1.4
298 @section Release 1.4
299 @itemize
300 @item Performance optimizations.
301 @end itemize
302
303 @node Release 1.3
304 @section Release 1.3
305 @itemize
306 @item Heartbeat feature.
307 @item Rehandshake feature.
308 @item up- and down- optional scripts.
309 @end itemize
310
311 @node Release 1.1
312 @section Release 1.1
313 @itemize
314 @item FreeBSD support.
315 @end itemize