taupe4
Messages postés91Date d'inscriptiondimanche 16 avril 2006StatutMembreDernière intervention17 avril 2008
-
14 avril 2008 à 04:24
taupe4
Messages postés91Date d'inscriptiondimanche 16 avril 2006StatutMembreDernière intervention17 avril 2008
-
14 avril 2008 à 23:40
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>
///La cl‚ … prot‚ger
///<returns>Le Hex-string repr‚sentant les donn‚es crypt‚es.</returns>
public
static
string TransformKey(
string key){
CspParameters csp =
new
CspParameters();csp.KeyContainerName =
"MyContainer2003";
byte[] bytes =
Encoding.UTF8.GetBytes(key);
MemoryStream source =
new
MemoryStream(bytes);
RSACryptoServiceProvider rcsp =
new
RSACryptoServiceProvider(csp);
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é.
<hr width="100%" size="2" />
«L'erreur est humaine mais un véritable désastre nécessite un ordinateur.»
«Selon les derniers chiffres, 43 % des statistiques sont fausses»
taupe4
Messages postés91Date d'inscriptiondimanche 16 avril 2006StatutMembreDernière intervention17 avril 20081 14 avril 2008 à 23:40
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.
<hr width="100%" size="2" />
«L'erreur est humaine mais un véritable désastre nécessite un ordinateur.»
«Selon les derniers chiffres, 43 % des statistiques sont fausses»