Terminologie importante concernant la sécurité

Les concepts et la terminologie sont deux des obstacles auxquels les développeurs sont confrontés lors de la migration vers HTTPS. Ce guide présente brièvement les deux.

Chris Palmer
Chris Palmer

Résumé

  • Utilisation de clés publiques/privées pour signer et déchiffrer les messages entre le navigateur et le serveur.
  • Une autorité de certification (AC) 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 (CSR) est un format de données qui regroupe une clé publique et des métadonnées sur l'entité propriétaire de la clé.

Que 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 qui partagent une relation mathématique particulière. Le système de cryptographie RSA est un système courant pour les paires de clés. La clé publique permet de chiffrer les messages, et ceux-ci ne peuvent être déchiffrés que par 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 démarrer un canal sécurisé vers votre serveur.

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

Une autorité de certification (AC) est une organisation qui garantit le mappage entre les clés publiques et les noms DNS publics (tels que "www.foobar.com"). Par exemple, comment un client peut-il savoir si une clé publique particulière est la vraie clé publique de www.foobar.com ? A priori, il n'y a aucun moyen de le savoir. Une autorité de certification atteste qu'une clé particulière est la bonne pour un site particulier en utilisant sa propre clé privée pour signer de manière cryptographique la clé publique du site Web. Il est impossible de falsifier cette signature. Les navigateurs (et d'autres clients) gèrent des magasins d'ancrage de confiance contenant les clés publiques appartenant aux autorités de certification connues. Ils utilisent ces clés publiques pour vérifier de manière cryptographique les signatures de l'autorité de certification.

Un certificat X.509 est un format de données qui regroupe une clé publique avec 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 pour que le client puisse le valider. 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 racine de confiance connue a signé le certificat. Dans la plupart des cas, les autorités de certification ne signent pas directement les certificats de serveur Web. En général, une chaîne de certificats relie un ancrage de confiance à un ou plusieurs signataires intermédiaires, puis au certificat du serveur Web (l'entité finale).

Qu'est-ce qu'une requête 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 avec des métadonnées sur l'entité propriétaire de la clé. Toutefois, ce ne sont pas les clients qui interprètent les CSR, mais les autorités de certification. Lorsque vous demandez à une autorité de certification de se porter garante de la clé publique de votre serveur Web, vous lui envoyez une CSR. L'autorité de certification valide les informations de la demande 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) et votre clé privée sur votre serveur Web.