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