Technomorous

Bezpečnost především

Řeknu vám bezpečné heslo, pište si: pták, pták, obří oko, pyramida, pták, obří oko, leklá ryba, kočičí hlava, chlápek co dělá takhle.

Dorazil nám do práce zaheslovaný ZIP a ne zrovna jeden - tedy vlastně ano, jeden za každý pracovní den letošního roku. Chvíli nikdo neměl čas to zpracovávat a když se k tomu konečně dostali, zjistili že heslo pro měsíc leden nefunguje. Tak mi problém skončil v mailboxu. Naštěstí stačil jeden pohled, aby byla příčina nefunkčnosti hesla rychle odhalena: Soubory prochází z Francie, státu který v historii válčil s Británií tak často, že tamním obyvatelům nepřišlo divné dát do osmnáctimístného hesla znak libry.

Libra je takové zápaďácké ř, oni ji v kódování mají, my ne, u ř je to naopak. Proti našemu ř je ale jednodušší způsob, jakým se dá libra zakódovat. Nemají deset historických kódování, každé jiné, ale jen v podstatě jen tři možnosti: tři hlavní osmibitová kódování (Windows, ISO, Mac) se shodnou na kódu 0xA3, 16- a 32-bitový Unicode to má také tak jen ve více bajtech, v MS-DOSu to kdysi bylo 0x9C a UTF-8 kóduje znak sekvencí 0xC2A3. Chvilku jsem propadal panice, protože podle všeho je libra známým problémem - s její pomocí to sice zašifrujete, ale už nedešifrujete, pak jsem si ale řekl, že problémy jsou tu od toho, aby se řešily.

