La cryptographie pour les nuls I : Keepassx

Comme tout le monde, vous avez plusieurs mots de passe à mémoriser : boîtes mails (avec un « s » car vous en avez bien évidemment plusieurs), comptes sur divers sites (amazon, ebay, banque, facebook satan [1], forum ubuntu-fr…). Du coup, comme tout le monde, vous utilisez partout le même. Grossière erreur ! Si l’un de ces sites se fait pirater, c’est tous vos comptes qui sont compromis ! Ce qui, faut-il le préciser, n’est pas une bonne chose : non seulement le vilain pourra accéder à vos données sur le site maintenant piraté mais aussi sur les autres. Il pourra aussi éventuellement se faire passer pour vous ou utiliser les informations acquises pour payer avec votre carte bleue. Ce qui n’est guère enthousiasmant.

« Que faire ? », me demanderez-vous. « Installez Keepassx », vous répondrai-je.

De la nécessité de stocker ses mots de passe

Tout d’abord, j’espère que l’introduction ci-dessus vous a montré qu’il faut utiliser différents mots de passes pour les différents sites que vous utilisez. Néanmoins, mémoriser plusieurs mots de passe peut s’avérer difficile, et ce d’autant plus qu’ils doivent être « bon ». En effet, les vilains pas beaux qui veulent pirater vos comptes peuvent employer une méthode très simple : essayer tous les mots de passes possibles jusqu’à tomber sur le bon. Pour se prémunir contre cela, il n’y a pas des dizaines de manières de procédé : il faut des mots de passe compliqués. 8 caractères sont un minimum strict, la présence d’au moins un chiffre et de lettres de différentes casses [2] aussi. De plus, l’essai de tous les mots de passe possibles, appelé « attaque par la force brute » voire « brut-force » pour les intimes anglophones ne consiste pas seulement en un essai de toutes les combinaisons de lettres possibles. En effet, le procédé peut être amélioré en utilisant des dictionnaires : dès lors, on essaie d’abord toutes les combinaisons de mots du dictionnaire, d’où la nécessité d’un mot de passe encore plus compliqué. Illustrations :

  • aaa ou 123456 ou encore azertyuiop : très mauvais mots de passe. De part leur simplicité, ils sont très répandus et par conséquent parmi les premiers à être testés (cf. sources données en fin d’article). Vous pouvez presque considérer les informations publiées avec un tel mot de passe (tout pourri) comme publiques, c’est à dire que tout un chacun peut non seulement les lire mais les modifier, ce qui peut être encore plus embêtant.
  • john781124 : mieux, mais la date de naissance est aussi un motif (trop) classique. Cela peut être suffisant pour des choses de peu d’importance (inscription sur des forums par exemple), mais est trop faible pour une application nécessitant une vraie sécurité : mot de passe root sous GNU/Linux, mot de passe bancaire, données chiffrées sur votre ordinateur [3], etc. Et ne venez pas pleurer si votre compte se fait pirater !
  • J0h24n,11 ou N'epmcqàjd12Eacd'èépmmlm. : respectivement mieux et vraiment beaucoup beaucoup mieux. Le premier est obtenu à partir du prénom et de la date de naissance mais il a été amélioré en remplaçant le « o » par un « 0 » (zéro), en mettant le jour de naissance dans le nom et en ajoutant un ponctuation. Plus efficace que le précedent, il est par contre plus difficile à mémoriser. Le deuxième est très robuste et en fait assez facile à mémoriser : les fans de Lovecraft savent bien ceci : « N’est pas mort ce qui à jamais dort. Et au cours d’ères étranges peut mourir même la mort. ». Prenez la première lettre de chaque mot, gardez la ponctuation et séparez les phrases par un nombre (12 ici) et vous obtenez un beau mot de passe en béton armé !

    Ces mots de passes, en particulier ceux du type du deuxième sont adaptés à la protection d’informations sensibles. En fait, en tant qu’humains, vous ne pourrez pas faire beaucoup mieux…

  • DfASXxYv9egtwyDEudfkKx8FZPk ou 4rig9sFVL0xAiT9x+amcUdmLe/Q : Impossible en théorie [4] de faire mieux ! En effet, il s’agit ici de séquences de lettres, chiffres et ponctuation presque aléatoires (on dit « pseudo-aléatories »). Si elles étaient parfaitement aléatoires, il n’y aurait absolument aucun moyen autre que la force brute pour les obtenir. En pratique, même si les séquences ne sont que pseudo-aléatoires, la force brute reste la seule possibilité (à moins de vraiment utiliser un générateur pseudo-aléatoire en carton).

