Ho un'app per Windows C++. Firmo il nostro programma di installazione e il mio eseguibile, ma attualmente non firmo le mie DLL (come zlib1.dll). Non è un grosso problema firmare anche quelli, ma qualcuno può spiegare qual è il vantaggio? Ad esempio, il mio programma apparirà diverso dal software AV o firewall se tutte le sue dipendenze sono firmate? Gli utenti riceveranno avvertimenti diversi?Devo firmare le mie DLL?
risposta
Il tuo programma non sarà diverso dall'AV o dal firewall. Controlleranno le firme sul tuo eseguibile che hai già firmato. Firmare le tue DLL ha più senso quando tu stesso verifichi quelle firme prima di caricarle. Questo garantisce l'integrità di tutte le DLL in fase di runtime. È una pratica sicura raccomandata per firmare tutti i file binari inviati e convalidare le loro firme in fase di runtime. Se le tue DLL devono essere utilizzate da altri prodotti, devi firmarle in quanto tali prodotti vorranno verificarne l'autenticità e l'integrità.
Che dire del collegamento implicito? C'è un modo per verificare la firma in quell'impostazione, o è necessario convertire tutti i carichi DLL in collegamenti espliciti (ad esempio chiamate LoadLibraryEx)? –
Ottima domanda, Brent. Mi piacerebbe sapere la risposta. – twk
Non penso che sia possibile verificare le firme per le DLL implicitamente collegate poiché le DLL verranno caricate prima che il codice venga avviato. Tuttavia, conosco un prodotto che carica esplicitamente le DLL con cui si collega implicitamente solo per verificare la firma . – 341008
Perché non firmarli? Hai già pagato il certificato, quindi ci vogliono solo pochi secondi durante la compilazione per firmarlo. Perché saltarlo? – Tim
Tim, probabilmente lo farò comunque, sono principalmente curioso di sapere qual è l'effetto. – twk