begin process at 2008 07 23 23:30:00
1 215 377 membres
516 nouveaux aujourd'hui
14 174 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : Sécurité assurée par CspProvider [ Algorithme / Compression, Split et Cryptage ] (taupe4)

Sécurité assurée par CspProvider le 14/04/2008 04:24:01

taupe4
Bonjour,

Je développe présentement une application possédant des données sensibles cryptées via AES, et elle fonctionne bien.

Notre client nous a informés qu'il voudrait avoir une case "Se rappeler du mot de passe" dans le formulaire de connexion qui apparaît présentement à chaque démarrage du programme. Il faut donc que je crypte un mot de passe, en puissant le décrypter, de manière sécuritaire.

D'après ce que j'ai vu sur MSDN, ils recommandent d'utiliser l'algorithme RSA avec un conteneur de clé. Mais ils ne spécifient rien sur la sécurité du conteneur de clé et sur son accès.

J'ai le code suivant pour enregistrer et récupérer une clé (notez que la classe HexEncoding ne fait que convertir un byte[] en la chaîne en hexadécimal le représentant (cette chaîne est ensuite enregistrée dans les settings de l'application)). Il semble fonctionner (les tests unitaires passent).

///

<summary>

/// Transforme une cl, en le cryptant via RSA.

///</summary>

///<param name="key">La cl, . prot,ger</param>

///<returns>Le Hex-string repr,sentant les donn,es crypt,es.</returns>

publicstaticstring TransformKey(string key)

{

CspParameters csp = newCspParameters();

csp.KeyContainerName =

"MyContainer2003";

byte[] bytes = Encoding.UTF8.GetBytes(key);

MemoryStream source = newMemoryStream(bytes);

RSACryptoServiceProvider rcsp = newRSACryptoServiceProvider(csp);

string hexstring = HexEncoding.ToString(rcsp.Encrypt(bytes, false));

return hexstring;

}

///<summary>

/// D,crypte le contenu crypt, en RSA sous le format HEX-string en la cl, de base.

///</summary>

///<param name="hexstring">Le HEX-string contenant les donn,es crypt,es.</param>

///<returns>La cl, une fois d,crypt,e.</returns>

publicstaticstring GetKeyBack(string hexstring)

{

CspParameters csp = newCspParameters();

csp.KeyContainerName =

"MyContainer2003";

RSACryptoServiceProvider rcsp = newRSACryptoServiceProvider(csp);

byte[] bytes = rcsp.Decrypt(HexEncoding.GetBytes(hexstring), false);

returnEncoding.UTF8.GetString(bytes);

}

Notez que le nom du containeur a été modifié.

J'aimerais savoir qui peut avoir accès au conteneur de clé. Est-ce seulement mon application ou toute application connaissant son nom?

Si cela a une influence, mon programme .NET est signé.


«L'erreur est humaine mais un véritable désastre nécessite un ordinateur.»
«Selon les derniers chiffres, 43 % des statistiques sont fausses»

Re : Sécurité assurée par CspProvider le 14/04/2008 14:49:43

sebmafate
Membre Club
(Admin CS)
si ton assembly (dll ou exe) n'est pas obfuscé (brouillé) toute personne peut lire ton code source et donc lire ton container.



Sébastien FERRAND (blog)
Consultant Sénior
[Microsoft Visual C# MVP]

Re : Sécurité assurée par CspProvider le 14/04/2008 23:40:37

taupe4
Cela veut donc dire que le nom du conteneur de clé est important car tout le monde peut avoir accès à la clé?

Quant à l'obfuscation, je vais utiliser dotfuscator, mais cela va protégé mon application en cryptant le nom de mon container?

Merci d'avance.

P.S si quelqu'un a de la documentation sur les conteneurs de clé ou sur une méthode plus sécuritaire je suis preneur . MSDN semble très vague et donne peu d'informations à ce sujet.


«L'erreur est humaine mais un véritable désastre nécessite un ordinateur.»
«Selon les derniers chiffres, 43 % des statistiques sont fausses»


Classé sous : application, string, bytes, clé, csp

Participer à cet échange

Pub



Appels d'offres

CalendriCode

Juillet 2008
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS