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