- Marquer comme nouveau
- Ajouter aux favoris
- S'abonner à ce post
- S'abonner au fil RSS de ce post
- Imprimer
- Signaler
CNIL et mots de passe
Bonjour à tous,
La CNIL a mis a jour (17/10/22) ses recommandations pour les mots de passe.
https://www.cnil.fr/fr/mots-de-passe-une-nouvelle-recommandation-pour-maitriser-sa-securite
C'est assez technique.
On retiendra que concernant la longueur et composition d'un mot de passe, ce qui compte c'est de réduire la denavibilité...et atteindre une entropie élevée (>80) (l'entropie c'est approximativement le nb de combinaisons possible).
Il est proposé des combinaisons équivalentes :
- 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 ;
- au minimum 14 caractères comprenant des majuscules, des minuscules et des chiffres, sans caractère spécial obligatoire ;
- une phrase de passe doit être utilisée et elle doit être composée d’au minimum 7 mots (les espaces entre mots ne nuisent pas à la sécurité, au contraire il augmenterait l'entropie)
Bien ne jamais stocker les mots de passe en clair... d'où préconisation de l'utilisation d'un gestionnaire de mots de passe.
Nouveauté, il est recommandé de ne pas imposer un renouvellement périodique des mots de passe, car les utilisateurs effectuent généralement des modifications mineures qui ruinent la protection en augmentant la devinabilité.
Il existe des listes noire de mots de passe à forte devinabilité pour cause de faible entropie et surtout fréquence d'utilisation
Par exemple celle du projet Richelieu
https://github.com/tarraschk/richelieu/blame/master/french_passwords_top20000.txt
Enfin pour les geeks, il est proposé une procédure java pour calculer l'entropie d'un mot de passe
function password_checker(password_field_id, change_callback) {
var passwd_field = document.getElementById(password_field_id);
['change', 'keyup', 'keydown'].forEach(function(evt) {
passwd_field.addEventListener(evt, function() {
var passwd = passwd_field.value;
var nb_chars = passwd.length;
var alphabet_len = 0;
if (/[a-z]/.test(passwd)) {
alphabet_len += 26;
}
if (/[A-Z]/.test(passwd)) {
alphabet_len += 26;
}
if (/\d/.test(passwd)) {
alphabet_len += 10;
}
if (/[^A-Za-z0-9]/.test(passwd)) {
// À modifier en fonction du nombre de caractères spéciaux autorisés.
// S'il n'y a pas de limitation et que la population ciblée utilise très
// majoritairement un clavier AZERTY, conserver la valeur 40.
alphabet_len += 40;
}
var entropy = Math.floor(Math.log2(Math.pow(alphabet_len, nb_chars)));
change_callback(entropy ? entropy : 0);
});
});
change_callback(0);
}