Fonction de Hachage - Les fonctions de hachage permettent de générer des
Importance de l’intégrité : empreintes des données dont l’intégrité est à renforcer
Les données peuvent changer: - Dans la machine elle- - La taille de l’empreinte est un facteur non négligeable / même / – Durant le transfert entre 2 machines - L’effet avalanche est recherché Origines des changements: – Erreurs d’inattention / - - Complémentarité authentification intégrité Altération malveillante Cryptographie Symétrique : à Clé secrète Solutions existantes: – Bits de parité / – Code auto Chiffrement (Encryptions): Processus, opération, ou correcteur (ex. Hamming) algorithme générant un cryptogramme à partir du texte en Risques suite au manque d’intégrité: – Falsification de clair. messages / – Usurpation d’identités / – Corruption du Cryptogramme (Ciphertext): Inintelligible pour une système d’exploitation / – Effacement des traces liées à personne ne possédant pas la clé de déchiffrement, Assure la une attaque confidentialité Recevoir une paire <message, empreinte> n’assure Déchiffrement (Decryption): Transformation :algorithme aucune garantie sur l’origine du message générant un texte en clair à partir du cryptogramme Sensibilité au changement : Effet avalanche: Petit Cryptographie: méthodes et outils permettant le changement, grand impact chiffrement et le déchiffrement des données, assurer la Résistance à la préimage : confidentialité et l’intégrité. Une fonction h est résistante à la préimage s’il est Cryptanalyse: méthodes et outils permettant de découvrir le difficile de trouver à partir d’une empreinte donnée p un maximum d’informations secrètes appartenant au domaine message m tel de la cryptographie : que h(m) = p Mode passif : Écoute des communications (messages Une fonction h est résistante à la seconde préimage s’il échangés). est difficile de trouver à partir d’un message m donné un Mode actif: Participation aux échanges: suppression, autre insertion, usurpation, … protocoles cryptographiques. message m’ tel que h(m) = h(m’) Crypto classique (par flot) Une fonction de hachage h est résistante aux collisions Transposition : Construire des anagrammes en changeant s’il est difficile de trouver deux messages m et m’ tel que l'ordre des lettres. h(m) = h(m’) Algorithme de Jules César : Consiste simplement à décaler one way hash function respecte les propriétés de les lettres de l'alphabet de quelques crans vers la droite ou la résistance à la préimage et à la 2nd préimage : – Weak gauche one way hash functions Substitution polyalphabétique Vigenère : chiffrement : collision resistant hash function respecte les propriétés de Additionner une lettre du texte en clair à une lettre de la clé : résistance à la seconde préimage et de résistance à la Vigenère (chiffré = clair + clé); Dechiffrement : Soustraire collision : – Strong one way hash functions une lettre du texte chiffré à une lettre de la clé : Vigenère Pour vérifier l’intégrité d’un message : Si le message et (clair= chiffré - clé); son empreinte ne correspondent plus, il y a eu une Algorithme de Nihilist : Matrice de chiffrement: 5 X 5; manipulation du message Construction de la matrice avec la 1ere clé; Cas particulier: I Pour la signature numérique Afin de permettre de signer & J ont le même code, chiffrrement par additionnons un message de longueur arbitrairement longue, colonne pas colonne les coordonnées du message et de la l’empreinte du message est signée au lieu du message 2eme clé; déchiffrement par la soustraction coordonnées proprement dit. chiffrés - coordonnées de la 2eme clé. MD2, MD4 et MD5 : Empreintes de 128 bits / Faiblesses des systèmes classiques: 1) Taille de la clé 2) Vulnérables aux collisions: messages différents avec une Réutilisation de la clé même empreinte. Crypto moderne (par bloc) RIPEMD 128 256 160 320 : RIPEMD 256/320 réduisent Principe de Kerckhoff : Séparation algorithme / clé : Le les risques de collisions mais ne sont pas très résistantes secret réside dans la clé et non pas dans l'algorithme aux attaques de préimage Principe de Shannon / Vernam : Masque jetable: SHA 1 (160 bits) : Vulnérable aux collisions. En 2^63 Théoriquement complètement incassable, Très peu pratique. opérations, on peut trouver des messages ayant la même Chiffrement DES : Crypto à clés secrètes ECB / CBC empreinte (2^80 opérations sont nécessaires pour une le ECB l’effet de confusion et d’avalanche n’est pas assure attaque massive). le CBC renforce l’effet de l’avalanche SHA 2 :- 4 versions: 224, 256 , 384 et 512 bits / - Non Authentification DES : DES vulnérable aux attaques par affectée par les vulnérabilités SHA 1 / - MITM attaque en force brute. 2008 brise la résistance de la preimage pour SHA 512 et Chiffrement AES : Crypto à clés secrètes - Trois versions: SHA 256 / - SHA 256 vulnérable aux collisions 128 : 10 itérations; 192 : 12 itérations; 256 : 14 itérations Grâce au paradoxe des anniversaires, il est possible de Conclusion déterminer l’effort requis pour trouver deux messages Chiffrement et déchiffrement de données en se basant sur ayant la même empreinte une clé secrète partagée entre les parties impliquées dans Pour une fonction de hachage produisant des empreintes l’échange de données, La cryptographie est essentielle pour de n bits, en choisissant au hasard 2^ n/2 messages, la assurer la confidentialité et l’intégrité des données probabilité d’avoir au moins deux messages ayant la Complexité n’est pas toujours synonyme de robustesse, La même empreinte est au moins 50% (1 chance sur 2). confidentialité des clés est le maillon faible de la - L’intégrité est une propriété importante / - La cryptographie symétrique résistance aux préimages est une qualité importante Problèmes des clés : publique : Le CA émet des certificats X.509 aux personnes - Nombre de clé: Une nouvelle clé pour chaque paire de qu’elle a pu authentifier. personnes - Une personne faisant confiance à un CA devrait pouvoir - Confidentialité des clés : Échange des clés identifier toutes les personnes authentifiées par ce CA. Cryptographie Asymétrique : à Clé publique - Chaque intervenant ayant un certificat peut prouver son Concept présenté par Diffie et Hellman : identité à tout autre intervenant ayant confiance au CA. - Afin de permettre une plus grande flexibilité, les CA Clé publique pour chaque intervenant : - Cette clé peuvent s’organiser en hiérarchie. Il suffit alors de faire peut être connue de tous / - Toute personne connaissant confiance au root CA pour identifier tous les intervenants. cette clé peut envoyer un messagechiffré au propriétaire Modèle du réseau de confiance : de cette clé / - Les clés publiques doivent être - Ce modèle du réseau de confiance est simple et sans distribuées de façon authentifiée. autorité centrale. Clé privée pour chaque intervenant : – Doit - Chaque intervenant construit son réseau de confiance. demeurer confidentielle / – Liée à la clé publique - Idéal pour un milieu informel, mais non pour une correspondante / - Permet de déchiffrer tout application où le cadre juridique est important. message chiffré avec la clé publique correspondante. - La cryptographie est un outil essentiel afin de s’assurer Cryptographie asymétrique s'explique par le fait qu'il de la confidentialité , de l’authenticité et de l’intégrité des utilise deux clés différentes, l'une, la clé publique, pour actifs informationnels. chiffrer, l'autre, la clé privée pour déchiffrer. - La confidentialité est garantie par l’encryptions ( on One way functions est une fonction à sens unique est une envoie le message chiffré) fonction dont il est facile d’obtenir le résultat mais difficile , - L’intégrité est garantie par le hachage ( on envoie le à partir du résultat d’obtenir les arguments initiaux. message chiffré et le hash du message) Computationally one way function est une function dont il - L’authenticité est garantie par la signature ( on envoie est facile d’obtenir le résultat mais difficile en un temps le message chiffré, le hash du message et la signature du raisonnable à partir du résultat d’obtenir les arguments hash du message initiaux - La source envoie un message chiffré avec la clé RSA chiffrement : L’idée principale est de séparer le publique du destinataire et le destinataire déchiffre le cadenas de la clé. Vous devez aussi publier des message avec sa clé privée copies de votre cadenas mais votre clé doit rester - Première chose à faire pour vérifier un certificat, il faut valider l’empreinte du hash, ensuite on vérifie la toujours secrète signature, on applique l’algorithme RSA avec la clé Le chiffrement de M: Clé publique : N et e ou N = p x q publique du CA on trouve l’empreinte du hachage du certificat Le déchiffrement du cryptogramme : Clé privée : d ou Les Mot De Passes (p, q) équivalent. Une attaque par dictionnaire plus rapide, L’attaquant peut accélérer considérablement la vitesse d’une attaque par dictionnaire en pré calculant une table arc en ciel (Rainbow Un déchiffrement AES ou DES en 1 à 5 millisecondes, Un table ) contenant les valeurs de hachage de tous les mots du déchiffrement RSA en 100 300 millisecondes dictionnaire. En pratique, RSA n’est pas utilisé pour le chiffrement des Hachage + sel naïf : L'ajout d'un sel ( salt ) consiste à messages, mais plutôt pour l’échange sécuritaire de clés de concaténer une chaîne aléatoire au mot de passe avant de sessions pour le chiffrement symétrique (Hybrid l'envoyer dans la fonction de hachage , Le sel est stocké avec cryptosystem) le mot de passe dans la base de données Problèmes Cryptographie Asymétrique : Clés publiques Résout le problème des rainbow tables populaires, doivent être certifiées comme étant authentique. Augmente la complexité de l'attaque dictionnaire Signature numérique : permet de: S’assurer de l’intégrité Sel naïf Problèmes : Mot de passes identiques vont toujours du message / Vérifier l’origine du message (non- être évidents à l'oeil répudiation). Sel naïf Solution : Ajouter un sel different pour chaque mot RSA- Signature numérique : est la notion duale du de passe au lieu de globalement, On stocke le sel chiffrement RSA. directement dans le champ password, Les attaquants doivent La signature du message M: maintenant tenter de craquer chaque entrée de la table de mot de passe séparément Key stretching : Problème: Les fonctions de hachage ont La vérification de la signature: été conçues pour être performantes pourtant la vitesse est votre ennemi ici car rapide veut dire qu'un attaquant peut rapidement faire son attaque exhaustive ( rainbow table La cryptographie à clé publique repose essentiellement rapidement calculée) sur l’authenticité des clés publiques Solution : En plus du sel par mot de passe, On fait 1000 Modèles d’infrastructure : itérations de l'empreinte dans une boucle ou encore, on Modèle hiérarchique : Ce modèle repose sur une autorité concatène 1000 fois le mot de passe et le sel avant de faire certifiant les clés des divers intervenants. l'empreinte - Le rôle de l’autorité de certification (Certification Contre mesure : Stocker les mots de passe des utilisateurs Authority CA) est de s’assurer de la validité de la hachés avec un ‘sel’ aléatoire, différent pour chaque correspondance entre un nom d’une personne et une clé utilisateur;