Mavrične tabele: najhuje nočno moštvo geslo

Ne pustite, da se jim srčkano ime zbudi, te stvari so strašne.

Medtem ko si morda mislite na Rainbow Tables kot eklektično pisano pohištvo, to niso tisti, o katerih bomo razpravljali. Mavrične tabele, o katerih govorimo, se uporabljajo za razpadanje gesel in so še eno orodje v hekerjevem vedno večjem arzenalu.

Kaj so mračne tabele? Kako bi lahko bilo tako tako sladko in čudno ime tako škodljivo?

Osnovni koncept Behind Rainbow Tables

Sem slab človek, ki je pravkar priključil pogon za palec v strežnik ali delovno postajo, ga ponovno zagnal in zagnal program, ki kopira datoteko varnostne baze podatkov, ki vsebuje uporabniška imena in gesla na moj palec pogon.

Gesla v datoteki so šifrirana, zato jih ne morem prebrati. Geslo bom moral raztrgati v datoteki (ali vsaj skrbniško geslo), da jih lahko uporabim za dostop do sistema.

Kakšne so možnosti za gesla za razpoke? Lahko poskusim uporabiti program brisanja grškega sila , kot je John the Ripper, ki preseže datoteko gesla in poskuša iterativno uganiti vsako možno kombinacijo gesla. Druga možnost je, da naložite geslo cracking slovar, ki vsebuje več sto tisoč pogosto uporabljenih gesel in videli, če dobi vse zadetke. Te metode lahko trajajo tedni, meseci ali celo leta, če so gesla dovolj močna.

Ko je geslo "preizkušeno" proti sistemu, je "hashed" z uporabo šifriranja, tako da dejansko geslo nikoli ni poslano v jasnem besedilu prek komunikacijske linije. To preprečuje prisluškovalcem, da ne prestrezajo gesla. Geslo gesla ponavadi izgleda kot kup smeti in je običajno drugačna dolžina od prvotnega gesla. Vaše geslo je morda »shitzu«, vendar pa je geslo vašega gesla videti nekaj podobnega »7378347eedbfdd761619451949225ec1«.

Če želite preveriti uporabnika, sistem vzame vrednost hash-a, ki jo je ustvarila funkcija hashing-a na računalniku odjemalca, in jo primerja z vrednostjo hash-a, shranjene v tabeli na strežniku. Če se haši ujemata, je uporabnik avtentificiran in odobren dostop.

Hashing geslo je enosmerna funkcija, kar pomeni, da ne moreš dešifrirati razpršila in videti, kaj je jasno besedilo gesla. Ni ključa za dešifriranje heh, ko je ustvarjen. Če ne, ni "dekodirnega obroča".

Programi za kreiranje gesel delujejo podobno kot postopek prijave. Program krekinga se začne z uporabo gesel za navidezno besedo, ki jih poganja skozi algoritem razpršitve, kot je MD5, nato pa primerja izrezek s hišami v ukradeni datoteki gesla. Če najde tekmo, je program raztrgal geslo. Kot smo že omenili, lahko ta proces traja zelo dolgo.

Vnesite Mavrične tabele

Mavrične tabele so v bistvu ogromne množice predračunanih tabel, napolnjenih z vrednostmi hash-a, ki se predhodno ujemajo z morebitnimi gesli navadnega besedila. Mavrične tabele v bistvu omogočajo hekerjem, da spremenijo funkcijo hashinga, da ugotovijo, kakšno je geslo za navadno besedilo. Možno je, da dve različni gesli povzročita isti razpršek, zato ni pomembno, da ugotovite, kaj je bilo prvotno geslo, dokler ima isti razpršek. Geslo za navidezno besedilo morda sploh ne bi bilo isto geslo, ki ga je ustvaril uporabnik, vendar, dokler se ujema z hashom, potem ni važno, kaj je bilo prvotno geslo.

Uporaba Rainbowjevih tabel omogoča, da se gesla v zelo kratkem času razbijejo v primerjavi z metodami z metodami brutalnega sila, vendar pa je kompromis potreben, da je potrebno veliko prostora za shranjevanje (včasih Terabytes), da bi se mavrične tabele same držale, Skladiščenje teh dneh je veliko in poceni, tako da ta kompromis ni tako velik posel, kot je bilo pred desetimi leti, ko terabyte pogoni niso bili nekaj, kar bi lahko pobrali na lokalnem Best Buyu.

Hekerji lahko kupijo vnaprej izračunane mavčne tabele za geslo za razpoke ranljivih operacijskih sistemov, kot so operacijski sistemi Windows XP, Vista, Windows 7 in aplikacije, ki uporabljajo MD5 in SHA1 kot svoj mehanizem za gesla (mnogi razvijalci spletnih aplikacij še vedno uporabljajo te algoritme za hajšanje).

Kako se zaščititi pred napadi gesla na osnovi mavčnih kartic

Želimo si, da bi za to svetovali boljši nasveti. Želeli bi reči, da bi močno geslo pomagalo, vendar to res ni res, ker ni šibkost gesla, ki je problem, šibkost, povezana s funkcijo hashinga, ki se uporablja za šifriranje gesla.

Najboljši nasvet, ki ga lahko damo uporabnikom, je, da se izognete spletnim aplikacijam, ki omejujejo dolžino gesla na kratko število znakov. To je jasen znak ranljivih starih šolskih gesel za preverjanje pristnosti gesel. Podaljšana dolžina in kompleksnost gesla lahko malo pomagata, vendar ni zajamčena oblika zaščite. Čim dlje časa je vaše geslo, večja je mavrična tabela, ki bi morala biti zguba, vendar lahko hacker z veliko sredstvi še vedno to doseže.

Naš nasvet o obrambi pred Rainbow Tables je resnično namenjen razvijalcem aplikacij in sistemskim administratorjem. Na čelnih linijah so zaščiteni uporabniki pred tovrstnim napadom.

Tukaj je nekaj nasvetov za razvijalce, ki se bori proti napakam v tabeli Rainbow:

  1. Ne uporabljajte MD5 ali SHA1 v vašem hashing funkciji. MD5 in SHA1 sta zastareli algoritmi haha ​​in gesla in večina mavričnih tabel, uporabljenih za razprševanje gesel, so zgrajene za ciljanje aplikacij in sistemov, ki uporabljajo te metode haširanja. Razmislite o uporabi več sodobnih metod hašiša, kot je SHA2.
  2. Uporabite kriptografsko "Salt" v vaši geselni rutini. Dodajanje kriptografske soli v funkcijo hashing funkcije bo pomagal braniti pred uporabo Rainbow Tables, uporabljenih za razpadanje gesel v vaši aplikaciji. Če si želite ogledati nekaj kodirnih primerov uporabe kriptografske soli za pomoč pri "Rainbow-Proof", prosimo, preverite spletno mesto WebMasters By Design, ki ima odličen članek o tej temi.

Če želite videti, kako hekerji izvedejo napad z gesli z Rainbow Tables, lahko preberete ta odličen članek o uporabi teh tehnik za obnovitev lastnih gesel.