Comparaison des autorités de certification Let’s Encrypt, commerciales et privées et des certificats SSL auto-signés

introduction

L'impulsion 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 de stockage 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é de vos utilisateurs.

Les principaux avantages des connexions SSL tournent autour deprivacy etdata integrity. Les connexions sont privées car le cryptage empêche toute écoute indiscrète. 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 en imposteur) et en vérifiant que des messages individuels ne sont pas altérés en transit.

Vous pouvez obtenir des certificats SSL de différentes manières. En fonction de votre budget, de votre public cible 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 serveur. propre autorité de certification privée. Faisons une comparaison de ces options et discutons du meilleur moment pour les utiliser.

Glossaire

Avant de commencer, nous définirons quelques termes couramment 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 le protocole SSL (Secure Sockets Layer). 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 allons utiliser ici.

Certificat

Dans cet article, nous ferons exclusivement référence aux SSLserver certificates. 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 pour lequel le certificat est émis (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 (CA)

Les autorités de certification vérifient les informations relatives à la demande de certificats SSL du propriétaire de domaine. Ensuite, si tout est vérifié, émettez et signez des certificats de serveur. Les navigateurs et les systèmes d'exploitation gèrent une liste des 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 le sera également.

Validation de domaine (DV)

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

Validation d'organisation (OV)

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

Validation étendue (EV)

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

Contrairement aux certificats DV et OV, EV ne peut pas être émis 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 indiquent généralement un certificat DV avec une icône de cadenas verte, les certificats EV indiquent également une barre verte plus grande contenant le nom de l'organisation pour laquelle il a été émis. Ceci est destiné à réduire les attaques de phishing, bien que certaines études montrent que les utilisateurs ont tendance à ne pas remarquer quand cette barre verte est manquante.

Certificat Wildcard

Au lieu d'être émis 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-domaines. Ainsi, un certificat émis à*.example.com couvrirait n'importe quel sous-domaine de example.com tel queapp.example.com etdatabase.example.com. Le caractère astérisque est lewildcard 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 l'accès à 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é en grande partie remplacées par les répondeurs OCSP.

Protocole de statut de certificat en ligne (OCSP)

Le protocole OCSP remplace les listes de révocation de certificats, avec les avantages d'être plus en temps réel et nécessitant moins de bande passante. L'opération générale 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 gratuits de domaine validé avec certaines restrictions (pas de caractères génériques, par exemple).

  • Process: Processus manuel pour la configuration initiale et le renouvellement

  • Cost: environ 10 $ à 1 000 $

  • Validation: DV, OV et EV

  • Trust: Approuvé par défaut dans la plupart des navigateurs et systèmes d'exploitation

  • Wildcard Certificates: Oui

  • IP-only Certificates: Certains émettront des certificats pour les adresses IPpublic

  • Expiration Period: 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 option réelle pour obtenir des certificats approuvés par la plupart des principaux navigateurs. Cela a changé avec les nouvelles autorités de certification automatisées comme Let’s Encrypt. Néanmoins, les autorités de certification commerciales constituent le seul moyen d'obtenir un certificat EV, et le seul moyen d'obtenir un certificat générique qui est automatiquement approuvé par la plupart des navigateurs. C’est également une bonne option si vous avez besoin d’un certificat pour un périphérique qui ne peut pas exécuter le client Let’s Encrypt automatisé (en raison d’une incompatibilité logicielle, ou peut-être d’un périphérique intégré à faible consommation).

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

Encryptons

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

  • Process: La configuration initiale et le renouvellement sont automatisés. Seules les configurations Apache et Nginx sont automatisées avec le client officiel, mais les certificats peuvent être téléchargés et utilisés indépendamment de tout logiciel serveur particulier.

  • Cost: gratuit

  • Validation: DV uniquement

  • Default: Approuvé par défaut dans la plupart des navigateurs et systèmes d'exploitation

  • Wildcard Certificates: Non (Planned for January 2018)

  • IP-only Certificates: Non

  • Expiration Period: 90 jours

Les certificats de Let Encrypt sont de courte durée afin d’encourager le renouvellement automatique et de réduire le délai d’utilisation abusive des certificats compromis par un attaquant.

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

Let’s Encrypt ne fournira pas de certificat 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 besoin d’un caractère générique pour votre cas d’utilisation. Vous aurez peut-être besoin d’un certificat couvrant tous vos sous-domaines existants.

Néanmoins, en raison des limites de taux définies dans l’API Let’s Encrypt, si vous avez beaucoup de sous-domaines ou des sous-domaines dynamiques pouvant être créés à la volée, Let’s Encrypt risque de ne pas convenir.

Certificats auto-signés

Il est possible d’utiliser un certificat SSL signé avec sa propre clé privée, en évitant de recourir à une autorité de certification. Ceci s'appelle un certificat auto-signé et 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.

  • Process: Création manuelle de certificat, pas de mécanisme de renouvellement

  • Cost: gratuit

  • Validation: DV et OV

  • Trust: Aucun par défaut. Chaque certificat doit être marqué manuellement comme approuvé, car aucune autorité de certification commune n'est impliquée.

  • Wildcard Certificates: Oui

  • IP-only Certificates: Oui, toute adresse IP

  • Expiration Period: Quelconque

Les certificats auto-signés peuvent être créés avec la commandeopenssl fournie avec la bibliothèque OpenSSL. Vous pouvez trouver les commandes exactes nécessaires, et plus d'informations sur OpenSSL, dans notre tutorielOpenSSL Essentials: Working with SSL Certificates, Private Keys and CSRs.

Étant donné qu’un certificat auto-signé n’est signé par aucune autorité de certification approuvée, vous devez marquer manuellement le certificat comme étant approuvé, processus différent de chaque navigateur et de chaque système d’exploitation. Par la suite, le certificat agira comme tout autre certificat normal signé par une autorité de certification.

Les certificats auto-signés sont parfaits pour une utilisation ponctuelle lorsque vous n’avez besoin que de gérer manuellement la confiance accordée à quelques clients, sans vous soucier du fait qu’elle ne peut être ni révoquée ni renouvelée sans davantage d’efforts manuels. Cela est souvent suffisant pour le développement et les tests, ou pour des applications Web auto-hébergées que seules quelques personnes pourront utiliser.

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 faire confiance à votre autorité de certification privée avant que l'un de ses certificats ne soit approuvé.

  • Process: Création et renouvellement manuels des certificats, plus configuration manuelle de l'autorité de certification elle-même

  • Cost: gratuit

  • Validation: DV et OV

  • Trust: Aucun par défaut. Vous devez distribuer manuellement votre certificat d’autorité de certification privée aux clients pour établir la confiance.

  • Wildcard Certificates: Oui

  • IP-only Certificates: Oui, toute adresse IP

  • Expiration Period: Quelconque

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 etcaman est un programme en ligne de commande. Les deux facilitent la création d'une autorité de certification, puis émettent, renouvellent et révoquent des certificats.

Une autorité de certification privée est une bonne option si vous devez créer plusieurs certificats et 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 pouvant installer correctement l'autorité de certification. Les grands départements informatiques ont souvent les moyens de déployer automatiquement les autorités de certification auprès de leurs utilisateurs, ce qui les rend plus attractifs.

Contrairement aux certificats auto-signés, où chaque certificat doit être marqué comme approuvé de manière manuelle, vous ne devez installer qu'une seule fois l'autorité de certification privée. Tous les certificats émis par cette autorité de certification hériteront de cette confiance.

L’un des inconvénients est que le fonctionnement de l’AC nécessite un peu de travail et qu’il faut un certain savoir-faire pour l’installer et le maintenir de manière sécurisée.

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

Conclusion

Nous avons examiné différentes options pour obtenir ou créer des certificats SSL. Selon la situation qui convient le mieux à votre situation, l’ajout de la protection SSL est utile pour la protection des données, la confidentialité et la sécurité de votre service et de vos utilisateurs.

Si vous souhaitez approfondir l'utilisation de SSL et des options dont nous avons discuté, les liens suivants peuvent être utiles:

  • LeOpenSSL documentation décrit la bibliothèque et ses commandes en détail

  • LeCA/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 leur validité pour les noms de domaine non publics.

  • LeLet’s Encrypt CA a plus d'informations sur le protocole ACME