Как Signal и WhatsApp справляются с ситуацией, когда пользователь теряет свои личные ключи шифрования
Предположим, есть два пользователя A и B.
A только что установил приложение и вошел в систему. Когда он входит в систему, приложение создает идентификационный ключ A, подписанный предварительный ключ и одноразовые предварительные ключи для расширенного тройного обмена ключами Диффи-Хеллмана, то есть для получения общего секретного ключа для шифрования и дешифрования. Затем приложение загружает его открытые ключи на сервер, а закрытые ключи хранятся локально.
Предположим, что телефон А. поврежден.
Теперь B устанавливает приложение и получает пакет предварительных ключей A с сервера. Используя свои личные ключи и открытые ключи А, она создала общий секретный ключ с помощью Диффи-Хеллмана. Затем она использует эти ключи для шифрования и отправки А начального сообщения.
Теперь А получает новый телефон и устанавливает приложение. Поскольку закрытые ключи хранились локально на старом телефоне, закрытых ключей у него больше нет. Как он сделает общий ключ для расшифровки исходного сообщения, отправленного B? Как лучше всего справиться с этой ситуацией?