Algorithmes de chiffrement: Echange de clés, hashage, crytage, certificats et PKI

Figure B - Hachage HMAC
Figure B - Hachage HMAC

Aujourd’hui, nous allons étudier les technologies cryptographiques et leur terminologie. En particulier, nous chercherons à comprendre les défis de la gestion sécurisée des clés dans un environnement réseau.

De plus, nous examinerons les différents types d’algorithmes de hachage utilisés aujourd’hui pour assurer l’intégrité des données.

Nous comparerons et opposerons des algorithmes de chiffrement symétriques et asymétriques, et nous nous pencherons enfin sur les signatures et certificats numériques. Nous examinerons PKI dans un autre post.

Confidentialité, intégrité et disponibilité (CIA)

Avant d’examiner les différentes technologies cryptographiques utilisées aujourd’hui, il est important de comprendre le principe de base de la cryptographie elle-même. La cryptographie est la pratique et l’étude des techniques pour sécuriser les communications en présence de tiers. Historiquement, la cryptographie était synonyme de cryptage. Son but était de garder les messages privés. Aujourd’hui, la cryptographie comporte d’autres responsabilités :

■ Confidentialité : Utilise des algorithmes de chiffrement pour chiffrer et cacher les données.
■ Intégrité des données : Utilise des algorithmes de hachage pour s’assurer que les données n’ont pas été altérées au cours d’une opération.
■ Authentification : S’assure que tous les messages reçus ont bien été envoyés de l’origine perçue.

Échange et gestion des clés de chiffrement

La gestion des clés concerne la génération, la vérification, l’échange, le stockage et la destruction sécurisés des clés. Il est extrêmement important d’avoir des méthodes sécurisées de gestion des clés.

L’échange et la gestion des clés sont souvent considérés comme la partie la plus difficile de la conception d’un système cryptographique.

De nombreux systèmes cryptographiques ont échoué à cause d’erreurs dans la gestion de leurs clés, et tous les algorithmes cryptographiques modernes nécessitent des procédures de gestion des clés.

Les composantes de base de tout système de gestion de clés comprennent (1) la génération automatisée et randomisée de clés, (2) la vérification de la solidité des clés, (3) le stockage des clés cryptées, (4) l’échange sécurisé des clés, (5) la durée de vie des clés et (6) la révocation et la destruction des clés compromises ou périmées.

Algorithmes de hachage

Le hachage est un mécanisme utilisé pour assurer l’intégrité des données. Le hachage est basé sur une fonction mathématique unidirectionnelle relativement facile à calculer mais très difficile à inverser.

La figure A illustre comment le hachage est effectué. Les données d’une longueur arbitraire sont entrées dans la fonction de hachage, et le résultat de la fonction de hachage est le hash de longueur fixe, connu sous le nom de “digest” ou “empreinte digitale”.

Figure A - Fonction de hachage
Figure A – Fonction de hachage

Fonctions de hachage bien connues

Les fonctions de hachage sont utiles lorsque vous vous assurez que les données ne sont pas modifiées accidentellement, par exemple par une erreur de communication.

Bien que le hachage puisse être utilisé pour détecter des changements accidentels, il ne peut pas être utilisé pour se protéger contre des changements délibérés. Il n’y a pas d’information d’identification unique de l’expéditeur dans la procédure de hachage.

Par conséquent, le hachage est vulnérable aux attaques de l’homme au milieu (Man-in-the-middle) et n’assure pas la sécurité des données transmises.

Voici les trois fonctions de hachage cryptographique les plus couramment utilisées :
■ Message Digest 5 (MD5) : MD5 est une fonction unidirectionnelle qui facilite le calcul d’un hachage à partir des d’entrées données, mais rend très difficile le calcul des données d’entrée avec une valeur de hachage seulement. MD5 produit un hachage de 128 bits et est maintenant considéré comme un ancien algorithme à éviter.

■ Algorithme de hachage sécurisé 1 (SHA-1) : SHA-1 prend un message d’une longueur maximale de 264 bits et produit un résumé de message de 160 bits.

L’algorithme est légèrement plus lent que MD5, mais le plus gros résumé du message le rend plus sûr contre les collisions en force brute et les attaques par inversion.

