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í, Pascal, Šifrovací algoritmus, Náhodný znak, Díl, Textový řetězec, Komponenta, Alfanumerický znak


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

Vylaďte si Wi-Fi: Podívejte se, jaká pásma máte doma volná a kam signál nedosáhne

Vylaďte si Wi-Fi: Podívejte se, jaká pásma máte doma volná a kam signál nedosáhne

** Prozkoumejte, jaké pásmo je pro vaši síť nejlepší ** Díky heat mapě snadno poznáte, kde to bude se signálem horší ** Vše zvládnete i z mobilního telefonu

Vladislav Kluska | 36

Na Zemi je nejtepleji za posledních více než 100 tisíc let. Co nám hrozí?

Na Zemi je nejtepleji za posledních více než 100 tisíc let. Co nám hrozí?

** Letošní červenec byl třetím nejteplejším měsícem od roku 1880 ** Teplota naší planety roste raketovým tempem ** Co lidstvu hrozí v období, které v minulosti nemá obdoby?

Karel Kilián | 70

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

Porno insider: Jak virtuální realita vstupuje do filmů pro dospělé

** Pornografie údajně představuje třetinu internetové obsahu a je technologický tahounem ** Do erotického obsahu postupně zasahuje i virtuální realita ** Kromě vizuálního vjemu se pracuje také na virtuálním uspokojení toho hmatového

Jan Dudek | 29

Nechali jsme dopadnout asteroid Ryugu na Prahu. Místo stověžatého města je pětikilometrový kráter

Nechali jsme dopadnout asteroid Ryugu na Prahu. Místo stověžatého města je pětikilometrový kráter

** Ryugu je blízkozemní planetka, která křižuje dráhu Země ** Její průměr je asi 900 metrů ** Co by se stalo, kdyby Ryugu dopadla na Zemi?

Petr Kubala | 5

Pojďme programovat elektroniku: Když už vás ten chumel součástek prostě nebaví

Pojďme programovat elektroniku: Když už vás ten chumel součástek prostě nebaví

** Levné cetky z Asie stojí dolar ** Postavíte s nimi skoro vše od teploměru po spínač zavlažování ** Má to ale jeden háček. Bude to ošklivé a povětšinou nekvalitní

Jakub Čížek | 22

Google má nové telefony, počítač a domácí displej. Česko je stále mimo

Google má nové telefony, počítač a domácí displej. Česko je stále mimo

** Google dnes představil novinky ** Dočkali jsme se nového telefonu Pixel 3, tabletopočítače a domácího displeje ** Rozšíření Google Assistenta do dalších zemí se bohužel nekoná

David Polesný | 45


Aktuální číslo časopisu Computer

Jak vytvořit a spravovat vlastní web

Velký test herních klávesnic a DVB-T2 tunerů

Vše o formátu RAW

Vybíráme nejlepší základní desku