Néanmoins, même s’il est possible de mémoriser quelques très bon mots de passe, il vous en faut en fait de très nombreux. Donc vous ne pouvez pas les mémoriser : il faut les stocker. L’idée de keepassx (et d’autres logiciels du même acabit, comme passwordsafe) est de stocker des mots de passe en les protégeant… À l’aide d’un mot de passe ! Celui-ci, appelé « maître », se doit d’être particulièrement solide. Le mien par exemple fait aux alentours de 20 caractères avec majuscules, minuscules, ponctuations, chiffres et lettres accentuées. Mais il ne peut pas être aléatoire car vous allez devoir le mémoriser (en fait, c’est le seul).

Utilisation de Keepassx

Lors donc, intéressons-nous de plus près à ce logiciel. Tout d’abord, pourquoi vous parle-je de celui-ci en particulier ? Parce que je le connais bien (c’est celui que j’utilise) et parce qu’il est multi-plateforme : il tourne aussi bien sous GNU/Linux que sous Windows ou Mac OS. Enfin, c’est ce que tout le monde dit, moi je n’ai testé que la version GNU/Linux [5].

Installation

  • GNU/Linux : Sous ubuntu, ouvrez un Terminal (Applications > Accessoires > Terminal). Là, tapez « sudo apt-get install keepassx », puis faites « Entrée ». Ensuite, tapez votre mot de passe (rien ne s’affiche, c’est normal) puis re-faites « Entrée ». Une fois que les messages cryptiques ont fini de défiler, c’est bon ! Vous pouvez le trouver dans le menu Applications > ??????. Ceux qui ne sont pas sous Ubuntu auront reconnu une bête installation de paquet. Au pire, les sources sont dispos.
  • Windows : comme toujours, télécharger le .zip sur le site du programme, dézippez le (clic droit > ouvrir avec winzip… Du moins je suppose ^^). Ensuite, pour lancer le programme, cliquez simplement sur KeePassW.exe. Notez que vous pouvez mettre le dossier ainsi obtenu sur clef USB afin d’être sûr d’y avoir toujours accès ! C’est ce que je fais personnellement, mais nous y reviendrons.
  • Mac OS : … Euh… Aucune idée. Vous pouvez le télécharger ici, mais je ne sais pas ce qu’il faut faire après. Peut-être qu’en priant suffisamment fort, le fantôme de Steeve Jobs vous viendra en aide ? EDIT : une bonne âme a fourni des explications sur le sujet dans les commentaires ; louée soit-elle !

Création de votre base de données chiffrées

