Les certificats SSL auto-signés sont-ils sécurisés?

33

Je veux avoir une connexion sécurisée, quand je me connecte à mon webmail, phpMyAdmin , etc.

J'ai donc signé mes propres certificats SSL avec OpenSSL et demandé à Apache d'écouter sur le port 443.

Est-ce en fait sécurisé? Est-ce que tous mes mots de passe sont vraiment envoyés via une couche sécurisée? Quelle différence cela fait-il si j'achète un certificat SSL chez Verisign ou si je signe le mien? En fin de compte, toutes les données seront sur mon serveur de toute façon. Alors quelle est la grande différence?

Cherrun
la source

Réponses:

40

Tout est question de confiance. Si vous obtenez un certificat signé de verisign, vous prouvez à des clients aléatoires que votre certificat est approuvé. Si vous signez vous-même le certificat, les personnes ne disposant pas de votre certificat sur leur ordinateur ne peuvent pas être sûres qu'elles ne sont pas attaquées par une attaque Man-in-the-middle .

Si vous utilisez seulement votre serveur Web, vous n'avez pas besoin d'une véritable autorité de certification (telle que verisign) pour signer votre certificat. Installez simplement le certificat sur les machines que vous souhaitez utiliser et vous êtes prêt à partir.

Edit: Donc, pour répondre à votre question: Oui, tout est crypté et vous pouvez être sûr que personne ne peut lire vos données sensibles si vous savez que le certificat présenté au navigateur Web est en fait celui avec lequel vous avez configuré le serveur Web.

monoceres
la source
12
Le but de l'AC est de prouver aux autres qu'un certificat appartient à qui vous dites qu'il appartient. Comme vous savez déjà à qui appartient le certificat, lorsque vous accédez à votre propre serveur et présentez votre propre certificat, une autorité de certification ne sert à rien. Cependant, d'autres personnes ne peuvent pas accéder à vos serveurs en toute sécurité, car elles ne savent pas à quel certificat faire confiance. (Vous savez, faites confiance à celui que vous avez publié.)
David Schwartz
Cela constituerait également une approche raisonnable si le serveur était accessible à un nombre limité d'utilisateurs qui pourraient vous contacter directement pour vérifier le certificat, par exemple des membres de votre famille ou le personnel d'une petite entreprise.
bgvaughan
Un homme au milieu qui a coordonné avec une autorité de certification peut-il annuler son certificat auto-signé? Par exemple, Bob se connecte au site Web auto-signé d'Alice, Scar envoie à Bob un autre certificat signé par le CA Scar, le navigateur de Bob n'indiquant jamais d'avertissement SSL. Est-ce possible?
Bonjour le monde
14

Tout est question de confiance.

Supposons que vous visitiez un site Web populaire présentant un certificat. Ceci est le site en disant : « Voilà qui je suis, vous pouvez me faire confiance, parce que j'ai cette lettre d'introduction signée par quelqu'un que vous faites confiance. »

Dans ce cas, la «personne de confiance» est l’une des autorités de certification qui ont (espérons-le) fait le travail nécessaire pour établir l’identité du présentateur du certificat en votre nom.

Ce que vous faites vraiment confiance, c'est la confiance de l'auteur du navigateur dans la confiance de l'autorité de certification dans l'identité de la personne présentant le certificat. De plus, il existe souvent plus d’une autorité entre vous et le présentateur, d’où le terme «chaîne de confiance». [1]

Lorsque vous signez votre propre certificat, il n'y a pas de chaîne de confiance. Votre site vous présente votre propre certificat. Si vous installez votre propre certificat dans votre navigateur comme celui qui vous faites confiance, alors traitée comme une autorité, les mêmes que celles qui sont pré-installés. Vous avez alors une chaîne de confiance avec un seul lien.

Si vous visitez ensuite l'un de vos sites et que votre navigateur vous avertit qu'il présente un certificat non approuvé, vous devriez alors être inquiet, car, comme pour tout autre site présentant un certificat non approuvé, vous ne pouvez pas être certain. que vous communiquez avec le site réel.

Notez que je n'ai pas encore mentionné le cryptage. Les certificats consistent à authentifier l'identité de la partie avec laquelle vous communiquez. Grâce aux certificats de confiance, vous pouvez être raisonnablement assuré que votre boutique ou votre banque est la vraie. Une fois que vous avez établi leur identité, la prochaine étape consiste à sécuriser les communications. Il se trouve que les certificats contiennent également les clés nécessaires pour faciliter cette sécurité. En supposant que votre SSL soit configuré correctement, cette communication est aussi sécurisée que celle que vous auriez avec votre boutique ou votre banque et vos mots de passe sont protégés de la même manière [2].