Prvním krokem bylo zjistit, jak byl ten nešťastný hieroglyf kódován. Stáhl a přeložil jsem si John the Ripper, vypreparoval z archivu hash hesla a napsal si dle dokumentace vlastní generátor hesel, který využil sedmnáct známých znaků hesla a zkoušel jen ten jeden neznámý:


 [List.External:tetra] 
 int last;
 
 void init() { 
         last = 32;
         } 
 
 void generate() {
         word[0] = 'Y';
         word[1] = 'V';
         word[2] = 'S';
         word[3] = '$'; 
         word[4] = '/'; 
         word[5] = 'N';
         word[6] = 'D'; 
         word[7] = 'a'; 
         word[8] = 'f'; 
         word[9] = '%'; 
         word[10] = 'R'; 
         word[11] = 'X'; 
         word[12] = 'e';
         word[13] = last;
         word[14] = 'b';
         word[15] = '8'; 
         word[16] = '3';
         word[17] = '0'; 
 
         last++;
 
         if (last == 256) {
                 word=0;
                 return;
         }
 
Má úvaha byla, že pokud autor použil osmibitové kódování, pak se dostanu k 0xA3, 0x9C nebo něčemu jinému, pokud to archivátor nějak zmršil. Pokud to nebude ani jeden ze znaků mezi 0x20 a 0xFF, tak bude třeba zkusit vícebajtové kombinace.

Uhodnutí jednoho znaku trvalo Core i3 první generace (a.k.a. hracka.org) méně než sekundu (dva znaky jsou za deset sekund, tři znaky za hodinu a šest minut a dál už jsem si nehrál) a kupodivu jsem došel k 0xA3. Tak jak heslo z Johna vypadlo jsem ho předložil 7-zipu, ale stále Wrong password. Co to?

Ne a ne na to přijít - zkoušel jsem to v bashi různě escapovat, zapisovat tak či onak, prostě ne. Nakonec mě napadla ještě jedna věc: export LANG=en_GB.iso88591 a znovu 7-zip. A ono to prošlo. Nechápu, nerozumím, když mám někde v souboru na pozici 13 znak 0xA3 a obsah toho souboru posílám nějakému programu jako heslo, má přeci tomu programu být jedno, jaké locale mám nastavené, ne? Zjevně ne.

Problém je ale každopádně vyřešen a já mohu jen doporučit: používejte sofistikovaná hesla a čím více speciálních znaků budou obsahovat, tím lépe. Bude to ve výsledku tak bezpečné, že se k tomu nedostane vůbec nikdo.


Screenshoty v novém

Jak jsem řekl, tak jsem i učinil.

Dnešek byl extrémně produktivním dnem. Je těsně po úplňku, takže Fík vstával ve tři v noci a s ním i my. V mezičase mezi snídaní a prvním ranním autobusem směr centrum se tak dostalo i na pohrabání se v PHP/HTML/CSS mé screenshotové galerie.

Stránka sice zůstala i nadále v poctivém, dvacet let starém XHTML 1.0 Transitional, nově to však není dlouhá nudle s více než 170 obrázky, ale dynamicky se formátující stránkovaná galerie. Na každé stránce je vidět 24 screenshotů (s výjimkou poslední - kde už nic není, prostě nic není), podle šířky zobrazovadla se kreslí jeden, dva, tři nebo čtyři sloupce. Ani tentokrát není použit žádný client-side kód s výjimkou CSS. Udělal jsem si i pořádek v PHP, takže je asi o třetinu kratší a jako bonus se datum a název screenshotu zobrazují separátně a jakž-takž formátovaně.

Funkčnost ověřena v lynxu i linksu (text-only), jednoduchém prohlížeči dillo (neumí půlku použitého CSS, takže nečekejte dynamické formátování, jen 24 obrázků pod sebou), Mozille 1.0 a Netscape 6 (tady vše funguje, jak má) a aktuálních verzích Waterfoxu, Chrome a MSIE (vše jede dle mých představ).

Doufám, že mi tahle úprava zase alespoň patnáct let vydrží.


64 MB: doscore

Opouštíme bezpečné vody normálních systémů a vydáváme se do oblastí, v nichž je MS-DOS považován za natolik kvalitní software, že má smysl ho reimplementovat jako open-source a vytvářet z něj live distribuci. Názor, že DOS je diskový, operační nebo dokonce systém jsem nikdy příliš nesdílel. Bylo to vždy jen takové hloupoučké spouštědlo software a na domácím počítači mi vydrželo jen zhruba rok a tři čtvrtě, pak jsem to vzal hopem přes Windows 95/98 a ME do Linuxu a už nikdy jsem s k těmhle pětkrát převařeným a třikrát nastaveným plagiátům CP/M nikdy neměl potřebu vracet. Nicméně už pětadvacet let je vyvíjen FreeDOS a na něm je postaveno i doscore.

doscore - desktop doscore - dillo

Je to pořád DOS tak, jak si ho pamatuju. Při bootu se spouští desítky BAT souborů, které detekují a konfigurují to či ono (rozšířená paměť, síťové karty, SCSI/IDE/SATA řadiče, zvukovky), jen to tentokrát nekončí el há emšestsetdva.exe ale v grafickém destkopu s dockem.

Bundlovány jsou tři druhy aplikací:

  1. Grafické aplikace běžící pod desktopem, těch lze multitaskově pustit víc a člověk si připadá skoro jako v normálním moderním systému.

  2. Grafické aplikace běžící fullscreen, které ukončí desktop a vezmou si pro sebe celý počítač - třeba browser dillo.
  3. Klasické text-mode, které dělají totéž, co jsem popsal v předchozím bodu, jen jsou textové - třeba browser doslynx.

Kdo je v DOSu jako doma se třeba v téhle změti vyzná a neustálé střídání prostředí při spouštění aplikací mu nepřijde divné. Možná také bude vědět, nač se ho systém při bootu ptá. Já se proenteroval k desktopu, trochu se porozhlédl a tím to pro mě skončilo. Jedno pozitivum ale přeci jen mám: postačí vám Pentium a 64 MB RAM. Na DOS nic moc, ale proti Linuxu jsou to o jednu úroveň nižší požadavky.


64 MB: Nanolinux

Do třetice se podíváme na zvláštního ptáka: Je to Linux. Je to Linux s GUI. Ale nemá X Window System. Je to Nanolinux, je mikrodistribuce odvozená od nejlehčí, čistě textové varianty TinyCore, do níž autoři doplnili lehké grafické prostředí Nano-X.

Nano-X (dříve Microwindows) je vcelku zajímavá věc, která běží na lecčem (MS-DOS, unixy, kapesní počítače; snese 16, 32 i 64 bitové procesory; ...) a leccos pod ni bylo portováno, například GUI toolkit FLTK, díky němuž Nanolinux může obsahovat třeba browser Dillo, jednoduchý tabulkový editor, nějaký ten texťák a další drobné nástroje.

Nanolinux

Dle autorů vystačí šesnáctibitový build Nano-X s 64 kB RAM, verze dvaatřicetibitová chce jen 100 kB. Něco na tom asi bude, protože TinyCore s klasickými X11 nenabootujete na stroji s 64 MB RAM, kdežto Nanolinux ano. Škoda jen, že oba chtějí alespoň Pentium Pro, tedy i686, jejich nenáročnost by se lépe využila na něčem starším. Další, co tak trochu zabíjí použitelnost na starých strojích je rozlišení 1280x1024, které je v systému zadrátované napevno, takže když bootujete na něčem, co takové rozlišení nemá, je celé prostředí orámováno dvěma scrollbary. Pravděpodobně by se to celé dalo upravit někde ve zdrojácích při buildu ISO image, ale běžnou uživatelskou konfiguraci jsem nenašel. I tak, zajímavá zkušenost už dost mimo běžný live Linux svět.


64 MB: TinyCore

SliTaz je fajn, když potřebujete základní opravdu miniaturní distribuci na rychlé prošmejdění webu z cizího počítače, na němž třeba normální systém ani není nainstalován. Když si ale chcete vytvořit flashdisk, z něja nabootovat a cítit se jako doma, v prostředí nainstalovaném a nakonfigurovaném dle vašich požadavků, nic nepřekoná TinyCore.

TinyCore existuje ve třech variantách:

  1. Core - čistě textové prostředí o velikosti 11 MB, s nímž asi ve společnosti mnoho dojmu nenaděláte a mnoho koc nesbalíte, ale na druhou stranu funguje prakticky všude a o GUI ho lze dodatečně rozšířit.
  2. TinyCore - grafické live prostředí, má 16 MB, obsahuje FLTK/FLWM desktop s dockem, textový editor, konfigurátor drátové sítě a přístup k balíčkovým repozitářům, z nichž si můžete další doinstalovat přímo do RAMdisku právě nabootovaného počítače.
  3. CorePlus - tohle médium také může fungovat jako live, bylo by to ale plýtvání, jedná se totiž o instalátor/konfigurátor, s jehož pomocí si můžete TinyCore nainstalovat teba na flashdisk o kapacitě 64 megabajtů a ještě si vybrat, které komponenty byste tam chtěli mít.
TinyCore

Vybral jsem poslední jmenovaný, párkrát flashdisk rozdělil tam a zpět a s lynxem, ssh, joe, mc a mpg123 jsem pořád pohodlně pod limitem volného místa na mém historickém přívěšku na klíče. To se mi líbí, asi se podívám i na některé nabízené programy s GUI.


64 MB: SliTaz

Děkuji ctěnému čtenářstvu za tipy a triky pod posledním článkem. Postupně asi vyzkouším více možností, jako první jsem si ale vybral něco ze svého soukromého seznamu: SliTaz.

SliTaz

SliTaz je miniaturní live distribuce, která má ve své největší variantě (tzv. 5-in-1, tj. obsahuje všechny existující varianty dohromady) má necelých 61 MB, takže se na můj malý starý flashdisk vejde. Bootuje chviličku (na Core i5), s hardwarem si víceméně rozumí alespoň do té míry, aby se dal pustit browser či ssh někam jinam a co více si přát? Pro flashdisk poslední nouze či boot na bezdiskovém terminálu zcela postačující.

Za sebe bych jedno přání ale přeci jen měl: podporu ISO-8859-2, v němž je kódován i skromný web, který právě čtete. Novější UTF-8 nebo celá škála západních kódování samozřejmě podporu mají.


Šedesát čtyři mega

Prohraboval jsem se šuplíkem. Vlastně ne. Fík se mi prohraboval šuplíkem a ne jedním. Tuhle kratochvíli objevil v minulém týdnu a postupně ji dotáhl do té dokonalosti, že objeví i věci, které v šuplíku vlastně vůbec nebyly, nebo si alespoň nevzpomínám, že bych je tam někdy dal.

Třeba můj první flashdisk s kapacitou 64 MB.

Pamatuju, jak jsem ho kupoval za cenu zhruba osmi korun za megabajt a měl hroznou radost, že netřeba do labu nosit pouzdro s deseti disketama, z nichž po návratu na kolej přečtu polovinu, protože tramvajové troleje a protože metro. Než jsme si pořídili WiFi anténu z plechovky od ananasu a složili se na nejlevnější paušál místního guerillového providera, byl ten flashdisk během podzimu 2004 jediným zdrojem dat na mém kolejním PC.

A samozřejmě tak zhruba od roku 2007 ho nikdo na nic nepoužil, protože šedesát čtyři mega je směšně málo na cokoliv. Nebo není? Oficiálně vyhlašuju: hledá se použití pro flashdisk tak malý, že se na něj nevejde ani minimalistická instalace NetBSD. Nevíte někdo o něčem, co by tam šlo nainstalovat a provozovat v live režimu na běžném PC? Já i A-DATA MyFlash 64MB vám budeme vděční.



TOPlist