Aláírás KeyLocker Cloud HSM-mel

Ez a cikk segítségül szolgál a cloud és a KeyLocker HSM-mel való aláíráshoz. Az útmutató az összes platformra és a különböző aláírási eszközökre is érvényes - a signtooltól a jarsignerig. Ez az információ a DigiCert ONE Software Trust Managerrel történő aláírás alapját is képezi; az aláírási módszer mindkét szolgáltatásra vonatkozik.

KeyLocker kompatibilitás

Mielőtt kipróbálná a KeyLockert, talán felmerül a kérdés, hogy használhatja-e a munkafolyamataiban, és hogy alkalmas lesz-e az Ön számára. A KeyLocker és a kapcsolódó könyvtárak támogatják (ahogy a Software Trust Managet is a DC1-ben) a harmadik féltől származó aláíróeszközöket. A DigiCert webhelyén található Signing tool integration (Aláíróeszközök integrációja) című cikk tartalmazza azoknak a fájlformátumoknak a teljes listáját, amelyeket kompatibilis eszközökkel aláírhat a KeyLocker segítségével.

Az alábbiakban csak a legelterjedtebb Signtool 32b és 64b verziókat említem meg:

  • 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

KeyLocker varázsló

Miután bejelentkezett a KeyLockerbe, megjelenik egy beállítási varázsló, amely segít létrehozni a szükséges hitelesítő eszközöket.

Ügyeljen arra, hogy alaposan mentse el a hitelesítési adatokat, mivel enélkül nem tud aláírni. Mentse el a hitelesítési tanúsítványt azon a számítógépen, ahol az aláírást végzi. A tanúsítvány jelszavát (PFX) egy rendszerváltozóban tárolja, vagy a varázslóban adja meg.

A hitelesítés részleteiért lásd a KeyLocker varázslót.

Az aláírási környezet beállítása

Az aláírás előtt be kell állítania a rendszerében a változókat és a hitelesítést. Ezt megteheti manuálisan a rendszerbeállításokban, vagy használhatja a DigiCert Click-to-signhez mellékelt varázslóját (lásd az utolsó bekezdést). A Click-to-sign telepítőjét ugyanabban a mappában találja, mint az smctl-t, jellemzően a C:/Program Files/DigiCert/DigiCert/DigiCert Keylocker Tools/ mappában.

A következő adatokat kell beállítania a rendszerváltozókba (kézzel vagy a varázsló segítségével):

  • Host - a kapcsolat URL-címe, jellemzően https://clientauth.one.digicert.com
  • API key - az API tokenje a KeyLockertől
  • Client authentication certificate - az Ön hitelesítési tanúsítványa és jelszava
  • Client authentication certificate password - jelszó a fenti tanúsítványhoz
  • Pkcs11 configuration file - opcionális a signtool számára; konfigurációs fájl az smctl, jarsigner és társaik által használt PKCS11 könyvtárhoz. Az elkészítés módját lásd itt

Változók beállítása a DigiCertben​​®​​ Click-to-sign

Ha nem tudja, hogyan kell manuálisan beállítani a Windows-változókat, nézze meg ezt a videóútmutatót.

Vagy a varázsló (Credentials saved) mutatja meg a helyes beállításokat, vagy ellenőrizheti azokat az SMCTL segédprogrammal a következő parancs futtatásával smctl healthcheck Ez a parancs ellenőrzi a kapcsolatot és a hitelesítést a KeyLockerrel szemben, de azt is ellenőrzi, hogy legalább egy aláíró eszköz elérhető-e. Ha igen, akkor az eszköz meg lesz jelölve Mapped: Yes és az elérési útvonalát a számítógépen.

Ha nem látja a signtool-t a teszt eredményében (Signtool: Mapped: No), az azt jelenti, hogy a signtool vagy nincs telepítve, vagy az elérési útvonal nincs beállítva a rendszerváltozókban (a beállításokat lásd: Set PATH environment variable). Az állapotfelméréssel kapcsolatos segítségért lásd a következő cikket Healthcheck commands a DigiCert dokumentumok közt.

Javasoljuk, hogy a változókat véglegesen, vagy Windows esetén biztonságosan állítsa be a rendszerbe a Windows Credential Managerben (a rendszerváltozókat bárki elérheti, aki hozzáfér a számítógéphez). Ha csak a parancssorban állítja be a változókat, akkor azokat minden munkamenetben be kell állítania. Lásd az alábbi dokumentáció: Session-based environment variables.

Tanúsítvány szinkronizálás

A KeyLockkal való kapcsolat beállítása után (előző bekezdés) szinkronizálnia kell a tanúsítványokat a rendszerével.

C:/Program Files/DigiCert/DigiCert Keylocker Tools>smctl windows certsync --keypair-alias=key_558469087
Syncing certificate for alias: key_558469087, ID: 2a47112c-4b5d-4ce0-8e70-d67437e58135 and SHA1 Fingerprint: ecb0f10ab1932c9771751681fb70a31e32288263

Használhatja az smksp_cert_sync segédprogramot is:

C:/>smksp_cert_sync
Syncing certificate for alias: key_558469087, ID: 2a47112c-4b5d-4ce0-8e70-d67437e58135

Most a tanúsítvány nyilvános része helyileg a Windows tanúsítványtárolójában (Windows certificate store) tárolódik, de a Privát kulcs a felhőalapú tárolóban marad.

Fájlok aláírása

Az alábbiakban segítséget talál a fájlok aláírásához különböző eszközökkel, amelyek segítenek a kódaláíró tanúsítványok használatának elkezdéséhez.

