Oracles Cryptographiques. Trouver une joke de padding



Documents pareils
Modes opératoires pour le chiffrement symétrique

TP 2 : Chiffrement par blocs

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

Authentification de messages et mots de passe

INF 4420: Sécurité Informatique Cryptographie II

Les fonctions de hachage, un domaine à la mode

Programmation Objet - Cours II

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Compromission d'un environnement VOIP Cisco Exploitation du Call Manager SSTIC Francisco. Juin 2013 LEXFO 1

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

CRYPTOGRAPHIE. Chiffrement par flot. E. Bresson. SGDN/DCSSI Laboratoire de cryptographie

Le Protocole DHCP. Définition. Références. Fonctionnement. Les baux

Le protocole sécurisé SSL

INSTALLATION D'OPENVPN:

Cryptographie. Master de cryptographie Architectures PKI. 23 mars Université Rennes 1

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

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

La Technologie Carte à Puce EAP TLS v2.0

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

Perso. SmartCard. Mail distribution. Annuaire LDAP. SmartCard Distribution OCSP. Codes mobiles ActivX Applet. CRLs

SSL ET IPSEC. Licence Pro ATC Amel Guetat

Chapitre 3 : Crytographie «Cryptography»

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

Cryptologie à clé publique

ÉPREUVE COMMUNE DE TIPE Partie D

La sécurité des réseaux. 9e cours 2014 Louis Salvail

Analyse des protections et mécanismes de chiffrement fournis par BitLocker

Université d Aix-Marseille Master Réseaux & Télécoms Cryptographie

Académie Microsoft Exchange Server 2010 MODULE 2 : Migration des boites aux lettres de Exchange 2003 à Exchange 2010

Tech-Evenings Sécurité des applications Web Sébastien LEBRETON

Algorithmique avec Algobox

Principes de cryptographie pour les RSSI

La sécurité applicative et les tests d'intrusion, beaucoup plus qu'un scan automatisé. Conférence ASIQ, mars 2014

TECHNIQUES DE CRYPTOGRAPHIE

Le protocole RADIUS Remote Authentication Dial-In User Service

Web : Stockage de mot de passe LOG619 Automne 2011 Olivier Bilodeau

21 mars Simulations et Méthodes de Monte Carlo. DADI Charles-Abner. Objectifs et intérêt de ce T.E.R. Générer l'aléatoire.

les Formulaires / Sous-Formulaires Présentation Créer un formulaire à partir d une table...3

La sécurité dans les grilles

La Latecion protection anti-intrusion Web Web Le concept «Zero effort Security» La protection des applications Extranet

Devoir Surveillé de Sécurité des Réseaux

Authentification avec CAS sous PRONOTE.net Version du lundi 19 septembre 2011

OWASP Open Web Application Security Project. Jean-Marc Robert Génie logiciel et des TI

Livre blanc. Sécuriser les échanges

Fonction de hachage et signatures électroniques

Date de découverte 16 Octobre 2014 Révision du bulletin 1.0

Université de Reims Champagne Ardenne. HTTPS, SSL, SSH, IPSEC et SOCKS. Présenté par : BOUAMAMA Mohamed Nadjib AZIZ Xerin

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

et Groupe Eyrolles, 2006, ISBN :

FORMATION SUR «CRYPTOGRAPHIE APPLIQUEE

LES SECURITES DE LA CARTE BANCAIRE

Rapport de certification ANSSI-CSPN-2010/07. KeePass Version 2.10 Portable

PySQLi. Framework d'injection de code SQL

Présentation. LogMeIn Rescue. Architecture de LogMeIn Rescue

Domain Name System Extensions Sécurité

1. Introduction Création d'une requête...2

BitLocker. Aurélien Bordes SSTIC juin 2011

Introduction aux SGBDR

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

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

IPS-Firewalls NETASQ SPNEGO

Les certificats numériques

Sécurité des systèmes d'informations et communicants dans le médical

Le Passeport Biométrique. Benoit LEGER CISSP ISO LD

StorageTek Tape Analytics

Bitcoin : crypto-monnaie décentralisée ouverte et libre Mathématiques, algorithmes et méthode de confiance

TD n o 8 - Domain Name System (DNS)

1. Présentation de WPA et 802.1X

SSL. Secure Socket Layer. R. Kobylanski janvier version 1.1 FC INPG. Protocole SSL Application avec stunnel

Petite introduction aux protocoles cryptographiques. Master d informatique M2

Étudiant : Nicolas Favre-Félix IFIPS Info 3. Les One Time Passwords, Mots de passe à usage unique

La citadelle électronique séminaire du 14 mars 2002

TIW4 : SÉCURITÉ DES SYSTÈMES D INFORMATION

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

Sécurité des réseaux wifi. CREIX Kevin GIOVARESCO Julien

