Une comparaison entre Let's Encrypt, les autorités de certification commerciales et privées et les certificats SSL auto-signés

De Get Docs
Aller à :navigation, rechercher

Introduction

La poussée pour obtenir de plus en plus de trafic Web sécurisé avec le cryptage SSL signifie qu'un nombre croissant de services et de cas d'utilisation ont besoin d'une solution pour obtenir les certificats appropriés. Qu'il s'agisse d'un site Web public, d'un trafic intranet ou d'un serveur intermédiaire pour votre application Web, vous aurez besoin d'un certificat pour protéger vos données et répondre aux attentes de sécurité modernes de vos utilisateurs.

Les principaux avantages des connexions SSL tournent autour de la confidentialité et de l'intégrité des données. Les connexions sont privées car le cryptage empêche les écoutes clandestines. L'intégrité des données est assurée en vérifiant de manière cryptographique que vous vous connectez au bon serveur (et non à un imposteur) et en vérifiant que les messages individuels ne sont pas falsifiés en transit.

Il existe plusieurs façons d'obtenir des certificats SSL, et en fonction de votre budget, de votre public et de quelques autres facteurs, vous pouvez choisir entre une autorité de certification commerciale, une nouvelle autorité de certification automatisée et gratuite, des certificats auto-signés et votre propre autorité de certification privée. Passons en revue une comparaison de ces options et discutons du meilleur moment pour les utiliser.

Glossaire

Avant de commencer, nous définirons certains termes courants utilisés lors de la discussion sur la sécurité SSL :

Sécurité de la couche de transport (TLS)

Transport Layer Security est un nouveau protocole de sécurité qui remplace Secure Sockets Layer (SSL). Bien qu'il soit plus probable qu'une connexion cryptée moderne utilise TLS, le nom SSL est resté dans le langage courant et c'est ce que nous utiliserons ici.

Certificat

Dans cet article, nous ferons exclusivement référence aux certificats de serveur SSL '. Les certificats de serveur sont présentés par un serveur Web chaque fois qu'une nouvelle connexion SSL est demandée. Ils contiennent le nom de l'hôte auquel le certificat est délivré (qui doit correspondre au serveur auquel vous essayez de vous connecter) et sont signés par une autorité de certification pour établir la confiance.

Autorité de certification (AC)

Les autorités de certification vérifient les détails de la demande de certificats SSL d'un propriétaire de domaine, puis, si tout se vérifie, émettent et signent des certificats de serveur. Les navigateurs et les systèmes d'exploitation maintiennent une liste d'autorités de certification approuvées. Si un certificat de serveur est signé par l'une de ces autorités de certification approuvées, il sera également approuvé.

Validation de domaine (DV)

Un certificat de domaine validé sera délivré à quelqu'un qui a prouvé qu'il contrôle le nom de domaine demandé pour le certificat. Cette preuve prend souvent la forme d'un jeton unique à partir de votre serveur Web ou de vos enregistrements DNS, que l'autorité de certification vérifiera avant d'émettre le certificat.

Validation d'organisation (VO)

Un certificat validé par l'organisation signifie que l'autorité de certification a également vérifié le nom et l'adresse de l'entreprise dans les bases de données publiques. Ces informations sont placées dans le certificat et ne s'affichent généralement que lorsque l'utilisateur clique sur l'icône de cadenas vert pour approfondir ses recherches.

Validation étendue (VE)

La validation étendue est plus approfondie que la validation de domaine ou d'organisation. Les certificats EV sont délivrés après avoir vérifié non seulement la propriété du domaine, mais également l'existence et l'emplacement de l'entité juridique demandant le certificat, et que ladite entité contrôle le domaine en cours de vérification.

Contrairement aux certificats DV et OV, EV ne peut pas être délivré en tant que certificat générique.

Les certificats EV bénéficient également d'un traitement spécial dans les navigateurs Web. Alors que les navigateurs désignent généralement un certificat DV avec une icône de cadenas vert, les certificats EV affichent également une barre verte plus grande contenant le nom de l'organisation à laquelle il a été délivré. Ceci est destiné à réduire les attaques de phishing, bien que certaines études montrent que les utilisateurs ont tendance à ne pas remarquer l'absence de cette barre verte.

Certificat générique

Au lieu d'être délivrés pour un nom de domaine complet spécifique (app.example.com, par exemple), les certificats génériques sont valides pour toute une gamme de noms de sous-domaine. Ainsi, un certificat délivré à *.example.com couvrirait n'importe quel sous-domaine de example.com tel que app.example.com et database.example .com. Le caractère astérisque est le caractère générique ' et peut être remplacé par n'importe quel nom d'hôte valide.

Liste de révocation de certificats (CRL)

