El diagrama a continuación ilustra el encadenamiento de certificados digitales hasta un Certificado de Raíz de confianza pública:
He estado investigando cómo se utilizan las autoridades raíz de confianza (como GlobalSign o Verisign) para autenticar las claves públicas de alguien para identificar a esa persona como un editor de confianza. Creo que me estoy perdiendo algo, por favor, avíseme si estoy entendiendo mal algo aquí.
Por lo tanto, la firma digital implica el hashing de algunos datos (resumen del mensaje) con una clave privada de un editor de confianza. Los consumidores de esos datos pueden usar la clave pública correspondiente del editor de confianza para verificar los datos de hash. La verificación de la clave pública (certificado) del editor de confianza hasta una autoridad raíz de confianza establece la confianza de que el editor de confianza es quien dice ser, ¿correcto?
Para que funcione esta cadena de confianza, entiendo la importancia de mantener privadas las claves privadas. Pero no veo cómo esto ofrece confianza o seguridad en una máquina comprometida.
Supongamos que soy un atacante malintencionado que intenta falsificar a un usuario en una máquina que ya tengo el control. Como cualquier buen malware, voy a querer que el usuario piense que lo que están haciendo es de confianza. Así que parece que todo lo que necesito hacer es eliminar los certificados válidos relevantes en el Almacén de certificados de Windows de CA raíz de confianza y reemplazarlos con certificados autofirmados falsos que parecen ser válidos. Incluso podría volver a crear una cadena de certificados de confianza, como en la imagen de arriba.
Esto todavía no me parece demasiado descabellado. Entonces, para completar la falsificación, tendría que interceptar los datos válidos y volver a firmarlos con mi certificado de editor falso, "confiable" hasta la "CA raíz". Esto parece mucho más fácil que robar la clave privada de un editor.
EDITAR: ¿Hay alguna manera de protegerse contra un ataque tan dirigido? Para mi aplicación específica, necesito saber con seguridad si un certificado es confiable, pero es posible que no sea posible en una máquina comprometida.