X-Git-Url: http://www.git.cypherpunks.ru/?a=blobdiff_plain;f=doc%2Fpake.texi;h=cdae5524d8d02f74b94f4602c4b9785aefd2be43;hb=0e482169576b59168f44e509863e6b6acbca6f6d;hp=d2cb77351f7aed884dddae82efdf2807371e4645;hpb=4a58ee4c1365408452e03535ca68146aa9cf3540;p=govpn.git diff --git a/doc/pake.texi b/doc/pake.texi index d2cb773..cdae552 100644 --- a/doc/pake.texi +++ b/doc/pake.texi @@ -1,30 +1,22 @@ @node PAKE -@section Password Authenticated Key Agreement +@subsection Password Authenticated Key Agreement -Previously we used pre-shared high-entropy long-term static key for -client-server authentication. Is is secure, but not convenient for some -user use-cases: +GoVPN uses strong password authentication. That means that it uses human +memorable @strong{passphrases}, instead of some small high-entropy keys +that must be carried with himself. Passphrases differ from passwords: +they are long string of low-entropy characters -- they are easy to +remember and can have high overall entropy. -@itemize @bullet -@item Compromising of passphrase files on either server or client side -allows attacker to masquerade himself a client. -@item To prevent compromising of keys on the client side, one needs some -kind of passphrase protected secure storage (like either PGP with -decryption to the memory, or full-disk encryption). -@end itemize - -Overall security on the client side is concentrated in passphrase -(high-entropy password), so it is convenient to use it in GoVPN -directly, without static on-disk keys. That is why we use passphrase -authenticated key agreement. +Strong zero-knowledge authentication means that: -We use "passphrase" term instead of "password". Technically there may be -no difference between them. But as a rule passphrases are @strong{long} -strings with low entropy characters. Because of low entropy characters, -they are memorable. Because of their quantity, they acts as a high -entropy source. +@itemize +@item compromising of passphrase files on either server or client sides +won't allow attackers to masquerade himself the client; +@item no need of protected secure storage on the server's side to keep +keys in safety. +@end itemize Passphrases are entered directly by the human on the client side. Server -side stores previously shared so-called @ref{Verifier}. Verifier contains -dictionary attack resistant password derivative. Attacker can not use it -to act as a client. +side stores pre-shared @ref{Verifier, verifier}, containing dictionary +attack resistant passphrase derivative. Attacker can not use it to act +as a client.