Ezeket a programokat a parancssori felületen (CLI) használják, kivételt képez a DigiCert® click-to-sign segédprogram (lásd az utolsó bekezdést).

Fájlok aláírása SMCTL segítségével

Az SMCTL segédprogram a DigiCert-től származik, és harmadik féltől származó eszközökkel egyszerűsített fájlaláírásra is használható (továbbra is szükség van legalább a signtoolra). Az SMCTL a legelterjedtebb eszközökkel működik - Signtool, Apksigner, Jarsigner, Mage, Nuget. Az eszközt itt találja: C:/Program Files/DigiCert/DigiCert Keylocker Tools/smctl.exe

A tanúsítvány kiválasztásához használhatja a kulcs aliasát (ajánlott - ezt a KeyLockerben találja meg) vagy a tanúsítvány ujjlenyomatát (SHA-1 hash).

smctl sign --keypair-alias=key_558469087 -d=SHA256 --verbose --config-file "C:/Program Files/DigiCert/DigiCert Keylocker Tools/pkcs11properties.cfg" --input "C:/Users/User/HelloSign.exe" smctl sign --fingerprint --input

Az aláírás érvényességét az alábbi paranccsal ellenőrizheti smctl sign verify --input

Az SMCTL dokumentációja a következő címen érhető el: DigiCert webhelye.

Fájlok aláírása Signtool segítségével

A következő útmutató a Windows SDK Signtool eszközéről szól. Ez a legszélesebb körben használt aláíró eszköz a Windows platformon.

A signtool parancsnak meg kell adnia, hogy milyen fájlt akar, milyen tanúsítvánnyal kíván aláírni, illetve a kapcsolódó paramétereket. Az aláíró tanúsítványra többféleképpen is hivatkozhat: a Signtool automatikusan kiválaszthat egy tanúsítványt a tárolás alapján; vagy konkrétan kiválaszthatja a tanúsítványt, hivatkozva a tárolt tanúsítványt tartalmazó fájlra (természetesen csak a nyilvános részt, a privát kulcs nélkül), vagy használhatja a tanúsítvány SHA-1 hash értékét.

Íme egy példa a tanúsítvány kivonatának használatával történő aláírásra:

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

Íme egy példa a KeyLockerrel és egy tanúsítványfájllal történő aláírásra:

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

Az aláírás érvényességét az alábbi paranccsal ellenőrizheti signtool verify /v file.exe Az aláírt fájl aláírási tulajdonságait az Intéző és a Tulajdonságok (jobb egérgomb) segítségével is megtalálhatja.

Fájlok aláírása Jarsignerrel

A PKCS11 könyvtárnak köszönhetően a Jarsignert a KeyLockerrel együtt használhatja; az aláírást egyszerűen az SMCTL használatával vagy közvetlenül a Jarsigner és a PKCS11 könyvtár segítségével végezheti el.

Példa a Jarsignerrel történő aláírásra: 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"

Az aláírás helyességét a következő paranccsal ellenőrizheti: jarsigner -verify -certs -verbose

A Jarsigner dokumentációja a következő címen érhető el: DigiCert webhelye.

Aláírás a DigiCert​​®​​ Click-to-sign -nel

Ez a segédprogram grafikus felületet biztosít a fájlok aláírásának megkönnyítésére. Az eredmény és az aláírás elve azonban nem különbözik a parancssoros segédprogramoktól; ehelyett lehetővé teszi az aláírási paraméterek részletesebb beállítását. A DigiCert® Click-to-sign csak egyszerűsített beállításokkal rendelkezik, de ezek a legtöbb felhasználó számára elegendőek lehetnek.

A DigiCert® Click-to-signnek van egy óriási előnye - a beállításához végig kell mennie a KeyLocker hozzáférési hitelesítő adatok (secrets) beállítási varázslóján. A varázsló egyszerűen teszteli a felhővel való kapcsolatát, de ami még fontosabb, hogy ezeket a változókat be is állítja a rendszerbe! Nem kell kézzel beállítania őket.

Az aláírása ezzel az eszközzel a lehető legegyszerűbb: kattintson a jobb gombbal az aláírandó fájlra, és válassza a menüből az Click to Sign parancsot. Ezt követően azonnal aláírhatja, vagy az aláírási beállítások megerősítésével.

Aláírás előtti ellenőrzés a DigiCert® Click-to-sign rendszerben

A Click-to-sign dokumentáció ide kattintva érhető el a DigiCert webhelyén.

Megjegyzés: Ha a Click-to-sign nem működik, állítsa be a PATH változóba a Click-to-sign és az aláíró alkalmazás (signtool) elérési útvonalát pontosvesszővel elválasztva. Például:
Path: C:/Program Files/DigiCert/DigiCert Keylocker Tools;C:/Program Files (x86)/Windows Kits/10/bin/10.0.22621.0x64;

Integráció CI/CD-hoz

A KeyLocker legfőbb előnye, hogy a CI/CD munkafolyamatba integrálva automatizálni tudja az aláírásokat. A DigiCert számos szkriptet és bővítményt készített a legelterjedtebb fejlesztési eszközökhöz és platformokhoz. Az Azure DevOps, a GitHub és a Jenkins számára elérhetőek pluginok. A PKCS11 könyvtárhoz még több integrációs szkriptet kínál.

A teljes körű információért lásd az alábbi cikket: CI/CD integrations.

Dokumentáció és egyéb források: