Estoy desarrollando una biblioteca distribuida como una DLL de Windows a la que pueden llamar los ejecutables de terceros. Espero que el EXE de llamada esté firmado digitalmente y necesito verificarlo.
No tengo control sobre la computadora en la que se ejecutará mi código. ¿Cómo validar si el ejecutable de llamada está firmado por una CA reconocida y confiable, como Verisign o Symantec, en la parte superior de la cadena de certificados? Necesito hacer esto sin conexión.
He considerado lo siguiente:
- Busque las cadenas "Verisign" y "Symantec" en el certificado tema.
- Compare los números de serie del certificado. contra una lista de números de serie. conocido para ser válido.
- Compare la huella digital del certificado con una lista de huellas digitales conocidas.
Sin embargo, sé que 1 y 2 pueden ser falsificados. Acerca de 3, no estoy seguro acerca de la suplantación de identidad, pero ¿qué tan confiable es cuando se considera la caducidad y la revocación?