web-dev-qa-db-fra.com

Certificats client OpenSSL vs certificats serveur

J'ai quelques questions de base sur les certificats. Permettez-moi d'abord d'expliquer ma compréhension de l'authentification SSL.

SSL/TLS a essentiellement deux choses principales,

  1. Authentification - pour nous assurer que nous communiquons avec la bonne partie des deux côtés.
  2. Cryptage - cryptez les données réelles transférées entre les deux extrémités.

Les certificats ont la clé publique et quelques informations supplémentaires. La communication SSL entre le client (par exemple "C") et le serveur (par exemple "S") fonctionne comme ceci,

  1. C lance la demande à S.
  2. S envoie sa clé publique à C.
  3. C vérifie l'identité de S. (vérification d'identité du serveur ou authentification du serveur)
  4. C envoie sa clé publique à S.
  5. S vérifie l'identité de C. (vérification de l'identité du client ou authentification du client)
  6. C génère une clé symétrique ou de session (disons "K") et la crypte avec la clé publique S et l'envoie au serveur.
  7. Maintenant, C et S ont tous les deux la clé symétrique partagée qui sera utilisée pour crypter les données.

Ici, je crois que les étapes 4 et 5 destinées à l'authentification client sont facultatives. Corrigez-moi si je me trompe.

Les étapes 1 à 5 impliquent un mode de cryptage asymétrique, c'est-à-dire uniquement pour `` l'authentification '' et après cela, elles impliquent un mode de cryptage symétrique pour le transfert de données réel entre elles.

Mes questions sont les suivantes,

  1. J'ai lu sur ce lien (lié à IIS) qu'il existe deux types de certificats. L'un est le certificat client et l'autre est le certificat serveur. Je pensais que le l'un du côté client qui initie la demande est le certificat client et l'autre est le certificat serveur. Quelle est la différence entre le certificat client et le serveur wrto OpenSSL?. Y a-t-il une différence de nom CN dans ces certificats wrto OpenSSL?

  2. On m'a demandé d'utiliser des certificats clients pour l'authentification. Cela signifie-t-il que nous contournons l'authentification du serveur et n'utilisons que des certificats clients pour l'authentification?. Je ne pense pas. Selon ma compréhension, l'authentification du client doit être effectuée en plus de l'authentification du serveur. Corrigez-moi si je me trompe ici.

25
Prabu

Certificats de serveur:

Les certificats de serveur sont l'identité d'un serveur présenté par lui lors de l'établissement de la liaison SSL.

En règle générale, ils sont délivrés par une autorité de certification (AC) bien connue du client. La base sur laquelle le certificat est délivré est la possession d'un identifiant connu de ce serveur, pour le serveur Web, c'est le nom d'hôte du serveur, qui est utilisé pour atteindre le serveur.

Example:-  http://blog.8zero2.in/

Certifictae du serveur

Objectif des certificats de serveur

mentionner clairement par le paramètre d'extension x509

Certificate Key usage 

 1. Signing 
 2. Key Encipherment

Signature : - Cela signifie que la clé du certificat peut être utilisée pour prouver l'identité du serveur mentionné dans le NC du certificat, c'est-à-dire l'entité Authentification.

Chiffrement de clé : - Cela signifie que la clé dans le certificat peut être utilisée pour crypter la clé de session (clé symmétique) dérivée pour la session

Certificat client: -

Les certificats clients, comme leur nom l'indique, sont utilisés pour identifier un client ou un utilisateur. Ils sont destinés à authentifier le client sur le serveur. Le but de la détention d'un certificat client varie Cela peut représenter la possession d'une adresse e-mail ou d'une adresse Mac, généralement associée au numéro de série du certificat

Objectif des certificats clients

mentionner clairement par le paramètre d'extension x509

Certificate Key usage 
1. Signing 
10
8zero2.ops

1) L'article que vous liez est bon :-). En d'autres termes: il y a un champ dans le certificat qui indique à quel (s) usage (s) il est autorisé à être utilisé. Lorsque vous créez/demandez un certificat, vous demandez un certificat pour une utilisation particulière et l'autorité de certification le signe sur cette base.

Il est plus sûr d'utiliser différents certificats à des fins différentes et de garantir que chaque certificat ne peut être utilisé qu'aux fins prévues. (Ou si vous voulez être cynique, les autorités de certification vous obligent à acheter des certificats client et serveur distincts pour obtenir plus de ventes.)

Par exemple, vous souhaiterez peut-être que votre serveur Web puisse s'identifier comme votre entreprise à des fins utiles, mais pas que ce même certificat puisse être utilisé pour signer des connexions sortantes vers d'autres entreprises.

2) Vous avez raison.

4
Colin Phipps