Il est maintenant considéré comme un héritage et devrait être évité dans la mesure du possible.

■ Algorithme de hachage sécurisé 2 (SHA-2) : Les algorithmes SHA-2 sont les algorithmes de hachage sécurisés que le gouvernement américain exige par la loi pour l’utilisation dans certaines applications.

La famille SHA-2 comprend des fonctions 224 bits, 256 bits, 384 bits et 512 bits. Lorsque vous choisissez un algorithme de hachage, utilisez SHA-256 ou plus, car ils sont actuellement les plus sûrs.

ATTENTION : Des failles de sécurité ont été découvertes dans SHA-1 et MD5. Par conséquent, il est maintenant recommandé d’éviter ces algorithmes.

Authentification par hachage

Deux systèmes qui se sont mis d’accord sur une clé secrète peuvent utiliser la clé ainsi qu’une fonction de hachage pour vérifier l’intégrité des données de communication entre eux en utilisant un hachage avec clé.

Un code d’authentification de message est produit en faisant passer les données du message ainsi que la clé secrète à travers un algorithme de hachage.

Seuls l’expéditeur et le destinataire connaissent la clé secrète, et la sortie de la fonction de hachage dépend désormais des données du message et de la clé secrète. La figure B illustre comment le code d’authentification du message est créé.

Les données d’une longueur arbitraire sont entrées dans la fonction de hachage, avec une clé secrète. Le résultat est le hachage à longueur fixe qui dépend des données et de la clé secrète.

Ce type d’authentification est appelé code d’authentification de message de hachage à clé (HMAC) et ajoute l’authentification à l’assurance de l’intégrité.

Figure B - Hachage HMAC
Figure B – Hachage HMAC

Les fonctions HMAC peuvent être utilisées avec MD5 (HMAC-MD5) ou SHA-1 (HMAC-SHA-1). La Figure C illustre l’authentification cryptographique en action. L’expéditeur, Alice, veut s’assurer que le message n’est pas altéré en transit et veut fournir un moyen au destinataire, Bob, d’authentifier l’origine du message.

Figure C - HMAC en action
Figure C – HMAC en action

Alice entre les données et la clé secrète dans l’algorithme de hachage et calcule le code d’authentification du message de longueur fixe, ou empreinte digitale.

Cette empreinte digitale authentifiée est ensuite jointe au message et envoyée à Bob. Bob retire l’empreinte digitale du message et utilise le message reçu avec sa copie de la clé secrète comme entrée pour la même fonction de hachage.

Si l’empreinte calculée est identique à l’empreinte reçue, l’intégrité des données a été vérifiée. De plus, l’origine du message est authentifiée, car seule Alice possède une copie de la clé secrète partagée.

Hachage dans les produits Cisco

Les produits Cisco utilisent le hachage pour l’authentification des entités, l’intégrité des données et l’authenticité des données à des fins telles que:

■ Les passerelles IPsec et les clients utilisent des algorithmes de hachage pour vérifier l’intégrité et l’authenticité des paquets.

■ Les routeurs Cisco IOS utilisent le hachage à clé avec clés secrètes pour ajouter des informations d’authentification aux mises à jour du protocole de routage.

■ Les images logicielles Cisco que vous pouvez télécharger sur Cisco.com ont des sommes de contrôle basées sur MD5 et SHA-512 disponibles, afin que les clients puissent vérifier l’intégrité des images téléchargées.

Cryptage symétrique et asymétrique

Avant de plonger dans les différences entre les algorithmes de chiffrement symétrique et asymétrique, commençons par faire le point sur les concepts de base du chiffrement lui-même.

Vue d’ensemble du chiffrement

Le cryptage est le processus qui consiste à dissimuler un message de manière à masquer son contenu original. Avec le cryptage, le message lisible en clair est converti en texte chiffré, qui est le message illisible, “déguisé”. Le décryptage inverse ce processus.

Le cryptage est utilisé pour garantir la confidentialité afin que seules les entités autorisées puissent lire le message original.

Le chiffrement peut assurer la confidentialité à différentes couches du réseau, comme les suivantes :

■ Chiffrement des données de la couche applicative, comme le chiffrement des messages électroniques avec PGP (Pretty Good Privacy)

■ Chiffrement des données de la couche session à l’aide d’un protocole tel que Secure Sockets Layer (SSL) ou Transport Layer Security (TLS)

■ Chiffrement des données de la couche réseau à l’aide de protocoles tels que ceux fournis dans la suite de protocoles de sécurité IP (IPsec)

■ Chiffrement des données de la couche de liaison de données à l’aide de dispositifs propriétaires de chiffrement

Un bon algorithme cryptographique est conçu de telle manière qu’il résiste aux attaques cryptographiques courantes. La longueur variable des clés et l’évolutivité sont également des attributs souhaitables d’un bon algorithme de chiffrement.

Une clé est un paramètre requis pour les algorithmes de chiffrement pour chiffrer et déchiffrer un message. La clé est le lien entre le texte en clair et le texte chiffré. Il existe deux classes d’algorithmes de chiffrement, qui diffèrent dans leur utilisation des clés :

■ Algorithmes de chiffrement symétrique : Utiliser la même clé pour crypter et décrypter les données

■ Algorithmes de chiffrement asymétrique : Utiliser des clés différentes pour crypter et décrypter les données

Algorithmes de chiffrement symétrique

Le cryptage symétrique, ou à clé secrète, est la forme de cryptographie la plus couramment utilisée car la clé de la longueur la plus courte augmente la vitesse d’exécution.

La plage de longueur typique des clés des algorithmes de chiffrement symétrique est de 40 à 256 bits. La figure D illustre un exemple de chiffrement symétrique en action.

Figure D - Exemple de cryptage symétrique
Figure D – Exemple de cryptage symétrique

Dans cet exemple, la même clé est utilisée pour crypter les données de l’expéditeur et décrypter celles du destinataire.

Avec le chiffrement symétrique, la gestion des clés peut représenter un défi. Les clés de cryptage et de décryptage sont identiques. L’expéditeur et le destinataire doivent échanger la clé secrète symétrique à l’aide d’un canal sécurisé avant qu’un cryptage puisse avoir lieu.

Le tableau A résume les types d’algorithmes de chiffrement symétrique utilisés aujourd’hui et leurs longueurs de clé respectives.

Algorithmes de chiffrement symétrique
Longueur de la clé (en bits)
DES56
3DES112 and 168
AES128, 192, and 256
SEAL160
RCRC2 (40 and 64)
RC4 (1 to 256)
RC5 (0 to 2040)
RC6 (128, 192, and 256)
Tableau A – Algorithmes de chiffrement symétrique

Le DES est considéré comme un ancien algorithme et est vulnérable aux attaques par force brute. Une façon d’augmenter l’efficacité du DES, sans changer l’algorithme bien analysé lui-même, est d’utiliser le même algorithme avec des clés différentes plusieurs fois de suite.

La technique consistant à appliquer le DES trois fois de suite à un bloc de texte en clair est appelée 3DES. Les attaques brutales contre 3DES sont considérées aujourd’hui comme irréalisables.

Parce que l’algorithme de base a été bien testé sur le terrain depuis plus de 35 ans, il est considéré comme très fiable. Pendant plusieurs années, il a été reconnu que le DES atteindrait éventuellement la fin de son utilité. En 1997, l’initiative AES a été annoncée.

AES a été choisi pour remplacer DES et 3DES, parce que la longueur de la clé de AES est beaucoup plus forte que celle de DES, et AES fonctionne plus rapidement que 3DES sur un matériel comparable.

Algorithmes de chiffrement asymétrique

Les algorithmes de chiffrement asymétrique utilisent une paire de clés pour chiffrer et déchiffrer les données. Les messages sécurisés peuvent être échangés sans qu’il soit nécessaire d’avoir une clé pré-partagée.

Parce qu’aucune des parties n’a une clé secrète partagée, des clés de très longues longueurs doivent être utilisées. Ces algorithmes sont gourmands en ressources et plus lents à exécuter.

