La cryptographie est la discipline consistant à renforcer la sécurité à l’aide des mathématiques. Elle fait appel à plusieurs principes qui sont utilisés à de nombreux endroits dans un système d’exploitation. Il y a notamment:
La cryptographie symétrique (chiffrement à clé secrète partagée)
La cryptographie asymétrique (chiffrement à clé publique/privée)
Le hachage (fingerprinting)
La signature
Les certificats
La validation par tiers de confiance (autorité de certification)
¶Cryptographie symétrique (chiffrement à clé secrète partagée)
Le chiffrement à clé secrète partagée, également connu sous le nom de chiffrement symétrique, est une méthode de cryptographie où la même clé est utilisée à la fois pour chiffrer et déchiffrer les données. Cette approche repose sur le partage d'une clé secrète unique entre l'émetteur et le récepteur avant que la communication ne commence. Voici le fonctionnement du chiffrement :
Génération de la clé : Une clé secrète est générée. Elle doit être forte et aléatoire pour assurer la sécurité du chiffrement.
Chiffrement : L'émetteur utilise la clé secrète pour chiffrer le message ou les données. Le processus de chiffrement transforme les données originales (en clair) en un format chiffré (ciphertext) qui ne peut pas être facilement lu ou compris sans la clé.
Transmission : Le message chiffré est ensuite transmis au récepteur par un canal de communication, qui peut être sécurisé ou non.
Déchiffrement : Le récepteur utilise la même clé secrète pour déchiffrer le message chiffré et récupérer les données originales.
Efficacité : Le chiffrement symétrique est généralement plus rapide que le chiffrement asymétrique, ce qui le rend idéal pour chiffrer de grandes quantités de données.
Simplicité : Le processus est relativement simple, car il utilise une seule clé pour le chiffrement et le déchiffrement.
Inconvénients
Gestion des clés : La gestion sécurisée de la clé secrète partagée est un défi majeur. La clé doit être partagée entre l'émetteur et le récepteur par un moyen sûr, car toute fuite compromet la sécurité des données chiffrées.
Scalabilité : Dans un système où de nombreux utilisateurs doivent communiquer de manière sécurisée, le nombre de clés à gérer augmente rapidement, rendant le système difficile à gérer efficacement.
Exemples d'algorithmes de chiffrement symétrique
AES (Advanced Encryption Standard) : L'un des algorithmes de chiffrement les plus utilisés et considéré comme très sûr.
DES (Data Encryption Standard) : Un algorithme plus ancien remplacé par AES en raison de ses faiblesses en matière de sécurité.
Blowfish et Twofish : Autres algorithmes de chiffrement symétrique, chacun ayant ses propres caractéristiques et utilisations.
¶La cryptographie asymétrique (chiffrement à clé publique/privée)
Le chiffrement à clé publique/privée, également connu sous le nom de chiffrement asymétrique, est une méthode de cryptographie qui utilise une paire de clés pour le chiffrement et le déchiffrement des données. Ces deux clés sont mathématiquement liées : l'une est appelée la clé publique et l'autre la clé privée. Contrairement au chiffrement symétrique, où la même clé est utilisée pour chiffrer et déchiffrer les données, le chiffrement asymétrique utilise la clé publique pour chiffrer les données et la clé privée correspondante pour les déchiffrer. Voici le fonctionnement du chiffrement:
Génération des clés : Une paire de clés est générée. La clé publique peut être partagée librement, tandis que la clé privée doit rester secrète et sécurisée.
Chiffrement : Pour envoyer un message sécurisé, l'émetteur utilise la clé publique du récepteur pour chiffrer les données. Une fois chiffrées, les données ne peuvent être déchiffrées qu'avec la clé privée correspondante du récepteur.
Transmission : Le message chiffré est envoyé au récepteur par un canal de communication, qui peut être sécurisé ou non.
Déchiffrement : Le récepteur utilise sa clé privée pour déchiffrer le message et récupérer les données originales.
Sécurité : La séparation des clés augmente la sécurité, car même si la clé publique est connue de tous, seul le détenteur de la clé privée correspondante peut déchiffrer les messages.
Distribution de clés : La distribution des clés est simplifiée, car les clés publiques peuvent être partagées ouvertement sans compromettre la sécurité.
Authentification et intégrité : Le chiffrement asymétrique peut être utilisé pour créer des signatures numériques, offrant ainsi une authentification de l'émetteur et une vérification de l'intégrité des données.
Inconvénients
Performance : Le chiffrement asymétrique est généralement plus lent que le chiffrement symétrique en raison de la complexité des calculs mathématiques impliqués.
Gestion des clés : Bien que la distribution des clés soit simplifiée, la gestion sécurisée des clés privées reste un défi.
Exemples d'algorithmes de chiffrement symétrique
RSA (Rivest-Shamir-Adleman) : L'un des premiers et des plus utilisés algorithmes de chiffrement asymétrique.
ECC (Elliptic Curve Cryptography) : Une approche qui utilise les propriétés des courbes elliptiques pour le chiffrement, offrant une sécurité comparable à RSA avec des clés plus courtes.
Diffie-Hellman : Utilisé pour l'échange sécurisé de clés sur un canal de communication non sécurisé.
Le hachage en cryptographie se réfère à un processus par lequel une fonction de hachage transforme une quantité arbitraire de données en une sortie de taille fixe, appelée "hash" ou "digest". Les fonctions de hachage sont conçues pour être à sens unique, ce qui signifie qu'il est impossible de retrouver les données d'origine à partir du hash.
L'utilité première du hachage est de détecter si des données ont été modifiées. En calculant l'empreinte (hash) d'un fichier ou d'un message, on peut plus tard vérifier que le contenu n'a pas été altéré en recalculant le hash et en le comparant à l'original.
Une autre aprticularité du hashage c'est qu'il s'agit d'une fonction déterministe : elle produit toujours le même résultat pour la même entrée, peu importe quand vous l'exécutez. Si vous hachez "bonjour" avec SHA-256 aujourd'hui, demain ou dans 10 ans, vous obtiendrez exactement le même hash.
Exemple de fonctions de hachage
SHA-256 (Secure Hash Algorithm 256 bits) : largement utilisé, notamment dans le protocole Bitcoin
La signature numérique en cryptographie est une technique qui permet de vérifier l'authenticité et l'intégrité d'un message, d'un document numérique ou d'un fichier. Elle repose sur des principes de cryptographie asymétrique, où deux clés sont utilisées : une clé privée pour signer le document et une clé publique pour vérifier cette signature.
Fonctionnement de la signature numérique
Génération de la paire de clés : L'émetteur (ou signataire) génère une paire de clés cryptographiques, une clé privée et une clé publique. La clé privée est gardée secrète, tandis que la clé publique peut être distribuée librement.
Signature du document : Pour signer un document, l'émetteur génère d'abord un résumé (ou hash) du document à l'aide d'une fonction de hachage cryptographique. Ensuite, l'émetteur chiffre ce hash avec sa clé privée, créant ainsi la signature numérique du document. Le document signé est ensuite envoyé avec sa signature numérique.
Vérification de la signature : Le destinataire (ou vérificateur) reçoit le document et la signature numérique. Le destinataire utilise la clé publique de l'émetteur pour déchiffrer la signature numérique, récupérant ainsi le hash du document tel qu'il était au moment de la signature. Parallèlement, le destinataire génère un nouveau hash du document reçu à l'aide de la même fonction de hachage. Si les deux hashes correspondent, cela signifie que le document est authentique et n'a pas été modifié depuis sa signature, validant ainsi à la fois l'intégrité et l'authenticité du document.
Les certificats en cryptographie, souvent appelés certificats numériques ou certificats de sécurité, sont des fichiers numériques qui servent à établir l'identité des parties dans une communication électronique et à faciliter le chiffrement et la sécurisation de cette communication. Ils sont une composante essentielle de l'infrastructure à clés publiques (PKI, Public Key Infrastructure), qui fournit un cadre pour la création, la distribution, la gestion et la révocation des certificats numériques.
Fonctionnement des certificats
Un certificat numérique associe une clé publique à l'identité du propriétaire de la clé (comme une personne, une organisation, ou un serveur). Il contient des informations telles que :
Le nom du propriétaire du certificat (sujet).
La clé publique associée au sujet.
La date d'expiration du certificat.
Le nom de l'autorité de certification (CA, Certificate Authority) qui a émis le certificat.
La signature numérique de l'autorité de certification.
L'autorité de certification joue le rôle de tiers de confiance en vérifiant l'identité du demandeur avant d'émettre un certificat. La signature numérique de la CA sur le certificat garantit que le certificat est authentique et n'a pas été altéré.
Une Autorité de Certification (CA, pour Certificate Authority) est une entité de confiance qui émet des certificats numériques utilisés pour la cryptographie à clé publique. Les certificats numériques servent principalement à établir une confiance en ligne en vérifiant l'identité d'une partie (personne, entreprise, site web, etc.) et en associant cette identité à une clé publique. Les activités et les services fournis par une CA sont au cœur de l'infrastructure à clés publiques (PKI, Public Key Infrastructure), qui permet des transactions sécurisées et chiffrées sur Internet.
Fonctions principales d'une Autorité de Certification
Émission de certificats : Après avoir validé l'identité du demandeur à travers un processus de vérification, la CA crée un certificat numérique contenant la clé publique du demandeur, des informations sur l'identité du demandeur, et d'autres métadonnées. Ce certificat est ensuite signé avec la clé privée de la CA, garantissant ainsi son authenticité.
Révocation de certificats : Si un certificat devient compromis ou si les informations qu'il contient ne sont plus valides, la CA peut révoquer le certificat. Cette révocation est gérée à travers la publication d'une liste de révocation de certificats (CRL, Certificate Revocation List) ou via des services de vérification de statut de certificat en ligne (OCSP, Online Certificate Status Protocol).
Renouvellement de certificats : Les certificats ont une période de validité limitée. La CA gère le processus de renouvellement des certificats en émettant de nouveaux certificats pour remplacer les anciens qui expirent.