Question

Hé les gars, Je travaille sur un espace de noms p2p pour certains de mes programmes. J'ai créé un système pour crypter / décrypter les paquets envoyés / reçus avec la classe. J'utilisais le système de clé public-privé de base: 1) chiffrer les données avec un cryptage Symétrique 2) encodent la clé symétrique avec RSA. Ensuite, faites le contraire quand vous déchiffré ..

Je me demandais si, comment voulez-vous vérifier si le paquet venait d'où il a dit qu'il était. J'allais utiliser un système de certificat de base (où vous chiffrez avec votre clé privée RSA, ils décryptent avec votre clé publique), mais je ne sais pas comment faire cela avec C #. J'utilise la classe RSACryptoServiceProvider.

Est-ce que quelqu'un sait comment faire cela? Merci, Max

Était-ce utile?

La solution

Le protocole standard pour l'envoi de paquets est sécurisée SSL / TLS. Les TLS et DTLS (et un correctif pour une faille récente ) sont la voie à suivre. Ils devraient également être considérés comme une ressource pour ceux qui apprennent et la recherche d'idées.

On dirait que vous êtes à la recherche d'un MAC . Un ensemble très efficace de primitives de chiffrement qui effectuent le chiffrement et MACing en même temps sont les AEAD chiffrements, voir par exemple CCM et les modes de chiffrement de bloc GCM .

Je ne crois pas .NET prend en charge les chiffrements AEAD. Vous pouvez également utiliser le plus lent mais parfaitement adéquat algorithme HMAC qui est pris en charge. NET, ou vous pouvez utiliser le bouncycastle C # bibliothèque qui supporte les chiffrements AEAD.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top