Assiste.com
cr 01.01.2012 r+ 22.10.2024 r- 22.10.2024 Pierre Pinard. (Alertes et avis de sécurité au jour le jour)
Dossier (collection) : Encyclopédie |
---|
Introduction Liste Malwarebytes et Kaspersky ou Emsisoft (incluant Bitdefender) |
Sommaire (montrer / masquer) |
---|
Un des usages de la cryptographie est de partir d'une donnée et d'en calculer un condensat (un hashcode ou chiffre clé). Exemple :
Mot de passe : Papa aime Maman
Son condensat, selon l'algorithme MD5, est : 99685cdcbee4ac3fc7934da83b703a10
La moindre modification du mot de passe entraine la production d'un condensat totalement différent. Si l'algorithme est bon, le condensat produit est toujours unique, aucun autre texte ne conduira à un condensat identique (ce qui conduit, d'ailleurs, à déconseiller MD5 avec lequel on arrive à provoquer des collisions [2006 - MD5 Collision Demo]).
Un condensat est une valeur calculée par un algorithme de hachage appliqué à une donnée (contenu d'un fichier, chaîne de caractères saisie, etc.), uniquement la donnée et toute la donnée. Si la donnée est dans un fichier, peu importe le nom du contenant, ses attributs, ses dates prétendues de création ou de dernière modification, etc., qui sont toutes des informations extérieures à la donnée elle-même (comme avec le courrier postal elles forment l'enveloppe dont on ne doit pas tenir compte - on ne tient compte que du contenu).
Les algorithmes de hachage les plus universellement utilisés en matière de chiffrement des mots de passe, en 2021, sont MD5, SHA-1, SHA-256.
Les mots de passe ne sont pas conservés, seuls les condensats sont conservés. Comment remonter du condensat au mot de passe ?
On peut chercher à s'attaquer aux condensats des mots de passe par attaque par dictionnaire exhaustif en construisant un dictionnaire intégral de toutes les possibilités de caractères pour chaque longueur de mots de passe couramment imposée (6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 caractres) et générer automatiquement tous les condensats. On monte chaque dictionnaire en fichier à recherche indexée pour faire des recherches instantanées. Le problème est que la taille de chacun de ces dictionnaires est monstrueuse et que seuls ses états peuvent essayer de mettre en place de tels centres de données.
On peut chercher à s'attaquer aux condensats des mots de passe par attaque en force brute. Aucune taille de mémoire nécessaire, mais du temps de calcul monstrueusement long (on peut compter, pour des mots de passe utilisant des minuscules, majuscules, chiffres, caractères accentués et caractères spéciaux, des milliards de milliards de siècles, même avec des ordinateurs spéciaux d'une puissance inimaginable.)
Sont alors apparues les tables arc-en-ciel (rainbow tables) qui permettent un compromis temps/mémoire.
|
La réputation de l'algorithme de calcul d'un hashcode (calcul d'un condensat - fonction de hachage) est de ne jamais produire deux hashcodes identiques si les objets (fichiers) contiennent la moindre différence. La fonction de hachage doit donc produire une clé unique d'identification d'une donnée unique (calcul homogène).
Exemples d'algorithmes de hachage | |
---|---|
Produit un hashcode (condensat) de 16 bits (4 caractères hexadécimaux) | |
Produit un hashcode (condensat) de 32 bits (8 caractères hexadécimaux) | |
Produit un hashcode (condensat) de 64 bits (16 caractères hexadécimaux) | |
Produit un hashcode (condensat) de 128 bits (32 caractères hexadécimaux) | |
Produit un hashcode (condensat) de 160 bits (40 caractères hexadécimaux) | |
Produit un hashcode (condensat) de 256 bits (64 caractères hexadécimaux) | |
Produit un hashcode (condensat) de 512 bits (128 caractères hexadécimaux) | |
Etc. | ... |
Exemples de stockages chiffrés (cryptés) d'un même | |
---|---|
Mot de passe | Secret 1 |
Bytes | 53:65:63:72:65:74:20:31 (longueur=8) |
Adler32 | 0d5002b8 |
f12d6570 | |
Haval | 45d48542b5ee305a769ad2a772a2f240 |
MD2 | 4934bfbb60dacd24004f3f9eba0dae5b |
MD4 | 681960160ad1ee6aba6574beae65299e |
3827558347b988089547698445ea8dc4 | |
RipeMD128 | 1e7a09422c54864d1ff83c9d61bcf409 |
RipeMD160 | a4cf327f6bb9ff9903a64fd5e9f409d7f36dd5ef |
7136a0430119d37b00f9723177bc14eb4e5a3a84 | |
SHA-256(SHA-2) | 5a1c45473a963981e0a182815a9431caa6ba32c7c464f9aa8e24e9b9c14f5df7 |
SHA-384 (SHA-2) | 70e52c8258950198be14b23167b5ef78ec4f73d46f3e4263c3ef7fae539d9f25413a2804cd08454ed259f79db0b06316 |
SHA-512 (SHA-2) | 22ffbc4c4f0c243d8dff78aac024c7699db6dffba5e25032353eceab3237ee7b02c72c24a3ce8928a84f171363065bec3b3031b47c18e16b8fd98f98d6504b66 |
Tiger | 7ef5afbb8327bd37166ab63cb27cd64752284f237d8da6d6 |
Whirlpool | baac0f62f8a9fb13a9b6d797380b4a335f915332c791487aa9214c883caf2d1aa9676fc03819500c25eafd0c9aea69b87efe3b5000e26fff4aa7f9ee7484a46b |
|
Intégrité des données
Il est impossible de modifier la donnée (injection d'un parasite, tel un virus, modification d'un seul bit ou, tout simplement, nouvelle version de la donnée...) en lui conservant un même résultat de calcul de "chiffre clé". Par exemple : un fichier est proposé en téléchargement et son "chiffre clé" MD5 ou SHA-1 est affiché sur le site proposant ce fichier (c'est le cas de Assiste.com - regardez la zone de téléchargements du site). Une fois le fichier réceptionné, vous utilisez SummerProperties pour recalculer ce "chiffre clé" avec le même algorithme MD5 ou SHA-1. Si les deux "chiffres clé" sont identiques, le fichier réceptionné est strictement le même que celui d'origine. C'est le principe du "Contrôle d'intégrité des données" qui ne doit pas être confondu avec l'innocuité des données - vous pouvez seulement vous assurer que le téléchargement s'est bien passé, rien d'autre - si le fichier téléchargé est un virus, vous vérifiez ainsi que vous avez reçu un virus en parfait état ! Faites-le analyser gratuitement et immédiatement par plus de 70 antivirus simultanés avant de l'exécuter (avant de l'ouvrir) !
Calcul à sens unique (théoriquement)
Il n'est, théoriquement, pas possible de faire le calcul inverse : de remonter d'un "chiffre clé" (Hashcode) à la chaîne de caractères d'origine (il n'est pas possible (théoriquement) de retrouver le mot de passe à partir de son chiffre clé). Nous verrons, dans les techniques d'attaques des mots de passe, que ce vœu pieux est battu en brèche.
Unicité du chiffre clé
De purs travaux de laboratoire ont permis la création de "chiffres clé" identiques (appelés "Collisions") à partir de données différentes. Ce risque est total avec les algorithmes antédiluviens et abandonnés comme CRC-16 et CRC-32. Ce risque existe avec les algorithmes MD5 avec lesquels il est désormais possible de créer des "Collisions". Pour prendre un peu d'avance sur les futurs développements matériels et logiciels des cybercriminels, même SHA-1 est en voie d'abandon et l'on commence le calcul des condensats avec SHA-256.
Lorsque vous créez un mot de passe pour protéger l'accès à une ressource (votre ordinateur, un fichier, un compte sur un site ou un forum, un panneau de gestion d'un compte en banque d'entreprise ou de particulier, un document secret d'un chercheur, d'un journaliste, d'un avocat..., les correspondances d'un diplomate ou d'un homme politique, etc.), le mot de passe n'est pas (normalement) stocké en clair. Le site de confiance le crypte, sous forme d'un hashcode, le plus souvent avec l'algorithme MD5, SHA-1 ou SHA-256 et stocke uniquement votre identifiant et le hashcode de votre mot de passe, mais ne stocke jamais le mot de passe lui-même.
Lorsque vous revenez vous identifier pour utiliser cette ressource protégée, vous saisissez (composez) à nouveau votre identifiant (login) et votre mot de passe. Le site refait un calcul de hashcode avec le même algorithme.
Le site compare alors le hashcode de référence du mot de passe au hashcode du mot de passe qui vient d'être saisi. Si les deux hashcodes sont identiques, c'est que les deux mots de passe sont identiques. L'autorité vous donne alors accès à la ressource, sinon elle vous en interdit l'accès.
Note 1
D'où l'intérêt des logiciels en "Open Source" où l'on peut voir comment sont traitées les données sensibles tandis qu'on ne peut qu'avoir des soupçons de malveillances avec les logiciels "propriétaire" et les sites pour lesquels aucune confiance ne peut être accordée (comme tous les réseaux sociaux, les éditeurs de logiciels proches de leurs gouvernements, les nébuleuses du "Cloud Computing", etc.)
Note 2
C'est la raison pour laquelle, lorsque vous perdez votre "mot de passe", il n'est pas possible de le retrouver, car s'il est possible de calculer un MD5 ou un SHA-1 à partir d'un "mot de passe", il n'est théoriquement pas possible de retrouver (recalculer) le "mot de passe" d'origine à partir de son MD5 ou de son SHA-1.
Note 3
Il serait préférable que, lors de la saisie de votre mot de passe, la communication entre votre ordinateur et celui du site distant se fasse dans un protocole de communication sécurisé (HTTPS), sinon une attaque par "sniffer" lira vos mots de passe en clair, avant qu'ils ne soient cryptés. Regardez en bas à droite de votre navigateur si un cadenas fermé apparaît. Mais le protocoleHTTPS ne sera mis en œuvre que par des sites professionnels. Ce ne sera pas le cas des millions de forums, blogs, etc. sur lesquels il faut également s'identifier (d'où l'intérêt d'utiliser des mots de passe différents).
Note 4
Certains sites Internet usurpent l'apparence de sites ayant pignon sur rue est utilisent des URL trompeuses. Sur de tels sites de "phishing", vers lesquels vous êtes souvent dirigés depuis un e-mail trompeur, vos identifiant et mot de passe sont stockés en clair et exploités immédiatement par des cybercriminels. Et absolument rien ne permet d'être certain de ce que font les très grands sites à la solde des gouvernements, comme Microsoft (Microsoft vous espionne) ou Google (Google vous espionne).
|
Le cybercriminel, qui s'est procuré un mot de passe chiffré (son code de hachage) ou le piratage de millions de hashcodes des clients d'une banque, d'un site e-marchand, d'un réseau social, etc. (par divers procédés de piratage), va utiliser un logiciel spécialisé et, éventuellement, du matériel spécialisé, pour attaquer en force brute les hashcodes qu'il s'est procurés afin de remonter du hashcode au mot de passe en clair, bien que le hachage soit considéré comme une opération univoque (il n'est, en théorie, pas possible de remonter d'un code de hachage au texte d'origine en clair). Cette forme d'attaque en force brute contre les hashcodes consiste à tenter toutes les combinaisons possibles de caractères des mots de passe et calculer tous leurs hashcodes jusqu'à trouver les bonnes combinaisons de caractères qui correspondent aux hashcodes détenus.
Si l'algorithme de hachage utilisé est, par exemple, SHA-1, qui crypte les mots de passe en hashcodes de 160 digits de long, le nombre de calculs qui doivent être effectués est 2 ^ 160 ^ 4 (2 puisque chaque position binaire (chaque bit) ne peut prendre que deux valeurs, 0 ou 1, à la puissance 160 et que chaque digit comporte 4 bits) soit 4,5624406176222E+192 opérations. Si l'on dispose d'une puissance de calcul de cent mille milliards de calculs de hashcodes à la seconde, il faudra, pour chaque mot de passe, 5,84 centaines de milliards de milliards de milliards de siècles pour y arriver. On ira de plus en plus vite avec la montée en puissance des machines et le nombre de machines mises en oeuvre, mais c'est le problème du temps. Accéder à une donnée avec des années de retard sur sa signifiance risque de conduire à une donnée totalement périmée, n'ayant plus aucune valeur.
Note :
Le cybercriminel gagne du temps s'il sait quel est le jeu de caractères autorisé pour la création des « mots de passe » qu'il tente de casser, ainsi que les longueurs minimum et maximum de ces mots de passe. Ces informations sont faciles à obtenir : il suffit de tenter d'ouvrir un compte sur le système attaqué pour que l'autorité vous dise, la plupart du temps, que votre « mot de passe » doit faire tant de caractères de long et ne comporter que tels et tels caractères. Le choix de l'algorithme d'attaque en « Force brute » ou du dictionnaire pour une « attaque par Dictionnaire » ou de la Rainbow table est ainsi précisé.
On peut oser un rapprochement incongru et déclarer que les « attaques par dictionnaires » sont une forme « intelligente » d'« attaque en force brute ».
|
L'attaque des mots de passe par dictionnaire est une forme d'attaque dirigée contre les mots de passe en clair, pas contre leurs chiffrements (pas contre les hashcodes). On se limite à tenter des mots existants réellement dans divers dictionnaires.
L'idée est qu'un utilisateur aura tendance, naturellement, à aller vers la facilité et donc à utiliser quelque chose de facile à retenir, quelque chose existant déjà, au lieu d'une suite barbare de caractères impossibles à mémoriser (ce qui est, pourtant, l'une des règles de bonne pratique avec les mots de passe).
L'attaque par dictionnaire cherche donc à pallier le problème du temps soulevé par les attaques en force brute. Elle risque de passer à côté de mots de passe tarabiscotés, mais est beaucoup plus rapide que la force brute.
Dans une attaque par dictionnaire, on va tenter tous les mots présents dans de simples dictionnaires ou listes finies : langues, dates, immatriculations, noms d'animaux, patronymes, prénoms, etc., ainsi que les mots de passe faibles habituels (mots de passe par défaut (d'usine, d'origine), mots de passe imbéciles, etc.)
Ces dictionnaires mettent un certain temps à être construits et représentent, finalement, l'intégralité des mots et termes normalement interdits en tant que mot de passe.
Quant aux dictionnaires exhaustifs (voir l'article étendu sur les dictionnaires exhaustifs), ils occupent une place folle et un coût délirant impossibles à mettre en place sauf au niveau d'un état.
Seul le compromis temps/mémoire avec les tables Arc-en-ciel arrive à casser relativement rapidement tous les mots de passe en faisant un compromis temps/mémoire.
|
Les encyclopédies |
---|