{"copy":"M\u00e1sol\u00e1s","expand":"R\u00e9szletek megjelen\u00edt\u00e9se","collapse":"Bez\u00e1r\u00e1s","copy_success":"M\u00e1solva!","copy_error":"Sikertelen m\u00e1sol\u00e1s!"}

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á).

Signtool.exe aláírási példa
Signtool.exe aláírási példa

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.

Alkalmazás aláírási részletei a Windows Fájlkezelőben
Alkalmazás aláírási részletei a Windows Fájlkezelőben
Hasznos volt Önnek ez a cikk?