Rainbow Tables: Ang Pinakamasama bangungot ng iyong Password

Huwag hayaan ang kanilang cute na pangalan na lokohin ka, ang mga bagay na ito ay nakakatakot.

Habang maaari mong isipin ang Rainbow Tables bilang maraming ekstraktikal na makukulay na kasangkapan, hindi iyan ang gagawin namin upang talakayin. Ang Rainbow Tables na aming pinag-uusapan ay ginagamit upang i-crack ang mga password at isa pang tool sa patuloy na lumalagong arsenal ng hacker .

Ano ang ano ba ang Rainbow Tables? Paano maaaring maging mapanganib ang isang bagay na may tulad na isang cute at cuddly pangalan?

Ang Pangunahing Konsepto sa Likod ng Mga Tabing ng Rainbow

Isa akong masamang tao na naka-plug sa isang hinlalaki na biyahe sa isang server o workstation, reboot nito, at nagpatakbo ng isang programa na naglilipat ng database ng seguridad ng database na naglalaman ng mga username at password sa aking thumb drive.

Ang mga password sa file ay naka-encrypt kaya hindi ko mabasa ang mga ito. Kailangan kong i-crack ang mga password sa file (o hindi bababa sa password ng administrator) upang maaari kong gamitin ang mga ito upang ma-access ang system.

Ano ang mga opsyon para sa pag-crack ng mga password? Maaari ko bang subukan at gumamit ng programang crack ng password ng malupit na puwersa gaya ng John the Ripper, na nakuha ang layo sa file ng password, sinusubukang i-guess ang bawat posibleng kumbinasyon ng isang password. Ang ikalawang opsyon ay mag-load ng isang diksyunaryo ng pag-crack ng password na naglalaman ng daan-daang libo ng karaniwang ginagamit na mga password at makita kung nakakakuha ito ng anumang mga hit. Ang mga pamamaraan na ito ay maaaring tumagal ng mga linggo, buwan, o kahit na taon kung ang mga password ay sapat na malakas.

Kapag ang isang password ay "sinubukan" laban sa isang sistema na ito ay "hashed" gamit ang encryption upang ang aktwal na password ay hindi kailanman ipinadala sa malinaw na teksto sa buong linya ng komunikasyon. Pinipigilan nito ang eavesdroppers mula sa pag-intercept sa password. Ang hash ng isang password ay karaniwang mukhang isang bungkos ng basura at karaniwang isang ibang haba kaysa sa orihinal na password. Ang iyong password ay maaaring "shitzu" ngunit ang hash ng iyong password ay magiging hitsura ng isang bagay tulad ng "7378347eedbfdd761619451949225ec1".

Upang i-verify ang isang gumagamit, ang isang sistema ay tumatagal ng halaga ng hash na nilikha ng function na hashing ng password sa computer ng kompyuter at inihahambing ito sa halaga ng hash na nakaimbak sa isang talahanayan sa server. Kung ang mga hases ay tumutugma, pagkatapos ay ang user ay napatotohanan at nabigyan ng access.

Ang pag-crash ng isang password ay isang function na 1-way, ibig sabihin ay hindi mo maaaring i-decrypt ang hash upang makita kung ano ang malinaw na teksto ng password. Walang susi upang i-decrypt ang hash kapag ito ay nilikha. Walang "decoder ring" kung gagawin mo.

Ang mga programang pag-crack ng password ay gumagana sa katulad na paraan sa proseso ng pag-login. Ang crack na programa ay nagsisimula sa pamamagitan ng pagkuha ng mga password na plaintext, na tumatakbo sa mga ito sa pamamagitan ng isang hash na algorithm, tulad ng MD5, at pagkatapos ay inihahambing ang hash na output na may hashes sa ninakaw na file ng password. Kung nahahanap nito ang isang tugma pagkatapos ay na-crack ang programa ang password. Tulad ng sinabi namin dati, ang prosesong ito ay maaaring tumagal ng isang mahabang panahon.

Ipasok ang Rainbow Tables

Ang Rainbow Tables ay karaniwang mga malalaking hanay ng mga precomputed na mga talahanayan na puno ng mga halaga ng hash na pre-naitugmang posible sa mga posibleng mga password na plaintext. Ang Rainbow Tables ay mahalagang pahintulutan ang mga hacker na i-reverse ang function na hashing upang matukoy kung ano ang maaaring maging plaintext password. Posible para sa dalawang iba't ibang mga password upang magresulta sa parehong hash kaya hindi mahalaga na malaman kung ano ang orihinal na password, hangga't mayroon itong parehong hash. Ang plaintext password ay maaaring hindi maging ang parehong password na nilikha ng gumagamit, ngunit hangga't ang hash ay naitugmang, at pagkatapos ay hindi mahalaga kung ano ang orihinal na password.