Créer votre propre modèle

RapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/ Présentation. 1.2 Ressources

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

Autorité de certification

Sécurisation du DNS : Les extensions DNSsec

INF4420: Sécurité Informatique

Le Seven Card Stud. Club Poker 78

Méthodologies SCRUM Présentation et mise en oeuvre

DNSSEC. Introduction. les extensions de sécurité du DNS. Les dossiers thématiques de l AFNIC. 1 - Organisation et fonctionnement du DNS

Gestion des certificats digitaux et méthodes alternatives de chiffrement

Sécurité en milieu Wifi.

Sécurité des réseaux wi fi

Chapitre 2. Classes et objets

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

Le protocole SSH (Secure Shell)

Extraction de données authentifiantes de la mémoire Windows

Manuel des logiciels de transferts de fichiers File Delivery Services

Transcription:

Oracles Cryptographiques Trouver une joke de padding

Présentation Laurent Desaulniers CISSP, CISA, CISM, OSCP Pastafarian Cryptogeek Conseiller senior en sécurité Gabriel Tremblay B.Ing Logiciel, no lousy certs Pentester, Dev, Désagréable Président Subatomic Security Président NorthSec (nsec.io)

NorthSec (http://nsec.io) Le Hackus est Mort! Compétition en sécurité appliquée "Capture the flag" SmartCard Hardware Crypto Web Fun... Fun... JEOPARDY! (Public Shaming) 5-6-7 Avril 2013 (Montréal/Lieu à venir)

Attention : Pas brilliants Nous ne disposons pas, même a deux, d'assez de capital intellectuel pour avoir découvert ces attaques

Oracle quoi? + SSL??

Cryptographique! Un oracle cryptographique est une faille d'implémentation qui permet de déchiffrer un "ciphertext" sans posséder la clé. Il peut affecter autant l'algorithme que son méchanisme de padding ou autre appendice nouilleux nécessaire à son fonctionnement.

AES-ECB - Fonctionnement AES-ECB fonctionne sur une base de bloc de 16 bytes. Pour la présentation, nous assumons que AES-ECB fonctionne avec des boîtes magiques. mais Un bloc plaintext donne TOUJOURS le même plaintext.

AES-ECB - Fonctionnement Image non chiffrée et chiffrée Source: Wikipedia

AES-ECB - Problématique Les blocs sont indépendants. Il est donc possible de déchiffrer l'ensemble du ciphertext grace au pouvoir du Feng Shui Crypto*

AES-ECB - Détection DANS LA NATURE Longueur /16 Plaintext répété = Ciphertext répété Peut s'appliquer a DES sur 8 bytes.

AES-ECB - Oracle On doit controller une partie du plaintext Etre capable de causer la génération d'un deuxieme bloc Il devrait y avoir une partie du plaintext que nous ne controlons et que nous ne connaissons pas "Secret" utilisateur role secret Nous controlons "utilisateur" Nous n'avons aucune idée du reste.

AES-ECB - Oracle Être capable d'envoyer plusieurs requêtes Captcha Jetons Anti-CSRF Server hébergé sur autre chose qu'une ligne télégraphique

AES-ECB - Attaque 1. On cherche a trouver la longueur initiale du Plaintext Complet (ce que l'on contrôle + le reste, si il y en a) 2. On Ajoute 1 caractere a la fin de notre plaintext, ceci aura un impact sur le ciphertext: a. Meme longeur de ciphertext b. Longueur différente.

AES-ECB - Attaque Si il n'y a pas de changement de longueur, nous ajoutons un caractère jusqu'a ce que le ciphertext change de taille Longueur Ciphertext = Longueur Plaintext + Padding Si on a un ajout de bloc, on sait que nous avons dépassé le padding???????

AES-ECB - Attaque Donc Longueur_Ciphertext = Longueur Plaintext connu et inconnu + Padding Comme les blocs de padding ont 16 bytes, lorsque nous causons la génération d'un nouveau bloc. Alors: Longueur_plaintext = 16 - (Longueur plaintext controllé + longeur plaintext non_controllé) - 1 16 = Padding 1 = Le caractere de trop qui a fait générer un bloc.

AES-ECB - Attaque Pourquoi est-ce un oracle? Il est possible de déplacer le plaintext secret au sein du ciphertext Crypto Fengshui!

Crypto Fengshui Username Role LAURENT Admistra (Bloc 1) teurppppppppppppppp (Bloc2) Si, le username est AAAAAAAAAAAAAAA AAAAAAAAAAAAAAA AdministrateurPP

AES-ECB - Imaginer une biere dont vous connaisez le gout (ciphertext) - Vous connaissez tout les ingrédients (plaintext) sauf 1(premier byte du secret) - Comment pouvez vous déterminer lingrédient manquant si il n'existe que 26 ingredients possibles - Faire 26 fois la recette et valider le gout!

AES-ECB Etape 1: CryptoFengshui Etape 2: Faire un dictionnaire Essayer toutes les possibilités de AAAAAAAAAAAAAAAAAA\x00 AAAAAAAAAAAAAAAAAA\xFF Etape 3: Envoyer AAAAAAAAAAAAAAAAA "Et c'est tout!"

AES-CBC/PKCS5 - Fonctionnement "Cipher Block Chaining" Les blocs sont maintenant dépendant L'algorithme de padding est défini The evil PKCS5

AES-CBC Source: Wikipedia

AES-ECB - Fonctionnement Dessin wikipedia

AES-CBC - Concepts importants (IV) Un bloc de plaintext doit toujours etre chiffré avec le ciphertext précédent. Que faire pour le premier bloc? Le premier bloc est toujours composé de 16 bytes aléatoires, c'est Le Vecteur d'initialisation (IV) Ainsi, le meme plaintext chiffré deux fois, avec deux IV différent, donnera deux ciphertext différents. Meme si ils ont la même clef.

AES-CBC - Concepts importants (IMV) En version très simple (TRÈS), le déchiffrement AES ressemble a: 1. Prendre un bloc de ciphertext 2. Le passer dans des boites magiques (AES) auxquelles nous fournissons aussi la clé. 3. On obtiens un (IMV) 4. On XOR ce IMV avec le ciphertext du bloc précédent 5. On obtiens le plaintext

The Evil PKCS5 Il y a TOUJOURS un bloc de padding à la fin. Car le plaintext doit etre contigu a 16 bytes Alors on ajoute un "padding" pour combler les trous Ce padding est défini (norme): 1 byte restant, padding: \x01 2 bytes restant, padding: \x02\x02 3 bytes restant, padding: \x03\x03\x03... Le plaintext est contigu!?, Padding: \x16\x16\x16\x16\x16... 16*\x16 :)

AES-CBC/PKCS5 - Problématique Ceci expose un fait très intéressant Le padding peut être erroné! Il existe une façon de valider si le padding est valide

AES-CBC - Détection DANS LA NATURE Longueur /16 Plaintext répété!= Ciphertext répété Minimum 32 bytes (IV + bloc 1) Si on ne chiffre strictement rien : IV + chiffré (16*\x16). Si on chiffre juste un "A" : IV + chifré(a + 15*\x15) Modifier 1 byte du IV changera tout le reste du ciphertext A tester vraiment!!!

AES-CBC/PKCS5 - Oracle Si le système permet à l'attaquant de déterminer qu'une erreur de padding s'est produite nous sommes en situation d'oracle. Cette situation peut se manifester sous plusieurs formes: - Temps de réponse variable - Message d'erreur différent - Code de retour http différent

CBC+PKCS5 - Propriété importante Admetons un IV au hazard et 1 bloc de ciphertext La probabilité d'obtenir 15 caratère aléatoire et un padding a \0x01 est nettement supérieure à celle d'obtenir 16*\0x16 Ceci est bizare, mais important pour la suite :)

