Πώς λειτουργούν οι επιθέσεις brute force

Γιατί έχει σημασία το μήκος: υπολογιστικά παραδείγματα και αντίμετρα.

Στις επιθέσεις brute force, οι επιτιθέμενοι προσπαθούν να μαντέψουν έναν κωδικό πρόσβασης δοκιμάζοντας συστηματικά όλους τους πιθανούς συνδυασμούς χαρακτήρων. Η βασική ιδέα είναι απλή: να δοκιμάζονται όσο το δυνατόν περισσότεροι συνδυασμοί ανά δευτερόλεπτο – ιδανικά σε GPU ή σε κατανεμημένα συστήματα. Αυτό ονομάζεται επίσης εξαντλητική αναζήτηση (exhaustive search).

Στην πράξη, τέτοιες επιθέσεις είναι δυστυχώς συχνά επιτυχείς, επειδή πολλά κωδικά πρόσβασης είναι πολύ σύντομα, περιορίζονται σε λίγες ομάδες χαρακτήρων (μόνο γράμματα) ή εμφανίζονται σε λίστες λέξεων. Αυτό μειώνει δραστικά τον χώρο αναζήτησης και καθιστά την εικασία ευκολότερη. Ακόμα πιο σημαντικό: Διακρίνουμε μεταξύ επιθέσεων online (κατά των φορμών σύνδεσης, όπου βοηθούν τα όρια ταχύτητας/κλειδώματα λογαριασμών) και επιθέσεων offline (κατά κλεμμένων κωδικών πρόσβασης, όπου η λειτουργία hash και η ισχύς του κωδικού πρόσβασης καθορίζουν το χρόνο επίθεσης).

Το σπάσιμο κωδικών πρόσβασης (offline) ≠ «αποκρυπτογράφηση»

Οι κωδικοί πρόσβασης δεν αποκρυπτογραφούνται, αλλά αποθηκεύονται ως τιμές hash και στη συνέχεια αναζητούνται με Raten + Hashen (Brute Force, επιθέσεις με λεξικό/μάσκα). Η ταχύτητα υπολογισμού του σύγχρονου υλικού βρίσκεται στην περιοχή των δισεκατομμυρίων ανά δευτερόλεπτο (για γρήγορες διαδικασίες hash), γι' αυτό και τα μακρά και αργές διαδικασίες (π.χ. Argon2, scrypt, PBKDF2, bcrypt) κωδικοί πρόσβασης είναι αποφασιστικής σημασίας.

Συνδυασμός και μήκος του κωδικού πρόσβασης

Τα ακόλουθα παραδείγματα δείχνουν την επίδραση του μήκους και της επιλογής χαρακτήρων. Για την απεικόνιση, υπολογίζονται 2 δισεκατομμύρια προσπάθειες ανά δευτερόλεπτο (πολύ ισχυρός μεμονωμένος υπολογιστής· οι πραγματικές τιμές ποικίλλουν σημαντικά ανάλογα με το υλικό και – σε περίπτωση offline – τη διαδικασία κατακερματισμού).

Τυπικές ομάδες χαρακτήρων:

  • Αριθμοί (10: 0–9)
  • Γράμματα (52: A–Z και a–z)
  • Ειδικά χαρακτήρες (≈ 32; εξαρτάται από το επιτρεπόμενο σύνολο χαρακτήρων της υπηρεσίας)

Ο αριθμός των πιθανών συνδυασμών προκύπτει από:

Πιθανές συνδυασμοί = (σύνολο χαρακτήρων)μήκος κωδικού πρόσβασης

Σημαντικό: Ο πίνακας δείχνει τον μέγιστο χρόνο αναζήτησης. Κατά μέσο όρο, ο πραγματικός χρόνος είναι περίπου ο μισός. Επιπλέον, οι επιθέσεις λεξικού, κανόνων και μάσκας μειώνουν σημαντικά τον χώρο αναζήτησης, ενώ οι αργές διαδικασίες κατακερματισμού κωδικών πρόσβασης μειώνουν δραστικά τον αποτελεσματικό ρυθμό.

Ο κωδικός πρόσβασης αποτελείται από Πιθανές συνδυασμοί (τύπος) Απαιτούμενος χρόνος (με 2 δισ./δευτ.)

5 χαρακτήρες
(3 μικρά γράμματα,
2 αριθμοί)

( 53) × 263 × 102 =
17.576.000

17.576.000 / 2.000.000.000 =
0,008788 δευτερόλεπτα

7 χαρακτήρες
(1 κεφαλαίο,
6 πεζά)

( 71) × 261+6 =
56.222.671.232

56.222.671.232 / 2.000.000.000 =
28,111335616 δευτερόλεπτα

8 χαρακτήρες
(4 μικρά γράμματα,
2 ειδικοί χαρακτήρες,
2 αριθμοί)

( 84) × ( 42 ) × 264 × 322 × 102 =
19.653.623.808.000

19.653.623.808.000 / 2.000.000.000 =
9.826,811904 δευτερόλεπτα =
≈ 2,73 ώρες

9 χαρακτήρες
(2 κεφαλαία γράμματα,
3 μικρά γράμματα,
2 αριθμοί,
2 ειδικοί χαρακτήρες)

( 92 ) × ( 73) × ( 42 ) × 262+3 × 102 × 322 =
9.197.895.942.144.000

9.197.895.942.144.000 / 2.000.000.000 =
4.598.947,971072 δευτερόλεπτα =
≈ 53,23 ημέρες

12 χαρακτήρες
(3 κεφαλαία γράμματα,
4 μικρά γράμματα,
3 ειδικοί χαρακτήρες,
2 αριθμοί)

