( 17 ψήφοι )

1.1-passwordΒάλατε κωδικό στο πολύτιμο ημερολόγιο σας (με όλες τις συνταγές της γιαγιάς Ντακ). Μπορεί να "σπάσει" από κάποιον hacker (ή από τον 14χρονο της γειτονιάς); Αν ναι γιατί, αν όχι, πάλι γιατί; Το παρακάτω άρθρο θα προσπαθήσει να δώσει απαντήσεις όσον αφορά την κωδικοποίηση αρχείων του Office (Word, Excel κ.λπ.) και θα ρίξει μια φευγαλέα ματιά στις άλλες μορφές προστασίας με κωδικό (Encryption σκληρών δίσκων, encryption συμπιεσμένων αρχείων 7zip, WinZip, Rar, κ.α.). Είμαστε σίγουροι πως μετά την ανάγνωση, πολλοί θα αναθεωρήσουν πολλά πράγματα για την ασφάλεια των δεδομένων τους!

Office '97 εναντίον Office 2007 και νεώτερων

Κατ' αρχάς να αναφέρουμε πως ως έναυσμα για την όλη προσπάθεια ήταν η είδηση που αναδημοσιεύσαμε για έναν "φθηνό" υπερυπολογιστή ο οποίος μπορεί να σπάσει με μεγάλη ταχύτητα (χάρις τις GPU που διαθέτει) ένα μεγάλο εύρος passwords. Αν λοιπόν ένας σχετικά φθηνός server μπορεί να καταφέρει κάτι τέτοιο, τότε πόσες πιθανότητες έχει ένας σπιτικός υπολογιστής ή μια κυβερνητική υπηρεσία που διαθέτει απείρως μεγαλύτερες δυνατότητες;

Όσον αφορά το Microsoft Office (στο οποίο αφιερώνουμε και το μεγαλύτερο μέρος του review) η κατάσταση έχει ως εξής: Για τις εκδόσεις που ακολουθούν το πρότυπο του Office '97 (δηλαδή το Office '97, το Office 2000, το Office XP και το Office 2003), η ασφάλεια των προστατευμένων με κωδικό αρχείων, είναι πραγματικά αμφίβολη! Αυτό είναι ένα τεράστιο σοκ αν αναλογιστούμε πως εκατομμύρια χρήστες χρησιμοποιούν ακόμη και σήμερα εκδόσεις προγενέστερες του 2007 ή ακόμη άλλες σουίτες όπως το OpenOffice που επίσης δεν ακολουθούν το πρότυπο του 2007.

1.2-office2003-vs-office2007

Γιατί όμως οι κωδικοί των αρχείων παλαιών εκδόσεων του Office είναι τόσο εύκολο να σπάσουν; Η απάντηση έχει να κάνει με τον αλγόριθμο κωδικοποίησης ο οποίος αν και θεωρητικά είναι ένας ισχυρός RC4 με κλειδί 128-bit, στην πράξη με την υπολογιστική ισχύ των σημερινών υπολογιστών είναι πολύ εύκολο να διατρηθεί. Ακόμη χειρότερα, πολλές φορές δεν απαιτείται καν brute force επίθεση (δηλαδή να προσπαθήσουμε να βρούμε όλους τους πιθανούς συνδυασμούς του κωδικού) αφού μια "ατέλεια" στον συγκεκριμένο αλγόριθμο, επιτρέπει στα δεκάδες πλέον προγράμματα σπασίματος, να εντοπίσουν ακαριαία τον κωδικό των πολύτιμων εγγράφων σας, συγκρίνοντας δύο διαφορετικές εκδόσεις τους! Θεωρείτε πως αυτό είναι δύσκολο; Δεν είναι. Αναλογιστείτε μόνο τα auto-saves ή τα recovered αρχεία που κρατάει το word ή τα backup διαφορετικών ημερομηνιών που μπορεί να έχετε.

Από την άλλη, η προστασία που προσφέρει το Office 2007 και τα μεταγενέστερα, είναι εκθετικά μεγαλύτερη από τους προκατόχους του, καθώς αντί του RC4 χρησιμοποιεί 128-bit ή και 256-bit AES encryption. Χάρις αυτό, αφενός είναι αδύνατον να βρει κάποιος τον κωδικό έχοντας δύο διαφορετικές εκδόσεις του αρχείου, ενώ αφετέρου αν προσπαθήσει να "σπάσει" τον κωδικό με επίθεση brute force, τότε θα διαπιστώσει  πως λόγω της πολυπλοκότητας, ο χρόνος που θα απαιτηθεί θα είναι ιδιαίτερα υψηλός!

