UDP шифрование - просто и безопасно - PullRequest
0 голосов
/ 06 ноября 2010

Heyo!

Я пишу приложение на Qt / C ++, которое создает соединения между пирами. Первый шаг в моем протоколе заключается в том, чтобы новый узел передавал свою информацию, запрашивая соединения от установленных партнеров. Местоположение этих пиров неизвестно.

Для этого я использую UDP Broadcast. Так как эта трансляция содержит информацию об одноранговой сети, я бы хотел, чтобы она была зашифрована. Однако одноранговая аутентификация происходит, когда между одноранговыми соединениями установлено TCP-соединение, поэтому безопасность за пределами широковещательной передачи по-прежнему достаточно, но я просто не хочу, чтобы третьи лица слишком легко перехватывали и интерпретировали.

То, что я ищу, - это простой способ шифрования дейтаграммы.

Кто-нибудь может предложить надежный метод?

Спасибо миллион!

Ответы [ 2 ]

3 голосов
/ 06 ноября 2010

Вы можете использовать практически любой метод шифрования, который вы хотите, что более важно / сложнее, чем распределение ключей.

Например, если все клиенты просто используют один и тот же метод симметричного шифрования, как AES, тогда широковещательная информация будет зашифрованано любой, кто декомпилирует ваш клиент, может найти ключ.

Посмотрите:

Как зашифровать и расшифровать файл с помощью Qt / C ++?

1 голос
/ 06 ноября 2010

При трансляции сообщения на неизвестные хосты вы будете отказываться от своего IP-адреса и номера порта. Вы должны иметь предварительный общий ключ, чтобы трансляция имела смысл, и, как указывал «мозг», это ограничивает вашу способность быть в безопасности. Если вы чувствуете себя в достаточной безопасности, когда все клиенты могут расшифровать данные, а также те, кто их переворачивает, то все будет в порядке. Вы можете использовать любую симметричную форму шифрования и быть относительно безопасным. Для очень упрощенного XORing данных может быть достаточно в этом случае.

Если вы хотите повысить безопасность своей трансляции, сделайте трансляцию сообщения обмена ключами Диффи-Хелмана. Остальная часть обмена после этого может быть одноадресной и использовать разные номера для каждого клиента. Это позволит новый ключ для каждого отдельного соединения. Конечно, кто-то может повторно реализовать ваши протоколы и подделать себя как одноранговый узел, но он не сможет получить информацию от других коллег.

...