Pourquoi dois-je acheter un certificat SSL alors que je peux en générer un localement?

57

Je n'arrive pas à comprendre pourquoi nous devons acheter des certificats SSL alors que nous pouvons les générer localement à l'aide d'openSSL. Quelle est la différence entre le certificat que j'achète et un certificat de test que je génère localement? Est-ce juste une grosse arnaque?

SK '
la source
17
En termes de triade CIA pour la sécurité de l’information, les certs auto-signés fournissent confidentialité et intégrité (c’est-à-dire qu’ils autorisent les messages chiffrés entre deux parties), mais seuls les certs signés par une source fiable fournissent l’ authenticité (c’est-à-dire, l’autre partie dans votre conversation cryptée. est réellement qui vous pensez que c'est).
apsillers
10
Espérons que lorsque DNSSEC entrera en jeu, les utilisateurs pourront créer leur propre certificat et le stocker dans un enregistrement DNS. La chaîne de confiance DNSSEC serait alors suffisante pour prouver que le certificat appartient au propriétaire du domaine. (Je ne pense pas que ce soit une spécification formalisée (pour le moment), mais ce serait bien)
jackweirdy
2
Pour une utilisation interne, vous pouvez déployer le certificat de manière sécurisée à l'aide de la stratégie de groupe (sous Windows).
Ben
4
Je me demande souvent pourquoi les gens n'acceptent pas mon propre argent imprimé aussi;)
tgkprog
1
Remarque: Il existe des fournisseurs de certificats de base gratuits . 90% des besoins des personnes peuvent être satisfaits par ceux-ci. Et certaines autorités de certification ont des certificats à très faible coût, aucune raison de casser la banque, peu importe ce dont vous avez besoin. (sans délégation bien sûr)
Chris S

Réponses:

72

Un mot - confiance. Le certificat SSL d'un fournisseur approuvé par votre navigateur signifie qu'il a au moins effectué une vérification de base pour indiquer que vous êtes bien qui vous êtes.

Sinon, je pourrais créer mes propres certificats pour google.com ou yourbank.com et me faire passer pour eux.

Les certificats payés ne fournissent aucun niveau supplémentaire de cryptage par rapport à l'auto-signature (généralement). Mais un certificat auto-signé provoquera une erreur du navigateur.

Oui, certaines parties de SSL constituent une arnaque (un certificat de vérification et un géotrust où les vérifications sont jusqu'à 100 fois plus chères), mais pas toutes.

Si tout ceci est interne, alors un certificat payant n’est pas nécessaire, vous pouvez utiliser vos propres méthodes de confiance (par exemple, Ne rien faire, ou peut-être simplement une vérification des empreintes digitales).

Mark Henderson
la source
8
Si tout est interne, vous pouvez déployer votre certificat en tant que confiance en utilisant une stratégie de groupe.
Ben
2
D'autre part, la signature du conducteur est un peu une arnaque. Pour ce que c'est, oui, c'est une énorme arnaque, mais nous n'avons pas le choix. successsoftware.net/2008/02/27/…
Matt
2
@ Matt - J'ai déjà lu cet article quand nous cherchions à faire de la signature de code au travail. Nous avons décidé d'auto-signer et de conseiller aux gens de vérifier les signatures. Heureusement, nous avons des utilisateurs de très haute technologie (principalement).
Mark Henderson
Et les certificats auto-signés génèrent des avertissements dans tous les navigateurs. Alors que les certificats des fournisseurs peuvent être vérifiés par tous les principaux navigateurs, car ils possèdent les clés publiques de ces fournisseurs, ils peuvent vérifier vos certificats et confirmer qu’ils ont bien été signés par le fournisseur.
Matt
23

L'intérêt d'un certificat SSL est que le navigateur ait un degré de confiance raisonnable dans la clé publique du serveur pour les transactions HTTPS.

Premièrement, explorons ce qui se passerait si nous n’utilisions pas de certificats. Au lieu de cela, le serveur enverrait la clé publique en texte brut et le navigateur initierait une communication cryptée utilisant cette clé (la première chose à faire serait de crypter sa propre clé publique et de la renvoyer de manière sécurisée). Et si, moi et l'attaquant, je me calais au milieu? Je pourrais remplacer votre clé publique à la volée par la mienne, établir une connexion cryptée avec le navigateur, décrypter tout ce que je recevais, la chiffrer avec votre clé publique et l'envoyer (et inversement pour le trafic de type réponse). Aucune partie ne remarquerait la différence, car personne ne connaissait auparavant les clés publiques.

OK, nous avons donc établi que nous avions besoin d’un moyen permettant au navigateur de faire confiance à ma clé publique. Une solution consiste à stocker toutes les clés publiques enregistrées dans le navigateur. Bien sûr, cela nécessiterait une mise à jour à chaque fois que quelqu'un enregistre une clé publique, ce qui entraînerait une surcharge. On pourrait aussi garder les clés publiques entre les mains des serveurs DNS 1 , mais les serveurs DNS peuvent également être usurpés et le DNS n'est pas un protocole sécurisé.

La seule option qui reste est donc de "chaîner" la confiance via un mécanisme de signature. Le navigateur stocke les détails de quelques autorités de certification et votre certificat sera envoyé avec une chaîne d'autres certificats, chacun signant le suivant et remontant jusqu'à l'autorité de certification racine / approuvée / intégrée. L’autorité de certification a pour tâche de s’assurer que le domaine vous appartient avant de signer un certificat pour vous.

Étant donné qu’ils sont une entreprise, ils facturent ces frais. Certains plus que d'autres.


Si vous avez créé votre propre certificat, vous obtiendrez une erreur semblable à:

entrer la description du lien ici

Il n'y a aucune valeur à un certificat non signé. C'est comme prendre un crayon et un livret, dessiner un passeport affirmant que vous êtes Barack Obama. Personne ne lui fera confiance.

1. Après tout, votre entrée DNS est créée lorsque vous enregistrez un domaine. L'utilisation d'un protocole plus robuste qui vous permet d'enregistrer simultanément des clés publiques serait un concept intéressant.

Manishearth
la source
Vous pouvez également utiliser l'agrafage DNSSEC pour votre certificat SSL. Ainsi, le certificat provient (en définitive) de l'ICANN en tant que CA, plutôt que d'une autre autorité de certification. Aucun des navigateurs actuels ne supporte cela, bien que Chrome l'ait déjà fait.
Richard Gadsden
Et de nos jours, vous avez DANE et ses enregistrements DNS TLSA qui vous permettent de limiter certains services à des clés ou à des autorités de certification spécifiques.
Patrick Mevzek le
5

La réponse à votre question dépend de votre public: Étant donné que tout le système de certificats est basé sur la "confiance", vos utilisateurs doivent avoir la possibilité de prouver leurs certificats eux-mêmes ou faire confiance à un tiers qui a effectué ce contrôle et en montre le succès en signant. votre certificat. Le terme "pour prouver vos certificats" que j'ai utilisé est un peu inexact: la version longue devrait être: "pour prouver que vous êtes le propriétaire du certificat et que vous êtes autorisé à l'utiliser".

Si tous vos utilisateurs vous connaissent personnellement et ont la capacité technique de prouver que votre certificat a été délivré par vous-même, vous n'avez pas besoin techniquement d'utiliser un certificat d'un fournisseur "certifié". Dans ce cas, le certificat auto-signé pourrait même être meilleur que celui d'un de ses fournisseurs.

Mais dans la plupart des cas, les utilisateurs n'ont pas la possibilité d'effectuer ce processus eux-mêmes. Ici, ces fournisseurs SSL entrent sur le marché. Ils offrent le service pour effectuer ces contrôles et expriment le résultat des contrôles en signant le certificat. Mais un fait important à garder à l'esprit est le suivant: en signant un certificat, un fournisseur SSL indique qu'il a vérifié l'identité des émetteurs de certificats conformément à sa propre politique de signature. L’utilisateur doit donc décider si cette politique est suffisamment précise et s’il peut faire confiance au fournisseur.

mschenk74
la source
4

Le point principal est que, si le certificat est auto-généré, les utilisateurs ordinaires n’ont aucun moyen de vérifier sa véracité. Pour un certificat acheté, ils supposent au moins vérifier que ce qui est imprimé à l'intérieur du certificat est correct. Idée: si vous mettez votre téléphone et votre adresse dans le certificat, l'autorité de certification suppose de le vérifier, mais c'est rarement le cas.

De plus, les certificats d'achat sont traçables, ce qui signifie qu'ils peuvent toujours retracer l'origine de la certification, alors qu'une certification auto-signée est uniquement une identité aléatoire.

Pour de nombreux systèmes, la "signature de code" était auparavant requise par une autorité de certification autorisée, qui est régie par des règles, mais comme les certificats auto-signés sont si nombreux, ils ne sont plus appliqués à 100% maintenant.


la source
4

Il n'y a pas de différence technique (vos propres ne sont pas moins sûrs), il s'agit simplement d'une différence d'organisation: le certificat de votre autorité de certification ne fait pas partie de l'installation standard des navigateurs. Cela rend difficile pour la plupart des gens de se connecter à votre certificat. Mais cela n’a aucun sens d’acheter un certificat pour un réseau interne.

Hauke ​​Laging
la source
3

Cela revient à faire confiance. Un fournisseur SSL "certifié" est censé être réputé (bien que cela puisse être manipulé) par rapport à un certificat auto-signé du serveur lui-même.

Si votre organisation a sa propre signature de certificat, cela est parfaitement acceptable et ne devrait pas provoquer d'avertissement pour les utilisateurs (à condition qu'ils utilisent votre chaîne de clés de certification comme source de confiance), mais créera toujours un avertissement si vous essayez de l'utiliser en externe.

En résumé: pour un usage interne, c'est très bien, si vous le fournissez en externe à un client payant, ne pas avoir d'avertissements est une tranquillité d'esprit. Vous sentiriez-vous plus en sécurité si vos transactions financières passaient par une source agréée ou par un type debout dans la rue que vous ne connaissez pas vraiment?

szukalski
la source
3

Récemment, LetsEncrypt a annoncé la disponibilité de ses outils de ligne de commande pour générer des certificats valides.

Aucun e-mail de validation, aucune modification de configuration complexe, aucun certificat expiré ne casse votre site Web. Et bien sûr, comme Let's Encrypt fournit des certificats gratuitement, pas besoin d’organiser le paiement.

Pour ceux qui se demandent si ces certificats sont valables dans les principaux navigateurs, la réponse est oui:

Le 19 octobre 2015, les certificats intermédiaires ont été signés par IdenTrust, ce qui a permis à tous les principaux navigateurs de faire confiance à tous les certificats émis par Let's Encrypt. [20]

..... Le 8 mars 2016, Let's Encrypt a délivré son millionième certificat après sept mois d'existence. [39]

Le 12 avril 2016, Let's Encrypt a quitté la version bêta.

Lien pour l'administrateur système et les développeurs: https://letsencrypt.org/getting-started/

À l'ère de la technologie de la blockchain et de l'élimination des systèmes de confiance par des tiers, il était temps que la délivrance de certificats onéreux par quelques autorités choisies commence à être remise en question.

Bien que Letsencrypt n’ait rien à voir avec la technologie des chaînes de blocs, c’est un début dans la bonne direction. La nécessité de payer chaque année des frais élevés à une autorité de certification onéreuse touche à sa fin logique.

surfbuds
la source
2

En termes simples, un certificat SSL auto-signé ne veut rien dire. Cela n'a aucune valeur pour le monde extérieur. C'est comme dire "je possède l'Espagne". Vous pensez peut-être honnêtement que vous faites, mais personne ne va reconnaître votre demande.

Une analogie similaire reviendrait à inventer quelque chose et à revendiquer ensuite que vous déteniez les droits sur l’invention, mais à moins de déposer un brevet auprès de l’office, il vous sera difficile de croire ce qu’il en est, maintenant?


L'intérêt d'un certificat est qu'il est signé par une autorité de confiance. Si un site Web possède un certificat SSL valide, cela signifie que le propriétaire a eu la peine de s’inscrire, de payer pour le certificat SSL et d’obtenir la certification officielle d’une autorité de certification du monde réel. Ce n’est donc probablement pas un site Web de phishing bon marché. D'autre part, si vous faites confiance à des certificats auto-signés, ledit site Web de phishing pourrait simplement générer son propre certificat contrefait (que vous accepterez avec joie) et le tour est joué.

Bien sûr, s’il s’agit d’un réseau interne sur un intranet privé, vous vous faites probablement déjà confiance. Dans ce cas, un certificat faisant autorité n’ajoute rien, vous pouvez donc ignorer en toute sécurité les lumières rouges vives que votre navigateur vous lancera. . Idem pour les petits sites Web sur lesquels vous souhaitez toujours chiffrer le trafic client-serveur mais votre modèle de menace ne garantit pas une authentification forte. Dans ce cas, vous pouvez vous en servir avec un certificat auto-signé et accepter le (négligeable selon votre modèle de menace). risque de MITM.

Ce qui est probablement satisfaisant compte tenu du coût élevé des certificats SSL de confiance.


En d'autres termes, un certificat auto-signé revient à dire "Je certifie que je suis qui je suis - faites-moi confiance !".

Thomas
la source
2
C’est exact, mais il convient de noter que les certificats payés ne sont que la preuve que quelqu'un a eu la peine de payer de l’argent à une autorité de certification. Les vendeurs de l'autre côté de Verisign / Namecheap / Whatever-CA ne feront rien d'autre que d'envoyer un certificat à [email protected] (par exemple, ils en enverront un à un site de phishing potentiel exqmple.org) .
89c3b1b8-b1ae-11e6-b842-48d705
1
@tristan Très vrai, ils pourraient utiliser de meilleures procédures formelles pour ce genre de choses, mais je suppose que les exigences logistiques seraient déraisonnables.
Thomas
1
@tristan - c'est un système imparfait, mais les autorités de certification ont tout intérêt à être dignes de confiance. Par exemple, s'ils donnaient un certificat Google à une personne aléatoire, ils seraient rapidement retirés de tous les navigateurs. Ils offrent également des certificats de "validation étendue" qui, en théorie, signifient qu'ils effectuent davantage de contrôles. N'importe lequel d'entre eux pourrait décider que cela nécessite des tests d'ADN en personne s'il pensait que cela renforcerait sa réputation et gagnerait de l'importance à ses clients.
Nathan Long
1
@NathanLong Il ne s'agit pas de donner un "certificat Google" à un type peu scrupuleux, c'est que même le certificat EV est toujours un chèque "quelqu'un peut répondre aux e-mails de ce domaine". Quoi qu’il en soit, nous encerclons les mêmes points de: a) les utilisateurs doivent toujours savoir pour ne pas donner d’argent à payqal.com, b) la barrière des coûts pour SSL n’en vaut pas la peine pour certains escrocs, c) des certificats payants signifient que c’est plus probable qu'un site soit la recherche DNS souhaitée, et d) que c’est une approche raisonnable pour fournir la valeur de départ dans le scénario suivant: "ce serveur appartient à des personnes identiques / différentes de celles qui vous ont été contrôlées"
89c3b1b8- b1ae-11e6-b842-48d705
Tristan, cela fait partie des coûts. Les certificats très peu coûteux font une validation très peu coûteuse. Les certificats très coûteux (au niveau de l'entreprise) peuvent faire une validation très coûteuse. (bien que le prix ne soit en aucun cas un indicateur direct de la qualité du travail de validation effectué) Certains certificats donnent une garantie absolue de votre identité, mais garantissent tout simplement que vous avez un contrôle quelconque sur le domaine pour lequel ils ont été émis. .
1

Pour faire court et simple ... et démystifier un peu ce qui a été dit ...

Ce n'est pas le problème du cryptage, avec les outils appropriés, vous pouvez générer un certificat localement avec le type de cryptage souhaité ... et obtenir un certificat valide.

Le principal avantage de l'achat d'un certificat auprès d'une entité de certification est que, pendant la période de validité du certificat, les utilisateurs disposent sur leurs serveurs d'un mécanisme permettant de valider tout ce que vous avez signé avec votre certification en ligne ...

Il n'est pas nécessaire de connecter vos PC pour que vos produits numériques soient vérifiés et validés avec votre certificat ... vous devez rediriger la validation vers l'entité de certification.

ZEE
la source
1

Désolé de participer si tard à la discussion. Je pensais que cela valait la peine de souligner qu’en utilisant openssl, il est possible de configurer une autorité de certification privée, avec son propre certificat racine, puis de créer des certificats de serveur signés par cette autorité de certification. À condition que le certificat racine de l'autorité de certification soit importé dans le navigateur et que le navigateur soit invité à l'accepter, le certificat de serveur sera accepté sans commentaire. (Évidemment, cette option n'est viable que si la communauté d'utilisateurs est petite et que tous les utilisateurs se connaissent personnellement.)

pd9370
la source
-2

Feriez-vous confiance à quelqu'un qui dit "Trust Me"? La confiance en l'authenticité ne peut être fournie que par une "autorité de confiance", à laquelle tout le monde a confiance. C'est pourquoi nous devons gagner beaucoup d'argent pour les concerts.

Ravi
la source
2
Selon cette logique, il n'y aurait pas de fournisseurs de certificats gratuits. Mais il y a.
Chris S