Les mots de passe pour les nuls

Source : Flickr

Je vais vous parler dans cet article d'un sujet a priori anodin mais au combien primordial : les mots de passe. Pas celui que vous aviez choisi à dix ans pour essayer d'empêcher votre petite sœur de rentrer dans votre chambre, mais ceux que vous utilisez au quotidien pour vous connecter sur LinkedIn, le site de votre banque ou votre session sur votre PC à la maison.

Peut-être êtes-vous déjà en train de vous dire « T'es bien gentil Antoine, mais on les connait déjà tes conseils. On sait que faut pas utiliser sa date de naissance ou le nom de son chien. On t'a pas attendu. » C'est bien, vous avez déjà des notions. Mais on ne va pas s'arrêter là.

Pourquoi c'est important

Un mot de passe, c'est ce qui vous permet de vous authentifier pour vous connecter à un site Internet ou accéder à un service. Une personne qui parvient à se faire passer pour vous sur ces services peut vous causer des torts pouvant aller du simple désagrément jusqu'à l'extorsion ou l'usurpation d'identité.

L'intérêt de protéger son compte Facebook, c'est pas seulement d'empêcher vos potes de poster des statuts de mauvais goût en soirée ou d'aller draguer vos contacts. C'est aussi empêcher un individu malveillant de se faire passer pour vous auprès de vos amis et d'abuser de leur confiance.

Une personne qui accède à votre boîte mail personnelle n'aura que faire de votre correspondance (qui, si vous êtes comme moi, doit se résumer à des newsletters de sites sur lesquels vous n'allez jamais). Elle pourra surtout réinitialiser les accès et mots de passe de tous les sites auxquels vous êtes inscrits, y compris votre boîte mail elle-même.

Pour ce qui est du site de votre banque, je ne pense pas qu'ils soient nécessaire de vous faire un dessin.

Que faut-il faire ?

Ces conseils, vous les connaissez. On a déjà dû vous les répéter maintes et maintes fois : il faut utiliser des mots de passe complexes et uniques. Tous les mots sont importants ici.

