Know-how / Сигурност на паролите

Как работят 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; зависи от разрешения набор от символи на услугата)

Броят на възможните комбинации се изчислява по формулата:

Mögliche Kombinationen = (Zeichenmenge)Passwortlänge

Важно: Таблицата показва максималното време за търсене. Средно действителното време е около наполовина. Освен това атаките с речници, правила и маски значително намаляват пространството за търсене, докато бавните методи за хеширане на пароли ефективната скорост понижават драстично.

Passwort besteht ausMögliche Kombinationen (Formel)Benötigte Zeit (bei 2 Mrd./s)
5 Zeichen
3 Kleinbuchstaben, 2 Zahlen
(53) × 263 × 10217.576.0000,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 факторите.

Допълнителни източници

Създаване на сигурни пароли

Научете как да създавате пароли, които издържат на Brute-Force атаки.

Съвети за сигурни пароли