Non, la fonction de hachage SHA-1 ne doit pas être utilisée pour stocker les empreintes des mots de passe, car la fonction est obsolète.

Des vulnérabilités majeures ont déjà été trouvées dans la fonction de hachage SHA-1. La fonction n’est, par exemple, pas résistante aux collisions, ce qui signifie que plusieurs textes peuvent avoir la même empreinte (ou hash), ce qui n’est théoriquement pas (ou très difficilement) possible avec une fonction de hachage robuste.

« La fonction de hachage SHA-1 est aujourd’hui très largement employée dans de nombreux produits. Les très importantes avancées réalisées dans le domaine des fonctions de hachage ont remis en cause le fait que cette fonction soit « sans collision » et jettent un doute sérieux quant à la sécurité de cette fonction pour certaines applications, en particulier dans le domaine de la signature électronique. »

En utilisant SHA-1 pour générer une empreinte des mots de passe, il y a donc, théoriquement, un risque que des mots de passe incorrects soient considérés comme valides. En réalité, ce risque est très faible, voire impossible, car la taille des mots de passe est généralement relativement faible, ce qui ne donne pas beaucoup de possibilités aux attaquants pour trouver un autre texte qui produirait la même empreinte.

La fonction SHA-1 est cependant considéré comme obsolète. Elle ne devrait donc pas être utilisé, même pour stocker les empreintes des mots de passe.

Par ailleurs, les mots de passe étant généralement utilisés pour restreindre l’accès aux données personnelles des utilisateurs, le RGPD[1] s’applique. Le texte demande notamment de prendre des mesures pour assurer la confidentialité des données. La CNIL[2] considère que l’utilisation de la fonction SHA-1 n’est pas une mesure de sécurité adaptée.

« La société a ainsi indiqué que l’utilisation de la fonction de hachage obsolète (SHA-1) concerne uniquement l’ancienne interface utilisateur, en cours de décommissionnement, et qui est utilisée par deux marchands. La [CNIL] relève ensuite que les deux marchands en question ont été mis en demeure de migrer dans les meilleurs délais vers la dernière version de l’interface, qui utilise une fonction de hachage satisfaisante [(Bcrypt)]. »

D’autres fonctions de hachage et d’autres méthodes peuvent être utilisées en remplacement de SHA-1, comme la fonction « bcrypt » associée à un « sel »[3]. Référez-vous aux recommandations[4] de l’OWASP[5] pour connaître les meilleures façons de stocker des mots de passe.

Notes et références

  1. RGPD : Règlement Général sur la Protection des Données (Règlement (UE) 2016/679).
  2. CNIL : Commission Nationale de l’Informatique et des Libertés (cnil.fr).
  3. Un sel est un texte aléatoire que l’on ajoute au calcul de l’empreinte. Il permet d’éviter que deux mots de passe identiques aient la même empreinte et rend la tâche plus difficile aux attaquants de retrouver le texte initial à partir de l’empreinte.
  4. Les recommandations de l’OWASP sur le stockage des mots de passe : cheatsheetseries.owasp.org (en anglais).
  5. OWASP : Open Web Application Security Project (owasp.org).