Complexes, ça veut dire 12 caractères minimum, avec des lettres majuscules et minuscules, des nombres et des caractères spéciaux. Par ailleurs, le tout doit être le plus aléatoire possible, sans logique apparente. En effet, les individus malveillants ne se contentent plus des attaques par force brute (c'est-à-dire en essayant toutes les combinaisons de caractères possibles), mais font également des attaques dites « par dictionnaire », en s'appuyant sur une liste de mots prédéfinis.

Uniques, ça veut dire que vous devez pas utiliser le même mot de passe sur tous les sites que vous utilisez. En effet, même si vous êtes très fier de votre mot de passe tordu de 30 caractères, vous ne devez l'utiliser que sur un seul service. Pourquoi ? Si un jour vous vous inscrivez sur un site un peu douteux ou avec une sécurité laissant à désirer, et que votre mot de passe se retrouve dans la nature avec votre adresse email (que vous aviez également utilisé pour vous inscrire sur le site), cette combinaison va instantanément être utilisée pour essayer de s'authentifier sur Facebook, Google, Amazon, etc.

« Plus facile à dire qu'à faire », me direz-vous. J'en conviens. Alors qu'il n'est pas absurde aujourd'hui d'être inscrit sur une centaine de sites Internet différents, exiger des gens qu'ils retiennent autant de mots de passe différents est absurde. Une fausse solution à ce problème, c'est d'utiliser des mots de passe avec des racines communes. Par exemple :
  • c0mpl3X+Pa$$word_Google
  • c0mpl3X+Pa$$word_Facebook
  • c0mpl3X+Pa$$word_SocieteGenerale
En effet, une fois qu'on en a trouvé un, on les a tous trouvé.

Du coup, que faire ? La solution recommandée par les pros pour bien gérer ses mots de passe, c'est d'utiliser un gestionnaire de mots de passe. Sémantiquement, ça ne paraît pas absurde. De quoi s'agit-il ?

Un gestionnaire de mots de passe, c'est un outil qui va servir à stocker ses mots de passe de façon sécurisée. Ainsi, on délègue la charge de leur mémorisation. En contrepartie, il ne faut plus mémoriser qu'un seul mot de passe, qui va être le mot de passe maître permettant d'accéder à sa base personnelle de mots de passe. Ces outils vont par ailleurs fournir pour la plupart des fonctionnalités avancées pour générer des mots de passe complexes, pour s'intégrer à votre navigateur sous forme d'extension ou pour se synchroniser sur plusieurs appareils.

Parmi les outils existants, quatre essentiellement se détachent et concentrent l'essentiel des utilisateurs : Dashlane, 1Password, LastPass et KeePass. Ils ont chacun leurs avantages et leurs inconvénients, je vous renvoie vers cet article de NextImpact qui a réalisé un comparatif complet.

À titre personnel, j'utilise KeePassXC, un logiciel dérivé de KeePass. Ce n'est ni le plus simple d'utilisation, ni le plus user friendly, mais il revêt plusieurs avantages décisifs par rapport à la concurrence :
  • Il est entièrement gratuit.
  • Il est open source, c'est-à-dire que son code source est librement accessible pour analyse. De ce fait, il est le seul à faire l'objet d'une recommandation de l'ANSSI.
  • La base de mots de passe n'est pas stockée sur les serveurs d'un site Internet tiers, ce qui permet de se passer d'un intermédiaire.
En contrepartie, il n'intègre pas nativement de mécanisme pour synchroniser ses mots de passe avec un autre PC ou son téléphone. Des applications pour smartphones existent néanmoins, comme Keepass2Android. C'est l'avantage du logiciel libre : s'il manque une fonctionnalité, n'importe qui est libre de l'implémenter.

KeePass fonctionne à partir d'un fichier qui sert de base de mots de passe. Ce fichier est chiffré et se déverrouille grâce à un mot de passe principal. Ceci fait, on se retrouve face à un interface de ce type :


Les mots de passe sont rangés par thèmes. On peut directement copier depuis cette interface le nom d'utilisateur ou le mot de passe sans même avoir à afficher ce dernier à l'écran. Ces données vont rester quelques secondes dans le presse-papier du PC avant de s'effacer, tout juste le temps de les copier où il faut.

Une force de KeePass est son mécanisme de génération de mots de passe. Supposons que je veuille m'inscrire sur un site quelconque. KeePass va pouvoir me générer un mot de passe complètement aléatoire, de la longueur que je veux avec les caractères que je veux. Par exemple, dans la capture ci-dessous, KeePass me propose le mot de passe suivant de soixante caractères :

þ0iXä:¥Bêv;3½ÝcßÊs"Å6-@¾,°èÌ>мdkqj3¡ÕøÐ6íßSÁp=ö¨\R#úö}|Ì[Gè


Non seulement je serais bien incapable de m'en souvenir, mais en plus ce serait un vrai tannée à taper sur n'importe quel clavier. Mais peu importe : d'une part je n'ai pas besoin de m'en souvenir, mais d'autre part je n'ai même pas besoin de savoir le taper. Copier, coller. C'est tout.

Notez par ailleurs que là j'ai affiché le mot de passe sur l'interface pour vous montrer, mais dans les faits je peux tout faire en masqué, de sorte qu'à aucun moment je ne vois même mon mot de passe. C'est là toute la beauté de la chose.

Voilà pour la présentation de KeePass. Comme je l'ai déjà dit plus haut, d'autres outils existent, chacun avec leurs caractéristiques. Je vous laisse choisir celui qui vous convient le mieux, selon vos besoins.

Comment choisir son mot de passe maître ?

Avoir un gestionnaire de mots de passe ne dispense pas complètement de devoir se souvenir de mots de passe. Il faut toujours se souvenir du mots de passe maître de sa base, mais également il est des contextes où l'utilisation d'un gestionnaire n'est pas possible. Par exemple, pour se connecter sur sa session sur son PC, on peut difficilement copier-coller quelque chose alors que l'ordinateur n'est même pas complètement opérationnel.

Au nombre des techniques existantes, on peut citer Diceware, qui consiste en jeter des dés pour, à partir des résultats, retenir des mots dans des listes préétablies. Le procédé est détaillé ici.

Par ailleurs, les méthodes ne manquent pas, on peut par exemple partir d'une phrase quelconque dont on ne retient que les initiales. On peut également faire des substitutions type « leet speak », en remplaçant A par @, E par &, etc. Pour parachever le tout, on rajoute des signes de ponctuations aléatoires histoire de donner du relief au tout. Je fais en général un mélange de tout cela, ce qui donne des mots de passe du genre :
  • CdG~:_JeV0u$@iCompr|s_!_(Alg3r,_1958).
  • ÇaFai7+2+ansQùeJ'Niqu3£eGam&_WeshAlor$
Enfin bref, vous avez l'idée. L'important, c'est que vous vous trouviez une logique interne dans votre mot de passe, du sorte qu'il devienne un automatisme au moment de le taper. Mon conseil : au moment de sa création, entraînez-vous à le saisir sur un éditeur de texte jusqu'à ce qu'il « s'inscrive dans vos doigts », afin que sa transcription deviennent plus une affaire de réflexe mécanique que d'exercice intellectuel.

Source : xkcd

Les mauvaises pratiques des sites

Jusque là j'ai surtout parlé de vous, les utilisateurs. Je vous ai mis la pression pour que vous adoptiez les bonnes pratiques, pour que vous suiviez les recommandations des experts. Mais vous n'êtes pas les seuls à avoir des responsabilités dans cette histoire. Les sites Internet également doivent prendre leur part dans la construction de cet édifice fragile qu'est la sécurité informatique.

En effet, il arrive parfois que les sites, en imposant des limitations absurdes dans le choix des mots de passe ou à cause d'une interface mal pensée, découragent leurs utilisateurs de prendre des bonnes habitudes. Souvent, de bonnes intentions sont derrières ces choix, mais la plupart du temps ces décisions s'avèrent gravement contre-productives.

Je vais ici lister quelques absurdités qu'on peut trouver sur des sites Internet, exemples concrets à l'appui, en expliquant à chaque fois pourquoi ce n'est pas très intelligent. Si un jour vous êtes amené à concevoir un site Internet, gardez ces principes en tête.

Les contraintes dans le choix du mot de passe

Je l'ai dit plus haut, un bon mot de passe doit contenir au minimum 12 caractères avec des lettres, des chiffres et des caractères spéciaux. Il n'est donc pas absurde d'imposer une limite basse aux utilisateurs lorsqu'ils choisissent leur mot de passe. Quant à la limite haute, elle doit être suffisamment élevé pour que tout le monde y trouve son compte.

Pour ce premier exemple, on va faire un tour sur le site d'Air France, qui est un cas d'école en la matière :


Ici, non seulement le mot de passe ne peut pas faire plus de 12 caractères, ce qui est absurdement bas, mais en plus l'utilisateur est limité dans les caractères qu'il peut utiliser. De pareilles contraintes encouragent les utilisateurs à définir des mots de passe très faibles. Tout ceci mâche par ailleurs le travail d'un potentiel attaquant : il sait que tous les mots de passe font entre 8 et 12 caractères (ce qui est une fourchette très étroite) et sait également la liste exhaustive des caractères utilisés, qui est courte elle aussi : 26 lettres majuscules, 26 lettres minuscules, 10 chiffres et 10 caractères spéciaux.

Air France a néanmoins la décence d'être explicite dans les critères qu'il impose (aussi nuls soient-ils). Certains sites limitent par exemple sans prévenir la taille des données pouvant être entrées dans le champ, tronquant ainsi les mots de passe lors d'un copier-coller. C'est hautement frustrant.

Les obstacles pour taper son mot de passe

Pour faciliter l'utilisation d'un gestionnaire du type KeePass, il est important de permettre à l'utilisateur de copier-coller son mot de passe lorsqu'il doit s'authentifier. Cela paraît évident, mais de nombreux sites empêche de copier-coller du texte dans le champ « Mot de passe » ou « Confirmation de mot de passe ». C'est le cas par exemple de celui d'Air France sur la page d'inscription. Là aussi, l'utilisateur ne peut pas copier directement un mot de passe aléatoire généré par son gestionnaire.

Un autre exemple de mauvaise pratique est le clavier visuel. Non seulement l'utilisateur ne peut pas coller son mot de passe, mais en plus il ne peut pas non plus le taper : il doit utiliser un clavier affiché à l'écran et cliquer sur les caractères. C'est insupportable.

Corolaire de cette situation, les caractères sont forcément en nombre très restreint. Ce qui donne des horreurs de ce type, qu'on peut voit voir par exemple sur le site de Boursorama Banque :


Eh oui, les mots de passe Boursorama Banque ne contiennent que des chiffres. Pour rentrer le vôtre, vous devez cliquer sur les touches une par une, impossible de faire copier-coller. La logique derrière cette interface est de se prémunir contre un attaquant potentiel qui enregistrerait les touches sur lesquels vous appuyez. Ça existe, certes, ça s'appelle un keylogger. Mais si une personne a effectivement réussi à installer un pareil dispositif sur votre PC, rien ne l'empêche d'en plus faire des captures d'écran et d'enregistrer la position de votre souris à chaque fois que vous cliquez quelque part. Par ailleurs, on peut complètement se prémunir contre ce genre d'attaque en utilisant, au hasard, un gestionnaire de mot de passe.

Pour en ajouter une couche sur Boursorama, je vous montre juste les contraintes qui vous sont imposés au moment de choisir votre mot de passe. Parce que uniquement des chiffres c'était pas encore assez pourri, il fallait rajouter des règles en plus.


 Je ne ferai aucun commentaire. Les aventureux pourront s'amuser à compter combien ils restent de mots de passe remplissant tous les critères de Boursorama.

Le stockage des mots de passe

Cet aspect n'est pas visible de l'usager mais concerne la façon dont le site Internet stocke les mots de passe de ses utilisateurs. Il est un peu à part car il impacte la sécurité d'une façon différente des autres. Pour vous l'exposer en détail, je vais d'abord devoir vous expliquer comment fonctionne un site Internet correctement conçu.

Quand vous vous inscrivez sur un site, vous fournissez un identifiant et un mot de passe. Pour pouvoir vous authentifier à l'avenir, le site va devoir stocker ces informations dans une base de données. Le soucis, c'est que si vous stockez directement ces informations de façon brute, votre base de données va devenir très sensible, du fait de la criticité de son contenu. Si elle venait à fuiter dans la nature, à cause d'une attaque extérieure ou d'un stagiaire malveillant, vos utilisateurs se trouveraient directement exposés.

Pour pallier à ce soucis, les sites ne stockent pas directement le mot de passe mais une information dérivée du mot de passe : son hash. Le hash, c'est le résultat qu'on obtient en passant le mot de passe dans une fonction de hachage. Une fonction de hachage, c'est une fonction qui, à une entrée de taille quelconque (comme un mot de passe), associe un nombre de taille fixe, que l'on appelle hash ou empreinte. La particularité d'une telle fonction, c'est qu'il soit impossible de faire l'opération inverse, c'est-à-dire de retrouver le mot de passe d'origine à partir de son hash.

Ainsi, quand vous vous connectez sur un site Internet, le site va commencer par calculer le hash de ce que vous lui présenter, et va le comparer avec ce qu'elle a dans sa base. Si ça correspond, c'est que c'est le bon mot de passe. De cette façon, la base de données des utilisateurs est un peu moins critique, et limite les risques encourus en cas de fuite. Même si elle reste très sensible.

Si je vous parle de tout ça, c'est parce que tous les sites ne sont pas vertueux dans la gestion de leurs mots de passe. Ce que je vous ai présenté est le bon exemple de ce qu'il faut faire, et malheureusement tout le monde ne fait pas ainsi. Il existe encore des sites qui stockent les mots de passe de leurs utilisateurs en clair, en dépit des règles de sécurité élémentaires et des risques pénaux encourus.

Pour reconnaître les mauvais élèves, un signe qui ne trompent pas : ces sites sont capables de vous renvoyer votre mot de passe par mail. S'ils peuvent le faire, c'est qu'ils stockent vos identifiants en clair dans leur base de données. En l'espèce, j'ai encore un exemple concret à vous présenter : le réseau d'agences immobilières Citya.

Tous les mois, Citya envoie à ses locataires un mail pour leur rappeler de payer leur loyer. « Charmante attention », me direz-vous. Certes, voici comment est constituée la missive :


Citya rappelle à ses usagers dans le corps du mail le mot de passe qu'il a défini. Comme c'est aimable ! Pour couronner l'ensemble, les contraintes qu'il impose à ses utilisateurs sont parfaitement indignes : 10 caractères maximum, et uniquement des chiffres et des lettres. Et comme ce n'est pas marqué explicitement, on va de désillusion en désillusion. À chaque essai, c'est la surprise, et on perd un peu plus foi en l'humanité.



Pour finir sur Citya, une dernière image si jamais vous n'étiez pas encore convaincus que c'étaient des branquignoles.


À croire que j'ai un compte à régler avec eux. Bref, concluons.

Le bilan


Que retenir de tout cela ? Plusieurs recommandations :
  • utilisez des mots de passe complexes et propres à chaque service
  • pour vous aider dans cette tâche, des gestionnaires de mots de passe existent
  • si un jour vous devez concevoir un site Internet, pensez à l'expérience de vos utilisateurs qui utilisent un gestionnaire de mots de passe
  • ne stockez pas les mots de passe en clair
  • ne louez pas chez Citya
Par ailleurs, quelques références et un peu de lecture :
Ce sera tout pour cet article ma foi déjà bien fourni. Si vous êtes parvenu jusqu'ici, félicitations, je suis fier de vous. Je suis content d'avoir réussi à vous tenir en haleine aussi longtemps avec un sujet aussi bateau et espère vous revoir prochainement lors d'un prochain article.

Bon vent !

Commentaires

Articles les plus consultés