Přeskočit na obsah

Alkalmazások aláírása Windows alatt (SDK)

Nézzük meg együtt egy alkalmazás aláírását Windowson a Windows SDK (signtool) és a Code Signing tanúsítvány segítségével. A súgónk feltételezi, hogy a PFX-ben van egy előkészített kódaláíró tanúsítvány és a Windows SDK fejlesztői környezet telepítve van a Windows operációs rendszerre. Töltse le az SDK-t a Microsoft webhelyéről a Windows megfelelő verziójához, például Windows Software Development Kit (SDK) for Windows 10.

A kódaláíró tanúsítványok (OV és EV) többé nem állíthatók ki a tokenen tárolt tanúsítványokon kívül. Code Signing tanúsítványt már nem lehet PFX fájlként beszerezni!

Signtool használata

A Signtool.exe egy olyan program, amely a PFX-et használó alkalmazásokat kódaláíró tanúsítvánnyal írja alá. A Windows SDK telepítése után használja a parancssoron keresztül. Az alkalmazások aláírásához ismernie kell az alapvető paramétereket, hogy a megfelelő tanúsítvánnyal és beállításokkal utasítsa az alkalmazás aláírását.

Az aláírás valójában a parancssoron keresztül történik, és a tanúsítványt csak egy fájlban kell tárolni a számítógépen (nem telepítik sehova).

Példa a signtool.exe -vel való aláírásra
Példa az aláírásra a signtool.exe -vel

Az aláírás alapvető paraméterei (parancsok) a következők:

signtool parancs /paraméter

Az Sign parancscsal aláírhatja, az Verify segítségével pedig ellenőrizheti a fájl aláírását. A Timestamp egy parancs az időbélyegző beillesztésére, de ezt közvetlenül a fájl aláírásakor is megadhatja.

Hasznos paraméterek:

  • /f SignCertFile - ha egy PFX fájlt használ az aláíráshoz, ez a parancs annak helyére mutat. Már nem lehetséges kódaláíró tanúsítványt beszerezni a PFX formátumban..
  • /s StoreName - ha tanúsítványtárolót használ, adja meg, hogy melyiket használja. Az alapértelmezett a My.
  • /t URL - hozzáad egy időbélyeget és egy hivatkozást rá. Az időbélyegző szerverek URL-címeit az alábbiakban találja.
  • /td - algoritmus ujjlenyomat (digest) az időbélyegzőben. Legalább sha256 vagy magasabb értéket válasszon.
  • /fd - algoritmus ujjlenyomat (digest). Legalább sha256 vagy magasabb értéket válasszon.

A teljes dokumentáció megtalálható a Microsoft webhelyén vagy a „signtool sign /?“ beírásával.

A teljes fájlaláírási parancs így nézhet ki például:

SignTool sign /n "My Company Certificate" /td sha256 /fd sha256 /t http://timestamp.digicert.com C:test.exe

Mindig használjon időbélyeget vagy bélyegzőt. Biztosítja, hogy az aláírt alkalmazás megbízható legyen az aláíráshoz használt tanúsítvány lejárta után is. Ez azért nagyon fontos, mert így nem kell újra aláírnia a régebbi alkalmazásokat (általában a kódaláírási tanúsítvány lejárta után két évvel), amelyek megbízhatatlanná válhatnának. Ha az aláíráskor időbélyeget használ, és a tanúsítvány érvényes, akkor az alkalmazás a jövőben is érvényes lesz.

Egyre több időbélyegzőt biztosító szerver létezik; a DigiCert időbélyegző szerverét javasoljuk: http://timestamp.digicert.com/

Ez a szerver nem rendelkezik webes kapcsolattal a 80-as porton, így felesleges böngészővel meglátogatni (nem fog látni semmit).

Átmenet a kódaláírásról (PFX) a tokenos aláírásra: Az aláíráskor semmit sem kell megváltoztatnia. Ha korábban az említett PFX fájllal írta alá, úgy kezdje el használni a tanúsítványtároló hivatkozást (/s My). A Safenet segédalkalmazás mindenről gondoskodik.

Tanúsítványtároló

A tanúsítvány több helyen (több tárolóhelyen) tárolható, és többféleképpen „hívható”. Régebben lehetőség volt a tanúsítványt PFX fájlként elmenteni, de ez már nem lehetséges. Egy PFX fájlt bárki ellophat, és bár a PFX jelszóval védett, ez nagy biztonsági kockázatot jelent (és a jelszavak gyakran nagyon gyengék). A PFX különösen hasznos az S/MIME tanúsítványok biztonsági mentéséhez vagy a weben.

A Code Signing kódaláíró tanúsítvány tárolásának szokásos módja a tokenen való tárolás, majd a tanúsítványban szereplő subjectre hivatkozás. Ez a módszer biztonságos és gyakorlatilag megegyezik a korábbi PFX aláírással. A tokenről nem exportálható, mivel privát kulcs nélkül a tanúsítvány használhatatlan, így nem lehet vele visszaélni; ha a jelszót ötször rosszul írják be, a token zárolásra kerül.

A tanúsítvány ajánlott és modern tárolási módja a felhő. Javasoljuk, hogy hagyja el a tokent, és használjon felhőalapú HSM-et, amely biztonságosabb, az aláírási folyamat pedig nem változik. Lásd a Code Signing Centrum cikket.

Az tároló használatával történő aláíráshoz ezután a következő paraméterre van szükség /n SubjectName:

signtool sign /n "My Company Certificate" /td sha256 /fd sha256 /t http://timestamp.digicert.com C:test.exe

Vagy kiválaszthatja az alapértelmezett A My storage (Saját tároló) lehetőséget, és az aláíró SW 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 segítségével

A kódaláírás automatizálása nagyon keresett, a tokenen lévő tanúsítvánnyal azonban nem lehet automatikusan aláírni; szerveren sem használható. Szerencsére ismerünk olyan szolgáltatásokat, amelyek alkalmasak az aláírás automatizálására. A DigiCert kínálja a KeyLocker szolgáltatást, illetve a Software Trust Manager szolgáltatást. Az aláírási kulcsok tárolhatók felhőalapú HSM-ben is az Azure vagy a Google Cloud rendszerében.

A kódaláírás automatizálási lehetőségeivel kapcsolatos további információkért olvassa el a Code Signing Centrum cikket.

Aláírás ellenőrzés

Most már tudja, hogyan kell aláírni, és megadta az alkalmazásának az első megbízható aláírást. Biztosan kíváncsi, hogyan ellenőrizheted az aláírást.

A signtool segítségével ellenőrizheti is:

signtool verify C:test.exe

Az ellenőrzés egyszerűbb módja a fájl tulajdonságainak megtekintése a Windows Intézőben. Az aláírás részleteit a használt tanúsítvány tényleges részleteiig „górcső alá veheti”.

Aplikáció aláírásának részletei a Windows Intézőjében
Aplikáció aláírásának részletei a Windows Intézőjében

Kérdése van?

Ne habozzon kapcsolatba lépni ügyfélszolgálatunkkal, amely tanácsot ad és segít Önnek.

Hívjon minket

ZONER Kft.

Práter utca 9. 3. em. 305.
9024 Győr

Adószám: 13576712-2-08
Közösségi adószám: HU13576712