Možná nejste přímými uživateli code signing certifikátů, ale přesto jste s nimi určitě (i když třeba nevědomky) pracovali nebo o nich alespoň slyšeli. Ať už je vaše zkušenost s těmito certifikáty jakákoliv, jistě pro vás bude  následující článek užitečný. Podíváme se v něm na to, co pojem code signing certifikát vlastně znamená, jaká je funkce certifikátu a jak ho můžeme využít na maximum.

Code signing certifikáty jsou nezbytností

Slovní spojení code signing je poměrně prozaické a neskrývá v sobě žádné záludnosti. Co si však představit konkrétně pod oním kódem, který máme podepsat? Programy a aplikace, soubory s koncovkami .app, .cab, .dll, .exe, .jar, .msi a dalšími – tedy software.

A právě jeho úspěšná distribuce bude jistě vaší prioritou v případě, že software vyvíjíte. Pokud software nebude vybaven code signing certifikátem, vaši zákazníci si jej nebudou moci spustit ve Windows ani stáhnout na mobil, protože software nebude důvěryhodný pro koncové zařízení  – tedy nebude zabezpečený před riziky. O jakých rizicích je zde řeč? Je samozřejmě důležité, aby byly výsledky vašeho snažení zákazníkům dodány v originální, nezměněné podobě – tedy aby nedošlo k  nabourání na své cestě od vás ke koncovému uživateli. Stejně jako elektronická pošta může být kompromitována zásahem do obsahu zprávy nebo zneužitím adresy odesílatele, může být i váš produkt oběma těmito způsoby zmanipulován. Zvláště pokud se věnujete distribuci online, jak zabránit tomu, aby se útočník dostal ke kopii vašeho programu a vydával ji za originál, který by byl ovšem obohacený o malware o adware? Potom si jako uživatel můžete položit otázku, jestli Vámi vybraná aplikace, kterou chcete instalovat, pochází skutečně od uvedeného vývojáře. O obojím nás ujistí Code signing certifikát – zaručí, že produkt jím podepsaný nebyl změněn zásahem třetí strany a že tento produkt opravdu pochází od deklarovaného tvůrce.

code-signing

Jak to vlastně funguje?

Každý code signing certifikát obsahuje veřejný klíč pojící se s unikátním privátním klíčem, jehož vlastníkem je (a musí být) výhradně majitel daného certifikátu a který vzniká vytvořením CSR požadavku o certifikát. Podepisovaný soubor se  opatřuje digitálním podpisem právě s použitím privátního klíče, který má k dispozici jenom vydavatel aplikace.

Tento podpis je jedinečný pro každý podepisovaný program. Podepisován je totiž tzv. hash, který si můžeme obecně představit jako unikátní otisk či hodnotu určitého řetězce dat, v tomto případě podepisovaného souboru. Právě podpis toho otisku zabrání tomu, aby byl daná podpis od aplikace odcizen a zneužit pro podvodný software. V případě jakékoliv modifikace originálního souboru bude otisk odlišný a v důsledku toho podpis neplatný a aplikace nedůvěryhodná. Code signing certifikát tedy zajistí integritu stažených dat. To znamená, že zaručí, že od momentu podpisu nebyl kód nijak a nikým změněn. Pokud někdo aplikaci změní, tak se stane aplikace nedůvěryhodná a systém uživatele ji nebude chtít otevřít.

Při spouštění aplikací systém uživatele, ať už jde o Windows, iOS nebo Javu, prověří podpis a uživateli jej zobrazí. Uživatel si tak má možnost zkontrolovat původ softwaru a rozhodne se, zda jej nainstaluje. Zde se setkáváme s druhou funkcí podpisových certifikátů – autentizací vydatele a identifikací podepsaných dat. Jestliže  bezpečně uložíme privátní klíč a neposkytneme jej k dispozici třetí straně, cizí software nemůže být podepsán naším jménem. Ovšem pozor! Může se stát i to, že code signing certifikát si pořídí nebo ukradne útočník a podepíše s ním malware, aby tak zvýšil důvěryhodnost souboru a nalákal více obětí. Je to pak uživatel sám, kdo musí posoudit, zda je vydávající subjekt důvěryhodný či nikoliv. Avšak ve většině případů platí, že autorem stahované aplikace je známá IT firma . Pokud by došlo ke zneužití certifikátu, tak se firma útočníka dostane na blacklist a už žádný Code signing certifikát nedostane.

codesigning

Timestamping: krok navíc, který se vyplatí

Certifikát pro podpis kódu již není možné po jeho vypršení použít k podpisu nových aplikací, protože jeho časová platnost vypršela. A co je horší – dnem expirace certifikátu přestanou platit i již provedené podpisy. Tento problém však lze vyřešit pokud využijeme tzv. timestamping.

Timestamping je něco jako dodatečné sdělení, které se připojí k podpisu a které informuje zařízení uživatele o tom, kdy byl kód podepsán. Můžeme říct, že tato informace umožní vlastně podpisu fungovat jako perpetuum mobile. Pochopitelně je to užitečné, především pokud budeme předpokládat distribuci aplikace v nezměněné formě po dobu několika let. Je proto logické, že „razítkování“ šetří i naše finance – nepotřebujeme-li podepisovat nové soubory, nemusíme průběžně investovat do prodloužení již jednou vydaného certifikátu.

Vyvíjejte pro různé platformy s jedním certifikátem

Na každé platformě pro vývoj aplikací jsou samozřejmě Code signing certifikáty podporovány. Podepisování pomocí Code signing certifikátu je dostupné pro Windows, OS X, iOS, Android, Javu či Adobe AIR. Podpis kódu je už většinou nezbytný  – bez něj bude váš software označen za nedůvěryhodný a vaši zákazníci budou před jeho stažením důsledně varováni.

V oficiálních obchodech s aplikacemi pro iOS, Android či OS X je při distribuci softwaru užití code signing certifikátů dokonce povinné. A takovýchto platforem stále přibývá. Rovněž všechny ovladače Windows a makra MS Office musí být podepsány. Zde přichází na řadu code signing certifikát s EV ověřením, který je jedinou možnou cestou, jak zabránit nepříjemným blokacím Smartscreen Filteru. EV certifikát je také vyžadován pro podpis ovladačů určených pro Windows 10.

U podepisování aplikací není důležité, pro kterou konkrétní platformu certifikát potřebujete – technicky je certifikát stejný a funguje na všech platformách.

Samotné podepisování je jednoduché. Na Windows stačí mít certifikát uložen v souboru a nainstalovat Windows SDK. Certifikát můžete také importovat do úložiště, kde s ním budete moci podepisovat. Certifikát Code Signing EV je pro větší důvěryhodnost a ochranu privátního klíče uložen na tokenu a jeho zneužití je prakticky nemožné.

V případě potíží vám ráda pomůže zákaznická podpora SSLmarketu.

Přejeme příjemné podepisování!

Žádný příspěvek v diskuzi

Odpovědět