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