Oblíbené otázky o certifikátech pro podepisování kódu
Otázka: K čemu se používají certifikáty pro podepisování kódů?
Odpověď: Certifikáty Code Signing se doporučují používat všem vydavatelům, kteří distribuují kód nebo obsah na internetu nebo v podnikových sítích. Klienti si uvědomují rizika spojená se stahováním souborů online, a proto důvěřují podepsaným souborům v mnohem větší míře než nepodepsaným. Po zobrazení podpisu vydavatele klient pochopí, že soubor je autentický a neobsahuje škodlivý software. Podpis vydavatele představuje spolehlivý způsob ochrany aplikace před zásahy třetích stran.
Otázka: Jaké dokumenty jsou nutné k objednání certifikátu Code Signing?
Odpověď: Standardní certifikáty Code Signing jsou k dispozici pro fyzické osoby podnikatele a právnické osoby.
V případě společnosti Sectigo(Comodo) budete potřebovat:
- odkaz na státní databázi s registrací vaší společnosti;
- kontaktní údaje: jméno, e-mail, telefon, titul;
- sken průkazu totožnosti s fotografií vydaného státem (jako je pas, řidičský průkaz atd.) je vyžadován k ověření žadatele (kontakt na administrátora) na objednávce;
- selfie s průkazem totožnosti s fotografií vydaným vládou [pas, řidičský průkaz] (měl by obsahovat fotografii, jméno).
Jedná se o povinné požadavky společnosti Sectigo, více informací:
https://sectigo.com/knowledge-base/detail/OV-Code-Signing-Validation-for-Organizations-and-Individuals/kA01N000000brb0 - pro ověření telefonního čísla: odkaz na online adresář s registrací vaší společnosti(z kompass.com nebo číslo DUNS).
Tento profil by měl obsahovat název společnosti, adresu a telefonní číslo.
V případě služby Digicert budete potřebovat:
- odkaz na vládní databázi s registrací vaší společnosti;
- kontaktní údaje: jméno, e-mail, telefon, titul;
- Pro ověření telefonního čísla: registraci společnosti na adrese dnb.com/DUNS nebo státní registraci s telefonním číslem.
V případě společnosti Certum budete potřebovat:
- registrační dokument organizace
- Pověření/plnou moc: Podepsaná v souladu se způsobem zastupování uvedeným v registračním dokumentu. *Vyžadováno pouze v případě, že osoba žádající o certifikát není oprávněna zastupovat organizaci samostatně.
- Faktura za komunální služby (vyžadováno pouze pro EV): Faktura za komunální služby vystavená na jméno organizace, která potvrzuje aktuální adresu sídla společnosti (např. faktura za plyn, elektřinu, vodu, pevnou telefonní linku, pevný internet, smlouva o pronájmu nebo nájmu kancelářských prostor).
Společnost LeaderTelecom nevydává certifikáty pro podepisování kódů fyzickým osobám.
Certifikát Code Signing EV je k dispozici pouze právnickým osobám. Požadavky na jeho vydání jsou stejné, ale ověření je důkladnější (kontrolují se státní zdroje).
Otázka: Jak podepsat kód pomocí certifikátu Code Signing?
Odpověď: Chcete-li podepsat kód, musíte jej nechat projít speciálním hashovacím algoritmem a poté pomocí svého soukromého klíče hash podepsat, čímž získáte digitální podpis. Poté vytvoříte podpisový blok, který obsahuje digitální podpis a certifikát Code Signing. Nástroje, jako je Authenticode, umožňují nastavit časové razítko podpisového bloku na základě aktuálního data a času. Nakonec podpisový blok s časovým razítkem svážete se softwarem. Nyní můžete podepsaný program zveřejnit na svých webových stránkách ke stažení.
Časové razítko je nutné, aby bylo zajištěno, že platnost kódu nevyprší s dobou platnosti certifikátu Code Signing. Pokud je váš kód opatřen časovým razítkem, bude digitální podpis platný i po vypršení platnosti certifikátu. Nový certifikát bude vyžadován pouze v případě, že budete chtít podepsat další kód. Pokud jste nevyužili možnost přidání časových razítek během procesu podepisování aplikace, budete muset kód znovu podepsat a odeslat zákazníkům.
Otázka: Jak používat certifikát po jeho zakoupení?
Odpověď: To závisí na typu certifikátu. Pokyny naleznete zde
Otázka: Co se stane, když platnost certifikátu Code Signing vyprší?
Odpověď: Certifikáty Code Signing jsou vydávány na dobu jednoho až tří let. Vypršení platnosti certifikátu Code Signing znamená, že nemůžete vytvářet nové podpisy. Všechny minulé podpisy budou pro dané časové razítko funkční.
V případě certifikátu Microsoft Authenticode znamená použití časových razítek, že platnost kódu nevyprší, když vyprší platnost certifikátu.
Pokud časová razítka nepoužijete, budete muset po vypršení platnosti certifikátu kód znovu podepsat a odeslat zákazníkům.
Je třeba mít na paměti, že některé certifikáty vytváření časových razítek nepodporují (například certifikáty pro Netscape Object Signing a Sun Java).
Otázka: Jaký je rozdíl mezi podepisováním kódu a podepisováním dokumentů? Mohu podepisovat soubory PDF běžnými certifikáty Code Signing?
Odpověď: Certifikáty Code Signing mají nejčastěji rozšíření extKeyUsage s hodnotou Code Signing a někdy také komerční Code Signing. Nemají však hodnoty, které by umožňovaly jiné použití.
Z RFC 5280 pro rozšíření Extended Key Usage vyplývá, že "pokud je toto rozšíření uvedeno, pak by měl být certifikát použit pouze k dosažení jednoho z příslušných cílů".
V dané situaci je však certifikát Code Signing použit k podpisu dokumentu, který není kódem, což je přímým porušením specifikace certifikátů infrastruktury veřejných klíčů X.509.
Z tohoto důvodu existuje vysoká pravděpodobnost, že aplikace Adobe Reader odmítne podpisy PDF vygenerované pomocí certifikátu pro podepisování kódů. A i když se nyní problémy s certifikáty nevyskytují, není zaručeno, že se tak nestane v budoucnu s vydáním nových verzí aplikace Adobe Reader. Z tohoto důvodu mnoho prodejců certifikátů rozlišuje mezi certifikáty pro podepisování kódu a certifikáty pro podepisování dokumentů (zejména certifikáty pro podepisování PDF). Ceny certifikátů pro PDF jsou často několikanásobně vyšší.
Otázka: Existují nějaké rozdíly mezi certifikáty pro podepisování kódu v jazycích Java, Adobe AIR, Authenticode a VBS?
Odpověď: Jak vyplývá ze specifikace RFC 5280, k podepisování kódu v jazyce Java, AIR, Authenticode, VBS atd. lze použít jakýkoli certifikát pro podepisování kódu. Z technického hlediska tedy nejsou mezi certifikáty pro podepisování kódu žádné rozdíly.
Některé certifikační autority však mohou stanovit určitá omezení rozsahu svých certifikátů pro podepisování kódů.
Otázka: Jak podepsat instalační soubory Visual Studio .msi? Po podepsání souboru .msi ztratí všechny soubory .exe obsažené v instalačním balíčku své podpisy. Co je třeba udělat, aby podpisy těchto souborů zůstaly zachovány i během instalace balíčku v počítači klienta?
Odpověď: Aplikace Visual Studio vytvoří při kompilaci dvě složky: obj a bin. Výstupní soubory se nejčastěji kopírují ze složky obj do složky bin. Pokud podepíšete soubory ve složce bin, budou později přepsány soubory ze složky obj. Východisko: podepisování exe souborů umístěných ve složce obj. V tomto případě zůstanou zachovány podpisy všech souborů exe.
Otázka: Existují nějaká omezení počtu aplikací, které lze podepsat pomocí certifikátu Code Signing?
Odpověď: Ne. Certifikátem Code Signing můžete podepsat libovolný počet aplikací za předpokladu, že je distribuuje organizace, pro kterou byl certifikát vydán.
Otázka: Mohu pomocí certifikátu Code Signing podepisovat ovladače (v režimu jádra)?
Odpověď: Ne, od května 2021 již není podporováno podepisování ovladačů pro Windows 8, 10. Zdroj: Vyřazení certifikátů vydavatele softwaru.
Otázka: Jak obejít inteligentní obrazovku při instalaci podepsané aplikace v systému Windows® 8/10/11?
Odpověď: Musíte použít certifikát EV Code Signing. Programy podepsané certifikátem EV Code Signing jsou automaticky důvěryhodné, i když pro tohoto vydavatele nebo soubor neexistuje žádná reputace. Pověst lze nastavit pouze pro certifikáty Authenticode, které byly vydány certifikační autoritou, jež je členem programu kořenových certifikátů systému Windows®.
Můžete si u nás objednat následující certifikáty EV:
Certum EV Code Signing in the Cloud (Podepisování kódu v cloudu)
Sectigo(Comodo) EV Code Signing
Otázka: Je možné získat reputaci v aplikaci SmartScreen pomocí standardního certifikátu Code Signing?
Odpověď: Ano, je to možné, ale vyžaduje to přibližně 3000 stažení aplikace (přibližné údaje).
Otázka: Mohu podepisovat software pro Mac pomocí vašich produktů Code Signing?
Odpověď: Ne, podívejte se prosím na https://developer.apple.com/support/code-signing/.
Otázka: Soubory PFX již nejsou k dispozici pro certifikáty Code Signing. Jaké jsou další možnosti?
Odpověď: Od 1. 6. 2023 již nejsou soubory PFX pro certifikáty Code Signing k dispozici.
Moderní standardy vyžadují, aby soukromé klíče pro certifikáty pro podepisování kódu byly generovány a uchovávány v bezpečném prostředí.
To obvykle znamená použití hardwarových zařízení, jako jsou HSM, čipové karty nebo zabezpečené USB tokeny.
Generování soukromých klíčů na těchto zařízeních zajišťuje, že klíč nelze extrahovat nebo exportovat, čímž se zabrání vydávání certifikátů ve formátu PFX.
Společnost Sectigo nyní nabízí své certifikáty na USB tokenech:
https://www.leaderssl.com/suppliers/comodo/products/code_signing.
https://www.leaderssl.com/suppliers/comodo/products/code_signing_ev
Jako alternativu nyní nabízíme certifikáty od společnosti Certum:
https://www.leaderssl.com/suppliers/certum/products/code_signing_ev
https://www.leaderssl.com/suppliers/certum/products/code_signing
Tyto certifikáty jsou označovány jako"v cloudu".
Budete muset použít speciální desktopovou aplikaci a podepsat je prostřednictvím nástroje signtool.