Megosztás a következőn keresztül:


SignTool.exe (aláíró eszköz)

A Sign Tool egy parancssori eszköz, amely digitálisan aláírja a fájlokat, ellenőrzi az aláírásokat a fájlokban, és időbélyegeket is tartalmaz.

Ez az eszköz automatikusan telepítve van a Visual Studióval. Az eszköz futtatásához használja a Visual Studio fejlesztői parancssorát vagy a Visual Studio Developer PowerShellt.

Megjegyzés

A Windows 10 SDK, Windows 10 HLK, Windows 10 WDK és Windows 10 ADK 20236-os és újabb buildjeihez meg kell adnia az emésztési algoritmust. A SignTool sign parancshoz meg kell adni a /fdfájlemésztési algoritmust és az /tdidőbélyeg-kivonatoló algoritmus beállítását az aláírás és az időbélyeg-betöltés során. Hiba (1-es hibakód) jelenik meg, ha /fd nincs megadva az aláírás során, és ha /td nincs megadva az időbélyeg-meghatározás során.

A parancssorba írja be a következőt:

Szintaxis

signtool [command] [options] [file_name | ...]  

Paraméterek

Argumentum Description
command A fájlon végrehajtandó műveletet meghatározó négy parancs (catdb, sign, Timestamp, vagy Verify) egyike. Az egyes parancsok leírásáért tekintse meg a következő táblázatot.
options Egy parancsot módosító lehetőség. A globális /q és /v a beállítások mellett minden parancs egy egyedi beállításkészletet is támogat.
file_name Egy aláírandó fájl elérési útja.

A Sign Tool az alábbi parancsokat támogatja. Az egyes parancsok különböző beállításkészletekkel vannak használva, amelyek a megfelelő szakaszokban szerepelnek.

Parancs Leírás
catdb Katalógusfájlt ad hozzá egy katalógusadatbázishoz, vagy eltávolítja azt onnan. A katalógusadatbázisok a katalógusfájlok automatikus keresésére szolgálnak, és a GUID azonosítja azokat. A parancs által támogatott beállítások listáját a catdbcatdb parancsbeállítások című témakörben találja.
sign Digitálisan aláírja a fájlokat. A digitális aláírások megvédik a fájlokat az illetéktelen módosítástól, és lehetővé teszik a felhasználók számára, hogy aláíró tanúsítvány alapján ellenőrizzék az aláírót. A parancs által támogatott beállítások listáját a signParancsbeállítások aláírása című témakörben találja.
Timestamp Időbélyegző fájlok. A parancs által támogatott beállítások listáját a TimeStampTimeStamp parancsbeállítások című témakörben találja.
Verify Ellenőrzi a fájlok digitális aláírását annak meghatározásával, hogy az aláíró tanúsítványt megbízható hatóság adta-e ki, visszavonták-e az aláíró tanúsítványt, és opcionálisan azt is, hogy az aláíró tanúsítvány érvényes-e egy adott szabályzatra. A parancs által támogatott beállítások listáját a VerifyParancsbeállítások ellenőrzése című témakörben találja.

Az alábbi beállítások az összes Sign Tool-parancsra vonatkoznak.

Globális lehetőség Description
/K Nem jelenít meg kimenetet, ha a parancs sikeresen fut, és minimális kimenetet jelenít meg, ha a parancs meghiúsul.
/V Részletes kimenetet jelenít meg, függetlenül attól, hogy a parancs sikeresen fut-e vagy sikertelen, és figyelmeztető üzeneteket jelenít meg.
/Debug Hibakeresési információkat jelenít meg.

catdb parancsbeállítások

Az alábbi táblázat a paranccsal használható beállításokat sorolja fel catdb .

Catdb lehetőség Description
/d Megadja, hogy az alapértelmezett katalógusadatbázis frissült-e. Ha sem a, sem a /d/g beállítást nem használja, a Sign Tool frissíti a rendszerösszetevőt és az illesztőprogram-adatbázist.
/gGUID Megadja, hogy a globálisan egyedi azonosító GUID azonosítója által azonosított katalógusadatbázis frissült-e.
/r Eltávolítja a megadott katalógusokat a katalógus-adatbázisból. Ha ez a beállítás nincs megadva, a Sign Tool hozzáadja a megadott katalógusokat a katalógus-adatbázishoz.
/u Megadja, hogy a rendszer automatikusan létrehoz egy egyedi nevet a hozzáadott katalógusfájlokhoz. Szükség esetén a rendszer átnevezi a katalógusfájlokat, hogy megakadályozza a névütközést a meglévő katalógusfájlokkal. Ha ez a beállítás nincs megadva, a Sign Tool felülír minden olyan meglévő katalógust, amelynek neve megegyezik a hozzáadandó katalógus nevével.

