Variable par défaut dans une classe

-
Bonjour,

Je développe une petite application dans laquelle je stocke des mots de passe en BDD qui sont chiffrés en AES.
J'utilise une classe que j'ai trouvé sur le net (AesCryp) qui contient une variable Key (clé de chiffrement).

Aucun problème pour encrypter/décrypter mes mots de passe mais on me demande de pouvoir modifier cette clé de chiffrement en cas de compromission et c'est là que le bât blesse..

Je voudrais pouvoir récupérer ma clé actuelle pour déchiffrer les mots de passe en base et ensuite modifier cette clé.

Ci-dessous un extrait de ma classe AesCryp dans laquelle je déclare ma clé de chiffrement.

Fichier AesCryp.cs

namespace AesEncDec
{
    static class AesCryp
    {
        public static string IV = "qo1lc3sjd8zpt9cx";  // 16 chars = 128 bytes
        public static string Key = "ow7dxys8glfor9tnc2ansdfo1etkfjcv";   // 32 chars = 256 bytes



J'ai créé une nouvelle form (FormModifCle.cs) pour récupérer la clé actuelle, effectuer le décryptage des passwords (jusque là tout va bien), puis ensuite rentrer une nouvelle clé et rechiffrer les passwords, mais je n'arrive pas à modifier ma variable "public static string Key" à partir de ma nouvelle Form.


Fichier FormModifCle.cs

   public partial class FormModifCle : MetroFramework.Forms.MetroForm
    {
        public FormModifCle()
        {
            InitializeComponent();
        }

        MySqlConnection connexion = new MySqlConnection("Database=telem;Server=192.168.44.48;Uid=helpdesk;Password=|-|3lpMe");

        private void FormModifCle_Load(object sender, EventArgs e)
        {

            TxtBoxOldKey.Text = AesCryp.Key;

        }

        private void metroButton1_Click(object sender, EventArgs e)
        {
            if (TxtBoxNewKey.Text == "")
            {
                MetroMessageBox.Show(this, "ERREUR", "Nouvelle clé vide", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
            else
            {               
                AesCryp.Key = TxtBoxNewKey.Text;
                MetroMessageBox.Show(this, "INFO", "Clé modifiée", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }

        }



En espérant avoir été clair...

Merci d'avance pour votre aide..
Afficher la suite 

4 réponses

Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2019
322
0
Merci
Bonjour
T’as posté ta vraie clé?
Commenter la réponse de Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2019
322
0
Merci
Ok, il ne faut pas la mettre dans ton code. Un exe .Net est facilement décompilable, donc le simple fait de l’avoir en clair est déjà une compromission.
.Net dispose d’un outil de chiffrement qui se sert de ta configuration matérielle et logicielle, tu peux stocker ta clé dans un fichier chiffré de cette manière.
Je ne me rappelle pas du mon de la classe et là j’ai pas trop le temps de chercher.
J'utilise l'obfuscation, donc ce n'est pas gênant qu'elle soit en "dur" dans mon code, ce que je veux savoir c'est juste comment modifier cette variable à partir d'une autre form.
Commenter la réponse de Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2019
322
0
Merci
Tu ne peux pas modifier de façon définitive une valeur en dur dans le code. Une fois que c’est compilé, c’est compilé.
Au démarrage suivant, elle reprendra la valeur écrite dans le code.

Une solution serait de mettre ta classe dans une dll et de mettre à jour juste cette dll.
Mais bon, obfuscation ou pas c’est pas sécurisé.

Regarde sur l’aide en ligne de Microsoft c’est franchement pas mal ce qu’ils ont fait.

Commenter la réponse de Whismeril
Messages postés
14026
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
6 décembre 2019
322
0
Merci
Bonjour

j'ai eu un peu de temps ce matin
https://docs.microsoft.com/fr-fr/dotnet/standard/security/how-to-store-asymmetric-keys-in-a-key-container

Et tous les articles connexes du thème "Modèle de chiffrement"
Commenter la réponse de Whismeril