{"copy":"Skop\u00edrova\u0165","expand":"Rozbali\u0165","collapse":"Zbali\u0165","copy_success":"Skop\u00edrovan\u00e9!","copy_error":"Kop\u00edrovanie zlyhalo!"}

Podpisovanie pomocou KeyLocker cloud HSM

Tento článok vás naučí podpisovať pomocou cloudu a KeyLocker HSM. Návod je relevantný pre všetky platformy a rôzne podpisovacie nástroje – od signtool až po jarsigner. Uvedené informácie sú aj základom pre podpisovanie pomocou Software Trust Managera z DigiCert ONE; princíp podpisovania teda platí pre obe uvedené služby.

Kompatibilita KeyLockeru

Iste si pred vyskúšaním KeyLockeru položíte otázku, či bude možné ho použiť vo vašom workflow a či vám bude fungovať. KeyLocker a súvisiace knižnice podporujú (rovnako ako Software Trust Manager v DC1) podpisové nástroje tretej strany. Na webe DigiCertu nájdete v článku Signing tool integration kompletný prehľad formátov súborov, ktoré môžete podpísať kompatibilnými nástrojmi za použitia KeyLockeru.

Tu spomeniem iba najrozšírenejší Signtool v 32b a 64b verzii:

  • SignTool (32-bit): .doc, .docm, .dot, .dotm, .msi, .cab, .exe, .dll, .mpp, .mpt, .pot, .potm, .ppa, .ppam, .pps, .ppsm, .ppt, .pptm, .pub, .vdw*, .vdx*, .vsd*, .vsdm, .vss*, .vssm, .vst*, .vstm, .vsx*, .vtx*, .wiz*, .xla, .xlam, .xls, .xlsb, .xlsm, .xlt, .xltm
  • SignTool (64-bit): .appx, .appxbundle, .arx, .cab, .cat, .cbx, .cpl, .crx, .dbx, .deploy, .dll, .drx, .efi, .exe, .js, .msi, .msix, .msixbundle, .msm, .msp, .ocx, .psi, .psm1, .stl, .sys, .vbs, .vsix, .wsf, .xsn

Sprievodca v KeyLockeri

Po prihlásení do KeyLockeru uvidíte sprievodcu nastavením, ktorý vám pomôže stiahnuť aplikáciu DigiCert ONE Clients. Pomocou nej sa prihlásite na počítači ku KeyLocker účtu, nainštaluje vám potrebné knižnice vrátane smctl a nastaví do systému premenné pre autentizáciu. Oproti skoršiemu postupu ide o výrazné uľahčenie.

V prvom kroku sprievodcu si stiahnite DigiCert ONE Clients app, nainštalujte a spusťte. Prihlásenie je rovnaké, ako ste si nastavili do webového rozhrania KeyLockeru.

Údaje pre autentizáciu získate v KeyLocker sprievodcovi

V ďalšom kroku v desktop aplikácii nainštalujte smctl, ktorý je hlavným nástrojom pre samotné podpisovanie.

Inštalácia SMCTL

Po inštalácii uvidíte výber z troch možných spôsobov uloženia premennej KeyLockeru v systéme. Odporúčame ponechať predvolenú možnosť "Store my credentials". Uložia sa do systému a nebudete sa musieť pred každým podpísaním znovu prihlasovať k účtu.

Výber spôsobu autentizácie pre KeyLocker

Keď zvolíte možnosť uloženia do systému, tak v systéme Windows budú credentials v Správcovi prihlasovacích údajov (Credential Manager).

Prístupové údaje ku KeyLockeru sú uložené v Správcovi prihlasovacích údajov (Credential Manager). Tam budú navždy a nemusíte ich znovu zadávať.

Po nastavení prihlasovacích údajov do systému, ktoré vykoná automaticky DigiCert ONE Clients app, prejdite do tretieho kroku sprievodcu. Teraz po vás chce vo vašom systéme spustiť príkaz smctl healthcheck, ktorý otestuje komunikáciu lokálneho prostredia s KeyLockerom a správnu autentizáciu. Všetko by malo prebehnúť hladko, takže potvrďte "I have run the healthcheck command in SMCTL" a kliknite na tlačidlo Check Status.

Test správneho nastavenia

Uvidíte zelené potvrdenie You're ready to start signing with SMCTL, čo znamená, že všetko je nastavené správne, komunikácia funguje a môžete začať podpisovať.

Vyberte si zo štyroch možností správnu platformu, ktorú využívate pre podpisovanie, a následne uvidíte príklad (návod) pre podpísanie pomocou KeyLockeru.

KeyLocker Setup Complete

Podpisovanie súborov

Pre podpisovanie odporúčame primárne používať utilitu smctl, ktorá funguje v príkazovom riadku (CLI). Druhým variantom je utilita DigiCert​​®​​ Click-to-sign (pozri posledný odstavec).

Návody pre podpisovanie súborov pre hlavné platformy (Authenticode, Docker, Java...) nájdete priamo vo webovom rozhraní KeyLockeru. Po dokončení sprievodcu (nadpis Setup complete!) môžete kliknúť na jednu z ponúkaných platforiem a rozhranie vám ukáže pripravený príkaz s využitím vybraného certifikátu. Stačí ho skopírovať do CLI a určiť podpisovaný súbor. Jednoduchšie to už byť nemôže!.

Podpisovanie súborov pomocou SMCTL (odporúčame)

