¿Es posible solicitar la generación del par de claves del cliente en el navegador y enviar la clave pública a la CA del servidor para que se firme de forma transparente? Luego, instalando el certificado firmado en el navegador del usuario?Generar certificados del lado del cliente en el navegador y iniciar sesión en el servidor
Escenario:
- usuario abre https://examle.com/ página web, la identidad del servidor se verifica
- usuario solicita una creación de la cuenta
- par de claves es generado en el navegador del usuario y no reveló al servidor/CA
- pubkey se envía al servidor para firmar
- El servidor firma la clave y genera el certificado
- El certificado se envía al cliente y se instala en el navegador junto con la clave privada
La próxima vez que el cliente se conecte al servidor, su identidad se verificará en función del certificado del cliente.
Sería bueno si el servidor pudiera forzar/indicarle al cliente que proteja su clave privada usando la encriptación de contraseñas.
He visto banca en línea usando el applet de Java para esta tarea. ¿Es posible hacerlo usando capacidades de navegador nativo? La solución Apache/PHP o Node.js sería bienvenida.
¿cómo utilizo la clave privada para descifrar datos (en el caso de HTML5/kegen-tag)? – MhdSyrwan
El elemento '' está en desuso debido a [W3C] (http://w3c.github.io/html/sec-forms.html#elementdef-keygen), [WHATWG] (https: //html.spec.whatwg .org/multipage/forms.html # the-keygen-element) y [MDN] (https://developer.mozilla.org/en-US/docs/Web/HTML/Element/keygen) y está desactivado intencionalmente en Chrome a partir de la versión 49. –