Tutorial sur la Cryptographie et le système de cryptage à clef publique RSA



Documents pareils
Cryptographie RSA. Introduction Opérations Attaques. Cryptographie RSA NGUYEN Tuong Lan - LIU Yi 1

Cours 14. Crypto. 2004, Marc-André Léger

Chapitre 7. Sécurité des réseaux. Services, attaques et mécanismes cryptographiques. Hdhili M.H. Cours Administration et sécurité des réseaux

La sécurité dans un réseau Wi-Fi

Les fonctions de hachage, un domaine à la mode

(Third-Man Attack) PASCAL BONHEUR PASCAL 4/07/2001. Introduction. 1 Domain Name Server. 2 Commandes DNS. 3 Hacking des serveurs DNS

Acer edatasecurity Management

Cryptologie à clé publique

Architectures PKI. Sébastien VARRETTE

Calculateur quantique: factorisation des entiers

Projet Matlab : un logiciel de cryptage

Aristote Groupe PIN. Utilisations pratiques de la cryptographie. Frédéric Pailler (CNES) 13 janvier 2009

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

Chapitre 1 I:\ Soyez courageux!

Travail d intérêt personnel encadré : La cryptographie

Cryptographie et fonctions à sens unique

CRYPTOGRAPHIE. Signature électronique. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Enfin une messagerie dont l utilisateur n est pas le «produit»!

Le format OpenPGP. Traduit par : Sébastien Person. personseb@yahoo.fr. Matthieu Hautreux. matthieu.hautreux@insa-rouen.fr.

Les algorithmes de cryptographie dans les réseaux Wi-Fi

Questionnaire pour connaître ton profil de perception sensorielle Visuelle / Auditive / Kinesthésique

AGASC / BUREAU INFORMATION JEUNESSE Saint Laurent du Var - E mail : bij@agasc.fr / Tel : CONSIGNE N 1 :

Introduction à l algorithmique et à la programmation (Info 2)

Les risques liés à la signature numérique. Pascal Seeger Expert en cybercriminalité

La prise de conscience de la Cyber Sécurité est en hausse

Fiche Pratique. Présentation du problème. Installation du logiciel. Etape 1. MAJ le 17/10/2011

Le protocole sécurisé SSL

Certificats (électroniques) : Pourquoi? Comment? CA CNRS-Test et CNRS

Journées MATHRICE "Dijon-Besançon" DIJON mars Projet MySafeKey Authentification par clé USB

Auxiliaire avoir au présent + participe passé

LES SECURITES DE LA CARTE BANCAIRE

TECHNIQUES DE CRYPTOGRAPHIE

Cours d initiation à la programmation en C++ Johann Cuenin

Activité 1. Compter les points Écriture binaire des nombres. Résumé. Liens pédagogiques. Compétences. Âge. Matériel

Ne tombez pas dans les pièges tendus par

Cryptographie appliquée

ÉPREUVE COMMUNE DE TIPE Partie D

Fonction de hachage et signatures électroniques

Skype (v2.5) Protocol Data Structures (French) Author : Ouanilo MEDEGAN

Petite introduction aux protocoles cryptographiques. Master d informatique M2

La sécurité dans les grilles

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

Analyse et programmation 1

Ludovic Mé http ://rennes.supelec.fr/rennes/si/equipe/lme/ Campus de Rennes Equipe SSIR

Boîte électronique. Découverte des principales fonctions d une messagerie électronique. (et les pièces jointes)

Constat. Nicole DAUSQUE, CNRS/UREC

WHITE PAPER. Quels avantages la déduplication offre-t-elle aux entreprises? Livre blanc Acronis

Principes de cryptographie pour les RSSI

GUIDE POUR AGIR. Comment RÉDIGER. une lettre de MOTIVATION JE RECHERCHE DES OFFRES D EMPLOI ET J Y RÉPONDS. Avec le soutien du Fonds social européen

Créer son institut de Beauté Esthétique à domicile

Manuel des logiciels de transferts de fichiers File Delivery Services

Algorithme. Table des matières

Signature électronique. Romain Kolb 31/10/2008

Certificats X509 & Infrastructure de Gestion de Clés. Claude Gross CNRS/UREC

Sécurité de l'information

Protocoles cryptographiques

Mieux comprendre les certificats SSL THAWTE EST L UN DES PRINCIPAUX FOURNISSEURS DE CERTIFICATS SSL DANS LE MONDE

0x700. Cryptologie Pearson France Techniques de hacking, 2e éd. Jon Erickson

L identité numérique. Risques, protection

Protéger les documents électroniques avec les Solutions Adobe

Les failles Format String

