web-dev-qa-db-fra.com

Pourquoi devrais-je payer pour un certificat SSL?

J'ai payé un certificat SSL de Namecheap, je pense qu'il a été certifié par ComodoSSL. Cela m'a coûté 7 $, il leur a fallu une semaine pour l'activer et j'ai dû le faire moi-même depuis SSH lors de l'édition des fichiers de configuration de mon site.

Ensuite, un ami m'a fait savoir Let's Encrypt qui non seulement distribue des certificats SSL gratuits, mais ils peuvent être installés en exécutant une seule commande.

Je suis sûr qu'il me manque quelque chose ici, mais pourquoi voudrais-je payer un certificat SSL alors que je peux en installer un facilement, gratuitement, avec un renouvellement automatique configuré?

64
Eight

Pourquoi devrais-je payer pour un certificat SSL?

Pour la plupart des utilisations, il n'y a aucune bonne raison de les payer.
Voir tout en bas pour un résumé des exceptions.

Prenons un peu de recul et expliquons ce que font les certificats et à peu près comment.

Ce que l'on appelle communément les "certificats" se composent de deux éléments liés:

  • Le certificat bon, qui contient une clé publique et une identification (comme un nom de domaine).
  • La clé privée, qui permet au titulaire (et uniquement au titulaire) de signer numériquement les messages de manière à ce qu'ils puissent être vérifiés à l'aide du certificat ci-dessus.

Si vous voulez un certificat pour yourdomain.com, vous:

  • Créez une paire de clés privée/publique et conservez la partie privée, enfin, privée.
  • Demandez un tiers de confiance ("CrediCorp") pour créer un certificat pour yourdomain.com avec votre clé publique.
  • Prouvez en quelque sorte à CrediCorp que vous contrôlez yourdomain.com.
  • Placez la clé privée et le certificat obtenu sur votre serveur et configurez le serveur Web pour les utiliser.