parancsbeállítások aláírása

Az alábbi táblázat a paranccsal használható beállításokat sorolja fel sign .

Parancs aláírása lehetőség Description
/a Automatikusan kiválasztja a legjobb aláíró tanúsítványt. A Sign Tool megtalálja az összes érvényes tanúsítványt, amely megfelel az összes megadott feltételnek, és kiválasztja azt, amelyik a leghosszabb ideig érvényes. Ha ez a lehetőség nincs megadva, a Sign Tool várhatóan csak egy érvényes aláíró tanúsítványt talál.
/acFájl Hozzáad egy további tanúsítványt a fájlból az aláírási blokkhoz.
/as Hozzáfűzi ezt az aláírást. Ha nincs elsődleges aláírás, akkor ez az aláírás lesz az elsődleges aláírás.
/cCertTemplateName Megadja az aláíró tanúsítvány tanúsítványsablonjának nevét (Egy Microsoft-bővítményt).
/cspCSPName Megadja a titkos kulcs tárolóját tartalmazó titkosítási szolgáltatót (CSP).
/dDesc Megadja az aláírt tartalom leírását.
/duURL Az aláírt tartalom kibontott leírásához egy egységes erőforrás-keresőt (URL-címet) ad meg.
/fSignCertFile Megadja az aláíró tanúsítványt egy fájlban. Ha a fájl személyes információcsere (PFX) formátumban van, és jelszóval van védve, a jelszó megadásához használja a /p lehetőséget. Ha a fájl nem tartalmaz titkos kulcsokat, a és /kc a /csp beállításokkal adja meg a CSP-t és a titkoskulcs-tároló nevét.
/fd Megadja a fájlkivonatoló algoritmust, amelyet a fájladák létrehozásához használnak.
Megjegyzés: Hiba jön létre, ha a /fd kapcsoló nincs megadva az aláírás során.
/fdcertHash A sztring certHash megadása alapértelmezés szerint az aláíró tanúsítványon használt algoritmusra érvényes.
Megjegyzés: Hiba jön létre, ha a /fd kapcsoló nincs megadva az aláírás során.
/iKiállító neve Megadja az aláíró tanúsítvány kiállítójának nevét. Ez az érték a teljes kiállító nevének alsztringje lehet.
/kcPrivKeyContainerName Megadja a titkos kulcs tárolójának nevét.
/nSubjectName Megadja az aláíró tanúsítvány tulajdonosának nevét. Ez az érték a teljes tulajdonosnév alsztringje lehet.
/nph Ha támogatott, letiltja a végrehajtható fájlok lapkivonatait. Az alapértelmezett értéket a SIGNTOOL_PAGE_HASHES környezeti változó és a wintrust.dll verzió határozza meg. Ezt a beállítást a rendszer figyelmen kívül hagyja a nem PE-fájlok esetében.
/pJelszó Megadja a PFX-fájlok megnyitásakor használni kívánt jelszót. (PfX-fájl megadásához használja a /f lehetőséget.)
/p7Elérési út Azt adja meg, hogy minden megadott tartalomfájlhoz létre legyen hozva egy nyilvános kulcsú titkosítási szabvány (PKCS) #7 fájl. A PKCS #7 fájlok neve elérési út\filename.p7.
/p7ceÉrték Megadja az aláírt PKCS #7 tartalom beállításait. Állítsa az Érték értékét "Embedded" értékre, hogy beágyazza az aláírt tartalmat a PKCS #7 fájlba, vagy a "DetachedSignedData" értékre egy leválasztott PKCS #7 fájl aláírt adatrészének előállításához. Ha a /p7ce beállítás nincs használatban, az aláírt tartalom alapértelmezés szerint beágyazva lesz.
/p7co<OID> Megadja az aláírt PKCS #7 tartalmat azonosító objektumazonosítót (OID).
/ph Ha támogatott, lapkivonatokat hoz létre a végrehajtható fájlokhoz.
/rRootSubjectName Megadja annak a főtanúsítványnak a nevét, amelybe az aláíró tanúsítványnak láncot kell fűznie. Ez az érték a főtanúsítvány teljes tulajdonosi nevének alsztringje lehet.
/sStoreName Meghatározza a tanúsítvány keresésekor megnyíló tárolót. Ha ez a beállítás nincs megadva, megnyílik az My áruház.
/sha1Hash Az aláíró tanúsítvány SHA1 kivonatának megadása. Az SHA1 kivonat általában akkor van megadva, ha több tanúsítvány megfelel a többi kapcsoló által megadott feltételeknek.
/sm Megadja, hogy a rendszer a felhasználói tároló helyett egy gépi tárolót használjon.
/tURL Az időbélyeg-kiszolgáló URL-címét adja meg. Ha ez a beállítás (vagy /tr) nincs jelen, az aláírt fájl nem lesz időbélyegzve. Figyelmeztetés jön létre, ha az időbélyegzés sikertelen. Ez a beállítás nem használható a /tr beállítással.
/tdAlg /tr Az RFC 3161 időbélyeg-kiszolgáló által használt kivonatoló algoritmus lekérésére használható.
Megjegyzés: Hiba jön létre, ha /td nem jelenik meg időbélyegző közben.
/trURL Az RFC 3161 időbélyeg-kiszolgáló URL-címét adja meg. Ha ez a beállítás (vagy /t) nincs jelen, az aláírt fájl nem lesz időbélyegzve. Figyelmeztetés jön létre, ha az időbélyegzés sikertelen. Ez a beállítás nem használható a /t beállítással.
/uHasználat Meghatározza a kibővített kulcshasználatot (EKU), amelyeknek szerepelnie kell az aláíró tanúsítványban. A használati érték OID vagy sztring alapján adható meg. Az alapértelmezett használat a "Kódaláírás" (1.3.6.1.5.5.7.3.3).
/uw A "Windows rendszerösszetevő-ellenőrzés" (1.3.6.1.4.1.311.10.3.6) használatát határozza meg.

