Пароль та Ентропія: Наука, що стоїть за вашою безпекою

Забудьте про застарілі правила створення паролів. Відкрийте для себе теорію ентропії Шеннона, квантову загрозу Гровера та справжні поради OPSEC для захисту ваших доступів.

|

Час читання: 8 хвилин(и)

Пароль та Ентропія: Наука, що стоїть за вашою безпекою

« Ваш пароль повинен містити 8 символів, велику літеру, малу літеру, цифру та спеціальний символ. »

Ми всі знаємо це правило. І тим не менш, у кібербезпеці це називається “театром безпеки”. Пароль на кшталт P@ssw0rd1! дотримується всіх цих правил. Але це поширене слово з передбачуваними замінами, і саме такі паролі програми для злому пробують першими.

Справжня безпека ґрунтується не на довільних візуальних правилах, а на невблаганній математичній реальності: ентропії.

Ентропія за Клодом Шенноном

Щоб зрозуміти силу пароля, потрібно звернутися до Клода Шеннона, батька теорії інформації. Ентропія вимірює ступінь невизначеності або непередбачуваності інформації.

Застосована до паролів, ентропія обчислюється в бітах. Чим більша кількість бітів, тим більш непередбачуваним є пароль для комп’ютера. Спрощена формула ентропії (E) випадково згенерованого пароля:

E = L × log2(R)

  • L — це довжина пароля.
  • R — це розмір пулу символів (26 для малих літер, 62 з великими літерами та цифрами, 94 з усіма друкованими символами). Чотири набори символів нашого генератора дають 91, бо в його наборі символів 29 знаків.

Збільшення розміру пулу (додавання символів) збільшує ентропію, але збільшення довжини (додавання символів) збільшує її набагато кардинальніше. Однак довжина перемагає складність лише за однієї умови: пароль має бути згенерований абсолютно випадково.

Брутфорс проти Словникової атаки

Якщо ви використовуєте слова або передбачувані структури, правило простої довжини руйнується.

Хакерські програми не перебирають усі комбінації літер одну за одною (це називається Брутфорс або Brute Force). Вони використовують величезні списки реальних паролів з минулих витоків даних, а також поширені слова й фрази. Це Словникова атака (Dictionary Attack).

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

У таблиці нижче діє одне правило: 100 мільярдів спроб на секунду, швидкість, яку сторінка нашого генератора припускає для офлайн-атаки на швидкий хеш. Час наведено в середньому (половина всіх варіантів) і округлено в менший бік за тією самою формулою, що й на цій сторінці. Найшвидший шлях для кожного пароля виділено жирним:

ПарольЕнтропія, якби кожен символ був випадковимБрутфорс (у середньому)Словникова атака (наша оцінка)
password12356 біт (11 символів, малі літери та цифри)7 днівМенше секунди
S3cr3t!9958 біт (9 символів, усі чотири набори)24 дніМенше секунди
correct horse battery staple133 біти (28 символів, малі літери та пробіл)Більше, ніж 1 трильйон років1 хвилина
gL7!pQ9z#vX278 біт (12 символів, усі чотири набори)51 тисяча роківКороткого шляху немає

Стовпець словника — це оцінка. Вона припускає, що здогадки зловмисника повторюють структуру кожного пароля і що кожне базове слово входить до 1 000 найпоширеніших:

  • password123: одне поширене слово і три цифри. Це 1 000 × 1 000, близько мільйона здогадок.
  • S3cr3t!99: одне поширене слово, з великою літерою чи без, кожна “e” замінена на “3” чи ні, потім будь-який суфікс із трьох символів. Це близько 7 мільярдів здогадок.
  • correct horse battery staple: чотири поширені слова. Комікс xkcd, який прославив цю фразу, нараховує 44 біти для чотирьох слів зі списку з 2 048 слів. За тієї самої швидкості це в середньому 88 секунд, з округленням у менший бік 1 хвилина.
  • gL7!pQ9z#vX2: ні слова, ні шаблону, тому найшвидший шлях — брутфорс.

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

Ілюзія Leetspeak та правила мутації

Візьмемо приклад S3cr3t!99. Візуально він здається складним і надійним. Проте це просто словникове слово “secret”, де букви ’e’ були замінені на ‘3’, до якого додано дуже поширений суфікс (!99). Це називається leetspeak.

Проти атаки за словником цей пароль протримається менше секунди, а не 24 дні, як можна було б подумати з його довжини. Сучасні програми для злому (такі як Hashcat) не задовольняються тестуванням статичних списків слів; вони автоматично застосовують правила мутації. Вони візьмуть кожне слово зі свого словника, протестують усі можливі комбінації leetspeak, змінять регістр і додадуть роки або символи. Leetspeak дає помилкове відчуття безпеки.

Трюк зі зміщенням клавіатури (Keyboard Shift)

Щоб ускладнити фразу, яка легко запам’ятовується, дехто використовує трюк зі зміщенням розкладки клавіатури. Наприклад, ви запам’ятовуєте фразу на кшталт my-cat. Але в момент набору ви кладете пальці на фізичну клавіатуру QWERTY, тоді як ваша операційна система налаштована на AZERTY (французьку).

  • Задумане слово: my-cat
  • Набраний результат: ,y)cqt (Клавіша ’m’ стає ‘,’; ‘-’ стає ‘)’; ‘a’ стає ‘q’).

Чи хороша це ідея в OPSEC? Ні, цього методу недостатньо, якщо він використовується окремо. Як і leetspeak, зміна розкладки — це фіксована заміна: зловмисник, який її підозрює, просто застосовує ту саму відповідність до кожної здогадки. В OPSEC це безпека через неясність (security by obscurity): це затримає хакера-аматора, але не зупинить цілеспрямовану та добре оснащену атаку.