Ensuite, si Alice visite yourdomain.com, son navigateur obtient le certificat de votre serveur Web, ainsi qu'un message signé par votre clé privée. Ensuite, son navigateur vérifie trois choses:

  • Que le message signé peut être vérifié par votre certificat (prouvant qu'il a été signé par la clé privée correspondante que seul yourdomain.com avoir dû).
  • Que le domaine du certificat est le domaine que le navigateur essaie de visiter (yourdomain.com).
  • Que le certificat provient de CrediCorp.

La combinaison de ces trois choses garantit à Alice qu'elle parle réellement à yourdomain.com, et pas à quelque imposteur ... Pourvu qu'Alice fasse confiance à CrediCorp.

(Il y a aussi quelques danse crypto vaudo pour transformer cette authenticité en confidentialité.)

Comment le fait Alice fait confiance à CrediCorp?

C'est le vrai nœud ici. En bref, à un moment donné, CrediCorp a dit "Hé, nous allons faire des certificats". Après avoir déployé beaucoup d'efforts après beaucoup de règles , ils ont réussi à convaincre certaines personnes que CrediCorp est, en effet, digne de confiance, et ils n'émettront que des certificats correctement.

En particulier, ils ont réussi à convaincre les fabricants de, disons, Firefox. En conséquence, CrediCorp obtient sur la liste A de Firefox, et leurs certificats sont approuvés par Firefox par défaut. Donc vraiment, Alice fait confiance à Firefox, Firefox fait confiance à CrediCorp et CrediCorp vous a fait confiance (après vérification) lorsque vous avez affirmé que vous contrôliez yourdomain.com. C'est presque comme une chaîne .

Mais, Firefox ne se contente pas de faire confiance à CrediCorp pour émettre des certificats pour yourdomain.com, il fait confiance aux certificats CrediCorp pour le domaine any. Et Firefox aussi fait confiance à ShabbyCorp, pour n'importe quel domaine.

Cela a des conséquences. Si quelqu'un parvient à convaincre ShabbyCorp qu'il contrôle yourdomain.com (parce que ShabbyCorp n'est pas très complet), ils peuvent alors obtenir un certificat ShabbyCorp pour yourdomain.com avec la clé privée correspondante. Et avec ce certificat, ils pourraient usurper l'identité de votre serveur Web. Après tout, ils ont un certificat (clé plus) pour yourdomain.com qui est approuvé par Firefox!

CrediCorp et ShabbyCorp sont ce qu'on appelle autorités de certification , les AC pour faire court. Dans le monde réel, ComodoSSL et Let's Encrypt sont des exemples d'autorités de certification. Mais il y en a beaucoup plus; au moment d'écrire ces lignes, Firefox fait confiance à 154 autorités de certification .

Whoa. Mais comment cela répond-il à ma question?

Je suis euh, j'y arrive ...

Voici le truc. La mécanique que j'ai décrite ci-dessus s'applique à tous les certificats. Si vous disposez d'un certificat correct et fiable pour votre site Web, cela fonctionnera. Il n'y a rien de spécial entre les certificats de marque A et les certificats de marque B; ils sont tous soumis aux mêmes exigences de l'autorité de certification et aux mêmes mathématiques cryptographiques.

Et même si vous préférez CrediCorp - parce que vous savez, ils semblent tellement plus fiables - les utiliser ne vous aidera pas vraiment. Si un attaquant peut convaincre ShabbyCorp de leur donner un certificat pour votre site, l'attaquant peut utiliser ce certificat pour usurper l'identité de votre site, quel que soit l'endroit où vous avez obtenu le vôtre.

Tant que Firefox fait confiance à ShabbyCorp, les visiteurs ne verront pas la différence. (Oui, les visiteurs peuvent retirer le certificat et y fouiller pour voir qui l'a délivré. Mais qui le fait?) En ce qui concerne la falsification des certificats, cela rend l'ensemble du système aussi faible que le plus faible des 150+ CA. Pourquoi oui, c'est c'est effrayant, et c'est probablement la plus grande critique que les gens ont de tout ce schéma. Pourtant, c'est ce avec quoi nous sommes coincés.

Le fait est que si vous ne faites pas confiance à une autorité de certification pour délivrer de "bons" certificats, obtenir vos certificats ailleurs ne vous aide pas beaucoup.

Gotcha, tout est également condamné. Pas de mises en garde?

Weeeelllll ...

  1. Commençons par tuer le point que j'ai soulevé dans la dernière section. De nos jours, il est possible de verrouiller votre domaine aux seules autorités de certification de votre choix en utilisant DNS-CAA . Supposons que vous fassiez confiance à Comodo et ne fassiez pas confiance aux autres autorités de certification, il est possible de demander à toutes les autorités de certification autres que Comodo de ne pas émettre de certificats pour votre domaine. En théorie. (Parce que DNS-CAA n'est pas vérifié par les navigateurs, uniquement en émettant des autorités de certification. Une autorité de certification compromise pourrait donc ignorer cette protection.)

    Si vous êtes prêt à passer par ce problème, alors la question devient: Let's Encrypt est-il réellement moins fiable? Ou moins sécurisé? La fiabilité est difficile, comment quantifiez-vous cela? Tout ce que je peux dire, c'est que à mon avis Let's Encrypt n'est pas moins fiable que les autres autorités de certification. Quant à la sécurité de leurs validations, elles sont très similaires à ce que font les CA commerciales (pour les certificats DV en tout cas). Voir aussi cette question .

    Pour ce que ça vaut: le réseau StackExchange, dont ce site fait partie, utilise actuellement des certificats Let's Encrypt. La plupart des gens ne le remarqueraient jamais, et s'ils le faisaient, je doute sincèrement que cela signifierait beaucoup pour eux.

  2. Pour qu'un certificat soit significatif, l'autorité de certification émettrice doit être approuvée par les éditeurs de logiciels , sinon le certificat est inutile. J'ai utilisé Firefox comme exemple, mais vous voulez vraiment que l'autorité de certification soit approuvée par au moins les versions actuelles et un peu plus anciennes de Firefox, Chrome, Windows, Mac OS X, iOS et Android. Et des dizaines de petits joueurs. Les autorités de certification qui méritent d'être prises en compte (notamment ComodoSSL et Let's Encrypt) sont approuvées par toutes ces entités.

  3. Si une autorité de certification se comporte mal ou se révèle non fiable, elle sera supprimée des différents magasins de confiance assez rapidement pour gâcher la journée des propriétaires de certificats. Deux exemples notables que je connais sont DigiNotar et StartCom/WoSign (consultez les articles, ils fournissent des informations intéressantes sur la dynamique de confiance!). Donc, si vous pensez que Let's Encrypt va bousiller, ou sera abandonné pour une autre raison, ne pas les utiliser vous empêchera de vous faire prendre dans ces retombées particulières.

  4. Les certificats utilisent un peu de magie mathématique cryptographique ; la question est laquellecrypto math magic ? Et si c'est de la magie faible? Il s'agit en fait d'une réelle préoccupation, et les autorités de certification ont montré qu'elles traînaient les pieds lors de la mise à niveau également. Heureusement, les fournisseurs de navigateurs ont pris le relais en fixant ici des minimums pour que les certificats soient acceptés. Par exemple, les certificats utilisant RSA-1024 ou SHA-1 sont désormais rejetés par la plupart des navigateurs, donc tout certificat qui fonctionne dans la pratique n'utilise pas ces primitives de chiffrement obsolètes. Le résultat est, il est assez difficile pour une autorité de certification (Let's Encrypt incluse) de décevoir sur la partie ceci plus.

  5. Avant, je disais plus ou moins que tous les certificats sont créés égaux. J'ai menti, ils ne le sont pas. En particulier, ce dont j'ai discuté jusqu'à présent, ce sont les " certificats validés par domaine (DV)", qui sont ce que la grande majorité des sites Web utilisent. Ils fournissent une mesure de certitude que votre navigateur parle réellement au domaine qu'il affiche dans la barre d'URL. Il existe également des certificats "Organization Validated (OV)" et " Extended Validation (EV)", qui nécessitent des contrôles beaucoup plus élaborés de la part des autorités de certification. En particulier, vous ne devriez pouvoir obtenir un certificat EV que pour somebank.com/SomeBank Inc., si vous pouvez réellement prouver que vous êtes SomeBank, Inc.

    Les certificats EV sont beaucoup plus coûteux à obtenir (approximativement: des centaines d'euros/USD par an), et ils peuvent être récompensés par une barre d'URL verte ou un cadenas dans le navigateur, affichant peut-être "SomeBank, Inc." ainsi que. Contrairement aux certificats DV, ils offrent également une idée de l'identité du site Web. L'avantage est qu'ils peuvent sembler plus légitimes. La déception est que les utilisateurs y font rarement attention, leur efficacité est donc limitée.

    Un attaquant avec un certificat DV falsifié peut toujours se faire passer pour le site, juste sans l'indice visuel supplémentaire qu'un certificat EV peut offrir, et les utilisateurs ne remarquent généralement pas la distinction. Inversement, il est possible de obtenir un certificat EV trompeur pour faciliter le phishing. En conséquence, Chrome et Firefox abandonneront leurs hochements de tête visuels aux certificats EV, et certaines personnes croient ils disparaîtront complètement.

    Si vous êtes une banque, vous voulez probablement un certificat EV pour le moment. Sinon, pas tellement. Mais si vous faites avez besoin d'EV, Let's Encrypt n'est pas pour vous car ils n'offrent tout simplement pas de certificats EV.

  6. Les certificats ne sont valables que pour une durée limitée . Les certificats délivrés par une autorité de certification commerciale typique ont tendance à être valables un an, mais j'ai vu quelque chose de trois mois à trois ans. Les certificats Let's Encrypt sont valides pendant 90 jours , ce qui est sur le côté court de cette plage, vous devrez donc les renouveler souvent. Pour les utilisateurs de Let's Encrypt, cela est généralement automatisé afin que les certificats soient remplacés tous les 60 jours.

    Être en mesure d'automatiser le renouvellement avec des logiciels largement disponibles est en fait plus agréable que l'annuel Oh merde mon certificat a expiré? Quelle est ma connexion à l'AC? Comment cela fonctionne-t-il à nouveau? rituel que la plupart des petits sites semblent se retrouver dans les autorités de certification commerciales.

  7. Avant, je disais effrayant qu'il y ait tant de CA auxquels nous devons tous faire confiance. Avoir de nombreuses autorités de certification est également un avantage, dans le sens où la suppression d'une seule de nos magasins de confiance a un impact limité sur les utilisateurs. En particulier, l'expulsion d'une seule autorité de certification n'affectera que les certificats émis par cette seule autorité de certification. Si tout le monde finit par utiliser une seule autorité de certification (qui certaines personnes craignent que cela se produise avec Let's Encrypt ), nous concentrons toute notre confiance là-bas, et perdre les avantages de cette fragmentation.

  8. Et enfin, il y a d'autres avantages qu'une AC payante pourrait offrir, comme un support commercial, ou une garantie SSL d'un million de dollars . J'ai peu confiance en ces deux aspects, mais ce sont des choses que Let's Encrypt n'offre pas.

