Co je podepisování kódu?
Hackeři často berou software - offline nebo online - přeskupení a změnu kódu tak, aby byl škodlivý, a poté jej nahrajte online, aby si uživatelé stáhli bezplatný program a škodlivý kód, který obsahuje. Aby se zajistilo, že se uživatelé k tomuto problému nedostanou, používá se podepsání kódu. Podepisování kódu je metoda, kterou původní programátor nebo společnost, která program vytvořila, podepisuje program, a když je program nainstalován, je ověřen, aby zajistil, že program nepřidal ani nezměnil žádné kódování. To na straně uživatele nevyžaduje žádný speciální software a uživatel je schopen ověřit totožnost programátora. I když je to zamýšleno jako forma zabezpečení, hacker, který vytvoří program nebo zjistí, že se podepisuje, může vytvořit umělou a ztracenou důvěru.
Programy se neustále prodávají online i offline. Když si někdo koupí program offline od důvěryhodného dodavatele nebo maloobchodníka, má uživatel jen velmi málo důvodů obávat se hackerů, kteří do programu vkládají škodlivý kód. Důvodem je, že pokud vývojář softwaru úmyslně nevytvořil nebezpečný program, neexistuje způsob, jak by někdo mohl manipulovat se softwarem a učinit jej nebezpečným. Když uživatel stáhne program z Internetu, neexistuje žádná taková záruka.
Pro ochranu uživatelů, kteří nakupují nebo stahují programy online, je implementováno podepsání kódu. Podepisování kódu je rozděleno na dvě části: vývojář a koncový uživatel. Vývojář používá kryptografické hash, jednosměrná operace, která zakrývá kód programu, a pak kombinuje svůj soukromý klíč s hash. Tím se vytvoří podpis, který je implantován do programu.
Když uživatel obdrží program, dojde k druhé části procesu podepisování kódu. Program prozkoumá certifikát a veřejný klíč, který programátor vložil do programu. Pomocí veřejného klíče je program schopen spustit stejné hashování v aktuálním programování a poté zkontroluje originál proti aktuální nainstalované verzi. Pokud se nainstalovaný program i původní synchronizují, ukazuje to uživateli, že se nic nezměnilo. Tento proces se provádí automaticky a programy potřebné pro toto ověření by měly být předem nainstalovány v operačním systému počítače (OS).
Podepisování kódu je výkonnou metodou pro zajištění bezpečnosti, ale má nedostatky. Pokud uživatel stahuje program z hackera, pak autentizace ukáže, že původní program je neporušený. To by uživatele vedlo k falešnému pocitu bezpečí; program je považován za škodlivý, takže v tomto smyslu není dosaženo bezpečnosti. Sofistikovaní hackeři se také dokážou obejít hash k injekčnímu kódování, což činí zbytečné podepisování kódu.