Cum să semnați un fișier EXE utilizând un certificat Code Signing?

Semnează fișierul Exe

Dacă dezvoltați sau distribuiți software pentru Windows, înțelegerea modului de semnare a unui fișier EXE asigură că aplicațiile dvs. sunt de încredere și lipsite de avertismente de securitate. Semnarea codului verifică autenticitatea și integritatea unui executabil, asigurând utilizatorii că software-ul provine dintr-o sursă legitimă și nu a fost modificat. Fără o semnătură digitală validă, Windows poate bloca aplicația sau afișa alerte de securitate, făcând dificilă câștigarea încrederii utilizatorilor.

Acest articol explică cum să semnați un executabil, acoperind totul, de la cerințe și instrucțiuni pas cu pas până la verificare și beneficiile semnării unui fișier EXE.

Până la sfârșitul acestui ghid, veți ști cum să obțineți și să instalați un certificat de semnare a codului, să utilizați signtool.exe de la Microsoft pentru a semna un fișier EXE și să verificați dacă executabilul dvs. este semnat corect. Să începem.


Cerințe înainte de semnarea unui EXE sau a unei aplicații

Înainte de a semna un fișier EXE, trebuie să aveți instrumentele și configurația potrivite. Semnarea codului nu înseamnă doar aplicarea unei semnături digitale. Aceasta necesită un certificat valid, o stocare sigură a cheilor și un software de semnare adecvat. Mai jos, vom trece în revistă cerințele cheie pas cu pas, acoperind totul, de la alegerea certificatului potrivit până la configurarea software-ului necesar.

1. Obțineți un certificat de semnare a codului

În primul rând, aveți nevoie de un certificat de semnare a codului emis de o autoritate de certificare (CA) de încredere, cum ar fi DigiCert sau Sectigo. Acest certificat verifică identitatea dumneavoastră ca editor de software.

Începând cu 1 iunie 2023, toate certificatele de semnare a codurilor trebuie să stocheze cheia privată pe hardware securizat. Prin urmare, nu puteți genera sau păstra cheia privată pe computerul dvs. local. În schimb, aceasta trebuie să fie stocată pe un dispozitiv aprobat FIPS 140-2 Level 2+, cum ar fi un token USB SafeNet sau un modul de securitate hardware (HSM).

Tipul de certificat pe care îl alegeți afectează modul în care gestionați stocarea cheilor:

  • Certificatele EV Code Signing sunt întotdeauna însoțite de un token USB SafeNet emis de CA. Acest dispozitiv fizic deține cheia dvs. privată și este necesar de fiecare dată când semnați un fișier EXE.
  • Certificatele standard Code Signing nu includ un token USB. În schimb, puteți utiliza un serviciu de semnare bazat pe cloud (cum ar fi DigiCert’s KeyLocker) sau puteți stoca cheia privată pe propriul HSM, dacă CA permite acest lucru.

2. Configurați mediul de semnare

Odată ce aveți certificatul și dispozitivul de stocare securizat, aveți nevoie de instrumentele potrivite. Windows SDK (Kit de dezvoltare software) include utilitarul de semnare necesar, signtool.exe, pe care îl veți utiliza pentru a aplica semnătura digitală. Dacă nu este deja instalat, puteți descărca cea mai recentă versiune de pe site-ul oficial al Microsoft.

Instalator Signtool

Dacă utilizați un certificat EV Code Signing, va trebui să instalați și software-ul SafeNet Authentication Client. Acesta permite sistemului dvs. să comunice cu tokenul USB și să recupereze cheia privată în siguranță. Dacă semnați cu un HSM, asigurați-vă că dispozitivul este configurat corespunzător și că certificatul dvs. este accesibil din mediul dvs. de semnare.

Safenet

De asemenea, trebuie să aveți privilegii de administrator pe computer. Semnarea codului necesită permisiuni ridicate, deci rulați Command Prompt sau PowerShell ca administrator înainte de a executa orice comandă de semnare.


3. De ce este importantă ștampilarea temporală

O parte esențială a procesului de semnare este marcarea temporală, care asigură că semnătura dvs. digitală rămâne valabilă chiar și după expirarea certificatului. Fără o marcă temporală, Windows va trata EXE-ul semnat ca nefiind de încredere odată ce certificatul ajunge la data expirării.

Atunci când vă semnați fișierul, instrumentul de semnare contactează un server de marcare temporală, care înregistrează data și ora exactă a semnării. Acest lucru dovedește că fișierul dvs. a fost semnat în timp ce certificatul era încă valabil. Majoritatea CA oferă servicii gratuite de marcare a timpului. Dacă nu adăugați o marcă temporală, utilizatorii vor vedea avertismente cu privire la o semnătură expirată, ceea ce va face ca aplicația dvs. să pară nesigură.


