¿Sería posible usar una cookie para almacenar el Certificado de Cliente SSL?

2

Últimamente, estaba leyendo ese artículo sobre el certificado de cliente SSL.

¿Por qué nadie utiliza el Certificado de Cliente SSL?

La respuesta fue a esa pregunta:

  

En el estado actual, esta excelente idea se representa completamente.   Inútil por la terrible usabilidad y la naturaleza completamente desapegada:   Esta es una característica del navegador. Es dependiente del navegador sin una forma de   Los sitios para controlarlo: para guiar a los usuarios a través de los pasos.

     

Para que esto funcione, los sitios necesitan más control.

     

Sin darles acceso a tus llaves.

Básicamente, es un problema de usabilidad.

Eso me hizo pensar en las cookies. Las cookies son de almacenamiento del lado del cliente y no hay nada más fácil de usar que ellas. De hecho, la mayoría de los usuarios ni siquiera saben que existen. Entonces, pensé que la cookie podría ayudar aquí.

La parte que me interesa es la autenticación de 2 factores.

  • Algo que sabes : tu contraseña
  • Algo que tienes : tu clave privada para el "certificado"

¿Sería posible usar una cookie de alguna manera inteligente para proporcionar 2 factores de autenticación almacenando un "certificado" en ellos?

    
pregunta Gudradain 13.08.2014 - 03:22
fuente

1 respuesta

2

Una cookie solo tiene una función: se envía de vuelta al servidor. Se almacena en el cliente, pero el cliente no entiende su contenido; y el cliente no lo usa, excepto devolviéndolo.

Lo que básicamente explica que la "respuesta" que usted cita no es una respuesta real: trata de evitar el problema diciendo que el problema sería bueno. El objetivo principal de las cookies es ser el almacenamiento del lado del cliente bajo el control del servidor; todo el punto de los certificados del lado del cliente y las claves privadas es el almacenamiento del lado del cliente que NO está bajo el control del servidor.

De hecho, los certificados del lado del cliente no tienen valor real cuando solo existe el cliente y el servidor. Los certificados tienen sentido cuando una tercera entidad entra al baile: la Autoridad de Certificación . Un certificado utiliza criptografía asimétrica para que el cliente pueda demostrar su identidad al servidor sin permitir que el servidor se haga pasar por el cliente; esto contrasta con los métodos de autenticación de mostrar la contraseña en los que el servidor necesariamente aprende la contraseña del usuario en el proceso. Esa propiedad de los certificados es de alguna utilidad solo si el servidor no fue el que emitió (firmó) el certificado en primer lugar; de lo contrario, un servidor deshonesto puede emitir certificados de usuario falsos a voluntad.

Por lo tanto, la falta de certificados del lado del cliente en la Web tal como la conocemos en este momento no es realmente un "problema de usabilidad"; pertenece más bien a la idea de que los certificados no tienen un valor adicional por la forma en que los sitios web manejan la autenticación (es decir, cada sitio maneja sus propias necesidades de autenticación). La autenticación delegada (como OAuth ) puede cambiar este modelo, que luego solicitará indirectamente un mayor despliegue de certificados del lado del cliente, con mejores interfaces de usuario.

    
respondido por el Thomas Pornin 13.08.2014 - 03:55
fuente

Lea otras preguntas en las etiquetas