]> Cypherpunks.ru repositories - govpn.git/commitdiff
[DOC] Various fixes
authorSergey Matveev <stargrave@stargrave.org>
Sun, 24 May 2015 08:38:04 +0000 (11:38 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 24 May 2015 08:38:04 +0000 (11:38 +0300)
Signed-off-by: Sergey Matveev <stargrave@stargrave.org>
doc/developer.texi
doc/egd.texi
doc/overview.texi
doc/precautions.texi
doc/transport.texi
doc/verifierstruct.texi

index 0ced2864f90400ee16539b44a35c878047aea6bc..5f85e00c4dad1cb6a088238549dc70bb56d531f5 100644 (file)
@@ -21,7 +21,8 @@ and @url{http://ed25519.cr.yp.to/, Ed25519}.
 @item Handshake overhead
 4 UDP (2 from client, 2 from server) packets, 264 bytes total payload.
 @item Entropy required
-832 bits on client side, 832 bits on server side per handshake.
+832 bits in average on client, 832 bits in average on server side per
+handshake.
 @end table
 
 @menu
index 6b6780e22bd286b8644a08bb4c5a272bb4595f74..77d34bf1e1906cf5e618e5047069ee89c6077b6c 100644 (file)
@@ -7,11 +7,12 @@ number generator.
 
 Some operating systems do not have good enough quality PRNG, bad
 @code{/dev/urandom}. You should use separate PRNG with them. GoVPN
-communicates with them using Entropy Gathering Daemon protocol.
+communicates with them using
+@url{http://egd.sourceforge.net/, Entropy Gathering Daemon} protocol.
 
 To switch using EGD-compatible daemons instead of @code{crypto/rand}
 library you provide @code{-egd PATH} command line option, where
-@code{PATH} is either host:port or path to the domain socket.
+@code{PATH} is the domain socket.
 
 @example
 % ./govpn-server [...] -egd /var/run/egd.sock
index dc68994470bfa4776cb60685c1fd9545b5e4d260..23ba75d24332396b43a37418312e8b832dce69a1 100644 (file)
@@ -11,29 +11,16 @@ goals for that daemon. Most modern widespread protocols and their
 implementations in software are too complex to be reviewed, analyzed and
 modified.
 
-State off art cryptography technologies includes:
-@url{http://cr.yp.to/snuffle.html, Salsa20} stream encryption,
-@url{http://143.53.36.235:8080/tea.htm, XTEA} PRP,
-@url{http://cr.yp.to/mac.html, Poly1305} message authentication,
-@url{https://en.wikipedia.org/wiki/PBKDF2} password-based key derivation
-function based on @url{https://en.wikipedia.org/wiki/SHA-2, SHA-512}
-hash function,
-@url{https://en.wikipedia.org/wiki/Encrypted_key_exchange,
-Diffie-Hellman Augmented Encrypted Key Exchange}
-(DH-A-EKE) powered by @url{http://cr.yp.to/ecdh.html, Curve25519},
-@url{http://ed25519.cr.yp.to/, Ed25519} signatures and
-@url{http://elligator.cr.yp.to/, Elligator} curve-point encoding.
-Strong
-@url{https://en.wikipedia.org/wiki/Zero-knowledge_password_proof, zero-knowledge}
-mutual authentication with key exchange stage is invulnerable
-to man-in-the-middle attacks.
+@ref{Developer manual, State off art cryptography technologies}. Strong
+mutual authenticated key exchange is invulnerable to man-in-the middle
+attachs.
 @url{https://en.wikipedia.org/wiki/Forward_secrecy, Perfect forward secrecy}
-property guarantee that compromising of long-term authentication
-pre-shared key can not lead to previously captured traffic decrypting.
-Compromising of peers password file on server side won't allow attacker
+property guarantees that compromising of long-term authentication keys
+does not lead to previously captured traffic decrypting.
+Compromising of peers password files on server side won't allow attacker
 to masquerade as the client, because of asymmetric @strong{verifiers}
 usage, resistant to dictionary attacks. Rehandshaking ensures session
-keys rotation. MAC authentication with one-time keys protects against
+keys rotation. One-time keys MAC authentication protects against
 @url{https://en.wikipedia.org/wiki/Replay_attack, replay attacks}.
 
 Server can work with several clients simultaneously. Each client is
@@ -61,22 +48,26 @@ Works with @url{https://en.wikipedia.org/wiki/TAP_(network_driver), TAP}
 network interfaces on top of UDP entirely
 @item
 @url{https://www.gnu.org/, GNU}/Linux and
-@url{http://www.freebsd.org/, FreeBSD} support
-@item IPv6 compatible
-@item Encrypted and authenticated payload transport
-@item Relatively fast handshake
-@item Password-authenticated key exchange
-@item Server-side password verifiers are secure against dictionary attacks
-@item Attacker can not masquerade a client even with password files compromising
-@item Replay attack protection
-@item Perfect forward secrecy property
-@item Mutual two-side authentication
-@item Zero knowledge authentication
-@item Built-in rehandshake and heartbeat features
-@item Several simultaneous clients support
-@item Per-client configuration options
-@item Hiding of payload packets length with noise
-@item Hiding of payload packets timestamps with constant packet rate traffic
+@url{http://www.freebsd.org/, FreeBSD} support.
+@item IPv6 compatible.
+@item Encrypted and authenticated payload transport.
+@item Relatively fast handshake.
+@item Password-authenticated key exchange.
+@item Server-side password verifiers are secure against dictionary
+attacks.
+@item Attacker can not masquerade a client even with password files
+compromising.
+@item Replay attack protection.
+@item Perfect forward secrecy property.
+@item Mutual two-side authentication.
+@item Zero knowledge authentication.
+@item Built-in rehandshake and heartbeat features.
+@item Several simultaneous clients support.
+@item Per-client configuration options.
+@item Hiding of payload packets length with noise.
+@item Hiding of payload packets timestamps with constant packet rate
+traffic.
 @item Optional built-in HTTP-server for retrieving information about
-known connected peers in @url{http://json.org/, JSON} format
+known connected peers in @url{http://json.org/, JSON} format.
+@item Compatibility with @url{http://egd.sourceforge.net/, EGD} PRNGs.
 @end itemize
index f69d5341a04797b740d528ab4fab6ba481d9449f..0539822893cd83d64bec34431b6c73c588c69438 100644 (file)
@@ -4,14 +4,12 @@
 @enumerate
 @item
 We use password (passphrase) authentication, so overall security fully
-depends on its strength. So you should use long, high-entropy
-passphrases. Also remember to keep passphrase on temporary file and read
+depends on its strength. You @strong{should} use long, high-entropy
+passphrases. Also remember to keep passphrase in temporary file and read
 it securely as described in @ref{Verifier}.
 
 @item
 You must @strong{never} use one key for multiple clients.
-If so, then all security is ruined and transmitted data can
-be decrypted.
 
 @item
 You must use @strong{cryptographically good} pseudo random number
index c1e0d7f02ad0dfa39788500d6c0c7165e9e9a48e..cdbe7aecfa47365502a5ffdd0dc811d1c262d90b 100644 (file)
@@ -38,5 +38,5 @@ To prevent replay attacks we must remember received @code{SERIAL}s and
 if meet one, then drop it. Basically we could just store latest number
 and check if received one is greater, but because of UDP packets
 reordering this can lead to valid packets dropping and overall
-performance degradation. We store 256 seen nonces in hash structure, in
-two swapping buckets.
+performance degradation. We store up to 256 seen nonces in hash
+structure, in two swapping buckets.
index b508b483536d4b9e4aebef987362d126b42abe5d..65a4e086c14d7fbf8e5fd896fc4145c05845e077 100644 (file)
@@ -10,7 +10,7 @@ SOURCE = PBKDF2(SALT=PeerId, PASSWORD, 1<<16, SHA512)
 PUB, PRIV = Ed25519.Generate(SOURCE)
 @end verbatim
 
-Verifier is public key of Ed25519 generated from the PBKDF2 of the
-passphrase in hexadecimal encoding. @code{PeerId} is used as a 128-bit
-salt. Server stores and knows only verifier. Client can compute the
-whole keypair every time he makes handshake.
+Verifier is @code{PUB} public key of Ed25519 generated from the PBKDF2
+of the passphrase in hexadecimal encoding. @code{PeerId} is used as a
+128-bit salt. Server stores and knows only verifier. Client can compute
+the whole keypair every time he makes handshake.