Techniques de chiffrement

Techniques de chiffrement

Pas de panique, cette introduction n’est présente que pour comprendre les chiffrements qui sont mis en œuvre couramment dans la sécurisation des applications. Il s’agit juste de présenter les grands principes, sans entrer dans les détails mathématiques et algorithmiques. Une des premières étapes de la sécurisation des applications distribuées, est de sécuriser les communications entre les clients et les serveurs. Pour ce faire, les messages échangés vont être codés. Le fait de coder les messages s’appelle le chiffrement, l’opération inverse est le déchiffrement. L’opération de chiffrement est effectuée à l’aide d’une clé de chiffrement, le décodage l’est par une clé de déchiffrement. Lorsque les clés de chiffrement et de déchiffrement sont identiques, les clés sont dites symétriques. Lorsque les clés de chiffrement et de déchiffrement sont différentes, les clés sont dites asymétriques. Le chiffrement est dit aussi, par clé publique. 1. Chiffrement symétrique La même clé est utilisée pour les opérations de chiffrement et déchiffrement. La clé est connue par les deux parties prenantes de la communication. Ce chiffrement repose sur le principe que les deux utilisateurs (au sens large : humain ou système) connaissent la clé de chiffrement. Il y a donc échange d’un secret : la clé. Le principal avantage de ce type de chiffrement est sa simplicité, et donc, sa rapidité, en terme de temps de calcul, pour l’algorithme de codage et décodage. Les désavantages de ce chiffrement symétrique sont les suivants : ● Le système repose sur l’échange d’un secret (la clé de chiffrement). L’émetteur du message a besoin de la clé du destinataire. Il faut donc sécuriser le canal d’échange. ● Si un utilisateur doit communiquer avec plusieurs autres utilisateurs, il faut une clé par interlocuteur, ce qui, pour un groupe de N utilisateurs désirant utiliser entre eux ce système, il faut distribuer, et gérer N*(N­1)/2 clés. ● De plus, il a été démontré par Claude SHANNON, que pour que le système soit totalement sûr, la longueur de la clé doit être égale à la longueur du message. 2. Chiffrement asymétrique Dans ce type de chiffrement, les opérations de chiffrement et de déchiffrement sont réalisées au moyen de clés différentes. Le chiffrement est réalisé à l’aide d’une clé dite publique, car connue par tous les émetteurs de message. Le déchiffrement est réalisé à l’aide d’une clé privée, connue seulement du destinataire des messages. Contrairement au chiffrement symétrique, les algorithmes de chiffrement et déchiffrement sont totalement différents. Ce système utilise des fonctions faciles à calculer dans un sens, le chiffrement, et très difficiles à inverser algorithmiquement dans l’autre sens, le déchiffrement. Schématiquement, ces fonctions se comportent comme le carré  et son inverse. L’algorithme de la mise au carré d’un nombre est aisé à coder, c’est ce nombre multiplié par lui­même. L’opération inverse, la racine carrée, possède un algorithme déjà nettement plus complexe. Le destinataire du message crée, aléatoirement, la clé privée. La clé publique est déduite de la clé privée. La clé publique est diffusée par un canal qui n’a pas besoin d’être sécurisé. Les principaux avantages du chiffrement asymétrique sont les suivants : ● il n’y a pas partage d’un secret entre l’émetteur et le destinataire du message, donc pas de nécessité d’utiliser un canal de communication sécurisé ; ● il n’y a plus de multiples clés à gérer avec les différents utilisateurs qui veulent échanger des messages. Chaque utilisateur possède une clé privée, et diffuse sa clé publique. Le principal inconvénient est que le temps de calcul de décodage est moins rapide que pour le chiffrement symétrique. Il faut aussi considérer que l’émetteur du message doit être sûr que la clé publique qu’il reçoit est bien celle du destinataire. Pour permettre d’assurer l’origine de la clé publique, cette clé va être associée à une entité (organisme, personne, machine…) au sein d’un certificat, qui sera délivré par une autorité de certification (CA pour Certification Authority). 3. Le certificat L’objectif du certificat est de garantir que la clé publique est bien celle de celui à qui nous voulons envoyer le message. Les certificats sont structurés en deux parties, selon la norme X 509. Une partie contient les informations sur le certificat lui­même : ● Version de la norme X 509 ; ● Numéro de série du certificat ; ● Algorithme de chiffrement employé ; ● Le nom de l’autorité de certification ; ● La date de début de validité du certificat ; ● La date de fin de validité du certificat ; ● L’objet de l’utilisation de la clé publique ; ● La clé publique du propriétaire du certificat. L’autre partie contient la signature de l’organisme de certification. Une empreinte des informations précédentes est créée par une fonction de hashage. Cette empreinte est chiffrée par la clé privée de l’autorité de certification pour générer la signature.Pour améliorer la manipulation des certificats, ceux­ci sont enregistrés dans des magasins (keystore). Chaque éditeur possède son propre format de keystore, par exemple : ● JKS (Java Key Standard) pour le monde Java ; ● PCKS12 (Public Key Cryptography Standard 12) pour les navigateurs ; ● PEM (Privacy Enchance Mail) pour OpenSSL. Il nous faudra donc plusieurs outils pour créer et convertir les certificats : keytool, OpenSSL.

Formation et coursTélécharger le document complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *