Les mots de passe

En bref

On appelle “mot de passe” un mot ou une séquence de caractères nécessaire pour s’authentifier son accès à un lieu protégé, à un service sécurisé ou à une ressource, en particulier informatique. En informatique, on attend d’un mot de passe qu’il protège divers systèmes, et surtout nos données. Cependant, les technologies actuelles permettent à certains tiers d’attaquer nos mots de passe. Il est donc nécessaire de les sécuriser davantage. On parle d'augmenter la “force” d’un mot de passe.

La “force” d’un mot de passe, qu’est-ce que c’est ? 

> Quelques règles de base… 

   Commençons par énoncer quelques recommandations qui doivent être respectées pour assurer notre sécurité en ligne :

- Utiliser différents mots de passe lors de créations de comptes, en particulier dans un même domaine. Par exemple, pour les mails, une majorité de personnes sépare sa messagerie professionnelle de sa messagerie personnelle. Dans ce cadre là, il est recommandé d'utiliser un mot de passe différent pour ces deux boîtes mails.

- Choisir un mot de passe qui n'est pas lié à notre identité ( nom, prénom, adresse, date de naissance, etc...).

- Ne pas demander à une personne de générer un mot de passe à notre place.

- Dans le contexte d'un système qui nous offre un mot de passe par défaut, il faut changer au plus tôt ce dernier. C'est par exemple le cas pour les mots de passe attribués pour se connecter au serveur d'une université.

- Renouveler les mots de passe à une fréquence raisonnable,c'est-à-dire tous les 90 jours environ pour les domaines contenant des données importantes.

- Évitez de stocker les mots de passe dans un fichier sur le système informatique.

- Ne pas communiquer / envoyer ses mots de passe à autrui ni à soi-même. Si notre compte mail se fait pirater, on risque de perdre l'intégralité de nos autres comptes.

- Se déconnecter d'un poste informatique à chaque fin d'utilisation.

- Paramétrer nos plateformes informatiques de telle sorte qu'elles ne se souviennent pas de nos mots de passe.

> Que doit contenir mon mot de passe ? 

Au-delà des règles de base, la composition du mot de passe est tout aussi importante.

Tout d'abord, son contenu doit être complexe, enchaîner une suite de caractères illogiques, comme par exemple "z#koF7B%5PP", si possible en étant facile à retenir. La taille conseillée est de 12 caractères de types différents. Le mélange de lettres (majuscule et minuscule), de chiffres et de symboles spéciaux tels que "!", "%", "$", etc... rend le mot de passe plus difficile à trouver.

On peut dire qu'un mot de passe est "fort" lorsqu'il est capable de résister à une énumération de toutes les combinaisons de mots de passe possibles. Si on venait à estimer le nombre de possibilités avec : Soit n le nombre de caractères possible et L la longueur du mot de passe, on obtiendrait n^L. Après avoir vu pourquoi il est nécessaire d'avoir au moins une majuscule, une minuscule, une chiffre et un caractère spécial, nous allons voir comment estimer la force de nos mots de passe.

> Comment estimer la “force” d’un mot de passe ? 

En toute logique, plus un mot de passe est long et compliqué (voir les critères ci-dessus) plus il sera difficile pour un individu ou un système de le trouver. Ceci s'explique bien par le calcul n^L.

Prenons comme exemple une combinaison à 4 chiffres qui peut correspondre à un code PIN , un code secret bancaire, ou autre. Soit 1 chiffre qui équivaut de 0 à 9 inclus donc 10 possibilités et qui est répété 4 fois, on obtient donc 10^4 = 10 000 possibilités de mots de passe. Avec ce calcul, nous pouvons constater très rapidement l'importance de l'utilisation des majuscules, des chiffres et de divers symboles.

Un même mot de passe composé de 4 lettres minuscules, soit une lettre minuscule de a à z, offre 26^4=456 976 possibilités. Ce type de mot de passe présente 45 fois plus de possibilités que le PIN à 4 chiffres.

Un mot de passe de taille 6 composé des mêmes lettres minuscules génère donc 26^6 = 308 915 776 possibilités. Soit 675 fois plus de possibilités. En y ajoutant les majuscules le nombre de possibilités est encore plus grand: (26+26)^6 , soit 52^6 = 19 770 609 664 possibilités.

On peut aussi estimer la force d'un mot de passe par comparaison avec les techniques cryptographiques. C'est une technique d'écriture qui consiste à rédiger un message crypté via l'utilisation de codes secrets.

