Передача закрытого ключа пользователя при клиент-серверное архитектуре

Подскажите, пытаюсь реализовать приложение для чата на основе клиент-серверной архитектуры. То есть схема передачи сообщения такая: Клиент 1 -> Сервер -> Клиент 2. Но так как я хочу приложение сделать хоть чуточку безопасным, то принял решение реализовать еще и сквозное шифрование. И вот в чем мой вопрос: после генерации пары (открытый-закрытый) ключей для ассиметричного шифрования на клиенте я спокойно могу передать открытый ключ в базу данных на сервере (чтобы после отправить этот ключ другому клиенту для шифровки сообщений) по незащищенному каналу связи, но я не могу того же самого сделать с закрытым ключом, так как в этом случае теряется вообще вся суть шифрования. И логичным решением было бы оставить закрытый ключ в файлике на ПК клиента, но в таком случае, если клиент зайдет в свой аккаунт с нового устройства, то он просто не сможет получить доступ к своим предыдущим перепискам. Как в современных приложениях решается этот вопрос? Потому что я уже сломал буквально всю голову и не могу придумать решения. Заранее спасибо за ответы :)


Ответы (0 шт):