Инструкция по личным сообщениям на сайте

Личные сообщения с End-to-End шифрованием

На Kakahi.ru появилась система личных сообщений с End-to-End Encryption (E2EE).

Это означает, что сообщения шифруются непосредственно в браузере отправителя и расшифровываются только в браузере получателя. Сервер выступает исключительно в роли посредника для доставки зашифрованных данных и не имеет доступа к содержимому переписки.

Как работает шифрование

При первом открытии раздела сообщений браузер автоматически создает уникальную криптографическую пару ключей:

  • публичный ключ (Public Key);
  • приватный ключ (Private Key).

Публичный ключ сохраняется на сервере и используется другими пользователями для отправки вам зашифрованных сообщений.

Приватный ключ никогда не передается на сервер и хранится только локально в вашем браузере.

Для защиты переписки используются современные криптографические алгоритмы:

  • X25519 — обмен ключами;
  • XChaCha20-Poly1305 — шифрование и проверка целостности сообщений;
  • libsodium — криптографическая библиотека с открытым исходным кодом.

Каждое сообщение шифруется на устройстве отправителя еще до отправки на сервер. Сервер получает и хранит только зашифрованный набор данных.

Что хранится на сервере

Сервер хранит:

  • публичные ключи пользователей;
  • зашифрованные сообщения;
  • техническую информацию, необходимую для доставки сообщений.

Сервер не хранит:

  • тексты сообщений в открытом виде;
  • приватные ключи пользователей;
  • данные, позволяющие расшифровать переписку.

По этой причине администрация сайта технически не может читать содержимое защищенных сообщений.

Почему приватный ключ хранится только в браузере

Мы сознательно выбрали модель Zero-Knowledge.

В классических мессенджерах приватные ключи часто синхронизируются между устройствами через серверы компании. Это удобно, но требует определенного уровня доверия к оператору сервиса.

В нашей реализации приватный ключ остается исключительно у пользователя. Сервер никогда не получает его копию и не может восстановить его при утере.

Такой подход делает систему максимально прозрачной:

  • только пользователь владеет своим ключом;
  • администрация сайта не имеет доступа к ключам;
  • отсутствует скрытое резервное хранение ключей на сервере.

Что произойдет при очистке браузера

Поскольку приватный ключ хранится локально, его удаление приводит к потере возможности расшифровать ранее полученные сообщения.

Это может произойти в следующих случаях:

  • очистка данных браузера;
  • удаление localStorage;
  • использование другого браузера;
  • использование нового устройства;
  • переустановка браузера или операционной системы.

После потери приватного ключа браузер автоматически создаст новую пару ключей.

Новые сообщения будут работать нормально, однако старая переписка останется зашифрованной и станет недоступной для чтения.

Это не ошибка системы, а следствие принципа Zero-Knowledge: если сервер никогда не получал приватный ключ, он не может помочь восстановить доступ к старым сообщениям.

Важное ограничение

End-to-End шифрование защищает переписку от чтения на сервере, но не может защитить пользователя в случае полного компрометирования его устройства или браузера.

Наша позиция

Мы стремились создать максимально честную и прозрачную систему E2EE.

Поэтому приватные ключи не передаются на сервер, не синхронизируются между устройствами и не могут быть восстановлены администрацией сайта.

Только пользователь контролирует свои ключи и доступ к своей переписке.

Ссылка на исходный код https://github.com/vegagmt/php-e2ee-messenger

  • ✎  Долгожданный кабан напиши свой отзыв ✚
💩 Статьи Инструкция по личным сообщениям на сайте

Внимание на сайте фото какашек!
Вам уже исполнилось 18 лет?

💬 Последние сообщения