Как работят Brute‑Force атаките
Защо дължината е важна: изчислителни примери и контрамерки.
При Brute‑Force атаки нападателите се опитват да отгатнат парола чрез систематично изпробване на всички възможни комбинации от символи. Основната идея е проста: да се тестват възможно най-много комбинации в секунда – в идеалния случай на GPU или в разпределени системи. Това се нарича още изчерпателно търсене (изчерпателно търсене).
На практика такива атаки за съжаление често са успешни, защото много пароли са твърде кратки се ограничават до малко на брой групи символи (само букви) или се срещат в списъци с думи. Това драстично намалява пространството за търсене и прави отгатването по-лесно. Още по-важно е разграничението между онлайн атаки (срещу форми за вход, където помагат ограничаване на опитите и заключване на акаунта) и офлайн атаки (срещу откраднати хешове на пароли, където хеш функцията и силата на паролата определят времето за атака).
Разбиването на пароли (офлайн) ≠ „дешифриране“
Паролите не се дешифрират, а се съхраняват като хеш стойности и след това се търсят чрез отгатване + хеширане (Brute Force, атаки с речник/маска). Изчислителната скорост на съвременния хардуер е в диапазона от милиарди в секунда (при бързи хеш алгоритми), поради което дългите и хешираните с бавни алгоритми (напр. Argon2, scrypt, PBKDF2, bcrypt) пароли са от решаващо значение.
Историческа и актуална препратка: Проектът RC5 на distributed.net демонстрира суровата мощ на изчерпателното търсене в пространство от ключове: 56 бита са намерени през 1997 г. след 250 дни, а 64 бита – през 2002 г. след 1.757 дни. Понастоящем статусът на проксито за RC5-72 около 2,38 трилиона ключа в секунда (към момента на справката днес). Това е Bruteforce на ключове, а не хеширане на пароли – но показва колко силно се мащабира разпределената изчислителна мощност.
Комбинация и дължина на паролата
Следните примери показват влиянието на дължината и избора на символи. За илюстрация е приета скорост от 2 милиарда опита в секунда (много мощен единичен компютър; реалните стойности варират значително според хардуера и – в офлайн случай – метода за хеширане).
Типични групи символи:
- Цифри (10: 0–9)
- Букви (52: A–Z и a–z)
- Специални символи (≈ 32; зависи от разрешения набор от символи на услугата)
Броят на възможните комбинации се изчислява по формулата:
Важно: Таблицата показва максималното време за търсене. Средно действителното време е около наполовина. Освен това атаките с речници, правила и маски значително намаляват пространството за търсене, докато бавните методи за хеширане на пароли ефективната скорост понижават драстично.
| Passwort besteht aus | Mögliche Kombinationen (Formel) | Benötigte Zeit (bei 2 Mrd./s) |
|---|---|---|
| 5 Zeichen 3 Kleinbuchstaben, 2 Zahlen | (53) × 263 × 10217.576.000 | 0,009 Sekunden |
| 7 Zeichen 1 Großbuchstabe, 6 Kleinbuchstaben | (71) × 261+656.222.671.232 | ≈ 28 Sekunden |
| 8 Zeichen 4 Kleinbuchstaben, 2 Sonderzeichen, 2 Zahlen | (84) × (42) × 264 × 322 × 10219.653.623.808.000 | ≈ 2,73 Stunden |
| 9 Zeichen 2 Groß-, 3 Kleinbuchstaben, 2 Zahlen, 2 Sonderzeichen | (92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 | ≈ 53 Tage |
| 12 Zeichen 3 Groß-, 4 Kleinbuchstaben, 3 Sonderzeichen, 2 Zahlen | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 | ≈ 115.591 Jahre |
| 14 Zeichen 4 Groß-, 4 Kleinbuchstaben, 3 Zahlen, 3 Sonderzeichen | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 | ≈ 455.812.388 Jahre |
Извод: Всеки допълнителен символ умножава пространството за търсене. Дължината е по-важна от правилата за сложност – особено срещу Офлайн атаки – при условие че услугите използват подходящи, бавни хеш алгоритми със Salt.
Защита срещу Brute-Force атаки
Най-ефективната мярка от страна на потребителя е дълга, случайна главна парола или паролна фраза (напр. няколко случайни думи) – уникална за всяка услуга. Password Depot помага при генерирането и показва прогнозно време за атака , което отчита не само дължината/набора от знаци, но и уязвимостите към речникови атаки.
- Активирайте MFA/2FA (напр. TOTP приложение или хардуерен токен) – където е възможно, Passkeys са още по-добри. Вижте указанията на BSI.
- Без повторно използване на пароли. Всеки акаунт се нуждае от собствена, силна парола.
- Дължина вместо задължителна сложност. Услугите трябва да позволяват дълги пароли/паролни фрази (мин. 64 знака) и да блокират компрометирани пароли (черен списък).
- Бавни хеш алгоритми от страна на сървъра (напр. Argon2, scrypt, PBKDF2, bcrypt) със Salt и подходящи work factors; бързи хешове като MD5/SHA-1 не са подходящи за съхранение на пароли.
- Rate-Limiting/Throttling и блокиране: Онлайн атаките трябва да бъдат ограничавани чрез лимитиран брой неуспешни опити, прогресивни периоди на изчакване и при необходимост CAPTCHA.
Освен това Password Depot затруднява онлайн опитите за отгатване, като след грешни въвеждания формата за въвеждане на главната парола се блокира за кратко – с увеличаващо се време на изчакване при повторни неуспешни опити.
Практически насоки за доставчици на услуги (технически екипи)
- Приемайте всички печатаеми символи, вкл. интервали/Unicode, и позволявайте copy & paste.
- Внедрете блокиращи списъци (компрометирани/често срещани пароли) и Rate-Limiting с ясни указания за потребителите.
- Съхранявайте паролите единствено като salted, хеширани стойности с бавни KDFs и проверявайте редовно work факторите.
Допълнителни източници
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – дължина, passphrase, offline атаки (милиарди хешове/сек.) и концепция за Rate-Limiting.
- NIST SP 800–63B (Rev. 3) – наред с другото минимална дължина, разрешаване на дълги пароли (≥ 64), blacklists, разрешаване на поставяне; Rate-Limiting/Throttling с ограничение до макс. 100 последователни неуспешни опита.
- OWASP Password Storage Cheat Sheet – подходящи методи (Argon2, scrypt, PBKDF2, bcrypt), salt/work фактори.
- OWASP Authentication Cheat Sheet – насоки за въвеждане на пароли, дължина, blacklists и механизми за блокиране.
- BSI: Създаване на сигурни пароли – вкл. дълги/сложни пароли и passphrase; практически съвети.
- BSI – преса 31.01.2025 – без задължителна периодична смяна на паролите; предпочитайте 2FA/Passkeys.
- distributed.net RC5 / текущ статус на проксито – нагледен пример за изчерпателно търсене и разпределена изчислителна мощност.
Създаване на сигурни пароли
Научете как да създавате пароли, които издържат на Brute-Force атаки.
Съвети за сигурни пароли