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.
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
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
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.
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:
- SignTool dokumentáció, elérhető itt: https://learn.microsoft.com/hu-hu/dotnet/framework/tools/signtool-exe
- KeyLocker dokumentáció, elérhető itt: https://docs.digicert.com/en/digicert-keylocker.html