Cryptologie et physique quantique : Espoirs et menaces. Objectifs 2. distribué sous licence creative common détails sur

Richard MONTBEYRE Master 2 Professionnel Droit de l Internet Administration Entreprises. La banque en ligne et le protocole TLS : exemple

Accès distant Freebox v6 Configuration

Ce document décrit la démarche à suivre pour installer les outils de développement et compiler le projet TANAGRA.

Cryptologie. Algorithmes à clé publique. Jean-Marc Robert. Génie logiciel et des TI

Fiche Pratique. Etape 1 : Retrouver la clé depuis votre PC connecté.

TP 1 Outils collaboratifs de base

Les Tutoriaux Utilisez Foxmail comme client de messagerie

Logiciel Libre Cours 3 Fondements: Génie Logiciel

Les principales difficultés rencontrées par les P.M.E. sont : «La prospection et le recouvrement des créances» Petit déjeuner du 26 juin 2012

Du 03 au 07 Février 2014 Tunis (Tunisie)

1. La famille d accueil de Nadja est composée de combien de personnes? 2. Un membre de la famille de Mme Millet n est pas Français. Qui est-ce?

Comment se connecter au dossier partagé?

L informatique comme discipline au gymnase. Renato Renner Institut für Theoretische Physik ETH Zürich

Livre blanc. Sécuriser les échanges

LES RESEAUX SOCIAUX SONT-ILS UNE MODE OU UNE REELLE INVENTION MODERNE?

Tutoriel déploiement Windows 7 via serveur Waik

Comprendre le web analytics, et réussir son projet web!

Areca Backup Première Sauvegarde - Configurez votre premier groupe et votre première cible.

Circonscription de. Valence d Agen

Note technique. Recommandations de sécurité relatives aux mots de passe

Chapitre 3 : Crytographie «Cryptography»

Encryptions, compression et partitionnement des données

Kerberos mis en scène

I.1. Chiffrement I.1.1 Chiffrement symétrique I.1.2 Chiffrement asymétrique I.2 La signature numérique I.2.1 Les fonctions de hachage I.2.

Calculer avec Sage. Revision : 417 du 1 er juillet 2010

Mon métier, mon parcours

Devoirs, leçons et TDA/H1 Gaëtan Langlois, psychologue scolaire

Compte rendu : Bourse Explora Sup

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Table des matières. Avant-propos... Préface... XIII. Remerciements...

Transcription:

Tutorial sur la Cryptographie et le système de cryptage à clef publique RSA I. Introduction II. L algorithme RSA III. Un peu de mathématiques IV. RSA tool² V. Application sur un Crackme VI. Factorisation supérieure à 512 bits VII. Outroduction VIII. Greetings

I. Introduction Ce tutorial à pour but d expliquer le fonctionnement du système de cryptage a clef publique RSA, de ses créateurs: Rivest, Shamir et Addleman. Je n y expliquerais pas l histoire de l algorithme étant donné qu une recherche sur google vous fournirait tous ces renseignements. J ai choisi d écrire ce tutorial car il existe certes de nombreux autres tutoriaux sur RSA mais très peu sont en français et la plupart sont peu adaptés aux débutants en la matière. Ce tutorial a été écrit dans le but d apprendre aux novices le fonctionnement de l algorithme RSA, et ensuite d être capable de mettre en pratique ces connaissances nouvelles en attaquant plusieurs Crackmes utilisant RSA avec différentes implémentations. J espère donc que vous y trouverez les réponses à vos questions, et que cet algorithme assez utilisé dans les «crypto-crackmes» ne vous laissera plus perplexe! Bonne lecture

II. L algorithme RSA Nous allons maintenant étudier le fonctionnement de RSA dans les grandes lignes, nous verrons les calculs de plus près dans la partie suivante. RSA est un algorithme de cryptage a clef publique, il utilise deux clefs publiques (n et e) pour crypter les données ; et une clef privée (d), qui avec (n), permet de décrypter les données. Cela fonctionne selon le modèle suivant : Donc la force d RSA réside dans le fait que tous les destinataires peuvent crypter un message avec n et e publiques, mais seul l émetteur peut décrypter avec la clef d qui elle, est privée.

III. Un peu de mathématiques L algorithme RSA repose sur l opération modulaire d élévation à la puissance. On va utiliser les éléments suivants : e= clef de cryptage (publique) d= clef de décryptage (privée) n= produit de p et q (public) n est le produit de deux nombres premiers p et q. n= p.q C= message crypté M= message décrypté Les deux formules à retenir sont : C= M ^ e mod n (cryptage) M= C ^ d mod n (décryptage)

Concrètement, cela veut dire quoi? Cela veut dire que quand vous allez vous attaquer à un binaire utilisant RSA, vous allez rechercher n et e, car comme il sont publiques, ils sont utilisés pour crypter les données que vous aller rentrer dans le binaire ; mais vous ce qui vous intéresse, ce n est pas de crypter, mais de décrypter donc vous aimeriez bien trouver d, et la nous allons avoir besoin d un outil spécifique : RSA tool² de te! Cet outil va nous permettre à partir de n et e, de retrouver les deux premiers p et q en factorisant n, avec lesquels il va calculer la clef privée d. A partir du moment ou vous possédez n et d, vous pouvez décrypter les informations qui vous intéressent dans le binaire (serial par exemple ). Mais comme nous allons le voir par la suite, RSA est basé sur le fait qu il est facile de calculer le produit de p et q, Mais qu il est beaucoup moins aisé de factoriser n, surtout si n a été choisi très grand.

IV. RSA tool² RSA tool est très simple d utilisation, vous avez récupéré n et e et vous souhaitez retrouver d, prenons par exemple : n= CDF391132F17ED0D1D8A13E282EE39B9 e= 10001 Vous rentrez n et e et vous pressez «Factor N», désormais vous avez p et q, il ne vous reste plus qu a presser «Calc.D» :

V. Application sur un Crackme Maintenant le moment tant attendu, après la théorie, la pratique! Nous allons nous attaquer à un crypto-keygenme pour débutants : Small RSA keygenme for newbies by Lutin Noir Il utilise une implementation de RSA trés simple; RSA-190 bits + MD5 Un petit scan sous PEiD nous indique qu il est packé avec ASPack 2.1, je vous fais confiance pour l unpacking ;- )

On ouvre avec Olly, ctrl-n, GetDlgItemTextA, entrée, et on tombe sur cette portion de code : Soit, nous sommes en présence de deux bignums : e=10001 n= 2F774486FD3B97FFA559687F7F9D5335CA3D16FBB60C0019 Ils vont être utilisés pour crypter notre serial.

Et si l on continue on tombe sur ceci en 0x40115F : Soit, on compare la String2 qui est le résultat du cryptage de notre serial, et la String1 qui est le résultat du cryptage de notre nom. Il faut donc verifier : Serial(crypté)=Nom(crypté) Vous l aurez sans doute reconnu, la String1 est le Hash Md5 de votre nom, quand vous tomberez sur d autres types de hash, utilisez le hash calculator présent dans l archive. Donc a ce stade nous avons presque tous les éléments en main pour récupérer notre serial : e, n, Hash Md5 de notre nom. Pour utiliser notre formule de decryptage ; M= C ^ d mod n Il ne nous manque plus que d. Ouvrons donc RSA tool, on rentre n et e, on factorise, ce qui nous donne : P=69EF193F0EC20A9E57B455DB Q=72B4BF519A43852C9F9C761B D=2312552808E487A2F561E2BBEF5FB7275C2BD350491DB9A1

Désormais nous pouvons résoudre mathématiquement le problème du décryptage : On doit vérifier : Serial(crypté)=hash md5(nom) Souvenez-vous des deux formules : C= M ^ e mod n (cryptage) M= C ^ d mod n (décryptage) Donc : Serial ^ e mod n = hash md5(nom) Serial= hash md5(nom) ^ d mod n Serial= hash md5(nom) ^ 2312552808E487A2F561E2BBEF5FB7275C2BD350491DB9A1 mod 2F774486FD3B97FFA559687F7F9D5335CA3D16FBB60C0019 Cette opération se calcule aisément avec un soft tel que maple ou mathematica, ou la bigcalto. Donc pour moi : Serial= 5F9EF826E36403F76EB7CE6C22F4F4D9 ^ 2312552808E487A2F561E2BBEF5FB7275C2BD350491DB9A1 mod 2F774486FD3B97FFA559687F7F9D5335CA3D16FBB60C0019 Nom= Gu3tt@ Serial= 19E90FDA309ECE57C29FE9BA1A0A0BC82F2C76D428C5A807

VI. Factorisation supérieure à 512 bits Vous êtes normalement capable à présent d attaquer un binaire utilisant RSA en factorisant n, mais comment ferez-vous si n est trop grand pour être factorisé avec RSA tool? Et bien c est ce que nous allons voir brièvement dans cette partie, avec RSA tool vous pourrez factoriser n dans un temps raisonnable jusqu'à 512 bits. Cela dépend de nombreux facteurs, et une clef bien choisie de cette taille là est incassable avec nos moyens, néanmoins il existe des failles et certaines clefs supérieures à 512 bits peuvent être cassées en utilisant un autre outil : Rsa Attacking Toolkit (RAT) Cet outil utilise plusieurs méthodes d attaque pour de très grandes clefs. Nous allons voir deux d entres elles sur deux clef de 1024 bits ; les attaques Weger & Wiener.

