Hlavní navigace

Trampoty s heslem

29. 7. 2009
Doba čtení: 3 minuty

Sdílet

Kdysi dávno jsem se spolupodílel na projektu jednoho programu. Program to byl jednoduchý – čtení a zápis do databáze, analýza obsahu. Co jednoduché nebylo, bylo bazírování zadavatelů programu na bezpečnosti. Vše muselo být „echt“. Nedávno se mi dostalo trochu pochybné cti pokusit se jej opět uvést do provozu.
Vojtěch Bednář

Ilustrace: Nenad Vitas

Aby mohl uživatel program používat, musel zadat postupně dvě hesla a jedno jméno. První z hesel jej opravňovalo k tomu, aby program vůbec naskočil. Druhé v kombinaci s uživatelským jménem zpřístupňovalo zašifrovanou databázi. Jakýkoliv administrační zásah, respektive změna kteréhokoli z asi padesáti nastavitelných parametrů, vyžadovaly heslo další; tentokrát správcovské.

Databáze byla nejenom šifrovaná (proprietární algoritmus vycházející z blowfish), ale obsahovala také velmi šikovný mechanismus ověřování integrity. V době, kdy o virtualizaci v podmínkách desktopu nebylo ani potuchy, dokázal program v rámci ochrany před prolomením rozpoznat hrátky hackera se systémovými hodinami, s vnitřními registry a dokonce i pokusy o odposlechnutí jeho vnitřních stavů. Zkrátka a dobře, na to, jak byla samotná funkční část primitivní (několik matematických funkcí, uživatelské rozhraní na bázi tří formulářů a tiskový modul) byl bunkr okolo ní takřka neprůstřelnou haldou betonu.

Ačkoli s daným programem již nemám nic společného a program navržený původně pro Windows 98 patří vlastně dávno do křemíkového smetiště, dostalo se mi trochu pochybné cti pokusit se jej opět uvést do provozu. Háček? Majitelé, přesněji řečeno jejich nástupci, znali pouze přihlašovací údaje k jednomu z uživatelských účtů (byly uloženy ve speciální databázi, která se editovala jednoúčelovou utilitou, dnes již ztracenou v propadlišti dějin). Heslo pro vstup do programu (nastavené napevno, uložené v nečitelné podobě ve spustitelném souboru) i heslo pro administraci (totéž a obě netriviální) se jaksi „vykouřilo z paměti".

Strávil jsem u vizualizovaných Windows 98 pár hodin čistého času. Během této doby jsem se částečně holedbal nad tím, jak byla bezpečnost programu i databáze ve své době na výši, částečně proklínal vlastnosti znemožňující mne pustit dovnitř (program mimo jiné po každých pěti špatných pokusech o zadání vstupního hesla maže sám sebe i s databází a nechává si o tom v registrech systému poznámku pro případ reinstalace). Reinstaloval a promazával jsem asi tak desetkrát. Když už jsem to takřka vzdával, napadalo mne zkusit kontaktovat jednoho z původních programátorů a požádat jej o radu – dotyčného jsem nedávno potkal, a tak jsme na sebe měli aktuální kontakty.

Kolega byl k mému štěstí právě doma, a tak měl čas se prohrabat letitými papíry s naději povzbuzujícím mumláním „tam někde byl takový fíglík“. Chvilku to trvalo, ale nakonec našel.

„Stačí v adresáři s programem vytvořit prázdný soubor admin.txt. Pak budou všechna jednorázová hesla nastavená na heslo. Rozumíš? Heslo je heslo,“ ozvalo se ze sluchátka. Dal jsem na jeho radu a ono to opravdu fungovalo. Letité uživatelské rozhraní naskočilo a po vstupu do účtu ožila i databáze. Chlouba fortifikace počítačového softwaru druhé poloviny 90. let padla během třiceti sekund. Bylo mi jasné, že jak jsem to udělal, se majitelé nesmí nikdy dozvědět.

WT100

Dozvěděli, a díky tomu to teď víte i vy. A jaké z toho plyne ponaučení?

I ty nejpevnější pevnosti mívají nejhloupěji schovaná zadní vrátka. Trampoty s komplikovaným heslem (originál administračního měl deset znaků a byl neslovníkový, což muselo ve své době administrátorům trhat žíly) mohou mít jednoduchý konec, nicméně stejně tak mohla mít snadný konec i celá snaha o superodolný program. Přitom kdyby byla opatření méně přísná a uživatelsky více přívětivá, třeba by se program obešel bez zadních vrátek.

Autor článku

Autor je sociolog, odborný publicista, poradce, a lektor.

Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).