Le plus souvent, une entité avec une paire de clés partagera l’une des clés (la clé publique) et gardera l’autre clé dans le plus grand secret (la clé privée). La clé privée ne peut, dans aucun délai raisonnable, être calculée à partir de la clé publique.

Les données cryptées avec la clé privée doivent être décryptées par la clé publique. Inversement, les données cryptées avec la clé publique doivent être décryptées par la clé privée. Le cryptage asymétrique est également connu sous le nom de cryptage à clé publique.

Voici un scénario possible de cryptage asymétrique en action. Dans la Figure E, imaginez que Bob a généré une paire de clés publiques/privées. Bob garde la clé privée totalement secrète mais publie la clé publique pour qu’elle soit accessible à tous.

Alice a un message qu’elle veut envoyer à Bob en privé. Si Alice crypte le message à l’aide de la clé publique de Bob, seul Bob possède la clé privée nécessaire pour décrypter le message, ce qui assure la confidentialité.

Figure E - Exemple de chiffrement asymétrique
Figure E – Exemple de chiffrement asymétrique

Le tableau suivant fournit une comparaison détaillée entre les algorithmes de chiffrement symétrique et asymétrique :

Algorithmes de chiffrement asymétriqueLongueur de la clé (en bits)
DH512, 1024, 2048, 3072, 4096
DSS and DSA512–1024
RSA512–2048
ElGamal512–1024
Techniques de courbe elliptique160
Tableau B – Algorithmes de chiffrement asymétrique

Quatre protocoles qui utilisent des algorithmes de chiffrement asymétrique sont les suivants

■ Internet Key Exchange (IKE) : Un composant fondamental des VPNs IPsec.

■ Secure Sockets Layer (SSL) : Maintenant implémenté en tant que standard IETF TLS.

■ Secure Shell (SSH) : Fournit une connexion sécurisée d’accès à distance aux périphériques réseau.

■ Pretty Good Privacy (PGP) : Un programme informatique qui assure la confidentialité et l’authentification cryptographiques.

Signatures numériques et certificats RSA

Les signatures numériques offrent les mêmes fonctionnalités que les signatures manuscrites. Plus précisément, il s’agit d’une technique mathématique utilisée pour fournir trois services de sécurité de base : authentifier une source, prouver qu’une certaine partie a vu et signé les données en question; garantir que les données n’ont pas changé depuis leur signature ; prouver à un tiers que l’échange a eu lieu.

Les signatures numériques sont couramment utilisées dans la signature de code (pour vérifier l’intégrité des fichiers téléchargés) et les certificats numériques (pour vérifier l’identité d’une organisation ou d’une personne).

Les quatre propriétés fondamentales des signatures numériques sont les suivantes : (1) la signature est authentique, (2) la signature n’est pas falsifiable, (3) la signature n’est pas réutilisable et (4) le signataire ne peut prétendre ultérieurement qu’il ne l’a pas signée.

Les certificats numériques sont utilisés pour authentifier et vérifier qu’un utilisateur qui envoie un message est bien celui qu’il prétend être. La Figure F montre comment un certificat ou une signature numérique RSA est utilisé.

RSA est un algorithme asymétrique couramment utilisé pour générer et vérifier les signatures numériques.

Dans ce scénario, Bob confirme une commande à Alice. Les étapes sont les suivantes :

1. Bob fait une empreinte digitale du document, qui identifie de façon unique le document et tout son contenu.

2. Bob chiffre le hachage avec seulement la clé privée du signataire (c-à-d. la clé privée de Bob).

Figure F - Utilisation des signatures numériques RSA
Figure F – Utilisation des signatures numériques RSA

3. Le hachage crypté, connu sous le nom de signature, est ajouté au document.

4. Alice obtient la clé publique de Bob.

5. Alice décrypte la signature à l’aide de la clé publique de Bob. Cette étape dévoile la valeur de hachage initialement calculée par Bob.

6. Alice fait un hachage du document reçu, sans sa signature, et compare ce hachage au hachage de la signature déchiffrée envoyé par Bob. Si les hachages correspondent, le document est authentique.

La correspondance signifie que le document a été signé par Bob et n’a pas changé depuis sa signature.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here


CAPTCHA Image
Reload Image