Utilita SMCTL pochádza od DigiCertu a môže slúžiť aj na zjednodušené podpisovanie súborov pomocou nástrojov tretej strany (stále potrebujete minimálne signtool). SMCTL spolupracuje s najrozšírenejšími nástrojmi – Signtool, Apksigner, Jarsigner, Mage, Nuget. Nástroj nájdete v priečinku C:/Program Files/DigiCert/DigiCert Keylocker Tools/smctl.exe

V poslednom kroku sprievodcu kliknite na Authenticode a v ďalšom dialógu si vyberte certifikát, ktorý je v KeyLockeri k dispozícii. Dostanete kompletný príkaz na podpísanie, kam doplníte cieľ a pustíte lokálne vo svojom CLI. Ihneď dostanete potvrdenie o úspešnom podpísaní súboru.

Návod pre podpisovanie na platforme Windows – Authenticode

Kompletnú dokumentáciu SMCTL nájdete na webe DigiCertu

Podpisovanie súborov pomocou Signtool

Nasledujúci návod sa týka nástroja Signtool z balíka Windows SDK. Je to najrozšírenejší nástroj na podpisovanie na platforme Windows.

Príkazu signtool je potrebné špecifikovať aký súbor chcem podpísať, akým certifikátom a prípadne súvisiace parametre. Na podpisovací certifikát sa môžete odkazovať viacerými spôsobmi – môžete nechať Signtool automaticky zvoliť certifikát na základe úložiska; konkrétnu voľbu certifikátu môžete vykonať buď odkazom na súbor s uloženým certifikátom (samozrejme len verejná časť bez privátneho kľúča), alebo môžete použiť SHA-1 hash daného certifikátu.

Tu je príklad podpísania pomocou hash odtlačku certifikátu:

C:/>signtool.exe sign /sha1 ecb0f10ab1XXXXXXXXXX1681fb70a31e32288263 /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe

A tu je príklad podpísania pomocou KeyLockeru a súboru s certifikátom:

C:/Users/User>signtool.exe sign /csp "DigiCert Signing Manager KSP" /kc key_558469087 /f C:/Users/User/Documents/cert_558469087.crt /tr http://timestamp.digicert.com /td SHA256 /fd SHA256 C:/Users/User/Documents/HelloSign.exe
Done Adding Additional Store
Successfully signed: C:/Users/User/Documents/HelloSign.exe

Platnosť podpisu si môžete overiť príkazom signtool verify /v file.exe Vlastnosti podpisu nájdete aj pri podpísanom súbore cez prieskumníka a Vlastnosti (pravé tlačidlo myši).

Podpisovanie súborov pomocou Jarsigner

Jarsigner môžete využiť spolu s KeyLockerom vďaka knižnici PKCS11; podpisovať môžete zjednodušene pomocom SMCTL, alebo priamo pomocom Jarsigneru a knižnice PKCS11.

Príklad podpisu pomocou Jarsigner: jarsigner -keystore NONE -storepass NONE -storetype PKCS11 -sigalg SHA256withRSA -providerClass sun.security.pkcs11.SunPKCS11 -providerArg pkcs11properties2.cfg -signedjar C:/Users/Name/Desktop/signed/signedjar.jar C:/Users/Name/Desktop/ToSign/jartosign.jar key3 -tsa "http://timestamp.digicert.com"

Správnosť podpisu overíte príkazom: jarsigner -verify -certs -verbose

Dokumentáciu k Jarsigner nájdete na webe DigiCertu

Podpisovanie pomocou DigiCert​​®​​ Click-to-sign

Táto utilita ponúka grafické rozhranie pre uľahčenie podpisu súboru. Výsledok a princíp podpisovania sa však nelíši od nástrojov pre príkazový riadok; tie naopak umožňujú detailnejšie nastavenie parametrov podpisu. DigiCert​​®​​ Click-to-sign má iba zjednodušené možnosti, ktoré však môžu väčšine používateľov stačiť.

DigiCert​​®​​ Click-to-sign má jednu obrovskú výhodu – pre jeho nastavenie je potrebné prejsť sprievodcom nastavenia prístupových údajov (secrets) ku KeyLockeru. Sprievodca vám jednoducho vyskúša spojenie s cloudom, ale najmä nastaví tieto premenné do systému! Nebudete ich musieť zložito nastavovať manuálne.

Samotné podpisovanie týmto nástrojom je maximálne jednoduché – kliknete pravým tlačidlom myši na súbor na podpis a v menu vyberiete Click to Sign. Potom môžete podpísať rovno, alebo s potvrdením nastavenia podpisu.

Revízia pred podpisom v DigiCert​​®​​ Click-to-sign

Dokumentáciu ku Click-to-sign nájdete na webe DigiCertu

Poznámka: Ak by vám Click-to-sign nefungoval, tak nastavte do premennej PATH cesty k samotnému Click-to-sign a tiež k podpisovacej aplikácii (signtool) oddelené bodkočiarkou. Teda napríklad:
Path: C:/Program Files/DigiCert/DigiCert Keylocker Tools;C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0x64;

Integrácia do CI/CD

Hlavnou výhodou KeyLockeru je možnosť automatizácie podpisov vďaka integrácii do CI/CD workflow. DigiCert pripravil rad skriptov a pluginov pre najrozšírenejšie vývojové nástroje a platformy. Pluginy sú dostupné pre Azure DevOps, GitHub a Jenkins. Integračných skriptov pre knižnicu PKCS11 ponúka ešte viac.

Kompletné informácie nájdete v článku CI/CD integrations.

Dokumentácia a ďalšie zdroje: