1.23k likes | 2.19k Vues
Introduction à la cryptographie. Plan du cours. Confidentialité et algorithmes de chiffrement Fonctions de hachage et signature Authentification mutuelle et échange de clés de session Certificats et PKI Outils cryptographiques. Introduction.
E N D
Introduction à la cryptographie Ciefa Poly-informatique
Plan du cours • Confidentialité et algorithmes de chiffrement • Fonctions de hachage et signature • Authentification mutuelle et échange de clés de session • Certificats et PKI • Outils cryptographiques Ciefa Poly-informatique
Introduction • But de la cryptographie : fournir un certain nombre de services de sécurité : • Confidentialité • Intégrité • Authentification de l’origine des données ou d’un tiers • Non-répudiation • … • Moyens mis en œuvre : mécanismes de sécurité, construits au moyen d’outils cryptographiques : • Chiffrement • Scellement et signature • Protocoles d’authentification mutuelle avec échange de clefs • … Ciefa Poly-informatique
Partie 1 • Confidentialité et algorithmes de chiffrement • Fonctions de hachage et signature • Authentification mutuelle et échange de clés de session • Certificats et PKI • Outils cryptographiques Ciefa Poly-informatique
Différents types d’algorithmes • Algorithmes symétriques ou à clef secrète => Plus rapides donc mieux pour chiffrement • Algorithmes asymétriques ou à clef publique => Échange de clefs secrètes => Signature Ciefa Poly-informatique
Chiffrement symétrique : principe • Principe : clef de chiffrement = clef de déchiffrement • La clef doit rester secrète • La sécurité du système dépend de ce secret Ciefa Poly-informatique
Chiffrement symétrique : algorithmes • Algorithmes de chiffrement en continu (stream cipher) • Agissent sur 1 bit à la fois • Le plus courant actuellement : RC4 (longueur de clef variable, svt 128 bits) • Algorithmes de chiffrement par blocs (block cipher) • Opèrent sur le texte en clair par blocs (svt 64 bits) • DES (clef de 56 bits codée sur 64) • 3DES (112), IDEA (128), RC6 (128), AES (128 à 256) Ciefa Poly-informatique
Exemple d’algorithme : DES Ciefa Poly-informatique
Intérêt chiffrement symétrique • Avantages : • Rapide en général (dépend de la taille de la clé) • Inconvénients : • Ne permet pas la signature électronique • Problème de distribution des clés : N(N-1) clés N personnes 2 Ciefa Poly-informatique
Chiffrement asymétrique : principe • Chiffrement : clef publique utilisée pour le chiffrement, seul le détenteur de la clef privée peut déchiffrer • Signature : clef privée utilisée pour le chiffrement, seul son détenteur chiffrer, mais tout le monde peur déchiffrer Ciefa Poly-informatique
Chiffrement asymétrique : intérêt • Avantages : • Permet la signature électronique • Utilise deux clefs distinctes, l’une ne permettant pas de retrouver l’autre • Inconvénients : • Trop lent pour une utilisation intensive en chiffrement => utilisé seulement pour échange de clef et signature Ciefa Poly-informatique
Comparaison algorithmes asymétriques Ciefa Poly-informatique
Algorithme asymétrique : RSA Génération des clés publiques et privées: • on choisit 2 entiers premiers p et q (512 bits chacun) • on calcule N = p*q • on choisit e premier avec (p-1)(q-1) • on calcule d tel que ed = 1 mod ppcm((p-1),(q-1)) • Clé publique : (N, e) • Clé privée : d Ciefa Poly-informatique
Combinaison clefs publique/ secrète Ciefa Poly-informatique
Partie 2 • Confidentialité et algorithmes de chiffrement • Fonctions de hachage et signature • Authentification mutuelle et échange de clés de session • Certificats et PKI • Outils cryptographiques Ciefa Poly-informatique
Intégrité et authentification • Service souhaité : pouvoir s’assurer que le message • Émane bien de l’expéditeur annoncé (authentification) • N’a pas été modifié pendant le transfert (intégrité) • Authentification de l’origine des données et intégrité sont inséparables, et forment « l’authenticité ». Ciefa Poly-informatique
Fonctions de hachage • Fonction de hachage à sens unique (sans collision) • Convertit une chaîne de longueur quelconque en une chaîne de taille inférieure fixe : empreinte (ou condensé) • À sens unique : • Facile à calculer mais difficile à inverser • Il est difficile de trouver deux messages ayant la même empreinte • MD5 (Message Digest 5) => empreinte de 128 bits • SHA (Secure Hash Algorithm) => empreinte de 160 bits Ciefa Poly-informatique
Signature Numérique (1/2) • Signature • Vérification Ciefa Poly-informatique
Signature Numérique (2/2) • Mécanisme fournissant les services suivants : • Authentification de l’origine des données • Intégrité • Non répudiation de la source • Plus rapide que de signer tout le document • Algorithmes • DSS => standard correspondant à : SHA + El Gamal • RSA => norme constituée de : MD5 (ou SHA) + RSA Ciefa Poly-informatique
Partie 3 • Confidentialité et algorithmes de chiffrement • Fonctions de hachage et signature • Authentification mutuelle et échange de clés de session • Certificats et PKI • Outils cryptographiques Ciefa Poly-informatique
Introduction • Relations entre échange de clefs et authentification mutuelle • L’échange de clefs doit être authentifié pour éviter les attaques • Une clef de session permet d’étendre l’authentification à l’ensemble de la communication • Protocole d’authentification mutuelle avec échange de clef (tout en un) • Type d’échange de clefs • Transport : ex RSA (utilisé par SSL) • Génération : Diffie-Hellman Ciefa Poly-informatique
Transport de clefs Ciefa Poly-informatique
Diffie-Hellman : principe • Protocole cryptographique permettant à 2 tiers de générer un secret partagé sans informations préalables l’un sur l’autre • Principe : • Échange de valeurs publiques • Permettant de générer un secret partagé Ciefa Poly-informatique
Diffie-Hellman : propriétés • Sensible à l’attaque de l’intercepteur : l’attaquant envoie sa valeur publique à la place de chacun des tiers et partage ainsi un secret avec chacun d’entre eux. => solution : authentifier les valeurs publiques (certificats ou signature) • Propriété de Perfect Forward Secrecy (PFS) • Principe : la découverte du secret à long terme ne compromet pas les clefs de session (ie secret n’intervient pas dans la fabrication des clefs) Ciefa Poly-informatique
Partie 4 • Confidentialité et algorithmes de chiffrement • Fonctions de hachage et signature • Authentification mutuelle et échange de clés de session • Certificats et PKI • Outils cryptographiques Ciefa Poly-informatique
Distribution des clefs publiques • Idée de départ : simple annuaire des clefs publiques • Problèmes à résoudre : • Distribuer les clefs de façon authentifiée et intègre • Stocker les clefs de façon sûre (protection en intégrité) • Limiter le nombre de clefs à stocker • Solution = certificats et hiérarchies de certification • Élément de transport d’une clef publique, dont l’authenticité est vérifiable de façon autonome • Authentification : lie une clef publique et son possesseur • Intégrité : toute modification du certificat sera détectée Ciefa Poly-informatique
Principe du certificat • Certificat = Structure de données • Permet de lier une clef publique à différents éléments, au moyen de la signature et d’une autorité de confiance : • Nom du propriétaire de la clef • Dates de validité • Type d’utilisation autorisée • … • Format actuel : X509v3 • Émis par une autorité de certification (CA) : • Garantit l’exactitude des données • Certificats vérifiables au moyen de la clef publique de la CA • Listes de révocation (CRL) : permettent de révoquer des certificats avant leur expiration normale Ciefa Poly-informatique
Émission et vérification des certificats Ciefa Poly-informatique
Les certificats X.509v3 Ciefa Poly-informatique
Qu’est-ce qu’une PKI ? • PKI = Public Key Infrastructure = infrastructure à clefs publiques • Nature : infrastructure, ensemble d’éléments, protocoles et services… • Rôle : gestion des clefs publiques à grande échelle • Enregistrement et émission • Stockage et distribution • Révocation et vérification de statut • Sauvegardes et récupération • La plupart des PKI actuelles utilisent des certificats Ciefa Poly-informatique
Composants d’une PKI • Elements : • Utilisateurs finaux (possesseurs de clefs) • Autorités d’enregistrement (Registration Authority) • Autorité de certification (Certificate Authority) • Annuaire • Service de validation • Hiérarchie • Plusieurs niveaux de certification Ciefa Poly-informatique
Partie 5 • Confidentialité et algorithmes de chiffrement • Fonctions de hachage et signature • Authentification mutuelle et échange de clés de session • Certificats et PKI • Outils cryptographiques Ciefa Poly-informatique
Introduction • Les mécanismes de cryptographie peuvent être appliqués • Au niveau des documents et données à protéger : PGP, S/MIME, signature XML • Au niveau des protocoles de communication : IPsec, TLS/SSL, SSH • La protection des échanges peut se faire • Au niveau physique • Au niveau réseau : IPsec • Au niveau transport : TLS/SSL • Au niveau applicatif : SSH Ciefa Poly-informatique
IPsec : caractéristiques • IPsec = IP Security Protocol (norme IETF) • Principe : chaque paquet IP échangé est chiffré et/ou authentifié • Seule norme de chiffrement au niveau réseau. • Peut être mis en œuvre dans tout type d’équipement sur le réseau: serveur, routeur, PC, etc … • Algorithmes cryptographiques : • Chiffrement : RC5, DES, Triple DES, … • Authenticité : HMAC-MD5, HMAC-SHA, … Ciefa Poly-informatique
IPsec : fonctionnalités fournies • Modes • Transport : sécurisation de bout en bout, en-tête non modifiée • Tunnel : encapsulation dans un nouveau paquet IP • Services apportés par IPsec : • Confidentialité des données • Authenticité des données (authentification + intégrité) • Protection contre le rejeu => Permet d’atteindre un bon niveau de sécurité Ciefa Poly-informatique
TLS/SSL : caractéristiques • TLS = Transport Level Security, SSL= Secure Socket Layer (norme IETF depuis 1995 – SSL 3.0 = TLS 1.0) • Seule norme de chiffrement au niveau TCP • Protocole client/serveur : repose sur la fiabilité de TCP, pour offrir aux applications de niveau supérieur une interface de communication (API non normalisée) • Algorithmes cryptographiques : • Protocoles d’échange de clefs : RSA, Diffie-Hellman • Chiffrement des données : DES, 3DES, RC4, IDEA • Authentification : HMAC-MD5, HMAC-SHA Ciefa Poly-informatique
TLS/SSL : fonctionnalités fournies • Services de sécurité fournis : • Confidentialité des données • Authentification et intégrité des données • Authentification optionnelle des tiers • Peut être mis en œuvre dans tout protocole sur TCP : • HTTP, FTP, NNTP, SMTP, POP,… • Utilisation principale : HTTPS • Limite de la norme : pas de liste de révocation des certificats (mais les produits le font : Apache + mod_ssl, …) Ciefa Poly-informatique
TLS/SSL : Composants et authentification • Composants : • SSL Record Protocol : protection des données • SSL Handshake Protocol : établissement de la session • SSL Change Cipher Spec Protocol : négociation des algorithmes cryptographiques et de compression • SSL Alert Protocol : messages d’erreur • Authentification avec SSL • Identification des serveurs basée sur les noms DNS • Authentification du serveur par un certificat • Authentification du client par mot de passe dans la communication chiffrée (propre à HTTP, pas à SSL) • À partir de SSL 3.0, il est possible d’authentifier le client au moyen d’un certificat Ciefa Poly-informatique
SSH • SSH = Secure Shell • SSH = un protocole IETF, un produit, une société • Remplaçant sécurisé de telnet, rlogin, rsh, rcp, etc… • Principe : • Authentification mutuelle de l’utilisateur et du serveur • Chiffrement de l’ensemble de la session • Nombreux algorithmes (IDEA, DES, 3DES, RC4, …) • Usages : • Connexion à distance : administration déportée • Permet de rediriger des ports • Échanges de fichiers Ciefa Poly-informatique
PGP • PGP = Pretty Good Privacy • PGP = un protocole, un produit, une ex-société • Principe du modèle de la confiance directe • Les utilisateurs • Distribuent les clefs • Signent les clefs des personnes qu’ils connaissent • Révoquent leurs clefs perdues • Les versions récentes permettent la délégation de révocation • Usages : • Messagerie électronique • Divers : chiffrements de données, de disques Ciefa Poly-informatique