Я нахожусь в процессе создания флаттер-приложения, которое будет включать прямой обмен сообщениями. Вы можете отправить сообщение 1 человеку или группе людей. Я хочу, чтобы все это было зашифровано для конфиденциальности.
Метод, о котором я думал, состоит в том, чтобы сделать гибридную систему RSA, AES. При регистрации будет сгенерирована пара ключей RSA, а открытый ключ будет отправлен в базу данных для хранения. Затем, когда пользователь хочет отправить кому-то сообщение, он запросит открытый ключ другого человека и создаст ключ AES-256 для шифрования любых сообщений. Затем, когда пользователь захочет отправить сообщение, оно будет зашифровано с помощью AES, а ключ AES будет зашифрован с помощью RSA, чтобы получатель мог расшифровать сообщение.
Проблема, с которой я столкнулся, заключается в том, что я хочу, чтобы пользователь мог синхронизировать сообщения между устройствами. У меня возникла идея сгенерировать открытый и закрытый ключи из мнемонической фразы, а затем использовать ее для восстановления.
Однако это не решает проблему восстановления AES.Я не уверен, безопасно ли хранить ключ AES в базе данных для каждого чата, даже если он зашифрован с помощью RSA. Зашифрованный ключ AES для каждого человека, участвующего в чате, должен быть сохранен.
Если у кого-то есть какие-либо рекомендации или советы, пожалуйста, дайте мне знать.