NetMag logo

    27/97


    Toto je NetMag - internetovy magazin o vypocetni technice, software, sitich a tak vseobecne, a to vse bez tendencnich pripominek, lzi, reklam a nekompetentnich vyroku. Nechceme konkurovat zadnemu ze zavedenych i novych klasickych a internetovych magazinu - chceme byt jini. Pokud patrite k tem, kterym uz leze krkem neustale propagovani novych "technologii", na nichz nic noveho nebo zajimaveho neni, pokud se vam zda, ze pocitacove casopisy ocenuji produkty, na kterych neni nic zajimaveho a ktere si to nezaslouzi, prave jste narazili na svuj novy oblibeny magazin. Samozrejme se nebudeme vyhybat ani politicke a spolecenske scene, ale to je pro nas jen okrajove tema.

    NetMag vychazi zpravidla kazdy tyden, v jednotne jednoduche graficke uprave, aby byl citelny i browsery typu Lynx, zasadne bez frames a bez diakritiky, doporucujeme vsak radeji IBM WebExplorer 1.1 nebo 1.2, popr. Netscape Navigator.

    Implicitne autorem nepodepsanych prispevku a sefredaktorem NetMagu je Zbynek Pospichal , dalsimi stalymi spolupracovniky pak Radim Kolar a Petr Vejsada.

    Netmag Postou

    [ FAQ | Literarni rubrika | Peering | Anketa | Predchazejici cisla | NetMag Consult | Redakce ]

      Deutschland, Deutschland, uber alles...

    Mozna vas potesti zprava, ze bordel neni jenom u nas, ale i v sousednim Nemecku, proslulem svym smyslem pro ordnung. Peering v Nemecku je v podobnem, ne-li horsim stavu, nez peering u nas, coz je jeste umocneno tim, ze v Nemecku figuruji uzly a linky jedne z nejvyznamnejsich evropskych paternich siti - Ebone. Na Ebone je mj. pripojen i CESNET. Bohuzel ne tak nemecka akademicka sit DFN - WiN. Takze pokud chcete na nejaky server v ramci DFN (mezi ty zajimavejsi patri www.leo.org s rozsahlym archivem souboru pro vsechny myslitelne systemy, vezte, ze z CESNETu vypada traceroute nejak takto:

     1  graf-tai.cesnet.cz ()  0 ms  30 ms  0 ms
     2  tai-graf.cesnet.cz ()  410 ms  150 ms  630 ms
     3  serv-rae.anet.cz ()  810 ms  970 ms  1310 ms
     4  rac-rae-gw.anet.cz ()  1030 ms  280 ms  810 ms
     5  rab.cesnet.cz ()  1250 ms  780 ms  410 ms
     6  192.121.158.53 ()  940 ms  430 ms  380 ms
     7  munich-ebs3-fddi1-0.ebone.net ()  750 ms  720 ms *
     8  * frankfurt-ebs1-hssi1-0.ebone.net ()  350 ms  340 ms
     9  frankfurt-ebs2-fddi0-0.ebone.net ()  310 ms  430 ms *
    10  icm-pen-12-H6/0-T3.icp.net ()  930 ms  880 ms  870 ms
    11  2-sprint-nap.internetmci.net ()  1070 ms  470 ms  470 ms
    12  core2-hssi2-0.WestOrange.mci.net ()  340 ms  470 ms  500 ms
    13  bordercore2-loopback.Washington.mci.net ()  500 ms  620 ms  470 ms
    14  166.48.39.254 ()  940 ms  430 ms *
    15  IR-Frankfurt1.WiN-IP.DFN.DE ()  460 ms  560 ms  660 ms
    16  ZR-Frankfurt1.WiN-IP.DFN.DE ()  620 ms  470 ms  970 ms
    17  ZR-Karlsruhe1.WiN-IP.DFN.DE ()  810 ms  440 ms *
    18  ZR-Stuttgart1.WiN-IP.DFN.DE ()  1750 ms  1090 ms  1440 ms
    19  ZR-Muenchen1.WiN-IP.DFN.DE ()  430 ms  500 ms  560 ms
    20  * LRZ-Muenchen1.WiN-IP.DFN.DE ()  560 ms  970 ms
    21  KR-LRZ-Muenchen1.lrz-muenchen.de ()  1280 ms *  2440 ms
    22  bro1cz.lrz-muenchen.de ()  2250 ms  4970 ms  2180 ms
    23  hpleo3.leo.org ()  2320 ms  2340 ms  2250 ms
    

      Stale probiha anketa

    Jeste stale se muzete zucastnit ankety NetMagu, probihajici jiz cely tyden. Kazda anketa NetMagu bude vzdy trvat jeden mesic, pak budou vysledky zverejneny i pro nehlasujici jiz v pristim cisle a bude vyhlasena anketa nova.

    DES is cracked

      DES byl rozlousknut

    Minuly tyden byl ruzlusten text "Strong cryptography makes the world a safer place", zakryptovany algoritmem DES s 56bitovym klicem. 10.000$ ziskal jakysi Rocke Verser ze Salt Lake City, clen konkurencniho americkeho louskajiciho teamu. Ukazalo se, ze DES, ac mu verila americka vlada, NSA i FBI, prece jen neni tak spolehlivy, jak se cekalo. Nicmene k rozlousknuti sifry bylo potreba asi 30 dni na zhruba 14.000 pocitacu (a mezi nami - take bylo celkem stesti, ze se na dany klic prislo jiz v 25% keyspace a nikoli az u 95%, coz by bylo take realne mozne). Nic vsak zatim neni ztraceno, ctete dalsi clanek

      DES je dobyt, vzhuru na RSA

    Tak to byva - kdyz se dobyde jeden hrad, okamzite se vsichni vrhnou na dalsi. Dalsim potencialnim sifrovacim algoritmem, kteremu bychom meli vypraskat kozich, bude 56bitovy RC5 algoritmus, ktery je spolu se sifrou IDEA vyuzivan kryptovacimi systemy RSA a PGP. Klienty muzete ziskat na site RSA Challenge Attack, keyserver je tamtez. Zatim jsou hotova necela tri procenta keyspace.

      JAVA - nejslibnejsi softwarova technologie na trhu

      Seznameni s Javou - prvni dil ze serie clanku o Jave, tento dil se inspiroval perfektni knihou The java Language Environment - October 1995, stazitelnou od Sunu pod nazvem language.ps

    Prispevek od Radima Kolare

    Nazory v prispevcich se nemuseji shodovat s oficialnimi nazory meho zamestnavatele. Informace zde uvedene, jsou poskytovany bezplatne a bez jakekoliv zaruky. Nenesu odpovednost za zadne skody, ktere mohou vzniknout jejich pouzitim. K dalsimu verejnemu sireni prispevku nebo jejich casti je nutny souhlas autora.

    Programovaci Jazyk JAVA dava jako kyslik novy zivot softwarovemu prumyslu - tvrdi JavaSoft.

    Je to pravda. Jazyk Java je obrovsky krok dopredu. Splni se sen vsech producentu a vsech uzivatelu software - konecne bude stejna aplikace bezet na vsech platormach. Konecne se vymanime z nadvlady Microsoftu a Windows. Uz bylo na case. JAVA JEDE!

    JAVA je klasifikovan jako programovaci jazyk pro internet. To neni tak uplne pravda, jazyk Java je univerzalni jazyk pro psani aplikaci (neni vhodny pro systemove programovani - psani operacnich systemu, driveru atd.). Pro programovani internet aplikace je vhodny z nekolika duvodu: multithreading, podpora soketu, podpora internet protokolu (HTTP,FTP,..), podpora obrazku ve formatu GIF a JPEG, podpora zvuku ve formatu au (Sun Audio), take podpora ve Web prohlizecich tomu nahrava. Java je ale daleko vice nez Applety ve web strankach.

    Rysy jazyka:

    • Ciste objektove orientovany jazyk: Java jazyk je ciste objektove orientovan, neobsahuje zadne funkce ci procedury obsahuje pouze objekty, vsechny operace jsou definovany jako operace s objekty.
    • Jazyk Java byl navrzen tak, aby se jeho syntaxe maximalne podobala jazyku C++. (stejne jako byla OS/2 navrzena tak, aby se navenek podobala DOSu. Ted jiz vime, ze to byla blbost, mela se podobat UNIXu.) Jazyk C je nejpouzivanejsi programovaci jazyk pro univerzalni pouziti. Proto prechod z C na Javu je snadny - musite se 'jenom' doucit pouzivat Java library classy.
    • Robusni a bezpecny: Java je navrzena jako bezpecny jazyk, program se kontroluje pri kompilaci i pri behu. Jazyk Java neobsahuje ukazatele a tak je eliminovana moznost prepsani pameti pri chybe programu (nebo security utoky typu buffer overflow). Dale se kontroluje kod pred spustenim na stack under/overflow. Dalsi vec, je automaticka garbage collection, coz desne usnadnuje programaturum praci - nemusi se starat o tzv. memory leaky (alokovana, vice uz nepouzivana oblast pameti, ktera chybou v programu nebyla dealokovana).
    • Nezavisly na platforme: Java program/kod bezi na libovolne plaformne podporovane Javou bez jakekoliv konverze.
    • Multithreading - Program muze mit nekolik nezavislych vlaken (napr. server jedno pro kazdeho pripojeneho klienta). To ma za nasledek vyssi vykon (neni treba testovat klienty casove narocnou poll metodou). Java nabizi siroke moznosti synchronizace jednotivych vlaken programu.
    • Dynamicky: Java run-time system je dynamicky linkuje poprve pouzite tridy. (Programovani v Jave ma jen 2 faze, preklad a spusteni.) Tyto tridy mohou byt dokonce nahravany i pres sit. Setri se tim take pamet, protoze nepouzivane tridy nejsou v operacni pameti. Linkuje se tim nejefektivnejsim zpusobem - nelikuji se cele baliky funkci (jako napr. *.DLL) ale primo jednotlive tridy. Dalsi vyhoda je, ze se nemusi pouzivat obvykle velmi komplikovane soubory Makefile (podivejte se schvalne na nejaky od X-Windows aplikace).
    • Vysoky vykon: Jazyk Java je jazyk interpretovany ale musim rici ze je jeden z nejrychlejsich interpretrovanych jazyku. Pokud se pouziji JIT (Just-in-Time) kompilatory, je pak vysledny kod priblizne jen 2-3x pomalejsi nez prekladany C kod. Na zrychleni jazyka Java Sun nyni intenzivne pracuje - uvidime co na nas v Java 1.2 vybali.

    Jazyk JAVA z pohledu C programatora:

    Java nabizi oproti C nektere zajimave moznosti:

    • Mluti-level break: Java nema prikaz skoku goto, misto toho vsak nabizi rozsireni prikazu break a continue o moznost vyskakovani z libovolne vnorenych smycek na libovolnou uroven. To je vec, ktera mne v jazyku C opravdu hodne chybela. Jestli jsem nekdy pouzil prikaz goto tak to bylo prave z tohoto duvodu, dalsi moznost je misto prikazu goto pouzivat k vyskakovani stavove promenne - coz zbytecne zneprehlednuje program.
    • Sprava pameti a garbage collection: Java ma automatickou garbage collection - t.j. neni potreba dealokovat objekty, ktere jiz vice nepotrebujete - Java to obstara za vas. Timto odpadne MNOHO starosti a chyb. Uz nikdy vice programovani ve stylu: na zacatku prodedury alokuji pamet pomoci malloc() a pak v kazde podmince, ktera opousti proceduru (vetsinou po chybe) provadim { free();return }. Toto hodnotim jako jeden z nejvetsich kladu Javy. Technicky je to zajisteno tak, ze Java si u kazdeho objektu poznamenava kolik je na nej referenci. Pokud neni zadna, objekt se pri pristi garbage collection smaze. Pri GC se taktez defragmentuje pamet.
    • Podpora vlaken (threadu): Vetsina UNIXu jiz umi taktez provozovat multi-threaded programy, ale protoze byly thready dodatecne dodelany, nepocita s nimi ani design Unixu ani design libc - takze napriklad neni mozne posilat signaly jinemu vlaknu ve stejnem procesu.

    Dalsi veci byly naopak z C v Jave odstraneny:

    • Odstraneny prikazy preprocesoru cpp: Pokud chcete porozumet cizimu C programu je nutno prostudovat nejdrive prislusne hlavickove soubory (*.h), kde jsou nadefinovany typy (typedef a #define). Toto znesnadnuje citelnost programu a autori Javy se rozhodli tuto vec odstranit. Zkuseny hacker se ale #define neboji a velmi hojne jej pouziva - je to muj velice oblibeny prikaz. Vetsinou se ale pouziva pro prevody z platformy na platformu coz je v Jave zbytecne. Konstanty definovat Java samozrejmne umi (pomoci final).
    • Ostraneny struktury a uniony: Java je ciste objektove orientovany jazyk a tyto veci nemaji v OO jazyku co delat. Daji se plne nahradit tridami.
    • Zadne funkce a procedury: Plati totez, co vyse.
    • Vicenasobna dedicnost + vsechny problemy, ktere s ni byly - jsou pryc. Podobne veci se daji realizovat definovanim interface.
    • Odstranen prikaz goto: z analyzy 100 000 radku C programu bylo zjisteno, ze temer 90% prikazu goto se pouzivalo na vyskakovani z vnorenych smycek, coz je v Jave reseno jinymi prostredky a zbylych 10% bylo pouzivano proste proto, ze to definice jazyka obsahuje.
    • predefinovani operatoru: v Jazyku Java neni mozne predefinovat aritmeticke operatory. Je ale mozne nadefinovat tridu obsahujici promene a dodefinovat prislusne metody.
    • automaticka konverze: v Jave nemuzete promene typu integer priradit bez konverze obsah promene typu float. Automaticka konverze vede ke ztrate informaci a casto zanasi obtizne hledatelne chyby do programu.
    • odstraneny ukazatele: Zli jazykove tvrdi ze pointry byly vymysleny proto aby nejprve na ne programator skocil jako na med, a pak se nimi nechal znicit. (Nevidi tady nekdo souvislost s M$ WiDoZe ?) V jednom mem programu, ktery chodil priblizne 2 roky najednou zacal havarovat: bus missed - core dumped. Nasazeni gdb nepomohlo, protoze se efekt zborceni neprojevi hned, ale az za nejakou dobu po chybe, asi nekde prepisuji spatnym ukazatelem pamet. Najit chybu v pomerne neprehlednem programu po 2 letech je dost tezke, tak jsem se smiril s tim, ze holt jedna cast nefunguje a ze vyhledove ho prepisi do Javy. V jazyce Java nejsou potreba pointery, protoze struktury nejsou podporovany a stringy a pole jsou objekty. Kazda uloha potrebujici v C ukazatele se da prepsat s vyuzitim pole objektu, misto pointeru se k poli pristupuje pomoci indexu, ktere java run-time kontroluje, takze prekroceni rozmeru pole hned oznami.

    Java a bezpecnost

    Jazyk Java je pokladan za vysoce bezpecny, bezpecnost byla jednim ze zakladnich pozadavku.

    • Pametovy model: Jak jsem jiz napsal v Jave neexistuji pointery a nemuze zde nastat situace buffer overflow, ktera je velmi casto pouzivana k tomu aby program spusteny s pravy roota vykonal to, co jeho tvurci rozhodne nezamysleli (bind, syslogd, ...)
    • Kontrola bytecodu: Bytecode Java programu se obvykle nahrava pres sit, takze je nutno zkontrolovat zda jeho tvurce nepripravil nejaka necekana prekvapeni. Kontroluje se: zda neobsahuje ukazatele, zda neporusuje pristupova prava k tridam, zda nepredefinovava jine tridy a zda neobsahuje stack under/over flow a zda udava spravne parametry k instrukcim java assembleru. (Prekladace javy od Microsoftu obcas generuji bytekod, ktery se Sunovske JVM nelibi - vyhazuje jej prave tato cast Javy. Proto kdo to mysli s Javou vazne nepouzije Microsoft nesmysly)
    • Sitova bezpecnost: Java appletu lze zakazat veskerou komunikaci po siti ci jenom komunikaci s pocitacem z nehoz byl nahran.
    • Bult-in security manager: Java ma vestavenou specialni tridu, ktera se nazyva SecurityManager. Tato trida umoznuje monitorovat a pripadne zakazovat vsechny potencialne nebezpecne akce. Ma mnoho voleb, co vsechno se da kontrolovat - od jiz vyse zmineneho pristupu na sit, pres pristup k lokalnim souborum (lze napr. povolit jen nektere), az po pristup k jednotlivym tridam. Skoda jen ze se WWW prohlizece dodavaji s predkonfigurovanym SecurityManagerem a neumoznuje jeho nastaveni z menu. Netscape Navigator 4 umoznuje jen vypnuti a zapnuti SM, coz je rozhodne velka skoda. Napriklad by bylo mozne povolit tisk na tiskarne a zaroven zakazat pristup k lokalnim souborum - takhle je to vsechno nebo nic. Skoda.

        GCC Bound Checking

      Prispevek od Radima Kolare

      Jak jsem psal v clanku o Jave, zacal mne posledni dobou padat jeden z mych vytvoru (MRL - udrzba *.MSG filebaze) v C na core dumped - cize pisi do pameti tam, kam nemam. Opravovat tuto chybu se mne moc nechtelo, protoze produkuji znacne neprehledne programy a po 2 letech se v nich absolutne nevyznam. Navic tento program vice nez rok a pul fungoval bezchybne.

      Vzpomel jsem si ze jsem nekde slysel cosi o bound checking patches pro GCC. Po par trablich jsem je nasel na ftp://dse.doc.ic.ac.uk/pub/misc/bcc. Tyto patche hlidaji vsechny operace s pointery, zda jsou korektni. Pochopitelne ze to ten program zdrzuje, je to jen pro otestovani spravnosti programu. Tak jsem to nainstaloval, otestoval na prikladu:

      #include < stdio.h>
      #include < stdlib.h>
      
      int p[10];
      
      main ()
      {
        int i;
        for (i = 0; i < 100; ++i)
          printf ("%d\n", p[i]);
      }
      

      Z prikladu je nazorne videt, co ty patche hlidaji. Vypisi diag. hlasku a okamzite provedou core dump. Vyse uvedeny program totiz nemusi zhavarovat hned na prvku 11, ale mnohem pozdeji. Nebo pokud mate napr dve pole za sebou int p[10],j[10] tak zapisem na p[11] obvykle prepisete j[0] - tohle take tyto patche hlidaji.

      Dale to uz bylo jednoduche: prelozil jsem svuj vytvor s prepinaci -g -fbounds-checking spustil jsem to, spadlo to, jako obykle s tim rozdilem ze jsem vedel cislo radky. Na te radce byla operace strcpy(,). To mne moc nepomohlo, tak jsem nabehnul na core debugerem gdb. Predtim jsem jeste zkusil pouzit nejakou X-WinDoZe nadstavbu nad gdb, ktera mne odradila, tak jsem vypnul Xka a pokracoval dal klasicky. (Xka zrovna nepatri mezi mnou oblibene pracovni prostredi - virtualni console jsou lepsi, pouzivam je minimalne a jedina X-aplikace, kvuli kterym je poustim je www prohlizec. Jeste mne depta zapnute full-window drag ve fvwm, az mne to zase vytoci tak pujde mily fvwm k zemi a misto nej vrazim twm ). Po prozkoumani core gdb jsem zjistil ze program padal z duvodu dlouheho MSGID, tak jsem tam vrazil misto 80ti znaku 260, prelozil a behalo to. Nechapu co ma kdo proti gdb - takovy hezky bagr.

      GCC Bound Checking Patches - doporucuje 10 z 5ti hackeru

      Po odzkouseni jsem si pri zalohovani vzpomel na ,,Pouze lameri pouzivaji zalohy. Opravdovy hacker nahraje sve dulezite veci do ftp archivu a necha to cely svet mirrorovat''. Tak jsem to zazalohoval jeste do nekolika anonymnich ftp archivu (LEO, FTP.CDROM.COM, HOBBES).

        LINUX a HP, jak to je ?

      Prispevek od Radima Kolare

      V minulem cisle NETMAGu jsem pravdepodobne chybne informoval ctenare o tom ze HP dodava LINUX na pracovni stanice s HP-PA RISC procesorem. Fakta co se mi podarilo ziskat jsou:

      • na ZDNETu byl uverejnen announcement ze HP bude dovadavat 'workstations and servers' s Linuxem na prani zakaznika. Nikde nebylo uvedeno ze se jedna o RISC stanice a servery. Ja jsem predpokladal ze se Intelovskym PC nerika workstation a ze Linux na Intelu je zcela bezna vec.
      • V Linux kernelu (ls /usr/src/linux/arch ) neni procesor HP-PA RISC uveden.
      • Na Internetu (t.j. JPP) jsem o Linuxu na HP cosi zaslechl (z vice zdroju) a bylo to prezentovano jako novinka.
      • Na serveru http://www.hp.com neni o Linuxu ani slovo.

      Zadny z techto faktu bohuzel nepotvrzuje ani nevyvraci, zda je ci neni Linux na HP-PA RISCu. Je mozne ze HP pracuje na portaci Linux Jadra na PA-RISC, stejne tak je mozne ze za celou touto slavou se skryva to, ze zakaznikovi prodaji CD s Linuxem k PC.


      Proud to be 100% Microsoft Free


      Powered by OS2 and Apache

      Powered by IBM OS/2 Warp Server Advanced