Journal Les mots de passe des premiers développeurs/utilisateurs d'UNIX, notamment celui de Ken Thompson

Posté par (page perso) . Licence CC by-sa.
Tags :
70
11
oct.
2019

En 2014, une ingénieure, Leah Neukirchen, trouve un fichier /etc/passwd archivé avec du vieux code source BSD et se décide de déchiffrer les mots de passe des premiers développeurs/utilisateurs d'UNIX.

À cette époque, ce fichier /etc/passwd contentait l'empreinte (hash) de chaque mot de passe des utilisateurs. Aujourd'hui, un demi-siècle après, ce fichier /etc/passwd existe toujours, mais il ne contient plus les empreintes des mots de passe depuis très longtemps.

Assez facilement, les mots de passe sont trouvés les uns après les autres. Je ne sais quels étaient vos premiers mots de passe, mais, personnellement, j'utilisais le même sur beaucoup de mes comptes et c'était soit des mots de la langue française facile à taper, soit le nom de ma copine.

Est-ce que ces tous premiers développeurs/utilisateurs d'UNIX étaient plus inventifs ?
À toi d'en juger, les voici donc :

  • dmac pour Dennis MacAlistair Ritchie ;
  • bourne pour Stephen Bourne, auteur du Bourne shell (bsh) ;
  • wendy!!! pour Eric Schmidt, actuellement président du conseil d'administration de Alphabet (Google), développeur de logiciels UNIX à cette époque, à laquelle il venait également de rencontrer sa femme Wendy Boyle ;
  • axolotl (un amphibien mexicain) pour Stuart Feldman, auteur de make ;
  • /.,/., (duplication de trois caractères adjacents d'un clavier QWERTY) pour Brian Kernighan ;
  • uio
  • foobar
  • apr1744
  • network
  • whatnot
  • ...hello
  • sacristy
  • sherril.
  • uucpuucp
  • cowperso
  • 5%ghj
  • pdq;dq
  • jilland1
  • theik!!!
  • sn74193n

Mais, il en manque quelques uns qui résistent et qui restent indéchiffrables !

Après avoir demandé de l'aide pour craquer ces mots de passe, quelques personnes s'y collent et font tourner un logiciel qui essaye toutes les combinaisons (force brute) en utilisant les possibilités de parallélisation des cartes graphiques.

Arthur Krewat trouve quatre mots de passe en quelques heures :

Mais impossible de trouver le dernier qui résiste encore et encore, et qui reste totalement undéchiffrable !

C'est le mot de passe utilisé par Ken Thompson, un développeur talentueux qui est à l'origine du premier UNIX, dont tous les UNIX d'aujourd'hui utilisent les mêmes concepts dont la plupart ont été inventés par Ken Thompson lui-même. Voir aussi son portrait biographique : https://linuxfr.org/news/portrait-de-ken-thompson

Et finalement, Nigel Williams, au bout du cinquième jour, craque enfin le mot de passe de Ken :

  • p/q2-q4!.

Mais, qu'est-ce que cela veut dire ?

p/q2-q4* est une ouverture très connue aux échecs : Pion (p) devant la dame (q = queen) avance de deux cases, de la ligne 2 à la ligne 4 (q2-q4). Avec la notation moderne des échecs, on utilise plutôt **1. d4. Voir aussi les ouvertures fermées et semi-fermées.

Enfin, le mystère est résolu ! Ken Thompson a félicité Congratulations Nigel Williams pour son travail.

Néanmoins, Rob Pike se souvient qu'une partie de ces mots de passe avaient déjà été trouvés et imprimés sur les T-shirts de commémoration de Belle (ordinateur d'échecs développé par Joe Condon et Ken Thompson).

Dennis Ritchie et Ken Thompson en train de (faire semblant de) travailler sur un ordinateur de la fin des années 1970, copyright Peter Hamer sous CC BY-SA, modifié par boingboing.net)

Voir aussi :

