Cryptanalyse expliquée
La cryptologie peut être divisée en deux parties : la cryptographie et la cryptanalyse. Cryptographie se concentre sur la création de protocoles de cryptage, tandis que la cryptanalyse analyse les algorithmes cryptographiques pour tenter de les casser. La cryptanalyse n’est pas nécessairement utilisée pour monter une attaque en soi. La cryptanalyse est un peu comme la Force dans Star Wars dans la mesure où on peut l'utiliser pour le bien ou le mal. Nous avons le côté obscur et le côté lumineux.
Le côté obscur utiliserait la cryptanalyse pour accéder et exploiter des messages ou des données cryptés en « cassant » le cryptage. D’un autre côté, le côté léger utilisera la cryptanalyse pour déterminer si les protocoles et les chiffrements de chiffrement sont sécurisés et pour identifier les vulnérabilités afin de renforcer le système plutôt que de le casser.
Dans cet article, nous verrons ce qu’est la cryptanalyse, son fonctionnement et les différentes méthodes utilisées.
Pour comprendre le fonctionnement de la cryptanalyse, il faut d’abord se familiariser avec certains concepts.
Qu’est-ce que la cryptographie ?
La cryptographie est essentiellement le processus de conversion d'un texte ordinaire (texte brut) en texte illisible (texte chiffré) et vice versa. Il réécrit les données sous une forme inintelligible que seuls l'expéditeur et le destinataire peuvent déchiffrer et lire. La cryptographie protège les données contre le vol ou l'altération et est également utilisée pour l'authentification des utilisateurs.
Bien que ce soit à peu près la vérité sur la cryptographie, la cryptographie moderne va au-delà de la simple conversion de texte brut en texte chiffré et doit prendre en compte les éléments suivants :
Confidentialité: Les messages ne peuvent être lus par personne autre que l’expéditeur et le destinataire.
Intégrité: Les informations contenues dans les messages ne peuvent être modifiées.
Non-répudiation : Une fois qu'un message est envoyé, l'expéditeur ne peut pas nier qu'il a transmis le message ultérieurement.
Authentification: L’expéditeur et le destinataire peuvent confirmer mutuellement leur identité.
Principaux types de cryptographie
Il existe trois principaux types de cryptographie utilisés aujourd’hui :
- Cryptographie à clé symétrique
- Cryptographie à clé asymétrique
- Fonctions de hachage
Jetons un coup d’œil rapide à chacun d’eux.
Cryptographie à clé symétrique
La cryptographie à clé symétrique est un protocole de cryptage dans lequel l'expéditeur et le destinataire utilisent une seule clé partagée pour le cryptage et le déchiffrement des messages. Ce système est également appelé cryptographie à clé privée ou à clé secrète. AES (système de cryptage avancé) est le protocole de chiffrement à clé symétrique le plus largement utilisé.
L’inconvénient majeur du chiffrement à clé symétrique est que les deux parties doivent échanger la clé par des moyens sécurisés. Si la clé est compromise, l’ensemble du protocole est compromis car une seule clé peut être utilisée pour le cryptage et le déchiffrement.
Protocoles à clé symétrique :
- AES
- DE LA
- Triple DES
- RC2
- RC4
- RC5
- IDÉE
- Poisson-globe
Cryptographie à clé asymétrique
La cryptographie à clé asymétrique est une approche de chiffrement plus sécurisée que la cryptographie à clé symétrique. Chaque utilisateur possède une paire de clés dans ce protocole : une clé privée et une clé publique. Comme son nom l’indique, la clé privée est gardée secrète, mais la clé publique est distribuée aux autres utilisateurs. À l’aide de la clé publique d’un destinataire prévu, n’importe quel utilisateur peut chiffrer un message et l’envoyer au propriétaire de cette clé. À partir de ce moment, ce message crypté ne peut être déchiffré qu’avec la clé privée du destinataire (le destinataire prévu).
La cryptographie à clé asymétrique est également appelée cryptographie à clé publique et est beaucoup plus sécurisée que la cryptographie à clé symétrique. RSA est l’algorithme asymétrique le plus populaire et le plus utilisé.
Protocoles à clé asymétrique :
- RSA
- DSA
- PKC
- Cryptographie à courbe elliptique
Fonctions de hachage
Une fonction de hachage est un algorithme de cryptographie qui prend une entrée de longueur arbitraire et produit une sortie de longueur fixe. Les valeurs renvoyées par une fonction de hachage sont appelées valeurs de hachage, codes de hachage, résumés ou simplement hachages. Le hachage est une opération à sens unique, ce qui signifie que vous ne pouvez pas reconvertir le hachage ou le résumé vers son entrée d'origine. Le hachage lui-même n'utilise aucune clé, mais il est utilisé dans la cryptographie à clé symétrique et asymétrique pour stocker des valeurs temporaires. Le hachage est l'un des éléments constitutifs de la cryptographie moderne. MD5 et SHA sont les fonctions de hachage les plus utilisées, bien que SHA1 et MD5 soient désormais obsolètes et ne devraient plus être utilisées.
Algorithmes de hachage :
- Résumé des messages 5 ( MD5 )
- SHA (algorithme de hachage sécurisé)
- RIPEMD
- Tourbillon
Une illustration simple de la cryptanalyse
Pour comprendre le mode opératoire de la cryptanalyse, voici un exemple élémentaire, utilisant un chiffre de substitution basique.
Supposons que nous souhaitions effectuer une cryptanalyse sur le texte chiffré suivant : W STNB XTV. La première chose qu’un cryptanalyste rechercherait est la fréquence : fréquence des mots et fréquence des lettres.
Fréquence des mots
Si l’on vous donne une phrase dans laquelle l’un des mots comporte une lettre, il est raisonnable de supposer que le mot correspondant est un mot populaire d’une lettre comme « je » ou « un ». De même, un mot fréquent de deux lettres a de bonnes chances d'être « sur », « ça », ou « comme », etc. Et un mot fréquent de trois lettres pourrait être « le ».
Fréquence des lettres
Les lettres les plus courantes en anglais sont e, t, a, o, i, n. Les lettres les moins courantes en anglais sont j, x, q, z.
Si nous avons un texte chiffré dans lequel la lettre X est la lettre la plus fréquente, nous pouvons raisonnablement supposer que X représente E. Nous pouvons nous tromper, cela impliquera donc quelques essais et erreurs. Et ces essais et erreurs sont la cryptanalyse.
Si nous supposons que W représente le mot commun I, le mot suivant a d'excellentes chances d'être un verbe. Cela limite encore davantage les possibilités de ce que pourrait être le prochain mot. En essayant différentes substitutions jusqu'à ce que vous puissiez déduire des séquences de mots qui ont du sens, vous finirez par passer de W STNB XTV à I LOVE YOU. Et une fois que vous avez fait cela, vous avez effectué une cryptanalyse.
Exemples d'attaques de cryptanalyse
Il existe différentes manières d’utiliser la cryptanalyse comme une arme pour une attaque. Voici quelques-unes des techniques de cryptanalyse les plus remarquables.
Attaque en texte clair connu (KPA)
Dans une attaque en clair connue, l'attaquant a accès à le texte chiffré et son texte brut correspondant. L'attaquant utilise ces connaissances pour tenter de deviner les clés secrètes ou les livres de codes, lui permettant ainsi de déchiffrer le reste des messages.
Les attaques en texte clair connu sont plus efficaces lorsqu'elles sont utilisées sur des chiffrements moins complexes, tels que les chiffrements par substitution simple, dans lesquels chaque lettre est remplacée par un caractère de substitution fixe, comme dans notre exemple ci-dessus.
Étant donné que la plupart des chiffrements modernes sont beaucoup plus complexes qu’une simple substitution, il y a de fortes chances que cette attaque par cryptanalyse ne vous mènera pas très loin.
Attaque en texte clair choisi (CPA)
Dans une attaque en texte clair choisi, l'attaquant envoie du texte brut à chiffrer et analyse le texte chiffré renvoyé pour tenter de déduire la clé privée utilisée pour le déchiffrement. Cette attaque est réalisable contre la cryptographie à clé asymétrique car la clé publique, la clé utilisée pour chiffrer les messages, est, comme son nom l'indique, publique.
Attaque par texte chiffré uniquement (COA)
Une attaque par texte chiffré uniquement (COA) ou attaque par texte chiffré connu est une attaque de cryptanalyse dans laquelle l'attaquant n'a accès qu'au texte chiffré. Même sans accès au texte en clair, l’attaquant peut toujours en savoir quelque chose. Cela pourrait être la langue du texte brut, par exemple. Dans de nombreux protocoles de chiffrement, les données et les messages du protocole standard sont inclus dans le texte en clair. Ceux-ci peuvent être devinés ou déduits à l’aide d’une attaque par texte chiffré uniquement.
Même une interruption partielle, comme dans l'exemple ci-dessus dans lequel l'attaquant n'obtient pas la clé ou le texte en clair mais peut obtenir des informations sur le texte en clair, peut révéler des informations extrêmement sensibles et est toujours considérée comme un succès en cryptanalyse.
Attaque de l'homme du milieu (MITM)
Bien qu’il ne s’agisse pas en soi d’une attaque de cryptanalyse, une attaque réussie de l’homme du milieu peut compromettre votre système de chiffrement. Lors d'une attaque MITM, l'attaquant se situe entre vous et votre destinataire et peut intercepter les messages que vous envoyez à votre destinataire. Dans le cas d’envoi de messages cryptés, vous devrez d’abord envoyer votre clé publique à votre destinataire (en supposant qu’il ne l’ait pas encore). Lorsque vous envoyez votre clé publique, l'attaquant pourrait l'intercepter, la remplacer par sa clé et transmettre le message avec la clé échangée à votre destinataire. Dès lors, l’attaquant serait capable de lire toutes vos communications cryptées entre vous et votre destinataire.
Attaques par canal secondaire
Les attaques par canal secondaire, comme leur nom l’indique, ne tentent pas de briser directement le chiffrement. Ils exploitent les informations auxiliaires que les ordinateurs génèrent en permanence. Ce sont des éléments tels que les émissions électriques émises par votre écran ou votre disque dur, qui changent en fonction de la tâche effectuée par l'ordinateur. Il peut également s'agir de la quantité d'énergie consommée par votre ordinateur, qui varie également en fonction de la tâche effectuée.
Spectre et fusion , qui ont secoué notre monde informatique en 2018, sont deux variantes de la même vulnérabilité sous-jacente qui affecte presque toutes les puces informatiques fabriquées au cours des 20 dernières années. Et Spectre et Meltdown profitent tous deux d’une attaque par canal secondaire basée sur le temps. Ils utilisent chacun une technique différente pour tromper le processeur et l’amener à accéder aux informations secrètes et à les coder dans le cache du processeur. Ensuite, en forçant le processeur à rechercher des informations spécifiques en mémoire et en mesurant le temps nécessaire pour accéder aux informations demandées, l’attaquant peut analyser les temps de réponse du processeur et obtenir les informations secrètes du cache.
Résultats
Le problème avec les attaques par cryptanalyse est qu’elles peuvent être très dommageables, même si elles ne réussissent que partiellement. Les cryptographes ont classé les effractions considérées comme des attaques de cryptanalyse réussies. La plupart d’entre eux sont partiels.
Pause totale : L'attaquant peut en déduire l'intégralité de la clé secrète. Grâce à la clé privée, l'attaquant peut décrypter tous les messages interceptés.
Déduction globale : L’attaquant peut produire un algorithme fonctionnellement équivalent au système de chiffrement et de déchiffrement qu’il tente de briser sans connaître la clé. Cela permet à l'attaquant de chiffrer et déchiffrer les messages comme s'il possédait la clé.
Déduction d'instance : Lorsqu’un attaquant peut découvrir du texte brut ou chiffré supplémentaire qu’il ne connaissait pas auparavant. Ils n’ont peut-être pas déchiffré le code, mais ce simple fragment de texte brut ou chiffré supplémentaire peut suffire à l’attaquant pour causer des problèmes.
Déduction d'informations : L'attaquant obtient des informations (c'est-à-dire le nombre de bits qui composent le message) sur du texte brut ou chiffré inconnu auparavant. Cela pourrait entraîner d’autres ruptures dans le système de chiffrement.
Algorithme distinctif : L'attaquant peut différencier le chiffre d'une altération aléatoire. Cela révèle des indices sur l’algorithme de chiffrement et peut conduire à des ruptures plus importantes.
Les pauses partielles énumérées ci-dessus permettent à l'attaquant de « gravir les échelons », si vous voulez. À mesure qu’ils glanent de plus en plus d’informations dans vos messages, ils se rapprochent de plus en plus d’une rupture totale. Et la quantité de dégâts qu’ils pourraient causer augmente également.
Outils populaires utilisés pour la cryptanalyse
CryptoSMT
CryptoSMT est un outil utilisé pour effectuer la cryptanalyse de primitives symétriques telles que les chiffrements par blocs et les fonctions de hachage. Il est basé sur des solveurs SMT/SAT comme STP, Boolector, CryptoMiniSat et a été développé par Stefan Kölbl.
Boîte à outils ARX
Le Boîte à outils ARX est un ensemble d'outils pour étudier les chiffrements et les fonctions de hachage ARX (add-rotate-xor). Il a été développé par Gaétan Leurent et a été présenté lors de la conférence SHA-3 en mars 2021.
Cryptanalyse d'un algorithme de chiffrement par brouillage d'images (ISEA)
' Cryptanalyse d'un algorithme de chiffrement par brouillage d'images » est un référentiel d'outils de cryptanalyse. Le référentiel contient des codes pour les attaques en texte chiffré uniquement et les attaques en texte clair connues sur ISEA. Il comprend également des codes pour calculer l'indice de similarité structurelle (SSIM) d'une image, sur la base du documentCryptanalyse d'un algorithme de chiffrement de bits de pixels par brouillage d'images. Il a été développé par Dongdong Lin.
Se protéger contre la cryptanalyse
Il ne semble pas y avoir grand-chose que vous puissiez faire pour vous défendre contre les attaques de cryptanalyse, à part vous assurer que vous utilisez des systèmes de cryptage et des chiffrements sécurisés dans votre infrastructure numérique et que vous maintenez vos logiciels à jour. Cependant, cela implique ce qui suit :
- Utiliser à jour chiffrement et des algorithmes de hachage. SHA1 et MD5, par exemple, ne sont plus considérés comme sécurisés et ne doivent pas être utilisés
- Utilisez des clés de chiffrement suffisamment longues. Par exemple, les clés RSA doivent avoir une longueur d'au moins 2 048 bits pour les négociations VPN.
- N'oubliez pas de détruire les clés remplacées
- Utilisez des mots de passe forts et utilisez un générateur de nombres aléatoires éprouvé et testé pour générer vos clés
- Salez vos hachis (ajouter du bruit aléatoire). Comme les mots de passe, les sels doivent être longs, uniques et aussi aléatoires que possible.
- Utilisez le secret de transfert parfait (PFS) pour empêcher le déchiffrement de vos sessions passées ou futures si votre clé actuelle est compromise. La plupart des fournisseurs VPN utilisent PFS aujourd'hui
- Essayez et masquer votre trafic crypté pour le faire ressembler à du trafic régulier et éviter d’annoncer le fait que vous utilisez le cryptage. Obfsproxy est un exemple d'outil d'obscurcissement pouvant être utilisé avec le réseau Tor.
- Un système de détection d'intrusion (IDS) vous avertira en cas de violation mais n’empêchera pas la violation. Néanmoins, réduire votre temps de réponse peut limiter les dégâts, c'est pourquoi un bon IDS est recommandé.
Conclusion
Voilà donc ce qu’est la cryptanalyse, en un mot. Il s’agit plus d’un moyen d’attaque que d’une attaque en soi. Mais dans la mesure où cela conduit et permet une attaque, c’est une attaque. Le cryptanalyste récolte un peu plus d'informations à chaque étape du jeu jusqu'à atteindre la charge utile : le décryptage de vos secrets. Une fois que l’attaquant connaît vos secrets, il ouvre un tout nouveau monde d’exploits et d’attaques possibles. Assurez-vous donc de suivre les conseils ci-dessus.
Soyez prudent.