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 /fd
fájlemésztési algoritmust és az /td
idő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 catdb catdb 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 sign Parancsbeá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 TimeStamp TimeStamp 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 Verify Parancsbeá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. |
/g GUID |
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. |
/ac Fá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. |
/c CertTemplateName |
Megadja az aláíró tanúsítvány tanúsítványsablonjának nevét (Egy Microsoft-bővítményt). |
/csp CSPName |
Megadja a titkos kulcs tárolóját tartalmazó titkosítási szolgáltatót (CSP). |
/d Desc |
Megadja az aláírt tartalom leírását. |
/du URL |
Az aláírt tartalom kibontott leírásához egy egységes erőforrás-keresőt (URL-címet) ad meg. |
/f SignCertFile |
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. |
/fd certHash |
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. |
/i Kiá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. |
/kc PrivKeyContainerName |
Megadja a titkos kulcs tárolójának nevét. |
/n SubjectName |
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. |
/p Jelszó |
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.) |
/p7 Elé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. |
/r RootSubjectName |
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. |
/s StoreName |
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. |
/sha1 Hash |
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. |
/t URL |
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. |
/td Alg |
/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. |
/tr URL |
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. |
/u Haszná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. |
/t URL |
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ő. |
/td Alg |
/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. |
/tp Index |
Az idő lebélyegzi az aláírást az indexben. |
/tr URL |
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. |
/ag CatDBGUID |
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. |
/c CatFile |
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. |
/ds Index |
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. |
/o Vá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. |
/pg PolicyGUID |
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. |
/r RootSubjectName |
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.cat
meglé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.cat
bejelentkezett rendszerfájlt.
signtool verify /c MyCatalog.cat SystemFile.dll
Lásd még
Visszajelzés
https://aka.ms/ContentUserFeedback.
Hamarosan elérhető: 2024-ben fokozatosan kivezetjük a GitHub-problémákat a tartalom visszajelzési mechanizmusaként, és lecseréljük egy új visszajelzési rendszerre. További információ:Visszajelzés küldése és megtekintése a következőhöz: