¿Cómo forzar un protocolo de enlace SSL completo del cliente e ignorar el protocolo de enlace SSL del cliente abreviado? ¿Es inseguro?

0

Comprendo el flujo de intercambio de SSL , pero me enfrento a un problema lógico con un protocolo de enlace abreviado de SSL.

Caso de uso : El usuario se autentica en el sistema de maneras comunes, como contraseñas. Pero para algunas acciones, se puede solicitar al usuario que presente un certificado digital para confirmar su identidad. Eso tiene implicaciones legales para algunos países como Brasil (ref. enlace ), usar un certificado digital es necesario para confirmar que esto persona (o empresa) es de hecho la persona que posee ese número de identidad nacional.

Después de seleccionar el certificado del cliente usando el protocolo de enlace SSL, es necesario validarlo con la aplicación para saber que es confiable y coincide con cualquier usuario del sistema que use algo como el Número de identificación nacional, que podría estar en el Nombre común u otro campo de Certificado (por ejemplo, < a href="https://pt.wikipedia.org/wiki/E-CPF"> enlace para el ejemplo brasileño).

Pero, por alguna razón, el usuario selecciona un certificado incorrecto. Es un certificado válido pero, no coincide con el usuario, se envía un mensaje de error, pero debo permitir otro proceso de selección de certificado (ssl handshake) para este usuario. Algunos usuarios podrían tener más de un certificado en su PC.

Enesteescenario,paraseleccionarotrocertificado,elusuariodebecerrarelnavegadoryvolveraabrirlo,peroofreceunaexperienciadeusuarionegativayquieromejorarlo.

Lasoluciónesmuyclara,necesitorealizarunapretóndemanoscompletoparacadasolicitud,porloquepermitealusuarioseleccionarotra.

¿Perocómohacerlo?

Lapreguntaemásrelevantequeencontréfue Evitando el protocolo de enlace SSL para cada llamada Es exactamente lo contrario de lo que quiero hacer.

Estas dos definiciones son cruciales para la comprensión general:

  
  • El apretón de manos completo es lo que hacen un cliente y un servidor cuando no se conocen (no han hablado previamente, o eso fue largo   hace). En el apretón de manos completo, los certificados se envían, y asimétricos   se produce criptografía (RSA, Diffie-Hellman ...).
  •   
  • El apretón de manos abreviado es lo que un cliente y un servidor se recuerdan entre sí; De manera más precisa, recuerdan los algoritmos y claves que   establecido en un apretón de manos completo anterior, y acepta reutilizarlos   (técnicamente, reutilizan el "secreto maestro" y se derivan de él   claves de cifrado para esta conexión).
  •   

Publiqué en el foro oficial de mi servidor web ( enlace ) pero están marcados mi pregunta es inválida ** diciendo que es un problema del lado del cliente. ¿Pero es? ** Puedo liberar cualquier información del navegador, cerrar la pestaña y deshabilitar mantener vivo, pero un segundo saludo no abre el indicador de certificado hasta que cierre el navegador.

Mi imagen de abajo está usando Chrome, por ejemplo, y no tiene la opción "recordar mi decisión", Firefox. Lo mismo sucede con Edge, Opera, Edge, etc. ** ¿Es un estándar? **

Supongo que puede ser controlado por el servidor, solicitando un nuevo protocolo de enlace SSL completo. Hice algunas intervenciones para intentar resolverlo por mi cuenta, pero no tuve éxito

  • en el lado del cliente:

    • Borrar todos los datos, incluso el historial.
    • Abrir en otro subdominio sin cookies
  • en el lado del servidor:

    • Enviar encabezado "Conexión: cerrar"
    • Desactivar keep-alive

Cerrar el navegador es el único efectivo para un nuevo Protocolo SSL, pero promoverá una mala experiencia de usuario.

Debería haber una forma de renegociar esta autenticación.

    
pregunta LeonanCarvalho 13.04.2017 - 20:28
fuente

0 respuestas

Lea otras preguntas en las etiquetas