2010-05-17 3 views
1

J'utilise RijndaelManaged (RM) de VB.Net pour crypter des fichiers, en utilisant les méthodes RM.GenerateKey et RM.GenerateIV pour générer la clé et IV et crypter le fichier en utilisant la classe CryptoStream. Je prévois d'enregistrer cette clé et IV dans un fichier et je veux m'assurer que je le fais de la bonne façon. Je combine la clé IV +, et crypter cela avec ma clé publique RSA et l'écrire dans un fichier. Ensuite, pour déchiffrer, j'utilise la clé privée RSA sur ce fichier pour obtenir la clé IV +, les diviser et définir RM.Key et RM.IV à ces valeurs et exécuter le décrypteur.Comment sauvegarder et récupérer une paire clé/IV en toute sécurité?

Est-ce la meilleure méthode pour y parvenir, ou existe-t-il une méthode préférée pour sauvegarder la clé IV &?

Répondre

1

C'est l'idée générale. Cependant, l'intraveineuse n'a pas besoin d'être gardée secrète. Seule la "clé secrète" est secrète.

Vous pouvez envisager d'utiliser un standard comme S/MIME (ou sa syntaxe de message cryptographique sous-jacente) pour votre format de fichier. Je ne suis pas sûr si Bouncycastle a porté leurs bibliothèques S/MIME (ou PGP) à .NET, ou si .NET a intégré le support de S/MIME, mais il y aura probablement une bibliothèque libre disponible pour votre plate-forme. Une bibliothèque Open Source largement utilisée comme celle-ci a probablement été testée et examinée de plus près que vous ne le pouvez et elle met en œuvre des protocoles conçus par des experts en cryptographie afin que vous n'ayez pas à vous demander quels pièges vous avez oubliés.

Le modèle que vous avez décrit est similaire à la méthode "KeyTransRecipientInfo" de S/MIME pour l'échange de clés. Une clé symétrique est générée pour crypter les données, puis cette clé est cryptée avec la clé publique de chaque destinataire. La clé cryptée et la clé IV (qui n'est pas cryptée dans cette norme) sont regroupées avec des informations sur les algorithmes utilisés dans une structure CMS. Les données chiffrées peuvent être incluses dans le même lot ou figurer dans un fichier distinct.

PGP a un mode qui est essentiellement équivalent.

Questions connexes