Оригиналът е на Simon Batt
Създаването на силна и уникална парола за всеки създаден от вас акаунт е от жизненоважно значение. Но чудили ли сте се някога как вашата силна парола се разбива и краква, за да могат хакерите да влязат в акаунтите ви?
Тествах три различни пароли с помощта на инструмент с отворен код за разбиване на пароли, за да разбера кое наистина върши работа, когато става въпрос за сигурността на паролите.
Какво представлява кракването на паролите?

Когато създавате акаунт в някоя онлайн услуга, доставчикът обикновено (и надявам се) криптира данните ви за логване в неговия сървър. Това става с помощта на алгоритъм за създаване на „хеш“ – на пръв поглед случаен низ от букви и цифри, уникален за вашата парола. Разбира се, в действителност той не е случаен – това е много специфичен низ от символи, който може да се състави само от вашата парола, но за нетренираното око той изглежда като нещо хаотично.
Далеч по-бързо и лесно е да превърнете една дума в хеш, отколкото да „разгърнете“ хеша отново в дума. По този начин, когато задавате паролата, услугата, в която се логвате, преобразува паролата ви в хеш и след това съхранява резултата на своя сървър.
Но ако този файл с хешираните пароли изтече, хакерите ще се опитат да разберат какво е неговото съдържание, като използват един от многото начини за разбиване на пароли. Тъй като е много по-бързо да се криптира една парола, отколкото да се декриптира, хакерите създават система, която приема потенциалните пароли като входни данни, криптира ги по същия метод като сървъра и след това сравнява резултата с изтеклата база данни с пароли.
Ако хешът на потенциалната парола съвпада с някой от записите в базата данни, хакерът ще разбере, че това съвпада с потенциалната парола, която е била изпробвана. Тоест, той е успял да открие паролата, която дава същия хеш и по този начин може да се логне в съответния акаунт.
Ето как кракнах собствените си пароли с помощта на HashCat
Добре, нека разбием (кракнем) няколко пароли, които съм създал, за да видим колко лесно е това. За целта ще използвам Hashcat, безплатна програма за разбиване на пароли с отворен код, достъпна за всеки.
За тези тестове ще разбивам следните пароли:
- 123456: Класическа парола и кошмар за киберсигурността: 123456 е най-често използваната парола в света. NordPass изчисли, че 3 милиона акаунта използват 123456 като парола, като 1,2 милиона от тях защитават акаунти на корпоративно ниво.
- Susan48!: Парола, която следва моделите, които повечето потребители използват, за да създадат сигурна парола. Обикновено тя отговаря на изискванията за основна хигиена на паролата, но както ще разгледаме по-късно, има някои критични слабости, които могат да бъдат използвани.
- t9^kJ$2q9a: Парола, която създадох с помощта на генератора Bitwarden. Той беше настроен да генерира парола с дължина 10 символа, като използва главни и малки букви, символи и цифри.
След като паролите бяха готови, аз ги криптирах с помощта на MD5. Ето как ще изглеждат паролите, когато са записани в някой файл с пароли:
- 123456: e10adc3949ba59abbe56e057f20f883e
- Susan48!: df1ce7227606805745ee6cbc644ecbe4
- t9^kJ$2q9a: 450e4e0ad3ed8766cb2ba83081c0a625
Сега е време да ги разбием.
Извършване на обикновено кракване с помощта на речникова атака

Като начало нека направим речникова атака – един от най-често срещаните методи за атакуване на паролите. Това е елементарна атака, при която вземам списък с потенциалните пароли, карам Hashcat да ги преобразува в MD5 и проверявам дали някоя от тях съвпада с трите записа по-горе. За този експеримент използвам файла „rockyou.txt“ като речник, който е едно от най-големите изтичания на пароли в историята.
За да започна разбиването, отивам в папката, в която се намира Hashcat, кликвам с десния бутон на мишката върху някое празно място и кликвам Open in Terminal. Сега, когато Терминалът е отворен и е настроен на директорията Hashcat, извиквам приложението Hashcat със следната команда:
.\hashcat -m 0 -a 0 passwordfile.txt rockyou.txt -o results.txt
Ето какво прави командата:
- .\hashcat извиква Hashcat.
- -m 0: Определя какво криптиране ще използваме. В този случай ще използваме MD5, което е посочено под номер 0 в помощния документ на Hashcat.
- -a 0: Определя вида на атаката, която искаме да проведем. В помощната документация на Hashcat речниковата атака е посочена под номер 0, така че ще я използваме тук.
- passwordfile.txt rockyou.txt: Първият файл включва трите криптирани пароли, които създадохме по-рано. Вторият е цялата база данни с пароли rockyou.
- -o results.txt: Тази променлива определя къде ще запишем резултата. В моята команда тя поставя кракнатите пароли в TXT файл, наречен „results“.
Въпреки огромния размер на rockyou, Hashcat ги обработи за шест секунди. Във файла с резултатите Hashcat съобщи, че е разбил паролата 123456, но паролите Susan и Bitwarden останаха неразбити. Това е така, защото 123456 е използвана от някой друг и се намира във файла rockyou.txt, но никой друг не е използвал паролите Susan и Bitwarden, което означава, че те са достатъчно уникални, за да оцелеят при тази атака.
Осъществяване на по-сложно кракване с помощта на маскирани атаки чрез метода на грубата сила