Je place ce document dans le domaine publique si possible, sinon sous licence CC0 1.0 ou version ultérieure.

  • # wendy!!!

    Posté par . Évalué à 3 (+2/-0).

    Petite question, comment le mot de passe wendy!!! a été trouvé aussi vite ? Pour le prénom bien sûr attaque par dictionnaire, mais jusqu'où on va pour l'ajout de symboles pour une attaque rapide ?

    • [^] # Re: wendy!!!

      Posté par (page perso) . Évalué à 3 (+2/-1).

      Ajouter 3 caractères imprimables et disponibles sur un clavier QWERTY ne multiplie les possibilités que par environ 300000 (643 = 262144, à la louche) - en supposant qu'on les ajoute seulement à la fin. Ça ne semble pas bien grave, surtout que l'algorithme de hashing utilisé à l'époque ne doit pas être un truc qui met à genoux les CPU (ou GPU) modernes.

      • [^] # Re: wendy!!!

        Posté par (page perso) . Évalué à 7 (+5/-0).

        Surtout que là, on parle de 3 fois le même caractère, qu'un algo malin va probablement privilégier. Si on veut explorer toutes les possibilités de 1, 2 ou 3 fois le même caractère, c'est plutôt 64 + 64 + 64 = pas beaucoup à la louche.

        Les caractères spéciaux, ça fait bien dans un mot de passe, mais ça n'a rien de magique, ce qui est important c'est 1) que les caractères du mot de passe soient indépendants (i.e. si on me donne le mot de passe moins un caractère, est-ce facile de deviner le caractère manquant ?), 2) la longueur du mot de passe.

  • # indéchiffrable

    Posté par . Évalué à 3 (+1/-0).

    Et pas undéchiffrable. Merci.

  • # Aucune majuscule

    Posté par . Évalué à 3 (+1/-0).

    Existe-t-il une raison particulière pour laquelle aucun de ces mots de passe ne contient une majuscule ?

    • [^] # Re: Aucune majuscule

      Posté par (page perso) . Évalué à 4 (+2/-0).

      aucun de ces mots de passe ne contient une majuscule ?

      C'est d'autant plus étonnant que la Télétype ASR33 que l'on voit sur la photo ne connaissait que les MAJUSCULES.

      CAPSLOCKDAY ALL THE YEAR !

      * Ils vendront Usenet^W les boites noires quand on aura fini de les remplir.

      • [^] # Re: Aucune majuscule

        Posté par (page perso) . Évalué à 2 (+0/-0).

        C'est d'autant plus étonnant que la Télétype ASR33 que l'on voit sur la photo
        ne connaissait que les MAJUSCULES.

        Oui, mais on ne le trouve pas dans le termcap. ;)

        • [^] # Re: Aucune majuscule

          Posté par . Évalué à 6 (+5/-0).

          Sur le agetty que nous utilisons sous linux, il y a une option qui ne doit plus servir souvent maintenant:

          -U, --detect-case
          Activer la détection des terminaux à caractères majuscules seuls. Cela ne détectera qu'un identifiant de connexion ne possédant que des caractères majuscules et activera des opérations de conversions de casse majuscules vers minuscules. Cette option ne gère aucun caractère Unicode.

          Comme certains terminaux ne supportaient que les majuscules, lorsque le login saisi est entièrement en majuscule, alors le système bascule dans un mode de conversion systématique de toutes les saisies vers des minuscules; ce qui permettait globalement de se connecter (si le login et le mdp sont en minuscule) et d'utiliser le système.

          Sur mes premières distributions Linux, j'avais un minitel en guise de terminal sur le port série, c'était actif par défaut.

          • [^] # Re: Aucune majuscule

            Posté par . Évalué à 3 (+1/-0).

            Dans l'article à l'origine du journal, Leah Neukirchen semble s'interroger :

            Did he really use uppercase letters or even special chars? (A 7-bit exhaustive search would still take over 2 years on a modern GPU.)

            Dans les échanges de mailing list, Leah Neukirchen répond à quelqu'un qui se demande pourquoi les majuscules n'ont pas été testées :

            I can't find the original post, but, was upper case not tried?

            That explodes my computational resources (I don't have good GPU). But since all the other (simple) passwords use lowercase letters only, I assumed it was a fair assumption.

            Toujours dans la mailing list, Michael Kjörling justifie que la limitation du password à 8 caractères est suffisante vu le temps qu'il faudrait pour le trouver. Il prend le cas d'un password composé de minuscules et de chiffres, il va ensuite ajouter la possibilité d'avoir des majuscules :

            Adding uppercase A-Z alongside lowercase a-z and 0-9 increases the exhaustive search time even for the four characters password space to about 17 days at 100 ms per hash. So with no additional information for an attacker, even a [a-zA-Z0-9]{4} password was tolerably secure, and a [a-zA-Z0-9]{5} one was more than good enough if you changed it once a year (would take about three years to crack at 100 ms/hash)

    • [^] # Re: Aucune majuscule

      Posté par (page perso) . Évalué à 5 (+3/-0).

      Les mots de passe étaient peut-être non sensibles à la casse, à l'époque.

      --> []

    • [^] # Re: Aucune majuscule

      Posté par . Évalué à 1 (+0/-0).

      Je ne connais pas bien le qwerty, mais ils n'ont pas utilisé que des caractères en accès direct ?

  • # Sondage intéressant

    Posté par (page perso) . Évalué à 3 (+1/-0).

    Je ne sais quels étaient vos premiers mots de passe, mais, personnellement, j'utilisais le même sur beaucoup de mes comptes et c'était soit des mots de la langue française facile à taper, soit le nom de ma copine.

    Personnellement, j'utilisais le mot de passe que ma fourni l'équipe d'étudiant en charge de l'informatique dans l'établissement scolaire ou j'étais. C'était digne d'un pwgen 8 1. Naturellement, trouvant ce mot de passe « fort », je l'ai utilisé partout pendant quelques années. Plus de 10 ans après, il doit en subsister encore ça et là dans des comptes abandonnés. :)

    Adhérer à l'April, ça vous tente ?

  • # root n'était pas encore Charlie

    Posté par (page perso) . Évalué à 4 (+2/-0).

    et le diable était dans les détails.

    daemon:*:1:1:The devil himself:/:

  • # journal très sympa

    Posté par . Évalué à -2 (+1/-5).

    un peu de fraicheur, ça faisait longtemps. DLFP à 1/2 bronsonisé.

  • # Toute ma jeunesse

    Posté par . Évalué à 3 (+2/-0).

    Oh, l'ASR33 sur la photo, toute ma jeunesse !

    Il ne manque même pas le lecteur de ruban perforé, à gauche.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.