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