2010-03-27 3 views
0

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

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

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

+2

Hm, что происходит, когда у вас есть только один вопрос открытым – Ben

ответ

1

Стандартный протокол для безопасного отправки пакетов - SSL/TLS. RFC для TLS и DTLSa fix for a recent flaw) - это путь. Их также следует рассматривать как ресурс для обучения и поиска идей.

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

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

+0

Спасибо за ответ, но я не так много криптограф, вы могли бы «немой это вниз» немного для меня;) Мне нужен способ для одного компьютера, чтобы знать, что пакет от отправителя, он говорит, что это так. MAC не работал (я мог понять это по большей части), я уже отправляю хэши md5. Спасибо, Макс – Ben

+0

Тем более разумно использовать консервированное решение, такое как SSL. Думаю, слишком сложно окунуться. Это требует изучения, прежде чем его поймут. Возможно, кто-то другой может сделать лучше. –

+0

Прошу прощения, я полностью забыл об этом вопросе, но все равно хотел бы андерсера. Когда я читал определение MAC, я понял, что это не то, что мне нужно. Мне нужен сертификат, который я могу сформировать из предопределенного ключа RSA (используя ранее упомянутый класс RSACryptoServiceProvider) – Ben

Смежные вопросы