Algorithmes de Chiffrement et Communications sécurisées Abderrazak JEMAI
(c) Abderrazak JEMAI 12-2008
Plan
• Quelques définitions • Algorithmes symétriques • Algorithmes asymétriques • Communications sécurisées
(c) Abderrazak JEMAI 12-2008
Introduction - Communication sécurisée - • Pour assurer une communication sécurisée, on doit assurer: - La confidentialité, Seul le destinataire peut connaître le • contenu des messages qui lui sont transmis. - L’authentification, le destinataire d’un message doit pouvoir s’assurer de son origine. Un intrus ne doit pas se faire passer pour quelqu’un d’autre. - L’intégrité des données, le destinataire doit pouvoir s’assurer que le message n’a pas été modifié en chemin. - La non répudiation, Un expéditeur ne doit pas pouvoir, par la suite, nier à tort avoir envoyé un message.
•
•
•
(c) Abderrazak JEMAI 12-2008
Introduction et Définitions
• Données échangées (cid:1) risque d’interception des
données.
• Solution : chiffrer la communication • Définition : Le chiffrement est une technique
destinée à rendre les données illisibles pour les personnes non autorisées
(cid:1)Le chiffrement permet d’assurer la confidentialité, l’intégrité des données et l’authentification de l’émetteur.
(c) Abderrazak JEMAI 12-2008
Le chiffrement permet d’assurer • La confidentialité : Les données sont chiffrées,
donc illisibles par une tierce personne non autorisée (ne possédant pas les clés de décryptage).
• Intégrité : Toute modification des données
(message) les rend incohérentes par rapport à sa signature (empreinte/hash_code)
• Authentification : Si on arrive à décrypter un
message M par la clé publique Kp de la personne A, on est sure qu’il n’y a que A qui l’avait encrypté (et emis).
(c) Abderrazak JEMAI 12-2008
Cryptographie • La cryptographie est l’ensemble des connaissances et des techniques ayant pour but de rendre illisibles des messages aux observateurs autres que les destinataires légitimes. • Le chiffrement est un mécanisme de sécurité utilise pour transformer les données d’une forme intelligible (texte en clair) en une forme inintelligible (texte chiffré) pour apporter la confidentialité. La transformation inverse est appelée « déchiffrement ».
• Trois types d’algorithmes cryptographiques peuvent être distingués: les algorithmes de chiffrement à clé secrète (symétriques), es algorithmes de chiffrement à clé publique (asymétrique), et les algorithmes de chiffrement hybride.
(c) Abderrazak JEMAI 12-2008
Chiffrement symétrique
• Le cryptage symétrique fonctionne à l'aide d'une et unique clé, qui
permet à la fois de crypter les données et de les décrypter.
• Pour échanger des données cryptées entre deux personnes, il faut que
les deux personnes soient en possession de la clé de cryptage symétrique (appelée clé secrète) .
Clé secrète de Pierre
Clé secrète de Pierre
(c) Abderrazak JEMAI 12-2008
Spécificité et Problèmes du cryptage symétrique • Il faut pouvoir échanger la clé secrète à travers le
réseau de manière sécurisée
• Toute personne malveillante pouvant procurer la
clé secrète, elle peut déchiffrer le message.
• Authentification : Il n'y a pas besoin de garantir
l'identité de l'expéditeur.
• Pour chaque communication sécurisée, il faut pouvoir posséder une clé. Ce qui engendre une multiplication de clés, et ainsi, un problème de gestion des clés apparaît.
(c) Abderrazak JEMAI 12-2008
Exemples d’algorithmes à cryptage symétrique
Il existe plusieurs algorithmes qui fonctionnent sur ce principe :
• • DES (Digital Encryption Standard) est l’algorithme à clé symétrique
historiquement le plus connu (clés de 56 bits).
• La version améliorée est le Triple DES qui consiste à chiffrer successivement trois fois de suite avec deux ou trois clés différentes. Cet algorithme tend à devenir l’un des moins performant. IDEA (International Data Encryption Algorithm) est un algorithme assez récent (1992) qui effectue un chiffrement par blocs de 64 bits avec des clés de 128 bits. Son fonctionnement est proche de DES
•
• AES
(Advanced Encryption Standard)
: fait pour remplacer l’utilisation de DES, Les longueurs de clés prévues sont de 128, 192 et 256 bits.
• On peut aussi citer RC2, RC4, RC5 (Rivest's Code #4, #5 » 1987) ou
BLOWFISH (1993).
(c) Abderrazak JEMAI 12-2008
Avantages et Inconvénients des chiffrements symétriques
• Avantages :
- Rapide en général (dépend de la taille de la clé)
• Inconvénients :
– Ne permet pas la signature électronique (pas seulement
l’utilisateur qui peut reproduire la Signature) – Problème de distribution de clés : Nécessite une
transmission sécurisée de la clé secrète au destinataire.
(c) Abderrazak JEMAI 12-2008
Gestion de clés secrètes
• Problème de gestion de clés : Pour N personnes (cid:1) N(N-1)/2 clés
Solution à ce problème Cryptographie à clé publique, ou clé asymétrique
(c) Abderrazak JEMAI 12-2008
Chiffrement asymétrique • Contrairement au système à clé symétrique, ici, deux clés sont nécessaires pour établir une communication sécurisée. • La première clé demeure privée, alors que la deuxième est
publique.
• Généralement, on chiffre le message à expédier à l'aide de la clé publique du destinataire, et ce dernier, utilise sa clé privée pour le déchiffrer.
• L'avantage d'un tel système réside dans le fait qu'aucun
partage de secret n'est nécessaire
• La clé privée n'est connue que de son propriétaire • La clé publique est accessible à tous mais aucune
technique simple n'existe pour retrouver la clé privée à partir de la clé publique
(c) Abderrazak JEMAI 12-2008
Spécificité des clés asymétriques
• Ce qui est chiffré avec une des clés ne peut
être déchiffré que par l’autre clé
Publicité
• La connaissance d’une des clés ne permet
pas de déduire l’autre.
• Tout utilisateur possédant une clé publique peut crypter des informations, mais est dans l'impossibilité de les décrypter
(c) Abderrazak JEMAI 12-2008
Chifrement à clés asymétriques
(c) Abderrazak JEMAI 12-2008
Avantage et inconvénient des chiffrements asymétriques
• Avantages :
– Résout le problème de gestion de clés – Permet la signature électronique – Utilise deux clés distinctes, l’une ne permettant pas de
retrouver l’autre
• Inconvénients du chiffrement asymétrique – Lent pour une utilisation intensive en chiffrement
(utilisation pour échange de clés de session ou pour la signature)
(c) Abderrazak JEMAI 12-2008
Problèmes des clés publiques
• l’utilisation d’un couple de clés entraîne la
nécessité de publication, en toute confiance, de la clé publique.
• La clé est elle bien celle appartenant à la personne avec qui les échanges sont envisagés. Rien ne garantit à A que c'est bien la clé publique de B qu'il reçoit (Man in the middle).
• La clé est elle toujours valide (cid:1) Problème de confiance
(c) Abderrazak JEMAI 12-2008
Exemples d’algorithmes à clé asymétriques
• L’algorithme Diffie-Hellman : • L’algorithme RSA
– Ron Rivest, Adi Shamir et Leonard Adleman, il est le
plus populaire des algorithmes à clé publique.
– Les clés publiques et privées sont des fonctions d’une
paire de grands nombres premiers
– Cet algorithme est 1000 fois plus lent que les algorithmes à clé symétrique tel que DES.
– Les données à chiffrer doivent être au moins inférieures à la taille de la clé publique, une clé publique de 1024 bits ne peut chiffrer que des données de moins de 1023 bits
(c) Abderrazak JEMAI 12-2008
L’algorithme RSA
• Choisir aléatoirement 2 grands nombres premiers p
et q (> 100 chiffres chacun)
• Calculer n = pq • Choisir un petit entier impair e premier avec F(n).
F(n) = (p- 1) (q – 1)
• Calculer d inverse de e modulo F(n). • La clé publique P est P = (e,n) • La clé privée S est S = (d,n) • Chiffrement (M) = Me mod n • Déchiffrement (C) = Cd mod n
(c) Abderrazak JEMAI 12-2008
Chiffrement hybride - Notion de clé de session - • Le chiffrement asymétrique est plus sécurisé. Mais “Très
lent”.
• Des données cryptées en utilisant le cryptage asymétrique peuvent mettre jusqu'à 1000 fois plus de temps pour être décryptées par rapport au cryptage symétrique
• Solution
: Les
deux
cryptages
sont
utilisés
simultanément : – Le cryptage asymétrique (plus sécurisé) permet d'échanger la clé
secrète utilisée par le cryptage symétrique.
– Par la suite, le cryptage symétrique (plus rapide) est utilisé pour la suite de la communication. Dans ce cas la clé secrète est appelée clé de session.
(c) Abderrazak JEMAI 12-2008
Echange de la clé de session
Le protocole entre A et B a la forme suivante : • A tire une clé de session k. • B envoie sa clé publique à A. • A chiffre k avec la clé publique de B et envoie le
résultat à B.
• B le déchiffre avec sa clé privée. • A et B communiquent en utilisant un protocole
symétrique donc la clé est k.
(c) Abderrazak JEMAI 12-2008
Echange de la lé de session
• Ainsi on viens de voir comment assurer la confidentialité d’un message via le chiffrement • Comment le chiffrement pemet de contrôler l’intégrité d’un message. (cid:1) Fonction de Hachage
(c) Abderrazak JEMAI 12-2008
Fonction de Hachage
• Pour contrôler l'intégrité d'un message, on utilise la fonction de hachage
• Elle permet de vérifier si le message a été altéré ou non ? • Le message est converti en une inférieure taille chaîne de fixe appelée : empreinte (ou condensé).
(c) Abderrazak JEMAI 12-2008
Propriétés des fonctions de hachage • Grande dispersion: Un petit écart entre deux documents doit créer un grand écart entre deux messages(empreintes).
• Absence de collisions : Deux documents différents ne doivent avoir qu'une chance très faible de donner la même empreinte.
• Inversion impossible (sens unique) : il est facile de calculer l’empreinte d’une chaîne mais retrouver l’empreinte est quasi la chaîne à partir de impossible.
• Facilité de calcul
(c) Abderrazak JEMAI 12-2008
Exemples de fonctions de hachage • Deux fonctions parmi les plus populaires: • MD5 : Message Digest (Version 5) est un algorithme créé en 1991 par Ron Rivest des RSA Laboratories ,
• SHA-1
: Le Secure Hash Algorithm (Revision 1) a été développé en 1993 par le NIST et révisé en 1994.
(c) Abderrazak JEMAI 12-2008
MD5 vs SHA-1
• MD5 :
– MD5 produit une empreinte sur 128 bits. Il est rapide sur des machines 32 bits. Très employé pour effectuer des checksums anti-virus sur les systèmes de fichiers.
• SHA-1 :
– Il réalise des empreintes sur 160 bits, ce qui le rend plus
robuste que MD5, mais également plus lent.
– Il est prévu pour travailler sur des documents de 264
bits de longueur
Publicité
– Cet algorithme réalise une dispersion telle que de changer un bit du document, change en moyenne la moitié des bits de l'empreinte.
– La probabilité que deux documents aient la même
empreinte est de (1048).
(c) Abderrazak JEMAI 12-2008
Cryptographie et fonction de hachage • En combinant le système de cryptographie et une fonction de hachage, on peut obtenir une signature électronique.
• La signature électronique garantit à la fois
l'intégrité du message et son authentification.
(c) Abderrazak JEMAI 12-2008
Signature numérique
• Chiffrer un document avec sa clé privée engendre une signature numérique sûre du document, car seul le propriétaire de la clé privée a été capable de le chiffrer.
• L’algorithme à clé publique RSA permet d’effectuer de telles
signatures
• Dans les applications pratiques, les algorithmes à clé
publique sont inefficaces pour signer de longs documents. • Au lieu de signer le document entier, on signe l’empreinte du
document (fonction de hachage).
• La vitesse est beaucoup plus élevée et comme les chances
d’avoir deux documents différents ayant la même empreinte sont très faibles, signer l’empreinte est aussi fiable que signer le document tout entier
(c) Abderrazak JEMAI 12-2008
Signature d’un document
1. Le message est haché ; il en résulte un résumé 2. Ce résumé est crypté grâce à la clé privée ;
(cid:1) il en résulte la signature
3. La signature est rajoutée au message 4. Le message signé peut être envoyé
(c) Abderrazak JEMAI 12-2008
Echange d’un document signé
• On reçoit 2 parties : Le message et sa signature • Hachage du message (cid:1) un résumé • La signature est décryptée par la clé publique de
l’expéditeur : on retrouve le résumé de l’expéditeur
• Les deux résumés sont comparés : s’ils sont identiques, le
message est intègre.
(c) Abderrazak JEMAI 12-2008
Structures des signatures
• Deux
structures de
signatures normalisées
existent : – Structure basée sur les spécifications PKCS (Public Key Cryptography Standards), plus particulièrement PKCS# 7 (Nov. 1993)
– Structure
basée
sur
la
norme
XML
DigSig(Recommandation W3C, Fév. 2002)
• Les différences portent sur la structure de la
signature : – Dans le contexte PKCS, la structure de la signature est
exprimée selon le formalisme ASN.1
– Dans le contexte XML, la structure de la signature est (c) Abderrazak JEMAI 12-2008
conforme à un schéma XML
Les Certificats
• Un certificat numérique (aussi appelé certificat
électronique) est un fichier permettant de certifier l'identité du propriétaire d'une clé publique
• Un certificat est généré dans une infrastructure à clés publiques (aussi appelé IGC PKI pour Public Key Infrastructure) par une autorité de certification (Certification Authority , CA) qui a donc la capacité de générer des certificats numériques contenant la clé publique en question.
• Les certificats sont normalisés par la norme X509 qui définit des champs de bases (X509) ainsi que des extensions (X509v3). Le cadre d'utilisation est normalisé par la RFC 3280.
(c) Abderrazak JEMAI 12-2008
Norme X.509 version 3
• Cette norme comporte :
– La version du certificat X.509 (actuellement la V3) – Le numéro de série – L'algorithme de signature – Le nom de l'émetteur (autorité de certification) – La date de début de fin de validité – L'adresse électronique du propriétaire – La clé publique à transmettre – Le type de certificat – L'empreinte du certificat (signature électronique)
(c) Abderrazak JEMAI 12-2008
Certificat X509 signé
• La signature électronique est générée par l'autorité de certification à l'aide d'informations personnelles du client en utilisant sa propre clé privée.
(c) Abderrazak JEMAI 12-2008
Différents formats de présentation d’un certificat X509 • La définition du certificat dans le standard X.509
utilise la notation ASN.1
• Le passage de cette définition abstraite à un certificat numérique se fait en appliquant les règles d'encodage DER (Distinguished Encoding Rules).
• On trouve les formats suivants : – Le format DER Encoding RulesRulesRulesRules):):):): Distinguished Encoding Le format DER ((((Distinguished Encoding Encoding Distinguished Distinguished Le format DER Le format DER – Le format PEM Enhanced Mail):Mail):Mail):Mail): Privacy Enhanced Le format PEM ((((Privacy Le format PEM Enhanced Enhanced Privacy Privacy Le format PEM – Le format PKCS#12 Le format PKCS#12 Le format PKCS#12 Le format PKCS#12
(c) Abderrazak JEMAI 12-2008
Vérification d’un certificat
• On s’assure de la provenance d’une clé publique en vérifiant la signature qui y a été apposée à l’aide de l’autorité de certification (CA).
la clé publique de
• On n’a plus besoin de faire directement confiance à toutes les clés publiques en circulation mais seulement à celles des autorités de certification.
• Vérifier un certificat revient à :
– Vérifier si on est dans la période de validité du certificat – Vérifier si le certificat est révoqué – Vérifier la signature du certificat (empreinte chiffrée) (c) Abderrazak JEMAI 12-2008
Vérification d’un certificat
(c) Abderrazak JEMAI 12-2008
Des certificats pour qui?
• Les certificats servent principalement dans
trois types de contextes : – Le certificat client – Le certificat serveur . – Le certificat VPN
(c) Abderrazak JEMAI 12-2008
Certificat client • Le certificat client est souvent stocké sur le poste de travail de l'utilisateur ou embarqué dans un conteneur tel qu'une carte à puce.
• Il permet d'identifier un utilisateur et de lui
Publicité
associer des droits.
• Dans la plupart des scénarios il est transmis au serveur lors d'une connexion, qui affecte des droits en fonction de l'accréditation de l'utilisateur.
• Il s'agit d'une véritable carte d'identité numérique utilisant une paire de clé asymétrique d'une longueur de 512 à 1024 bits.
(c) Abderrazak JEMAI 12-2008
Certificat serveur
• Le certificat serveur installé sur un serveur web permet d'assurer le lien entre le service et le propriétaire du service.
• Dans le cas d'un site web, il permet de garantir que l'URL et en particulier le domaine de la page web appartiennent bien à telle ou telle entreprise.
• Il permet aussi de sécuriser les transactions avec
les utilisateurs grâce au protocole SSL.
(c) Abderrazak JEMAI 12-2008
Le certificat VPN • Le certificat VPN est un type de certificat installé
dans les équipement réseaux,
• Il permet de chiffrer les flux de communication de bout en bout entre deux points (par exemple deux sites d'une entreprise).
• Dans ce type de scénario, les utilisateurs possèdent un certificat client, les serveurs mettent en oeuvre les équipements de un certificat serveur et communication utilisent un certificat particulier (généralement un certificat IPSec).
(c) Abderrazak JEMAI 12-2008
Domaines d’utilisation des certificats répondent
certificats
à
des besoins
• Les
particuliers. Les principaux sont les suivants: – Certificat de messagerie (permet de crypter et de signer
ses e-mails)
– Authentification IPSec pour un accès distant par VPN – Authentification Internet pour les pages Web sécurisées – Signature de logiciel
• Afin d’assurer
certificats numériques, une architecture de gestion des certificats (IGC, ICP, ou PKI) a été mise ne place.
la gestion des
(c) Abderrazak JEMAI 12-2008
Infrastructure de Gestion de Clés
• L’IGC est la terminologie utilisée pour parler d’un système à
clé publique
• L’IGC offre les quatre services de base de la sécurité, essentiels aux échanges des informations : Confidentialité, Intégrité, Authentification et Non-répudiation
• Une IGC (Infrastructure de Gestion de Clés), aussi communément appelée PKI (Public Key Infrastructure) ou ICP (Infrastructure à Clés Publiques), est un ensemble de composants physiques (des ordinateurs, des cartes à puces), de procédures humaines (vérifications, validation) et de logiciels (système) en vue de créer et de gérer le cycle de vie des certificats numériques.
(c) Abderrazak JEMAI 12-2008
Les composants d’une IGC
• L’IGC
est une
association de plusieurs composants qui interviennent à différentes étapes mises en oeuvre depuis la création du certificat jusqu'à la l’utilisation de celui-ci. On y trouve : – Autorité de certification CA (Certificate Authority) – Autorité d’enregistrement RA (Registration Authority) – Entité d’enrôlement EE (Enrollement Entity) – Service de publication – Autorité de Séquestre (key Escrow)
(c) Abderrazak JEMAI 12-2008
Autorité de certification (CA)
• Cette autorité est une autorité de confiance qui a pour but de créer les certificats des utilisateurs.
• Une CA est une organisation qui délivre des
certificats électroniques à une population. Une CA possède elle-même un certificat (auto-signé ou délivré par une autre CA) et utilise sa clé privée pour créer les certificats qu'elle délivre.
• Le CA signe donc le certificat créé à l’aide de sa
clé privée
(c) Abderrazak JEMAI 12-2008
Autorité d’enregistrement (RA)
• C’est une entité qui dépend d’au moins une CA. Elle
a pour rôle : – Confirmer l’identité du demandeur en obtenant des pièces
justificatives
– Valider que le demandeur est habilité à obtenir les droits. – Obtenir la clé publique du demandeur, de lui-même ou,
dans certains cas, de l’entité chargée de tirer les clés.
– Vérifier que le demandeur est en possession de la clé privée associée à la clé publique pour laquelle il demande un certificat.
– Soumettre les demandes de génération de certificat vers
l’émetteur de certificat.
(c) Abderrazak JEMAI 12-2008
Entité d’enrôlement (EE)
• C'est la partie visible pour l'utilisateur. Celle par laquelle il va pouvoir créer et gérer ses certificats. une Entité assurées
fonctions
• Les
par
d'Enrôlement sont : – Faire une demande de certificat ; – Rechercher un certificat ; – Traiter les révocations
• L'accès à l'Entité d'Enrôlement se fait par
navigateur web en SSL
(c) Abderrazak JEMAI 12-2008
Service de publication
• Le service de publication est une composante de l’IGC qui rend disponible les certificats de clés publiques émis par une CA à l’ensemble des utilisateurs potentiels de ces certificats. Il publie une liste de certificats reconnus comme valides et des listes de révocation (CRL).
• Ce service peut être rendu par un annuaire (par exemple de type X.500), un serveur d’information (Web), une délivrance de la main à la main, une application de messagerie, etc.
(c) Abderrazak JEMAI 12-2008
Autorité de séquestre (Key Escrow)
• Le Séquestre a pour mission de stocker de façon sécurisée les clés de chiffrement qui ont été générées par l'IGC, pour pouvoir les restaurer le cas échéant.
(c) Abderrazak JEMAI 12-2008
Infrastructure de gestion de clés
(c) Abderrazak JEMAI 12-2008
Exemple de demande d’un certificat
Exemple de demande d'un certificat pour signer numériquement les e-mails de Pierre
(c) Abderrazak JEMAI 12-2008