Как работает алгоритм Диффи — Хеллмана для чата
Я хочу сделать безопасную передачу сообщений в закрытой чат-комнате. В руме может быть до 10 человек. Я не могу понять, как мне сделать безопасную передачу ключа другим пользователям?
Увидел алгоритм передачи ключа Диффи — Хеллмана, по сути:
- пользователь передает зашифрованное сообщения вместе с куском ключом шифрования, на сервер;
- с сервера сообщения и ключ по вебсокетам переходит другим пользователям;
- на фронте они получают это сообщение и расшифровывают его с помощью ключа.
Но как сделать эту передачу другим пользователям я не могу понять. Сам сервер видит только зашифрованное сообщения и он его просто передает другим.
Если можно напишите псевдокод или пример, как это можно сделать?
Ответы (1 шт):
Если вас интересует именно безопасность передачи по незащищенному каналу - алгоритм Диффи-Хеллмана уязвим для модификации данных. Предполагается, что в процессе обмена ключами отсутствует третья сторона, которая может подменять данные. Поскольку у вас есть сервер, который выолняет роль посредника и клиенты, вы можете добавить дополнительную аутентификацию. Использовать TLS, как вариант. Это необходимо на этапе обмена ключами.