Használati példákért lásd: A SignTool használata a fájl aláírásához.

TimeStamp-parancsbeállítások

Az alábbi táblázat a paranccsal használható beállításokat sorolja fel TimeStamp .

TimeStamp beállítás Description
/p7 Időbélyegek PKCS #7 fájlok.
/tURL Az időbélyeg-kiszolgáló URL-címét adja meg. A lepecsételt fájlnak korábban alá kell írnia. /t A vagy a /tr beállítás megadása kötelező.
/tdAlg /tr Az RFC 3161 időbélyeg-kiszolgáló által használt kivonatoló algoritmus lekérésére használható.
Megjegyzés: Hiba jön létre, ha /td nem jelenik meg időbélyegző közben.
/tpIndex Az idő lebélyegzi az aláírást az indexben.
/trURL Az RFC 3161 időbélyeg-kiszolgáló URL-címét adja meg. A lepecsételt fájlnak korábban alá kell írnia. /tr A vagy a /t beállítás megadása kötelező.

Használati példa: Időbélyegek hozzáadása korábban aláírt fájlokhoz.

Parancsbeállítások ellenőrzése

Ellenőrzés lehetőség Description
/a Itt adhatja meg, hogy az összes metódus használható-e a fájl ellenőrzésére. Először is a katalógus-adatbázisok keresésével állapítja meg, hogy a fájl be van-e jelentkezve egy katalógusba. Ha a fájl nincs bejelentkezve egyik katalógusba sem, a Sign Tool megpróbálja ellenőrizni a fájl beágyazott aláírását. Ez a beállítás akkor ajánlott, ha olyan fájlokat ellenőriz, amelyek esetleg bejelentkeztek egy katalógusba, vagy nem. Ilyen fájlok például a Windows-fájlok vagy -illesztőprogramok.
/ad Megkeresi a katalógust az alapértelmezett katalógusadatbázis használatával.
/agCatDBGUID Megkeresi a CatDBGUID által azonosított katalógus-adatbázis katalógusát.
/all Ellenőrzi az összes olyan aláírást egy fájlban, amely több aláírást is tartalmaz.
/as Megkeresi a katalógust a rendszerösszetevő (illesztőprogram) katalógus-adatbázisával.
/cCatFile A katalógusfájlt név szerint adja meg.
/d Megadja, hogy a Sign Toolnak ki kell nyomtatnia a leírást és a leírás URL-címét.
/dsIndex Ellenőrzi az aláírást egy megadott helyen.
/hash (SHA1|SHA256) Egy választható kivonatolási algoritmust ad meg, amelyet egy katalógusban lévő fájl keresésekor használhat.
/kp Megadja, hogy az ellenőrzést a kernelmódú illesztőprogram-aláírási szabályzattal kell elvégezni.
/ms Több ellenőrző szemantikát használ. Ez egy WinVerifyTrust-hívás alapértelmezett viselkedése Windows 8 és újabb rendszeren.
/oVáltozat Ellenőrzi a fájlt az operációs rendszer verziója alapján. A verzió a következő űrlapot tartalmazza: PlatformID:VerMajor. VerMinor. BuildNumber. A platformazonosító egy enumerálási PlatformID tag mögöttes értékét jelöli. Fontos: A kapcsoló használata /o ajánlott. Ha /o nincs megadva, SignTool.exe váratlan eredményeket adhat vissza. Ha például nem tartalmazza a kapcsolót, előfordulhat, hogy a /o régebbi operációs rendszeren helyesen érvényesítő rendszerkatalógusok nem megfelelően érvényesítik az újabb operációs rendszereken.
/p7 Ellenőrzi a PKCS #7 fájlokat. A PKCS #7 érvényesítéséhez nincs meglévő szabályzat. A rendszer ellenőrzi az aláírást, és létrehoz egy láncot az aláíró tanúsítványhoz.
/pa Megadja, hogy az alapértelmezett authenticode ellenőrzési szabályzatot kell használni. Ha a /pa beállítás nincs megadva, a Sign Tool a Windows illesztőprogram-ellenőrzési szabályzatát használja. Ez a beállítás nem használható a catdb beállításokkal.
/pgPolicyGUID A GUID által megadott ellenőrzési szabályzatot adja meg. A PolicyGUID az ellenőrzési szabályzat ActionID azonosítójának felel meg. Ez a beállítás nem használható a catdb beállításokkal.
/ph Meghatározza, hogy a Sign Toolnak ki kell nyomtatnia és ellenőriznie kell az oldalkivonat értékeit.
/rRootSubjectName Megadja annak a főtanúsítványnak a nevét, amelybe az aláíró tanúsítványnak láncot kell fűznie. Ez az érték a főtanúsítvány teljes tulajdonosi nevének alsztringje lehet.
/tw Megadja, hogy figyelmeztetést kell létrehozni, ha az aláírás nincs időbélyegzve.

