Подробная инструкция: Установка P2P-соединения Synapse
Neuron Ecosystem1. Этап: Создание Offer (Пользователь А)
Пользователь А начинает процесс, открыв приложение. Первым делом необходимо нажать кнопку "1. Создать Offer". После этого приложение начнет сбор сетевых данных, сгенерирует P2P-предложение (SDP Offer) и самое главное — свою пару ключей для E2EE (Diffie-Hellman Key Pair). Дождитесь, пока в статусной строке появится сообщение: "Offer + DH Key готов. Скопируйте." или аналогичное. Далее, Пользователю А необходимо нажать кнопку "Скопировать Offer/Answer" рядом с верхним текстовым полем, чтобы скопировать сгенерированный JSON-текст, который содержит как SDP Offer, так и публичный ключ шифрования. Этот скопированный JSON-текст Пользователь А должен полностью передать Пользователю Б любым внешним способом (например, через почту или СМС).
2. Этап: Создание Answer (Пользователь Б)
Получив JSON-текст от А, Пользователь Б должен полностью вставить его в нижнее поле: "Вставьте Offer или Answer JSON сюда...". Затем необходимо нажать кнопку "2. Готово (Обработать Offer/Answer)". Приложение Пользователя Б проанализирует полученный Offer, сгенерирует свою собственную пару ключей DH, а затем, используя публичный ключ А, вычислит общий секретный ключ E2EE. После этого приложение автоматически сгенерирует Ответ (Answer) в верхнем поле. Дождитесь появления статуса: "Answer + DH Key готов. Скопируйте и отправьте." Пользователь Б нажимает кнопку "Скопировать Offer/Answer", чтобы скопировать новый JSON-текст, и отправляет его обратно Пользователю А.
3. Этап: Завершение Соединения (Пользователь А)
Получив JSON-текст Answer от Б, Пользователь А вставляет его в нижнее поле: "Вставьте Offer или Answer JSON сюда...". Снова нажмите кнопку "2. Готово (Обработать Offer/Answer)". Приложение А импортирует Ответ и публичный DH-ключ Пользователя Б, вычисляет тот же самый общий секретный ключ E2EE, и завершает процесс установки P2P-связи. После успешного обмена ICE-кандидатами и установки канала данных, статус изменится на "E2EE АКТИВНО! Соединение установлено."
После этого оба пользователя могут начать отправлять сообщения, которые будут сквозно зашифрованы и декодированы только на стороне получателя.
Примечание:
По одному обмену офферами (Offer/Answer) можно переписываться неограниченное время.
Обмен Offer/Answer (SDP) и ключами шифрования DH — это процесс установления прямого P2P-соединения WebRTC. Как только соединение установлено (статус Connected) и канал данных открыт, оно остается активным до тех пор, пока:
- Оба пользователя остаются онлайн и не закрывают вкладку браузера.
- Не происходит серьезного сетевого сбоя или изменения (например, один из пользователей переключается с Wi-Fi на мобильные данные, что может привести к смене IP-адреса и разрыву P2P-соединения).
Важные моменты:
- P2P-соединение — это прямой канал. Оно не зависит от сервера (кроме как для первоначального обмена адресами/сигнализации), поэтому, пока канал открыт, вы можете отправлять любое количество сообщений, фотографий и других данных.
- Срок действия ключа E2EE. Ключ шифрования, который вы обмениваете по протоколу Diffie-Hellman, действителен на все время существования этого конкретного P2P-соединения. Он не имеет срока годности и позволяет шифровать и расшифровывать сообщения без ограничений по количеству.
- Необходимость повторного обмена. Если один из пользователей закрыл вкладку или потерял соединение, P2P-связь будет разорвана. Для восстановления связи и обеспечения новой безопасности потребуется повторить весь процесс обмена Offer/Answer и DH-ключами.