Dans sa délibération n°2017-190 en date du 22 juin 2017, la CNIL considère que les mots de passe ne doivent jamais être stockés en clair. Elle recommande que tout mot de passe utile à la vérification de l’authentification et devant être stocké sur un serveur soit préalablement transformé au moyen d’une fonction cryptographique non réversible et sûre (c’est-à-dire utilisant un algorithme public réputé fort dont la mise en œuvre logicielle est exempte de vulnérabilité connue), intégrant l’utilisation d’un sel ou d’une clé. A quel principe de cybersécurité peut-on associer cette recommandation de la CNIL relative au stockage des mots de passe ?
[A] Séparation des tâches (segregation of duties)
[B] Besoin d’en connaître (need to know)
[C] Moindre privilège (least privilege)
[D] Défense en profondeur (defense in depth)
C’était une question relativement facile et pourtant 4 personnes sur 5 ont donné une mauvaise réponse.
La réponse qui arrive très largement en tête (62%) est la proposition [D] Défense en profondeur. Il semble donc utile, pour ne pas dire indispensable de redéfinir ce terme. Le principe de « défense en profondeur » peut se définir comme un empilement de fonctions de sécurité de natures différentes et indépendantes entre elles dont le but est de complexifier au maximum la tâche d’un attaquant. Dans une protection de ce type, il y a donc nécessairement plusieurs mesures de sécurité et en tout cas au moins deux. Dans la recommandation de la CNIL, on ne parle que d’une et une seule mesure de sécurité pour protéger les mots de passe stockés. Cela ne peut donc pas être de la défense en profondeur. Si la recommandation était de dire on protège les mots de passe par une solution X et on protège le serveur par une solution Y puis on protège la table des sels ou les clés par une solution Z alors on serait là dans une véritable approche de défense en profondeur.
Passons rapidement sur les propositions [A] et [C] qui ont trait aux droits d’accès des utilisateurs/administrateurs sur des ressources. Cela n’a strictement aucun rapport avec la recommandation de la CNIL.
La bonne réponse était donc la proposition [B] : le besoin d’en connaître.
Pour assurer la confidentialité des mots de passe, on pourrait penser qu’il suffit de les chiffrer. Alors pourquoi la CNIL recommande t-elle d’utiliser une fonction cryptographique non réversible ? Si les mots de passe étaient chiffrés (que ce soit en symétrique comme en asymétrique), il faudrait alors utiliser une clé pour déchiffrer les mots de passe afin d’authentifier les utilisateurs. Cette clé serait stockée quelque part et on peut imaginer que les administrateurs du système pourraient y avoir accès et pourraient ainsi avoir accès aux mots de passe en clair puisque le chiffrement est une fonction cryptographique réversible. Hors les administrateurs ont-ils besoin de connaître les mots de passe des utilisateurs ? Non. Serait-ce dangereux si c’était le cas ? Oui bien sûr, la malveillance interne n’est pas un mythe. Il est donc hors de question que les administrateurs d’un système puissent accéder aux mots de passe des utilisateurs. C’est donc bien le principe de besoin d’en connaître (need to know) qui doit s’appliquer pour le stockage des mots de passe et c’est bien évidemment pour cela que la CNIL recommande d’utiliser une fonction cryptographique non réversible.
Questions et réponses rédigées par VERISAFE selon le programme officiel du CISSP actuellement en vigueur
© VERISAFE – Utilisation ou reproduction (même partielle) strictement interdite sans l’accord écrit de VERISAFE