[1] Ce n'est en aucun cas un système sans faille. Un marché libre et une activité à faible marge et à volume élevé entraînent inévitablement une réduction des coûts: http://www.theregister.co.uk/2011/04/11/state_of_ssl_analysis/

[2] Au moins, suffisamment protégé pour qu'il soit beaucoup moins coûteux pour une personne d'entrer par effraction dans votre maison de vous révéler vos secrets plutôt que de tenter de les percer : http://xkcd.com/538/

SmallClanger
la source
11

En fait, les certificats auto-signés peuvent être sécurisés, mais pas sous le modèle que nous utilisons actuellement.


Dans le modèle d'autorité de certification étendu utilisé par tout le monde , le certificat signé par une autorité de certification approuvée a pour but de fournir une authentification.

Lorsque nous obtenons un certificat, nous ne voyons vraiment que des 1 et des 0 venant du jack dans le mur; nous n'avons aucune idée d'où viennent ces 1 et 0. Cependant, comme le certificat est signé par une autorité de certification - ce que personne d'autre dans le monde ne peut faire - et parce que nous invitons l'autorité de certification à vérifier l'identité du propriétaire du certificat, nous pensons que le certificat provient de la personne qu'elle prétend à.

Bien sûr, si l' autorité de certification est compromise ou ne vérifie pas correctement le propriétaire , tous les paris sont désactivés.


Cependant, il y a un autre modèle, en vertu duquel les certificats auto-signés ne fournissent l' authenticité. C'est ce qu'on appelle le modèle de notaire .

Essentiellement, plutôt que de faire confiance à une seule autorité de certification, nous distribuons la confiance à un nombre quelconque de notaires . Ces notaires parcourent Internet à la recherche de certificats et gardent en mémoire cache tous les certificats qu'ils ont vus. Lorsque vous visitez un site pour la première fois et obtenez le certificat, vous demandez à un certain nombre de notaires répartis dans le monde entier quel est le dernier certificat qu'ils ont vu. S'ils ne sont pas d'accord avec ce que vous voyez, vous pourriez faire partie d'une attaque de type homme du milieu.

Sous ce modèle, les certificats auto-signés sont parfaitement sécurisés, à condition que le serveur ne soit pas immédiatement compromis avant qu'un notaire ne puisse voir son certificat.


Le modèle de notaire en est encore à ses balbutiements, et il est peu probable qu'il reprenne le modèle de CA (en fait, il n'est pas obligé de le faire - ils peuvent être utilisés en tandem) . Le projet le plus prometteur à ce jour est Convergence.io , qui dispose d’un plugin pour Firefox.

BlueRaja
la source
2

Ce n'est pas TOUT sur la confiance ....

Les certificats SSL peuvent avoir deux objectifs: 1) est le serveur Web auquel vous vous connectez à celui auquel vous souhaitez vous connecter; et 2) chiffrer les communications.

Vous pouvez avoir le numéro 2 sans le numéro 1, ce que vous avez accompli. Il ne reste alors qu’à vérifier que la boîte à laquelle vous vous connectez est celle que vous souhaitez.

Si c'est mon serveur, l'utilisation d'un certificat signé par moi-même ne me pose aucun problème, même s'il existe un risque que quelqu'un puisse usurper des objets pour que je me connecte à leur serveur au lieu du mien. Puisque personne ne se soucie de moi et de mon serveur et que j'ai peu de valeur ici, je ne vois pas trop de risques en cela.

Par contre, si au lieu d’un de mes serveurs c’était un de vos serveurs, je serais inquiet.

uSlackr
la source
Alliez-vous dire: "Si c'est votre serveur, je ne serais PAS concerné"?
Cherrun
non, il a dit "si c'est mon serveur je n'ai pas de problème ... si c'est votre serveur alors j'ai des problèmes".
Francesco
Vous avez tort Personne ne pourrait usurper des choses pour vous amener à vous connecter à leur serveur au lieu du vôtre. Ils n'ont pas de clé correspondant au certificat auto-signé que vous avez émis et ne peuvent pas vous présenter un certificat différent car vous ne l'accepteriez pas.
David Schwartz
@cherun Mon point était que j'ai confiance en moi - pas vous (ou quelqu'un d'autre). Vous pouvez / devriez vous faire confiance.
USlackr
1
-1. Le chiffrement est effectué à l'aide de clés symétriques négociées lors de l'établissement de la liaison. Bien sûr, vous utilisez le certificat pour vérifier l’identité de la partie distante, sinon il n’y aurait aucun intérêt à chiffrer la communication (cela pourrait être un MITM). S'il s'agit de votre serveur et d'un certificat auto-signé, importez votre certificat explicitement dans votre client.
Bruno