]> Cypherpunks.ru repositories - govpn.git/commitdiff
FAQ section
authorSergey Matveev <stargrave@stargrave.org>
Fri, 13 Nov 2015 18:23:06 +0000 (21:23 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Fri, 13 Nov 2015 20:19:52 +0000 (23:19 +0300)
Signed-off-by: Sergey Matveev <stargrave@stargrave.org>
doc/faq.ru.texi [new file with mode: 0644]
doc/faq.texi [new file with mode: 0644]
doc/govpn.texi

diff --git a/doc/faq.ru.texi b/doc/faq.ru.texi
new file mode 100644 (file)
index 0000000..2023b76
--- /dev/null
@@ -0,0 +1,86 @@
+@node ЧАВО
+@unnumbered Часто задаваемые вопросы
+
+@table @asis
+
+@item Почему вы не используете TLS?
+Это сложный протокол. Он использует Аутентификацию-затем-Шифрование
+порядок использования алгоритмов -- это не безопасно. Более того, его
+библиотеки огромный и сложны для чтения, ревью и анализа.
+
+@item Почему вы не используете SSH?
+Его первые версии использовали Аутентификацию-и-Шифрование порядок,
+однако более поздние поддерживают даже ChaCha20-Poly1305 алгоритм. Его
+исходный код не тривиален и достаточно большой для чтения и ревью.
+OpenSSH не поддерживает сильные протоколы аутентификации по паролю с
+нулевым неразглашением.
+
+@item Почему вы не используете IPsec?
+Это достаточно хороший протокол, поддерживаемый большинством ОС. Но в
+нём нет сильного протокола аутентификации по паролю с нулевым
+неразглашением и, снова, его код сложно читать.
+
+@item Почему вы не используете XXX?
+По тем же самым причинам: большинство ПО не предоставляют сильных
+протоколов аутентификации, высокой криптографической безопасности и,
+большая часть, написана на C -- на нём сложно правильно писать.
+
+@item Почему GoVPN написан на Go?
+Go очень легко читается, поддаётся ревью и поддержке. Он усложняет
+написание сложного кода. Он предоставляет всё что нужно для C языка:
+проверки границ массивов, сборщик мусора и конкурентные примитивы. Он
+обеспечивает меньшую производительность (хотя на моём ноутбуке даёт
+более чем 750 Mbps пропускной способности), но большую надёжность и
+гораздо меньше строк кода.
+
+@item Почему вы аутентифицируете по парольной фразе?
+Человек способ запоминать достаточно длинные парольные фразы (не
+пароли): 100-200 символов, что даёт возможность использовать её как
+высокоэнтропийный ключ. Вам нужно доверять только себе, не аппаратному
+токену или другому устройству хранения. Это удобно.
+
+@item Почему вся настройка сети делается вручную?
+Потому-что существует так много вариантов использования, конфигураций и
+установок, что или я поддерживаю их всех, или использую громоздкие
+протоколы типы PPP, или просто даю право выбора администратору. VPN это
+всего-лишь прослойка.
+
+@item Почему нет поддержки OS X или Windows?
+Любые проприетарные системы с закрытым исходным кодом не дают
+возможности управлять компьютером. Вы не можете безопасно использовать
+всё что касается криптографии без контроля над нижестоящим
+вычислительным устройством. Выбирайте другую операционную систему.
+
+@item Что вы подразумеваете под совершенной прямой секретностью?
+Что вы не можете дешифровать ранее перехваченный трафик если ваши
+долгоживущие ключи будут скомпрометированы. Это свойство работает на
+уровне сессии: оно не спасёт если сессионный ключ скомпрометирован из
+памяти.
+
+@item Что вы подразумеваете когда говорите что клиенты анонимны?
+Что третьей лицо не может отличить одного клиента от другого, смотря на
+трафик (транспортный или рукопожатия).
+
+@item Что вы подразумеваете под цензуроустойчивостью?
+Невозможность определить GoVPN ли это трафик или просто
+@code{cat /dev/urandom | nc somehost}. Если вы не можете отличить один
+вид трафика от другого, то при цензуре ваше единственный вариант это
+заблокировать все его виды.
+
+@item Когда я должен использовать @ref{Noise, noise} опцию?
+В большинстве случаев она вам не нужна без включённого
+@ref{CPR, постоянного по скорости трафика} (CPR). Без CPR и шума, в
+GoVPN трафике (так же как и в TLS, IPsec, SSH и других VPN протоколах)
+утекает информация о размерах и временных характеристиках пакетов
+нижележащего уровня. Вы можете делать анализ трафика и предполагать что
+происходить в сети. Без CPR опции вы можете только сказать в online ли
+кто или нет -- ни больше, ни меньше.
+
+@item Могу ли я сделать DoS (отказ в обслуживании) демона?
+Каждый транспортный пакет первым делом аутентифицируется очень быстрым
+UMAC алгоритмом -- в большинстве случаев потребление ресурсов TCP/UDP
+слоёв будет выше чем проверка UMAC. Каждое сообщение рукопожатия
+обрабатывается только если зашифрованный @ref{Identity, идентификатор}
+клиента найден: он использует быстрый PRP без потребления энтропии.
+
+@end table
diff --git a/doc/faq.texi b/doc/faq.texi
new file mode 100644 (file)
index 0000000..a3269f3
--- /dev/null
@@ -0,0 +1,83 @@
+@node FAQ
+@unnumbered Frequently Asked Questions
+
+@table @asis
+
+@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.
+
+@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.
+
+@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
+hard to read.
+
+@item Why do not you use XXX?
+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.
+
+@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:
+array bounds checking, garbage collection and concurrency primitives. It
+provides lesser performance (however my setup on the notebook gives more
+than 750 Mbps of throughput), but higher reliability and much fewer
+lines of code.
+
+@item Why do you authenticate with passphrases?
+Human is capable of memorizing rather long passphrases (not passwords):
+100-200 characters, that gives ability to use it as a high-entropy key.
+You need to trust only yourself, not hardware token or some other
+storage device. It is convenient.
+
+@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.
+
+@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
+controlling the underlying computing device. Choose another operating
+system.
+
+@item What do you mean by perfect forward secrecy?
+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.
+
+@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).
+
+@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
+one kind of traffic from another, then your only option is to forbid all
+kinds of it.
+
+@item When should I use @ref{Noise, noise} option?
+In most cases you won't need it without @ref{CPR, constant packer rate}
+turned on. Without CPR and noise options GoVPN traffic (like TLS, IPsec,
+SSH and other VPN protocols) leaks underlying interface's packets
+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.
+
+@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
+be higher then UMAC verifying. Each handshake message is processed only
+when an encrypted client's @ref{Identity, identity} is found: it uses
+fast PRP without any entropy usage.
+
+@end table
index 8033b911026e6ca24fb9ce528192e11d4bef7239..ca719eaffb4d7679cf451b18c1ea7e0985a50208 100644 (file)
@@ -26,6 +26,8 @@ A copy of the license is included in the section entitled "Copying conditions".
 
 @menu
 * About (russian): О демоне.
+* Frequently Asked Questions: FAQ.
+* Часто задаваемые вопросы: ЧАВО.
 * News::
 * Installation::
 * Precautions::
@@ -39,6 +41,8 @@ A copy of the license is included in the section entitled "Copying conditions".
 @end menu
 
 @include about.ru.texi
+@include faq.texi
+@include faq.ru.texi
 @include news.texi
 @include installation.texi
 @include precautions.texi