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