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