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