15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати
21.10.2024

Парольна фраза проти пароля: технічне порівняння безпеки

A пароль — це короткий рядок автентифікації, зазвичай 8–16 символів, що поєднує літери, цифри та символи. A парольна фраза — це довша послідовність із кількох слів — зазвичай 20–40 символів — яка отримує свою надійність завдяки довжині, а не складності символів. З точки зору безпеки, добре побудована парольна фраза є криптографічно кращою за типовий пароль, оскільки ентропія зростає експоненційно зі збільшенням довжини, а не завдяки заміні символів.

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

Що таке пароль?

A пароль — це рядок символів фіксованої довжини, що використовується для автентифікації користувача в системі. Традиційна модель — яку застосовує більшість застарілих систем — вимагає мінімум 8 символів, щонайменше одну велику літеру, одну цифру та один спеціальний символ.

Типові характеристики:

  • Довжина: 8–16 символів
  • Набір символів: великі літери, малі літери, цифри, символи (!@#$%^&*)
  • Поширений приклад: P@ssw0rd123!

Проблема цієї моделі є структурною. Вимоги до складності підштовхують користувачів до передбачуваних шаблонів заміни: a стає @, o стає 0, s стає $. Зловмисники знають про це вже понад десятиліття. Сучасні інструменти злому на основі правил, як-от Hashcat, автоматично застосовують ці шаблони заміни, а отже P@ssw0rd! не є суттєво складнішим для злому, ніж Password при роботі з підготовленим словником.

Ентропія типового пароля

Ентропія вимірюється в бітах: H = L × log2(N), де L — довжина, а N — розмір набору символів.

Випадковий 10-символьний пароль із використанням 95-символьного набору друкованих символів ASCII дає приблизно 65,7 біт ентропії. Це звучить надійно — доки не врахувати, що користувачі не обирають паролі випадково. Реальні паролі концентруються навколо шаблонів, які різко знижують ефективну ентропію, нерідко до менш ніж 30 біт.

Що таке парольна фраза?

A парольна фраза — це облікові дані автентифікації, що складаються з кількох словникових слів, часто розділених пробілами, дефісами або іншими роздільниками. Канонічний приклад, популяризований дослідником безпеки Рендаллом Манро в коміксі XKCD #936, — correct horse battery staple.

Типові характеристики:

  • Довжина: 20–40+ символів
  • Структура: 4–6 непов’язаних загальновживаних слів
  • Приклад: CorrectHorseBatteryStaple

Безпека парольної фрази ґрунтується на комбінаторному вибуху при виборі слів. Якщо обрати 4 слова випадково зі списку 7 776 слів (EFF Large Wordlist, розроблений для Diceware), кількість можливих комбінацій становить 7 776^4 = приблизно 3,6 трильйона. Це дає приблизно 51,7 біт ентропії — а додавання п’ятого слова підвищує показник понад 64 біти, що відповідає або перевищує складний випадковий пароль, залишаючись при цьому цілком запам’ятовуваним для людини.

Чому довжина важливіша за складність

Основна математична реальність така: кожен додатковий символ множить простір пошуку, але множник залежить від набору символів. Додавання ще одного загальновживаного слова до парольної фрази (множення на ~7 776) має набагато більший вплив, ніж додавання ще одного символу до пароля (множення на ~32 для поширених наборів символів). Довжина є визначальною змінною в стійкості до атак методом перебору.

Парольна фраза проти пароля: технічне порівняння

КритерійПарольПарольна фраза
Типова довжина8–16 символів20–40+ символів
Ентропія (практична)20–40 біт (обраний користувачем)50–80+ біт (випадкові слова)
Стійкість до переборуНизька або помірнаВисока
Стійкість до словникових атакНизька (правила заміни)Помірна або висока
Запам’ятовуваністьПогана (випадкові рядки)Висока (значущі слова)
Швидкість введенняШвидкоПовільніше, покращується з практикою
Сумісність із системамиУніверсальнаБільшість сучасних систем; деякі застарілі обмеження
Ризик повторного використанняВисокий (важко запам’ятати багато)Нижчий (легше зробити унікальними)
Підходить для SSH-ключівТакНастійно рекомендується
Підходить для шифрування дискаТакНастійно рекомендується

Вектори атак: як зламують паролі та парольні фрази

Розуміння моделі загроз є необхідним перед вибором формату облікових даних. Три основні категорії атак поводяться дуже по-різному щодо паролів і парольних фраз.

Атаки методом перебору

Атака методом перебору перебирає всі можливі комбінації символів. Проти випадкового 8-символьного пароля сучасні GPU-кластери, що використовують Hashcat, можуть вичерпати весь простір MD5-хешів менш ніж за годину. Проти 4-слівної парольної фрази Diceware, захешованої bcrypt (коефіцієнт складності 12), те саме обладнання потребувало б мільйонів років — не лише через алгоритм хешування, а тому що простір пошуку на порядки більший.

Практичний висновок: довжина пароля є найважливішим фактором при захисті від офлайн-атак методом перебору на витоки баз даних облікових даних.

Словникові атаки та атаки на основі правил

Саме тут наївні парольні фрази можуть зазнати невдачі. Якщо користувач складає парольну фразу з відомої цитати (ToBeOrNotToBeThatIsTheQuestion), зловмисники, що використовують словники фраз або моделі ланцюгів Маркова, знайдуть її швидко. Захист полягає у випадковості вибору слів — зокрема, у використанні методу Diceware, де слова обираються за допомогою фізичних кубиків або криптографічно захищеного генератора випадкових чисел, а не за особистими асоціаціями.

Парольна фраза на кшталт purple elephant jumps moon, яку користувач вигадав, бо вона «звучить випадково», є набагато слабшою, ніж wrist panel clam orbit, згенерована інструментом Diceware, оскільки людська інтуїція щодо випадковості систематично упереджена.

Підстановка облікових даних і фішинг

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

Контексти реального розгортання

Парольні фрази для SSH-ключів

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

ssh-keygen -t ed25519 -C "your_email@example.com"

Коли з’явиться запит, введіть надійну парольну фразу Diceware. Використовуйте ssh-agent для кешування, щоб не вводити її при кожному підключенні:

eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519

Для середовищ VPS Хостингу, де SSH є основним методом доступу, застосування ключів із захистом парольною фразою та повне вимкнення автентифікації за паролем (PasswordAuthentication no у /etc/ssh/sshd_config) є базовим кроком із посилення безпеки.

Шифрування диска (LUKS)

LUKS (Linux Unified Key Setup) використовує парольну фразу для отримання головного ключа тому через PBKDF2 або Argon2. Кількість ітерацій калібрується так, щоб займати приблизно одну секунду на цільовому обладнанні, а отже ентропія парольної фрази безпосередньо визначає стійкість до офлайн-атак. 4-слівна парольна фраза Diceware забезпечує достатній захист; 6-слівна парольна фраза є практично нерозкривною за допомогою сучасних технологій.

Автентифікація у веб-застосунках

Більшість веб-застосунків хешують паролі за допомогою bcrypt, scrypt або Argon2. Коефіцієнт складності цих алгоритмів уповільнює офлайн-атаки, але ентропія парольної фрази все одно має значення. Парольна фраза, захешована bcrypt із 60 бітами ентропії, є набагато стійкішою, ніж 8-символьний пароль, захешований bcrypt із 30 ефективними бітами, навіть при однаковому коефіцієнті складності.

Облікові дані сервера та інфраструктури

На Виділених серверах, що керують критичною інфраструктурою, облікові дані root та адміністративних облікових записів завжди мають бути парольними фразами — в ідеалі 5+ слів зі списку Diceware. Поєднуйте це з політиками блокування, що застосовуються через PAM, і централізованим журналюванням для виявлення спроб перебору на рівні автентифікації.

Поширені помилки при використанні парольних фраз

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

Передбачувані комбінації слів. SunnyDayHappyLife використовує чотири слова, але слідує семантично зв’язному, оптимістичному шаблону, який навчена мовна модель може генерувати та перевіряти ефективно. Потрібна справжня випадковість — а не «звучить випадково для мене».

Ігнорування обмежень системи на кількість символів. Деякі застарілі корпоративні застосунки, банківські портали та вбудовані системи обмежують паролі до 16 або навіть 12 символів, мовчки обрізаючи довші введення. Завжди перевіряйте, що система зберігає вашу повну парольну фразу. Якщо вона обрізає без попередження, ваша 30-символьна парольна фраза стає 12-символьним паролем.

Пробіли та спеціальні символи в парольних фразах. Деякі системи відхиляють пробіли в паролях. Використання послідовного роздільника на кшталт - або _ між словами (correct-horse-battery-staple) зберігає читабельність, уникаючи проблем із сумісністю.

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

Створення надійної парольної фрази: технічний метод

Золотим стандартом генерації парольних фраз є метод EFF Diceware:

  1. Киньте п’ять фізичних кубиків (або використайте еквівалент CSPRNG).
  2. Прочитайте п’ятизначний результат і знайдіть його в EFF Large Wordlist.
  3. Повторіть 5–6 разів, щоб отримати 5–6 слів.
  4. За бажанням вставте цифру або символ між словами для систем, що цього вимагають.
# Generate a Diceware-style passphrase using /dev/urandom on Linux
python3 -c "
import secrets
wordlist = open('/usr/share/dict/words').read().splitlines()
words = [secrets.choice(wordlist) for _ in range(5)]
print(' '.join(words))
"

Для використання в продакшені надавайте перевагу спеціалізованим інструментам, як-от diceware (пакет Python) або passphraseme, які використовують офіційні словники EFF і криптографічно захищене джерело випадковості.

Менеджери паролів: подолання розриву у зручності використання

Менеджер паролів повністю усуває обмеження запам’ятовуваності, дозволяючи використовувати випадково згенеровані унікальні облікові дані довжиною 20+ символів для кожного облікового запису. Головний пароль, що захищає сховище менеджера, має бути надійною парольною фразою Diceware — це єдині облікові дані, які потрібно запам’ятати, і вони захищають усе інше.

Рекомендовані варіанти з надійною репутацією в галузі безпеки:

  • Bitwarden — відкритий вихідний код, перевірений аудитом, можливість самостійного розгортання
  • KeePassXC — лише локально, без залежності від хмари, ідеально підходить для ізольованих середовищ
  • 1Password — потужні корпоративні функції, архітектура Secret Key

При розгортанні VPS з cPanel або інших керованих панелей хостингу зберігайте головні облікові дані панелі у сховищі менеджера паролів, захищеному парольною фразою Diceware, і вмикайте MFA на самій панелі.

Роль багатофакторної автентифікації

Ні паролі, ні парольні фрази не є достатніми самі по собі для облікових записів із високою цінністю. MFA (багатофакторна автентифікація) додає другий рівень перевірки — код TOTP, апаратний ключ безпеки (FIDO2/WebAuthn) або push-сповіщення — що робить викрадені облікові дані марними без фізичного доступу до другого фактора.

Рекомендований стек для критичних облікових записів:

  • Фактор автентифікації 1: Надійна парольна фраза Diceware (те, що ви знаєте)
  • Фактор автентифікації 2: Апаратний ключ FIDO2, як-от YubiKey або Google Titan (те, що у вас є)
  • Резервний варіант: Надійно збережені коди відновлення у зашифрованому сховищі

Для облікових записів Поштового хостингу зокрема MFA є обов’язковим. Електронна пошта є вектором відновлення практично для кожного іншого облікового запису — її компрометація призводить до повного захоплення всіх пов’язаних сервісів.

Нормативні та відповідні вимоги

NIST SP 800-63B (2017, оновлено у 2024 році) явно відійшов від обов’язкових правил складності на користь політик на основі довжини. Ключові рекомендації NIST тепер включають:

  • Дозволяти паролі довжиною щонайменше 64 символи (що уможливлює парольні фрази)
  • Не вимагати регулярної зміни пароля без доказів компрометації
  • Перевіряти нові паролі за списками відомих витоків облікових даних (наприклад, HaveIBeenPwned API)
  • Не встановлювати правила складності (обов’язкові символи, цифри), які знижують ентропію, заохочуючи передбачувані шаблони

Організації, що досі застосовують політики minimum 8 characters with uppercase + symbol + number, діють всупереч чинним рекомендаціям NIST. Перехід до політик, дружніх до парольних фраз, із мінімумом 15–20 символів і перевіркою за списками витоків, є одночасно більш безпечним і зручнішим.

Матриця рішень: коли що використовувати

СценарійРекомендований підхід
Захист приватного SSH-ключа5-слівна парольна фраза Diceware
Шифрування диска LUKS5–6-слівна парольна фраза Diceware
Головні облікові дані менеджера паролів6-слівна парольна фраза Diceware (запам’ятована)
Облікові записи веб-застосунків (через менеджер)Випадковий рядок 20+ символів із менеджера паролів
Застаріла система з максимумом 12 символівВипадковий рядок максимальної довжини з менеджера паролів
Обліковий запис root на серверіПарольна фраза + MFA + перевага SSH на основі ключів
Обліковий запис реєстратора доменівПарольна фраза + MFA (керує DNS, ціль із високою цінністю)

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

Практичний контрольний список ключових висновків

  • Генеруйте парольні фрази за методом Diceware з CSPRNG, а не на основі особистих асоціацій або відомих фраз.
  • Використовуйте мінімум 5 слів (приблизно 64 біти ентропії) для будь-яких облікових даних, що захищають конфіденційні дані.
  • Перевіряйте, що цільова система приймає та повністю зберігає вашу парольну фразу, перш ніж покладатися на неї.
  • Використовуйте менеджер паролів (Bitwarden, KeePassXC) для всіх облікових записів, крім головних облікових даних сховища.
  • Захищайте приватні SSH-ключі парольною фразою та використовуйте ssh-agent для кешування сесій.
  • Застосовуйте PasswordAuthentication no у /etc/ssh/sshd_config на всіх продакшен-серверах.
  • Вмикайте MFA для кожного облікового запису, що його підтримує, надаючи пріоритет електронній пошті, реєстраторам, панелям керування хостингом і фінансовим обліковим записам.
  • Перевіряйте свої політики облікових даних відповідно до NIST SP 800-63B: скасуйте обов’язкову ротацію та правила складності, додайте перевірку за списками витоків.
  • Ніколи не використовуйте парольну фразу повторно в різних сервісах, незалежно від того, наскільки запам’ятовуваною або унікальною вона здається.

Часті запитання

Чи завжди парольна фраза безпечніша за пароль?

Випадково згенерована парольна фраза з 4+ слів Diceware майже завжди безпечніша за пароль, обраний користувачем. Однак справді випадковий 20-символьний пароль, згенерований менеджером паролів, може відповідати або перевищувати ентропію парольної фрази. Практична перевага парольних фраз — запам’ятовуваність при високій ентропії, а не абсолютна перевага в кожному випадку.

Чи можуть парольні фрази бути зламані ШІ або мовними моделями?

Сучасні великі мовні моделі можуть генерувати семантично зв’язні послідовності слів, а отже парольні фрази на основі значущих речень або поширених фраз є більш вразливими, ніж п’ять років тому. Захист полягає в суворій випадковості вибору слів — парольні фрази, згенеровані Diceware без семантичного зв’язку між словами, не є суттєво більш вразливими до атак за допомогою LLM, ніж раніше.

Яка мінімальна довжина парольної фрази для захисту SSH-ключа?

Для шифрування приватного SSH-ключа NIST і більшість фреймворків безпеки рекомендують щонайменше 128 біт ентропії для довгострокових секретів. 5-слівна парольна фраза Diceware забезпечує приблизно 64 біти, що вважається надійним для інтерактивного використання. Для середовищ із підвищеними вимогами до безпеки використовуйте 6 слів (приблизно 77 біт) або поєднуйте парольну фразу з апаратним ключем безпеки.

Чи роблять менеджери паролів парольні фрази застарілими?

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

Як поводитися з системами, що відхиляють довгі парольні фрази або пробіли?

Використовуйте послідовний роздільник слів, який приймає більшість систем, наприклад - або . (наприклад, correct-horse-battery-staple). Якщо система встановлює жорстке обмеження символів нижче 20, використовуйте максимально дозволену довжину з випадковим рядком, згенерованим менеджером паролів, і позначте систему як таку, що не відповідає NIST SP 800-63B, для подальшого виправлення.

15%

Збережіть 15% на всі хостинг-послуги

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код:

Skills
Почати