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