SecuredKit

Опубліковано: · Оновлено: · автор:

Парольна фраза чи пароль: що надійніше у 2026 році?

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

Ентропія парольної фрази й пароля: 6 випадкових слів (77,5 біта) приблизно дорівнюють 12 випадковим символам (78,8 біта)

Парольна фраза і пароль однаково надійні, коли мають однакову ентропію, а ентропію дає лише те, що обрано випадково. Шість слів, випадково вибраних зі списку 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 слова EFF51,7 біта3,1 години10 100 років
10 випадкових символів65,7 біта5,8 року165 млн років
5 слів EFF64,6 біта2,7 року78 млн років
12 випадкових символів78,8 біта52 200 років1,5 трлн років
6 слів EFF77,5 біта21 300 років609 млрд років
16 випадкових символів105,1 біта4,3 трлн роківнезрівнянно довше
8 слів EFF103,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 випадковим символам
659,8 біта34 дні9 випадковим символам
879,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 слів.

Чи вразливі парольні фрази до атаки за словником?

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

Спробуйте безкоштовний генератор паролів

Генеруйте надійні, безпечні паролі миттєво. 100% приватно, на стороні клієнта.

Відкрити генератор паролів