2011-01-17 24 views
8

Tengo una aplicación C++ para Windows. Firmo nuestro instalador y mi ejecutable, pero actualmente no firmo mis archivos DLL (como zlib1.dll). No es gran cosa firmarlos también, pero ¿alguien puede explicar cuál es el beneficio? Por ejemplo, ¿mi programa aparecerá de manera diferente a AV o firewall si todas sus dependencias están firmadas? ¿Los usuarios recibirán diferentes advertencias?¿Debo firmar mis archivos DLL?

+0

¿Por qué no los firmas? Ya pagó el certificado, por lo que solo se necesitan unos segundos durante la compilación para firmarlo. ¿Por qué omitirlo? – Tim

+1

Tim, probablemente lo haga de todos modos, principalmente tengo curiosidad sobre cuál es el efecto. – twk

Respuesta

6

Su programa no aparecerá diferente a AV o firewall. Comprobarán si hay firmas en el ejecutable que ya ha firmado. Firmar sus dlls tiene más sentido cuando usted mismo verifica esas firmas antes de cargarlas. Esto asegura la integridad de todos los dlls en tiempo de ejecución. Es una práctica segura recomendada firmar todos los binarios que envía y validar sus firmas en tiempo de ejecución. Si sus dlls van a ser usados ​​por otros productos, entonces debe firmarlos ya que esos productos querrán verificar su autenticidad e integridad.

+5

¿Qué pasa con la vinculación implícita? ¿Hay alguna forma de verificar la firma en esa configuración o es necesario convertir todas las cargas DLL en enlaces explícitos (es decir, llamadas LoadLibraryEx)? –

+1

Gran pregunta, Brent. Me encantaría saber la respuesta. – twk

+1

No creo que sea posible verificar firmas para dlls vinculados implícitamente, ya que los dlls se cargarán antes de que se active el código. Sin embargo, sí sé de un producto que carga explícitamente los dlls con los que vincula implícitamente solo para verificar la firma . – 341008

Cuestiones relacionadas