У поєднанні з паролем, який уже надійний (наприклад, з довгою випадковою парольною фразою), цей прийом додає небагато. Навіть якщо зловмисник перебере тисячу пар розкладок, це додасть менше 10 біт, оскільки log2(1 000) ≈ 9,97. Стійкість, як і раніше, забезпечує парольна фраза в основі.

Створення майстер-пароля (~250 біт)

Якщо списки слів, leetspeak і трюки з набором мають свої межі, як створити майстер-пароль, що прослужить довго? Наш генератор уже оцінює 80 біт як “Надійний”, а 100 біт як “Дуже надійний”. Для майстер-пароля, розрахованого на десятиліття, ця стаття цілиться значно вище: приблизно в 250 біт ентропії. Квантовий розділ нижче пояснює чому, і чого цей запас не дає.

Залежно від ваших потреб є два способи досягти цього:

1. Випадкові символи (для менеджера паролів)

Рядок символів, згенерований повністю випадково, без шаблону, який могла б використати машина: 8}8,_$-p)M&n,XvUCT0o+.5hDE6P^w6b@U-evS0 39 символів, випадково вибраних із 91 символу нашого генератора; генератор показує для них “≈ Кількість бітів: 253”. Рядок вибрано для цієї статті, тож тепер він публічний. Ніколи його не використовуйте.

2. Випадкова парольна фраза (для пароля, який ви запам’ятовуєте)

Випадкові слова запам’ятати легше, ніж випадкові символи. Кожне слово зі списку EFF на 7 776 слів додає близько 12,9 біта, тож ентропію визначає кількість слів. 12 слів дають “≈ Кількість бітів: 155”, значно вище за поріг “Дуже надійний” нашого генератора. Звичайні слова перевищують 250 біт лише за 20 слів.

Наш генератор зупиняється на 12 словах. Щоб перевищити 250 біт меншою кількістю слів, позначте “Випадкова цифра після кожного слова” і виберіть роздільник “Цифра + Символ”. Тоді 11 слів дають “≈ Кількість бітів: 260”: depletion78$sporting14~overlap11>macaw86>paced95,paramedic41}blot41$flagstone07;uncanny92/broadways77#say2 Вибрано випадково для цієї статті, саме з цими налаштуваннями. Опублікований пароль — це спалений пароль: ніколи не використовуйте ні цей, ні будь-який інший приклад, який ви прочитали. Враховується лише те, що вибрано випадково. Велика літера в кожному слові нічого не додає, а слова, які ви обираєте самі, набагато слабші за випадкові.

Квантова загроза: Алгоритм Гровера

Навіщо прагнути до 250 бітів, коли 128 біт вже сьогодні блокують суперкомп’ютери? Відповідь криється в перспективі появи великих квантових комп’ютерів.

У криптографії алгоритм Гровера дозволяє квантовому комп’ютеру виконувати пошук у несортованій базі даних набагато швидше, ніж класичному комп’ютеру. Конкретно, Гровер ефективно знижує рівень безпеки симетричного ключа або пароля вдвічі.

Проти квантового комп’ютера, що запускає алгоритм Гровера, пароль з ентропією 128 біт теоретично забезпечив би опір, еквівалентний лише 64 бітам. Це значно тонший запас.

Подвоєння ентропії зберігає запас: близько 256 біт усе ще залишать близько 128 біт проти алгоритму Гровера. Звідси й ціль у 250 біт у цій статті. Це запобіжний захід, який обирає ця стаття, а не число, взяте з якогось стандарту.

Цей запас має межі. Прискорення Гровера квадратичне, а не безмежне. Кожен його крок однаково має обчислювати хеш пароля сайту, причому на квантовому комп’ютері, достатньо великому, щоб його виконати. Для порівняння: за 100 мільярдів спроб на секунду, які припускає сторінка нашого генератора, середній перебір 100 біт уже триває щонайменше 200 мільярдів років.

Ця логіка нагадує Harvest Now, Decrypt Later (HNDL): викрадену базу хешів паролів можна зберегти сьогодні й атакувати пізніше, потужнішими машинами. Більший запас підвищує планку проти цього. Це не постійна гарантія.

Arpokrat Password Generator: Створіть власний

Не залишайте безпеку ваших доступів на волю випадку. Наш безкоштовний генератор створює випадкові паролі та парольні фрази. Для кожного він показує ентропію в бітах і середній час, який зайняв би перебір.

Він лише генерує: пароль, яким ви вже користуєтеся, він не оцінює. Для описаної вище цілі у 250 біт оберіть пароль із 39 символів з усіма чотирма наборами символів. Генератор покаже для нього “≈ Кількість бітів: 253”.

👉 Arpokrat Password Generator

Він працює у вашому браузері. Те, що він генерує, ніколи не надсилається і не зберігається.

Остання слабка ланка: Повторне використання та управління доступом

Математична ентропія не захищає від людської помилки. 250-бітний пароль втрачає свою цінність, щойно він потрапляє в мережу, якщо він повторно використовується на декількох сайтах (атака, що називається Credential Stuffing), або якщо він не захищений другим фактором автентифікації (2FA).

Золоте правило цифрової гігієни — вам потрібно запам’ятати лише один єдиний пароль: ваш 250-бітний майстер-пароль (випадкова парольна фраза, як описано вище). Усі ваші інші доступи (банки, соціальні мережі, сервери) повинні використовувати унікальні випадкові паролі, згенеровані спеціально для них.

Щоб зберігати всі ці паролі, які неможливо запам’ятати, використовуйте менеджер паролів. Оберіть такий, що шифрує ваше сховище на вашому пристрої перед синхронізацією (це часто називають Zero-Knowledge), бажано такий, що має відкритий код і проходить незалежний аудит.