web-dev-qa-db-fra.com

Cert SSL ou CA auto-signé?

Je voudrais que les parties d'authentification et d'enregistrement de mon site Web soient cryptées (pour une raison évidente). Ce site est actuellement un site plus ancien que certains amis et moi avons commencé au collège et utilisent encore aujourd'hui. Je peux ou non l'enregistrer pour être une organisation à but non lucratif dans un proche avenir, mais de toute façon, un CA coûte de l'argent et l'organisation n'en a pas et nous sommes actuellement des collégiens.

Verisign est déraisonnable et GoDaddy est de 30 $/an. GoDaddy n'est pas trop déraisonnable, et je pense que leurs certificats sont acceptés par la plupart des navigateurs Web. Le problème avec GoDaddy est que je ne sais pas pourquoi ils ont différents produits SSL (c.-à-d. Pourquoi est-il bon marché de ne pas me vérifier? Est-ce que cela a des implications sur le certificat et comment le navigateur le traite s'il contient juste un nom de domaine ?)

De plus, y a-t-il un problème avec l'utilisation de mon propre certificat? La page de connexion pourrait-elle être http et avoir une ligne indiquant que j'utilise un certificat auto-signé et voici son empreinte digitale, puis poster le formulaire sur une page https? La méthode de Safari n'est ni trop mauvaise ni trop effrayante. J'ai peur, cependant, que la méthode de firefox 3 effraie les gens et me donne une tonne d'e-mails disant que mon site est piraté ou quelque chose. Je ne sais pas comment IE répond aux certificats auto-signés. (Il y a aussi la question de savoir pourquoi payer pour quelque chose que je peux me créer sans effort, mais je ne vais pas poser la partie philosophique de celui-ci, c'est une question plus pratique.)

En somme, dois-je donner à GoDaddy 30 $ par an ou dois-je simplement dire aux gens dans un petit paragraphe ce que je fais et donner aux quelques personnes qui voudront réellement mes empreintes digitales?

Edit: Certains sur un forum que je lisais pour plus d'informations ont mentionné que les certificats GoDaddy ne sont donnés que si c'est sur un serveur GoDaddy, ce qui n'est pas le cas. Deux choses: (1) est-ce vrai? et il y a d'autres CA à peu près au même prix, donc l'argument devrait toujours être le même.

48
Jim Keener

Le certificat SSL répond à deux objectifs: le cryptage du trafic (pour l'échange de clés RSA, au moins) et la vérification de la confiance. Comme vous le savez, vous pouvez crypter le trafic avec (ou sans, si nous parlons de SSL 3.0 ou TLS) tout certificat auto-signé. Mais la confiance passe par une chaîne de certificats. Je ne vous connais pas, mais je fais confiance à Verisign (ou du moins à Microsoft, car ils ont été payés beaucoup d'argent pour l'installer dans leurs systèmes d'exploitation par défaut), et puisque Verisign vous fait confiance, alors je vous fais confiance aussi. En conséquence, il n'y a pas d'avertissement effrayant lorsque je vais sur une telle page SSL dans mon navigateur Web parce que quelqu'un en qui j'ai confiance a dit que vous êtes qui vous êtes.

En règle générale, plus le certificat est cher, plus l'enquête est menée par l'autorité de certification émettrice. Ainsi, pour les certificats Extended Validation, les demandeurs doivent soumettre plus de documents pour prouver qu'ils sont qui ils disent être, et en retour, ils obtiennent une barre verte brillante et heureuse dans les navigateurs Web modernes (je pense que Safari ne fait rien avec encore tout à fait).

Enfin, certaines entreprises choisissent les grands garçons comme Verisign uniquement pour le nom de la marque; ils savent que leurs clients ont au moins entendu parler de Verisign et que, pour les personnes qui achètent sur leur boutique en ligne, leur sceau ressemble un peu moins à un dessin que GoDaddy's, par exemple.

Si l'image de marque n'est pas importante pour vous ou si votre site n'est pas sujet aux attaques de phishing, le certificat SSL le moins cher que vous pouvez acheter et dont la racine est installée par défaut dans la plupart des navigateurs Web conviendra. Habituellement, la seule vérification effectuée est que vous devez pouvoir répondre à un e-mail envoyé au contact administratif du DNS, "prouvant ainsi" que vous "possédez" ce nom de domaine.

Vous pouvez utiliser ces certificats bon marché sur des serveurs non GoDaddy, bien sûr, mais vous devrez probablement installer un certificat intermédiaire sur le serveur en premier. Il s'agit d'un certificat qui se situe entre votre certificat bon marché de 30 $ et le certificat racine GoDaddy "real deal". Les navigateurs Web visitant votre site ressembleront à "hmm, on dirait que cela a été signé avec un intermédiaire, vous avez compris?" lequel a besoin peut nécessiter un voyage supplémentaire. Mais ensuite, il demandera l'intermédiaire à votre serveur, il verra qu'il se connecte à un certificat racine de confiance qu'il connaît, et il n'y a aucun problème.

