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