Autenticación de CA privada y del servidor cliente

1

Tengo una aplicación privada, que tiene un servidor y muchos clientes, y quiero usar autenticación bidireccional (autenticación de cliente AKA) Uso el servidor Tomcat y la herramienta Java para crear certificados TLS.

Si creo una autoridad de certificación y creo un certificado (firmado por la CA) para el servidor, y lo preinstalo para todos los clientes, entonces pueden autenticar el servidor (aunque no tuve que firmarlo) la CA, pero de todos modos) /

Si creo un certificado de cliente, lo firmo con la CA y luego lo instalo en el cliente:

  1. ¿El servidor necesita tener el certificado del cliente (y la CA) o solo la CA en el almacén de confianza? Y con eso quiero decir: ¿Hay algún lugar donde deba "Recordar" el certificado del cliente y verificarlo con un archivo existente (que, por supuesto, debe coincidir uno a uno con el certificado que el cliente envió)

  2. ¿O es suficiente con solo comprobar la firma de la CA en el certificado, lo que provoca que solo exista una copia del certificado del cliente en mi sistema y criptográficamente? Se garantiza que, si la firma del CA existe (y valida) en el certificado que me envió un cliente: es el cliente

pregunta Yoav R. 05.05.2015 - 00:14
fuente

1 respuesta

0

Su Opción 2 es suficiente y criptográficamente segura. Si la firma de la CA en el certificado del cliente se valida (y el par de llaves de firma de la CA no se ha revocado debido a un compromiso), entonces, puede asumir que el certificado es auténtico, es decir, fue emitido por su CA y no ha sido manipulado. . Recuerde que una firma es un hash cifrado de todo el certificado, por lo que si se cambia un solo carácter, la firma no se validará.

Sin embargo, eso no le dice nada sobre quién se lo envió. Los certificados son públicos, todos pueden tener una copia de todos los demás, por lo que Alice podría enviarle el certificado de Bob y decir que es Bob. Para autenticar al cliente, deben probar que tienen la clave privada correspondiente. Recuerde que los certificados solo contienen claves públicas , las claves privadas coincidentes nunca se convierten en certificados y se almacenan por separado. Esto se puede hacer haciendo que el cliente envíe una parte de los datos que firmaron junto con el certificado.

Acerca de su Opción 1 : en una infraestructura de clave pública completa en la que los usuarios finales pueden encriptar entre sí y verificar las firmas de los demás, todos necesitan acceso a los certificados de clave pública de todos los demás. Esto generalmente se hace haciendo que la CA guarde una copia de los certificados de todos y los muestre en un lugar público como en un sitio HTTP o en un directorio LDAP público.

    
respondido por el Mike Ounsworth 05.05.2015 - 02:28
fuente

Lea otras preguntas en las etiquetas