Sommaire

Les chaînes de caractères sécurisées

Pour un mot de passe ou pour un numéro de carte bleue ou encore pour un code d’accès on peut évidemment et en théorie utiliser la classe string. Mais plusieurs problèmes vont se poser.

Les caractéristiques de string impliquent que des copies de la chaîne de caractères vont se retrouver sur le tas. Par ailleurs, on ne maîtrise pas l’intervention du ramasse-miettes. Surtout, ce type n’est absolument pas chiffré.

Autant d’arguments pour se tourner vers une autre structure pour gérer des données sensibles de type string.

L’idée est ici d’utiliser la classe SecureString incluse dans l’espace de nommage System.Security.

1. Créer et utiliser un SecureString

Dans l’exemple suivant, on demande à l’utilisateur un mot de passe que l’on stocke immédiatement dans un SecureString ce qui permet d’éviter les risques précédemment évoqués.

using System;  
using System.ComponentModel;  
using System.Security;  
  
namespace ConsoleSecureString  
{  
    class Program  
    {  
        static void Main(string[] args)  
        {  
            SecureString motdepasse = new SecureString();  
            ConsoleKeyInfo clé;  
  
     ...