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 :
- les recommandations de la CNIL concernant les mots de passe
- zxcvbn : un outil pour analyser la « force » d'un mot de passe
- Have I Been Pwned : un outil pour vérifier si son mot de passe ou son adresse email ont déjà été exposés lors d'une fuite de données
- les sites de KeePass et KeePassXC : les deux outils sont très similaires mais j'ai une préférence pour le dernier qui est plus sympa à l'usage
- un article qui explique plus en détails comment un site Internet stocke ses mots de passe
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
Enregistrer un commentaire