Première méthode d attaque : Weger n=9be29093439a7855dff27d74c7bcac60feca520ae10f82eb749 3BEE6D100C501C0D10088593098FCBFD476B2F3EA27961AB362076 F3640B91B761CD664A5115D38C391D6671CE9E0E1C05785A85C477 F171FE3B32359D74F599A46381974D20A5C6F873C2FCDA0BB0A573 0C5D3925FA1FF2FA8D7FDDBBF84F860D5531EADB66D e=10001 A priori n est inattaquable car 1024 bits, mais le choix des clefs pour RSA comporte ici une faille, que l attaque Weger permet d exploiter. Cette attaque fonctionne quand p et q sont proche l un de l autre, ce qui est le cas ici comme nous allons pouvoir le constater. Ouvrez RAT, sélectionnez «Weger Attack», Rentrez n et e et pressez «compute». Le résultat s affiche en quelques secondes : p=c7c42a9e37786e981d9f58a16fb17ef082f588903b49d3f51e63 B285E3388B41202E8136B1D86C2CA3FBBF2D04B646B3D5FFB2A33 47C23ABA64B5BB235B9F5C7 q=c7c42a9e37786e981d9f58a16fb17ef082f588903b49d3f51e63 B285E3388B41202E8136B1D86C2CA3FBBF2D00FE7316A68E649429 009018D96A5C1477CB222B d=2625cdc79c15a33930b2c0ece12c54eaefaf47608e2f2394c75 498B517949EA18D341873459055001559C32A8BF25379B2530FBC4E 04F2D5D9D88FBA0FAB2D9246D9CE3CC7B4CFEE32F12B64D095E0 E423C5CF7A4179C6837208513E6D9A4E3C42D26D59C62D8D040F73 27D0A5F285F13570A098B4664E13EDF3C2296A4FCC69

Deuxième méthode d attaque : Wiener n=7d4c538a3766ca67c73534105ab812817e0e3c5f1cc3853136aa C8279D501EB51572226C060D420A70331348B6E0F1974DFB969B7B E30E31F8128EAF3A0CBE4D5C134528AD61E707AC3E6233BF5755D A4FDB63E48AC053A00D227C3A9B031FC282157CB3071ECA940131 40ABC1F886DE9EBF6ED1C39965ECF46846BF74BFC681 e=44d7a0fd047ca62c70df9c4e4b77d22cdc7a07ff325e4302ca C6EC7F79321E325338EDFCB86F56F8E67D5458559446F9840F69E2 20326AA75FFDF60679B1A7E1EF8ABBC3DC873B3C19ED7C0A59667 AF746E4877907AB2FF9C85BBFEAF3AF8013676E05EA735EDF6AE8 D5FE8B130D7B805CC28844B921C3100FA7282DA359DBA7 Avec l attaque Wiener nous pouvons étudier une autre faille, l importance de la taille de d. Cette attaque fonctionne quand d est relativement petit par rapport à n, p et q. Ouvrez RAT, sélectionnez «Wiener Attack», Rentrez n et e et pressez «compute». Le résultat s affiche en quelques secondes : p=c107516c875698ed29319a7c8c45adecb0a7c9a0d0616e7b2be EF408216BD645C039EABB81615AEDA9C54636D14A83814A219705C 4B37E1403F872757396E883 q=a62c893e3ddbeeb366239a1edbadecec3f3d953e43d90c1206 B80B54C88B2AC203455EEB427C6ED31F5683D014E16E37D207A250 0EA436FF3D5E438C25E3FDAB d= EB192BBCF26A8C61E7B8BEBB7D7A3C6B Vous venez d attaquer et de factoriser deux clefs RSA de 1024 bits!

VII. Outroduction Voila ce Tutorial touche à sa fin, au final il m aura pris un certain temps à rédiger ainsi j espère que vous l apprécierez et qu il vous aura appris ou aidé a comprendre les base de la RSA. Si vous avez des commentaires, des suggestions ou des questions, n hésitez pas à m en faire part par mail : Gu3tt@hotmail.fr

VIII. Greetings Tous les membres actifs de FC, Ceux à qui je dois mes connaissances en crypto : BigBang, black-eye, jb, Kerberos Ceux que je vois sur msn : Skiller, jige, haiklr(n oublie pas le twix^^) Tout ceux que j ai oubliés! Et vous bien sûr pour avoir lu jusqu ici! Gu3tt@