]> Cypherpunks.ru repositories - govpn.git/blob - doc/pake.texi
[DOC] Create glossary in user manual and move pages to it
[govpn.git] / doc / pake.texi
1 @node PAKE
2 @subsection Password Authenticated Key Agreement
3
4 Previously we used pre-shared high-entropy long-term static key for
5 client-server authentication. Is is secure, but not convenient for some
6 user use-cases:
7
8 @itemize
9 @item Compromising of passphrase files on either server or client side
10 allows attacker to masquerade himself a client.
11 @item To prevent compromising of keys on the client side, one needs some
12 kind of passphrase protected secure storage (like either PGP with
13 decryption to the memory, or full-disk encryption).
14 @end itemize
15
16 Overall security on the client side is concentrated in passphrase
17 (high-entropy password), so it is convenient to use it in GoVPN
18 directly, without static on-disk keys. That is why we use passphrase
19 authenticated key agreement.
20
21 We use "passphrase" term instead of "password". Technically there may be
22 no difference between them. But as a rule passphrases are @strong{long}
23 strings with low entropy characters. Because of low entropy characters,
24 they are memorable. Because of their quantity, they acts as a high
25 entropy source.
26
27 Passphrases are entered directly by the human on the client side. Server
28 side stores previously shared so-called @ref{Verifier, verifier}. Verifier
29 contains dictionary attack resistant password derivative. Attacker can not
30 use it to act as a client.