@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