Suponga que tiene un par de cliente / servidor que desea configurar una conexión segura utilizando certificados X509 v3 y criptografía asimétrica.
El cliente envía una cadena de certificados (por ejemplo, CA raíz: C1 , CA intermedia: C2 y certificado de cliente: C3 ) y el servidor tiene que validar la cadena (y luego, por supuesto, viceversa).
Hasta esta mañana, mi entendimiento fue que el servidor necesita conocer (al menos) C1 y tenerlo en un almacén de confianza, la idea es que la CA raíz es la entidad en la que todas las partes participantes están dispuestas a confiar.
Después de encontrar ejemplos en los que esto se maneja de manera diferente, ahora estoy confundido y tengo algunas dudas.
En un ejemplo, encontré que el servidor solo tenía C3 (o solo C2) en su almacén de confianza y estaba felizmente aceptando la solicitud de conexión que contiene el resto de la cadena (en realidad toda la cadena) del cliente.
Así que me gustaría saber si este es un enfoque que
- ¿Se puede considerar seguro?
- ¿está de acuerdo con las normas relevantes?
(Por supuesto que entiendo que depende, en cierta medida, de la administración del servidor decidir qué partes son confiables. La pregunta apunta a un desarrollador que debe implementar la validación).