]> Cypherpunks.ru repositories - govpn.git/blobdiff - doc/faq.texi
[DOC] Add various concept indexes
[govpn.git] / doc / faq.texi
index 0ac8de80d22a9573668da03bed7b689da19b7579..e6986cdeaaf56c3886687470101c41f4fd95d8d7 100644 (file)
@@ -1,19 +1,24 @@
 @node FAQ
+@cindex FAQ
+@cindex Frequently Asked Questions
 @unnumbered Frequently Asked Questions
 
 @table @asis
 
+@cindex TLS
 @item Why do not you use TLS?
 It is complicated protocol. It uses Authenticate-then-Encrypt ordering
 of algorithms -- it is not secure. Moreover its libraries are huge and
 hard to read, review and analyze.
 
+@cindex SSH
 @item Why do not you use SSH?
 Its first protocol versions used A-a-E ordering, however later ones
 supports even ChaCha20-Poly1305 algorithms. But its source code is not
 so trivial and rather big to read and review. OpenSSH does not support
 strong zero-knowledge password authentication.
 
+@cindex IPsec
 @item Why do not you use IPsec?
 It is rather good protocol, supported by all modern OSes. But it lacks
 strong zero-knowledge password authentication and, again, its code is
@@ -24,6 +29,8 @@ For the same reasons: most of software do not provide strong password
 authentication, high cryptographic protocol security, and most of this
 software is written in C -- it is hard to write right on it.
 
+@cindex Why Go
+@cindex Go
 @item Why GoVPN is written on Go?
 Go is very easy to read, review and support. It makes complex code
 writing a harder task. It provides everything needed to the C language:
@@ -38,12 +45,17 @@ Human is capable of memorizing rather long passphrases (not passwords):
 You need to trust only yourself, not hardware token or some other
 storage device. It is convenient.
 
+@cindex Network configuration
 @item Why all network configuration must be done manually?
 Because there are so many use-cases and setups, so many various
 protocols, that either I support all of them, or use complicated
 protocol setups like PPP, or just give right of the choice to the
 administrator. VPN is only just a layer.
 
+@cindex Windows
+@cindex Microsoft Windows
+@cindex Apple OS X
+@cindex OS X
 @item Why there is no either OS X or Windows support?
 Any closed source proprietary systems do not give ability to control the
 computer. You can not securely use cryptography-related stuff without
@@ -55,10 +67,18 @@ You can not decrypt previously saved traffic by compromising long-lived
 keys. PFS property is per-session level: it won't protect from leaking
 the session key from the memory.
 
+@cindex Anonymity
+@cindex Anonymous clients
 @item What do you mean by saying that clients are anonymous?
 That third-party can not differentiate one client from another looking
 at the traffic (transport and handshake).
 
+@cindex Censorship
+@cindex Censorship resistance
+@cindex Censorship resistant
+@cindex DPI resistant
+@cindex DPI resistance
+@cindex DPI
 @item What do you mean by censorship resistance?
 Unability to distinguish either is it GoVPN-traffic is passing by, or
 just @code{cat /dev/urandom | nc somehost}. If you can not differentiate
@@ -83,6 +103,7 @@ timestamps and sizes. You can run traffic analysis and predict what is
 going on in the network. With CPR option enabled you can tell either
 somebody is online, or not -- nothing less, nothing more.
 
+@cindex DoS
 @item Can I DoS (denial of service) the daemon?
 Each transport packet is authenticated first with the very fast UMAC
 algorithm -- in most cases resource consumption of TCP/UDP layers will