Code Signing certifikáty konečně dostaly pravidla

21. 5. 2018 | Jindřich Zechmeister

Vystavování certifikátů Code Signing pro podpis kódu bude mít svá pravidla, stejně jako ostatních certifikátů. Velké CA se domluvily na přijetí dokumentu Minimum Requirements, který zaštítí postupy pro ověření žadatelů a tzv. best practices pro použití Code Signing certifikátů. V článku najdete i Best practises pro používání Code Signing certifikátů.

Pravidla jsou výsledkem spolupráce Microsoftu a certifikačních autorit

S vůbec prvními pravidly pro vystavování Code Signing certifikátů přichází sdružení Certificate Authority Security Council (CASC), které, jak název napovídá, spojuje velké certifikační autority. Ve vytvoření Minimum Requirements pro Code Signing certifikáty se též hodně angažoval Microsoft. Důvodem je skutečnost, že většina vystavených Code Signing certifikátů je určeno pro tuto platformu, která má 90% tržní podíl. Microsoft bude chtít, aby se certifikační autority pravidly řídily od 1. února 2017.

Motivací pro jejich vytvoření bylo zejména sjednocení odlišného přístupu CA k žadatelům a různě (ne)příšné podmínky získání. Situace, kdy mohl být jeden žadatel odmítnut první certifikační autoritou, ale obratem se mohl obrátit na druhou, která mu certifikát vydala, nebyla zjevně šťastná.

Pravidla najdete v dokumentu Minimum Requirements for Code Signing Certificates na webu CASC.

Jak Code Signing certifikáty správně používat?

Součástí zmíněného dokumentu jsou i tzv. Best practises, což jsou doporučení CA pro správné a bezpečné použití certifikátů. Hlavním principem bezpečného používání Code Signing certifikátu je ochrana privátního klíče. S privátním klíčem certifikátu může útočník podepisovat vlastní aplikace; že je jeho motivací podepisovat ukradeným certifikátem škodlivé aplikace a malware není třeba zdůrazňovat.

CASC s novými pravidly doporučuje využívat:

  • Silnou ochranu privátních klíčů. Nejlépe pomocí zařízení HSM (hardware security module) splňující normu FIPS 140-2 Level 2. Privátní klíč se nikdy nesmí dostat do nepovolaných rukou a proto je k jeho ochraně vhodné použít hardwarové zařízení (HSM), kde jsou klíče bezpečně uloženy. Většina zneužití Code Signing certifikátů je způsobena nedostatečnou ochranou certifikátu a privátního klíče, které útočník zcizí a zneužije.
  • Možnost revokace. Většinou o revokování certifikátů žádá až výzkumník, který objevil certifikátem podepsaný malware, nebo sám Microsoft. Vlastníci certifikátu by měli Code Signing certifikát revokovat okamžitě při jakémkoliv náznaku podezření.
  • Zlepšený Time-stamping. Time stamping, tedy opatřování podpisu časovým razítkem, je velice důležité. CASC se snaží zlepšit současný neutěšený stav a tlačí certifikační autority k vlastním Time stamp serverům, které mohou jejich zákazníci využít. Už tedy nebudete muset využívat pouze jeden Time-stamp server pro certifikáty od Symantecu, nebo dokonce hledat server jiné CA.

Pokud nemáte drahé řešení typu HSM, můžete zvýšit bezpečnost podepisování aplikací díky EV Code Signing certifikátu. Ten je uložen na USB tokenu a jeho krádež musí proběhnout fyzicky. I tak je možnost zneužití nulová, protože útočník by musel uhodnout vaše heslo pro použití tokenu, který se po pěti neúspěšných pokusech zablokuje.

S žádostí o revokaci se můžete obrátit na svého dodavatele certifikátů, nebo přímo na certifikační autoritu. Po autorizaci takové žádosti je certifikát zcela zneplatněn a už jej nelze používat. Pak je potřeba vydat zcela nový certifikát. Pro kontrolu platnosti certifikátů či jejich revokaci slouží protokol OCSP; díky němu může klient nebo operační systém dotazem na OCSP server CA ihned ověřit, zdali je certifikát stále platný či nikoliv.

Časové razítko by mělo být za všech okolností součástí podpisu. Už jen z toho důvodu, že udržuje podepsanou aplikaci platnou i po expiraci certifikátu použitého pro podpis. Když si z vašeho webu návštěvník stáhne za pět let podepsanou aplikaci, ale váš původní certifikát je už expirovaný, tak se nic nestane; aplikace bude stále důvěryhodně podepsaná, protože v okamžiku podpisu byl certifikát platný (moment podpisu je uveden právě v časovém razítku).

Podepisování aplikací je nutné, ale také snadné

Pokud vyvíjíte aplikace a programujete, tak je pro vás bezpečnost aplikace a řešení nějakého certifikátu práce navíc. Někdo by dokonce mohl nabýt dojmu, že je to časově náročný a obtížný proces. Není tomu tak a díky SSLmarketu můžete certifikát získat snadno. Pomůžeme vám i v začátcích jeho používání. V běžných podmínkách se podepisování nedá automatizovat, ale je to rychlý úkon a díky časovým razítkům stačí jeden podpis i do budoucna.

CASC připravil pro uživatele Code Signing certifikátů dokument, který jim vysvětlí jejich fungování a dodá základní informace. Code Signing Whitepaper najdete v PDF na tomto odkazu nebo po kliknutí na obrázek níže.

Pro více informací o podepisování aplikací sledujte kromě tohoto blogu i tématicky zaměřený web podpis-aplikaci.cz. V případě konkrétních dotazů kontaktujte podporu SSLmarketu běžnými kanály.

Zdroj:

  1. CA Security Council. Leading Certificate Authorities and Microsoft Introduce New Standards to Protect Consumers Online.

Ing. Jindřich Zechmeister
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz