Pourquoi les mots de passe ne suffisent plus
Les sites se font pirater et voler les mots de passe stockés. Seule solution, la double authentification.
- Internet café à Shanghaï. REUTERS / Nir Elias -
Il y a deux ans, j’ai écrit un article expliquant comment créer facilement des mots de passe invincibles afin de protéger vos comptes sensibles. En résumé, je suggérai de trouver une phrase facile à mémoriser puis d’en faire un mot de passe en utilisant la première lettre de chaque mot. Par exemple, «J’ai 44 ans et j’adore Justin Bieber» donne «J44aejJB», un mot de passe très difficile à deviner mais simple à mémoriser pour le fan de Justin que vous semblez être. Slate a republié plusieurs fois cet article car il se produit régulièrement des incidents qui viennent rappeler l’importance de cette question. Ainsi, l’année dernière, la base de données de Gawker a été piratée, et des milliers de mots de passe d’auteurs de commentaires se sont retrouvés en accès libre sur Internet. Au cours des dernières semaines, deux grands sites de rencontres, eHarmony et Plenty of Fish, ont subi le même sort, et les mots de passe volés sont désormais vendus sur le marché noir virtuel.
Ce type de problème est amené à se multiplier. Il y aura toujours des sites incapables de protéger correctement les données personnelles de leurs utilisateurs et quand ces sites seront piratés, vous devrez changer le mot de passe de tous vos autres comptes en lignes. Bien sûr, il est possible de réduire les risques auxquels vous êtes exposé, par exemple en utilisant un mot de passe différent pour chaque site. Si un pirate vole vos clefs pour Gawker, il n’aura pas celles de votre coffre à la banque. Vous pouvez ensuite gérer votre trousseau avec un logiciel comme 1Password, qui crée et stocke des mots de passe complexes correspondants à chacun de vos comptes.
Mais ces mesures ne permettent pas de dépasser le point faible inhérent à l’utilisation des mots de passe qui protègent vos e-mails, votre compte en banque et vos réseaux sociaux sur le web. En effet, il suffit de pirater la base de données du site ou de réussir une seule attaque de phishing pour mettre la main sur votre mot de passe. Ceci fait, on peut vous causer pas mal d’ennuis. C’est inacceptable. Plus nous stockons d’informations en ligne, plus nous comptons sur une méthode de protection qui comporte trop de failles.
Ce qu’il nous faudrait, c’est une deuxième clef, une donnée supplémentaire sans laquelle un voleur ne pourrait pas entrer. Pas quelque chose que l’on mémorise, mais plutôt que l’on garde sur soi, vos empruntes digitales, votre scan rétinien, un porte-clefs ou un petit circuit intégré dans votre téléphone portable. Pour se connecter, il faudrait, en plus du nom et du mot de passe, présenter également cette donnée.
Les spécialistes de la sécurité désignent cette procédure par le terme «de double authentification», car elle exige la présence simultanée de deux informations de nature différente, quelque chose que vous savez et quelque chose que vous possédez. La double authentification n’a rien de nouveau, les grandes entreprises et les organismes d’Etat les utilisent depuis longtemps. Le sésame supplémentaire consiste souvent en une petite carte à radiofréquence ou tout autre bidule électronique qu’il faut relier à l’ordinateur avant de se connecter au site concerné. Mais ces systèmes sont chers et représentent un surcroît de travail pour le service informatique (quelqu’un doit savoir où se trouvent tous ces porte-clefs). De ce fait, la double authentification ne s’est jamais étendue aux sites d’usage courant comme le webmail ou la consultation bancaire en ligne.
Néanmoins, les choses pourraient évoluer rapidement. La semaine dernière, Google a lancé la double authentification pour les comptes utilisateurs, qui donnent accès à tous les services Google, dont Gmail. J’utilise le système depuis le lancement et je pense que c’est un premier pas encourageant vers une meilleure protection de nos données les plus personnelles. Le système est encore optionnel et vous pouvez le configurer sur la page de gestion de compte. Si vous l’activez, vous vous connectez à Gmail à l’aide de votre nom d’utilisateur et de votre mot de passe, puis une nouvelle page vous demande votre «code de vérification» à six chiffres. Ce code est généré par l’application Google Authenticator que vous devez télécharger sur votre téléphone Android, votre iPhone ou votre BlackBerry. Si vous n’avez pas un de ces appareils, vous pouvez recevoir vos codes de vérification par SMS. L’application génère un nouveau code toutes les 30 secondes. Cela signifie que vous devez avoir votre téléphone avec vous, et allumé, à chaque fois que vous voulez accéder à vos e-mails. Contraignant? Un peu plus, certes, mais l’avantage, c’est que si quelqu’un vole un des deux éléments d’authentification, votre mot de passe ou votre téléphone, cela ne lui suffira pas pour se connecter.
Le système de Google n’est pas parfait. Tout d’abord, il est assez compliqué à utiliser avec d’autres appareils à partir desquels vous pouvez consulter votre messagerie. Si vous synchronisez Gmail avec Outlook ou avec votre iPhone, par exemple, vous devrez entrer un nouveau mot de passe généré par le programme dans chacun des appareils concernés pour qu’ils puissent rester connectés à votre compte (vous ne devrez le faire qu’une fois, mais c’est tout de même fatiguant si vous utilisez beaucoup de terminaux différents). Les choses se compliquent si vous perdez votre téléphone. Quand vous activez la double authentification, Google vous demande un numéro de téléphone de secours et vous fournit aussi des codes de vérification de secours qu’il faut garder dans un endroit sûr (c’est-à-dire, pas dans votre téléphone...) D’après un porte-parole de Google à qui j’ai parlé, quand vous perdez votre téléphone principal, Google envoie un nouveau code de vérification à votre téléphone de secours (par SMS ou messagerie vocale). Si vous n’avez accès à aucun de vos deux téléphones, vous pourrez utiliser un des codes de secours que vous avez conservés bien cachés. Et si vous perdez votre téléphone au cours d’un voyage en Europe et que votre téléphone et vos codes de secours sont restés chez vous? Vous êtes coincé.
Pour la plupart des gens, le principal inconvénient de la double authentification est la multiplication des gestes et la perte de temps qu’elle induit. Pourtant, entrer un code de vérification prend quelques secondes, une dizaine au maximum. Vous avez également la possibilité de configurer votre compte pour que Google demande un code seulement tous les 30 jours pour une machine donnée. Dans ce cas, si votre mot de passe est volé, il ne fonctionnera qu’un temps limité sur cette machine, ce qui est mieux que rien (attention, si vous voulez vous connecter depuis une autre machine pendant ces 30 jours, il vous faut toujours un code de vérification).
Au-delà de ces détails techniques, et comme je l’ai expliqué dans mon premier papier sur ce sujet, 1) la plupart des gens utilisent le même mot de passe pour tous les sites auxquels ils se connectent et 2) ils n’en changent jamais. Je suis quasiment sûr que ces personnes n’ont aucune envie de s’embêter avec des mesures de sécurité supplémentaires. Dans ce sens, les utilisateurs les plus enclins à adopter la double vérification sont ceux qui se préoccupent déjà des questions de sécurité, c’est-à-dire les personnes dont les données sont déjà le mieux protégées.
Voilà pourquoi j’espère que Google, Apple, Facebook, Twitter et les grandes banques vont se mettre d’accord pour développer de nouveaux systèmes de double vérification qui soient très simples d’utilisation. Plutôt qu’un code, mon système idéal utiliserait des informations biométriques (empruntes, rétine), ou contenues dans votre carte de paiement. De chez vous, vous pourriez vous connecter à votre banque à partir de votre ordinateur en tapant votre mot de passe, puis en appliquant votre pouce sur l’écran de votre téléphone portable. Le téléphone vous identifierait et enverrait un signal de validation à l’ordinateur, qui serait ainsi autorisé à ouvrir la page concernée. Ou alors, vous pourriez passer votre carte de paiement dans le lecteur de carte de votre téléphone, ou tout simplement à proximité de celui-ci, afin qu’elle soit reconnue par le circuit de «communication en champ proche» installé dans l’appareil.
C’est de la science-fiction? Pas vraiment. Les lecteurs d’emprunte digitale ne coûtent plus grand-chose et on peut les installer facilement sur les téléphones (le nouvel Atrix de Motorola en est équipé). Les caméras intégrées pourraient également servir à identifier votre globe oculaire ou votre visage, ou le micro pourrait reconnaître votre voix. Il existe déjà des lecteurs de carte pour iPhone et une rumeur persistante suggère qu’Apple va incorporer un circuit de communication en champ proche à l’iPhone, afin qu’on puisse utiliser son téléphone pour payer (le Nexus S de Google en est déjà équipé).
On l’aura compris, les obstacles à la généralisation de la double authentification ne sont pas d’ordre technique, mais plutôt culturel et commercial. Beaucoup de gens n’ont aucune envie d’être obligés de s’identifier en deux temps pour se connecter, et les fabricants vont devoir collaborer pour créer un nouveau standard facilement déployable sur un large éventail d’appareils et de services. Malgré tout, je suis certain que ces difficultés seront surmontées et que la double authentification deviendra la norme. Tous les jours, on constate que les mots de passe ne suffisent plus pour nous protéger des cyber-criminels. Pourquoi continuer à se cacher une telle évidence?
Farhad Manjoo
Traduit par Sylvestre Meininger
Photo: Internet café à Shanghaï Nir Elias / Reuters
Mis à jour le 24/02/2011 à 10h14















































