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.

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

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.

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

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
Hasznos volt Önnek ez a cikk?