Gli hacker spesso prendono software, offline o online, riorganizzano e modificano il codice per renderlo dannoso, quindi lo caricano online in modo che gli utenti scarichino il programma gratuito e il codice dannoso che contiene. Per garantire che gli utenti non incorrano in questo problema, viene utilizzata la firma del codice. La firma del codice è un metodo mediante il quale il programmatore originale o l’azienda che ha creato il programma firma il programma e, quando il programma viene installato, viene autenticato per garantire che al programma non sia stata aggiunta o modificata alcuna codifica. Ciò non richiede alcun software speciale da parte dell’utente e l’utente è in grado di verificare l’identità del programmatore. Anche se questo è inteso come una forma di sicurezza, un hacker che crea un programma o scopre una firma può creare fiducia artificiale e mal riposta.
I programmi sono costantemente venduti sia online che offline. Quando qualcuno acquista un programma offline da un fornitore o rivenditore di fiducia, l’utente ha pochissime ragioni per preoccuparsi che gli hacker inseriscano codice dannoso nel programma. Questo perché, a meno che lo sviluppatore del software non abbia creato intenzionalmente un programma pericoloso, non c’è modo per qualcuno di manomettere il software e renderlo dannoso. Quando un utente scarica un programma da Internet, non esiste tale garanzia.
Per proteggere gli utenti che acquistano o scaricano programmi online, viene implementata la firma del codice. La firma del codice è divisa in due parti: lo sviluppatore e l’utente finale. Lo sviluppatore utilizza un hash crittografico, un’operazione unidirezionale che maschera il codice del programma e quindi combina la propria chiave privata con l’hash. Questo crea una firma che viene impiantata nel programma.
Quando l’utente riceve il programma, si verifica la seconda parte del processo di firma del codice. Il programma esamina il certificato e una chiave pubblica che il programmatore ha inserito nel programma. Utilizzando la chiave pubblica, il programma è in grado di eseguire lo stesso hash sulla programmazione corrente, quindi verifica l’originale rispetto alla versione corrente installata. Se sia il programma installato che l’originale si sincronizzano, questo mostra all’utente che nulla è stato modificato. Questo processo viene eseguito automaticamente e i programmi necessari per questa autenticazione dovrebbero essere preinstallati sul sistema operativo (SO) del computer.
Sebbene la firma del codice sia un metodo potente per garantire la sicurezza, presenta dei difetti. Se l’utente sta scaricando un programma da un hacker, l’autenticazione mostrerà che il programma originale è intatto. Ciò porterebbe un utente a un falso senso di sicurezza; il programma è fatto per essere dannoso, quindi la sicurezza non viene raggiunta in questo senso. Gli hacker più sofisticati possono anche aggirare l’hash per iniettare codice, rendendo inutile la firma del codice.