Візуалізація шаблонів паролів

паролів
Вчені з академії ВПС США проаналізували можливість підбору пароля за спеціальним словником, створеним за допомогою графічних клавіатурних«патернів», що використовуються користувачами для створення надійного, але легко запам'ятовується пароля.

Типовим прикладом цих правил може бути наступний список:

  1. Довжина пароля має бути не менше 12 символів
  2. Має містити 2 спеціальні символи
  3. Має містити 2 цифри
  4. Повинен містити 2 символи у верхньому регістрі
  5. Пароль не повинен містити слова зі словника відомих паролів

Цей набір правил є спільним для всіх користувачів, щоб ніхто не створював надто простих паролів. З іншого боку, дуже важко вигадати пароль, який одночасно відповідає цим правилам і який реально запам'ятати.

Внаслідок посилення правил створення парольних фраз багато користувачів вдаються до альтернативних методів створення пароля, що запам'ятовується, на основі графічних клавіатурних патернів (прим. пер.: графічним клавіатурним патерном в основному є «сусідство» символів на клавіатурі по вертикалі, горизонталі та/або 4>). Приклад такого типу паролів є1qaz!QAZ2wsx@WSX. Хоча на перший погляд він виглядає досить випадковим, містить 16 символів і здається досить надійним, аналіз послідовності натискання клавіш видає досить простий патерн.

шаблонів

Зрозуміло, що користувач вибрав пароль, що легко запам'ятовується, але очевидно, що патерн починається з цифри «1», продовжується вниз до літери «z», потім повторюється з натиснутимShift'ом, а потім повторюється та ж техніка натискань для колонки від "2" до "x". У цій статті розповідається про метод візуалізації та розвиток евристичного аналізу,який дозволяє підбирати, здавалося б, складні паролі.

Поширені атаки на паролі

Наслідком цих досягнень у зломі паролів є те, що користувачі, які цікавляться своєю безпекою, мотивовані у створенні складніших паролів. У спробі створити легко запам'ятовується, але складний пароль користувачі вдаються до використання паролів на основі клавіатурних патернів.

Дослідження зосереджено на можливості розпізнавати клавіатурні графічні патерни. Використовувався такий підхід:

  • збір паролів, у тому числі тих, які відомо, що створені за допомогою клавіатурних патернів;
  • розробка техніки візуалізації для подальшого аналізу паролів з метою виділення загальних частин патернів;
  • розробка евристики на основі визнаних моделей;
  • створення словника паролів з урахуванням створеної евристики;
  • застосування інструменту злому на паролі.

Збір паролів

Метою збору був великий набір можливих комбінацій паролів. Ми не могли зробити збір, спираючись на один із словників, оскільки нам потрібні були паролі, що відповідають досить суворим правилам. Для вирішення цього завдання було створено онлайн посібник зі створення паролів. За допомогою студентів було зібрано велику базу паролів, яка й використовувалася для подальшого аналізу.

Одна із статей підручника пояснювала концепцію паролів, заснованих на клавіатурних патернах, і попросили їх собі уявити. Досягнення мети використовувалася система візуалізації, що у реальному часі.

патернів

Використовуючи створений інструмент, ми зібрали більше 250 унікальних паролів, заснованих на патернах за допомогою 161 користувачів. Додатково було згенеровано понад 500 «випадкових» паролів.

Візуалізація патернів

Наступним кроком є ​​аналіз набору паролів, заснованих на клавіатурних графічних патернах, для пошуку спільних характеристик. Простого зображення, що містить лінії, що з'єднують послідовно натиснені клавіші на графічній клавіатурі, було недостатньо. У такому разі лінії накладалися б один на одного, якщо клавіші на клавіатурі були в тому ж ряду, або не малювалися б лінії взагалі, якби на одну клавішу натискали кілька разів поспіль. Таким чином, послідовність введення символів вводила б в оману.