Les certificats SSL peuvent inclure des informations sur la manière d'accéder à une liste de révocation de certificats. Les clients téléchargeront et vérifieront cette liste pour s'assurer que le certificat n'a pas été révoqué. Les CRL ont été largement remplacées par des répondeurs OCSP.

Protocole d'état de certificat en ligne (OCSP)

Le protocole OCSP remplace les CRL, avec l'avantage d'être plus en temps réel et de nécessiter moins de bande passante. Le fonctionnement général est similaire : les clients doivent interroger le répondeur OCSP pour vérifier si un certificat a été révoqué.

Autorités de certification commerciales

Les autorités de certification commerciales vous permettent d'acheter des certificats DV, OV et EV. Certains offrent des certificats validés par domaine gratuits avec certaines restrictions (pas de caractères génériques, par exemple).

  • Processus : Processus manuel pour la configuration initiale et le renouvellement
  • Coût : environ 10 $ à 1 000 $
  • Validation : DV, OV et EV
  • Trust : Approuvé par défaut dans la plupart des navigateurs et des systèmes d'exploitation
  • Certificats génériques : Oui
  • Certificats IP uniquement : Certains émettront des certificats pour les adresses IP publiques.
  • Période d'expiration : 1 à 3 ans

La plupart des autorités de certification commerciales sont approuvées par défaut dans la plupart des navigateurs. Le processus de renouvellement est généralement manuel, vous devez donc noter les dates d'expiration de vos certificats et vous rappeler de renouveler à temps.

Les autorités de certification commerciales ont traditionnellement été la seule véritable option pour obtenir des certificats approuvés par la plupart des principaux navigateurs. Cela a changé avec de nouvelles autorités de certification automatisées comme Let's Encrypt. Pourtant, les autorités de certification commerciales sont le seul moyen d'obtenir un certificat EV et le seul moyen d'obtenir un certificat générique auquel la plupart des navigateurs font automatiquement confiance. Ils sont également une bonne option si vous avez besoin d'un certificat pour un appareil qui ne peut pas exécuter le client automatisé Let's Encrypt (en raison d'une incompatibilité logicielle ou peut-être d'un appareil intégré à faible consommation).

Les autorités de certification commerciales offrent souvent l'option de contrats de support supplémentaires, de garanties et de certification, ce qui est important pour certaines entreprises et industries.

Chiffrez

Let's Encrypt fournit un mécanisme automatisé pour demander et renouveler des certificats validés par domaine gratuits. Ils ont créé un protocole standard - ACME - pour interagir avec le service afin de récupérer et de renouveler automatiquement les certificats. Le client ACME officiel s'appelle Certbot, bien que de nombreux clients alternatifs existent.

  • Processus : La configuration initiale et le renouvellement sont automatisés. Seule la configuration d'Apache et de Nginx est automatisée avec le client officiel, mais les certificats peuvent être téléchargés et utilisés indépendamment de tout logiciel serveur particulier.
  • Coût : Gratuit
  • Validation : DV uniquement
  • Par défaut : Approuvé par défaut dans la plupart des navigateurs et des systèmes d'exploitation
  • Certificats génériques : Non (Prévu pour janvier 2018)
  • Certificats IP uniquement : Non
  • Période d'expiration : 90 jours

Les certificats Let's Encrypt ont une durée de vie courte pour encourager le renouvellement automatisé et réduire le temps pendant lequel tout certificat compromis pourrait être abusé par un attaquant.

Si vous avez un serveur accessible au public et qu'un nom de domaine valide y pointe, Let's Encrypt pourrait être une bonne option. Les serveurs de Let's Encrypt doivent contacter votre serveur Web ou récupérer un enregistrement DNS public pour vérifier que vous contrôlez le domaine, donc l'utiliser pour un serveur privé derrière un pare-feu sur votre réseau local peut être un peu plus délicat. Cependant, il est toujours possible d'utiliser le défi d'autorisation basé sur DNS de Let's Encrypt.

Let's Encrypt ne fournira pas de certificats pour une adresse IP nue.

Si vous avez besoin d'un certificat EV ou d'un certificat générique, Let's Encrypt n'est pas une option. Notez que Let's Encrypt peut créer un certificat contenant jusqu'à 100 noms d'hôte, il est donc possible que vous n'ayez pas réellement besoin d'un caractère générique pour votre cas d'utilisation, vous aurez peut-être simplement besoin d'un certificat qui couvre tous vos sous-domaines existants.

Néanmoins, en raison des limites de débit sur l'API Let's Encrypt, si vous avez de nombreux sous-domaines ou des sous-domaines dynamiques qui peuvent être créés à la volée, Let's Encrypt peut ne pas convenir.

Certificats auto-signés

