2011-06-16 2 views
1

J'essaie de trouver plus d'informations sur les détails de l'authentification SSL bidirectionnelle. Ce que je veux savoir, c'est ce que les vérifications sont faites lorsqu'un client reçoit le certificat d'un autre. (Voir verify cercle dans l'image ci-dessous)Vérifications SSL bidirectionnelles

Two way verification http://publib.boulder.ibm.com/infocenter/tivihelp/v5r1/topic/com.ibm.itim.infocenter.doc/images/imx_twowaysslcacert.gif

Est-ce que quelqu'un a une liste de toutes les étapes? Y a-t-il un document de normes auquel je peux être dirigé? Est-ce que chaque serveur l'implémente différemment?

Principalement ce que je demande est ... Est-ce que le serveur effectue une vérification par rapport au nom d'hôte de l'autre serveur par rapport au nom commun des certificats (CN)?

+1

[RFC 5246] (http://tools.ietf.org/html/rfc5246) est la spécification, si vous voulez les détails sanglants du protocole lui-même. – Nemo

+0

@Nemo, bon point de liaison à la RFC TLS (pour la liste des étapes). Je voudrais ajouter [RFC 5280 (PKIX)] (http://tools.ietf.org/html/rfc5280) pour la vérification du certificat (en vérifiant qu'il est approuvé) et [RFC 6125] (http://tools.ietf.org/html/rfc6125) pour vérifier que le certificat correspond à l'identité attendue du serveur. Bien que ces RFC aient tendance à être utilisées ensemble dans la plupart des cas, elles sont indépendantes et il peut exister d'autres modèles de vérification en fonction de l'application. – Bruno

Répondre

0

Comme l'indique @ user384706, il est entièrement configurable. Le scénario dont vous parlez est un scénario dans lequel une machine est à la fois un serveur et un client (et le client en ce qui concerne la connexion SSL/TLS).

Vous ne gagnez pas nécessairement beaucoup plus de sécurité en vérifiant que la connexion provient du CN (ou peut-être du nom alternatif du sujet) du certificat qui est présenté.

Il y a quelques problèmes:

  • Si le protocole SSL/TLS serveur est destiné à être utilisé par les clients qui sont à la fois les utilisateurs finaux et les serveurs eux-mêmes, vous allez avoir deux règles différentes en fonction du type de client que vous attendez d'un certificat particulier. Vous pouvez avoir une base de règles pour savoir si le certificat client a l'extension d'utilisation de clé étendue "server" ou seulement celle du client, mais cela peut devenir un peu complexe (pourquoi pas). Le client (qui est également un serveur) peut provenir d'un proxy, selon le réseau où il se trouve, auquel cas l'adresse IP source ne correspondra pas à ce que vous attendez.

  • Généralement, l'authentification client-certificat repose sur le fait que les clés privées sont supposées être protégées. Si une clé privée est compromise par un attaquant sur le serveur, l'attaquant peut également avoir la possibilité d'usurper l'adresse IP d'origine lors de la connexion (ou d'établir directement la connexion à partir du serveur compromis). Cela étant dit, les serveurs ont tendance à avoir des clés privées qui ne sont pas protégées par mot de passe, cela peut donc aider un peu au cas où il serait copié discrètement.

Je pense que certains outils sont si strictes qu'ils ne vérifient pas seulement le CN être le FQDN de la connexion entrante: ils vérifient également que c'est l'entrée inverse DNS pour l'adresse IP source. Cela peut entraîner un certain nombre de problèmes dans la pratique, car certains serveurs peuvent avoir plusieurs entrées CNAME dans le DNS, auquel cas le CN serait légitime, mais pas nécessairement le nom de domaine complet principal pour cette adresse IP.

Tout dépend vraiment du protocole global et de l'architecture générale du système.

RFC 6125 (Representation and Verification of Domain-Based Application Service Identity within Internet Public Key Infrastructure Using X.509 (PKIX) Certificates in the Context of Transport Layer Security (TLS)), récemment publié, considère ce scénario hors de portée.

La référence la plus proche que je peux penser est SIP.

0

Principalement ce que je vous demande est ... Est-ce que le serveur ne une vérification sur le nom d'hôte autre serveur vs le nom commun certificats (CN)?

Ceci est configurable.
Il est possible de configurer une vérification stricte et pas accepter des connexions d'entités envoyant un certificat que le CN ne correspond pas au nom de domaine complet malgré le fait que le certificat est considéré comme approuvé (par exemple, signé par une autorité de certification approuvée).
Il est possible de relâcher ceci et ne pas faire cette vérification et accepter le certificat ou déléguer la décision à l'utilisateur. Par exemple. IE affiche un avertissement contextuel indiquant que le nom du certificat ne correspond pas au nom de domaine complet. Voulez-vous continuer? Du point de vue de la sécurité, le plus sûr est de faire une vérification stricte

Questions connexes