Rappel des propriétés à assurer Cryptographie et utilisation Secret lgorithmes symétriques : efficace mais gestion des clés difficiles lgorithmes asymétriques : peu efficace mais possibilité de diffuser une partie de la clé Solution Mélanger les deux ssurer le secret :stockage Utilisation de la cryptographie Stockage : algorithmes symétriques Générer aléatoirement une clé secrète Chiffrer la totalité des données avec Chiffrer la clé avec un mot de passe Robustesse système = robustesse du mot de passe Secret de la transmission de vers 1. choisit une clé symétrique aléatoire 2. chiffre le message avec 3. envoie le message chiffré et la clé secrète chiffrée avec la clé publique de
ssurer le secret :transmission Construction d une clé symétrique avec les secrets de et Exemple Diffie-Hellmann et se mettent d accord sur un grand nombre premier p, et un nombre générateur g. génère un nombre aléatoire a, et envoi :!=g a mod p génère un nombre aléatoire b, et envoi "=g b mod p Exercice: 1) Comment construire un secret partagé K qui pourra servir de clé symétrique pour et. 2) Quel est la fonction à sens unique utilisée pour assurer le secret de transmission? ssurer le secret :transmission Secret de la transmission de vers 1. choisit une clé symétrique aléatoire 2. chiffre le message avec 3. envoie le message chiffré et la clé secrète chiffrée avec la clé publique de Secret de la transmission uthentification M Deviner la clé Kalea Connaître Kpriv E(Kalea)Kpub E(M)Kalea 1. D(E(Kalea)Kpub)Kpriv=Kalea 2. D(E(M)Kalea)Kalea=M Être sur de l identité de celui qui Envoie le message écrit (modifié) la donnée Trouver ce qui permet d authentifier une entité Sa clé privée! Solution naturelle Chiffrer tout avec sa clé privée Éventuellement avec la méthode vue précédemment
uthentification (2) Méthode lourde Grande quantité de chiffrement Est-ce vraiment nécessaire? Il suffit de ne chiffrer qu une empreinte des informations Comment calculer cette empreinte? Utilisation des fonctions de hachage ttention aux attaques type : rejouer Fonctions de hachage H(M)=h où M est une suite de bits Propriétés Facile à calculer Non inversible (évidemment!) - Principe : discriminant 1 bit du message change fonction de hachage complètement différente. «Impossibilité» à partir d un hash de trouver une suite de bits ayant le même hash => collision Fonctions de hachage (2) MD4, MD5 (128 bits) => cassée Collisions en 2 40 essais Encore largement utilisées SH-0, SH-1 (160 bits) Cassées (2 63 attaques) SH-256 et SH-512 Résiste encore (pour combien de temps?) Utilisation des fonctions de hachage uthentification : a écrit/envoyé les données M Message M H(M)=h h est chiffré avec la clé privée de, signature=e(h,kpriv) veut vérifier que c est bien qui a signé M Il calcule H(M)=h1 Il calcule D(signature,Kpub)=h2 Si h1=h2 alors il est sur que l empreinte a bien été généré par
Utilisation des fonctions de hachage (2) Si modifications des données H1 ne correspond pas à l empreinte chiffrée Modifications découvertes Intégrité Utilisation identique Les deux propriétés vont généralement de pair Utilisation du chiffrement dans une communication Je veux me connecter à Voilà Kpub Prouve que tu es : E(alea,Kpub) Voilà : alea Seule information : celui qui a répondu à la première requête connaît Kpub et Kpriv Confiance placée dans le «réseau» Exercice : Donner un scénario d attaque. Comment savoir si Kpub est bien la clé de? Démo : Ouverture ssh en verbose et fichier de configuration T C est vrai? Utilisation d un chiffrement dans une communication (2) Je veux me connecter à Voilà Kpub Prouve que tu es : E(alea,Kpub) Voilà : alea jouter un tiers de confiance T Ne change rien au problème? Si! vec la clé du tiers on peut authentifier beaucoup de sites Utilisation du chiffrement dans une communication (3) Reste le problème de la communication systématique Solution : chiffrer la clé de avec la clé privée du tiers de confiance Utilisation de clés de session Récapitulons Identité de Son adresse Signé par KprivT Sa clé publique C est un certificat!
Certificats Contient l identité de la ressource Serveurs utilisateurs, services, etc. Une norme : X509 Placer sa confiance dans le certificat = placer sa confiance dans le tiers qui l a émis utorité de certification (C) Demo firefox sur https:// webmail.imag.fr/imp/ login.php Enlever la gestion des certificats. utorité de certification La clé privée de l autorité de certification est une ressource critique Elle ne doit pas être diffusée Comment gérer une organisation hiérarchique? Distribution de la clé => mauvais Centralisation de la signature => mauvais en performances Un C devrait pouvoir déléguer sa signature Hiérarchie de C utre organisation des chaînes de certification C domaine 1 C racine C domaine 2 C domaine 3 C racine signe les certificats des C des différents domaines Chaîne de confiance vérifiable Et le C racine? uto-signé! Chaque C maintient ses listes de révocation (CRL) Certificats multi-signés Peuvent être signés par d autres certificats utilisateurs Confiance dans un certificat si Confiance dans un de ceux qui l a signé Récursif : confiance se propage S il existe une chaîne de confiance menant à un certificat en qui on a confiance
Utilisation des certificats dans une PKI: Public Key Infrastructure Missions Émettre des certificats pour des entités authentifiées Révoquer et maintenir les certificats Éventuellement fournir un service OCSP (Online Certificate Status Protocol) Définir et publier des pratiques de certification Si C racine, règles de délégation Publier les certificats (annuaire) Éventuellement : Gérer les clés privées Transporter/acheminer les clés privées Utilisation des certificats dans une PKI: Public Key Infrastructure (2) cteurs Détenteur d un certificat (serveur) CRL : Certificate Revocation List Utilisateur d un certificat (celui qui veut s y connecter)) OCSP : online certificate status protocol utorité de certification Génère les certificats Publie les certificats Gère les archives Maintient les CRLs, éventuellement serveur OCSP utorité d enregistrement Vérifie les informations et peut créer les clés Peut avoir des autorités déléguées nnuaire Importance de la séparation des rôles Confiance dans le C = confiance dans l autorité d enregistrement C est elle qui vérifie les données avant d en demander la signature C a un rôle administratif Facture au nombre de certificats émis utorité d enregistrement a un rôle de contrôle Facture au service rendu Certificat signé par un C de confiance? Fonctionnement complet : ouverture d une session Je veux me connecter à Voilà Prouve que tu es : E(alea,Kpub) Voilà : alea Voilà la clé symétrique que nous allons utiliser : E(Ksession,Kpub) Clé de session (chiffrée avec Kpub) symétrique La clé de session doit être robuste! Elle expire au bout d un certain volume de données
Une autre approche : Kerberos Utilisation de chiffrement symétrique exclusivement ut : donner à une entité, authentifiée, l autorisation d accès à une ressource Entités veut accéder à la ressource et : ressource atteinte S : serveur d authentification (uthentification Server) ST : serveur de ticket donne la permission (Ticket-Granting Service) Séparation des rôles d authentification et de permission TicketX,S : Tx,s=s,EKs(idx,t,tend,Kx,s) ; Kx,s clé de session entre X et S uthentification : Xx,s=Kx,s(idx,t) 3: Mot de passe => K 7: EKa,b(t+1) Une autre approche : Kerberos v4 (2) 1: Je suis, je veux accéder à ST 6:,;, Ticket, 2: EKa(K,ST);Ticket,ST 4:,ST;, Ticket,ST 5: EKa,ST(Ka,b);Ticket, ST S Difficulté de diffuser les clés privées initialement Exercice: Indiquer le contenu des tickets, et des uthentifications. Utilisations pratiques : protocoles et outils Transmission asynchrone (mail) S-MIME : supporté par toutes les messageries «propriétaires», X509 GPG : issue de la communauté «libre», utilise des certificats multi-signés et du X509 Héritier de PGP Synchrone (TCP) Une norme : Transport Layer Security (ancien Secure Socket Layer) Peut utiliser les certificats X509 Une implantation de référence : openssl Un outil : ssh (secure shell) spects légaux Situation actuelle en France Seul le secret fait l objet de limitations Chiffrement symétrique en 128 bits utilisable sans déclaration ucune restriction sur l asymétrique Pour le reste du monde, une seule adresse http://rechten.uvt.nl/koops/cryptolaw/
La faille de la semaine Les E-passeports sont modifiables! Problème : certificats auto-signés Réponse simple à un problème compliqué Gérer la clé privée du C Risque de vol (protection physique) Révocation du certificat C = révocation de millions de passeports Confiance mutuelle entre états Chaque C doit se porter garant de la procédure utilisée pour signer Test sur C et pays pas seulement sur la validité Rôle des e-passeports Limiter les contrôles humains