Zabezpečte své aplikace Code Signing certifikátem

14. 3. 2017 | Jindřich Zechmeister

Certifikát Code Signing pro podpis kódu jsem méně obvyklým typem SSL certifikátu, jejich použití je však zásadní pro bezpečnost aplikací na PC platformě a mobilních zařízeních. Dnešní článek vás seznámí s jejich významem a použitím.

K čemu slouží certifikáty pro podpis aplikací

Stejně jako ostatní certifikáty slouží Code Signing certifikáty pro zvýšení bezpečnosti; nepoužívají se však pro komunikaci mezi prohlížečem a serverem, ale pro digitální podpis aplikací. Použití certifikátu se podobá elektronickému podpisu, jak ho známe z e-mailové komunikace.

Hlavní význam podpisu kódu je následující:

  1. Prokázání původu aplikace a identity vydavatele
  2. Prokázání nenarušení kódu při přenosu k uživateli

Stejně jako u elektronického podpisu je třeba jednat prokázat identitu vydavatele, abychom si mohli být jistí, že software nepochází z nedůvěryhodného zdroje. Stejně tak důležitá je kontrola integrity dat, tedy jejich úplnosti a neměnnosti. Díky digitálnímu podpisu aplikace se můžeme přesvědčit o tom, že aplikaci nikdo po vydání nezměnil. Pro uživatele vaší aplikace je podpis zárukou, že program pochází od vás a nikdo ho po vydání nezměnil.

Pokud není aplikace podepsána certifikátem Code Signing, vypadá dialog otevření takto:

otevření nepodepsané aplikace

Takové aplikaci můžete těžko důvěřovat, protože nejste schopni ověřit ani původ, ani integritu a neměnnost dat. V programu může být hrozba, o které zatím nevíte.

Jak najít a zkontrolovat podpis aplikace 

Pokud na PC otevíráte aplikaci podepsanou Code signing certifikátem, uvidíte v dialogu název společnosti vydavatele. Po kliknutí na tento název uvidíte detaily digitálního podpisu.

Aplikace podepsaná Code Signing certifikátem

Po kliknutí na modrý název vydavatele uvidíte detaily použitého digitálního podpisu.

detail digitálního podpisu aplikace

Každý budoucí uživatel má možnost ověřit platnost podpisu a důvěryhodnost aplikace.

Podepisujte aplikace na všech platformách

Code Signing certifikáty nejsou dostupné pouze pro platformu Windows, která je použita v příkladu výše. Podepisování na této platformě je realizováno přes standard Microsoft Authenticode. Certifikační autority však nabízí certifikáty i pro ostatní systémy, mezi nimiž nechybí Java, Android, Windows Phone, Microsoft Office a VBA, Mac a Adobe AIR.

platformy pro podpis aplikaci code signing certifikatem

Jak zakoupit Code Signing certifikát?

Certifikát pro podpis kódu naleznete v naší nabídce v samostatné kategorii Code Signing certifikáty. Nabízíme dva certifikáty pro podpis kódu, a to Thawte Code Signing certifikát a Symantec Code Signing.

V objednávce certifikátu zvolíte, pro jakou platformu bude určen a jaké programy budete podepisovat.

Certifikáty pro podpis kódu se stejně jako certifikáty serverové objednávají pro doménu; ta je však při vystavení nahrazena v poli Common name názvem vaší společnosti. Nemusíte mít obavy, že by byl certifikát vystaven špatně.

Po dodání certifikátu e-mailem jej můžete ve vašem systému nainstalovat a začít aplikace podepisovat. Stejně jako u serverových SSL certifikátů budete k platnosti podpisu potřebovat Intermediate certifikáty.

Podpis kódu má budoucnost

V dnešní době ustupuje distribuce softwaru na fyzických nosičích a software je většinou stahován z internetu. Uživatelé chytrých telefonů do svých přístrojů denně instalují nové aplikace, u kterých je důležitý původ a jejich integrita. Bez podpisu aplikace již dnes téměř není možné programy distribuovat. (Jaký problém může být neplatný či podvržený podpis je vidět v případu "master key" skandálu na Androidu, o kterém jsme informovali v tomto článku).

Roste také sekundární úloha podpisu aplikací, jakou je například kontrola programů v internetových prohlížečích (Smartscreen v Internet Exploreru). Ty rovněž posuzují podpis aplikací a jeho platnost; nepodepsané aplikace považují za nebezpečné, což je pro výrobce softwaru značný problém.

Pokud jste výrobce softwaru, neváhejte si obstarat Code Signing certifikát a zvýšit důvěryhodnost vašich aplikací.


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