Quelle est la série d'étapes nécessaires pour vérifier en toute sécurité un certificat SSL? Ma compréhension (très limitée) est que lorsque vous visitez un site https, le serveur envoie un certificat au client (le navigateur) et que le navigateur obtient les informations sur l'émetteur du certificat à partir de ce certificat, puis les utilise pour contacter l'émetteur et compare en quelque sorte certificats de validité.
- Comment cela se fait-il exactement?
- Qu'en est-il du processus qui le rend immunisé contre les attaques de l'homme du milieu?
- Qu'est-ce qui empêche une personne au hasard de mettre en place son propre service de vérification à utiliser dans les attaques man-in-the-middle, de sorte que tout "semble" sécurisé?
algorithm
security
ssl
certificate
rcreswick
la source
la source
Réponses:
Voici une explication très simplifiée:
Votre navigateur Web 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 d'une autorité de certification approuvée.
Votre navigateur Web est installé avec les clés publiques de toutes les principales autorités de certification. Il utilise cette clé publique pour vérifier que le certificat du serveur Web a bien été signé par l'autorité de certification de confiance.
Le certificat contient le nom de domaine et / ou l'adresse IP du serveur Web. Votre navigateur Web confirme auprès de l'autorité de certification que l'adresse indiquée dans le certificat est celle à laquelle il a une connexion ouverte.
Votre navigateur Web génère une clé symétrique partagée qui sera utilisée pour crypter le trafic HTTP sur cette connexion; c'est beaucoup plus efficace que d'utiliser le chiffrement par clé publique / privée pour tout. Votre navigateur chiffre la clé symétrique avec la clé publique du serveur Web puis la renvoie, garantissant ainsi que seul le serveur Web peut la déchiffrer, car seul le serveur Web a sa clé privée.
Notez que l'autorité de certification (CA) est essentielle pour prévenir les attaques de l'homme du milieu. Cependant, même un certificat non signé empêchera quelqu'un d'écouter passivement votre trafic chiffré, car il n'a aucun moyen d'accéder à votre clé symétrique partagée.
la source
webmaster@<domain-being-verified>
ou« placer ce fichier sur votre domaine pour prouver que vous en êtes le propriétaire ». propre - célèbre quelqu'un a réussi à obtenir un CA ombreux pour leur délivrer un certificat pour gmail.com!Il convient de noter qu'en plus d'acheter un certificat (comme mentionné ci-dessus), vous pouvez également créer le vôtre gratuitement; c'est ce que l'on appelle un "certificat auto-signé". La différence entre un certificat auto-signé et un certificat acheté est simple: le certificat acheté a été signé par une autorité de certification que votre navigateur connaît déjà. En d'autres termes, votre navigateur peut facilement valider l'authenticité d'un certificat acheté.
Malheureusement, cela a conduit à 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 que vous l'installez dans les navigateurs qui utiliseront votre site , il est tout aussi sécurisé que celui acheté et n'est pas vulnérable à l'homme du milieu attaques et contrefaçon de cert. É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.).
la source
Vous avez dit que
Le client n'a pas à vérifier auprès de l'émetteur car deux choses:
Notez que 2. ne peut pas être fait sans 1.
Ceci est mieux expliqué dans ce grand diagramme que j'ai fait il y a quelque temps
(passez à "qu'est-ce qu'une signature?" en bas)
la source
Le client dispose d'un magasin prédéfini de clés publiques des autorités de certification SSL. Il doit y avoir une chaîne de confiance entre le certificat du serveur et les autorités intermédiaires jusqu'à l'un des certificats dits "racine" pour que le serveur soit approuvé.
Vous pouvez examiner et / ou modifier la liste des autorités de confiance. Souvent, vous faites cela pour ajouter un certificat pour une autorité locale en qui vous avez confiance - comme l'entreprise pour laquelle vous travaillez ou l'école que vous fréquentez ou pas.
La liste prédéfinie peut varier en fonction du client que vous utilisez. Les grands fournisseurs de certificats SSL assurent que leurs certificats racine sont dans tous les principaux navigateurs ($$$).
Les attaques de type Monkey-in-the-middle sont "impossibles" à moins que l'attaquant ne dispose de la clé privée d'un certificat racine de confiance. Étant donné que les certificats correspondants sont largement déployés, l'exposition d'une telle clé privée aurait de sérieuses implications pour la sécurité du commerce électronique en général. Pour cette raison, ces clés privées sont très, très étroitement gardées.
la source
si vous êtes plus technique, ce site est probablement ce que vous voulez: http://www.zytrax.com/tech/survival/ssl.html
avertissement: le lapin se creuse :).
la source