Imagine que tenemos una aplicación que intenta establecer una conexión segura a un servidor mediante SSL. Ahora queremos que el usuario se autentique con un certificado de cliente que almacena en un almacén de claves seguro.
Entonces, si leo esta especificación en el servidor está enviando su certificado durante el protocolo de protocolo de enlace y puede solicitar un certificado del cliente con una solicitud de certificado, si es necesario. Ahora el usuario envía su certificado al servidor tal como lo hizo el servidor antes, lo que significa en texto sin formato ya que aún no se han intercambiado las claves.
Lo que no estoy obteniendo ahora es, si el certificado del cliente se envía en texto sin formato y el certificado no está vinculado a un dispositivo específico y la clave pública del cliente dentro de su certificado no se utiliza para generar la clave simétrica que es utilizado para el cifrado más tarde, ¿Por qué no es posible que un atacante olfatee el protocolo de protocolo de enlace entre el cliente y el servidor, suponiendo que esté sentado en la misma LAN inalámbrica que su víctima? De esta forma, podía ver el certificado del cliente, copiarlo y usarlo por su cuenta.
Entonces, ¿cómo se evita este escenario? Debido a que el atacante no podría cambiar algunos datos del certificado ya que no tiene la clave privada con la que se firmó el certificado, pero ¿no sería suficiente copiar el certificado para robar la identidad de sus víctimas? ¿Que me estoy perdiendo aqui? ¿Está el certificado vinculado al dispositivo después de todo? Pero pensé que no, ya que solo contiene información sobre el cliente y su clave pública.
Pensé que sería una mejor idea enviar el certificado del cliente después del protocolo de intercambio cuando se intercambió una clave simétrica y los datos de la aplicación están cifrados. Sé que también puede usar credenciales de usuario adicionales como un nombre de usuario y una contraseña, pero ahora estoy hablando de la seguridad del certificado del cliente.
Entonces, ¿qué piensas?