En Golang TLS, si un intruso obtiene el certificado y la clave del cliente, ¿es posible MITM?

1

Todavía estoy aprendiendo cómo funciona TLS.

He creado una aplicación cliente-servidor de Golang de muestra, y luego he usado cfssl para generar certificados.

Ahora lo que hice es crear una CA, luego crear el certificado de cliente y servidor firmado por esa CA.

La configuración del servidor y del cliente es casi la misma, excepto la organización y la unidad organizativa.

Ahora el servidor recibirá el certificado público del servidor y su clave y el certificado de CA, y el cliente también recibirá el certificado público del cliente y su clave y el certificado de CA.

Mi pregunta es si un intruso puede copiar el certificado público del cliente y su clave, así como el certificado CA proporcionado, ¿podría realizar un ataque MITM entre el servidor y el cliente?

Editar: el escenario en el que estaba pensando es tanto el cliente como el servidor dentro de la red local, pero su computadora cliente tiene una conexión a Internet.

    
pregunta zer09 13.05.2017 - 06:56
fuente

1 respuesta

1

El certificado en TLS se utiliza para la autenticación, es decir, para verificar que uno está hablando con el interlocutor esperado. Esto es cierto para los certificados de servidor y cliente. Pero en la mayoría de los casos, solo se usa un certificado de servidor para asegurarse de disuadir al hombre en los ataques medios. Por lo tanto, la mayoría de los escenarios de MITM solo se preocupan por falsificar de alguna manera el certificado de servidores o robar la clave privada de los servidores para suplantarlo perfectamente.

En el caso de que solo la clave privada de los certificados del cliente esté comprometida, pero no la clave privada de los certificados del servidor, no es posible realizar un ataque en el medio, siempre que el cliente valide correctamente el certificado de los servidores. Y no importa si ambos certificados están firmados por la misma CA o no.

Pero, si el servidor usa el certificado del cliente para autenticar al cliente y se basa en una autenticación exitosa para permitir actividades específicas, entonces es posible otro ataque. Dado que el atacante ha comprometido la clave privada del certificado del cliente, ahora puede suplantar perfectamente al cliente y realizar cualquier acción en el servidor que esté permitida para este certificado.

La situación es diferente si el cliente se basa erróneamente solo en la cadena de confianza para la validación del certificado y no comprueba que el asunto del certificado de los servidores coincida con el nombre de los servidores. Este error de no revisar el tema o de no verificarlo correctamente se puede encontrar a menudo en el pasado. En este caso, el atacante podría usar el certificado de cliente comprometido para falsificar el certificado del servidor original dentro de un hombre en el ataque central porque este certificado está firmado por una CA de confianza y el cliente no detecta el sujeto incorrecto.

    
respondido por el Steffen Ullrich 13.05.2017 - 09:21
fuente

Lea otras preguntas en las etiquetas