Objectifs du chapitre
- Comprendre les besoins et les principes fondamentaux de la cryptographie (chiffrement, hachage, signature numérique).
- Expliquer et différencier les moyens cryptographiques : symétrique, asymétrique, hybride, fonctions de hachage.
- Résumer le fonctionnement des signatures numériques et des certificats numériques.
- Décrire le principe, l’architecture et le rôle d’une PKI ainsi que la gestion des certificats et des protocoles SSL/TLS.
1. Introduction à la cryptographie
Toute information circulant sur un réseau comme Internet peut être interceptée, copiée ou modifiée. Sans mécanismes de protection, cela entraîne une perte de confidentialité (des données sensibles lues par des tiers non autorisés), un problème d’authentification (un utilisateur malveillant peut usurper une identité, par exemple par spoofing) et une absence de traçabilité (il devient difficile de prouver qu’une partie a bien participé à une transaction).
La cryptographie fournit un ensemble de méthodes mathématiques permettant d’opérer sur un texte intelligible afin de garantir une ou plusieurs propriétés de la sécurité de l’information.
2. Les moyens cryptographiques
Les moyens cryptographiques sont le chiffrement/déchiffrement, le hachage cryptographique, la signature numérique et le certificat numérique.
Le chiffrement est un procédé de cryptographie qui convertit des données lisibles en un code illisible (texte chiffré) à l’aide d’une clé. Le déchiffrement est l’opération qui transforme des données chiffrées en leur forme originale lisible, en utilisant une clé. Ils assurent la confidentialité et l’authentification.
3. Le chiffrement symétrique, asymétrique et hybride
3.1 Le chiffrement symétrique
Le chiffrement symétrique est une méthode cryptographique qui utilise une seule clé secrète pour chiffrer et déchiffrer les données. L’émetteur et le destinataire doivent partager cette clé de manière sécurisée afin de garantir la confidentialité des échanges. Exemples d’algorithmes : AES, DES, IDEA, RC4.
| Avantages | Limites |
|---|---|
| Confidentialité assurée tant que la clé est secrète. | Distribution des clés : il faut un canal sécurisé pour partager la clé entre émetteur et récepteur. |
| Rapidité d’exécution, beaucoup plus rapide que les méthodes asymétriques. | Nombre de clés élevé : pour n participants, il faut générer n(n-1)/2 clés différentes. |
| Facilité d’implémentation, simple à déployer sur logiciels et circuits matériels. | Pas de non-répudiation : impossible de prouver qui a envoyé un message, tout le monde possède la même clé. |
3.2 Le chiffrement asymétrique
Le chiffrement asymétrique est une méthode cryptographique qui utilise une paire de clés complémentaires : une clé publique, partagée, qui sert à chiffrer ou vérifier une signature, et une clé privée, secrète, qui sert à déchiffrer ou signer. Exemples d’algorithmes : RSA (Rivest-Shamir-Adleman), Diffie-Hellman, ElGamal.
Principe de fonctionnement : l’expéditeur rédige un message clair, le chiffre avec la clé publique du destinataire (il devient un texte chiffré illisible), et le destinataire le déchiffre avec sa clé privée pour lire le message original.
| Avantages | Limites |
|---|---|
| Clé publique partagée librement, pas de canal sûr nécessaire. | Lent, environ 10x plus que le symétrique. |
| Assure confidentialité, authentification et non-répudiation. | Peu adapté au traitement de grands volumes d’informations. |
| Plus sûr que le symétrique. | Vulnérable aux attaques (usurpation, Man-in-the-Middle) sans certificats de confiance. |
| Seulement 2n clés pour n participants. |
Scénario de confidentialité : Alice chiffre le message avec la clé publique de Bob, Bob déchiffre avec sa clé privée, seul Bob peut lire le message.
Scénario d’authentification et de non-répudiation d’envoi : Alice chiffre le message avec sa clé privée, Bob reçoit la clé publique d’Alice et déchiffre le message avec cette clé publique.
3.3 Le chiffrement hybride
Le chiffrement hybride est une méthode cryptographique qui associe le chiffrement symétrique et le chiffrement asymétrique afin de tirer parti des performances élevées du chiffrement symétrique pour le traitement de données volumineuses, et de la sécurité du chiffrement asymétrique pour l’échange sécurisé des clés de session.
Principe de fonctionnement : l’expéditeur génère une clé de session symétrique pour chiffrer le document, puis chiffre cette clé de session avec la clé publique du destinataire (asymétrique). Le destinataire utilise sa clé privée pour déchiffrer la clé de session, puis déchiffre le document.
| Avantages | Limites |
|---|---|
| Rapide : document chiffré symétriquement, clé de session petite et rapide à chiffrer. | Complexité : combine deux types de chiffrement. |
| Sécurisé : la clé de session chiffrée asymétriquement permet de transmettre le document sur un réseau non sûr. | Dépendance aux clés : compromission de la clé privée = risque pour le document. |
| Gestion simplifiée, pas de multiplication exponentielle des clés. | Ressources : chiffrement asymétrique plus coûteux ; non-répudiation non assurée sans signature numérique. |
4. Le hachage cryptographique
Une fonction de hachage transforme une chaîne de données de taille quelconque M en une empreinte de taille fixe h = H(M), appelée digest ou condensé. Elle doit rendre difficile le fait que deux messages donnent le même condensé, le fait de retrouver le message d’origine à partir du condensé, et le fait de trouver un autre message avec le même condensé qu’un message donné.
Ses utilisations principales sont la vérification de l’intégrité des données, les signatures numériques, et le stockage sécurisé des mots de passe.
| Fonction de hachage | Concepteur | Taille de l’empreinte | Commentaires |
|---|---|---|---|
| MD5 (Message Digest 5) | Ronald Rivest (avril 1991) | 128 bits | Successeur de MD4. |
| MD6 (Message Digest 6) | Ronald Rivest, Benjamin Agre, … (2008) | Variable, 0 < d ≤ 512 bits | Proposée pour participer à la NIST en 2008 mais ne fut pas retenue lors de la deuxième étape de sélection. |
| SHA (Secure Hash Algorithm) | National Security Agency : SHA-0 (1993), SHA-1 (1995), SHA-2 (2001), SHA-3 (2012) | SHA-0 et SHA-1 : 160 bits ; SHA-2 et SHA-3 : 256 et 512 bits | SHA-0, SHA-1, SHA-2 et SHA-3. |
5. La signature numérique
Une signature numérique est une donnée attachée ou une transformation cryptographique appliquée à un message ou document, permettant de vérifier l’origine (confirmer l’expéditeur), d’assurer l’intégrité (garantir que le message n’a pas été modifié) et de protéger contre la falsification (empêcher qu’un tiers ne contrefasse le message ou la signature).
Principe de fonctionnement : Alice génère l’empreinte du document au moyen d’une fonction de hachage, puis chiffre cette empreinte avec sa clé privée, obtenant ainsi la signature du document ; elle envoie le document et sa signature à Bob. Pour vérifier la validité du document, Bob déchiffre la signature avec la clé publique d’Alice, génère l’empreinte du document reçu avec la même fonction de hachage, puis compare les deux empreintes.
Si les deux empreintes sont identiques, la signature est validée : c’est bien Alice qui a envoyé le document, et il n’a pas été modifié depuis sa signature. Dans le cas contraire, soit le document a été modifié depuis sa signature par Alice, soit ce n’est pas ce document qu’elle a signé.
6. Le certificat numérique
Un certificat numérique est un document chiffré et signé qui contient des informations sur l’identification d’un serveur ou d’un utilisateur. Il lie une clé publique à l’identité de son propriétaire, garantissant ainsi l’authenticité : il garantit que la clé publique appartient bien à la personne ou l’entité annoncée, et sert de preuve dans un environnement de confiance grâce à une Autorité de Certification (CA).
Selon le format de sa norme (par exemple X.509v3), un certificat comporte généralement : un numéro d’identification (numéro de série), le nom du détenteur de la clé publique (Distinguished Name), une clé publique de chiffrement, un délai de validité (entre six mois et un an), une catégorie, et la raison sociale de l’organisme de certification.
Une Autorité de Certification (CA) est une organisation de confiance qui délivre et signe les certificats numériques, vérifie l’exactitude des informations et atteste du lien entre une entité physique et sa clé publique. Les certificats émis par la CA sont vérifiables grâce à sa clé publique.
La gestion de la validité des certificats repose notamment sur la Certificate Revocation List (CRL), une liste permettant de révoquer un certificat avant sa date d’expiration, afin que les certificats compromis ou invalides ne soient plus utilisés.
7. Infrastructure de gestion des clés
Une Infrastructure à Clé Publique (PKI ou IGC) est un ensemble de personnes, matériels et logiciels, encadrés par des règles et procédures, permettant de créer, gérer et distribuer des certificats X.509. Elle combine fonction administrative et fonction technique.
Ses missions principales sont la création et la révocation des certificats X.509, la diffusion et la publication des certificats (par exemple via un annuaire LDAP), et parfois la gestion des clés privées perdues via un service de séquestre (utile pour récupérer une clé privée en cas de perte, bien que cela implique un partage avec un tiers et une perte de confidentialité).
Le processus de demande de certificat engage plusieurs acteurs :
| Acteur | Rôle |
|---|---|
| Autorité d’Enregistrement (AE) | Reçoit et traite les demandes de création, de renouvellement ou de révocation de certificats, et vérifie l’identité des demandeurs. |
| Opérateur de Certification (OC) | Réalise les opérations nécessitant la clé privée, en principe non connecté au réseau pour garantir la sécurité des clés privées ; signe le certificat avec la clé privée de l’AC. |
| Service de Séquestre (SS) | Stocke temporairement, si nécessaire, les couples clé privée/clé publique des certificats émis (pratique risquée, car elle compromet la confidentialité des clés privées). |
| Service de Publication (SP) | Publie les certificats et la CRL dans un annuaire accessible. |
| Service de Validation (SV) | Permet à tout utilisateur de vérifier la validité d’un certificat (date d’expiration, vol ou perte de la clé privée associée). |
Les avantages d’une PKI sont la gestion centralisée du cycle de vie des certificats, la distribution sûre des clés publiques grâce au format normalisé X.509, la compatibilité avec différents tokens et standards (carte à puce, clé USB, MSCAPI, PKCS#11), le support de la gestion des droits et privilèges via annuaires ou bases de données, et l’intégration avec les principales applications de sécurité.
Les protocoles SSL (Secure Socket Layer) et TLS (Transport Layer Security) utilisent la PKI pour sécuriser les communications sur Internet (par exemple HTTPS). Principe : le serveur présente son certificat X.509 lors de la connexion, le client vérifie qu’il est signé par une CA de confiance, une négociation (handshake) échange les algorithmes supportés, vérifie l’authenticité du serveur (et parfois du client) et établit une clé de session symétrique, puis les données échangées sont chiffrées et protégées par cette clé.