Чат C# с E2EEC#

Место общения программистов C#
Anonymous
Чат C# с E2EE

Сообщение Anonymous »

Я столкнулся с этой дилеммой. Создаю чат на C# (с самим чатом проблем нет, писал много раз), сталкивался с необходимостью добавить сквозное шифрование сообщений. Не могу понять, как это правильно реализовать. У меня есть отдельный сервер, который выполняет чисто роль ретранслятора и API (для загрузки списка чатов и сообщений из базы данных для конкретного аккаунта).
Я так понимаю, отправитель должен зашифровать сообщение открытым ключом получателя. Что должен сделать отправитель? Сохранять сообщение локально под нужным ID — не вариант, потому что клиенту нужно иметь возможность видеть свои сообщения при входе с другого устройства. А если сообщение зашифровано открытым ключом получателя, то оно закрыто для отправителя. Или вам нужно отправить по сути дублирующее сообщение, одно зашифрованное под открытым ключом отправителя, а второе под открытым ключом получателя?
Можете ли вы подсказать, как правильно организовать обмен ключи для приватных чатов (1 на 1) и групповых, как их лучше хранить и сопутствующие вещи, ибо на эту тему ничего не нашел.
Задумался о хранении данных отправителя сообщение локально под ID (которое потом локально вставили в нужное место), но потом я подумал, что оно будет видно не на том же аккаунте, а на другом устройстве... Остается только это сделать с симметричным ключом, при котором клиенты шифруют и дешифруют ключом, который они оба знают, но мне все равно хотелось бы знать, как это сделать с помощью сквозного шифрования

Подробнее здесь: https://stackoverflow.com/questions/784 ... -with-e2ee

Вернуться в «C#»