Chapitre 3. Créer et gérer des clés et des certificats TLS
Vous pouvez crypter les communications transmises entre deux systèmes en utilisant le protocole TLS (Transport Layer Security). Cette norme utilise la cryptographie asymétrique avec des clés privées et publiques, des signatures numériques et des certificats.
3.1. Certificats TLS
TLS (Transport Layer Security) est un protocole qui permet aux applications client-serveur de transmettre des informations en toute sécurité. TLS utilise un système de paires de clés publiques et privées pour crypter les communications transmises entre les clients et les serveurs. TLS est le protocole qui succède à SSL (Secure Sockets Layer).
TLS utilise des certificats X.509 pour lier des identités, telles que des noms d'hôte ou des organisations, à des clés publiques à l'aide de signatures numériques. X.509 est une norme qui définit le format des certificats de clé publique.
L'authentification d'une application sécurisée dépend de l'intégrité de la valeur de la clé publique du certificat de l'application. Si un pirate remplace la clé publique par sa propre clé publique, il peut se faire passer pour la véritable application et accéder aux données sécurisées. Pour éviter ce type d'attaque, tous les certificats doivent être signés par une autorité de certification (AC). Une autorité de certification est un nœud de confiance qui confirme l'intégrité de la valeur de la clé publique d'un certificat.
Une AC signe une clé publique en y ajoutant sa signature numérique et délivre un certificat. Une signature numérique est un message codé avec la clé privée de l'AC. La clé publique de l'autorité de certification est mise à la disposition des applications en distribuant le certificat de l'autorité de certification. Les applications vérifient que les certificats sont valablement signés en décodant la signature numérique de l'AC avec la clé publique de l'AC.
Pour faire signer un certificat par une autorité de certification, vous devez générer une clé publique et l'envoyer à l'autorité de certification pour qu'elle la signe. C'est ce qu'on appelle une demande de signature de certificat (CSR). Une CSR contient également un nom distinctif (DN) pour le certificat. Les informations DN que vous pouvez fournir pour l'un ou l'autre type de certificat peuvent inclure un code pays à deux lettres pour votre pays, le nom complet de votre état ou province, votre ville, le nom de votre organisation, votre adresse électronique, et elles peuvent également être vides. De nombreuses autorités de certification commerciales actuelles préfèrent l'extension Subject Alternative Name et ignorent les DN dans les CSR.
RHEL fournit deux boîtes à outils principales pour travailler avec des certificats TLS : GnuTLS et OpenSSL. Vous pouvez créer, lire, signer et vérifier des certificats à l'aide de l'utilitaire openssl
du paquetage openssl
. L'utilitaire certtool
fourni par le paquetage gnutls-utils
peut effectuer les mêmes opérations en utilisant une syntaxe différente et surtout un ensemble différent de bibliothèques en arrière-plan.
Ressources supplémentaires
- RFC 5280 : Profil des certificats et des listes de révocation de certificats (CRL) de l'infrastructure à clé publique X.509 de l'Internet
-
openssl(1)
,x509(1)
,ca(1)
,req(1)
, etcerttool(1)
pages de manuel