Как предотвратить атаки MITM при внедрении E2EE?

Я работаю над проектом, в котором два клиента могут отправлять файлы друг другу через веб-сокеты (используя Socket.IO). Каждый фрагмент зашифрован с помощью AES.

В настоящее время клиенты подключаются к серверу, каждый из них генерирует пару открытого / закрытого ключей RSA на своих устройствах, затем они объявляют свои открытые ключи серверу, который отправляет их другому клиенту, и это сохраняется указанным клиентом. Перед отправкой данные шифруются с помощью AES с использованием случайного ключа и случайного IV, а затем ключ AES шифруется с использованием открытого ключа другого клиента. Данные пересылаются, другой клиент затем расшифровывает ключ AES, используя свой закрытый ключ RSA, и, наконец, расшифровывает содержимое, используя расшифрованный ключ AES, и сохраняет его в файл на своем диске.

Проблема в том, что сервер может легко заменить открытый ключ одного клиента своим собственным и украсть данные. Единственное решение, которое я могу придумать, - это для клиентов связываться друг с другом и вручную проверять свои открытые ключи ... Я не уверен, как бы я стал автоматизировать этот процесс. Службы, предоставляющие E2EE, похоже, генерируют соответствующий код на каждом устройстве, но у меня возникают проблемы с поиском какой-либо информации о том, как это на самом деле реализовано, например, как два устройства генерируют совпадающие коды, не разговаривая с сервером или друг с другом между ними, и если они это сделают, то сервер все равно знает код, верно?

Я рассматривал возможность использования WebRTC для отправки открытого ключа от одного клиента другому без передачи данных через сервер, но я был бы признателен за альтернативные подходы. Заранее спасибо! :)

1 ответ

Чтобы предотвратить MITM, пользователи должны « вручную сравнивать отпечатки открытых ключей через внешний канал », как объясняется в этой статье о сигнальном протоколе.

Обычно это означает проверку шестнадцатеричной строки над доверенным сообщением: лицом к лицу, по телефону, ... В зависимости от ваших требований вы также можете учитывать, что злоумышленник не может получить доступ к вашему инструменту и электронной почте одновременно, и считать электронные письма своими доверенными коммуникация.

Другие вопросы по тегам