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