Maintenant, créons une base de données contenant vos mots de passe. Dans mon immense bonté, j’ai même fait des captures d’écran pour vous faciliter encore plus la tâche ! Gardez à l’esprit que je n’ai cependant testé que la version GNU/Linux et que des différences peuvent exister avec les autres. Je serais cependant surpris qu’elles soient autres que cosmétiques.

  1. Lancement : création d’une base de donnée chiffrée

    Capture d'écran montrant la création d'une nouvelle base de données chiffrée par Keepassx

    Voici la fenêtre qui s’ouvre quand vous lancez keepassx pour la première fois. Comme vous pouvez le constater, on vous demande de définir la « clef maître ». Celle-ci est le mot de passe qui vous sera demandé à chaque fois que vous lancerez l’application pour retrouver vos mots de passe. C’est sur lui que repose la sécurité de toutes vos données, alors choisissez en un bon. Et ne l’oubliez pas ! Si vraiment vous n’êtes pas sûrs de vous, vous pouvez l’écrire sur un papier que vous garderez dans votre porte-feuille (ou encore mieux, écrivez juste un moyen mnémo-technique).

    Il est également possible d’utiliser un fichier comme mot de passe. À vous de voir, si vous ne savez pas quoi faire, choisissez un mot de passe 😉

  2. Confirmation du mot de passe

    Capture d'écran montrant la fenêtre de confirmation du mot de passe.

    Tout est dans le titre : il faut que vous retapiez votre mot de passe. J’ai bien dit « retapez » hein, pas « copiez-collez ». Le but étant de vérifier que vous n’avez pas fait de faute de frappe, ce serait dommage de contourner cette sécurité.

  3. Fenêtre principale

    Passons au chose sérieuses ! Regardons à quoi ressemble l’interface principale de Keepassx. Pour bien commencer, voilà une capture d’écran :

    Capture de la fenêtre principale de Keepassx

    Vous pouvez dors et déjà noter la présence d’icônes classique dans la deuxième barre horizontale en partant du haut : une feuille blanche pour créer une nouvelle base de données, un disquette sortant d’un dossier pour l’ouverture d’une base de données déjà existante, une disquette pour la sauvegarde et une clef jaune pour l’ajout d’une nouvelle entrée. Notez au passage qu’une description rapide de l’action effectuée par chaque bouton apparaît en plaçant la souris dessus sans cliquer.

    La notion d’entrée est cruciale pour le fonctionnement de ce logiciel, je propose donc [6] que nous nous intéressions de plus près à cette notion. Pour Keepassx, une entrée est l’ensemble constitué d’un nom d’utilisateur, du mot de passe qui lui est associé et d’autres informations facultatives, comme l’adresse du site considéré, un quelconque commentaire, une date d’expiration et même un éventuel fichier à joindre à l’ensemble. Ce fichier sera d’ailleurs chiffré lui aussi [7].

    La barre latérale à gauche de l’interface montre les différents groupes d’entrées. Celles-ci sont regroupées pour permettre des les retrouver plus simplement. Cela n’a rien d’obligatoire, mais c’est quand vachement pratique ! Pour ajouter un nouveau groupe, cliquez simplement sur l’onglet « groupes » dans la barre horizontale (tout en haut), puis cliquez sur « ajouter un groupe ».

Ajout et consultation d’une entrée

Maintenant que le programme est lancé, il s’agit de l’utiliser !

  1. Nouvelle entrée

    Comme dit précédemment, l’information est stockée dans des « entrées ». Nous allons donc en créer une. Pour cela, cliquez sur la clef jaune dans la barre d’icône ou bien faites un clic droit sur le groupe dans lequel vous voulez mettre cette entrée et choisissez « ajouter une nouvelle entrée. Ceci devrait apparaître :

    Capture de la fenêtre de création d'une nouvelle entrée

    C’est assez clair : il faut que vous remplissiez les différents champs pour pouvoir stocker les informations voulues. Notez qu’il est possible en faisant un clic droit sur une entrée dans l’écran principal de copier le mot de passe et le nom d’utilisateur. Du coup, le mot de passe ne sera jamais affiché en clair (à moins que vous ne le demandiez explicitement) ! Mais intéressons-nous de plus près au champ « mot de passe ».

  2. Génération d’un mot de passe

    Comme précédemment, il faut le taper deux fois. Néanmoins, si vous voulez créer un nouveau compte sur un site, ou bien si vous voulez remplacez un mot de passe en carton existant, vous pouvez en générer un quasi-aléatoire. Puisque vous n’avez pas besoin de mémoriser les mots de passe, autant en profiter pour prendre des trucs solides ! CLiquez sur l’icône « Gén. » à côté des champs « mot de passe ». La fenêtre suivante apparaît:

    Capture de la fenêtre de génération d'un nouveau mot de passe

    Je vous conseille les réglages que j’ai utilisé. Cependant, il se peut que certains sites interdisent par exemple les caractères spéciaux. Dans ce cas, décochez simplement la case correspondante. Si la longueur est limitée, vous pouvez également la diminuer.

    La case « activer la collecte d’aléas » permet, si elle est cochée, d’augmenter « l’aléatoiritude » [8] du mot de passe généré. Pour cela, lors de la génération, une nouvelle fenêtre va apparaître:

    Capture de la fenêtre de génération des aléas

    Comme expliqué dans la nouvelle fenêtre, agitez la souris et tapez n’importe quoi au clavier pendant la durée nécessaire. Le but est d’avoir des mouvements aléatoires, donc faire des ronds avec la souris n’est pas une bonne idée…

  3. Sauvegarde

    Pour sauvegarder votre base de données, il suffit de cliquer sur la disquette de la barre d’icône puis de créer un fichier à l’endroit où vous voulez, ayant le nom que vous voulez. Il sera bien de stocker cette base de données à plusieurs endroits, par exemple sur une clef USB que vous avez toujours sur vous (j’en ai une dans mon porte-clefs) sur laquelle vous pouvez mettre le fichier .exe de Keepassx. Comme ça, vous pourrez accéder à vos mots de passe sur le PC sous Windows de vos amis [9].

  4. Lecture

    Pour accéder aux informations que vous venez d’enregistrer, il suffit de lancer Keepassx. S’il n’ouvre pas la bonne base de données tout seul, il faut la lui préciser soit lorsque cela est demandé (au lancement), soit en cliquant sur l’icône « ouvrir » (deuxième en partant de la gauche).

    Pour lire le contenu d’une entrée, le plus simple est de faire un clic droit dessus : on vous proposera de copier le mot de passe ou le nom d’utilisateur : même pas besoin de l’afficher à l’écran ! Sinon, vous pouvez cliquer sur « afficher/modifer » pour tout voir. Mais ça ne devrait pas souvent être la peine.

