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