2010-05-05 6 views
1

J'ai démarré un projet basé sur la communication du serveur client dans Java. Ce que je fais est le client et le serveur ont leurs propres certificats autosignés. Dans la communication initiale, le client et le serveur échangeront leurs certificats. Le serveur doit vérifier le certificat des clients et accorder l'authentification. Où j'ai frappé était sur quel serveur de sujet peut valider ou invalider un client particulier ..? Je suis incapable de procéder à partir d'ici. Alors s'il vous plaît l'un de vous peut donner une brève explication à ce sujet? Si possible, un pseudo-code en java ..?Authentification basée sur le certificat auto-signée

Répondre

1

auto-signé certs ne peuvent pas être validées par des méthodes normales PKI - à savoir, vérifier les chaînes cert jusqu'à un point d'ancrage de confiance, ne figure pas sur une liste de révocation, etc.

Lorsque vous utilisez l'auto signé certs, la configuration initiale impliquent généralement l'utilisation d'un mécanisme hors bande pour échanger les certificats et les empreintes digitales afin de les vérifier. Ces certs peuvent ensuite être ajoutés à un magasin de confiance et utilisés par votre application. Bien sûr, ce processus hors-bande devra être répété chaque fois que l'un des certificats auto-signés est renouvelé. Cette approche peut convenir à quelques applications qui ont besoin de communiquer en toute sécurité, mais il est assez évident que l'approche des certificats autosignés ne s'adapte pas.

Une autre approche consisterait à utiliser quelque chose comme le wrapper openssl CA.pl pour configurer une mini-CA et émettre des certificats clients. Ces certs émis seraient alors tous liés à la racine unique. Cette racine doit toujours être communiquée de manière sécurisée à toutes les parties utilisatrices, mais pas aux autres certificats émis par l'autorité racine.

MISE À JOUR: (en réponse à la question dans les commentaires ci-dessous)

Voici quelques façons d'obtenir une empreinte cert:

  • utilisant OpenSSL: OpenSSL x509 -sha1 -dans cert.pem - noout -fingerprint
  • sur les fenêtres enregistrer en tant que fichier .cer puis aller double-cliquez ensuite sur l'onglet détails
  • utilisant cet outil: online cert decoder

Pour améliorer la sécurité, le propriétaire du certificat peut utiliser un outil différent du vérificateur de cert.

+0

Merci beaucoup .. J'ai quelque chose .. Je voudrais savoir comment pouvons-nous vérifier en utilisant des empreintes digitales pour authentifier les clients. Je ne souhaite pas utiliser d'autorité de certification tierce dans mon application. Donc, je n'utilise pas de certificats OpenSSL. Comment pouvons-nous authentifier les clients en utilisant Thumbprint? –

+0

@Tadi Vijay Kumar: J'ai ajouté quelques informations sur la façon d'obtenir une empreinte digitale de certificat. J'espère que cela t'aides. – bignum

Questions connexes