De la sécurité de vos mots de passe

En terme de mot de passe, on nous rebat souvent les oreilles avec des recommandations sécuritaires qui tombent sous le sens. Par contre, les arguments qui sous-tendent ces recommandations sont parfois largement infondés.
Tout d'abord, on nous dit de ne pas choisir un mot de passe facile à deviner, c'est bien sûr du bon sens. On nous dit que le mot de passe doit être long, car les ordinateurs actuels permettent de tester des milliers de mots de passe par seconde. Plus le mot de passe est long, plus il sera long à trouver. Certes. C'est mathématiquement exact. Mais à quoi arrive-t-on si on force les gens à utiliser un mot de passe à la fois long et compliqué ? Ils vont utiliser le même mot de passe partout, ils vont le noter quelque part, etc.
Imaginons un instant qu'un pirate tente de deviner votre mot de passe de messagerie. Il a une très bonne connexion internet, et son ping (le délai qui s'écoule entre le moment où il envoie une requête au serveur, et le moment où le serveur dit qu'il a bien reçu cette requête) est de 10 millisecondes. Il faut ajouter à cela le temps de traitement sur le serveur, et l'envoi de la réponse. Mettons pour simplifier que la totalité de la transaction dure 20 ms. Si votre mot de passe de messagerie fait 8 caractères différents et qu'il utilise des lettres minuscules (26 possibilités), des lettres majuscules (26 possibilités), et des chiffres (10 possibilités), c'est probablement assez correct. Ce mot de passe utilise donc 8 caractères différents pris dans une série de 62. Soit un total de 136325,9 milliards de mots de passe possibles. À raison d'un mot de passe testé toutes les 20 ms, cela donne plus de 864 siècles, pour tester tous les mots de passe.
Maintenant, ajoutez des caractères parmi @#&"'(§!)-_$*/:;.,?+ (20 possibilités), et il faudra presque 9114 siècles pour tester tous les mots de passe.
Moralité, la puissance des ordinateurs permet effectivement de tester des millions de mots de passe par heure, mais la latence des connexions internet rend ce mode d'attaque quasiment impossible, car elle ralentit terriblement le processus.

