Closed Queenze972 closed 7 months ago
@Queenze972 les règles pour les mots de passe sont les mêmes pour les users et pour les admins.
Les règles sont les suivantes :
#?!@$%^&*-
Le mot de passe n'est pas stocké tel quel en base. Il est d'abord chiffré et c'est ce chiffrement qui est stocké. Devise utilise Bcrypt pour le chiffrement, ce qui est considéré comme sûr et constitue un standard dans le monde des applications Ruby on Rails.
Par ailleurs, la base elle-même est chiffrée et n'est pas accessible par internet, seul le serveur y a accès :
Elle recommande de mettre en oeuvre une double authentification, OU BIEN de respecter les bonnes pratiques pour l'authentification par mot de passe simple.
Elle ne recommande pas de renouveler régulièrement les mots de passes.
Toutefois, la CNIL recommande de définir un niveau minimal générique de 80 bits d'entropie (à comprendre comme un score de sécurité du mot de passe). Avec nos règles actuelles, et d'après le calculateur, nous sommes à 53 bits d'entropie.
Pour atteindre 80, nous pouvons changer nos règles pour correspondre à l'exemple 1, qui est conforme aux préconisations :
Les changements pour nous seraient donc les suivants :
Une alternative (exemple 2 de la CNIL) serait de passer à 14 caractères minimum sans caractère spécial obligatoire :
Enfin, une autre possibilité proposée par la CNIL serait de rester avec une entropie minimum de 50, mais d'ajouter des mécanismes de restriction supplémentaires :
Nous avons déjà le mécanisme 4 en place grâce à Devise Lockable :
Handles blocking a user access after a certain number of attempts (10 tentatives dans notre cas). Lockable accepts two different strategies to unlock a user after it’s blocked: email and time. The former will send an email to the user when the lock happens, containing a link to unlock its account. The second will unlock the user automatically after some configured time (désactivé dans notre cas, c'est forcément par email).
Nous pourrions facilement mettre en oeuvre le mécanisme 2 grâce à du rate limiting.
Donc au bilan, notre situation actuelle (règles qui donnent une entropie de 53 et mécanisme de blocage) est conforme aux recommandations de la CNIL mais pourrait être améliorée, soit par :
L'ANSSI a publié un guide très exhaustif sur l'authentification. J'ai retenu que :
Je n'ai pas étudié le guide en détail : j'ai l'impression que les recommandations convergent avec celles de la CNIL et j'arrive globalement aux mêmes conclusions. Est-ce que tu penses qu'il faut aller plus loin dans l'étude de ce guide et faire des propositions d'amélioration de l'application, au delà des mots de passe, en ce qui concerne l'authentification ?
@sebastiencarceles grand merci pour cette analyse claire et complète. Je propose cela aux responsables fonctionnels et reviens vers toi pour la mise en place.
Je pencherai plus sur le scénario 1 :
Si l'on modifie cette règle, qu'est ce qu'il se passe pour les utilisateurs déjà authentifiés avec 8 caractères ?
Si l'on modifie cette règle, qu'est ce qu'il se passe pour les utilisateurs déjà authentifiés avec 8 caractères ?
A priori rien, c'est du contrôle en front seulement au moment de l'inscription.
En revanche, si on veut les obliger à renouveler leurs mots de passe, c'est possible :
À ce moment, iels seront soumis·es aux nouvelles règles.
Merci pour ce complément Sébastien. Il ne me semble pas nécessaire de les obliger, s'ils ne sont pas bloqués c'est OK pour moi. Juste s'ils font "MDP oublié", ils devront configurer un mdp avec les nouvelles exigences ?
Juste s'ils font "MDP oublié", ils devront configurer un mdp avec les nouvelles exigences ?
Oui c'est tout à fait ça @Queenze972
OK Merci Sébastien. Je ferme ce ticket d'analyse et je vais recréer un nouveau ticket pour mentionner les modifications à effectuer.
Comme discuté par mail (échanges du 8/3) , nous aimerions avoir un audit/une analyse sur la robustesse des mots de passes sur l'application.
Merci.