Question Quelle est la différence entre un certificat et une clé en ce qui concerne SSL?


Chaque fois que j'essaie de comprendre quoi que ce soit à propos de SSL, j'ai toujours du mal à garder la trace de ce que "clé" et "certificat" désignent. Je crains que beaucoup de gens les utilisent de manière incorrecte ou interchangeable. Existe-t-il une différence standard entre une clé et un certificat?


81
2017-07-15 17:55


origine


Les certificats utilisés pour SSL reposent largement sur l'infrastructure à clé publique en.wikipedia.org/wiki/Public-key_cryptography - Zoredache


Réponses:


Un certificat contient une clé publique.

Le certificat, en plus de contenir la clé publique, contient des informations supplémentaires telles que l'émetteur, le type d'utilisation du certificat et d'autres types de métadonnées.

En général, un certificat est lui-même signé avec une clé privée qui vérifie son authenticité.


71
2017-07-15 18:01



Un certificat est la composante publique d'une clé, pas la clé entière. - Zoredache
J'ai fait des corrections. :) - LawrenceC
@Zoredache Si un certificat ne possède généralement qu'une clé publique, existe-t-il un nom pour appeler les fichiers .p12 ou .pfx contenant des certificats et des clés privées? - drs
Où sont ces informations supplémentaires enterrées? Je regardais des certificats et c'est du charabia pour moi - CodyBugstein
Le charabia que vous regardez est l'encodage Base64. Cela se fait probablement pour la même raison que les pièces jointes sont converties pour cela - essentiellement pour s'assurer qu'elles peuvent transporter via des protocoles et des mécanismes conçus pour ASCII uniquement sans modification occasionnelle et sans se soucier de choses comme les nouvelles lignes, crochets, etc. opensslLa commande peut les décoder et les analyser ou vous pouvez utiliser un utilitaire en ligne tel que celui-ci: lapo.it/asn1js - LawrenceC


Disons que la société A a un paire de clés et doit publier sa clé publique pour un usage public (alias ssl sur son site web).

  • La société A doit faire une demande de certificat (CR) auprès d'une autorité de certification (CA) pour obtenir un certificat pour sa paire de clés.
  • La clé publique, mais pas la clé privée, de la paire de clés de la société A est incluse dans la demande de certificat.
  • L'AC utilise ensuite les informations d'identité de l'entreprise A pour déterminer si la demande répond aux critères de l'autorité de certification pour la délivrance d'un certificat.
     Si l'autorité de certification approuve la demande, elle émet un certificat à la société A. En résumé, CA signe la clé publique de la société A avec sa clé privée (CA), qui vérifie son authenticité.

Ainsi, la clé publique de l'entreprise A signée avec la clé privée d'une autorité de certification valide est appelée certificat de la société A.


30
2017-12-16 06:40



Est-ce que la société A quelque point associe sa clé privée (société A) à son certificat (société A)? - Tola Odejayi
Non, une clé privée reste privée pour A. - Mohsen Heydari
Alors, où est la clé privée de la société A utilisée? - sivann
Après les formalités ci-dessus. La société A disposera d’un certificat SSL valide sur son site Web. Tout visiteur (navigateur) communiquant sur le site Web utilisera la clé publique du certificat pour chiffrer son message. La société A ayant la clé privée du certificat SSL est la seule à pouvoir déchiffrer le message. - Mohsen Heydari


Ces deux images ensemble m'ont tout expliqué:

La source: la linuxvoice

enter image description here

La source: infosecinstitute

enter image description here


29
2018-04-05 11:16



Xkcd pertinent - Blacksilver


Un SSL certificat est obtenu auprès d'une autorité de certification de confiance, qui garantit la connexion sécurisée du site. Les certificats SSL contiennent généralement le logo d'authentification et les clés publiques nécessaires pour chiffrer et déchiffrer les données à envoyer à l'ordinateur. Fonctions des clés SSL

Plusieurs SSL clés peut être généré pendant une session. Ils sont utilisés pour chiffrer et déchiffrer les informations envoyées vers et depuis l'ordinateur. Les clés permettent de vérifier que les informations n'ont pas été modifiées ou altérées.

