Πώς λειτουργούν οι επιθέσεις Brute‑Force
Γιατί μετράει το μήκος: Παραδείγματα υπολογισμών και αντίμετρα.
Στις επιθέσεις Brute‑Force οι επιτιθέμενοι προσπαθούν να μαντέψουν έναν κωδικό πρόσβασης μέσω συστηματικής δοκιμής όλων των πιθανών συνδυασμών χαρακτήρων. Η βασική ιδέα είναι απλή: να δοκιμάζονται όσο το δυνατόν περισσότεροι συνδυασμοί ανά δευτερόλεπτο – ιδανικά σε GPUs ή σε κατανεμημένα συστήματα. Αυτό αποκαλείται επίσης εξαντλητική αναζήτηση (εξαντλητική αναζήτηση).
Στην πράξη, τέτοιες επιθέσεις είναι δυστυχώς συχνά επιτυχείς, επειδή πολλοί κωδικοί πρόσβασης είναι πολύ σύντομοι , περιορίζονται σε λίγες ομάδες χαρακτήρων (μόνο γράμματα) ή περιλαμβάνονται σε λίστες λέξεων . Αυτό μειώνει δραστικά τον χώρο αναζήτησης και κάνει την εικασία ευκολότερη. Ακόμη σημαντικότερο: γίνεται διάκριση μεταξύ online επιθέσεων (κατά φορμών σύνδεσης, όπου βοηθούν το rate limiting/το κλείδωμα λογαριασμών) και offline επιθέσεων (κατά κλεμμένων password hashes, όπου ο χρόνος επίθεσης καθορίζεται από τη συνάρτηση hash και την ισχύ του κωδικού πρόσβασης).
Παραβίαση κωδικών πρόσβασης (offline) ≠ «αποκρυπτογράφηση»
Οι κωδικοί πρόσβασης δεν αποκρυπτογραφούνται, αλλά αποθηκεύονται ως τιμές hash και στη συνέχεια αναζητούνται με εικασία + hashing (Brute Force, επιθέσεις λεξικού/μάσκας). Η υπολογιστική ταχύτητα της σύγχρονης υπολογιστικής ισχύος βρίσκεται στα δισεκατομμύρια ανά δευτερόλεπτο (για γρήγορες μεθόδους hash), γι’ αυτό οι μεγάλοι και με αργές μεθόδους (π.χ. Argon2, scrypt, PBKDF2, bcrypt) hashed κωδικοί πρόσβασης είναι καθοριστικής σημασίας.
Ιστορική και τρέχουσα αναφορά: Το RC5 έργο της distributed.net καταδεικνύει την ακατέργαστη ισχύ της εξαντλητικής αναζήτησης σε έναν χώρο κλειδιών: τα 56 bit βρέθηκαν το 1997 έπειτα από 250 ημέρες, τα 64 bit το 2002 έπειτα από 1.757 ημέρες. Επί του παρόντος, το κατάσταση proxy για το RC5-72 περ. 2,38 τρισεκατομμύρια κλειδιά ανά δευτερόλεπτο (κατάσταση: ανάκτηση τη σημερινή ημέρα). Πρόκειται για bruteforce κλειδιών και όχι για hashing κωδικών πρόσβασης – αλλά δείχνει πόσο ισχυρά κλιμακώνεται η κατανεμημένη υπολογιστική ισχύς.
Συνδυασμός και μήκος του κωδικού πρόσβασης
Τα παρακάτω παραδείγματα δείχνουν την επίδραση του/της μήκους και της επιλογής χαρακτήρων. Για λόγους απεικόνισης, ο υπολογισμός γίνεται με 2 δισεκατομμύρια δοκιμές ανά δευτερόλεπτο (πολύ ισχυρός μεμονωμένος υπολογιστής· οι πραγματικές τιμές διαφέρουν σημαντικά ανάλογα με το hardware και – στην offline περίπτωση – τη μέθοδο hashing).
Τυπικές ομάδες χαρακτήρων:
- Αριθμοί (10: 0–9)
- Γράμματα (52: A–Z και a–z)
- Ειδικοί χαρακτήρες (≈ 32· εξαρτάται από το επιτρεπόμενο σύνολο χαρακτήρων της υπηρεσίας)
Ο αριθμός των πιθανών συνδυασμών προκύπτει από:
Σημαντικό: Ο πίνακας δείχνει τον μέγιστο χρόνο αναζήτησης. Κατά μέσο όρο, ο πραγματικός χρόνος είναι περίπου ο μισός. Επιπλέον, οι επιθέσεις λεξικού, κανόνων και μασκών μειώνουν σημαντικά τον χώρο αναζήτησης, ενώ οι αργές μέθοδοι hashing κωδικών πρόσβασης μειώνουν δραστικά τον/τη πραγματικό ρυθμό.
| Ο κωδικός αποτελείται από | Πιθανοί συνδυασμοί (τύπος) | Απαιτούμενος χρόνος (με 2 δισ./δλ) |
|---|---|---|
| 5 χαρακτήρες 3 πεζά, 2 ψηφία | (53) × 263 × 10217.576.000 | 0,009 δευτερόλεπτα |
| 7 χαρακτήρες 1 κεφαλαίο, 6 πεζά | (71) × 261+656.222.671.232 | ≈ 28 δευτερόλεπτα |
| 8 χαρακτήρες 4 πεζά, 2 ειδικοί χαρακτήρες, 2 ψηφία | (84) × (42) × 264 × 322 × 10219.653.623.808.000 | ≈ 2,73 ώρες |
| 9 χαρακτήρες 2 κεφαλαία, 3 πεζά, 2 ψηφία, 2 ειδικοί χαρακτήρες | (92) × (73) × (42) × 262+3 × 102 × 3229.197.895.942.144.000 | ≈ 53 ημέρες |
| 12 χαρακτήρες 3 κεφαλαία, 4 πεζά, 3 ειδικοί χαρακτήρες, 2 ψηφία | (123) × (94) × (53) × 263+4 × 323 × 1027,30 × 1021 | ≈ 115.591 έτη |
| 14 χαρακτήρες 4 κεφαλαία, 4 πεζά, 3 ψηφία, 3 ειδικοί χαρακτήρες | (144) × (104) × (63) × 264+4 × 103 × 3232,88 × 1025 | ≈ 455.812.388 έτη |
Συμπέρασμα: Κάθε επιπλέον χαρακτήρας πολλαπλασιάζει τον χώρο αναζήτησης. Το μήκος υπερισχύει των κανόνων πολυπλοκότητας – ιδιαίτερα απέναντι σε Offline επιθέσεις – με την προϋπόθεση ότι οι υπηρεσίες χρησιμοποιούν κατάλληλες, αργές μεθόδους hashing με Salt.
Προστασία από επιθέσεις brute force
Το πιο αποτελεσματικό μέτρο για τον χρήστη είναι ένα μακρύ, τυχαίο κύριο συνθηματικό ή μια φράση πρόσβασης (π.χ. πολλές τυχαίες λέξεις) – μοναδική για κάθε υπηρεσία. Το Password Depot βοηθά στη δημιουργία της και εμφανίζει έναν εκτιμώμενο χρόνο επίθεσης που λαμβάνει υπόψη, πέρα από το μήκος/το σύνολο χαρακτήρων, και αδυναμίες που σχετίζονται με λεξικά.
- Ενεργοποιήστε MFA/2FA (π.χ. εφαρμογή TOTP ή hardware token) – όπου είναι δυνατόν, τα Passkeys είναι ακόμη καλύτερα. Δείτε τις οδηγίες του BSI.
- Όχι επαναχρησιμοποίηση κωδικών πρόσβασης. Κάθε λογαριασμός χρειάζεται τον δικό του ισχυρό κωδικό πρόσβασης.
- Προτιμήστε το μήκος αντί για υποχρεωτική πολυπλοκότητα. Οι υπηρεσίες θα πρέπει να επιτρέπουν μακρείς κωδικούς πρόσβασης/φράσεις πρόσβασης (τουλάχιστον 64 χαρακτήρες) και να μπλοκάρουν παραβιασμένους κωδικούς πρόσβασης (Blacklist).
- Αργές μέθοδοι hashing στην πλευρά του server (π.χ. Argon2, scrypt, PBKDF2, bcrypt) με Salt και κατάλληλους συντελεστές work factor· τα γρήγορα hashes όπως MD5/SHA-1 είναι ακατάλληλα για αποθήκευση κωδικών πρόσβασης.
- Rate limiting/Throttling & κλείδωμα: Οι online επιθέσεις πρέπει να επιβραδύνονται μέσω περιορισμένων αποτυχημένων προσπαθειών, προοδευτικών χρόνων αναμονής και, εφόσον απαιτείται, CAPTCHA.
Επιπλέον, το Password Depot δυσχεραίνει τις online απόπειρες guessing, μπλοκάροντας προσωρινά τη φόρμα εισαγωγής για το κύριο συνθηματικό μετά από λανθασμένες καταχωρίσεις – με αυξανόμενο χρόνο αναμονής σε περίπτωση επαναλαμβανόμενων αποτυχημένων προσπαθειών.
Πρακτικές οδηγίες για παρόχους υπηρεσιών (τεχνικές ομάδες)
- Αποδέχεστε όλους τους εκτυπώσιμους χαρακτήρες, συμπεριλαμβανομένων κενών/Unicode, και επιτρέπετε Copy-&-Paste.
- Εφαρμόστε λίστες αποκλεισμού (παραβιασμένοι/συνηθισμένοι κωδικοί πρόσβασης) και Rate Limiting με σαφείς οδηγίες προς τους χρήστες.
- Αποθηκεύετε τους κωδικούς πρόσβασης αποκλειστικά ως salted, hashed τιμές με αργές KDFs και ελέγχετε τακτικά τους συντελεστές work factor.
Περαιτέρω πηγές
- NIST SP 800–63B (Rev. 4), Appendix: Strength of Passwords – μήκος, passphrases, offline επιθέσεις (δισεκατομμύρια hashes/δευτ.) και έννοια του Rate Limiting.
- NIST SP 800–63B (Rev. 3) – μεταξύ άλλων, ελάχιστο μήκος, αποδοχή μεγάλων κωδικών πρόσβασης (≥ 64), blacklists, να επιτρέπεται το Paste; Rate Limiting/Throttling με περιορισμό σε έως 100 διαδοχικές αποτυχημένες προσπάθειες.
- OWASP Password Storage Cheat Sheet – κατάλληλες μέθοδοι (Argon2, scrypt, PBKDF2, bcrypt), Salt/work factors.
- OWASP Authentication Cheat Sheet – οδηγίες για εισαγωγή κωδικού πρόσβασης, μήκος, blacklists και μηχανισμούς κλειδώματος.
- BSI: Δημιουργία ασφαλών κωδικών πρόσβασης – π.χ. μεγάλοι/πολύπλοκοι κωδικοί πρόσβασης και φράσεις πρόσβασης· πρακτικές συμβουλές.
- BSI–Δελτίο Τύπου 31.01.2025 – χωρίς υποχρεωτικές τακτικές αλλαγές κωδικών πρόσβασης· προτιμήστε 2FA/Passkeys.
- distributed.net RC5 / τρέχουσα κατάσταση proxy – ενδεικτικό παράδειγμα για εξαντλητική αναζήτηση και κατανεμημένη υπολογιστική ισχύ.
Δημιουργία ασφαλών κωδικών πρόσβασης
Μάθετε πώς να δημιουργείτε κωδικούς πρόσβασης που αντέχουν σε επιθέσεις Brute-Force.
Συμβουλές για ασφαλείς κωδικούς πρόσβασης