Визуализация на използваните модели на пароли

Типичен пример за тези правила е следният списък:
- Дължината на паролата трябва да е поне 12 знака
- Трябва да съдържа 2 специални знака
- Трябва да съдържа 2 цифри
- Трябва да съдържа 2 главни букви
- Паролата не трябва да съдържа думи от речника на известните пароли
Този набор от правила е общ за всички потребители, така че никой да не създава пароли, които са твърде прости. От друга страна, много е трудно да се измисли парола, която едновременно отговаря на тези правила и всъщност е лесна за запомняне.
Поради затягането на правилата за паролата, много потребители прибягват до алтернативни методи за създаване на запомняща се парола въз основа на графични модели на клавиатурата Пример за този тип парола е1qaz!QAZ2wsx@WSX. Въпреки че на пръв поглед изглежда доста произволно, съдържа 16 символа и изглежда доста надеждно, анализът на последователността от натискания на клавиши разкрива доста прост модел.

Ясно е, че потребителят е избрал лесна за запомняне парола, но е ясно, че моделът започва с числото "1", продължава надолу до буквата "z", след това се повтаря с натиснатShiftи след това повтаря същата техника за колона "2" до "x". Тази статия говори за метода на визуализация и развитието на евристичен анализ,което ви позволява да избирате на пръв поглед сложни пароли.
Често срещани атаки с пароли
Следствие от този напредък в кракването на пароли е, че потребителите, които са съзнателни за сигурността, са мотивирани да създават по-сложни пароли. В опит да създадат лесна за запомняне, но сложна парола, потребителите прибягват до използването на пароли, базирани на шаблони на клавиатурата.
Изследването се фокусира върху способността за разпознаване на графични модели на клавиатурата. Използван е следният подход:
- събиране на пароли, включително такива, за които е известно, че са създадени с помощта на шаблони на клавиатурата;
- разработване на техника за визуализация за последващ анализ на пароли с цел подчертаване на общите части на шаблоните;
- разработване на евристики, базирани на признати модели;
- създаване на речник на паролите на базата на създадената евристика;
- използване на инструмент за кракване на истинска парола.
Събиране на пароли
Целта на колекцията беше голям набор от възможни комбинации от пароли. Не можахме да събираме въз основа на един от речниците, тъй като ни трябваха пароли, които отговарят на доста строги правила. За да се реши този проблем, беше създадено онлайн ръководство за създаване на пароли. С помощта на студенти беше събрана голяма база данни с пароли, която беше използвана за последващ анализ.
Една от статиите с уроци обяснява концепцията за пароли въз основа на модели на клавиатурата и ги моли да си ги представят. За постигане на целта е използвана система за визуализация в реално време.

С помощта на създадения инструмент сме събрали повече от 250 уникални пароли, базирани на шаблони с помощта на 161 потребители. Освен това бяха генерирани повече от 500 „случайни“ пароли.
Визуализация на модела
Следващата стъпка е да се анализира набор от пароли въз основа на графични модели на клавиатурата, за да се намерят общи неща. Просто изображение, съдържащо линии, свързващи последователно натиснати клавиши на графична клавиатура, не беше достатъчно. В този случай линиите ще се припокриват една с друга, ако клавишите на клавиатурата са в един и същ ред или изобщо няма да бъдат начертани линии, ако един и същ клавиш бъде натиснат няколко пъти подред. По този начин последователността на въвеждане на знаци би била подвеждаща.
Беше необходимо да се създаде начин за визуализиране на такива ситуации като: натискане на клавишShift, многократно натискане на един клавиш, многократно въвеждане на набор от знаци. Първият подход беше паролата да се възпроизведе последователно, символ по знак. Този подход решава проблема с разпознаването на образи, но не решава проблема с визуализирането и сканирането на голям брой пароли.
За да се подобри разпознаването на шаблони при сравняване на няколко пароли, се използват следните правила:
- Последователно натиснатите клавиши са свързани с дъги.
- С натиснат клавишShiftувеличете дебелината на дъгата.
- Многократните натискания на един клавиш са изобразени с дъги, чиито краища са един възел, така че се образува „цвете“
- Многократното въвеждане на поредица от символи се показва чрез изместване на дъгите.
- Многократното последователно натискане на един клавиш се изобразява като изместени венчелистчета.
- Дъгите винаги се чертаят по посока на часовниковата стрелка, за да се запази редът на натискане на клавишите.
По-долу е показана фигура, показваща всички тези правила.

С удебелени линии всичко е ясно - натиснат е клавишътShift. В допълнение, клавишите"d"и"t"е натиснат многократно. Осем удара на клавиша "t" образуват дъга към клавиша, както и четирилистник и трилистник, вложен в него. По същия начин можете да анализирате многократно (четири пъти) натискане на клавиша "d". Повтаряща се комбинация от символи "qwqwqw" се показва чрез изместване на дъги. Тъй като дъгите винаги се чертаят по посока на часовниковата стрелка, можете да дефинирате последователности от натискания на клавиши, без да насочвате стрелки върху дъгите.
Следващата фигура показва примери за визуализация на модели на клавиатура, съдържащи се в анализираната база данни. Ако паролата не е създадена на базата на графични модели на клавиатурата, както в пример 4 на фигурата, тогава това се вижда веднага.




Основната задача беше да се определят основните структурни елементи на шаблони от базата данни за бързо разпознаване на пароли. Следва пример за намиране на такива уникални елементи, от които да се направи шаблон, базиран на таблица 4x4, генерирана от специален инструмент.

Прототип на инструмент за разбиване на пароли, използващ шаблони

С помощта на получените елементарни шаблони са генерирани всички възможни комбинации от пароли с дължина от 8 до 12 знака. Диапазонът от дължини на паролите е избран произволно, но ако желаете, той може да бъде увеличен, което ще доведе до силно увеличаване на обема на речника.
Генераторът на пароли генерира пароли, като използва следната структура (сортирана по приоритет):
- Спазване на правилото за сложността на паролата.
- Части от паролата са насочени в една посока.
- Частите на паролата са с еднаква дължина.
- Всички части на паролата се въвеждат сShiftили не.
- Частите на паролата са насочени отляво надясно или отгоре надолу.
- Има само части от паролатаедно прекъсване на клавиатурата.
Примери за генерирани пароли съгласно тези правила са показани на фигурата по-долу.

Полученият речник съдържа около 500 000 опции. Той обаче не съдържа всички комбинации, тъй като стандартната клавиатура с 94 знака предлага много по-голям брой опции, а именно:
4,8 * 10 23 = (94 8 + 94 9 + 94 10 + 94 11 + 94 12 )
възможни комбинации от пароли.
резултати
Тестовете за кракване на пароли показват, че дори генерираната база данни ви позволява да разбиете парола въз основа на графичен модел в повече от 20% от случаите за кратък период от време. Например, "Джон Изкормвача" не успя да форсира нито една парола за повече от 18 часа и използвайки генериран речник на шаблони, Джони разбра 11 пароли (18%) за по-малко от една секунда.
Препратки, използвани в статията: [1] J. Yan, A. Blackwell, R. Anderson и A. Grant. Запомняне и сигурност на паролата: емпирични резултати. IEEE Security & Поверителност 2, 25-31 (2004)
Линкът към самата статия е тук.
Hardcore conf в C++. Каним само професионалисти.