4. Pregătiri finale înainte de semnare

Înainte de a semna EXE-ul, verificați de două ori dacă instrumentele de semnare, driverele și dispozitivul de stocare securizat sunt configurate corect. Dacă utilizați un HSM, verificați dacă cheia este accesibilă și configurată corespunzător. Dacă utilizați un token USB SafeNet, asigurați-vă că acesta este conectat și că SafeNet Authentication Client rulează.

După ce ați pus totul la punct, sunteți gata să vă semnați fișierul EXE. Procesul poate părea complex la început, dar urmând acești pași vă asigurați că Windows are încredere în software-ul dvs., previne avertismentele de securitate și asigură utilizatorii că aplicația dvs. poate fi instalată în siguranță.


Ghid pas cu pas pentru semnarea unui fișier EXE

Mai jos găsiți un ghid detaliat și actualizat privind semnarea unui EXE, care trebuie acum să fie stocat pe un modul de securitate hardware (HSM) sau pe un token USB pentru o securitate sporită.

Pasul 1: Introduceți HSM-ul sau jetonul USB

Înainte de a putea semna un EXE, trebuie să conectați tokenul hardware sau HSM-ul care conține certificatul de semnare a codului și cheia privată. Autoritățile de certificare solicită acum ca toate certificatele de semnare a codurilor să fie stocate pe dispozitive aprobate la nivelul 2 FIPS 140-2, cum ar fi un token USB SafeNet sau un HSM YubiKey.

Pași pentru conectarea tokenului hardware:

  1. Conectați HSM sau token-ul USB la computerul Windows.
  2. Dacă vi se solicită, instalați driverele necesare (majoritatea dispozitivelor se instalează automat).
  3. Asigurați-vă că aveți instalat SafeNet Authentication Client sau orice software HSM necesar.

Dacă utilizați un HSM bazat pe cloud (cum ar fi Azure Key Vault sau AWS CloudHSM), asigurați-vă că credențialele sunt configurate corect înainte de a continua.


Pasul 2: Deschideți Prompt-ul de comandă ca administrator

Deoarece semnarea necesită permisiuni de sistem, trebuie să utilizați Command Prompt (cmd.exe) sau PowerShell cu drepturi administrative.

Pași pentru a deschide Prompt-ul de comandă ca administrator:

  1. Faceți clic pe meniul Start și tastați cmd.
  2. Faceți clic dreapta pe Prompt de comandă și selectați Executare ca administrator.

Alternativ, dacă preferați PowerShell, urmați aceiași pași, dar tastați PowerShell în loc.


Pasul 3: Localizați SignTool

SignTool este un utilitar Microsoft inclus în Windows SDK, care este necesar pentru semnarea executabilelor.

Găsirea SignTool pe sistemul dvs:

Locația SignTool depinde de versiunea Windows SDK instalată. Îl puteți găsi în:

C:\Program Files (x86)\Windows

Kits\10\bin\10.0.22621.0\x64\signtool.exe

Înlocuiți 10.0.22621.0 cu versiunea SDK instalată, dacă este necesar.

Calea Signtool

Pasul 4: Semnați EXE utilizând SignTool

Acum că totul este configurat, puteți semna fișierul EXE utilizând SignTool. Mai jos este un exemplu de comandă corectă pentru semnarea cu un timestamp. Ajustați în consecință.

signtool sign /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 /a "C:\path\to\yourfile.exe"

Explicația comenzii:

  • /tr http://timestamp.digicert.com – Specifică URL-ul serverului de timestamp RFC 3161 (înlocuiți cu serverul CA-ului dvs.).
  • /td SHA256 – Setează SHA-256 ca algoritm de digresiune a timestampului.
  • /fd SHA256 – Specifică SHA-256 ca algoritm de digitizare a fișierelor (versiunile moderne de Windows necesită acest lucru).
  • /a – Selectează automat certificatul de semnare a codului corect.
  • “C:\path\to\yourfile.exe” – Înlocuiți cu calea reală a fișierului EXE.

Pasul 5: Introduceți parola (dacă este necesar)

Dacă tokenul HSM sau USB necesită autentificare, va apărea o fereastră pop-up care vă va solicita parola sau codul PIN.

Ce trebuie să faceți în continuare:

  • Introduceți parola pentru tokenul SafeNet (sau orice alt HSM).
  • Dacă aveți mai multe certificate, SignTool vă poate cere să îl selectați pe cel corect.

Notă: Dacă utilizați un HSM bazat pe cloud, este posibil să fie necesar să vă autentificați prin acreditările API sau un PIN securizat.


Verificarea fișierului EXE semnat

După ce ați semnat EXE-ul, confirmați că semnătura este aplicată corect și include o marcă temporală. Iată cum o puteți verifica:

1. Verificați proprietățile fișierului

  1. Localizați fișierul EXE semnat pe computerul dvs.
  2. Faceți clic dreapta pe fișier și selectați Proprietăți.
  3. Mergeți la fila Semnături digitale.
  4. Dacă semnarea a avut succes, veți vedea semnătura listată împreună cu o marcă temporală. Faceți clic pe Detalii pentru a confirma că mesajul afirmă că Această semnătură digitală este OK.

2. Utilizați Poweshell pentru verificare

Pentru o verificare mai aprofundată, puteți utiliza Windows Powershell.

  1. Deschideți PowerShell (Win + X → PowerShell).
  2. Rulați comanda:

    Get-AuthenticodeSignature "C:\Windows\System32\cmd.exe"

    Verificarea semnăturii Powershell

Înlocuiți “cmd/exe” cu fișierul dvs. exe.

Aceasta va afișa detalii despre semnătură, inclusiv lanțul de certificate și marca temporală. Dacă semnătura este invalidă sau lipsește, Windows o va semnala.

3. Testarea pe un alt sistem

Pentru mai multă siguranță, încercați să descărcați și să executați EXE-ul semnat pe un alt computer. Dacă totul este corect, Windows ar trebui să îl recunoască ca o aplicație de încredere fără a afișa avertismente de securitate. Urmând acești pași, vă puteți asigura că EXE-ul dvs. este semnat corect și pregătit pentru distribuție în siguranță.


De ce ar trebui să semnați un fișier EXE?

Semnarea aplicațiilor Windows nu se referă doar la securitate, ci și la încredere, protecție și asigurarea funcționării fără probleme a software-ului dvs. Iată câteva motive pentru a semna un fișier executabil:

  • Utilizatorii au încredere în software-ul semnat. Atunci când un fișier EXE nu este semnat, Windows emite avertismente de securitate, iar unele sisteme îl pot bloca complet. O semnătură verificată de la o autoritate de certificare de încredere îi asigură pe utilizatori că fișierul este sigur și nu a fost modificat.
  • Aceasta previne modificările neautorizate. Odată semnat, un EXE acționează ca un pachet sigilat. Dacă cineva încearcă să îl modifice, fie pentru a injecta malware, fie pentru a modifica codul, semnătura se rupe, iar Windows marchează fișierul ca nefiind de încredere.
  • Acesta reduce avertismentele Microsoft SmartScreen. SmartScreen este agresiv cu software-ul nesemnat, afișând avertismente care îi fac pe utilizatori să ezite să îl instaleze. Semnarea EXE-ului dvs., în special cu un certificat EV (Extended Validation) Code Signing, reduce semnificativ aceste avertismente și facilitează instalarea.
  • Este esențial pentru distribuția în întreprinderi. Multe medii corporative blochează rularea software-ului nesemnat pe rețelele lor. Un EXE semnat respectă politicile de securitate, asigurându-se că poate fi implementat fără probleme.
  • Timestamparea menține validitatea semnăturii. Fără o marcă temporală, o semnătură devine invalidă în momentul în care certificatul expiră. Cu o marcă temporală, semnătura rămâne valabilă chiar și după expirare, asigurând că software-ul dvs. continuă să funcționeze.

Semnați-vă EXE-ul cu încredere – obțineți un certificat Code Signing

Odată ce știți cum să semnați un fișier exe și să vă protejați software-ul de avertismentele de securitate, următorul pas este obținerea certificatului Code Signing corespunzător. Indiferent dacă sunteți un dezvoltator independent sau o întreprindere, semnarea fișierului EXE asigură încredere, instalații fără probleme și protecție împotriva manipulării. Fără o semnătură validă, Windows vă va semnala software-ul, îngreunând instalarea și rularea acestuia de către utilizatori.

La SSL Dragon, oferim certificate OV și EV Code Signing de la furnizori de top precum DigiCert, Sectigo și GoGetSSL. Aveți nevoie de o soluție simplă? Optați pentru validarea individuală sau a organizației. Doriți o reputație mai puternică și mai puține avertismente SmartScreen? Validarea extinsă este calea de urmat. Alegeți, semnați-vă software-ul cu încredere și faceți ca avertismentele de securitate să devină un lucru din trecut.

Economisește 10% la certificatele SSL în momentul plasării comenzii!

Eliberare rapidă, criptare puternică, încredere în browser de 99,99%, suport dedicat și garanție de returnare a banilor în 25 de zile. Codul cuponului: SAVE10

A detailed image of a dragon in flight

Autor cu experiență, specializat în certificate SSL. Transformă subiectele complexe despre securitatea cibernetică în conținut clar și captivant. Contribuie la îmbunătățirea securității digite prin narațiuni cu impact.