J'ai mal à la tête ... J'avais une question, je pense?

Utilisez ce avec quoi vous vous sentez à l'aise! Pour les certificats DV, peu d'éléments différencient réellement les différentes autorités de certification. J'utilise Let's Encrypt à la fois professionnellement et en privé, et j'en suis satisfait.

Je ne vois vraiment que quatre raisons potentielles pour éviter Let's Encrypt:

  • Si vous avez besoin de certificats EV (ou OV).
  • Si vous ne pouvez pas ou ne voulez pas automatiser le renouvellement du certificat et que la validité du certificat de trois mois est trop courte pour vous.
  • Si vous ne faites pas confiance à Let's Encrypt (mais assurez-vous également de prendre en compte d'autres mesures comme DNS-CAA, et vous devriez probablement également mettre Black Encrypt sur votre navigateur).
  • Si vous pensez que Let's Encrypt sera interrompu ou supprimé des navigateurs pour une raison quelconque.

Si aucune de ces conditions ne vous concerne, n'hésitez pas à ne pas payer vos certificats.

85
marcelm

Let's Encrypt est supérieur à bien des égards, y compris ceux que vous avez mentionnés, tels que:

  1. C'est gratuit. Difficile de dépasser ça.
  2. Il a un renouvellement automatique (je suis sûr que ce n'est pas JUSTE exclusif avec Let's Encrypt, cependant)
  3. C'est assez facile à installer.
  4. Google et bien d'autres le soutiennent en tant qu'autorité de certification de confiance, ce qui est énorme en matière de référencement et de sécurité.

