html security html5 ssl

Etiqueta de Keygen en HTML5



security ssl (6)

El documento es útil para explicar en qué consiste el elemento keygen. Su requerimiento surge en la WebID que tal vez se entiende como parte de la Web Semántica de Datos Vinculados como se ve en https://dvcs.w3.org/hg/WebID/raw-file/tip/spec/index-respec.html#creating-a-certificate 2.1.1

Así que me encontré con esta nueva etiqueta en HTML5, <keygen> . No puedo entender para qué sirve, cómo se aplica y cómo podría afectar el comportamiento del navegador.

Entiendo que esta etiqueta es para el cifrado de formularios, pero ¿cuál es la diferencia entre <keygen> y tener un certificado SSL para su dominio? Además, ¿cuál es el atributo de challenge ?

No estoy planeando usarlo, ya que está lejos de implementarse en una gama aceptable de navegadores, pero tengo curiosidad sobre qué EXACTAMENTE esta etiqueta hace. Todo lo que puedo encontrar es una vaga documentación cortante sin ejemplos reales de uso.

Editar:

He encontrado un documento MUY informativo, here . Esto se ejecuta a través de la implementación de la etiqueta keygen tanto del lado del cliente como del lado del servidor.

Sigo teniendo curiosidad sobre cuál sería el beneficio de esto sobre un certificado SSL de dominio.


Esto podría ser útil para sitios web que brindan servicios, donde las personas tienen que pagar por el servicio, como video a pedido, o sitio web de noticias para profesionales como Bloomberg. Con estas teclas, las personas solo pueden ver el contenido en su computadora y no en las computadoras simultáneas. Usted decide cómo se almacenan y procesan los datos. puede especificar un archivo .asp o .php que recibirá las variables y su archivo almacenará esa clave en el perfil del usuario. De esta manera, los usuarios no podrán iniciar sesión desde una computadora diferente si lo desean. Puede obligarlos a consultar su correo electrónico para autorizar esa nueva computadora, al igual que steam. Básicamente, permite individualizar el acceso al servicio, si su modelo de licencia es por máquina, como el sistema operativo.

Puede consultar las especificaciones aquí: http://www.w3.org/TR/html-markup/keygen.html


Obsoleto

Esta característica ha sido eliminada de los estándares web. Aunque algunos navegadores aún pueden soportarlo, está en proceso de descarte. Evite usarlo y actualice el código existente si es posible. Tenga en cuenta que esta característica puede dejar de funcionar en cualquier momento.

Source


SSL se trata de "identificación del servidor" o "autenticación del servidor Y del cliente (autenticación mutua)".

En la mayoría de los casos, solo el servidor presenta su certificado de servidor durante el protocolo de enlace SSL para que pueda asegurarse de que este es realmente el servidor al que espera conectarse. En algunos casos, el servidor también quiere verificar que realmente eres la persona que pretendes ser. Para esto, necesitas un certificado de cliente.

La etiqueta <keygen> genera un par de claves pública / privada y luego crea una solicitud de certificado. Esta solicitud de certificado se enviará a una Autoridad de certificación (CA). La CA crea un certificado y lo envía de vuelta al navegador. Ahora puede usar este certificado para la autenticación de usuario.


Si buscas "exactamente", te recomendaría leer el RFC .

El elemento keygen es para crear una clave para la autenticación del usuario, mientras que SSL está preocupado por la privacidad de la comunicación y la autenticación del servidor. Citando de la RFC

Esta especificación no especifica cómo se usará la clave privada generada. Se espera que después de recibir la estructura SignedPublicKeyAndChallenge (SPKAC), el servidor genere un certificado de cliente y lo vuelva a ofrecer al usuario para su descarga; este certificado, una vez descargado y almacenado en el almacén de claves junto con la clave privada, puede usarse para autenticarse en servicios que usan TLS y autenticación de certificado.


Te estás perdiendo algo de historia. keygen primero fue compatible con Netscape cuando todavía era un navegador relevante. IE, OTOH, admitió los mismos casos de uso a través de sus API ActiveX. Opera y WebKit (o incluso KHTML), reacios a la ingeniería inversa de la API completa de Win32, en su lugar, keygen ingeniería inversa.

Se especificó en Web Forms 2.0 (que ahora se ha fusionado en la especificación HTML), con el fin de mejorar la interoperabilidad entre los navegadores que lo implementaron.

Desde entonces, el equipo de IE ha reiterado su negativa a implementar keygen , y la especificación (para evitar convertirse en ciencia ficción seca) se ha modificado para no requerir una implementación real:

Nota: Esta especificación no especifica qué tipos de teclas son compatibles con los agentes de usuario: es posible que un agente de usuario no admita ningún tipo de clave.

En resumen, este no es un elemento nuevo, y a menos que pueda ignorar IE, probablemente no sea lo que quiere.