Проверьте узел p2p - PullRequest
       6

Проверьте узел p2p

0 голосов
/ 28 марта 2010

Эй, ребята, я работал над пространством имен p2p для некоторых моих программ. Я создал систему для шифрования / дешифрования пакетов, отправленных / полученных с классом. Я использовал базовую систему открытых ключей: 1) шифровать данные с помощью симметричного шифрования 2) шифровать симметричный ключ с помощью RSA. Затем сделайте наоборот, когда вы расшифровали ..

Мне было интересно, как бы вы проверили, приходил ли пакет от того места, где он сказал, что это был. Я собирался использовать базовую систему сертификатов (где вы шифруете с помощью своего закрытого ключа RSA, а затем они дешифруют его с помощью вашего открытого ключа), но я не знаю, как это сделать с помощью C #. Я использую класс RSACryptoServiceProvider.

Кто-нибудь знает, как это сделать? Спасибо, Max

1 Ответ

1 голос
/ 28 марта 2010

Стандартным протоколом для безопасной отправки пакетов является SSL / TLS. RFC для TLS и DTLS исправление для недавнего недостатка ) - путь. Их также следует рассматривать как ресурс для тех, кто изучает и ищет идеи.

Похоже, вы ищете MAC . Очень эффективным набором криптопримитивов, которые одновременно выполняют шифрование и MAC-адресацию, являются шифры AEAD , см., Например, режимы блочного шифрования CCM и GCM .

Я не верю, что .NET поддерживает любые шифры AEAD. Вы также можете использовать более медленный, но вполне адекватный алгоритм HMAC , который поддерживается в .NET, или использовать библиотеку bouncycastle C # , которая поддерживает шифры AEAD.

...