Τί εστί brute force και dictionary attack και ποια είναι η σχέση password και ασφάλειας;

Με τον όρο brute force περιγράφουμε την διαδικασία κατά την οποία δοκιμάζουμε όλους τους πιθανούς συνδυασμούς κωδικών μέχρι να βρούμε τον σωστό. Είναι σαν να έχουμε μια κλειδαριά και να δοκιμάζουμε όλα τα κλειδιά της πόλης προσπαθώντας να βρούμε στα τυφλά ποιο από αυτά είναι το σωστό! Αν και θεωρητικά με αυτή την τεχνική μπορούμε στο τέλος να βρούμε εγγυημένα τον κωδικό, στην πράξη είναι δύσκολο με συμβατικό εξοπλισμό (ή ακόμη και με εξελιγμένο) να έχουμε επιτυχία. Το dictionary attack από την άλλη χρησιμοποιεί ένα... λεξικό χιλιάδων συνηθισμένων passwords (ή συνδυασμό αυτών με αριθμούς και σύμβολα) προκειμένου να βρει τον κωδικό σας. Αυτό καθιστά την dictionary επίθεση ποιο γρήγορη και πρακτική, χωρίς όμως εγγυημένο αποτέλεσμα.

Μερικές φορές φυσικά κάνουμε τα πράγματα ποιο εύκολα για τον επιτιθέμενο από ότι θα έπρεπε: Ημερομηνίες γέννησης, πινακίδες αυτοκινήτου, ταχυδρομικοί κώδικες, το όνομα μας με κάποιο νούμερο ή η ομάδά μας είναι μερικά από τα ποιο συνηθισμένα passwords. Αλλά ακόμη και αν δεν είναι αυτό, passwords έως και 5 χαρακτήρες, είναι πολύ εύκολο να σπάσουν αφού οι συνδυασμοί γραμμάτων και αριθμών είναι λίγοι. Ας ρίξουμε μια ματιά παρακάτω:

Μήκος

password

Χαρακτήρες password

0 - 9 (10)

a-z (24)

a-Z, A-Z (48)

a-z, A-Z, 0-10, σύμβολα ($,% κ.α.)(95)

6

1 εκ.

309  εκ.

19,8 δισ.

735,1 δισ.

7

10 εκ.

8 δισ.

1 τρισ.

69,8 τρισ.

8

100 εκ.

209 δισ.

53,5 τρισ.

6,6 τετράκις

9

1 δισ.

5,4 τρισ.

2,8 τετράκις

630 τετράκις

