abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 16:22 | Upozornění

    Společnosti Ticketmaster byla odcizena databáze s osobními údaji (jméno, adresa, telefonní číslo a část platebních údajů) 560 miliónů zákazníku. Za odcizením stojí skupina ShinyHunters a za nezveřejnění této databáze požaduje 500 tisíc dolarů [BBC].

    Ladislav Hagara | Komentářů: 0
    31.5. 23:55 | Nová verze

    Byla vydána nová stabilní verze 24.05 linuxové distribuce NixOS (Wikipedie). Její kódové označení je Uakari. Podrobný přehled novinek v poznámkách k vydání. O balíčky se v NixOS stará správce balíčků Nix.

    Ladislav Hagara | Komentářů: 0
    31.5. 17:33 | Nová verze

    Byla vydána nová verze 1.48.0 sady nástrojů pro správu síťových připojení NetworkManager. Novinkám se v příspěvku na blogu NetworkManageru věnuje Fernando F. Mancera. Mimo jiné se v nastavení místo mac-address-blacklist nově používá mac-address-denylist.

    Ladislav Hagara | Komentářů: 21
    31.5. 17:11 | Komunita

    Před 25 lety, 31. května 1999, započal vývoj grafického editoru Krita (Wikipedie). Tenkrát ještě pod názvem KImageShop a později pod názvem Krayon.

    Ladislav Hagara | Komentářů: 3
    31.5. 12:55 | Nová verze

    Farid Abdelnour se v příspěvku na blogu rozepsal o novinkám v nejnovější verzi 24.05.0 editoru videa Kdenlive (Wikipedie). Ke stažení brzy také na Flathubu.

    Ladislav Hagara | Komentářů: 0
    31.5. 11:22 | Zajímavý článek

    David Revoy, autor mj. komiksu Pepper&Carrot, se rozepsal o své aktuální grafické pracovní stanici: Debian 12 Bookworm, okenní systém X11, KDE Plasma 5.27, …

    Ladislav Hagara | Komentářů: 9
    30.5. 22:44 | Nová verze

    Wayland (Wikipedie) byl vydán ve verzi 1.23.0. Z novinek lze vypíchnout podporu OpenBSD.

    Ladislav Hagara | Komentářů: 0
    30.5. 21:22 | Zajímavý článek

    Craig Loewen na blogu Microsoftu představil novinky ve Windows Subsystému pro Linux (WSL). Vypíchnout lze GUI aplikaci pro nastavování WSL nebo správu WSL z Dev Home.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:44 | Pozvánky

    V sobotu 1. června lze navštívit Maker Faire Ostrava, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.

    Ladislav Hagara | Komentářů: 0
    30.5. 12:22 | Nová verze

    Webový server Caddy (Wikipedie) s celou řadou zajímavých vlastností byl vydán ve verzi 2.8 (𝕏). Přehled novinek na GitHubu.

    Ladislav Hagara | Komentářů: 17
    Rozcestník

    Duhové tabulky

    26.5.2006 17:39 | Přečteno: 2459× | Lisp

    Znám hash nějakého hesla a algoritmus, kterým se hashuje. Chci z něj získat heslo (o kterém mohu něco předpokládat, třeba že má pět znaků z určité množiny). Jsou dvě krajní možnosti:
    1. Projedu všechna možná hesla, zkusím, zda sedí hash. Trvá to dlouho, spotřeba paměti minimální
    2. Vezmu tabulku hashí, heslo v ní vyhledám, a je to. Trvá to krátce, potřebuju dost velkou a neskladnou tabulku.
    Existuje trik, kterým lze dosáhnout kompromisu: nadefinuju si funkci, která převádí hash zpátky na (jiné) možné heslo, a opakovaně aplikuju hashování a tuto funkci. Po určitém počtu opakování (nebo jindy, kdy se mi zachce) uložím koncovou hash či heslo a přiřadím jí počáteční. Tak mi vznikne tabulka menší než v případu 2. Pokud chci dekódovat hash, aplikuju obdobnou proceduru, dokud nenajdu výsledek v tabulce (pak vezmu počáteční heslo a propracovávám se zpátky k původnímu) nebo usoudím, že to nemá cenu (pak mám smůlu)

    Evidentně čím více řádků, tím větší šance, že to tam bude, a tím větší tabulka. Čím více sloupců, tím větší šance, že to tam bude, a tím déle to trvá. Jaké je procento pokrytí možných hesel viz odkazovaný článek.

    Má to pár háčků, část z nich lze řeší právě zduhatěním algoritmu: pro každý krok se použije jiná funkce hash -> heslo. Pak je ovšem potřeba zkoušet různé polohy hashe v tabulce.

    Řečeno přesněji (aneb implementace v Lispu - spíš instruktivní než pro použití):

    (defstruct (rainbow-table (:type vector)) rows
       colors startpoints reducing-function cipher-function)
    
    
    (defun cipher (key table)
      "Do the hashing step"
      (funcall (rainbow-table-cipher-function table) key))
    
    (defun reduce-hash (hash color table)
      "Call reducing function"
      (funcall (rainbow-table-reducing-function table) hash color))
    
    (defun cipher-and-reduce (key color table)
      "Returns next key in a row"
      (reduce-hash (cipher key table) color table))
    
    (defun traverse-chain (start-key start-color table 
                                     &optional (end-color (colors-in table)))
      "Return final key for given start key and table"
      (loop for color from start-color to end-color
            for key = start-key then (cipher-and-reduce key color table)
            finally (return key)))
    
    (defun setup-rows (table start-keys-generator)
      "Initialize the table"
      (let ((start-rows (make-hash-table)))
        (loop for row from 0 to (1- (rows-in table))
              for start-key = (funcall start-keys-generator row)
              do (setf (gethash 
                         (traverse-chain start-key 0 table) start-rows)
                       start-key))
        (setf (rainbow-table-startpoints table) start-rows)))
    
    (defun lookup-start-key (end-key table)
      "Return start key to end key, or nil if end key is not in table."
      (gethash end-key (rainbow-table-startpoints table)))
    
    (defun lookup-key (key start-color table)
      (let ((start-key (lookup-start-key key table)))
        (when start-key (traverse-chain start-key 0 table (1- start-color)))))
    
    (defun decipher (hash table)
      (loop for start-color from 0 to (1- (colors-in table))
            for result =  (lookup-key
                   (traverse-chain
                     (reduce-hash hash start-color table) start-color table)
                   start-color table)
            do (when (and result
                          (eql (cipher result table) hash))
                 (return result))
            finally nil))
    

    Obrana: pořádná hesla (je to pořád jenom brute force attack), solit hashe (pak se hůř předpřiravují tabulky)

           

    Hodnocení: 100 %

            špatnédobré        

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    26.5.2006 20:45 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Duhové tabulky
    To vypadá na docela zajímavou metodu, díky za ten paper. :-) Ale radši si do opšnů defstructu přidám (:conc-name rt-) :-D
    26.5.2006 21:44 Kyosuke | skóre: 28 | blog: nalady_v_modre
    Rozbalit Rozbalit vše Re: Duhové tabulky
    Mimochodem, „The following functions were used but not defined: ROWS-IN COLORS-IN“ je v pořádku? :-)
    29.5.2006 08:13 Tom.š Ze.le.in | skóre: 21 | blog: tz
    Rozbalit Rozbalit vše Re: Duhové tabulky
    Ne, tak to dopadá, když to člověk přepisuje za běhu z defclass do defstruct.
    26.5.2006 20:58 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Duhové tabulky
    Mně to pdfko nejde stáhnout - vždycky zamrznu kolem 40%. Takže asi zůstanu hloupej. Ledeže by mi to chtěl někdo třeba poslat mailem (ignor TEČKA knize ZAVINÁČ seznam.cz) :-) Nebo si to můžu v pondělí stáhnout odjinud, ale alespoň uvidím, jak jsou tady lidi hodný ;-)
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)
    Jan Zahornadsky avatar 26.5.2006 21:48 Jan Zahornadsky | skóre: 22 | blog: hans_blog
    Rozbalit Rozbalit vše Re: Duhové tabulky
    Aby tě místní hodní lidé do rána neuspamovali ;-)
    Actually, I was half an hour into the pointer scripting documentation when she got dressed and left.
    26.5.2006 22:23 Kníže Ignor | skóre: 19 | blog: stoupa
    Rozbalit Rozbalit vše Re: Duhové tabulky
    Končím soutěž. Každý, kdo mi to do tohoto okamžiku poslal a došlo mi to, odemne dostane 1000 Kč, ať vidíte, že umím bejt vděčnej. Detaily s výherci vyřešíme mailem.
    Jestli máš zálohu mého blogu, tak mi ji pošli. Nějak jsem si ho smazal :-)

    Založit nové vláknoNahoru

    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.