Conclusion

Un article plus long que la moyenne (en particulier du fait du nombre de captures d’écran) qui était j’espère suffisamment accessible pour que même les plus novices le comprenne. Comme toujours, n’hésitez pas à me poser des questions dans les commentaires ! Prochaine épisode : « La cryptographie pour les nuls II : truecrypt » aucours duquel nous verrons comment utiliser vos mots de passes en béton pour protéger vos données sur votre ordinateur (ou sur votre clef USB).

Sources

  • Un document (pdf en anglais disponible ici) rédigé par Imperva (en), une société américaine spécialisée dans la sécurité des données, après qu’un hacker ait mis la main sur 32 millions de mots de passe qu’il a publié de façon totalement anonymisée (c’est à dire que les logins correspondant n’étaient pas révélés, le but n’était donc manifestement pas de nuire).
  • Cet article (en) expliquant comment fonctionne un « casseur de mot de passe » puis des méthodes pour s’en prémunir a été écrit par Bruce Schneier, un sommité mondial en sécurité de l’information. En fait, il y a même des « Bruce Schneier Facts » (en) calqués sur les « Chuck Norris Facts ». Attention cependant, un niveau correct en cryptologie et/ou théorie de la complexité est nécessaire pour les apprécier à leur juste valeur…

[1] (retour) Hmmm ? Subtilité ? Et puis quoi encore ?
[2] (retour) On appelle « casse » le fait pour une lettre d’être en majuscule ou en minuscule. En l’occurrence, il faut que vous mélangiez majuscules et minuscules.
[3] (retour) Un article sur comment chiffrer vos données personnelles sur votre ordinateur devrait suivre sous peu.
[4] (retour) En théorie seulement, en pratique, pour que cela soit parfait, il faudrait un générateur de nombres parfaitement aléatoires. Cela n’existe pas à l’heure actuelle, mais il en existe tout de même de bons. Pour les besoins de la démonstration, j’ai utilisé celui d’openssl avec la commande openssl rand -base64 20 (20 étant le nombre d’octets générés) même s’il est imparfait, comme tous (à des degrés divers cependant).
[5] (retour) Je vais pas installer windows juste pour ça, non mais 😮
[6] (retour) Mais sans vous laisser le choix parce que bon, hein, c’est moi le chef quand même. Non mais.
[7] (retour) Techiquement, Keepassx peut donc être utilisé pour stocker autre chose que des mots de passe de façon sécurisée. Néanmoins, il n’a pas été conçu dans cette optique et n’est par conséquent pas vraiment adapté à cet usage. Bien sûr, cette fonctionnalité peut dépanner ; cependant, je recommande plutôt pour cela truecrypt (qui sera lui aussi le sujet d’un article).
[8] (retour) Oui, bon, vous avez compris hein. Ne chipotez pas.
[9] (retour) Et vous faire ainsi piquer tous les mots de passe que vous utiliserez chez lui parce qu’il aura 15 virus différents d’installés sur sa machine dont 3 enverront les mots de passe qu’ils ont vu aux chinois du FBI travaillant pour le KGB :P. Oui, « référence nécessaire », certes. Tant pis.