]> Cypherpunks.ru repositories - govpn.git/blob - doc/about.texi
Merge branch 'develop'
[govpn.git] / doc / about.texi
1 GoVPN is simple free software virtual private network daemon,
2 aimed to be reviewable, secure and
3 @url{https://en.wikipedia.org/wiki/Deep_packet_inspection, DPI}/censorship-resistant.
4
5 @itemize
6 @item
7 Copylefted free software: licenced under
8 @url{https://www.gnu.org/licenses/gpl-3.0.html, GPLv3+}.
9 @item
10 Fast strong @ref{PAKE, passphrase authenticated} augmented
11 @ref{Handshake, key agreement protocol} with zero-knowledge mutual peers
12 authentication (PAKE DH A-EKE (Diffie-Hellman Augmented Encrypted Key
13 Exchange)).
14 @item
15 @ref{Verifier structure, Augmented authentication tokens} resistant to
16 offline dictionary attacks. They use CPU and memory hardened hashing
17 algorithm. An attacker can not masquerade a client even with server
18 passphrase verifiers compromising.
19 @item
20 Encrypted and authenticated @ref{Transport, payload transport}
21 with 128-bit @ref{Developer, security margin} state-of-the-art
22 cryptography.
23 @item
24 Optional @ref{Encless, encryptionless mode} of operation: no encryption
25 functions are applied for outgoing traffic, but still confidentiality
26 preserving encoding. Jurisdictions and courts can not either force you
27 to reveal encryption keys or sue for encryption usage.
28 @item
29 Censorship resistant handshake and transport messages: fully
30 indistinguishable from the noise with optionally hidden packets length.
31 @item
32 @url{https://en.wikipedia.org/wiki/Forward_secrecy, Perfect forward secrecy}
33 property.
34 @item
35 Replay attack protection (using one-time MACs).
36 @item
37 Built-in rehandshake (session key rotation) and heartbeat features.
38 @item
39 Ability to hide packets length with the @ref{Noise, noise} data.
40 @item
41 Ability to hide payload timestamps with @ref{CPR, constant packet rate}
42 traffic.
43 @item
44 Compatible with @url{http://egd.sourceforge.net/, EGD} (entropy
45 gathering daemon) PRNGs.
46 @item
47 Several simultaneous clients support with per-client configuration
48 options. Clients have pre-established @ref{Identity, identity} invisible
49 for third-parties (they are anonymous).
50 @item
51 Uses @url{https://en.wikipedia.org/wiki/TAP_(network_driver), TAP}
52 underlying network interfaces.
53 @item
54 Can use @ref{Network, UDP and TCP} or HTTP @ref{Proxy, proxies}
55 for accessing the server.
56 @item
57 Fully IPv4 and IPv6 compatible.
58 @item
59 Optional built-in HTTP-server for retrieving real-time
60 @ref{Stats, statistics} information about known connected peers in
61 @url{http://json.org/, JSON} format.
62 @item
63 Server is configured through the @url{http://yaml.org/, YAML} file.
64 @item
65 Written on @url{https://golang.org/, Go} programming language with
66 simple code that can be read and reviewed.
67 @item
68 @url{https://www.gnu.org/, GNU}/Linux and
69 @url{https://www.freebsd.org/, FreeBSD} support.
70 @end itemize