Cependant, il y a quelques inconvénients.

  1. Le système de vérification sur lequel il fonctionne pour s'assurer que vous, bien, êtes propriétaire du site, n'est pas compatible avec certains hébergeurs de sites Web, j'ai eu pas mal de maux de tête en essayant de faire fonctionner Let's Encrypt sur InfinityFree et j'ai juste accepté le sort que je ne pouvais pas le faire.
  2. Vous ne recevez aucune sorte d'assurance qui dit "Si cela se casse, nous vous aiderons" car c'est open-source, vous êtes seul si Let's Encrypt ne fonctionne pas ou est en quelque sorte fissuré.
7
Esmoothy

Les certificats LetsEncrypt sont excellents. Je les utilise moi-même au lieu d'acheter des certificats. Il y a quelques inconvénients:

  • Les certificats LetsEncrypt ne durent que 3 mois. La plupart des certificats achetés sont valables pour un ou deux ans. Cela signifie que vous avez absolument besoin d'un processus automatisé en place pour renouveler vos certificats ou il sera trop facile à oublier.
  • LetsEncrypt n'offre que le type de certificat de validation le plus bas. La validation de domaine (DV) valide uniquement que le propriétaire du certificat a le contrôle sur le domaine. Les certificats de validation d'organisation (OV) vérifient également la documentation de la personne ou de l'entreprise qui demande le certificat. Les certificats de validation étendue (EV) nécessitent des vérifications supplémentaires. Plus votre certificat est bon, plus il est difficile à falsifier et plus l'authenticité de votre site peut être fiable à cause de cela. Dans la pratique, les navigateurs ne font qu'un clin d'œil visuel aux certificats EV, affichant généralement quelque chose en vert dans la barre d'adresse pour eux. Jusqu'à présent, la plupart des utilisateurs ne connaissent pas les différents niveaux de validation ou ne s'y intéressent pas.
  • Les certificats génériques sont un peu plus difficiles à obtenir auprès de LetsEncrypt. Depuis d'autres endroits, vous payez généralement plus d'argent. LetsEncrypt nécessite une validation DNS pour les certificats génériques.

Historiquement, les certificats de sécurité ont toujours coûté quelque chose. D'autres sociétés qui ont offert des certificats gratuits sont venues et disparues. J'avais l'habitude d'utiliser StartSSL qui offrait un certificat gratuit de domaine unique jusqu'à ce qu'ils fassent des trucs louches et les navigateurs arrêtent de faire confiance à leurs certificats. LetsEncrypt a moins de limites que les précédents fournisseurs de certificats gratuits et est beaucoup plus automatisé. Il a également de grands supporters tels que l'EFF, Mozilla, Chrome et Cisco. Voir https://letsencrypt.org/sponsors/ Il semble être assez bien exécuté pour que je m'attende à ce qu'il soit autour pendant des années.

4
Stephen Ostermiller

Tout ne peut pas utiliser le renouvellement automatisé

CertBot le rend facile à utiliser pour les sites Web ... mais que faire si vous utilisez des certificats pour d'autres choses?

Nous avons un serveur LDAP avec lequel notre site Web s'authentifie. Il s'exécute sur un port sécurisé, mais il a besoin d'un certificat signé pour s'exécuter. Je pourrais y aller avec un certificat générique gratuit ... mais cela signifie convertir le certificat en PKCS12 tous les 3 mois (les serveurs Web utilisent PEM) puis importer le nouveau certificat. Oh, et notre pare-feu réseau utilise également PKCS12. C'est beaucoup de tracas gratuitement.

0
Machavity