Variable par défaut dans une classe

NicoBellic - Modifié le 12 sept. 2019 à 21:15
Whismeril Messages postés 18630 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2023 - 14 sept. 2019 à 12:03
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..

4 réponses

Whismeril Messages postés 18630 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2023 629
12 sept. 2019 à 16:05
Bonjour
T’as posté ta vraie clé?
0
Non c'était pour l'exemple.
0
Whismeril Messages postés 18630 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2023 629
12 sept. 2019 à 17:04
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.
0
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.
0
Whismeril Messages postés 18630 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2023 629
12 sept. 2019 à 17:29
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.

0
Whismeril Messages postés 18630 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 29 septembre 2023 629
14 sept. 2019 à 12:03
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"
0
Rejoignez-nous