Les pirates se sont donc rabattus sur trois types d'attaques : l'ingénierie sociale, l'attaque de type "dictionnaire", et l'attaque directe des serveurs.
L'ingénierie sociale, c'est le processus qui consiste à vous faire fournir vous même votre mot de passe, ou à deviner votre mot de passe par les données personnelles que le pirate connaît de vous. Un proche avec qui vous êtes en mauvais terme pourrait tester votre date de naissance, le nom de votre chien, etc. Un pirate qui ne vous connaît pas peut envoyer un mail de phishing à toute la planète pour pousser les destinataires à révéler leur login et mot de passe, ou d'autres informations qui ont de la valeur.
Certains poussent le vice jusqu'à mettre en pratique ces techniques au téléphone. Ils vous appellent et font croire qu'ils sont techniciens de tel fournisseur de service, et qu'ils ont besoin de votre mot de passe pour corriger quelque chose sur votre compte.
Les attaques de type "dictionnaire" consistent à tester des couples login/mot de passe, pour une liste de valeurs très répandue uniquement. Le pirate teste quelques milliers d'identifiants classiques (john, root, user1, admin, test...) avec une liste de mots de passe classiques (mots du dictionnaire, mots dérivés du dictionnaire, séries de chiffres come 123456, mots de passe par défaut d'équipement grand public, etc.).
Croyez-le ou pas, ça marche. Les deux techniques précitées sont les plus fréquentes, car elles demandent le moins d'efforts, et peuvent rapporter très gros.
La troisième est la plus spectaculaire. Un groupe de pirates peut s'attaquer à un serveur d'une grosse entreprise spécialisée dans les contenus en ligne, par exemple Gawker Media. Les pirates obtiennent alors l'accès à l'ensemble des comptes utilisateurs (plus d'un million dans le cas de Gawker Media) avec l'ensemble des données personnelles enregistrées : email, login, mot de passe... Bien sûr, les mots de passe sont chiffrés. Mais maintenant que les pirates ont l'accès direct aux mots de passe sans devoir les tester au travers d'une connexion internet, ils peuvent les déchiffrer en utilisant toute la puissance des machines actuelles. Et bien sûr, ils peuvent revendre la liste d'adresse email à des spammers.

This weekend we discovered that Gawker Media's servers were compromised,
resulting in a security breach at Lifehacker, Gizmodo, Gawker, Jezebel,
io9, Jalopnik, Kotaku, Deadspin, and Fleshbot. As a result, the user name
and password associated with your comment account were released on the
internet. If you're a commenter on any of our sites, you probably have
several questions.

Outch.

6 comments

  1. Bonjour,
    est ce que le fait d'ajouter des caractères spéciaux aux mots de passe augmente la difficulté pour les pirates de le décrypter dans le troisième type d'attaque évoqué dans l'article ?
    Sinon, y a t-il quelque chose à faire en tant qu'utilisateur du web ?
    Merci

  2. Oui, indéniablement.
    Je pense que l'écrasante majorité des mots de passe stockés en ligne est chiffrée de manière irréversible. C'est à dire "hashée", via une fonction de "hashage" comme crc, md5, sha256...
    Si je prends le mot de passe "tototiti" je peux calculer le md5 correspondant : "92fdff5b8595ef3f9ac0de664ce21532". Il est par contre (quasi) impossible de convertir ce md5 en "tototiti".
    Le pirate a alors une seule option : calculer tous les md5 des combinaisons de lettres, de chiffres, et de signes possibles, et trouver dans les résultats celle qui donne le même md5 que celui qu'il a trouvé en piratant la base de données de mots de passe.

    À noter cependant qu'il existe de nombreuses tables déjà calculées permettant de trouver un mot de passe à partir de son "hashage". Tu peux juste coller "92fdff5b8595ef3f9ac0de664ce21532" dans google pour trouver immédiatement que la chaîne de caractère correspondante est "tototiti".

    Plus le mot de passe est long et riche en caractères spéciaux, moins il a de probabilité d'être dans une de ces tables. Et plus l'algorithme de "hashage" est sophistiqué, plus le temps de calcul est long, et donc moins la table sera complète ou facilement accessible. Les premiers mots à rentrer dans ce type de tables calculées à l'avance sont bien sûr les mots du dictionnaires, leurs variations simples, et les mots de passe "classiques".

    Tu peux mettre à l'épreuve cette théorie en cherchant le mot de passe qui donne le md5 "e70b258b75154be2b1d0ef7a6c9d77b2", bon courage :)
    Si tu es sous Mac OS X, Linux, *BSD, tu peux facilement calculer le md5 ou le sha256 de tes mots de passe habituels, et voir par toi-même si ils existent déjà de manière accessible via google. Note au passage que md5 est sûrement encore largement utilisé, alors qu'il est considéré comme vulnérable. On lui préfèrera sha256 et sha512, mais ça, c'est au concepteur de l'application qui stocke les mots de passe d'y penser...

  3. Dans le cas de Gawker l'algorithme de chiffrement utilisé était très ancien et facile à casser. Beaucoup de lecteurs et même les membres du staff de Gawker Media avaient des mots de passe très faibles, genre "password". Les serveurs tournaient sous Linux, mais dans une version vieille de 3 ans, jamais patchée. Gawker a des pratiques déplorables en matière de sécurité, le plus drôle c'est qu'ils ne doivent pas être les seuls.

    You will note Scott Kidder’s confidence in the encryption of the passwords in the tweet above, suggesting that even if user account passwords were compromised they are encrypted. The attackers have suggested that Gawker was using DES or Digital Encryption Standard for this encryption, an encryption algorithm publicly broken in the late 1990’s in contests sponsored by RSA.

    blogs.forbes.com/firewall/2010/12/13/the-lessons-of-gawkers-security-mess/

    en.wikipedia.org/wiki/Data_Encryption_Standard

  4. Tout à fait (et il y a pire). J'ai prévu de revenir sur tout ça dans un futur article, c'est pour ça que je ne me suis pas étendu en détail sur le cas de Gawker.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.