SignTool.exe (nástroj pro podpis)
Sign Tool je nástroj příkazového řádku, který digitálně podepíše soubory, ověří podpisy v souborech a časová razítka souborů.
Tento nástroj je automaticky nainstalován se sadou Visual Studio. Ke spuštění nástroje použijte Visual Studio Developer Command Prompt nebo Visual Studio Developer PowerShell.
Poznámka
Sada WINDOWS 10 SDK Windows 10 HLK Windows 10 WDK a Windows 10 ADK buildy 20236 a novější vyžadují zadání algoritmu digest. Příkaz SignTool sign
vyžaduje/fd
, aby během podepisování a časového razítka byla zadána možnost algoritmu digest souboru a /td
algoritmus časového razítka. Chyba (kód chyby 1) se vyvolá, pokud /fd
není zadán během podepisování a pokud /td
není zadán během časového razítka.
V příkazovém řádku zadejte následující:
Syntaxe
signtool [command] [options] [file_name | ...]
Parametry
Argument | Description |
---|---|
command |
Jeden ze čtyř příkazů (catdb , sign , Timestamp nebo Verify ), který určuje operaci, která se má se souborem provést. Popis jednotlivých příkazů naleznete v následující tabulce. |
options |
Volba, která upravuje příkaz. Kromě globálních /q možností a /v možností podporuje každý příkaz jedinečnou sadu možností. |
file_name |
Cesta k souboru, který chcete podepsat. |
Následující příkazy jsou podporovány nástrojem Sign Tool. Každý příkaz se používá s různou sadou možností, které jsou uvedeny v příslušných oddílech.
Příkaz | Popis |
---|---|
catdb |
Přidá nebo odebere soubor katalogu z databáze katalogů. Databáze katalogů slouží k automatickému vyhledávání souborů katalogu a jsou označeny identifikátorem GUID. Seznam možností podporovaných příkazem najdete v catdb tématu Možnosti příkazů catdb. |
sign |
Digitálně podepíše soubory. Digitální podpisy chrání soubory před neoprávněnými změnami a umožňují uživatelům ověřit podpis na základě podpisového certifikátu. Seznam možností podporovaných příkazem najdete v sign tématu Podepsání možností příkazu. |
Timestamp |
Opatří soubory časovým razítkem. Seznam možností podporovaných příkazem najdete v TimeStamp tématu Možnosti příkazu TimeStamp. |
Verify |
Ověří digitální podpis souborů stanovením, zda podpisový certifikát byl vydán důvěryhodnou autoritou, zda podpisový certifikát nebyl odvolán, a případně zda podpisový certifikát je platný pro konkrétní zásady. Seznam možností podporovaných příkazem najdete v Verify tématu Ověření možností příkazu. |
Tyto možnosti platí pro všechny příkazy nástroje pro podepisování.
Možnost Global | Description |
---|---|
/Q | Pokud se příkaz úspěšně spustí, nezobrazí se žádný výstup. Pokud se příkaz nezdaří, zobrazí se minimální výstup. |
/V | Zobrazí podrobný výstup bez ohledu na to, zda bude příkaz úspěšně spuštěn, nebo se nezdaří, a zobrazí upozornění. |
/Ladění | Zobrazí informace o ladění. |
Možnosti příkazu catdb
Následující tabulka uvádí možnosti, které se dají s příkazem catdb
použít.
Možnost Catdb | Description |
---|---|
/d |
Určuje, že výchozí databáze katalogů je aktualizována. Pokud není použita možnost /d ani /g možnost, nástroj Sign Tool aktualizuje systémovou komponentu a databázi ovladačů. |
/g Identifikátor guid |
Určuje, že databáze katalogu identifikovaná globálně jedinečným identifikátorem GUID se aktualizuje. |
/r |
Odebere zadané katalogy z databáze katalogů. Pokud není tato možnost zadána, nástroj Sign Tool přidá určené katalogy do databáze katalogů. |
/u |
Určuje, že přidaným souborům katalogu bude přiřazen jedinečný název. V případě potřeby jsou soubory katalogu přejmenovány, aby se předešlo konfliktům názvů s existujícími soubory katalogu. Pokud není tato možnost zadána, přepíše nástroj Sign Tool jakýkoli existující katalog, který má stejný název jako přidávaný katalog. |
Možnosti příkazu sign
Následující tabulka uvádí možnosti, které se dají s příkazem sign
použít.
Možnost příkazu sign | Description |
---|---|
/a |
Automaticky vybere nejlepší podpisový certifikát. Nástroj Sign Tool vyhledá všechny platné certifikáty, které splňují všechny zadané podmínky, a vybere ten, který je platný pro co nejdelší dobu. Pokud tato možnost není k dispozici, očekává nástroj Sign Tool pouze jeden platný podpisový certifikát. |
/ac Soubor |
Přidá další certifikát ze souboru do bloku podpisu. |
/as |
Připojí tento podpis. Pokud neexistuje žádný primární podpis, tento podpis se stane primárním podpisem. |
/c CertTemplateName |
Určuje název šablony certifikátu (rozšíření Microsoft) pro podpisový certifikát. |
/csp CSPName |
Určuje poskytovatele CSP (Cryptographic Service Provider), který obsahuje kontejner soukromého klíče. |
/d Desc |
Určuje popis podepsaného obsahu. |
/du Adresu url |
Určuje adresu URL (Uniform Resource Locator) pro rozšířený popis podepsaného obsahu. |
/f SignCertFile |
Určuje podpisový certifikát v souboru. Pokud je soubor ve formátu PFX (Personal Information Exchange) chráněný heslem, zadejte heslo pomocí /p možnosti . Pokud soubor neobsahuje privátní klíče, pomocí /csp možností a /kc zadejte název kontejneru CSP a privátního klíče. |
/fd |
Určuje soubor algoritmu digest pro vytváření podpisů souborů. Poznámka: Pokud /fd při podepisování není k dispozici přepínač, vygeneruje se chyba. |
/fd certHash |
Zadáním řetězce certHash se ve výchozím nastavení použije algoritmus použitý na podpisovém certifikátu. Poznámka: Pokud /fd při podepisování není k dispozici přepínač, vygeneruje se chyba. |
/i Issuername |
Určuje název vystavitele podpisového certifikátu. Tato hodnota může být podřetězec celého jména vystavitele. |
/kc PrivKeyContainerName |
Určuje název kontejneru soukromého klíče. |
/n SubjectName |
Určuje název předmětu podpisového certifikátu. Tato hodnota může být podřetězec celého názvu subjektu. |
/nph |
V případě podpory potlačuje hodnoty hash stránek pro spustitelné soubory. Výchozí hodnota je určena proměnnou prostředí SIGNTOOL_PAGE_HASHES a verzí wintrust.dll. Tato možnost je ignorována pro soubory, které nejsou typu PE. |
/p Heslo |
Určuje heslo, které má být použito při otevírání souboru PFX. (Pomocí možnosti /f zadejte soubor PFX.) |
/p7 Cestu |
Určuje, že soubor PKCS (Public Key Cryptography Standards) #7 je vytvořen pro každý zadaný soubor obsahu. Soubory PKCS #7 mají název path\filename.p7. |
/p7ce Hodnotu |
Určuje volby pro podepsaný obsah PKCS #7. Pokud chcete vložit podepsaný obsah do souboru PKCS #7, nastavte Hodnotu na Embedded, nebo na Hodnotu DetachedSignedData vytvořte podepsanou datovou část odpojeného souboru PKCS #7. Pokud se /p7ce tato možnost nepoužívá, je podepsaný obsah ve výchozím nastavení vložený. |
/p7co <OID> |
Určuje identifikátor objektu (OID), který identifikuje podepsaný obsah PKCS #7. |
/ph |
V případě podpory generuje hodnoty hash stránek pro spustitelné soubory. |
/r RootSubjectName |
Určuje název předmětu kořenového certifikátu, jehož článkem musí podpisový certifikát být. Tato hodnota může být podřetězec celého názvu předmětu kořenového certifikátu. |
/s Storename |
Určuje úložiště k otevření při hledání certifikátu. Pokud tato možnost není zadána, My otevře se úložiště. |
/sha1 Hash |
Určuje algoritmus hash SHA1 podpisového certifikátu. Algoritmus hash SHA1 je obvykle použit, když více certifikátů splňuje kritéria stanovená ve zbývajících přepínačích. |
/sm |
Určuje použití úložiště počítače namísto úložiště uživatele. |
/t Adresu url |
Určuje adresu URL časového razítka serveru. Pokud tato možnost (nebo /tr ) neexistuje, nebude podepsaný soubor opatřen časovým razítkem. Pokud se opatření časovým razítkem nezdaří, vygeneruje se upozornění. Tuto možnost nelze s možností /tr použít. |
/td Alg |
Používá se s /tr možností vyžádat algoritmus digest, který používá server časového razítka RFC 3161. Poznámka: Pokud se během časového razítka /td nezadá, vygeneruje se chyba. |
/tr Adresu url |
Určuje adresu URL časového razítka serveru RFC 3161. Pokud tato možnost (nebo /t ) neexistuje, nebude podepsaný soubor opatřen časovým razítkem. Pokud se opatření časovým razítkem nezdaří, vygeneruje se upozornění. Tuto možnost nelze s možností /t použít. |
/u Použití |
Určuje použití rozšířeného klíče (EKU), který musí být součástí podpisového certifikátu. Hodnotu použití lze zadat pomocí OID nebo řetězce. Výchozí použití je „Podepisování kódu“ (1.3.6.1.5.5.7.3.3). |
/uw |
Určuje použití „Ověřování součástí systému Windows“ (1.3.6.1.4.1.311.10.3.6). |
Příklady použití najdete v tématu Podepsání souboru pomocí Nástroje SignTool.
Možnosti příkazu TimeStamp
Následující tabulka uvádí možnosti, které se dají s příkazem TimeStamp
použít.
Možnost TimeStamp | Description |
---|---|
/p7 |
Opatří soubory PKCS #7 časovým razítkem. |
/t Adresu url |
Určuje adresu URL časového razítka serveru. Soubor, který má být opatřen časovým razítkem, musí být nejprve podepsán. Je vyžadována /t /tr možnost nebo . |
/td Alg |
Používá se s /tr možností vyžádat algoritmus digest, který používá server časového razítka RFC 3161. Poznámka: Pokud se během časového razítka /td nezadá, vygeneruje se chyba. |
/tp Index |
Čas označí podpis v indexu. |
/tr Adresu url |
Určuje adresu URL časového razítka serveru RFC 3161. Soubor, který má být opatřen časovým razítkem, musí být nejprve podepsán. Je vyžadována /tr /t možnost nebo . |
Příklad použití najdete v tématu Přidání časových razítek do dříve podepsaných souborů.
Možnosti příkazu Verify
Možnost Verify | Description |
---|---|
/a |
Určuje, že všechny metody lze použít k ověření souboru. Nejprve se prohledají databáze katalogu a určí se, zda je soubor v katalogu podepsán. Pokud soubor není podepsán v žádném katalogu, nástroj Sign Tool se pokusí ověřit vložený podpis souboru. Tato možnost je doporučena při ověřování souborů, které mohou nebo nemusí být podepsány v katalogu. Mezi tyto soubory patří soubory systému Windows nebo ovladače. |
/ad |
Vyhledá katalog pomocí výchozí databáze katalogu. |
/ag CatDBGUID |
Vyhledá katalog v databázi katalogu, která je identifikovaná identifikátorem CatDBGUID. |
/all |
Ověří všechny podpisy v souboru, který obsahuje více podpisů. |
/as |
Vyhledá v katalogu pomocí databáze katalogů systémovou komponentu (ovladač). |
/c CatFile |
Určuje soubor katalogu podle názvu. |
/d |
Určuje, že má nástroj Sign Tool vytisknout popis a adresu URL popisu. |
/ds Index |
Ověřuje podpis na určené pozici. |
/hash (SHA1 |SHA256 ) |
Určuje volitelný hashovací algoritmus k použití pro hledání souboru v katalogu. |
/kp |
Určuje, že by mělo být provedeno ověření pomocí zásady podepisování ovladačů v režimu jádra. |
/ms |
Používá několik sémantik pro ověřování. Toto je výchozí chování volání WinVerifyTrust pro Windows 8 a vyšší. |
/o Verze |
Ověřuje soubor podle verze operačního systému. Verze má následující tvar: PlatformID:VerMajor. VerMinor. BuildNumber. PlatformID představuje základní hodnotu člena výčtu PlatformID . Důležité: Doporučuje se použít /o přepínač. Pokud /o není zadaný, může SignTool.exe vrátit neočekávané výsledky. Pokud například nezadáte /o přepínač, nemusí se katalogy systému, které správně ověřují ve starším operačním systému, správně ověřit v novějším operačním systému. |
/p7 |
Ověří soubory PKCS #7. Žádné existující zásady nejsou použity pro ověřování PKCS #7. Podpis je zkontrolován a řetězec je sestaven pro podpisový certifikát. |
/pa |
Určuje, že mají být použity výchozí zásady ověření pomocí technologie Authenticode. Pokud možnost /pa není zadána, použije nástroj Sign Tool zásady ověření ovladače systému Windows. Tuto možnost nelze použít s možnostmi catdb . |
/pg Identifikátor POLICYGUID |
Určuje zásady ověření podle identifikátoru GUID. Identifikátor PolicyGUID odpovídá ActionID zásady ověřování. Tuto možnost nelze použít s možnostmi catdb . |
/ph |
Určuje, že nástroj Sign Tool má tisknout a ověřit hash hodnoty stránky. |
/r RootSubjectName |
Určuje název předmětu kořenového certifikátu, jehož článkem musí podpisový certifikát být. Tato hodnota může být podřetězec celého názvu předmětu kořenového certifikátu. |
/tw |
Určuje, že by mělo být vygenerováno upozornění, pokud podpis nemá časové razítko. |
Příklady použití najdete v tématu Ověření podpisu souboru pomocí signatury SignTool.
Návratová hodnota
Nástroj Sign Tool vrátí jeden z následujících ukončovacích kódů při svém ukončení.
Ukončovací kód | Popis |
---|---|
0 | Spuštění proběhlo úspěšně. |
1 | Spuštění se nezdařilo. |
2 | Spuštění bylo dokončeno s varováními. |
Příklady
Následující příkaz přidá soubor katalogu MyCatalogFileName.cat do systémové komponenty a databáze ovladačů. Možnost /u
v případě potřeby vygeneruje jedinečný název, aby se zabránilo nahrazení existujícího souboru katalogu s názvem MyCatalogFileName.cat
.
signtool catdb /v /u MyCatalogFileName.cat
Následující příkaz podepíše soubor automaticky pomocí nejvhodnějšího certifikátu.
signtool sign /a /fd SHA256 MyFile.exe
Následující příkaz digitálně podepisuje soubor pomocí certifikátu uloženého v souboru PFX chráněném heslem.
signtool sign /f MyCert.pfx /p MyPassword /fd SHA256 MyFile.exe
Následující příkaz digitálně podepíše soubor a opatří ho časovým razítkem. Certifikát použitý k podepsání souboru je uložen v souboru PFX.
signtool sign /f MyCert.pfx /t http://timestamp.digicert.com /fd SHA256 MyFile.exe
Následující příkaz podepíše soubor pomocí certifikátu umístěného v úložišti My
s názvem My Company Certificate
subjektu .
signtool sign /n "My Company Certificate" /fd SHA256 MyFile.exe
Následující příkaz podepíše ovládací prvek ActiveX a poskytne informace, které se zobrazí v prohlížeči, když se uživateli zobrazí výzva k instalaci ovládacího prvku.
Signtool sign /f MyCert.pfx /d: "MyControl" /du http://www.example.com/MyControl/info.html /fd SHA256 MyControl.exe
Následující příkaz opatří digitálně podepsaný soubor časovým razítkem.
signtool timestamp /t http://timestamp.digicert.com MyFile.exe
Následující příkaz označí soubor časovým razítkem pomocí serveru časového razítka RFC 3161.
signtool timestamp /tr http://timestamp.digicert.com /td SHA256 MyFile.exe
Následující příkaz ověří, že soubor byl podepsán.
signtool verify MyFile.exe
Následující příkaz ověří systémový soubor, který může být podepsán v katalogu.
signtool verify /a SystemFile.dll
Následující příkaz ověří systémový soubor, který je podepsaný v katalogu s názvem MyCatalog.cat
.
signtool verify /c MyCatalog.cat SystemFile.dll
Viz také
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro