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