Rainbow Tables: Най-лошият кошмар на вашата парола

Не позволявайте на тяхното сладко име да ви заблуждават, тези неща са страшни.

Докато мислите за Rainbow Tables като еклектични цветни мебели, те не са тези, които ще обсъдим. Таблиците за дъгата, за които говорим, се използват за пробиване на пароли и са още един инструмент в постоянно нарастващия арсенал на хакерите .

Какво по дяволите са Rainbow Tables? Как може нещо с толкова сладко и сладко име да бъде толкова вредно?

Основната концепция зад дъгистите таблици

Аз съм лош човек, който току-що включи устройство за палец в сървър или работна станция, го рестартира и изпълни програма, която копира файла на базата данни за сигурност, съдържащ потребителски имена и пароли на моя палец.

Паролите във файла са кодирани, така че не мога да ги прочета. Ще трябва да пропусна паролите във файла (или поне администраторската парола), за да мога да ги използвам за достъп до системата.

Какви са опциите за изкривяване на пароли? Мога да се опитам да използвам програма за крекинг на груба сила , като Джон изкормвача, който се отдръпва от файла с паролата и се опитва да интерпретира всяка възможна комбинация от парола. Втората възможност е да заредите пароли за натискане на пароли, съдържащи стотици хиляди често използвани пароли, и да видите дали ще получат някакви посещения. Тези методи могат да отнемат седмици, месеци или дори години, ако паролите са достатъчно силни.

Когато паролата се "опита" срещу дадена система, тя е "хеширана", използвайки криптиране, така че действителната парола никога да не се изпраща в ясен текст през комуникационната линия. Това предотвратява прихващане на паролата от подслушватели. Хашишът на парола обикновено изглежда като куп боклук и обикновено е с различна дължина от оригиналната парола. Паролата ви може да е "shitzu", но хеш паролата ви ще изглежда като "7378347eedbfdd761619451949225ec1".

За да потвърди потребител, системата взема хеш-стойността, създадена от функцията за хеширане на паролата на клиентския компютър, и я сравнява със стойността на хеш, съхранена в таблица на сървъра. Ако хешове съвпадат, потребителят се удостоверява и му се предоставя достъп.

Hashing паролата е 1-лентова функция, което означава, че не можете да декриптирате хеш, за да видите какъв е ясният текст на паролата. Няма ключ за декриптиране на хеш, след като бъде създаден. Няма "декодиращ пръстен", ако желаете.

Програмите за крекинг на пароли работят по подобен начин на процеса на вход. Програмата за крекинг започва с приемането на скрити текстови пароли, прекарвайки ги чрез хеш алгоритъм, като MD5, и след това сравнява хеш изхода с хешове в откраднатата парола. Ако открие съвпадение, програмата е пропукала паролата. Както казахме по-рано, този процес може да отнеме много време.

Въведете таблиците за дъгата

Rainbow Tables са основно огромни комплекти от предварително комбинирани таблици, изпълнени с хеш стойности, които са предварително съгласувани с възможни пароли за обикновен текст. Таблиците за дъгата по същество позволяват на хакерите да обърнат функцията за хеширане, за да определят какво може да бъде паролата за свободен текст. Възможно е две различни пароли да доведат до същата хеш, така че не е важно да се разбере коя е оригиналната парола, само ако има същото хеш. Паролата за отворен текст може и да не е същата, която е създадена от потребителя, но докато хешът съвпада, няма значение коя е оригиналната парола.

Използването на Rainbow Tables позволява пароли да се напукат в много кратък период от време в сравнение с методите на груба сила, но компромисът е, че е необходимо много съхранение (понякога Terabytes), за да се задържат самите Rainbow Tables, Съхранението в наши дни е в изобилие и евтино, така че този компромис не е толкова голям, колкото преди десетилетие, когато терабайтовите дискове не бяха нещо, което можете да вземете в местния Best Buy.

Хакерите могат да купуват предварително компресирани Rainbow Tables за пробиване на пароли на уязвими операционни системи като Windows XP, Vista, Windows 7 и приложения, използващи MD5 и SHA1 като техен механизъм за хеширане на пароли.

Как да се защитите срещу Rainbow Tables-базирани пароли атаки

Бихме желали да има по-добри съвети по този въпрос за всички. Бихме искали да кажем, че по- силна парола би помогнала, но това не е вярно, защото това не е слабостта на паролата, а слабостта, свързана с функцията за хеширане, се използва за шифроване на парола.

Най-добрият съвет, който можем да дадем на потребителите, е да не стоят настрана от уеб приложенията, които ограничават дължината на паролата ви до кратък брой знаци. Това е ясен знак за уязвими рутинни процедури за удостоверяване на паролата за старо училище. Удължената продължителност на паролата и сложността може да помогне малко, но не е гарантирана форма на защита. Колкото по-дълго е паролата ви, толкова по-големи ще са драконовите таблици, но хакер с много ресурси все още може да постигне това.

Нашият съвет за това как да се защитим срещу Rainbow Tables е наистина предназначен за разработчици на приложения и системни администратори. Те са на първа линия, когато става дума за защита на потребителите от този тип атаки.

Ето някои съвети за разработчици, които защитават срещу нападенията на Rainbow Table:

  1. Не използвайте MD5 или SHA1 в функцията за хеширане на паролата. MD5 и SHA1 са остарели алгоритми за хеширане на пароли и повечето таблици с дъга, използвани за изкривяване на пароли, са създадени за насочване към приложения и системи, използващи тези методи за хеширане. Обмислете използването на по-модерни методи за хеширане като SHA2.
  2. Използвайте криптографска "сол" в рутинната процедура за хеширане на пароли. Добавянето на криптографска сол към функцията за хеширане на паролата ще ви помогне да се защитите срещу използването на Rainbow Tables, използвани за изкривяване на пароли във вашето приложение. За да видите някои кодиращи примери за това как да използвате криптографска сол, за да помогнете за "Rainbow-Proof", моля, разгледайте уеб сайта WebMasters By Design, който има страхотна статия по темата.

Ако искате да видите как хакерите извършват атака с парола, използвайки Rainbow Tables, можете да прочетете тази отлична статия за това как да използвате тези техники, за да възстановите собствените си пароли.