Terminologie importante concernant la sécurité

Lors de la migration vers HTTPS, les développeurs sont confrontés à deux obstacles : les concepts et la terminologie. Ce guide fournit une brève présentation de ces deux possibilités.

Chris Palmer
Chris Palmer

Résumé

  • utilisé des clés publiques/privées pour signer et déchiffrer les messages entre le navigateur et le serveur ;
  • Une autorité de certification est une organisation qui garantit le mappage entre les clés publiques et les noms DNS publics (tels que « www.foobar.com »).
  • Une requête de signature de certificat est un format de données qui regroupe une clé publique et des métadonnées sur l'entité propriétaire de la clé.

Quelles sont les paires de clés publique et privée ?

Une paire de clés publique/privée est une paire de très grands nombres utilisés comme clés de chiffrement et de déchiffrement, et partageant une relation mathématique particulière. Le cryptosystème RSA est un système courant pour les paires de clés. La clé publique permet de chiffrer les messages, et les messages ne peuvent être déchiffrés qu'avec la clé privée correspondante. Votre serveur Web annonce sa clé publique au monde entier, et les clients (tels que les navigateurs Web) l'utilisent pour amorcer un canal sécurisé vers votre serveur.

Qu’est-ce qu’une autorité de certification ?

Une autorité de certification (CA) est une organisation qui garantit le mappage entre les clés publiques et les noms DNS publics (par exemple, "www.foobar.com"). Par exemple, comment un client peut-il savoir si une clé publique particulière est la clé publique true de www.foobar.com ? A priori, il n'y a aucun moyen de le savoir. Une autorité de certification certifie qu'une clé donnée est la véritable clé d'un site donné en utilisant sa propre clé privée pour signer de manière cryptographique la clé publique du site Web. Cette signature est informatiquement impossible à falsifier. Les navigateurs (et d'autres clients) gèrent des magasins d'ancres de confiance contenant les clés publiques appartenant à des autorités de certification connues. Ils les utilisent pour vérifier de manière cryptographique les signatures des autorités de certification.

Un certificat X.509 est un format de données qui regroupe une clé publique et des métadonnées sur l'entité propriétaire de la clé. Dans le cas du Web, le propriétaire de la clé est l'opérateur du site, et les métadonnées importantes sont le nom DNS du serveur Web. Lorsqu'un client se connecte à un serveur Web HTTPS, le serveur Web présente son certificat au client, qui peut le vérifier. Le client vérifie que le certificat n'a pas expiré, que le nom DNS correspond au nom du serveur auquel le client tente de se connecter et qu'une autorité de certification d'ancre de confiance connue a signé le certificat. Dans la plupart des cas, les autorités de certification ne signent pas directement les certificats du serveur Web. Une chaîne de certificats relie une ancre de confiance à un ou plusieurs signataires intermédiaire, puis au propre certificat du serveur Web (l'entité de fin).

Qu’est-ce qu’une demande de signature de certificat ?

Une requête de signature de certificat (CSR) est un format de données qui, comme un certificat, regroupe une clé publique et des métadonnées sur l'entité propriétaire de la clé. Toutefois, les clients n'interprètent pas les requêtes de signature de certificat, contrairement aux autorités de certification. Lorsque vous souhaitez qu'une autorité de certification se porte garante de la clé publique de votre serveur Web, vous envoyez une requête de signature de certificat à l'autorité de certification. L'autorité de certification valide les informations contenues dans la requête de signature de certificat et les utilise pour générer un certificat. L'autorité de certification vous envoie ensuite le certificat final, et vous installez ce certificat (ou, plus probablement, une chaîne de certificats) ainsi que votre clé privée sur votre serveur Web.