Опубліковано: · Оновлено: · автор: kodewright
Парольна фраза чи пароль: що надійніше у 2026 році?
Шість випадкових слів дорівнюють 12 випадковим символам, але лише якщо список слів великий. Розрахунок ентропії, час злому і коли що обирати.

Парольна фраза і пароль однаково надійні, коли мають однакову ентропію, а ентропію дає лише те, що обрано випадково. Шість слів, випадково вибраних зі списку EFF на 7 776 слів, дають 77,5 біта; 12 випадкових друкованих символів дають 78,8. Парольну фразу використовуйте для тих кількох секретів, які доводиться набирати з пам'яті, а випадковий пароль із символів для всього, що підставляє менеджер паролів.
Більшість порівнянь пропускає одну річ: «шість слів» нічого не означають, поки не відомо, наскільки великий список. Про це нижче, бо мій власний генератор добре показує, чому це важливо.
Ентропія парольної фрази і пароля: формула та сама, алфавіт різний
Обидва варіанти рахують однаково:
H = L × log₂(R)
L = number of symbols drawn (characters or words)
R = size of the set each symbol is drawn from
Тут L — кількість вибраних елементів (символів або слів), а R — розмір набору, з якого вибирають кожен елемент. Друкований символ ASCII обирають із 95 варіантів, тож він вартий log₂(95) ≈ 6,57 біта. Слово з великого списку EFF обирають із 7 776 варіантів (6⁵ результатів п'яти кубиків), тож воно варте log₂(7776) ≈ 12,92 біта. Одне слово дає приблизно стільки ж, скільки два випадкові символи.
Ось як вони співвідносяться під час офлайн-атаки на викрадений хеш. Швидкості взято з hashcat 6.2.6 на одній RTX 4090: 164,1 млрд спроб MD5 за секунду і близько 5 750 за секунду для bcrypt із cost 10. Час середній (половина простору ключів).
| Секрет | Ентропія | MD5 без солі | bcrypt, cost 10 |
|---|---|---|---|
| 8 випадкових символів | 52,6 біта | 5,6 години | 18 300 років |
| 4 слова EFF | 51,7 біта | 3,1 години | 10 100 років |
| 10 випадкових символів | 65,7 біта | 5,8 року | 165 млн років |
| 5 слів EFF | 64,6 біта | 2,7 року | 78 млн років |
| 12 випадкових символів | 78,8 біта | 52 200 років | 1,5 трлн років |
| 6 слів EFF | 77,5 біта | 21 300 років | 609 млрд років |
| 16 випадкових символів | 105,1 біта | 4,3 трлн років | незрівнянно довше |
| 8 слів EFF | 103,4 біта | 1,3 трлн років | незрівнянно довше |
Колонку визначають дві речі, на які ви не впливаєте: як сайт зберігає ваш пароль і чи станеться витік. Обирайте довжину з розрахунку на найгіршу колонку, тобто MD5. Якщо нападник орендує вісім GPU, кожне число ділиться на вісім.
Ці цифри стосуються лише секретів, які обрала машина. Пароль чи фразу, придумані людиною, ламають атаками за словником і правилами задовго до того, як справа дійде до повного перебору.
Слово варте стільки, скільки список, з якого його взято
12,92 біта на слово передбачають великий список EFF. Менший список дає менше бітів на слово, а нападник завжди може вважати, що знає список, бо будь-який вебгенератор віддає його разом із JavaScript сторінки.
Мій Генератор паролів якраз такий приклад. Його режим парольної фрази бере слова з вбудованого списку на 995 коротких англійських слів, тож кожне слово варте log₂(995) ≈ 9,96 біта, а не 12,92. Повзунок дозволяє від 3 до 8 слів, за замовчуванням стоїть 4. Як і все на сайті, генератор працює у вашому браузері, і результат нікуди зі сторінки не потрапляє.
| Слів із мого списку на 995 | Ентропія | MD5 без солі, у середньому | Відповідає |
|---|---|---|---|
| 4 (за замовчуванням) | 39,8 біта | близько 3 секунд | 6 випадковим символам |
| 6 | 59,8 біта | 34 дні | 9 випадковим символам |
| 8 | 79,7 біта | 92 800 років | 6 словам EFF, 12 випадковим символам |
| 8 + опція «додати число» | 86,3 біта | 9,3 млн років | 13 випадковим символам |
Тож із цим списком для всього важливого я ставив би 8 слів, а 4 годяться лише для секрету, який додатково захищає обмеження кількості спроб входу. Перемикач «додати число» дописує випадкове число від 0 до 99, а це 6,64 біта. Великі літери на початку кожного слова нічого не додають: нападник перевірить і такий варіант одним додатковим проходом, бо вони вмикаються для всіх слів одразу.
Слова вибирає crypto.getRandomValues(), і це важливіше за розмір списку. Внутрішній стан xorshift128+, на якому працює Math.random() у V8, можна відновити з кількох значень, і тоді кожне наступне «випадкове» слово стає передбачуваним, хоч скільки слів ви візьмете.
Чому індикатори надійності переоцінюють парольні фрази
Більшість індикаторів надійності, зокрема мій, оцінюють пароль за довжиною та класами символів. Вони не знають, що рядок складається зі слів зі словника. Введіть gold-fire-hand-wheel у Перевірку стійкості пароля, і вона побачить 20 символів із малих літер і спецсимволів (набір на 54 символи), що дає близько 115 бітів. Насправді, якщо слова взято з мого генератора, це 39,8 біта.
Для парольної фрази рахуйте слова й множте на кількість бітів на слово для того списку, з якого їх узято. Індикатор, що рахує символи, використовуйте лише для випадкових паролів із символів, де його припущення справді виконується.
Слова, які ви обрали самі, не рахуються
Біти в таблицях дають кубики або CSPRNG (криптографічно стійкий генератор псевдовипадкових чисел), а не самі слова. Щойно ви замінюєте випадкове слово тим, яке вам більше подобається, ця позиція коштує набагато менше за 12,92 біта, бо нападники складають словники саме зі слів, які подобаються людям. summer-beach-vacation-happy схожа на чотири слова ентропії, але ці слова разом трапляються в безлічі реальних речень, і списки фраз, зібрані з текстових корпусів, перевіряють такі поєднання одними з перших.
Комікс xkcd «correct horse battery staple» (№ 936, 2011) показав правильний метод: чотири слова, випадково вибрані зі списку на 2 048 слів, що, за його оцінкою, дає близько 44 бітів. Для онлайн-входу з обмеженням спроб у 2011 році це була розумна планка. Для майстер-пароля, файл сховища якого може витекти, цього мало, а сама фраза давно є в кожному словнику для зламу.
Те саме стосується випадкової частини, вставленої у власну фразу, як я роблю для тих кількох паролів, які набираю вручну. Ентропію додає лише випадкова частина, тож розраховуйте її так, ніби решти немає. Про цей підхід я писав у статті як створити надійний пароль.
Обмеження довжини і набір тексту
Парольні фрази довгі. Вісім слів із мого списку разом із роздільниками дають 39–47 символів. NIST SP 800-63B Rev. 4 каже, що перевіряльники мають приймати щонайменше 64 символи, але чимало старих систем досі обмежують довжину 20 або 32 символами. Якщо сайт не приймає фразу, згенеруйте випадковий пароль із символів на всю дозволену довжину, а не скорочуйте фразу.
Парольна фраза виграє там, де ви набираєте без автозаповнення: майстер-пароль менеджера, запит шифрування диска під час завантаження, клавіатура телефона. Слова набирати швидше й з меншою кількістю помилок, ніж K7#mWqP!v2xL9@nR, а секрет, який болісно набирати, люди згодом тихо спрощують.
Де я використовую що
У мене вбудований менеджер паролів браузера плюс Psono. Майже все в них — випадкові паролі із символів, яких я ніколи не читав. Ті кілька, що я набираю сам, є парольними фразами, і лише англійською.
| Секрет | Що використовувати | Чому |
|---|---|---|
| Майстер-пароль менеджера паролів | 6+ слів EFF або 8 слів із мого генератора | Набираєте з пам'яті, а витікає саме файл сховища |
| Шифрування диска під час завантаження | 6+ слів EFF | Немає автозаповнення, офлайн-атака, якщо диск украдуть |
| Wi-Fi (WPA2-Personal) | 5–6 слів | Диктуєте гостям і набираєте на телевізорах; перехоплений handshake можна зламати офлайн |
| Парольна фраза SSH-ключа | 5+ слів | Вводите в агент раз за сесію; див. як безпечно згенерувати SSH-ключ |
| Кожен акаунт на сайтах | 16–24 випадкові символи | Пароль підставляє менеджер, тож довжина нічого не коштує |
Звідки беруться мінімальні довжини, пояснено в статті ентропія пароля і мінімальна довжина, а повні таблиці для GPU є в статті за скільки зламають пароль.
FAQ
Чи досі хороша парольна фраза correct horse battery staple?
Саме ця фраза ні: її опублікували так часто, що вона є в кожному словнику для зламу. Сам метод працює, але в коміксі були 4 слова зі списку на 2 048 слів, приблизно 44 біти. Беріть 6 слів зі списку на 7 776 слів.
Чи вразливі парольні фрази до атаки за словником?
Розрахунок ентропії вже передбачає атаку за словником: нападник знає ваш точний список слів і має вгадати лише те, які слова випали. Випадково згенерована фраза це витримує. Фраза, яку ви склали самі, ні, бо люди обирають передбачувані слова.