52 votes

Certificat SSL auto-signé ou CA ?

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

Verisign est déraisonnable et GoDaddy est à 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, c'est que je ne sais pas pourquoi ils ont différents produits SSL (c'est-à-dire : pourquoi c'est 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 ?)

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

En résumé, est-ce que je donne 30 dollars par an à GoDaddy ou est-ce que je dis simplement aux gens dans un petit paragraphe ce que je fais et je donne mon empreinte digitale aux quelques personnes qui en voudront vraiment ?

Edit : Sur un forum que je lisais pour en savoir plus, certains ont mentionné que les certificats GoDaddy ne sont donnés que s'ils se trouvent sur un serveur GoDaddy, ce qui n'est pas le cas ici. Deux choses : (1) est-ce vrai ? et Il y a d'autres CA à peu près au même prix, donc l'argument devrait rester le même.

53voto

Clint Harris Points 7163

On pense souvent, à tort, que les certificats auto-signés sont intrinsèquement moins sûrs que ceux vendus par les autorités de certification commerciales comme GoDaddy et Verisign, et que vous devez vous accommoder des avertissements/exceptions des navigateurs si vous les utilisez ; c'est incorrect .

Si vous distribuez de manière sécurisée un certificat auto-signé (ou un certificat d'autorité de certification, comme le suggère Bobince) et que vous l'installez dans les navigateurs qui utiliseront votre site Il est tout aussi sûr qu'un certificat acheté et n'est pas vulnérable aux attaques de type "man-in-the-middle" et à la falsification de certificats. Évidemment, cela signifie que cette solution n'est envisageable que si un petit nombre de personnes ont besoin d'un accès sécurisé à votre site (applications internes, blogs personnels, etc.).

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

4 votes

Le problème est qu'il est impossible de distribuer des certificats auto-signés de manière sécurisée sur un réseau WAN, il faudrait les distribuer via des CD-ROM ou même des clés USB qui sont envoyés par courrier sécurisé. Donc, au final, les certificats auto-signés sont toujours moins sûrs que ceux qui sont signés officiellement, il est impossible d'être sûr des clients ou de leur FAI - des clients infectés par des virus, par exemple.

1 votes

Qu'en est-il des CA autogérés ? Je suppose que dans le contexte de cette question, une autorité de certification autogérée serait équivalente à des certificats auto-signés.

1 votes

Est-il recommandé d'utiliser un certificat auto-signé pour les applications Android ? Par exemple, j'ai un serveur qui fournit mon api de repos à mon application Android, puis-je m'en sortir avec un certificat auto-signé ?

39voto

Nicholas Piasecki Points 13681

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 l'on parle de SSL 3.0 ou de 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 reçu beaucoup d'argent pour l'installer par défaut dans leurs systèmes d'exploitation), et puisque Verisign vous fait confiance, je vous fais également confiance. Par conséquent, il n'y a pas d'avertissement effrayant lorsque je me rends 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 général, plus le certificat est cher, plus l'autorité de certification émettrice effectue des recherches. Ainsi, pour les certificats à validation étendue, les demandeurs doivent soumettre plus de documents pour prouver qu'ils sont bien ceux qu'ils prétendent ê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 elle pour le moment).

Enfin, certaines entreprises choisissent les grands noms comme Verisign uniquement pour le nom de la marque ; elles savent que leurs clients ont au moins entendu parler de Verisign et que, pour les personnes effectuant des achats sur leur boutique en ligne, leur sceau a l'air un peu moins ridicule que celui de GoDaddy, par exemple.

Si l'image de marque n'est pas importante pour vous ou si votre site n'est pas sujet à des attaques de phishing, alors 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 fera l'affaire. En général, la seule vérification effectuée est que vous devez être en mesure de répondre à un courriel envoyé au contact administratif du DNS, ce qui "prouve" que vous "possédez" ce nom de domaine.

Vous pouvez utiliser ces certificats bon marché sur des serveurs autres que ceux de GoDaddy, bien sûr, mais vous devrez probablement installer d'abord un certificat intermédiaire sur le serveur. Il s'agit d'un certificat qui se situe entre votre certificat bon marché à 30 $ et le certificat racine GoDaddy "réel". Les navigateurs Web qui visitent votre site se diront "hmm, on dirait que ce site a été signé avec un certificat intermédiaire, vous avez compris ? nécessite peut exiger un voyage supplémentaire. Mais ensuite, il demandera le certificat intermédiaire à votre serveur, verra qu'il est lié à un certificat racine de confiance qu'il connaît, et il n'y aura 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é), alors vous n'avez pas de chance. C'est pourquoi la plupart des gens disent que les certs GoDaddy ne peuvent pas être utilisés sur des serveurs non GoDaddy. C'est faux, mais suffisamment vrai pour de nombreux scénarios.