Használati példákért lásd: A SignTool használata a fájla aláírásának ellenőrzéséhez.

Visszatérési érték

A Sign Tool a következő kilépési kódok egyikét adja vissza, amikor leáll.

Kilépési kód Leírás
0 A végrehajtás sikeres volt.
1 A végrehajtás sikertelen volt.
2 A végrehajtás figyelmeztetésekkel fejeződött be.

Példák

A következő parancs hozzáadja a katalógusfájlt MyCatalogFileName.cat a rendszerösszetevőhöz és az illesztőprogram-adatbázishoz. A /u beállítás egyedi nevet hoz létre, ha szükséges, hogy megakadályozza a nevű MyCatalogFileName.catmeglévő katalógusfájl cseréjét.

signtool catdb /v /u MyCatalogFileName.cat  

A következő parancs automatikusan aláír egy fájlt a legjobb tanúsítvány használatával.

signtool sign /a /fd SHA256 MyFile.exe

A következő parancs digitálisan aláír egy fájlt egy jelszóval védett PFX-fájlban tárolt tanúsítvánnyal.

signtool sign /f MyCert.pfx /p MyPassword /fd SHA256 MyFile.exe

Az alábbi parancs digitálisan aláírja és időbélyeggel bélyegzi a fájlokat. A fájl aláírásához használt tanúsítvány egy PFX-fájlban van tárolva.

signtool sign /f MyCert.pfx /t http://timestamp.digicert.com /fd SHA256 MyFile.exe

A következő parancs aláír egy fájlt egy tárolóban My található tanúsítvánnyal, amelynek tulajdonosneve My Company Certificate.

signtool sign /n "My Company Certificate" /fd SHA256 MyFile.exe

Az alábbi parancs aláír egy ActiveX-vezérlőt, és információt nyújt, amely akkor jelenik meg a böngészőben, amikor a felhasználó a vezérlő telepítésére kéri.

Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html /fd SHA256 MyControl.exe

Az alábbi parancs időtúllépést jelez egy már digitálisan aláírt fájlra.

signtool timestamp /t http://timestamp.digicert.com MyFile.exe

A következő parancs időbélyeggel bélyegz meg egy fájlt egy RFC 3161 időbélyegző kiszolgálóval.

signtool timestamp /tr http://timestamp.digicert.com /td SHA256 MyFile.exe

A következő parancs ellenőrzi, hogy egy fájl aláírása megtörtént-e.

signtool verify MyFile.exe  

A következő parancs ellenőrzi a katalógusba esetleg bejelentkezett rendszerfájlt.

signtool verify /a SystemFile.dll  

A következő parancs ellenőrzi a nevű katalógusba MyCatalog.catbejelentkezett rendszerfájlt.

signtool verify /c MyCatalog.cat SystemFile.dll  

Lásd még