¿Cómo funciona la autenticación del cliente en https?

1

Recientemente escribí una aplicación que llama a un servicio de terceros para realizar algún trabajo. Este servicio de terceros requiere que autentique la llamada del cliente utilizando un certificado de cliente. Para esto, usé los métodos C # provistos por .NET para realizar esto (agregando "client.pfx" a los certificados de cliente con la solicitud).

Una de mis preocupaciones es que la API de este tercero menciona que debo realizar esta llamada segura utilizando un URI que han proporcionado como parte de su proceso de autenticación. Para mí, esto parece terrible porque un atacante podría proporcionar direcciones URL arbitrarias y recibir las solicitudes, y a su vez, el contenido de client.pfx.

Mi pregunta es, ¿cómo funciona esta autenticación de cliente (desde una especie de visión general)? ¿Se envía todo el certificado como parte de la solicitud? ¿Es solo una firma de la solicitud firmada con la clave privada en client.pfx? Me pregunto si mi preocupación está justificada.

¡Gracias!

    
pregunta TheTFo 13.06.2018 - 16:36
fuente

1 respuesta

3

La autenticación del cliente mediante un certificado de cliente es muy similar a la autenticación común del servidor mediante un certificado de servidor.

Esencialmente, el cliente tiene un certificado público que contiene la clave pública y el cliente tiene la clave privada correspondiente. A continuación, el cliente realiza la autenticación:

El servidor puede validar la firma creada por el cliente utilizando la clave pública contenida en el certificado del cliente. El servidor también valida el certificado en sí mismo de la forma habitual, es decir, verifica si una cadena de certificados puede construirse en un certificado de CA de confianza local, verificar la caducidad, revocación, uso de claves, etc.

Para evitar la reproducción posterior de la misma firma, el cliente no puede elegir qué datos se firmarán, pero todos los datos se enviarán y se recibirán hasta el momento en el protocolo de enlace TLS actual, que incluye también datos aleatorios del servidor.

    
respondido por el Steffen Ullrich 13.06.2018 - 17:37
fuente

Lea otras preguntas en las etiquetas