Какво е речникова атака?

За да се удостоверите в уебсайт, трябва да предоставите потребителско име и парола. След това сайтът проверява данните за удостоверяване, които сте предоставили, като ги сравнява с подробностите, които е съхранил в своята база данни. Ако подробностите съвпадат, достъпът се предоставя. Ако данните не съвпадат, достъпът се отказва.

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

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

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

Кракване на хешове на пароли със smarts

Разбиването на хеш парола е процес на определяне на оригиналната парола, която представлява хешът. Тъй като няма начин да обърнете хеш функцията и да превърнете хеша в паролата. Единственият начин да разбиете хеш е да познаете паролата. Един от методите е използването на атака с груба сила. Това буквално включва изпробване на всяка възможна парола. Това означава да започнете от „а“, да опитате всяка буква, и в двата случая, и всяка цифра и символ. След това нападателят трябва да опита всички комбинации от два знака, комбинации от три знака и т.н. Увеличаването на възможните комбинации от знаци е експоненциално всеки път, когато добавите знак. Това затруднява ефективното отгатване на дълги пароли, дори когато се използват бързи алгоритми за хеширане с мощни системи за кракване на GPU.

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

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

Правене на обосновани предположения

Речниците на пароли обикновено са изградени от предварително разбити пароли от други пробиви на данни. Тези речници могат да съдържат хиляди или милиони записи. Това се основава на концепцията, че хората са лоши в създаването на уникални пароли. Доказателствата от нарушения на данните показват, че това също е така, за съжаление. Хората все още използват варианти на думата „парола“. Други често срещани теми са спортни отбори, имена на домашни любимци, имена на места, имена на компании, мразене на работата ви и пароли въз основа на датата. Това последното обикновено се случва, когато хората са принудени редовно да променят паролите си.

Използването на речник на паролите значително намалява броя на предположенията, които трябва да бъдат направени, в сравнение с атака с груба сила. Речниците на паролите също са склонни да съдържат както кратки, така и по-дълги пароли, което означава, че някои пароли могат да бъдат изпробвани, които няма да бъдат достигнати дори с години или грубо отгатване. Подходът също се оказва успешен. Статистиката варира в зависимост от нарушението на данните и размера и качеството на използвания речник, но процентът на успех може да надхвърли 70%.

Степента на успех може да се повиши още повече с алгоритми за изкривяване на думи. Тези алгоритми вземат всяка дума в речника на паролата и след това я променят малко. Тези модификации обикновено са стандартни замествания на символи и добавяне на числа или символи в края. Например, обичайно е хората да заменят буквата „e“ с „3“ и „s“ с „$“ или да добавят удивителен знак в края. Алгоритмите за манипулиране на думи създават дубликати на всеки запис в речника на паролата. Всеки дубликат има различна вариация на тези замествания на знаци. Това значително увеличава броя на паролите за отгатване и също така увеличава процента на успех, в някои случаи над 90%.

Заключение

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

Едно от основните неща, които трябва да направите, когато измисляте парола, е да се уверите, че тя няма да се появи в списък с думи. Един начин да направите това е да направите сложна парола, друг е да направите дълга парола. Като цяло най-добрият вариант е да направите дълга парола, съставена от няколко думи. Важно е само тези думи да не представляват истинска фраза, тъй като може да се предположи. Те трябва да са напълно несвързани. Препоръчително е да изберете парола над 10 знака с 8 като абсолютен минимум.