• # Il y a un XKCD pour ça

    Posté par . En réponse au journal Résolution de l'année 2021 : changez votre mot de passe !. Évalué à 4.

    Ce à quoi j'ai répondu qu'il n'y a pas de solution « facile à retenir pour chacun ».

    Pour une fois, je suis surpris que XKCD n'ait pas immédiatement refait surface.

    Password Strength

    Comme indiqué au pied de l'image : « En 20 ans d'efforts, nous avons réussi à former tout le monde à utiliser des mots de passe qui sont difficiles à retenir pour les humains mais faciles à devenir par les ordinateurs ». La généralisation des passphrases serait peut-être le premier conseil à donner avant d'essayer de trouver des solutions plus techniques.

    Tenir un cahier papier avec des mots de passe n'est pas une si mauvaise pratique : il faut mieux faire ça que mettre un mot de passe simple partout.
    Tenir un fichier avec des mots de passes dedans est une très mauvaise pratique. À Éviter à tout prix. (Sauf si c'est un logiciel recommandé par quelqu'un de recommandable.)

    Un carnet de mot de passe papier « moins mauvaise » pratique qu'un fichier ? La seule raison que je peux trouver à cela est une intrusion à distance dans la machine concernée, sinon c'est idiot : c'est généralement là qu'on va y mettre le mot de passe qui permet justement d'ouvrir une session sur son poste. En plus, ça peut se faire « emprunter » ou perdre par accident, même si l'ordinateur est éteint.

    Des mots de passes sauvegardés. Comme ça on n'a plus à s'en souvenir. Pour les sécuriser, il faut un « mot de passe maître ». Celui là on le choisi fort et mémorisable et c'est le seul qu'on retient. Par exemple le mot de passe « turlututu: ChapeauPointu ! » est plus fort et plus mémorisable que le mot de passe « 53CR3T », et beaucoup plus fort que « maga2020 ».

    Voilà, c'est en substance ce qui est décrit au dessus et il n'y a pas de raison d'utiliser d'autres formats... sauf si on nous les impose !

    Un mot de passe compliqué partout. Généré automatiquement. Firefox propose désormais la génération des mots de passe, il faut utiliser ça.

    Ça par contre, selon moi, c'est vraiment la « fausse bonne idée » par excellence. Quand on a un gestionnaire de mot de passe, c'est bien mais ça nous oblige à le trimballer et/ou le synchroniser partout et se souvenir où il y en a des copies. Sinon, on ne peut plus se loguer ailleurs que depuis le poste concerné et à ce compte-là, autant utiliser des certificats SSL (si c'est possible). Par contre, des mots de passe « trop » compliqués partout, c'est des coups à les oublier et à se les faire renvoyer par mail, ce qui pour le coup fait vraiment chuter la sécurité à un niveau très faible (même si c'est un simple lien de réinitialisation).

    Ensuite, trop de sécurité tue la sécurité : faire changer son mot de passe à une personne tous les mois, par exemple, c'est prendre le risque qu'elle utilise « toto1, toto2, toto3, toto4... » en incrémentant chaque mois. Et en dehors de ça, la sécurité a un coût. Il vaut mieux avoir des choses officiellement publiques quand elles peuvent l'être et ne garder un œil que sur ce qui est réellement important plutôt qu'essayer de tout fortifier, au risque de ne plus rien avoir de fiable.

    Personnellement, je me suis construit une petite image disque à coup de dd, je l'ai montée et je l'ai formatée comme partition chiffrée avec une grosse passphrase. Et depuis, j'utilise un petit script pour la monter automatiquement avec cryptsetup (LUKS). Je mets ce qui est confidentiel dedans sans être dépendant d'un logiciel particulier.

    Un truc qui serait sympa (si ça n'existe pas déjà) serait de publier une RFC qui définisse une norme réseau qui indique une manière simple de générer un hash d'une chaîne à partir du contenu d'un champ et du nom de domaine du serveur ou du site auquel on est connecté, ainsi qu'un attribut à rajouter à la balise HTML du champ pour indiquer que l'on souhaite prendre en charge ce format (qui pourrait même être automatiquement activé pour les champs de type="password"). Comme ça, le hash serait forcément différent d'un site à l'autre.

    Du coup, c'est le navigateur client qui prendrait cette tâche à sa charge, et plus le bon vouloir du site distant : le navigateur afficherait une icône discrète à côté du champ pour indiquer que la fonctionnalité est active, et enverrait directement le hash calculé plutôt que le mot de passe en clair.

    Ce ne serait toujours pas une raison pour utiliser un même mot de passe partout car si quelqu'un le devine, la fonctionnalité ci-dessus deviendrait inutile, mais ça limiterait déjà beaucoup ce type d'attaque sans que l'utilisateur ait à faire le moindre effort.