Estoy investigando la seguridad de un servicio que utiliza certificados de clientes para autenticar solo a personas que llaman conocidas. Ejecutamos un servicio de API web de C # que verifica cada asunto del certificado de solicitud si está en la lista blanca. También verifica que el certificado sea válido (validación de la cadena de certificados).
Pero si un atacante obtiene un certificado con el mismo nombre de sujeto que emite alguna autoridad de certificación, puede atacar nuestro servicio, ¿verdad? Esto me parece menos seguro. Los certificados SSL del servidor son seguros porque los usuarios están llegando a un dominio explícitamente y el certificado SSL que utiliza el servidor contiene el nombre de dominio validado por una autoridad de certificación. A menos que se comprometa el certificado del servidor y algunas formas en que el dominio al que el usuario intenta acceder está comprometido, el servidor es seguro y el cliente puede confiar en el servidor.
Pero confiar en un cliente me parece menos seguro. ¿Mi entendimiento es correcto o me estoy perdiendo algo?