Mais si vous n'êtes pas autorisé à installer l'intermédiaire sur votre serveur (comme dans un scénario d'hébergement partagé), vous n'avez pas de chance. C'est pourquoi la plupart des gens disent que les certificats GoDaddy ne peuvent pas être utilisés sur des serveurs non GoDaddy. Pas vrai, mais assez vrai pour de nombreux scénarios.

(Au travail, nous utilisons un certificat Comodo pour notre boutique en ligne et un certificat GoDaddy à 30 $ pour sécuriser la connexion interne à la base de données.)

Modifié en italique pour refléter les clarifications perspicaces d'Erickson ci-dessous. Apprenez quelque chose de nouveau tous les jours!

36
Nicholas Piasecki

Il existe une idée fausse commune selon laquelle les certificats auto-signés sont intrinsèquement moins sûrs que ceux vendus par des autorités de certification commerciales comme GoDaddy et Verisign, et que vous devez vivre avec des avertissements/exceptions de navigateur si vous les utilisez; c'est incorrect .

Si vous distribuez en toute sécurité un certificat auto-signé (ou un certificat CA, comme l'a suggéré Bobince) et l'installez dans les navigateurs qui utiliseront votre site, il est tout aussi sécurisé que celui que vous avez acheté et n'est pas vulnérable aux attaques de l'homme du milieu et à la falsification de certificats. Évidemment, cela signifie que cela n'est possible que si seules quelques personnes ont besoin d'un accès sécurisé à votre site (par exemple, des applications internes, des blogs personnels, etc.).

Dans le but d'accroître la sensibilisation et d'encourager les autres petits blogueurs comme moi à se protéger, j'ai rédigé un didacticiel d'entrée de gamme qui explique les concepts derrière les certificats et comment créer et utiliser en toute sécurité votre propre certificat auto-signé (complet avec des exemples de code et des captures d'écran) ici .

52
Clint Harris

Obtenez un certificat de Let's Encrypt, une autorité de certification gratuite cette nouvelle décennie, qui est largement prise en charge par les navigateurs.

Je ne les ai pas encore essayés, mais StartCom a été mentionné dans un réponse à une question similaire . Apparemment, vous pouvez obtenir un certificat d'un an gratuitement, et il est accepté par Firefox 3.

Même si vous devez payer, je suggère d'utiliser une autorité de certification plutôt que des certificats auto-signés. Certaines personnes ne verront pas votre explication, et un faux site pourrait publier l'empreinte digitale de leur propre faux certificat comme vous le proposez. Je doute que l'utilisateur moyen sache ce qu'est une empreinte digitale de certificat ou comment la vérifier.

8
erickson

Au lieu de créer un certificat auto-signé, créez une autorité de certification auto-signée et signez votre certificat HTTPS avec cela. Il est plus facile de demander aux utilisateurs d'installer une autorité de certification qu'un seul certificat de serveur, et vous pouvez créer de nouveaux certificats (par exemple pour les sous-domaines ou mettre à jour les certificats expirés) sans que les utilisateurs n'aient à réinstaller un certificat de serveur.

Vous pouvez ensuite décider plus tard si cela vaut les 30 $ pour passer d'un certificat signé par votre propre autorité de certification au même certificat signé par GoDaddy ou par qui que ce soit.

Quoi qu'il en soit, ne disposez pas d'une page HTTP avec un formulaire publié sur HTTPS. L'utilisateur ne peut pas voir que c'est là que ça va; ils devraient voir la source pour vérifier que le formulaire n'a pas été détourné pour pointer ailleurs et que personne ne le fera. Vous devez avoir une page d'accueil HTTP avec le lien CA et un lien séparé vers le formulaire de connexion HTTPS.

Demander aux utilisateurs d'installer une autorité de certification avec un certificat téléchargé via HTTP simple est un peu vilain: s'il y avait un homme du milieu, ils pourraient remplacer votre autorité de certification à la volée et détourner les connexions HTTPS qui en découlent. Les chances que cela se produise sont assez faibles car il devrait s'agir d'une attaque ciblée plutôt que d'un simple reniflement automatisé, mais vous devriez vraiment héberger le lien de téléchargement de l'AC sur un autre service protégé par HTTPS.

L'acceptation du client est une question à laquelle vous seul pouvez répondre, en sachant qui sont vos utilisateurs. Certes, l'interface Firefox est excessivement effrayante. Si les autorités de certification comme GoDaddy sont à 30 $ ces jours-ci, j'irais probablement dans ce sens; c'était beaucoup, bien pire.

En supposant que la prise en charge des anciens navigateurs et des navigateurs de niche n'est pas vraiment un problème, optez simplement pour l'autorité de certification la moins chère disponible. Vous êtes supposé à payer pour que l'AC vérifie correctement qui vous êtes, mais dans la pratique, ce n'est pas ainsi que cela fonctionne et cela n'a jamais été le cas, donc payer un supplément pour des contrôles plus approfondis ne vous apporte presque rien. Les prix exorbitants de Verisign survivent uniquement grâce à l'inertie des entreprises.

Les CA sont là pour recevoir de l'argent pour ne rien faire d'autre que posséder quelques centaines de bits de clé privée. Les éléments de vérification d'identité qui étaient censés faire partie du mandat de l'AC ont été déplacés vers les certificats EV. Qui sont encore plus une arnaque. Joie.

7
bobince

Certificats auto-signés non sécurisés . Oui vraiment. "Au moins, c'est crypté" n'aide pas du tout. De l'article:

Cryptage de classe mondiale * authentification zéro = sécurité zéro

Si votre site Web est pour vous et quelques-uns de vos amis, vous pouvez créer votre propre autorité de certification et distribuer votre certificat à vos amis.

Sinon, obtenez un certificat de l'autorité de certification connue ( gratuitement ) ou ne vous embêtez pas du tout avec des certificats auto-signés, car tout ce que vous obtiendrez est un faux sentiment de sécurité.


Pourquoi le trafic chiffré n'est-il pas sécurisé? Vous autorisez toujours l'autre extrémité à décrypter votre trafic (vous devez, sinon vous enverriez du charabia).

Si vous ne vérifiez pas qui est à l'autre bout, vous autorisez n'importe qui à décrypter votre trafic. Cela ne fait aucune différence si vous envoyez les données à un attaquant de manière sécurisée ou non sécurisée - l'attaquant obtient quand même les données.

Je ne parle pas de vérifier si par exemple Paypal.com appartient à une institution financière fiable (c'est un problème plus important). Je parle de vérifier si vous envoyez des données à le Paypal.com, ou tout simplement dans une camionnette du coin qui envoie un certificat disant "Ouais, je suis comme totalement Paypal.com et tu as ma Parole que c'est vrai!"

3
Kornel

Pour répondre à votre question sur Internet Explorer, il avertira les utilisateurs de tout site dont le certificat n'est pas signé par une autorité de certification connue d'IE (malheureusement appelée "de confiance"). Cela inclut pour votre propre autorité de certification et pour les certificats auto-signés. Il émettra également un avertissement si le domaine du certificat n'est pas celui auquel vous accédez.

S'il s'agit d'un site privé, vous pouvez ne pas vous en soucier tant que vous obtenez un cryptage au niveau des liens (et avez-vous peur de quelqu'un qui renifle votre trafic?). S'il y a un accès public et que vous voulez SSL, alors obtenez un certificat signé d'une autorité de certification reconnue, comme d'autres l'ont déjà conseillé.

2
orcmid

Je suis finalement tombé en panne et j'ai passé mon serveur d'auto-signé à un certificat GoDaddy la nuit dernière et ce n'était pas si grave, à part que leur processus n'était pas aussi clair qu'il pourrait l'être. 30 $/an est un coût raisonnable et l'utilisation du certificat sur un serveur non GoDaddy n'est pas un problème.

Si vous allez parler de SSL au public, obtenez un vrai certificat signé par une véritable autorité de certification. Même si vous travaillez pour le salaire minimum, vous économiserez plus de 30 $/an de temps perdu à gérer les craintes ou la méfiance des utilisateurs, et c'est même avant d'envisager toute perte de revenus possible en raison de leur peur de quitter votre site.

2
Dave Sherohman

Si cette camionnette du coin est déjà capable de détourner votre connexion Internet, vous avez de plus gros problèmes que les certificats auto-signés.

Les banques doivent utiliser des certificats clients pour l'authentification. Cela empêcherait cette camionnette de faire quoi que ce soit ... puisqu'elle n'a pas la clé privée de la banque.

Les certificats auto-signés conviennent parfaitement ... en supposant que votre connexion Internet ne soit pas compromise. Si votre connexion a a été compromise ... vous êtes probablement poursuivi de toute façon.

1
erik

GoDaddy donne des certificats SSL pour 15 $ par an via ce lien acheter maintenant sur ce site. N'appliquez pas de codes de réduction car le prix revient à 30 $ par an et les remises à partir de là.

http://www.sslshopper.com/ssl-certificate-comparison.html?ids=17,25,34,37,62

0
Diwant Vaidya