Hogyan írjunk alá alkalmazásokat Windows rendszeren (SDK)
Nézzük meg együtt, hogyan lehet aláírni egy alkalmazást a Windows SDK (signtool eszköz) és Code Signing tanúsítvány segítségével. Az útmutató feltételezi, hogy rendelkezik Code Signing tanúsítvánnyal PFX formátumban, és hogy a Windows SDK fejlesztői környezet telepítve van egy Windows operációs rendszeren. Az SDK-t töltse le a Microsoft webhelyéről az Ön Windows verziójához, például Windows Software Development Kit (SDK) for Windows 10.
Signtool használata
A Signtool.exe program, amely Code Signing tanúsítvánnyal írja alá az alkalmazásokat. A Windows SDK telepítése után a parancssorból használhatja. Az alkalmazások aláírásához ismernie kell az alapvető paramétereket, hogy helyesen hívhassa meg az aláírást a megfelelő tanúsítvánnyal és beállításokkal.
Az aláírás valójában a parancssoron keresztül történik, és elegendő, ha a tanúsítvány elérhető a gépen (nem kell telepíteni sehová).
Az alapvető parancsok (utasítások) az aláíráshoz a következők:
signtool utasítás /paraméter
Az utasítások közül használhatja az aláíráshoz a Sign parancsot és a hitelesség ellenőrzéséhez a Verify parancsot. A Timestamp parancs időbélyeg hozzáadására szolgál, de ezt egyből megteheti a fájl aláírásakor is.
Hasznos paraméterek:
- /f SignCertFile – ha PFX fájlt használ az aláíráshoz, ez a parancs a fájl helyére hivatkozik. PFX formátumú Code Signing tanúsítvány megszerzése már nem lehetséges.
- /s StoreName – ha tanúsítványtárolót használ (például tokenen), meghatározza, melyiket kell használni. Az alapértelmezett a My.
- /t URL – hozzáadja az időbélyeget és a hivatkozást rá. Az URL-eket az időbélyegzőszerverekhez alább találja.
- /td - időbélyegzőnél a hash algoritmus. Válassza legalább az sha256 vagy magasabb paramétert.
- /fd - hash algoritmus. Válassza legalább az sha256 vagy magasabb paramétert.
A teljes dokumentációt megtalálhatja a Microsoft weboldalán vagy a „signtool sign /?” parancs megadásával.
A teljes aláírási parancs például így nézhet ki:
SignTool sign /n "My Company Certificate" /td sha256 /fd sha256 /t http://timestamp.digicert.com C:\test.exe
Mindig használjon időbélyeget. Ez biztosítja az aláírt alkalmazás megbízhatóságát a tanúsítvány lejártát követően is, amelyet az aláíráshoz használtak. Ez nagyon fontos, mivel nem kell újra visszamenőlegesen újra aláírnia régebbi alkalmazásait (jellemzően a Code Signing tanúsítvány kétéves lejártát követően), hogy ne legyenek megbízhatatlanok. Ha az aláíráskor használ időbélyeget, és a tanúsítvány érvényes lesz, akkor az alkalmazás is érvényes lesz a jövőben.
Számos időbélyeg-szolgáltató szerver létezik; ajánlott használni a DigiCert időbélyeg-szerverét: http://timestamp.digicert.com/
Ez a szerver nem rendelkezik semmilyen webhellyel a 80-as porton, ezért felesleges böngészővel felkeresni (semmit sem fog látni).
Tanúsítványtároló
A tanúsítvány több helyen (különböző tárolókban) is tárolható, és többféleképpen is előhívható. Korábban lehetséges volt a tanúsítvány PFX fájlformátumban való tárolása, de ez már nem megengedett. A PFX fájlt bárki ellophatja, és bár a PFX jelszóval védett, jelentős biztonsági kockázatot jelent (a jelszavak általában nagyon gyengék). A PFX elsősorban S/MIME tanúsítványok vagy webes biztonsági mentésekhez alkalmasak.
A Code Signing tanúsítványok tárolásának gyakori módja az tokentárolóban való tárolás, és ennek nevezett aláírása a tanúsítvány alanyának alapján. Ez a módszer biztonságos, és gyakorlatilag megegyezik a korábbi aláírásmódszerrel, amely PFX-t használt. A privát kulcs exportálása tokenről nem lehetséges, ezért a tanúsítvány haszontalan, és nem lehet vele visszaélni; öt sikertelen jelszó megadása után a token zárolva lesz.
Aláírás a tároló használatával a /n SubjectName paraméter megadását igényli:
signtool sign /n "My Company Certificate" /td sha256 /fd sha256 /t http://timestamp.digicert.com C:\test.exe
Vagy választhatja az alapértelmezett My tárolót, és a aláíró szoftver automatikusan megtalálja a tanúsítványt:
signtool sign /s My /td sha256 /fd sha256 /t http://timestamp.digicert.com C:\test.exe
Code Signing automatizálása felhőalapú HSM-mel
A kód aláírásának automatizálása nagyon keresett, azonban a tokenen tárolt tanúsítvánnyal nem lehet automatikusan aláírni; szerveren sem használható. Szerencsére ismerünk szolgáltatásokat, amelyek alkalmasak az aláírás automatizálására. A DigiCert kínál KeyLocker, valamint Software Trust Manager szolgáltatást. Aláíró kulcsokat az Azure vagy a Google Cloud felhőalapú HSM-jében is tárolhat.
További információk a kód aláírásának automatizálási lehetőségeiről a cikkben találhatók: Code Signing Center.
Az aláírás ellenőrzése
Most már tud aláírni, és az alkalmazását az első megbízható aláírással látta el. Valószínűleg érdekli, hogyan lehet ellenőrizni az aláírást.
Az ellenőrzés lehetséges a signtool eszköz segítségével is:
signtool verify C:\test.exe
Egyszerűbben ellenőrizheti a fájl tulajdonságainak megjelenítésével a Windows Fájlkezelőben. A részletes aláírás megmutathatja még a használt tanúsítvány részleteit is.
Sajnáljuk, hogy nem kapott választ.
Segítene a cikk jobbá tételében? Írja meg nekünk mire nem kapott választ.