4 See also this page @ref{Новости, on russian}.
9 @item Ability to work on 32-bit platforms. @emph{sync/atomic} library
10 has some specific issues that caused panics on previous versions.
16 @item Added optional @ref{Timesync, time synchronization} requirement.
17 It will add timestamps in handshake PRP authentication, disallowing to
18 repeat captured packet and get reply from the server, making it visible
25 @item Fixed minor bug with @command{newclient.sh} that caught
26 "Passphrase:" prompt and inserted it into example YAML output.
27 Just replaced stdout output to stderr for that prompt.
33 @item Ability to read passphrases directly from the terminal (user's
34 input) without using of keyfiles. @command{storekey.sh} utility removed.
40 @item Server is configured using @url{http://yaml.org/, YAML} file. It
41 is very convenient to have comments and templates, comparing to JSON.
42 @item Incompatible with previous versions replacement of @emph{HSalsa20}
43 with @emph{BLAKE2b} in handshake code.
49 @item New optional @ref{Encless, encryptionless mode} of operation.
50 Technically no encryption functions are applied for outgoing packets, so
51 you can not be forced to reveal your encryption keys or sued for
53 @item @ref{MTU}s are configured on per-user basis.
54 @item Simplified payload padding scheme, saving one byte of data.
55 @item Ability to specify TAP interface name explicitly without any
56 up-scripts for convenience.
57 @item @command{govpn-verifier} utility also can use @ref{EGD}.
63 @item Fixed non-critical bug when server may fail if up-script is not
64 executed successfully.
70 @item @url{https://password-hashing.net/#argon2, Argon2d} is used instead
71 of PBKDF2 for password verifier hashing.
72 @item Client's identity is stored inside the verifier, so it simplifies
73 server-side configuration and the code.
79 @item Handshake messages can be noised: their messages lengths are
80 hidden. Now they are indistinguishable from transport messages.
81 @item Parallelized clients processing on the server side.
82 @item Much higher overall performance.
83 @item Single JSON file server configuration.
89 @item Ability to use @ref{Network, TCP} network transport.
90 Server can listen on both UDP and TCP sockets.
91 @item Ability to use @ref{Proxy, HTTP proxies} (through CONNECT method)
92 for accessing the server. Server can also emulate HTTP proxy behaviour.
93 @item Updated Poly1305 library with ARM-related bugfixes.
94 @item Go 1.5+ version is highly recommended because of performance
101 @item Ability to use external @ref{EGD}-compatible PRNGs. Now you are
102 able to use GoVPN even on systems with the bad @file{/dev/random},
103 providing higher quality entropy from external sources.
104 @item Removed @option{-noncediff} option. It is replaced with in-memory
105 storage of seen nonces, thus eliminating possible replay attacks at all
106 without performance degradation related to inbound packets reordering.
112 @item Compatibility with an old GNU Make 3.x. Previously only BSD Make
113 and GNU Make 4.x were supported.
114 @item @file{/dev/urandom} is used for correct client identity generation
115 under GNU/Linux systems. Previously @file{/dev/random} can produce less
116 than required 128-bits of random.
122 @item Deterministic building: dependent libraries source code commits
123 are fixed in our makefiles.
124 @item No Internet connection is needed for building the source code: all
125 required libraries are included in release tarballs.
126 @item FreeBSD Make compatibility. GNU Make is not necessary anymore.
133 Diffie-Hellman public keys are encoded with Elligator algorithm when
134 sending over the wire, making them indistinguishable from the random
135 strings, preventing detection of successful decryption try when guessing
136 passwords (that are used to create DSA public keys). But this will
137 consume twice entropy for DH key generation in average.
144 EKE protocol is replaced by Augmented-EKE and static symmetric (both
145 sides have it) pre-shared key replaced with server-side verifier. This
146 requires, 64 more bytes in handshake traffic, Ed25519 dependency with
147 corresponding sign/verify computations, PBKDF2 dependency and its
148 usage on the client side during handshake.
150 A-EKE with PBKDF2-based verifiers is resistant to dictionary attacks,
151 can use human memorable passphrases instead of static keys and
152 server-side verifiers can not be used for authentication (compromised
153 server does not leak client's authentication keys/passphrases).
156 Changed transport message structure: added payload packet's length.
157 This will increase transport overhead for two bytes, but heartbeat
158 packets became smaller
161 Ability to hide underlying packets lengths by appending noise, junk
162 data during transmission. Each packet can be fill up-ed to its
166 Ability to hide underlying packets appearance rate, by generating
167 Constant Packet Rate traffic. This includes noise generation too.
169 Per-peer @option{-timeout}, @option{-noncediff}, @option{-noise} and
170 @option{-cpr} configuration options for server.
176 @item Added ability to optionally run built-in HTTP-server responding
177 with JSON of all known connected peers information. Real-time client's
179 @item Documentation is explicitly licenced under GNU FDL 1.3+.
185 @item Handshake packets became indistinguishable from the random. Now
186 all GoVPN's traffic is the noise for men in the middle.
188 @item Handshake messages are smaller (16% traffic reduce).
190 @item Adversary now can not create malicious fake handshake packets that
191 will force server to generate private DH key, preventing entropy
192 consuming and resource heavy computations.
198 @item Fixed several possible channel deadlocks.
204 @item Fixed Linux-related building.
210 @item Added clients identification.
211 @item Simultaneous several clients support by server.
212 @item Per-client up/down scripts.
218 @item Nonce obfuscation/encryption.
224 @item Performance optimizations.
230 @item Heartbeat feature.
231 @item Rehandshake feature.
232 @item up- and down- optional scripts.
238 @item FreeBSD support.
244 @item Initial stable release.