Τί μας δείχνει ο πίνακας αυτός; Το πόσο το μήκος του password αλλά και η πολυπλοκότητα των χαρακτήρων που θα χρησιμοποιήσουμε, επηρεάζει τους πιθανούς συνδυασμούς που θα πρέπει να ελέγξει κάποιος προκειμένου να τον "μαντέψει". Αν π.χ. χρησιμοποιήσουμε μόνο αριθμούς τότε για να σπάσει ένας κωδικός με 6 με  χαρακτήρες (π.χ. 198500) τότε θα χρειαστούν μόλις 1 εκατομμύριο προσπάθειες! Αν από την άλλη χρησιμοποιήσουμε έναν κωδικό 8 χαρακτήρων στον οποίο περιλαμβάνονται αριθμοί, γράμματα και χαρακτήρες (π.χ. $abc1cc#) τότε οι συνδυασμοί εκτοξεύονται στον αστρονομικό ποσό των 6.600.000.000.000 και φυσικά καθίσταται σχεδόν αδύνατον ο κωδικός μας να σπάσει με μία τυπική brute force επίθεση.

Εδώ φυσικά θα πρέπει να παραθέσουμε και το εξής: Το ότι π.χ. ένας κωδικός με γράμματα και μήκος 7 χαρακτήρες σημαίνει 8 δισεκατομμύρια διαφορετικά passwords, αυτό δεν σημαίνει πως ένα πρόγραμμα brute force θα χρειαστεί να ψάξει καί τα 8 δισεκατομμύρια. Η στατιστική υπαγορεύει πως στο 50% (δηλαδή στα 4 δισεκατομμύρια κωδικούς που θα έχει ψάξει κάποιος) θα έχει 50% πιθανότητες να έχει ήδη  βρει το password μας! Άρα στην θεωρία, υπάρχει κίνδυνος ακόμη και στα 630 τετράκις συνδυασμών!

Στήνοντας τον υπολογιστή - σπαστήρι

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

  • MSI 970A-G46
  • Athlon FX-4170 4.1GHz
  • 8GB DDR3 1333MHz
  • Kingston HyperX SH100S3120G SSD
  • Seagate ST310005 Hard disk
  • Windows 7 Pro 64bit

Η διαφορά ανάμεσα στα δύο configurations ήταν πως στο πρώτο χρησιμοποιούσαμε μία Gigabyte GTX580 με 1.5GB RAM, ενώ στην δεύτερη, μία AMD HD7970 με 2GB RAM.

1.3-GTX580-vs-HD7970
GTX580 vs HD7970: Εμφανισιακά μπορεί να μην ξεχωρίζουν, αλλά η διαφορά απόδοσης μεταξύ τους είναι ορατή!

1.4-GTX580-vs-HD7970-tech-powerup

Στην αρχή των δοκιμών προσπαθήσαμε να πειραματιστούμε με το Advanced Software Password Recovery της Elcomsoft. Δυστυχώς το software δεν μπορούμε να πούμε πως μας ικανοποίησε, αφού μετρήσεις σε Office 2007 αρχείο πήραμε μόνον με την GTX580 (15.000 passwords/sec αντί 850p/sec του επεξεργαστή) καθώς το πρόγραμμα crash-αρε συστηματικά με την HD7970. Δοκιμάσαμε αντ' αυτού το Accent Office Password Recovery που πατάει πάνω στο OpenCL προκειμένου να βρει τον κωδικό του word αρχείου.

1.5-accent
To Accent Office Password Recovery αποδείχθηκε φιλικό, εύκολο και κυρίως γρήγορο και σταθερό!

Μικρή παρένθεση: Κάποιος ανυποψίαστος εδώ μπορεί να αναρωτηθεί τί σχέση έχει η κάρτα γραφικών με το σπάσιμο κωδικών. Η απάντηση είναι απλή: Οι σύγχρονες κάρτες γραφικών πλέον είναι προγραμματιζόμενες για να εκτελούν κώδικα ακριβώς όπως ένας επεξεργαστής, με την διαφορά πως είναι απείρως ποιο γρήγορες από τους τελευταίους. Γιατί; Αφενός έχουν εκατοντάδες πυρήνες που διατελούν παράλληλη εργασία (αντί των 1~8 των επεξεργαστών), αφετέρου έχουν καλύτερες μονάδες για υπολογισμούς κινητής υποδιαστολής και φυσικά συνεργάζονται με τραγικά ποιο γρήγορες μνήμες (GDDR5 στα 4~6GHz σε αντίθεση με την DDR3 στα 1333 ~ 1866MHz).

Σπάζοντας κωδικούς

Η μεθοδολογία που ακολουθήσαμε ήταν απλή: Κωδικοποιήσαμε ένα word αρχείο με αλγόριθμο του Office '97-2000-XP-2003 και ένα με αλγόριθμο του Office2007+ και προσπαθήσαμε να τα "σπάσουμε" με τρεις διαφορετικούς τρόπους (επεξεργαστής, επεξεργαστής + GTX580 και επεξεργαστής + HD7970). Αυτό που θέλαμε να μάθουμε δεν ήταν φυσικά ο κωδικός (αφού ήδη τον... γνωρίζαμε) αλλά οι ταχύτητες που θα αναπτύσσονταν με κάθε μέθοδο. Για να μην σαν κρατάμε σε αγωνία λοιπόν, ιδού οι μετρήσεις και τα συμπεράσματα μας!

Συμπεράσματα από το "σπάσιμο" passwords σε Office '97-2003 και Office 2007+:

Office '97-2003

Όσον αφορά τα προστατευμένα αρχεία του Office '97, 2000, XP, 2003, τα συμπεράσματα μας ήταν ιδιαίτερα ενδιαφέροντα! Κατ' αρχάς τόσο με το ASPR όσο και με το πρόγραμμα της Elcomm, οι GPU δεν είχαν διαφορά σε απόδοση σε σχέση με την CPU στο σπάσιμο κωδικών του Office '07-2003. Το γιατί συμβαίνει αυτό δεν το γνωρίζουμε, μπορούμε να υποθέσουμε μόνο πως έχει να κάνει με την παλαιότητα του κώδικα που δεν έχει μεταφερθεί στην GPU. Ακόμη όμως και ο ταπεινός Bulldozer FX-4170 στα 4.1GHz, μπορούσε να "σπάσει" 7.3 με 7.6 εκατομμύρια passwords το δευτερόλεπτο! (αντί 1,4 εκ. με το πρόγραμμα της Elcomm). Το πράγμα γίνεται αρκετά ενδιαφέρον αφού αναφερόμαστε σε έναν επεξεργαστή που είναι μεν αξιοπρεπής, αλλά όχι στα επίπεδα ακόμη ισχυρότερων FX-8xxx ή Core i7 που μπορούν να έχουν απόδοση στο 120% ή και παραπάνω! Κάποιος εδώ μπορεί να πει "ok, από τον πρώτο πίνακα, θα βάλω έναν κωδικό με εννέα χαρακτήρες, και ας βρει το password μου ανάμεσα σε... 630 τετράκις πιθανά passwords". Πράγματι. Εκτός και αν είστε κάποιος που διαχειρίζεται αρχεία εταιρειών, στρατιωτικά έγγραφα ή προσωπικά αρχεία υπερυψηλής αξίας (π.χ. ένα excel με τα οικονομικά ή τα τραπεζικά του στοιχεία).

Σε μια τέτοια  περίπτωση (όπου υπάρχουν μεγάλα οφέλη για αυτόν που θα αποκτήσει πρόσβαση στην πληροφορία), ένας επιτιθέμενος θα μπορούσε ενοικιάσει στο "σύννεφο" μια φάρμα με Χ πυρήνες (ή ακόμη χειρότερα GPUs) και να καταφέρει να σπάσει έναν τέτοιο κωδικό ίσως και σε ενάμιση μήνα ή και λιγότερο.

Office 2007+

Ο αλγόριθμος AES είναι κάτι παραπάνω από κέρβερος και προτείνεται ανεπιφύλακτα σε όσους θέλουν να έχουν το κεφάλι τους ήσυχο. Ο... καημένος FX-4170 από εκεί που έσπαγε 7.520.000 κωδικούς ανά δευτερόλεπτο στο Office 97-2003, έπεσε στους μόλις 1.615 κωδικούς ανά δευτερόλεπτο για το Office 2007!! Μιλάμε για μια απίστευτα μεγάλη επιβράδυνση στην διαδικασία σπασίματος κάτι που σημαίνει πως στην πράξη είναι φύσιν αδύνατο ένας επεξεργαστής να βρει κωδικό του Office 2007. Οι GPU από την άλλη τα πήγαν πολύ καλύτερα, με κορυφαία απόδοση αυτή της HD7970 η οποία πλησίασε τα 42.400 passwords αν δευτερόλεπτο, ήτοι 26 φορές ποιο γρήγορα από τον επεξεργαστή! Στην θεωρία, ένα υπολογιστής με 4 τέτοιες κάρτες σε διάταξη Crossfire, θα μπορούσε να σπάσει γύρω στα 150.000 passwords αν δευτερόλεπτο αλλά και πάλι, αυτό το νούμερο δεν είναι αρκετό για να αποκαλύψει έναν ισχυρό κωδικό σε ικανοποιητικό χρόνο.

Τα συμπεράσματα μας λοιπόν, είναι απλά: Οποιοδήποτε τύπου encryption στο Office '09-2003 είναι επισφαλής, ενώ ως γενικός κανόνας, η χρήση κωδικών οκτώ ή περισσότερων χαρακτήρων προσδίδει μεγάλη ασφάλεια, ειδικά αν σε αυτούς περιλαμβάνονται  μικρά και κεφαλαία γράμματα, νούμερα και σύμβολα.

 

AMD FX-4170

NVidia GTX580

AMD HD7970

Office '97/2000/XP/03

7.520.000

7.645.000 p/sec

7.556.000 p/sec

Office 2007

1.615 p/sec

14.745 p/sec

42.400 p/sec

Τί άλλο σπάει;

Τα πάντα σπάνε! WinRar αρχεία, ασύρματα δίκτυα, το encryption του iOS (λέγε με iPhone), Bitlocker, PGP, TrueCrypt ή EFS κωδικοποιημένοι δίσκοι. Ειδικά για τα ασύρματα δίκτυα, είναι αρκετά εύκολο ένας χρήστης να "κατεβάσει" δεδομένα από 20 δίκτυα στην περιοχή του, και μετά να δοκιμάσει να τα σπάσει όλα, ευελπιστώντας πως κάποιο από αυτά θα έχει αδύναμο κωδικό και θα... ενδώσει αργά ή γρήγορα.

1.6-ewsa wireless networks
Ίσως θα έπρεπε μια μέρα να δοκιμάσουμε να σπάσουμε αποκλειστικά ασύρματα δίκτυα και να παρουσιάσουμε τα ευρήματα μας! Στον παραπάνω πίνακα η επίδοση της HD5970 ξεχωρίζει. Άραγε τί μπορεί να καταφέρει η 7970;

Επίσης έχετε υπ' όψιν πως πάντα παλαιότερες εφαρμογές έχουν σοβαρότερα προβλήματα ασφαλείας. Για παράδειγμα συμπιεσμένα αρχεία με παλιές εκδόσεις του WinZip σπάνε εύκολα αν το .zip περιέχει πάνω από 5 αρχεία. Το ίδιο ισχύει και για WinRar αρχεία έκδοσης 2.90 ή παλαιότερης.

Συμπεράσματα

Πριν κλείσουμε θα θέλαμε να δώσουμε ορισμένα στοιχεία περί ισχύος ώστε να υπάρχει μια ποιο σφαιρική εικόνα για το πόσο επικίνδυνο είναι να μην παίρνουμε τις απαραίτητες προφυλάξεις. Η AMD HD7970 που χρησιμοποιήσαμε για τις μετρήσεις μας, έχει υπολογιστική ισχύ 947 GFlops σε υπολογισμούς διπλής ακρίβειας. Αυτή τη στιγμή διατίθενται εμπορικά κάρτες για servers με πολλαπλάσιες ικανότητες όπως η Tesla K20X η οποία μπορεί να επιτύχει υπολογισμούς με ταχύτητα 3.95TFlops κάτι που σημαίνει τέσσερις φορές μεγαλύτερη απόδοση σε μια και μόνο κάρτα!

1.7-nvidia-tesla
Η Tesla επιτρέπει την εύκολη και scalable δημιουργία super-computers βασισμένων σε GPU όπως ο ταχύτερος στον κόσμο Titan

1.8-amazon-cloud


Ακόμη χειρότερα, εταιρείες όπως η Amazon προσφέρουν ήδη Cloud GPU υπηρεσίες!

Εγκυκλοπαιδικά, και για να δώσουμε και ένα μέτρο σύγκρισης,  θα αναφέρουμε πως ο ισχυρότερος υπερυπολογιστής στον κόσμο αυτή τη στιγμή είναι ο Cray Titan XK7 και ανήκει στο DOE/SC/Oak Ridge National Laboratory των ΗΠΑ. Αν το σχεδόν 1Tflop της HD7970 σας φαίνεται εντυπωσιακό, σκεφτείτε πώς θα σας φαινόταν τα... 27.112TFlops/δευτερόλεπτο του συγκεκριμένου τέρατος! Και φυσικά ας έχουμε στα υπόψη μας για το μέλλον και την νέμεση πολλών αλγόριθμων κωδικοποίησης (που βασίζονται στην παραγοντοποίηση ακέραιων αριθμών) που δεν είναι άλλος από τους κβαντικούς υπολογιστές!

Όπως και να έχει, ελπίζουμε το παραπάνω άρθρο να γίνει το έναυσμα για προβληματισμό και για  ασφαλέστερη (από τα αδιάκριτα μάτια) αποθήκευση των πολύτιμων δεδομένων σας!

δημοψήφισμα

Νέα επικαιρότητας: Ποιότητα ή ποσότητα;