Reality: как соединение выглядит со стороны
Reality — не отдельный протокол, а режим защитного слоя. Его задача проста: со стороны ваше соединение должно походить на обращение к чужому сайту, который живёт в сети давно. Имя этого сайта и стоит в поле sni.
Короткий ответ
Имя чужого сайта в вашей строке — это прикрытие, а не адрес, куда пойдёт трафик. Идёте вы по адресу, который стоит после собачки.
- Reality меняет ВИД соединения, а не его крепость. Содержимое закрыто так же, как и без него — чем именно.
- Серверу при Reality не нужен собственный сертификат. Это главное практическое отличие от привычной схемы.
- Не нужно покупать домен, подтверждать владение им и следить за сроком продления.
- Нечему протухнуть в неподходящий момент. Самая обидная поломка обычных связок — просроченный сертификат — здесь исключена по устройству.
- Значение поля назначает сервер. Подставить туда другое имя и остаться на связи не получится.
Почему это вообще работает
Наблюдателю со стороны видно немногое, и по этому немногому он делает выводы.
Что означает поле sni
Имя, которым соединение представляется в самом начале разговора. Проще говоря — вывеска.
При Reality вывеской берут имя настоящего постороннего сайта. Сам он про это не знает, и ваш трафик туда не идёт: он идёт по адресу после собачки.
Сервер прикрытия при этом не декорация: соединения к нему открываются. Чужой, не узнанный посетитель уезжает именно туда и получает обычный сайт.
На этом вид со стороны и держится: проверяющий видит настоящий отклик настоящего сайта.
Наблюдатель видит знакомое имя и не находит в соединении ничего необычного.
Почему рядом стоят ещё какие-то короткие поля
Потому что одной вывески мало. Вашей программе нужно убедиться, что на том конце именно тот сервер, а не кто-то вставший на его место.
Для этого в строке лежит открытый ключ сервера — короткое значение pbk. Рядом бывают ещё одно-два таких же.
Проверка здесь односторонняя: по этому ключу вы узнаёте сервер, а не он вас. Вас он узнаёт по идентификатору из начала строки.
Смысл для читателя ровно один: это выданные сервером величины, которые должны совпасть. Ни подобрать, ни исправить их со своей стороны нельзя.
Можно ли поставить в поле имя любимого сайта
Нет. Значение должно совпадать с тем, на что настроен сервер, иначе соединение просто не установится.
Ошибка в любом параметре ломает строку целиком — это общее правило, и Reality от него не освобождён.
Reality и обычный защищённый слой
Различие практическое, а не идеологическое.
| Вопрос | Обычный слой | Reality |
|---|---|---|
| Нужен ли серверу свой сертификат | Да | Нет |
| Нужен ли купленный домен | Да | Нет |
| Может ли протухнуть срок | Да, и это частая поломка | Нечему протухать |
| Насколько крепко закрыто содержимое | Одинаково | Одинаково |
| Как выглядит со стороны | Как соединение с вашим сервером | Как обращение к чужому известному сайту |
Чем это отличается от подхода Trojan
Trojan решает ту же задачу маскировки с другого конца: он выдаёт себя за обычный защищённый запрос к веб-серверу.
Но для этого ему нужен настоящий домен и настоящий сертификат — то самое, от чего Reality избавляет. Отсюда и разница в хлопотах у того, кто поднимает сервер.
Для вас как для читателя строки разница простая: в строке будет стоять другое первое слово.
Короткие ответы
Мой трафик правда идёт на тот сайт, чьё имя стоит в строке?
Нет. Трафик идёт по адресу после собачки. Имя в поле — только вывеска для наблюдателя со стороны.
Reality надёжнее обычного слоя?
Спор между ними идёт не о надёжности шифра, а о том, как соединение выглядит снаружи. Содержимое в обоих случаях закрыто.
Почему у меня в строке нет слова reality?
Значит, сервер настроен на другой защитный слой. Это нормально: что вообще бывает в этом поле.
Reality и Vision — это одно и то же?
Нет, это разные вещи и разные поля строки. Reality отвечает за вид соединения снаружи, а Vision — за то, как поток устроен внутри.
Нужен ли для Reality какой-то сертификат на моём устройстве?
Нет. Обычному подключению системные сертификаты не нужны вовсе, а просьбу поставить «корневой сертификат» надо считать тревожным сигналом.
Страница ответила на ваш вопрос?
Спасибо, учтём при следующей правке страницы.