(Au travail, nous utilisons un certificat Comodo pour notre boutique en ligne, et un certificat GoDaddy bon marché à 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 chaque jour !

5 votes

Le protocole SSL lui-même, et non le certificat du serveur, assure le cryptage du trafic. Avec l'accord de clé Diffie-Hellman, vous pouvez avoir un canal SSL confidentiel sans aucun certificat. Mais si vous ne savez même pas à qui vous parlez, pouvez-vous considérer que ce que vous lui dites est secret ?

6 votes

Les certificats intermédiaires n'impliquent pas d'allers-retours supplémentaires vers le serveur. Le serveur doit être configuré pour envoyer correctement les certificats de l'entité intermédiaire et de l'entité finale ensemble. La configuration SSL de tout serveur Web digne de ce nom accepte une chaîne de certificats, et pas seulement un certificat unique.

1 votes

L'image de marque n'a rien à voir avec la vulnérabilité - même les certificats auto-signés sont sûrs SI vous utilisez un navigateur qui détecte les changements de certificats (attaque MitM + usurpation SSL) et si vous ne cliquez pas sur "oui" chaque fois qu'une fenêtre s'ouvre. Mais regardons les choses en face : les certificats auto-signés sont un signe certain d'incompétence, il y a des certificats GRATUITS disponibles de nos jours, vous devez seulement prouver que vous possédez le domaine - et même cela n'est pas toujours vrai, certaines CAs acceptent le fait que vous possédez le serveur de noms OU le serveur web, même ( !)

8voto

erickson Points 127945

Obtenir un certificat à partir de Let's Encrypt, un CA gratuit cette nouvelle décennie, qui est largement pris 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 vous conseille 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 afficher l'empreinte digitale de son propre faux certificat comme vous le proposez. Je doute que l'utilisateur moyen sache ce qu'est une empreinte de certificat ou comment la vérifier.

0 votes

J'ai utilisé Startcom mais comme ils ne sont pas inclus dans la liste de confiance d'IE, ce n'est pas beaucoup mieux que d'utiliser votre propre certificat auto-signé....

0 votes

C'est faux. Les Startcom-certs sont inclus dans IE.

1 votes

StartCom est mort.

7voto

bobince Points 270740

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

Vous pourrez alors décider ultérieurement si cela vaut la peine de dépenser 30 dollars pour passer d'un certificat signé par votre propre autorité de certification à un certificat identique signé par GoDaddy ou autre.

Dans tous les cas, n'ayez pas une page HTTP avec un formulaire posté en HTTPS. L'utilisateur ne peut pas voir que c'est là qu'il va ; il devrait voir la source pour vérifier que le formulaire n'a pas été détourné pour pointer ailleurs et personne ne va le faire. Vous devriez avoir une page d'accueil HTTP avec le lien de l'autorité de certification et un lien distinct vers le formulaire de connexion HTTPS.

Demander aux utilisateurs d'installer une autorité de certification à l'aide d'un certificat téléchargé via le protocole HTTP est un peu vilain : si un homme du milieu était présent, il pourrait remplacer votre autorité de certification à la volée et détourner les connexions HTTPS qui s'ensuivent. Les chances que cela se produise réellement sont assez faibles car il faudrait qu'il s'agisse d'une attaque ciblée et non d'un simple reniflage automatisé, mais vous devriez vraiment héberger le lien de téléchargement de l'autorité de certification sur un autre service protégé par HTTPS.

L'acceptation par les clients est une question à laquelle vous seul pouvez répondre, en sachant qui sont vos utilisateurs. Il est certain que l'interface de Firefox est excessivement effrayante. Si les CA comme GoDaddy ne coûtent plus que 30 dollars ces jours-ci, j'irai probablement de l'avant ; c'était bien pire avant.

En supposant que la prise en charge des navigateurs anciens et spécialisés ne soit pas un problème, optez pour l'autorité de certification la moins chère du marché. Vous êtes supposée Mais dans la pratique, ce n'est pas comme ça que ça marche et ça ne l'a jamais été, donc payer un supplément pour des vérifications plus approfondies ne vous apporte presque rien. Les prix exorbitants de Verisign ne survivent que par l'inertie de l'entreprise.

Les AC sont là pour recevoir de l'argent en ne faisant rien d'autre que posséder quelques centaines de bits de clé privée. La vérification d'identité qui était censée faire partie du mandat des CA a été transférée aux certificats EV. Qui sont encore plus une escroquerie. Joy.

3voto

porneL Points 42805

Certificats auto-signés sont insé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 destiné à vous et à quelques-uns de vos amis, vous pouvez créer votre propre autorité de certification et distribuer votre certificat à vos amis.

Sinon, vous pouvez obtenir un certificat d'une autorité de certification connue ( gratuitement ) ou ne vous préoccupez pas du tout des certificats auto-signés, car tout ce que vous obtiendrez sera un certificat de type faux un sentiment de sécurité.


Pourquoi un trafic crypté n'est pas sûr ? Vous permettez toujours à l'autre extrémité de décrypter votre trafic (vous devez le faire, sinon vous enverriez du charabia).

Si vous ne vérifiez pas qui est à l'autre bout, vous permettez à n'importe qui de décrypter votre trafic. Le fait que vous envoyiez des données à un attaquant de manière sécurisée ou non ne fait aucune différence : 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 digne de confiance (c'est un problème plus important). Je parle de vérifier si vous envoyez des données à le site paypal.com, ou simplement à une camionnette au coin de la rue qui envoie un certificat disant "Ouais, je suis comme totalement paypal.com et vous avez ma parole que c'est vrai !"

4 votes

Comment ça ? Par rapport au protocole HTTP simple que N'IMPORTE QUI sur votre réseau peut lire, le protocole SSL avec un certificat auto-signé est à des années-lumière. Ce n'est pas une sécurité totale, bien sûr, mais les serrures de votre porte d'entrée ne le sont pas non plus :)

1 votes

Cela semble être une discussion religieuse - peu importe ce que vous dites, une personne qui n'aime pas les certificats auto-signés ne va jamais concéder la valeur de leur utilisation...

2 votes

Les certificats auto-signés ne résolvent pas le problème de la distribution des clés. Selon la personne à qui vous demandez, c'est la raison pour laquelle PGP n'est pas largement utilisé. Peut-être devrais-je le dire ainsi, si vous avez des signataires de certificats SSL, puis vous pouvez utiliser des certs auto-signés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X