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

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

Поговоримо про методи злому

Щоб розуміти всю глибину проблеми, кілька рядків присвячую методиці злому. Отже, як зловмисник може дізнатися/відгадати/підібрати ваш пароль?
  1. Метод логічного вгадування. Працює у системах з великою кількістю користувачів. Зловмисник намагається зрозуміти вашу логіку при складанні пароля (логін+2 символи, логін навпаки, найпоширеніші паролі тощо) та застосовує цю логіку до всіх користувачів. Якщо користувачів багато, дуже скоро станеться колізія і пароль буде вгадано;
  2. Перебір за словником. Цей вид атаки застосовується, коли база даних із хешованими паролями злита з сервера. Може поєднуватися із заміною букв (помилки) або з підстановкою цифр/слів на початок або кінець слова як приставка або суфікс. Також використовуються словники, набрані в неправильному розкладанні клавіатури (російські слова в англійській розкладці);
  3. Перебір таблиці хешованих паролів. Передовий спосіб злому паролів, коли хеші вже згенеровані і залишається лише визначити в основі відповідність хешу паролю. Працює дуже швидко навіть на слабких машинахі не залишає жодних шансів власникам коротких паролів.
  4. Інші методи: соціотехніка та соціальний інжиніринг, використання keylogger"ів, сніферів, троянів і т.п.

Надійність пароля

Узагальнюючи інформацію, отриману з різних достовірних джерел, я виокремлю основні ознаки стійкого до злому пароля (під зломом я маю на увазі перебір за базами хешів, коли алгоритм хешування заздалегідь відомий):
  1. Довжина пароля (що більше, тим краще), для запущених випадків рекомендують використовувати 15-ти символовий пароль;
  2. Відсутність словникових слів та частин поширених паролів у складі пароля;
  3. Відсутність шаблонів під час складання пароля (під шаблоном розумію логічний алгоритм генерації пароля, наприклад: «Med777ведев», «12@йцу@21» і навіть «q1w2e3r4t5»);
  4. Стохастичні послідовності символів з різних груп (малі, великі, цифри, розділові знаки та спец-символи);
Однак, усі ми люди з досить обмеженими здібностями до запам'ятовування нескладної інформації, тому паролі, які підходять під вищеописані параметри, хоч і будуть стійкими до злому з одного боку, але, з іншого боку, їх дуже непросто запам'ятати. Тому розглянемо менш параноїдальні варіанти складання та запам'ятовування паролів.

Як народ запам'ятовує свої паролі?

Проаналізувавши способи генерації паролів хабралюдей, я дійшов висновку, що основна методологія запам'ятовування пароля полягає в складанні логічного чи асоціативного ряду. Також використовуються різні спотворення слів. Це можуть бути:
  1. Назви домену упереміж із логіном («gooUSERglcom», «UmailruSer»);
  2. Певна стандартна фраза, яка прикріплюється до домену (passgoogleru, passhabrahabrru);
  3. Поширене слово упереміж із значущими цифрами та іншими знаками («321DR67ag0On», де 32167 – чит, який викликав 5 чорних драконів у Heroes of Might & Magic);
  4. Російські слова в англійській розкладці («k.lj)