Užitečné komponenty pro Delphi a C++ Builder, díl 56.

I tentokrát si představíme místo komponenty jeden malý, ale užitečný nástroj. Pomůže nám o něco zvýšit bezpečnost našich aplikací šifrováním textových řetězců, které obsahuje.

Pascal-Scrambler 1.0

Bezpečnosti není nikdy dost a pokud to s ní myslíte opravdu vážně, každý bezpečnostní prvek navíc se může hodit. Jak tedy k bezpečnosti přispěje tento malý program a jak ochrání vaše aplikace?

Textové řetězce, které vaše aplikace obsahuje, jsou i ve zkompilovaném exe souboru uloženy stejně jako ve zdrojovém kódu a tedy snadno čitelné. Schválně si zkuste prohlédnout vaší aplikaci v nějakém prohlížeči (stačí klidně F3 ve (Windows)Total Commanderu). To by nebyla až zas taková tragédie, ale mnohem horší je to, že pak je velmi snadné tyto texty editovat a prakticky téměř kdokoliv s vhodným "hexaeditorem" může napsat do vaší aplikace co se mu jen zlíbí. Jaká je proti tomu obrana? Samozřejmě, že nic není 100%, takže veškeré obrané postupy obvykle jen samotný proces zpomalí a zkomplikují. Nicméně pak už nestačí být jen běžným uživatelem s editorem, ale na prolomení takové "ochrany" je třeba dalších znalostí. Nejjednodušší variantou je asi použití nějakého komprimátoru exe souborů (jako je např. výborný freewarový UPX), o kterých si možná povíme něco blíže jindy. To ale není ochrana v pravém slova smyslu, protože si může vaší aplikaci stejně kdokoliv opět dekomprimovat a poté editovat. O řád výše jsou poté programy jako třeba ASProtect, který celý program zašifruje a po spuštění je v paměti opět dešifrován (stejně fungují i výše zmíněné komprimační nástroje). Ten však již bohužel zdarma není. Bezpečnost zkrátka něco stojí. Ale to už se konečně dostáváme po trošku delším úvodu k dnešnímu programu. I ten data šifruje a na věc jde rovnou od lesa.

Pascal-Scrambler, na rozdíl od výše zmiňovaných programů na kompresi či šifrování, nepracuje s již zkompilovaným exe souborem, ale přímo se zdrojovým kódem. Celý princip programu je vlastně velmi jednoduchý a elegantní. Do programu načtete zdrojový kód, který chcete ochránit. Program vygeneruje dva náhodné řetězce všech alfanumerických znaků. Textové řetězce vaší aplikace jsou pak zašifrovány pomocí těchto dvou "tabulek" klasickou a jednoduchou substituční šifrou. Tedy, znak z první tabulky je ve zdrojovém kódu nahrazen znakem z druhé tabulky. Tyto dva řetězce generuje Pascal-Scrambler neustále dokola a náhodně, takže prakticky žádná z aplikací nemůže mít stejnou substituční tabulku. Zašifrování textových řetězců ve zdrojovém kódu je však jen polovina práce. Jak se zajistí zpětné přeložení textů do původního stavu po spuštění vaší aplikace? Velmi snadno. Na začátek zdrojového kódu je přidána krátká funkce, která obsahuje substituční tabulku a algoritmus na dešifrování. Každý textový řetězec ve zdrojovém kódu je pak nahrazen právě touto funkcí s parametrem zaširovaného řetězce. Velmi jednoduché a přitom funkční. Není snad třeba připomínat, že toto bezpečnostní opatření je nutné udělat až na samý závěr, v poslední kompilaci před vypuštěním programu, protože jinak by bylo čtení zdrojového kódu dost komplikované. Samozřejmě je také vhodné si původní zdrojový kód uchovat.

A to je vlastně všechno. Nic víc netřeba dodávat. Ovládací program je jednoduchý, vše je zdarma a zdrojové kódy jsou rovněž k dispozici, takže si můžete případně vylepšit i šifrovací algoritmus. Rozhodně si nedělám žádné přehnané iluze o velké bezpečnosti tohoto postupu, ale rozhodně vyřadí většinu běžných útočníků a těm ostatním situaci alespoň zkomplikuje.

stahujte zde

Diskuze (1) Další článek: Western Digital uvede 250 GB disk

Témata článku: Software, Bezpečnost, Programování, Textový řetězec, Komponenta, Pascal, Díl, Šifrovací algoritmus, Alfanumerický znak, Náhodný znak


Určitě si přečtěte

Takhle zemřete, když asteroid dopadne na vaše město

Takhle zemřete, když asteroid dopadne na vaše město

** Jak by to dopadlo, kdyby na světovou metropoli či do nedalekého moře dopadl velký asteroid? ** Simulovali to odborníci z University of Southampton ** Výsledky jsou velmi zajímavé

Petr Kubala | 32

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

Byli tam! Důkazy o přistání na Měsíci, Lunochody i čínská sonda jsou vidět z vesmíru

** Sonda LRO pořídila z oběžné dráhy Měsíce zajímavé snímky ** Jsou na nich vidět artefakty všech misí programu Apolla, které přistály na povrchu Měsíce ** Jde například o části lunárních modulů, rovery a dokonce i vlajky

Petr Kubala | 60

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

Rekordy počasí: V Česku to ještě jde, skutečné extrémy zažívají jinde

** Teplotní extrémy dokážou překvapit. Seznamte se s rekordy v Česku i ve světě ** Rekordní hodnoty jsou mnohdy až k neuvěření ** Zjistěte, kdy ke bylo největší horko, zima, déšť či vítr

Karel Kilián | 7

Budoucnost elektroniky: čeští vědci stojí za revolučním čipem, který nemá ve světě obdoby

Budoucnost elektroniky: čeští vědci stojí za revolučním čipem, který nemá ve světě obdoby

** Čeští vědci pod vedením Tomáše Jungwirtha vyvíjí nový typ revolučního paměťového čipu ** Zatímco v současnosti elektronika pracuje s elektrony, v budoucnu to budou spiny elektronů ** Čipy budou moci být klidně i 1 000x rychlejší a úspornější

Karel Javůrek | 32

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

Portál občana už funguje. Na státní web vypadá až překvapivě použitelně

** Portál občana už funguje, vyřídíte na něm první požadavky ** Funkce se budou postupně rozšiřovat ** Web je docela moderní a přehledný

David Polesný | 65


Aktuální číslo časopisu Computer

Velký test 18 bezdrátových sluchátek

Vše o přechodu na DVB-T2

Procesory AMD opět porážejí Intel

7 NVMe M.2 SSD v přímém souboji