Différence de cycle de vie

Les certificats durent plus longtemps que les clés SSL. Les certificats SSL sont obtenus auprès de l'autorité de certification, qui peut être renouvelée régulièrement par les banques et les entreprises. Les clés SSL ou les clés de session, quant à elles, sont générées de manière unique pendant la session et supprimées à la fin de la session.

Lire plus ici


3
2017-07-15 18:02





OK, disons ceci pour que les non-techniciens puissent comprendre.

Pensez-y comme ça. Un certificat est comme un coffre-fort à votre banque. Il contient beaucoup de choses importantes; généralement des trucs qui contiennent votre identité. Le certificat a une clé publique et nécessite une clé privée pour l'ouvrir.

Votre coffre-fort prend deux clés pour ouvrir, tout comme un certificat.
Avec un coffre-fort, la clé du banquier est comme la clé publique car elle reste à la banque et la clé publique reste avec le certificat. Vous avez la clé privée, qui est nécessaire pour "obtenir votre certificat" et, dans l'exemple du coffre-fort, votre clé privée est également nécessaire en plus de la clé publique.

Avant de pouvoir ouvrir votre coffre-fort, vous devez d'abord vérifier votre identité (un peu comme une demande de certificat); Une fois que vous avez été identifié, vous utilisez votre clé privée avec la clé publique pour ouvrir votre boîte de sécurité. C'est un peu comme faire votre demande de certificat, puis obtenir votre certificat auprès de l'autorité de certification (tant que vous pouvez être identifié (approuvé) et que vous avez la bonne clé).


1
2018-05-12 01:49



