¿Por qué los certificados de cliente no están protegidos contra la validación incorrecta de certificados del servidor?

1

Entiendo que la pregunta sobre los certificados de clientes y los ataques MITM se ha preguntado varias veces, pero no creo que este escenario específico haya sido respondido.

Mi suposición (aparentemente incorrecta) era que la presencia de un certificado de cliente permitiría al servidor asegurarse de que el cliente estaba consumiendo correctamente su certificado de servidor y no uno falso presentado por un MITM (al recibir una respuesta del cliente que solo el cliente debería haber enviado y que solo el servidor pudo haber enviado al cliente).

Algunas pruebas que he realizado muestran que si el cliente no verifica correctamente los certificados de servidor CA, entonces puede MITM.

Entiendo que una falla en el cliente para no identificar correctamente el certificado del servidor es el punto de error, pero ¿qué puede hacer un servidor para garantizar que un cliente cumple con esta obligación?

    
pregunta Yan 03.02.2014 - 18:02
fuente

2 respuestas

2

La autenticación del cliente basada en certificados en SSL toma el siguiente formato: el cliente muestra sus propias cadenas de certificados y calcula una firma sobre todos los mensajes de intercambio que se intercambiaron previamente. Estos mensajes de intercambio incluyen el mensaje donde el servidor envía su cadena de certificados al cliente.

De esa manera, el servidor puede asegurarse de que el cliente (el que posee el certificado de cliente mostrado) realmente haya visto el certificado de servidor correcto, no uno falso. En ese sentido, requerir la autenticación de cliente basada en certificados puede evitar un verdadero Man-in-the-Middle (si su "prueba" muestra otra cosa, entonces rompió SSL, o hay algo sutilmente incorrecto en su situación de prueba). Sin embargo, el diablo está en los detalles ...

Un ataque MitM es una doble personificación simultánea : el atacante ejecuta un servidor falso (cuando habla con el cliente) y un cliente falso (cuando habla con el servidor). Se evita un MitM verdadero siempre que el cliente o el servidor verifiquen correctamente el certificado del par, lo que implica validar el certificado (verificando que ha sido emitido por una CA confiable, y así sucesivamente) y también usando el nombre en el certificado como identidad del par (un cliente se conecta a alguna dirección IP pero el certificado es una garantía para un nombre de servidor ).

Sin embargo, hay otros tipos de ataques que, si bien no son MitM en un sentido estricto, pueden ser problemáticos. Por ejemplo, si el cliente no realiza una validación correcta del certificado del servidor, el atacante puede ejecutar un servidor falso y hablar con el cliente. El servidor genuino no está involucrado en absoluto! Ese tipo de cosas no es un MitM genuino, pero puede ser suficiente para recuperar algunos secretos del cliente (el cliente cree que se conectó al servidor correcto y luego envía datos confidenciales a través del túnel).

El servidor no puede hacer nada para garantizar que un cliente siempre valide el certificado del servidor correctamente, en particular cuando no se contacta con el servidor, ya que el cliente se está conectando a un servidor falso operado por un atacante. En el mejor de los casos, el servidor puede asegurarse, a través de la autenticación de cliente basada en certificados, de que el cliente para este momento utiliza la clave pública del servidor correcta para su criptografía.

    
respondido por el Tom Leek 03.02.2014 - 18:49
fuente
0

El punto clave es que un servidor falso no puede hacerse pasar por el cliente.

Suponga que desea conectarse a goodguy.com y enviar su certificado de cliente. Pero debido a un intento de ataque MITM, realmente se conecta a badguy.com, y debido a que no verifica el certificado del servidor, no se da cuenta y se autentica utilizando su certificado de cliente. En este punto, badguy.com puede mostrarle cualquier página web que les guste, por lo que podrían brindarle información engañosa e intentar capturar información suya. Pero lo que no pueden hacer es conectarse a goodguy.com y usar su certificado de cliente para hacerse pasar por usted.

La razón por la que badguy.com no puede retransmitir su autenticación es porque los certificados SSL se basan en la criptografía de clave pública. Cuando se autentica, prueba que tiene la clave privada asociada con el certificado, pero no revela la clave privada.

    
respondido por el paj28 03.02.2014 - 21:34
fuente

Lea otras preguntas en las etiquetas