( 123) × ( 94 ) × ( 53) × 263+4 × 323 × 102 =
7.295.525.784.083.496.960.000

7.295.525.784.083.496.960.000 / 2.000.000.000 =
3.647.762.892.041,74848 δευτερόλεπτα =
≈ 115.590,63 έτη

14 χαρακτήρες
(4 κεφαλαία γράμματα,
4 μικρά γράμματα,
3 αριθμοί,
3 ειδικοί χαρακτήρες)

( 144 ) × ( 104) × ( 63 ) × 264+4 × 103 × 323 =
28.768.690.008.569.256.345.600.000

28.768.690.008.569.256.345.600.000 / 2.000.000.000 =
14.384.345.004.284.628,1728 δευτερόλεπτα =
≈ 455.812.387,64 έτη

Συμπέρασμα: Κάθε επιπλέον χαρακτήρας πολλαπλασιάζει τον χώρο αναζήτησης. Το μήκος υπερισχύει των κανόνων πολυπλοκότητας – ειδικά έναντι επιθέσεων εκτός σύνδεσης – υπό την προϋπόθεση ότι οι υπηρεσίες χρησιμοποιούν κατάλληλες, αργές διαδικασίες κατακερματισμού με Salt.

Προστασία από επιθέσεις brute force

Η πιο αποτελεσματική μέτρο του χρήστη είναι ένα μακρύ, τυχαίο κύριο κωδικό πρόσβασης ή μια φράση πρόσβασης (π.χ. πολλές τυχαίες λέξεις) – μοναδική για κάθε υπηρεσία. Το Password Depot βοηθά στη δημιουργία και εμφανίζει έναν εκτιμώμενο χρόνο επίθεσης, ο οποίος λαμβάνει υπόψη, εκτός από το μήκος/σύνολο χαρακτήρων, και τα αδύνατα σημεία του λεξικού.

  • Ενεργοποιήστε MFA/2FA (π.χ. εφαρμογή TOTP ή token υλικού) – όπου είναι δυνατόν, τα κλειδιά πρόσβασης είναι ακόμα καλύτερα. Δείτε BSI‑Hinweise.
  • Μην επαναχρησιμοποιείτε κωδικούς πρόσβασης. Κάθε λογαριασμός χρειάζεται έναν ξεχωριστό, ισχυρό κωδικό πρόσβασης.
  • Μακροσκελείς κωδικοί αντί για υποχρεωτική πολυπλοκότητα. Οι υπηρεσίες πρέπει να επιτρέπουν μακροσκελείς κωδικούς πρόσβασης/φράσεις πρόσβασης (τουλάχιστον 64 χαρακτήρες) και να αποκλείουν τους κωδικούς πρόσβασης που έχουν παραβιαστεί (μαύρη λίστα).
  • Αργές διαδικασίες κατακερματισμού από την πλευρά του διακομιστή (π.χ. Argon2, scrypt, PBKDF2, bcrypt) με Salt και κατάλληλους συντελεστές εργασίας. Οι γρήγοροι κατακερματισμοί όπως MD5/SHA‑1 δεν είναι ακατάλληλες για την αποθήκευση κωδικών πρόσβασης.
  • Περιορισμός/επιβράδυνση & κλείδωμα: Οι επιθέσεις στο διαδίκτυο πρέπει να επιβραδύνονται με περιορισμένες αποτυχημένες προσπάθειες, προοδευτικούς χρόνους αναμονής και, εάν χρειάζεται, CAPTCHA.

Επιπλέον, το Password Depot Online δυσκολεύει τις προσπάθειες εισαγωγής κωδικού πρόσβασης, καθώς μετά από λανθασμένες εισαγωγές η φόρμα εισαγωγής του κύριου κωδικού πρόσβασης κλειδώνεται για λίγο – με αυξανόμενο χρόνο αναμονής σε περίπτωση επαναλαμβανόμενων λανθασμένων προσπαθειών.

Περαιτέρω πηγές

  • NIST SP 800‑63B (Rev. 4), Παράρτημα: Ισχύς κωδικών πρόσβασης – Μήκος, φράσεις πρόσβασης, επιθέσεις εκτός σύνδεσης (δισεκατομμύρια κατακερματισμοί/δευτερόλεπτο) και έννοια περιορισμού ρυθμού.
  • NIST SP 800‑63B (Rev. 3) – μεταξύ άλλων, ελάχιστο μήκος, επιτρέπονται μακρά κωδικά πρόσβασης (≥ 64), μαύρες λίστες, επιτρέπεται η επικόλληση. Περιορισμός ρυθμού/περιορισμός ταχύτητας με όριο έως 100 συνεχόμενες αποτυχημένες προσπάθειες.
  • OWASP Password Storage Cheat Sheet – κατάλληλες διαδικασίες (Argon2, scrypt, PBKDF2, bcrypt), παράγοντες Salt/Work.
  • OWASP Authentication Cheat Sheet – οδηγίες για την εισαγωγή κωδικού πρόσβασης, το μήκος, τις μαύρες λίστες και τους μηχανισμούς αποκλεισμού.
  • BSI: Δημιουργία ασφαλών κωδικών πρόσβασης – μεταξύ άλλων, μακρά/πολύπλοκα κωδικά πρόσβασης και φράσεις πρόσβασης; πρακτικές συμβουλές.
  • BSI‑Presse 31.01.2025 – Καμία υποχρεωτική τακτική αλλαγή κωδικού πρόσβασης. Προτιμήστε 2FA/κλειδιά πρόσβασης.
  • distributed.net RC5 / τρέχουσα κατάσταση proxy – Παραδειγματική απεικόνιση για εξαντλητική αναζήτηση και κατανεμημένη υπολογιστική ισχύ.