Hackerii iau frecvent software – fie offline sau online – rearanjează și schimbă codul pentru a-l face rău, apoi îl încarcă online, astfel încât utilizatorii să descarce programul gratuit și codul rău intenționat pe care îl conține. Pentru a vă asigura că utilizatorii nu se confruntă cu această problemă, se utilizează semnarea codului. Semnarea codului este o metodă prin care programatorul inițial sau compania care a realizat programul semnează programul și, atunci când programul este instalat, acesta este autentificat pentru a se asigura că programul nu a avut codificare adăugată sau schimbată. Acest lucru nu necesită niciun software special din partea utilizatorului, iar utilizatorul poate verifica identitatea programatorului. În timp ce aceasta este concepută ca o formă de securitate, un hacker care creează un program sau găsește în jurul unei semnări poate crea încredere artificială și deplasată.
Programele sunt vândute în mod constant atât online, cât și offline. Când cineva cumpără un program offline de la un furnizor sau un comerciant de încredere, utilizatorul are foarte puține motive să-și facă griji că hackerii injectează cod rău intenționat în program. Acest lucru se datorează faptului că, cu excepția cazului în care dezvoltatorul de software a creat în mod intenționat un program periculos, nu există nicio modalitate ca cineva să modifice software-ul și să îl facă rău intenționat. Când un utilizator descarcă un program de pe Internet, nu există o astfel de garanție.
Pentru a proteja utilizatorii care cumpără sau descarcă programe online, este implementată semnarea codului. Semnarea codului este împărțită în două părți: dezvoltatorul și utilizatorul final. Dezvoltatorul folosește un hash criptografic, o operație unidirecțională care maschează codul programului și apoi combină cheia sa privată cu hash-ul. Aceasta creează o semnătură care este implantată în program.
Când utilizatorul primește programul, are loc a doua parte a procesului de semnare a codului. Programul examinează certificatul și o cheie publică pe care programatorul le-a plasat în program. Folosind cheia publică, programul poate rula același hash pe programarea curentă și apoi verifică versiunea originală cu versiunea curentă instalată. Dacă atât programul instalat, cât și cel original se sincronizează, acest lucru arată utilizatorului că nimic nu a fost modificat. Acest proces se face automat, iar programele necesare pentru această autentificare ar trebui să fie preinstalate pe sistemul de operare (OS) al computerului.
Deși semnarea codului este o metodă puternică de asigurare a securității, are defecte. Dacă utilizatorul descarcă un program de la un hacker, atunci autentificarea va arăta că programul original este intact. Acest lucru ar duce un utilizator la un fals sentiment de securitate; programul este făcut să fie rău intenționat, deci securitatea nu se realizează în acest sens. De asemenea, hackerii sofisticați pot ocoli hash-ul pentru a injecta codificare, făcând semnarea codului inutilă.