295 votes

Comment les certificats SSL sont-ils vérifiés?

Qu'est-ce que la série d'étapes nécessaires pour vérifier en toute sécurité un certificat ssl? Mon (très limité) de la compréhension, c'est que lorsque vous visitez un site en https, le serveur envoie un certificat au client (le navigateur) et le navigateur obtient le certificat de l'émetteur de l'information à partir de ce certificat, puis l'utilise pour communiquer avec le issuerer, et en quelque sorte compare les certificats de validité.

  • Comment cela est-il fait?
  • Quel est le processus le rend immunisé man-in-the-middle attaques?
  • Qu'est ce qui empêche une personne quelconque à partir de la mise en place de leur propre service de vérification à utiliser en man-in-the-middle attaques, donc tout ce qui "semble" bloqué?

397voto

Eli Courtwright Points 53071

Voici une explication simplifiée:

  1. Votre navigateur télécharge le certificat du serveur web, qui contient la clé publique du serveur web. Ce certificat est signé avec la clé privée de l'autorité de certification de confiance.

  2. Votre navigateur web est installé avec les clés publiques de tous les principales autorités de certification. Il utilise cette clé publique pour vérifier que le certificat du serveur web était, en effet, signé par l'autorité de certification de confiance.

  3. Le certificat contient le nom de domaine et/ou l'adresse ip du serveur web. Votre navigateur web confirme que l'adresse indiquée dans le certificat est celui à qui il a une connexion ouverte.

  4. Votre navigateur web génère une clé symétrique partagée qui sera utilisé pour crypter le trafic HTTP sur cette connexion, ce qui est beaucoup plus efficace que l'utilisation de clés publique/privée de chiffrement pour tout. Votre navigateur crypte la clé symétrique avec la clé publique du serveur web, puis l'envoie à l'arrière, assurant ainsi que seul le serveur web peut le décrypter, car seul le serveur web a sa clé privée.

Notez que l'autorité de certification (CA) est essentiel à la prévention de la man-in-the-middle attaques. Cependant, même un certificat non signé va empêcher quelqu'un de manière passive à l'écoute sur votre trafic chiffré, car ils n'ont aucun moyen d'accéder à votre clé symétrique partagée.

70voto

Clint Harris Points 7163

Il est intéressant de noter que, en plus de l'achat d'un certificat (comme mentionné ci-dessus), vous pouvez également créer votre propre gratuit; ceci est appelé un "certificat auto-signé". La différence entre un certificat auto-signé et celui qui est acheté est simple: l'achat de l'un a été signé par une Autorité de certification de votre navigateur connaît déjà. En d'autres termes, votre navigateur peut facilement valider l'authenticité de l'achat de certificats.

Malheureusement, cela a conduit à une idée fausse commune que les certificats auto-signés sont moins sécurisé que ceux vendus par autorité de certification commerciale est comme GoDaddy et Verisign, et que vous avez à vivre avec navigateur avertissements/exceptions si vous les utiliser; c'est incorrect.

Si vous sure de distribuer un certificat auto-signé (ou CA cert, comme bobince suggéré) et de l'installer sur les navigateurs qui permettra l'utilisation de votre site, il est tout aussi sécurisé que celui qui l'a acheté et n'est pas vulnérable à man-in-the-middle attaques cert et la falsification. Évidemment, cela signifie qu'il est seulement possible si seulement quelques personnes ont besoin de sécuriser l'accès à votre site (par exemple, les applications internes, les blogs personnels, etc.).

Dans l'intérêt de l'augmentation de la sensibilisation et d'encourager les collègues petit temps de blogueurs comme moi-même pour se protéger, j'ai écrit un niveau d'entrée tutoriel qui explique plus en détail les concepts de base de certificats et de façon sécuritaire créer et utiliser un auto-signé cert (avec des exemples de code et des captures d'écran). Voici un lien dans le cas où c'est utile à quelqu'un d'autre dans l'avenir: http://www.clintharris.net/2009/self-signed-certificates/.

10voto

nsayer Points 5594

Le client dispose d'un pré-ensemencées magasin de certificats SSL des autorités publiques clés. Il doit y avoir une chaîne de confiance du certificat pour le serveur par l'intermédiaire d'autorités à l'un des soi-disant "root" certificat pour le serveur de confiance.

Vous pouvez le consulter et/ou modifier la liste des autorités de confiance. Souvent vous faire pour ajouter un certificat à une autorité locale qui vous savez qui vous avez confiance - comme la société pour laquelle vous travaillez ou de l'école, vous assister ou ce n'est pas.

La pré-ensemencées liste peut varier en fonction du client que vous utilisez. La grande certificat SSL, les fournisseurs de s'assurer que leur racine certs sont dans tous les principaux navigateurs ($$$).

Singe-in-the-middle attaques sont "impossibles" à moins que l'attaquant a la clé privée du certificat racine de confiance. Depuis les certificats correspondants sont largement déployés, l'exposition de cette clé privée aurait de graves conséquences pour la sécurité du commerce électronique en général. À cause de cela, les touches sont très, très étroitement surveillé.

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