Речниковите атаки се извършват, когато някой използва същата парола като тази, която се намира в един голям списък с пароли. Те са бързи и лесни за изпълнение, но не могат да разбият паролите, които не се намират в речника. По този начин, ако искаме наистина да проверим паролите си, трябва да използваме атаките с груба сила (brute force attacks).
Ако при речниковите атаки става въпрос за вземане на предварително зададен списък и проверката им една по една, при атаките с груба сила се прави същото, но с всяка възможна комбинация. Те са по-трудни за изпълнение и отнемат много повече време, но в крайна сметка ще разбият всяка парола. Както ще видим съвсем скоро, тази евентуална възможност понякога може да отнеме много дълго време.
Ето командата, която използвах, за да направя „истинска“ атака по метода на грубата сила:
.\hashcat -m 0 -a 3 target.txt --increment ?a?a?a?a?a?a?a?a?a?a?a?a?a -o output.txt
Ето какво прави командата:
- -a 3: Тази променлива определя атаката, която искаме да направим. В помощната документация на Hashcat атаките с груба сила са посочени под номер 3, така че ги извикваме тук.
- target.txt: Файлът, съдържащ криптираната парола, която искаме да разбием.
- –increment: Това указва на Hashcat да изпробва всички пароли, които са с дължина един символ, след това два, три и така нататък, докато получим решение.
- ?a?a?a?a?a?a?a?a?a?a?a?a? Това е така наречената „маска“. Маските ни дават възможност да кажем на Hashcat кои символи да използва на дадено място. Всеки въпросителен знак обозначава позиция на символа в паролата, а буквата диктува какво ще опитаме на всяко едно място. Буквата „а“ представлява големи и малки букви, цифри и символи, така че тази маска казва: „Опитайте всичко на всяко едно от местата“. Това е ужасна маска, но по-късно ще я използваме по-пълноценно.
- -o output.txt: Тази променлива определя къде ще поставим резултата. Моята команда поставя кракнатите пароли в TXT файл, озаглавен „output“.
Дори с тази ужасна маска паролата 123456 беше разбита за 15 секунди. Въпреки че е най-популярната парола, тя е една от най-слабите.
Паролата „Susan48!“ беше много по-добра – компютърът ми каза, че за разбиването ѝ на сляпо ще са необходими четири дни. Имаше обаче един проблем. Спомняте ли си, когато казах, че паролата „Сюзън“ има някои критични недостатъци? Най-големият от тях е, че паролата е конструирана предсказуемо.
Когато създаваме парола, обикновено поставяме конкретни елементи на точно определени места. Можете да си представите, че човекът, създал паролата на Сюзън, първоначално се е опитал да използва „susan“, но му е било казано да добави главни букви и цифри. За да я запомни по-лесно, той е записал първия символ като главна буква и е добавил някакви цифри в края. След това може би една от услугите за логване е поискала символ, така че нашият съставител на пароли го е лепнал накрая.
По този начин можем много удачно да използваме маската, за да кажем на Hashcat да опитва само определени символи на определени места, за да използваме предсказуемостта на хората при създаването на пароли. В тази маска „?u“ означава, че на тази позиция ще се използват само главни букви, „?l“ означава да се използват само малки букви, а „?a“ означава всеки възможен символ:
.\hashcat -m 0 -a 3 -1a target.txt ?u?l?l?l?l?l?l?a?a?a -o output.txt
С тази маска Hashcat разбива паролата за три минути и 10 секунди, което е много по-бързо от четири дни.
Паролата Bitwarden е дълга десет символа и не използва никакви предсказуеми модели, така че ще трябва да извърша атака с груба сила без никакво маскиране, за да я разбия. За съжаление, когато помолих Hashcat да направи това, той генерира грешка, заявявайки, че броят на възможните комбинации надхвърля лимита на целите числа. IT Security Guru казва, че разбиването на паролата на Bitwarden ще отнеме три години, така че за мен това е напълно достатъчно.
Как да предпазите своите акаунти от разбиване на паролите
И така, какво можем да научим от това? Основните фактори, които ми попречиха да разбия паролата Bitwarden, бяха нейната дължина (10 символа) и непредсказуемост. Ето защо, когато създавате пароли, се старайте да ги правите възможно най-дълги и да ги обсипвате със символи, цифри и главни букви. Това пречи на хакерите да използват маски, за да предвидят къде се намира всеки елемент, и ги прави много по-трудни за разбиване.
Може би вече знаете старите традиционни поговорки за паролите като „използвай множество от символи“ и „направи я възможно най-дълга“. Надяваме се, че знаете защо хората дават тези полезни съвети – именно те са разликата между една кракната и една сигурна парола.
Разбиването на една парола може да отнеме както няколко милисекунди, така и хиляди години. Това зависи изцяло от това колко уникална и сложна е тя.
Атаките с груба сила са често срещан проблем, с който всеки трябва да е наясно. Използването на лесни за отгатване пароли оставя акаунтите уязвими за проникване, което води до кражба на самоличност, финансови затруднения и бизнес атаки.
Всичко важно от света на технологиите, директно в пощата ти.
С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.
Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!