Ну вот смотри. Есть Юзер1. В момент установки связи с Юзер2 он генерирует пару ключей: КлючЗ и КлючР. Один служит для зашифровки сообщений, а другой - для расшифровки.
КлючЗ передаётся Юзеру2. Юзер2 пишет сообщение, которое шифруется этим ключом, и передаёт сообщение Юзеру1 через сервер. Сообщение невозможно расшифровать без КлючаР, который никуда не передавался и хранится у Юзера1.
Юзер1 получает зашифрованное сообщение и расшифровывает его с помощью КлючаР.
Соответственно, чтобы Юзер1 мог написать сообщение Юзеру2, он должен получить от него свой "зашифровывающий" ключ, который создаётся у Юзера2 на его стороне.
При установке контакта оба юзера обмениваются только публичными, "зашифровывающими" ключами. Приватные, "расшифровывающие" никогда не передаются по сети и не могут быть скомпрометированы.
Поэтому, даже Телеграм, храня у себя на сервере тонны сообщений, не может их никак прочитать, передать АНБ и ФСБ. В этом весь смысл этого мессенжера, ради этого он и создавался. |