Ang paggamit ng mga Rainbow Tables ay nagbibigay-daan para sa mga password na maging basag sa isang napaka-maikling halaga ng oras kumpara sa mga pamamaraan ng brute-puwersa, gayunpaman, ang trade-off ay nangangailangan ng maraming imbakan (minsan Terabytes) upang i-hold ang Rainbow Table mismo, Ang pag-iimbak ng mga araw na ito ay masagana at mura kaya ang trade-off na ito ay hindi kasing dami ng isang deal na ito ay isang dekada na ang nakalipas kapag ang mga terabyte drive ay hindi isang bagay na maaari mong kunin sa lokal na Best Buy.

Ang mga Hacker ay maaaring bumili ng precomputed Rainbow Tables para sa pag-crack ng mga password ng mga mahina na operating system tulad ng Windows XP, Vista, Windows 7, at mga application na gumagamit ng MD5 at SHA1 bilang kanilang mekanismo ng hashing ng password (maraming mga developer ng web application ay gumagamit pa rin ng mga hashing algorithm na ito).

Paano Protektahan ang Iyong Sarili Laban sa Mga Pag-atake sa Password sa Rainbow Table-Based

Nais namin na may mas mahusay na payo sa isang ito para sa lahat. Gusto naming sabihin na ang isang mas malakas na password ay makakatulong, ngunit ito ay hindi tunay na totoo dahil hindi ito ang kahinaan ng password na ang problema, ito ang kahinaan na nauugnay sa function na hashing na ginagamit upang i-encrypt ang isang password.

Ang pinakamahusay na payo na maaari naming ibigay sa mga gumagamit ay upang lumayo mula sa mga application sa web na naghihigpit sa haba ng iyong password sa isang maikling bilang ng mga character. Ito ay isang malinaw na pag-sign ng mahina na gawain sa pagpapatotoo ng password sa lumang-paaralan. Ang pinalawak na haba ng password at pagiging kumplikado ay maaaring makatulong sa isang bit, ngunit hindi isang garantisadong paraan ng proteksyon. Kung mas mahaba ang iyong password, mas malaki ang Rainbow Tables ay kailangang i-crack ito, ngunit ang isang hacker na may maraming mapagkukunan ay maaari pa ring magawa ito.

Ang aming payo kung paano ipagtanggol laban sa Rainbow Tables ay talagang sinadya para sa mga developer ng application at mga administrator ng system. Ang mga ito ay nasa harap ng mga linya pagdating sa pagprotekta sa mga gumagamit laban sa ganitong uri ng pag-atake.

Narito ang ilang mga tip sa developer sa pagtatanggol laban sa pag-atake ng Rainbow Table:

  1. Huwag gamitin ang MD5 o SHA1 sa iyong function na hashing ng password. Ang MD5 at SHA1 ay hindi napapanahong algorithm ng hashing ng password at karamihan sa mga talahanayan ng bahaghari na ginamit upang i-crack ang mga password ay binuo upang ma-target ang mga application at system gamit ang mga hashing na pamamaraan. Isaalang-alang ang paggamit ng mas modernong mga paraan ng hashing tulad ng SHA2.
  2. Gumamit ng isang cryptographic na "Salt" sa iyong password na hashing routine. Ang pagdaragdag ng isang cryptographic Salt sa iyong password hashing function ay makakatulong sa pagtatanggol laban sa paggamit ng Rainbow Tables na ginamit upang i-crack ang mga password sa iyong application. Upang makakita ng ilang mga coding na halimbawa kung paano gumamit ng isang cryptographic na asin upang matulungan ang "Rainbow-Proof" ang iyong application mangyaring tingnan ang WebMasters Sa pamamagitan ng Disenyo site na may isang mahusay na artikulo sa paksa.

Kung nais mong makita kung paano gagawa ang mga hacker ng pag-atake ng password gamit ang Rainbow Tables, maaari mong basahin ang mahusay na artikulo tungkol sa kung paano gamitin ang mga pamamaraan na ito upang mabawi ang iyong sariling mga password.