Cryptanalyse du Chiffrement Damier Alexandre -M2 CCS
Sommaire 1.Introduction 2.Le chiffrement 3.Vulnérabilité 4.Détection 5.Décryptement 6.Trappes ?
Introduction Chiffrement allant de XOR (le plus faible) à RC4 avec une clé de 128 bits Le XOR est un opérateur logique qui correspond à un « OU exclusif » Même principe que le cryptage de Vigenère, puis on effectue un XOR, bit par bit. L'algorithme est complètement symétrique. Exemple
Introduction Chiffrement allant de XOR (le plus faible) à RC4 avec une clé de 128 bits Chiffrement présent jusqu’à Office % des particuliers et près de 80% des licences professionnelles En 2005, Hongjun Wu met en évidence une faiblesse dans l’utilisation de RC4 128 de la suite Office Les clés restent les mêmes pour toutes les versions modifiées !
Le chiffrement Via un mot de passe Outils -> Options -> Onglet Sécurité -> Options avancées XOR utilisé par défaut si on ne clique pas sur Paramètres avancés Ce que font la plupart des utilisateurs ! XOR est un algorithme simple et facile mais pitoyable en terme de sécurité (utilisation d’un dérivé du mot de passe) Le cas XOR …
Le chiffrement Plusieurs options proposées (comme la signature numérique) Différentes longueurs de clés Celui censé offrir la meilleure sécurité est RC4 avec clé de 128 bits C’est celui que nous allons cryptanalyser Algorithme RC4
Le chiffrement Chiffrement de type flot Le texte clair M est combiné à une séquence aléatoire Sig produite par l’expansion de la clé K pour produire le texte chiffré C C t = M t Sig t Chiffrement symétrique M t = C t Sig t Algorithme RC4
Le chiffrement Clé de chiffrement généré par le logiciel Obtenue à partir du mot de passe de l’utilisateur et d’un vecteur d’initialisation (IV généré aléatoirement par Word) K= F ( H ( IV || mot de passe ) F fonction de dérivation, K la clé de chiffrement, H la fonction de hachage (SHA1) et || l’opérateur de concaténation. Algorithme RC4
Le chiffrement L’utilisation d’un même mot de passe pour plusieurs documents n’affaiblit pas la clé… hachage avec IV censé être généré aléatoirement à chaque fois ! Algorithme RC4
Vulnérabilité Microsoft Word viole une règle fondamentale en cryptologie Utilisation du même IV pour différentes versions d’un document Obtention de messages parallèles Profondeur de parallélisme : nombre de messages parallèles relativement à une même suite chiffrante. Principe général
Vulnérabilité Création de deux fichiers « message1.doc » et « message2.doc » Word avec une modification Mot de passe « protection » Nous allons ici utiliser Hackman 9.0 qui est un éditeur hexadécimal, un désassembleur et un débuggeur tout en un Analyse technique
Vulnérabilité premiers octets identiques ! Donc même suite chiffrante, donc même IV ! Analyse technique
Vulnérabilité Comparaison des IV Après le marqueur Analyse technique
Vulnérabilité Word positionne toujours le début du texte à l’offset 0xA00 IV visible après le marqueur La taille des données (nombres de caractères) se détermine en lisant les valeurs x et y situées respectivement aux offsets 0x21D et 0x21C. T (en octets) = (x-8) * y Données toujours accessibles en clairs même avec l’option « chiffrer les propriétés du document » Structure d’un document Word
Détection C 1 = M 1 Sig 1 C 2 = M 2 Sig 2 ( C 1 C 2 ) = ( M 1 M 2 ) ( Sig 1 Sig 2 ) M 1 M 2 possède un profil statistique aisément identifiable La valeur Sig 1 Sig 2 aura un profil statistique aléatoire Des messages parallèles… Principe général
Détection Deux cas de figure pour déterminer si M 1 et M 2 sont parallèles (H 0 ) : Les textes ne sont pas parallèles et donc le texte chiffré exhibe un profil statistique totalement aléatoire (H 1 ) : Les textes sont parallèles et donc Sig 1 et Sig 2 du fait de la mauvaise gestion de la clé. ( C 1 C 2 ) = ( M 1 M 2 ) On bâtit alors un test d’hypothèses simples pour décider du parallélisme Des messages parallèles… Principe général
Détection Estimateur Z = i=0..n ( C 1 i C 2 i 1 ) n étant la taille commune entre C 1 et C 2 C k i représente le bit i du message k L’estimateur Z compte le nombre de bits valant 0 dans le texte ( C1 C2 ) Z suit une loi Binomiale de paramètre n et p, où p est la probabilité pour que les bits de ( C1 C2 ) valent 0. Des messages parallèles… Algorithme de détection
Détection Cette loi binomiale peut être approximée lorsque Z par : Une loi normale de paramètres np et ( np ( 1-p )) 1/2 (Théorème central limite) Sous H 0 (messages non parallèles), Z suit la loi N( n/2, n/2 ) Sous H 1 (messages parallèles), Z suit la loi N ( np, ( np ( 1-p )) 1/2 ) avec p > 1/2 Des messages parallèles… Algorithme de détection
Détection Le test est alors simple, on choisit un seuil S défini par les probabilités d’erreur que l’on se fixe et la décision s’établit comme suit : Si Z<S alors les textes ne sont pas parallèles Si Z>S les textes sont parallèles Les différentes expériences montrent des pics très importants de l’estimateur Z pour les textes parallèles. La détection est ainsi aisée par la simple présence d’un pic Des messages parallèles… Algorithme de détection
Détection Cela ne permet pas de distinguer plusieurs groupes différents de textes parallèles Mais le parallélisme est une relation d’équivalence, tout groupe de messages parallèles sera une classe d’ équivalence pour cette relation On compare alors deux à deux nos N textes chiffrés et extrayons les groupes de messages parallèles. Des messages parallèles… Algorithme de détection
Détection À venir… Des messages parallèles… Résultats
Décryptement Exemple connu Construction d’un corpus LettreFréqLettreFréqLettreFréq a8,40j0,31s8,08 b1,08k0,05t7,07 c3,03l6,01u5,74 d4,18m2,96v1,32 e17,26n7,13w0,04 f1,12o5,26x0,45 g1,27p3,01y0,30 h0,92q0,99z0,12 i7,34r6,55
Décryptement Plus généralement, les n-grammes Construction d’un corpus 3-gFréq3-gFréq3-gFréq ENT0,90EME0,47ESD0,35 LES0,80ELA0,44TDE0,35 EDE0,63RES0,43 DES0,61MEN0,42 QUE0,60ESE0,42 AIT0,54DEL0,40 LLE0,51ANT0,40 SDE0,51TIO0,38 ION0,48PAR0,36
Décryptement Pour répondre à nos besoin un tel corpus doit être : Suffisamment représentatif de la langue cible De taille raisonnable pour permettre un traitement rapide Nous définissons alors une variable aléatoire discrète X et nous appelons P i la probabilité que notre événement soit égal à l’élément x i de notre corpus En réalité, il faudra également prendre en compte certains éléments de ponctuations, espacement, … Construction d’un corpus
Décryptement C 1, C 2, …, C p les textes chiffrés que l’on se donne x 1, x 2, …, x N les n-grammes de notre corpus Pour chaque n-gramme Cg 1 du premier texte chiffré C 1 Hypothèse sur la valeur du n-gramme Mg 1 du texte clair Calcul du n-gramme chiffrant k Mg 1 Cg 1 A partir de ce n-gramme chiffrant, calcul des Mg i k Cg i Principe du décryptement
Décryptement Réitération du procédé pour chaque élément du corpus Constitution pour chaque n-gramme des textes N p-uplets (Mg 1, …, Mg i,…, Mg p ) Ce sont autant de possibilités pour les textes en clair M 1, …, M p Association aux N p-uplets trouvés les N p-uplets de probabilités (P(Mg 1 ), …, P(Mg i ),…, P(Mg p )) Principe du décryptement
Décryptement Il nous faut alors maximiser le p-uplet de probabilités Choix d’un bon estimateur Z dépendant de la nature des textes Z est fonction positive strictement croissante du vecteur de probabilités Principe du décryptement
Décryptement Pour chaque n-gramme Cg 1 de C 1 faire : Z Pour m 1 {x 0, x 1, …, x N } faire l’hypothèse Mg 1 m 1 Calculer k m 1 Cg 1 Pour i {2, …, p} Calculer m i k Cg i Calculer P(m i ) Fin pour Si Z[P(m 1 ), …, P(m i ),…, P(m p )] > Z Z Z[P(m 1 ), …, P(m i ),…, P(m p )] Pour i {1, …, p} Mg i m i Fin pour Fin si Fin pour Algorithme général
Décryptement De nombreux choix possibles de la fonction du cumul des fréquences Utilisation de Z + i=1..p f i a où f i est la fréquence des n-grammes trouvés Le choix de a dépend de la nature du texte Pour des textes riches en noms propres et termes techniques rare, le choix optimal est a 0.3 Optimisations et paramètres optimaux – Choix de Z
Décryptement Méthode d’extraction sans recouvrement Exemple d’extraction de 4-grammes Méthode d’extraction avec recouvrement Exemple d’extraction de 4-grammes Ainsi les n-grammes clairs trouvés se chevauchent (n-1 caractères communs entres deux n-grammes consécutifs) Optimisations et paramètres optimaux – n-grammes
Décryptement À venir… Résultats expérimentaux
Trappes ? Obtention des textes parallèles par les fichiers temporaires de Word Création de fichiers temporaires à chaque modification de document Utilisation de PC inspector file recovery
Trappes ? Vulnérabilité partagée entre l’OS et le l’application Deux failles indépendantes non critiques faille critique Méthode classique pour l’implémentation de trappes Vulnérabilité présente version après version