Autenticación mutua utilizando certifcados

0

¿Cómo se utilizan los certificados digitales para habilitar autenticación mutua entre dos usuarios? Supongamos que, en un banco, los empleados deben autenticarse entre sí antes de transmitir datos confidenciales. ¿En qué puede ser útil un certificado digital en este escenario?

    
pregunta Shravan Varun 27.11.2018 - 07:13
fuente

1 respuesta

0

Cuando una parte se autentica utilizando certificados, esencialmente prueba que puede hacer uso de la clave privada asociada con la clave pública en el certificado, ya que asumió que la clave privada es secreta y solo la conoce el propietario del certificado.

Para demostrar el acceso a la clave privada, la parte autenticadora firma un desafío que está determinado, al menos en parte, por el par (para evitar los ataques de repetición). El interlocutor puede verificar la firma utilizando la clave pública dentro del certificado público.

Dado que una firma exitosa solo prueba el acceso a la clave privada para un certificado específico, el interlocutor también debe verificar que el certificado coincida con sus expectativas, es decir, que típicamente está firmado por una autoridad certificadora de confianza (CA), tiene un tema específico , no está vencido ni revocado y tiene las extensiones de uso de clave correctas.

Normalmente, dentro de TLS solo se realiza la autenticación del servidor, la firma forma parte del mensaje ServerKeyExchange y se realiza sobre varios datos que también incluyen el ClientHello.random determinado por el cliente. Por lo general, el cliente requiere que el nombre de host correcto coincida con los certificados de servidor Nombres alternativos del sujeto (SAN) o (antiguo y obsoleto) coincida con los asuntos del certificado CN.

Con la autenticación mutua, el servidor también solicita al cliente que se autentique. Esto se hace usando el mensaje CertificateRequest . Este mensaje también puede incluir una lista de CA que el servidor está dispuesto a aceptar como emisor del certificado del cliente para que la aplicación del cliente pueda elegir el certificado esperado. Si un cliente recibió este CertificateRequest y tiene un certificado de cliente coincidente, enviará un mensaje Certificate con este certificado. Además, enviará un mensaje CertificateVerify que incluye una firma creada con la clave privada de los certificados de cliente y que cubre todos los mensajes de intercambio que se han enviado hasta el momento, que incluyen el ServerHello.random determinado por el servidor.

La forma exacta en que se valida el certificado del cliente y su asociación con un cliente específico no se define, pero es común que cualquier certificado emitido por una CA específica sea aceptado y que el nombre o correo electrónico de los clientes se extraiga de los asuntos del certificado CN.

    
respondido por el Steffen Ullrich 27.11.2018 - 16:16
fuente

Lea otras preguntas en las etiquetas