D'après l'Agence Nationale de la Sécurité des Systèmes d'Information (ANSSI), une clé cryptographique inférieure à 100 bits est vulnérable. L'ANSSI propose donc un tableau résumant la force d'un mot de passe par rapport à la taille de sa clé.

On peut calculer par nous même cette taille de clé en fonction de plusieurs données telles que la longueur du mot de passe et le nombre de symboles différents utilisés. Si un mot de passe est de taille 8 et peut avoir 62 symboles différents (composé des caractères de a à z (26), de A à Z (26) et des chiffres 0 à 9 (10)) alors le calcul est le suivant: 

Soit N le nombre de symbole possible et L la longueur du mot de passe, et B la taille en bits. On a donc : 

B = Log2N^L = NLog2N = L x Log(N) / Log(2) 

Donc 8 x Log(62) / Log(2) = 47 bits (en prenant en compte la partie entière), ce qui donne une valeur de clé cryptographique très faible.

Sous quelles formes sont stockés les mots de passes?

Le stockage des mots de passe peut renforcer la sécurité

> Fonctions de hachage 

Une fonction de hachage prend en entrée une suite de caractères et renvoie une empreinte numérique, c’est à dire une valeur ou une clé qui va représenter cette chaîne de caractères. Dans notre cas, la fonction de hachage va permettre de chiffrer nos données pour mieux les sécuriser face aux attaques par force brute (Voir -> Les attaques par force brute).  En effet, un mot de passe ne doit pas être stocké tel quel dans une base de donnée : c’est sa clé qui est stockée. Pour information, cette clé -  autrement dit “empreinte” - est la plupart du temps beaucoup plus longue que le mot de passe lui même. Ainsi, lorsqu’un contrôle de mot de passe est effectué, c’est l’empreinte du mot de passe stockée qui est comparée à l’empreinte donnée. 

Aujourd’hui, il existe plein de fonctions de hachages. Voici un exemple sur la fonction connue SHA-1 : 

Mot de passe entré : vivelesmathsdiscrètes

Clé obtenue : 54849c230ec01fb4213c614ec075b28760572f72

Sur cet exemple, on voit bien que l’empreinte obtenue est totalement différente du mot de passe original.  

Un problème se pose maintenant : si deux utilisateurs choisissent par hasard le même mot de passe, alors c’est la même clé qui est stockée pour ces deux mots de passe, ce qui crée une faille utilisable pour les attaques. On en vient alors au principe de salage.

> Principe du salage

Il est nécessaire d’ajouter une sécurité en plus aux fonctions de hachage. Le principe du salage est d’ajouter un élément, parfois aléatoire, à la chaîne de caractères donnée puis d’entrer le tout dans la fonction de hachage. On appelle le composant ajouté “sel”. Il peut s’agir de l’heure à laquelle l’utilisateur s’est inscrit, d’un mot aléatoire du dictionnaire, un compteur, n’importe quoi qui puisse compliquer le mot de passe. Ainsi, tant que le “sel” n’est pas connu, il est beaucoup plus compliqué d’attaquer et de retrouver le mot de passe d’origine. 

Reprenons l’exemple précédent avec la fonction de hachage SHA-1 : 

Mot de passe entré : vivelesmathsdiscrètes

Clé obtenue : 54849c230ec01fb4213c614ec075b28760572f72

Ajoutons maintenant un sel, correspondant à un compteur : 

Mot de passe entré : vivelesmathsdiscrètes0

Clé obtenue : 3993a76fe3155ded2151a08a77b0e93f8d36e160

Encore une fois…

Mot de passe entré : vivelesmathsdiscrètes1

Clé obtenue : 27b207a0efa2d330e6ece3c614c862279a53ec8c

Les clés obtenues sont totalement différentes les unes des autres, les deux fonctions conjuguées renforcent la sécurité.

Comment sommes-nous attaqués ? 

Voici les techniques d'attaque les plus répandues.

> Les attaques par dictionnaire

L'attaque par dictionnaire est réalisée par un programme qui utilise un fichier contenant un l'ensemble des mots de passe potentiels et qui les essaye tous un à un. Cette méthode est assez efficace pour les mots de passe simples et ne dépassant pas 6 caractères.

> Les attaques par force brute

