Génération de certificats côté client dans le navigateur et de la signature de du serveur

Est-il possible de demander la génération du client, de la paire de clés dans le navigateur et envoyer la clé publique sur le serveur d'autorité de certification pour signer de manière transparente? Puis installez le certificat signé au navigateur de l'utilisateur?

Scénario:

  1. Utilisateur ouvre https://examle.com/ page web, serveur d'identité est vérifiée
  2. Utilisateur demande de création de compte
  3. Paire de clés est générée dans le navigateur de l'utilisateur et ne révèle pas de serveur/CA
  4. Pubkey est de l'envoyer au serveur pour la signature
  5. Serveur signes de la clé et génère un certificat
  6. Certificat est envoyé au client et installé dans le navigateur avec la clé privée

Prochaine fois que le client se connecte au serveur, son identité est vérifiée basée sur certificat client.

Ce serait bien si le serveur pourrait forcer/conseil au client de protéger sa clé privée à l'aide de cryptage de mot de passe.

J'ai vu les services bancaires en ligne à l'aide de l'applet java pour cette tâche. Est-il possible de le faire en utilisant navigateur natif des presses? Apache/PHP ou Node.js la solution serait la bienvenue.

OriginalL'auteur Kitten | 2012-02-08