<PiratesOfTheCarribean> Nous allons donc après cette clé! </ PiratesOfTheCarribean> (Lire: Vous n'avez aucun sens ...) - Timo


Laissez-moi vous expliquer avec un exemple.

Dans l'infrastructure PKI basée sur une paire de clés normale, il existe une clé privée et une clé publique.

Dans un système basé sur des certificats, il existe une clé privée et un certificat. Le certificat contient plus d'informations que la clé publique.

Démo (Vous pouvez générer un certificat et une clé privée): http://www.selfsignedcertificate.com/

Vous pouvez télécharger ouvrir le fichier de clé privée et le fichier de certificat, vous voyez que le fichier de certificat contient beaucoup d'informations comme indiqué ci-dessous. enter image description here enter image description here

Vous pouvez faire correspondre votre certificat généré (ouverture par un éditeur de texte) et votre clé privée (ouverte par un éditeur de texte) à partir de ce site: https://www.sslshopper.com/certificate-key-matcher.html

Si le certificat correspond à la clé privée du client, le client est certain que ce certificat est fourni par le client ou par l'agent de confiance du client.

Cependant, seuls des problèmes liés à la clé privée et à la communication par certificat se posent..

Parce que n'importe qui peut générer son propre certificat et sa propre clé privée, une simple poignée de main ne prouve rien d'autre que le serveur connaît la clé privée qui correspond à la clé publique du certificat. Une façon de résoudre ce problème consiste à demander au client un ensemble d'un ou plusieurs certificats, il fait confiance. Si le certificat n'est pas dans le jeu, le serveur ne doit pas être fiable.

Cette approche simple comporte plusieurs inconvénients. Les serveurs doivent pouvoir passer à des clés plus puissantes au fil du temps ("rotation des clés"), ce qui remplace la clé publique du certificat par une nouvelle. Malheureusement, l'application client doit maintenant être mise à jour en raison de ce qui constitue essentiellement une modification de la configuration du serveur. Cela est particulièrement problématique si le serveur n'est pas sous le contrôle du développeur de l'application, par exemple s'il s'agit d'un service Web tiers. Cette approche pose également problème si l'application doit communiquer avec des serveurs arbitraires tels qu'un navigateur Web ou une application de messagerie.

Afin de remédier à ces inconvénients, les serveurs sont généralement configurés avec des certificats d’émetteurs bien connus appelés autorités de certification. La plate-forme hôte (client) contient généralement une liste des autorités de certification bien connues. Semblable à un serveur, une autorité de certification dispose d'un certificat et d'une clé privée. Lors de l'émission d'un certificat pour un serveur, l'autorité de certification signe le certificat du serveur à l'aide de sa clé privée. Le client peut alors vérifier que le serveur possède un certificat émis par une autorité de certification connue de la plate-forme.

Cependant, lors de la résolution de certains problèmes, l’utilisation de CA en introduit une autre. Étant donné que l'autorité de certification émet des certificats pour de nombreux serveurs, vous avez toujours besoin d'un moyen de vous assurer que vous communiquez avec le serveur souhaité. Pour résoudre ce problème, le certificat émis par l'autorité de certification identifie le serveur avec un nom spécifique tel que gmail.com ou un ensemble d'hôtes génériques, tel que * .google.com.

L'exemple suivant rendra ces concepts un peu plus concrets. Dans l'extrait de code ci-dessous, à partir d'une ligne de commande, la commande s_client de l'outil openssl examine les informations du certificat du serveur Wikipedia. Il spécifie le port 443 car c'est la valeur par défaut pour HTTPS. La commande envoie la sortie de openssl s_client à openssl x509, qui formate les informations sur les certificats conformément à la norme X.509. Plus précisément, la commande demande le sujet, qui contient les informations de nom de serveur, et l'émetteur, qui identifie l'autorité de certification.

$ openssl s_client -connect wikipedia.org:443 | openssl x509 -noout -subject -issuer
subject= /serialNumber=sOrr2rKpMVP70Z6E9BT5reY008SJEdYv/C=US/O=*.wikipedia.org/OU=GT03314600/OU=See www.rapidssl.com/resources/cps (c)11/OU=Domain Control Validated - RapidSSL(R)/CN=*.wikipedia.org
issuer= /C=US/O=GeoTrust, Inc./CN=RapidSSL CA

Vous pouvez voir que le certificat a été émis pour les serveurs correspondant à * .wikipedia.org par RapidSSL CA.

Comme vous pouvez le constater, en raison des informations supplémentaires envoyées par CA aux serveurs, le client peut facilement savoir s'il communique ou non avec son serveur.


1
2018-05-09 20:57





Communication par navigateur et serveur

Poignée de main:

  • Client Envoie un nombre aléatoire avec le cryptage pris en charge
  • Le serveur envoie son certificat avec le cryptage pris en charge. Et le client du nombre aléatoire est chiffré avec sa clé privée et renvoyé. Le certificat contient une clé publique. Émetteur du certificat ou (CA), expiration, etc.
  • Client Vérifie l'envoi du certificat par le serveur.

Tous les PC sont livrés avec une liste de CA à laquelle ils font confiance comme VeriSign ou DigiCert. Ce sont CA ROOT. Toutes les CA racine sont auto-signées. Comprendre. C'est comme si j'espérais que le serveur A et le serveur A connaissent le serveur B, alors que le serveur A peut garantir qu'il s'agit du serveur B qu'il dit être. Et la façon dont Server A Vouch est en fournissant le certificat au serveur B. Ce certificat est en fait Singed by Private Key de CA dans notre cas. Serveur A. qui est la signature publique sur notre PC avec lequel je peux vérifier l'authenticité du certificat fourni par Serveur B.

  • Le client Vérifie le message ou le numéro aléatoire qu'il a déjà envoyé avec la clé publique (reçue dans le certificat).

  • Le client vérifie maintenant si le certificat est valide en envoyant une requête OCSP et en vérifiant la base de données CRL.

  • Maintenant, si le certificat n'a pas été révoqué, une paire de clés de session sera établie avec laquelle un tunnel de chiffrement est établi, maintenant tout le trafic est chiffré.

Toutes les demandes de CSR sont signées par des certificats intermédiaires, pas directement par l'autorité de certification racine pour réserver l'intégrité de l'autorité de certification racine afin qu'elles ne soient pas compromises.


-2
2018-04-14 15:47



Je comprends qu'il ne répond pas directement à la question, mais s'il vous plaît faites un commentaire lors du vote à la baisse. - Kid101