AES-CBC - Attaque 1. Déterminer comment le système exprime une erreur de padding 2. Déterminer comment le système exprime un déchiffrement réussi. (Demo) url-redirect SSO.

AES-CBC - Attaque 1. Concentrons nous sur 1 seul bloc 2. Nous allons couper le ciphertext pour ne garder que les 32 premiers bytes a. IV + Block1 3. On met le IV completement a 16*0x00 4. On incrémente le dernier byte du IV jusqu'à ce que le site nous retourne un déchiffrement réeussi.

AES-CBC - Attaque 1. Nous sommes en situation où ciphertext = IV + chiffré(block1 + \x01) Car le site n'a pas régurgité d'erreur. Il est cependant important de noter que notre url "plaintext" est completement loufoque. La valeur du caractere du IV est utilisée comme IMV [INSERER DESSIN DE 3 BLOCS)

En image Controle Controle Source: Immunity

AES-CBC - Attaque Il est possible de déchiffrer le dernier byte car: \0x01 XOR IMV = Plaintext[15]

AES-CBC - Attaque Comment s'attaquer au byte [14]? Si vous vous rapellez, nous cherchons une chaine terminée par \x02\x02 Maintenant que nous connaisons la valeur du IMV[15] nous pouvons calculer la valeur pour obtenir \x02 a Block1[15] IMV XOR \x02 XOR \x01 = IV[15]

AES-CBC - Attaque Nous recommencons l'attaque sur IV[14] Demo + Dessins + ramasser le sang C'est tout!

D'autres oracles Il existe plusieurs autres attaques de ce genre Bleinbacher Attack (RSA) Lenght-Extension (SHA1) D'autres s'ajouteront avec le temps! Hackfest 2013?.. hahah.