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