Необхідно було створити спосіб візуалізувати такі ситуації як: натискання клавішіShift, багаторазове натискання однієї клавіші, багаторазове введення набору символів. Перший підхід полягав у відтворенні пароля послідовно, символ за символом. Цей підхід вирішує проблему розпізнавання патернів, але не вирішує проблему візуалізації та сканування великої кількості паролів.

Для покращення розпізнавання патернів при порівнянні кількох паролів використовуються такі правила:

  1. Послідовно натиснені кнопки з'єднуються дугами.
  2. При натиснутій клавішіShiftзбільшувати товщину дуги.
  3. Багаторазові натискання на одну клавішу зображуються дугами, кінцями яких є один вузол, таким чином, щоб утворювалася «квітка»
  4. Багаторазове введення послідовності символів відображається шляхом усунення дуг.
  5. Багаторазове послідовне натискання однієї клавіші зображуються у вигляді пелюсток зі зміщенням.
  6. Дуги завжди малюються за годинниковою стрілкою, щоб дотримуватися порядку натискання клавіш.

Малюнок, що демонструє всі ці правила, показаний нижче.

пароля

З жирними лініями все зрозуміло - була натиснута клавіша Shift . Крім того, клавіші«d»та«t»були натиснуті кілька разів. Вісім натискань клавіші «t» утворюють дугу до клавіші, а також чотирилисник, і вкладений у нього трилисник. Так само можна проаналізувати багаторазове (чотирикратне) натискання клавіші «d». Комбінація символів «qwqwqw», що повторюється, відображення за допомогою зміщення дуг. Завдяки тому, що дуги завжди малюються за годинниковою стрілкою, можна визначити послідовність натискання клавіш без вказівних стрілок на дугах.

На наступному малюнку показані приклади візуалізації клавіатурних патернів, що містяться в аналізованій базі. Якщо пароль створено не так на основі графічних клавіатурних патернів, як і 4 прикладі малюнку, це видно відразу.

візуалізація
візуалізація
пароля
шаблонів

Основним завданням було визначення основних структурних елементів патернів з бази для швидкого розпізнавання паролів. Далі показаний приклад пошуку таких унікальних елементів, з яких можна скласти патерн на основі таблиці 4x4, згенерованої спеціальним інструментом.

пароля

Прототип інструменту злому паролів використовує патерни

патернів

З використанням отриманих елементарних патернів були згенеровані різні комбінації паролів довжиною від 8 до 12 символів. Діапазон довжин паролів був обраний довільно, проте при великому бажанні його можна збільшити, що призведе до збільшення обсягу словника.

Генератор паролів створював паролі, використовуючи наступну структуру (відсортовані за пріоритетом):

  1. Відповідність правилу складності пароля.
  2. Частини пароля направлені в один бік.
  3. Частини пароля мають однакову довжину.
  4. Усі частини пароля введені зShift'омчи ні.
  5. Частини пароля спрямовані зліва направо або зверху вниз.
  6. Частини пароля мають лишеодин розрив на клавіатурі.

Приклади згенерованих паролів за цими правилами показані нижче.

пароля

Результуючий словник містить близько 500 000 варіантів. Однак у ньому містяться далеко не всі комбінації, оскільки стандартна 94 символьна клавіатура передбачає набагато більшу кількість варіантів, а саме:

4.8 * 10 23 = (94 8 + 94 9 + 94 10 + 94 11 + 94 12)

можливі комбінації паролів.

Результати

Тести злому паролів показали, що навіть згенерована база дозволяє підібрати пароль, що базується на графічному патерні, більш ніж у 20% випадках за короткий проміжок часу. Наприклад, John the Ripper за методом грубої сили не зміг підібрати жодного пароля більш ніж за 18 годин, а використовуючи створений словник патернів, Джоні підібрав 11 паролів (18%) менш ніж за одну секунду.

Посилання, що використовуються у статті: [1] J. Yan, A. Blackwell, R. Anderson, and A. Grant. Password memorability and security: empirical results. IEEE Security & Privacy 2, 25-31 (2004)

Посилання на статтю тут.

Хардкорна конфа за С++. Ми запрошуємо лише профі.