Open victormours opened 5 months ago
pour les travaux précédents sur ce sujet, voir https://github.com/betagouv/rdv-service-public/issues/3624
Vu avec Mehdi et Téo : on prend la politique suivante :
exemple 1 les mots de passe doivent être composés d'au minimum 12 caractères comprenant des majuscules, des minuscules, des chiffres et des caractères spéciaux à choisir dans une liste d'au moins 37 caractères spéciaux possibles.
On en profite pour essayer de passer au dsfr pour les pages de créations de compte et de connexion : c'est assez découplé du reste.
Le dsfr donne un bon exemple de composants de création de mot de passe : https://www.systeme-de-design.gouv.fr/elements-d-interface/composants/mot-de-passe
ℹ️ Contexte
Nous avons actuellement des contraintes assez simples sur les mots de passe :
Ces contraintes déterminent l'entropie du mot de passe, qu'on peut considérer comme un score de sécurité du mot de passe (plus l'entropie est élevée, plus le mot de passe est difficile à deviner).
La CNIL a publié des recommandations sur les politiques de mots de passe, qui fixent les seuils minimum d'entropie minimum suivants :
Mécanismes de restriction des comptes
Par mécanisme de de restriction des comptes, la CNIL entend tous les mécanismes qui font qu'on limite le nombre d'essais sur un mot de passe. Ils citent ces exemples : Temporisation d'accès au compte après plusieurs échecs ; Nombre maximal de tentatives autorisées dans un délai donné ; "Captcha" ;Blocage du compte après 10 échecs assorti d'un mécanisme de déblocage choisi en fonction des risques d'usurpation d'identité et d'attaque ciblé par déni de service.
Tous les mécanismes de ce genre ont le même problème : ils facilitent les attaques de déni de service. Par exemple si on met une limite à 10 tentatives en 24h, et qu'après on bloque le compte, n'importe quel attaquant qui connait l'adresse mail d'un utilisateur peut faire 10 tentatives avec des mauvais mots de passe, et bloquer le compte de l'utilisateur.
La recommandation de Charles Capelli était de ne pas en mettre en place, je pense qu'il a raison.
❓ Définition du problème
Politique de mots de passe trop faible
D'après l'outil de vérification de politique de mots de passe de la CNIL, notre entropie est à 39, ce qui est insuffisant.
L'article de la CNIL donne plusieurs politiques qui répondent à la contrainte d'une entropie de 80 :
C'est pas toujours exactement cohérent avec l'outil de vérification de politique de mots de passe de la CNIL (il indique 71 pour le premier exemple), mais je pense que c'est raisonnable de se base là dessus (c'est aussi ce qu'on trouve la la délibération officielle dont l'article est tiré).
Mise à jour des mots de passe historiques trop faibles
Les mots de passe n'étant pas stockés en clair, on ne peut pas déterminer quels sont les mots de passe existants qui ne respectent pas les nouvelles contraintes. On est donc obligés de faire la vérification au moment de la connexion, et de demander à mettre à jour le mot de passe à ce moment si c'est nécessaire.
💡 Solution envisagée
Découper en deux parties : mise à jour des contraintes, puis mise à jour des mots de passe (qu'on pourra aussi découper en plusieurs parties)
Questions en suspend