Tabelele de curcubeu: Coșmarul cel mai rău al parolei

Nu lasati numele lor drăguț să vă păcălească, aceste lucruri sunt înfricoșătoare.

În timp ce vă puteți gândi la Rainbow Tables ca pe un mobilier colorat eclectic, acestea nu sunt cele pe care le vom discuta. Tabelele Rainbow despre care vorbim sunt folosite pentru a sparge parolele și sunt încă un alt instrument în arsenalul hackerului tot mai în creștere.

Ce naiba sunt Tabelele Rainbow? Cum ar putea ceva cu un nume atât de drăguț și drăguț să fie atât de dăunător?

Conceptul de bază din spatele meselor de curcubeu

Sunt un tip rău care tocmai a conectat o unitate degetul mare într-un server sau o stație de lucru, a repornit-o și a executat un program care copiază fișierul bazei de date de securitate care conține nume de utilizator și parole pe unitatea degetului mare.

Parolele din fișier sunt criptate, deci nu le pot citi. Va trebui să sparg parolele din fișier (sau cel puțin parola de administrator) pentru a le putea folosi pentru a accesa sistemul.

Care sunt opțiunile pentru spargerea parolelor? Pot să încerc să folosesc un program de cracare a parolei, cum ar fi John Ripper, care se duce la fișierul de parolă, încercând să ghicească iterativ orice combinație posibilă de parolă. A doua opțiune este de a încărca un dicționar de spargere a parolelor care conține sute de mii de parole utilizate în mod obișnuit și de a vedea dacă primește orice rezultate. Aceste metode pot dura săptămâni, luni sau chiar ani, dacă parolele sunt suficient de puternice.

Când o parolă este "încercată" împotriva unui sistem, aceasta este "hashed" folosind criptarea, astfel încât parola actuală să nu fie trimisă în text clar pe linia de comunicații. Acest lucru împiedică interlocutorii să intercepteze parola. Hashul unei parole arata de obicei ca o gramada de gunoi si este de obicei o lungime diferita de parola originala. Parola dvs. ar putea fi "shitzu", dar hash-ul parolei va arata cam "7378347eedbfdd761619451949225ec1".

Pentru a verifica un utilizator, un sistem ia valoarea hash creată de funcția hash de parolă pe computerul client și o compară cu valoarea hash stocată într-un tabel de pe server. Dacă se potrivesc hash-urile, atunci utilizatorul este autentificat și acordat acces.

Hashing o parolă este o funcție 1-way, ceea ce înseamnă că nu puteți decripta hash-ul pentru a vedea care este textul clar al parolei. Nu există nici o cheie pentru a decripta hash-ul după ce a fost creat. Nu există niciun "inel de decodor" dacă doriți.

Programele de cracare a parolelor funcționează în mod similar procesului de conectare. Programul de cracare începe prin a prelua parolele plaintext, executându-le printr-un algoritm de hash, cum ar fi MD5, și apoi compară ieșirea hash cu hash-urile din fișierul de parole furate. Dacă găsește o potrivire, programul a spart parola. După cum am spus mai înainte, acest proces poate dura foarte mult.

Introduceți tabelele Rainbow

Tabelele Rainbow sunt, în esență, seturi uriașe de tabele precompulate completate cu valori hash care sunt pre-potrivite pentru posibile parole plastice. Tabelele Rainbow permit în mod esențial hackerilor să inverseze funcția hash pentru a determina ce ar putea fi parola de tip plaintext. Este posibil ca două parole diferite să ducă la același hash, astfel încât nu este important să aflați ce a fost parola originală, atâta timp cât are același hash. Parola plaintext nu poate fi chiar aceeași parolă care a fost creată de utilizator, dar atâta timp cât hash este potrivită, atunci nu contează ce parolă originală a fost.

Utilizarea Rainbow Tables permite ca parolele să fie crăpate într-o perioadă foarte scurtă de timp, în comparație cu metodele de forță brute, totuși compromisul este că necesită mult spațiu de stocare (uneori Terabytes) pentru a ține însuși Tabelele Rainbow, Depozitarea în aceste zile este abundentă și ieftină, astfel că acest compromis nu este la fel de mare ca și în urmă cu un deceniu, când unitățile terabyte nu au fost ceva pe care să-l puteți ridica la Best Buy.

Hackerii pot cumpăra tablouri Rainbow precompuse pentru a sparge parolele sistemelor de operare vulnerabile, cum ar fi Windows XP, Vista, Windows 7 și aplicațiile care utilizează MD5 și SHA1 ca mecanism de hashing al parolelor (mulți dezvoltatori de aplicații web folosesc în continuare acești algoritmi de hashing).

Cum să vă protejați împotriva atacurilor cu parole bazate pe curcubeu

Dorim să avem mai multe sfaturi despre asta pentru toată lumea. Am dori să spunem că o parolă mai puternică ar ajuta, dar acest lucru nu este cu adevărat adevărat, deoarece nu este slăbiciunea parolei care este problema, este slăbiciunea asociată cu funcția hash care este folosită pentru a cripta o parolă.

Cele mai bune sfaturi pe care le putem oferi utilizatorilor este să nu stați departe de aplicațiile web care vă limitează lungimea parolei la un număr scurt de caractere. Acesta este un semn clar al rutinelor vulnerabile de autentificare a parolei vechi. Lungimea și complexitatea parolei extinsă pot ajuta puțin, dar nu reprezintă o formă garantată de protecție. Cu cât este mai mare parola, cu atât mai mare ar trebui să fie tabelele Rainbow, dar un hacker cu o mulțime de resurse poate încă să realizeze acest lucru.

Sfatul nostru cu privire la modul de a apăra împotriva Rainbow Tables este într-adevăr destinat dezvoltatorilor de aplicații și administratorilor de sistem. Acestea se află pe prima linie atunci când vine vorba de protejarea utilizatorilor împotriva acestui tip de atac.

Iată câteva sfaturi pentru dezvoltatori în ceea ce privește apărarea împotriva atacurilor tabelului Rainbow:

  1. Nu utilizați MD5 sau SHA1 în funcția de hash de parole. MD5 și SHA1 sunt algoritmi depășiți de parcurgere a parolei și majoritatea tabelelor curcubeu utilizate pentru a sparge parolele sunt construite pentru a viza aplicațiile și sistemele care utilizează aceste metode de hash. Luați în considerare utilizarea mai multor metode hashing precum SHA2.
  2. Utilizați o "Salt" criptografică în rutina de rutare a parolei. Adăugarea unei sare criptografică la funcția de hash al parolei vă va ajuta să apărați împotriva folosirii tabelelor Rainbow utilizate pentru a sparge parolele în aplicația dvs. Pentru a vedea câteva exemple de codificare a utilizării unei sare criptografică pentru a ajuta la "Rainbow-Proof" aplicația dvs., vă rugăm să verificați site-ul WebMasters By Design, care are un articol extraordinar pe această temă.

Dacă doriți să vedeți cum hackerii efectuează un atac de parolă folosind Rainbow Tables, puteți citi acest articol excelent despre utilizarea acestor tehnici pentru a vă recupera propriile parole.