Je ne suis pas un expert en sécurité, mais il me semble que si tous les sites stockaient les mots de passe de leurs usagers via un hashing SHA-1 (par exemple) lors de l'inscription, et comparaient ensuite ce dernier avec le hashing du mot de passe tapé par l'utilisateur lors de sa connexion, le vol de ces données deviendrait INUTILE au hacker.
Encore mieux, le formulaire de login "hash" le mot de passe en SHA-1 via Javascript avant de l'envoyer au serveur. Ainsi, même sur une connexion non-SSL, l'info transite sans risque !
Avec cela et des mots de passes forts (mémorisables via la technique citée ou générés via 1Password), il n'y a à priori pas besoin de double authentification.
Mais bon, le jour où le lambda arrêtera de mettre le prénom de sa chérie en password n'étant pas prêt d'arriver... ;)
Affirmer que les systèmes stockent des mots de passe en clair est faux. Seuls les systèmes conçus par des incompétents je-m-en-foutistes stockent des passwords en clair.
C'est une abération, un mépris, un non-conformité flagrante par rapport à l'ensemble des standards et recommandations de sécurité et de sureté.
On doit normalement ne stocker que le hash du password, c'est à dire utiliser un algorithme non-réversible: MD5, SHA1 ou le certifié SHA-2 512bit. Lors de l'authentification, on recoit le password, on génère le hash (en concatenant typiquement l'id et le password), et on compare les hash: le hash du password stocké avec le hash du password proposé. Ils doivent être identiques pour donner l'accès. Le système ne peux jamais redonner le password a partir du hash, sauf par des techniques de brute force(tester tous les cas) avec des algo et des passwords faibles. Le mot de passe n'est jamais stocké en clair, seul le hash est stocké.
Ceci est désolant car cela a été spécifié et diffusé publiquement en 1985 par le DOD (Department Of Defense) dans le standard militaire: CSC-STD-002-85 [Green Book] DoD Password Management Guidelines
Les responsables ne respectant pas des règles de sécurité datant de plus de 25 ans devraient à rendre des comptes.
Dramatique que les gens ne comprennent pas que la sécurité informatique n'a rien d'une nouvelle technologie, et qu'être compétent dans ce domaine demande un important travail théorique.
Cdt UzSeb
_______________________________
http://www.fas.org/irp/nsa/rainbow/std002.htm
CSC-STD-002-85 [Green Book] DoD Password Management Guidelines 12 April 1985
4.3.1.2 Use of Encryption ... "only the encrypted password be used in comparisons. There is no need to be able to decrypt passwords. Comparisons can be made by encrypting the password entered at login and comparing the encrypted form with the encrypted password stored in the password database." ... APPENDIX B Password Encryption Algorithm ... "A conventional or public key cryptographic algorithm which is configured as a "one-way" encryption algorithm may be used for password encryption"
Même si la base de données est secure l'usager peut quand même se faire récupérer son password par un keylogger ou un site de physhing mais c'est vrai que le risque est quand même faible (surtout s'il y'a un antivirus installé...) Ce qui me gêne dans le système de double identification c'est que selon la manière dont c'est fait ça peut signer la fin de l'anonymat du moins sur certains sites (c'est aussi par exemple pour Google une bonne façon de récupérer notre numéro de téléphone...)
Ensuite - Une fenetre s'ouvre sur mon ecran (edite par ma banque) - Je rentre un code 6 chiffres que j'obtiens de ma banque par SMS sur mon telephone (j'ai 3 minutes seulement)
Cela devient de + en + complique Et obligation d'avoir un roaming service quand on voyage a l'etranger.
Quelle est la différence fondamentale entre un dictionnaire et un dictionnaire hashé ? La connaissance de l'algorithme de hashage, et les algorithmes sont publics.
Il suffit donc de faire des attaques par dictionnaire hashé sur les hashs de passwords. On peut ainsi retrouver avec un temps de processing négligeable plus de la moitié des passwords.
La problématique était la même avec des versions d'unix qui stockaient les passwords avec une version non symétrique de DES dans le fichier /etc/password.
C'est évidemment obsolète d'un point de vue sécurité.