Il est possible d'utiliser un certificat SSL qui a été signé par sa propre clé privée, en contournant complètement le besoin d'une autorité de certification. C'est ce qu'on appelle un certificat auto-signé et il est assez souvent suggéré lors de la configuration d'applications Web à des fins de test ou d'utilisation par un nombre limité d'utilisateurs férus de technologie.

  • Processus : Création manuelle d'un certificat, pas de mécanisme de renouvellement
  • Coût : Gratuit
  • Validation : DV et OV
  • Approbation : Aucun par défaut. Chaque certificat doit être marqué manuellement comme approuvé, car il n'y a pas d'autorité de certification commune impliquée
  • Certificats génériques : Oui
  • Certificats IP uniquement : Oui, n'importe quelle adresse IP
  • Période d'expiration : N'importe lequel

Des certificats auto-signés peuvent être créés avec la commande openssl fournie avec la bibliothèque OpenSSL. Vous pouvez trouver les commandes exactes nécessaires, et plus d'informations sur OpenSSL, dans notre tutoriel OpenSSL Essentials : Travailler avec des certificats SSL, des clés privées et des CSR.

Étant donné qu'un certificat auto-signé n'est signé par aucune autorité de certification approuvée, vous devrez marquer manuellement le certificat comme approuvé, un processus qui est différent dans chaque navigateur et système d'exploitation. Par la suite, le certificat agira comme n'importe quel certificat signé par une autorité de certification normale.

Les certificats auto-signés sont bons pour une utilisation ponctuelle lorsque vous n'avez besoin de gérer manuellement la confiance que sur quelques clients, et ne vous souciez pas du fait qu'ils ne peuvent pas être révoqués ou renouvelés sans plus d'effort manuel. C'est souvent suffisant à des fins de développement et de test, ou pour des applications Web auto-hébergées que seules quelques personnes utiliseront.

Autorités de certification privées

Il est possible de créer votre propre autorité de certification privée et de l'utiliser pour signer des certificats. Vos utilisateurs devront installer manuellement et approuver votre autorité de certification privée avant que l'un de ses certificats ne soit approuvé.

  • Processus : Création et renouvellement manuels de certificats, et configuration manuelle de l'autorité de certification elle-même
  • Coût : Gratuit
  • Validation : DV et OV
  • Approbation : Aucun par défaut. Vous devez distribuer manuellement votre certificat CA privé aux clients pour établir la confiance
  • Certificats génériques : Oui
  • Certificats IP uniquement : Oui, n'importe quelle adresse IP
  • Période d'expiration : N'importe lequel

Comme pour les certificats auto-signés, vous pouvez créer une autorité de certification privée à l'aide des outils de ligne de commande fournis avec la bibliothèque OpenSSL, mais certaines interfaces alternatives ont été développées pour faciliter le processus. tinyCA est une interface graphique pour ce processus, et caman est un programme en ligne de commande. Les deux facilitent la création d'une autorité de certification, puis l'émission, le renouvellement et la révocation des certificats.

Une autorité de certification privée est une bonne option si vous avez plusieurs certificats à créer et que vous pouvez distribuer et installer manuellement votre autorité de certification pour vos utilisateurs. Cela vous limite probablement à une utilisation interne au sein d'une organisation ou d'un petit groupe d'utilisateurs techniquement avertis qui peuvent installer l'autorité de certification correctement. Les services informatiques plus importants ont souvent les moyens de déployer automatiquement des autorités de certification auprès de leurs utilisateurs, ce qui rend cette solution plus attrayante pour eux.

Contrairement aux certificats auto-signés, où chaque certificat doit être marqué manuellement comme approuvé, vous n'avez qu'à installer l'autorité de certification privée une seule fois. Tous les certificats émis par cette autorité de certification hériteront alors de cette confiance.

L'un des inconvénients est qu'il y a un peu de surcharge pour exécuter l'autorité de certification, et il faut savoir comment configurer et maintenir de manière sécurisée.

Si une révocation appropriée est importante pour votre utilisation, vous devrez également maintenir un serveur HTTP pour la liste de révocation de certificats ou un répondeur OCSP.

Conclusion

Nous avons passé en revue différentes options pour obtenir ou créer des certificats SSL. Selon ce qui convient le mieux à votre situation, l'ajout d'une protection SSL est bon pour protéger les données, la confidentialité et la sécurité de votre service et de vos utilisateurs.

Si vous souhaitez approfondir SSL et les options dont nous avons parlé, les liens suivants peuvent vous être utiles :

  • La documentation OpenSSL décrit la bibliothèque et ses commandes en détail
  • Le CA/Browser Forum est l'endroit où les autorités de certification et les fournisseurs de navigateurs définissent les exigences et les meilleures pratiques pour le fonctionnement des autorités de certification. Cela inclut des règles telles que la durée de validité des certificats et s'ils doivent être délivrés pour des noms de domaine non publics.
  • Le Let's Encrypt CA contient plus d'informations sur le protocole ACME