]> Cypherpunks.ru repositories - govpn.git/blob - doc/faq.ru.texi
Fix потому-что grammar
[govpn.git] / doc / faq.ru.texi
1 @node ЧАВО
2 @section Часто задаваемые вопросы
3
4 @menu
5 * Почему вы не используете TLS?: Почему не TLS.
6 * Почему вы не используете SSH?: Почему не SSH.
7 * Почему вы не используете IPsec?: Почему не IPsec.
8 * Почему GoVPN написан на Go?: Почему Go.
9 * Почему вы аутентифицируете по парольной фразе?: Почему парольные фразы.
10 * Почему вся настройка сети делается вручную?: Почему ручная настройка сети.
11 * Почему нет поддержки OS X или Windows?: Почему нет поддержки проприетарных ОС.
12 * Что вы подразумеваете под совершенной прямой секретностью?: Что такое PFS.
13 * Что вы подразумеваете когда говорите что клиенты анонимны?: Что такое анонимность.
14 * Что вы подразумеваете под цензуроустойчивостью?: Что такое цензуроустойчивость.
15 * Когда я должен использовать нешифрованный режим?: Когда нешифрованный режим.
16 * Когда я должен использовать noise опцию?: Когда noise опцию.
17 * Когда я должен использовать опцию синхронизации времени?: Когда синхронизацию времени.
18 * Могу ли я сделать DoS (отказ в обслуживании) демона?: Можно ли DoS демона.
19 * Почему YAML для конфигурации?: Почему YAML.
20 @end menu
21
22 @node Почему не TLS
23 @subsection Почему вы не используете TLS?
24
25 @itemize
26 @item Это сложный плохо спроектированный протокол.
27 @item Он использует Аутентификацию-затем-Шифрование порядок
28 использования алгоритмов.
29 @item Его библиотеки огромны и сложны для чтения, ревью и анализа.
30 @end itemize
31
32 @node Почему не SSH
33 @subsection Почему вы не используете SSH?
34
35 @itemize
36 @item Его первые версии использовали Аутентификацию-и-Шифрование
37 порядок, однако более поздние поддерживают даже ChaCha20-Poly1305
38 алгоритм.
39 @item OpenSSH не поддерживает сильные протоколы аутентификации по паролю
40 с нулевым неразглашением.
41 @end itemize
42
43 @node Почему не IPsec
44 @subsection Почему вы не используете IPsec?
45
46 В нём нет сильного протокола аутентификации по паролю с нулевым
47 неразглашением и, снова, его код сложно читать.
48
49 @node Почему Go
50 @subsection Почему GoVPN написан на Go?
51
52 Go очень легко читается, поддаётся ревью и поддержке. Он усложняет
53 написание сложного кода. Он предоставляет всё что нужно для C языка:
54 проверки границ массивов, сборщик мусора и конкурентные примитивы. Он
55 обеспечивает меньшую производительность (хотя на моём ноутбуке даёт
56 более чем 750 Mbps пропускной способности), но большую надёжность и
57 гораздо меньше строк кода.
58
59 @node Почему парольные фразы
60 @subsection Почему вы аутентифицируете по парольной фразе?
61
62 Человек способен запоминать достаточно длинные парольные фразы (не
63 пароли): 100-200 символов, что даёт возможность использовать её как
64 высокоэнтропийный ключ. Вам нужно доверять только себе, не аппаратному
65 токену или другому устройству хранения. Это удобно.
66
67 @node Почему ручная настройка сети
68 @subsection Почему вся настройка сети делается вручную?
69
70 Потому что существует так много вариантов использования, конфигураций и
71 установок, что или я поддерживаю их все, или использую громоздкие
72 протоколы типы PPP, или просто даю право выбора администратору. VPN это
73 всего-лишь прослойка.
74
75 @node Почему нет поддержки проприетарных ОС
76 @subsection Почему нет поддержки OS X или Windows?
77
78 Любые проприетарные системы с закрытым исходным кодом не дают
79 возможности управлять компьютером. Вы не можете безопасно использовать
80 всё что касается криптографии без контроля над нижестоящим
81 вычислительным устройством. Выбирайте другую операционную систему.
82
83 @node Что такое PFS
84 @subsection Что вы подразумеваете под совершенной прямой секретностью?
85
86 Что вы не можете дешифровать ранее перехваченный трафик если ваши
87 долгоживущие ключи будут скомпрометированы. Это свойство работает на
88 уровне сессии: оно не спасёт если сессионный ключ скомпрометирован из
89 памяти.
90
91 @node Что такое анонимность
92 @subsection Что вы подразумеваете когда говорите что клиенты анонимны?
93
94 Что третьей лицо не может отличить одного клиента от другого, смотря на
95 трафик (транспортный или рукопожатия).
96
97 @node Что такое цензуроустойчивость
98 @subsection Что вы подразумеваете под цензуроустойчивостью?
99
100 Невозможность определить GoVPN ли это трафик или просто
101 @code{cat /dev/urandom | nc somehost}. Если вы не можете отличить один
102 вид трафика от другого, то при цензуре ваше единственный вариант это
103 заблокировать все его виды.
104
105 @node Когда нешифрованный режим
106 @subsection Когда я должен использовать @ref{Encless, нешифрованный режим}?
107
108 Если вы работаете под юрисдикциями где суды могут привлечь вас к
109 ответственности за использование шифрования или могут вынудить вас
110 как-либо выдать ваши ключи шифрования (хотя сессионные ключи шифрования
111 генерируются каждую сессию). В большинстве случаев, эти суды не могут
112 требовать аутентификационные ключи или ключи для ЭЦП.
113
114 @strong{Не позволяйте} названию режима вас смутить: он всё-равно
115 обеспечивает конфиденциальность и аутентичность передаваемых данных! Но
116 имейте в виду, что этот режим требователен к ресурсам и трафику и пока
117 работает только в TCP режиме.
118
119 Если всё что не может быть прочитано кем-угодно считается шифрованием,
120 то этот режим вам не поможет. Представьте что вы говорите на другом
121 иностранном языке или просто используете другую схему кодирования данных.
122
123 @node Когда noise опцию
124 @subsection Когда я должен использовать @ref{Noise, noise} опцию?
125
126 В большинстве случаев она вам не нужна без включённого
127 @ref{CPR, постоянного по скорости трафика} (CPR). Без CPR и шума, в
128 GoVPN трафике (так же как и в TLS, IPsec, SSH и других VPN протоколах)
129 утекает информация о размерах и временных характеристиках пакетов
130 нижележащего уровня. Вы можете делать анализ трафика и предполагать что
131 происходить в сети. Без CPR опции вы можете только сказать в online ли
132 кто или нет -- ни больше, ни меньше.
133
134 @node Когда синхронизацию времени
135 @subsection Когда я должен использовать опцию @ref{Timesync, синхронизации времени}?
136
137 Без этой опции, если кто-либо перехватит первоначальный пакет
138 рукопожатия от настоящего клиента, то он сможет его повторить и получить
139 пакет рукопожатия от сервера в ответ. Это может быть использовано для
140 определения известен ли определённый пользователь серверу и то что мы
141 имеем дело именно с GoVPN сервером. Timesync опция заставляет добавлять
142 временные штампы в пакеты рукопожатия, разрешая быть пакетам
143 действительными только в указанном временном окне. Если вы имеете более
144 или менее синхронизированные часы между вашими клиентами и сервером, то
145 можете всего использовать эту опцию.
146
147 @node Можно ли DoS демона
148 @subsection Могу ли я сделать DoS (отказ в обслуживании) демона?
149
150 Каждый транспортный пакет первым делом аутентифицируется очень быстрым
151 UMAC алгоритмом -- в большинстве случаев потребление ресурсов TCP/UDP
152 слоёв будет выше чем проверка UMAC. Каждое сообщение рукопожатия
153 обрабатывается только если зашифрованный @ref{Identity, идентификатор}
154 клиента найден: он использует быстрый PRP без потребления энтропии.
155
156 @node Почему YAML
157 @subsection Почему YAML для конфигурации?
158
159 Есть не так много хорошо известных форматов позволяющих комментировать,
160 легко редактировать людьми (XML совсем не дружелюбен к человеку, JSON
161 более менее). Возможно самое важное свойство это шаблоны YAML: очень
162 удобно сохранить много клиентов, имеющих схожие настройки, в одном
163 конфигурационном файле.