L'attaque par force brute est une méthode incrémentale. Le programme essaye toutes les combinaisons de tous les caractère possibles jusqu'à trouver le mot de passe. Aucun mot de passe ne résiste. Seule une clé de hachage permet de résister à ce genre d'attaque. Néanmoins, plus le mot de passe est complexe, plus le programme d'attaque mettra de temps à le trouver.

 > Mais encore...

Les attaques que nous venons de voir ne sont pas les seules existantes. En effet, de nouveaux programmes malveillants apparaissent tous les jours.

Une attaque très repandue en ce moment est l'attaque par "phishing" ou encore, "attaque par hameçonnage". En utilisant de fausses identités, des malfaiteurs envoient un ou plusieurs mails frauduleux à des internautes pour voler leurs informations (personnelles ou professionnelles), en les envoyant sur des sites corrompus.

Voici un exemple de mail frauduleux, l'attaquant se faisant passer pour la société Netflix :

Sur l’exemple ci-dessus, c'est sûrement en cliquant sur le lien "restart your membership" que l'on nous volerait nos informations.

Plus généralement, les cyberattaques sont de plus en plus élaborées et difficiles à contrer. En particulier à cause du développement de la "Rainbow Table" (autrement dit la table arc-en-ciel), un logiciel qui, à partir de l'empreinte d'un mot de passe crypté - c'est à dire le résultat de la fonction de hachage - arrive à retrouver celui-ci.

Aujourd'hui, de plus en plus de techniques sont développées pour contrer ces attaques. Par exemple, certaines plateformes encouragent l'ajout d'une question secrète pour que seul le propriétaire du compte connaisse la réponse. De plus, la double identification avec un e-mail et un numéro de téléphone est un des moyens mis en œuvre pour assurer une meilleure sécurité.

Nos outils

> Le logiciel libre John the Ripper

John the Ripper est un logiciel libre, accessible à tout le monde gratuitement, qui permet de forcer (ou "cracker") des mots de passe.

John utilise 4 méthodes d'attaques différentes:

  • Le mode simple. John prend en compte la (ou les) seule(s) information(s) qu'il a sur nous pour essayer différentes combinaisons en ajoutant des chiffres, des majuscules ou autres. Par exemple, si le pseudo est yoda, John vas essayer Yoda123, Yoda321, yoda123, yoda321 etc. Un mot de passe trouvé avec cette méthode serait un mauvais mot de passe.
  • L'attaque par dictionnaire. John y apporte une petite fonctionnalité en plus : il applique le mode simple à chaque mot du dictionnaire.
  • L'attaque par force brute (ou méthode incrémentale).
  • Le mode Markov. John, contrairement à la méthode incrémentale, prends en compte des suppositions qui sont très proches des mots de passe connus. Il fait cela en supposant que les humains choisissent des mots de passe basés sur des habitudes ou des modèles identifiables. Ce mode est en quelque sorte opposé à la méthode incrémentale car John favorise la vitesse à l’exhaustivité.

Voici ici quelques tests de John:

Nous nous trouvons dans un fichier test dans lequel un fichier crypté mypasswd est présent. Nous lançons John et celui-ci s'éxécute.

Il est possible que John ne trouve pas la clé de cryptage du fichier:

 > Ici, notre Générateur de Mot de passe


Nous espérons que ces conseils et ces explications vous aideront à mieux vous protéger. La sécurité est un enjeu très important. Les attaquants utilisent de plus en plus de méthodes pour essayer de voler nos données. Il est important de continuer à se tenir informé de l'évolution de ce domaine.

Bibliographie 

https://www.ssi.gouv.fr/administration/precautions-elementaires/calculer-la-force-dun-mot-de-passe/

https://fr.wikipedia.org/wiki/John_the_Ripper

https://fr.wikipedia.org/wiki/Mot_de_passe

https://www.futura-sciences.com/tech/definitions/informatique-mot-passe-1765/

https://www.futura-sciences.com/tech/definitions/securite-mot-passe-fort-15473/

https://www.supinfo.com/articles/single/6689-qu-est-ce-qu-mot-passe-fort

https://fr.wikipedia.org/wiki/Salage_(cryptographie)

https://fr.wikipedia.org/wiki/Fonction_de_hachage#Contr%C3%B4le_d'acc%C3%A8s

https://www.lemagit.fr/definition/Hachage

https://www.lemagit.fr/definition/Chiffrement

https://zestedesavoir.com/tutoriels/1895/les-fonctions-de-hachage-cryptographiques/

https://www.sha1.fr/

Magazine [Programmez!] #234 (Novembre 2019)

0 Cliquer pour recommander cet article