H ασφαλής απόκρυψη των δεδομένων αποτελεί σίγουρα ένα απαραίτητο εργαλείο για όλους τους χρήστες, επαγγελματίες και μη. Ωστόσο οι πραγματικές δυνατότητες των ειδικών εφαρμογών κρυπτογράφησης, εμφανιζόμενες ως απαραβίαστες, τυγχάνουν ίσως περισσότερης προσοχής ως προς την αξιοπιστία που υπόσχονται.
Κρυπτογράφηση: Μύθοι και αλήθειες
Όπως είναι γνωστό, στο εμπόριο είναι διαθέσιμες αρκετές εφαρμογές κρυπτογράφησης, shareware και freeware. Το πρόβλημα όμως που δημιουργείται είναι ότι πολλές από τις εφαρμογές αυτές, όχι απλά αδυνατούν να παράσχουν ασφάλεια, αλλά “ξεγελούν” τους χρήστες, κάνοντας χρήση περίπλοκων και δυσνόητων εννοιών γύρω από τους όρους “security” και “cryptography“, στις οποίες και στηρίζουν το γενικότερο marketing. Στο άρθρο λοιπόν που ακολουθεί περιγράφονται κάποια red alerts, τα οποία θα πρέπει να προσέξετε σε περίπτωση που προβείτε στην αγορά μιας τέτοιας εφαρμογής.
Προτού ωστόσο, αξιολογήσετε ένα προϊόν θα πρέπει πρωτίστως να γνωρίζετε επακριβώς το σκοπό της χρήσης του. Για παράδειγμα, αναφορικά με προγράμματα προστασίας δεδομένων, θα πρέπει να έχετε ξεκαθαρίσει ποια κατηγορία δεδομένων θέλετε να προστατεύσετε: Πρόκειται για κάποιο mail plug in, κάποιο data archiver ή κάποιο software που πραγματοποιεί κρυπτογράφηση σε online επικοινωνίες; H κρυπτογράφηση επίσης θα αφορά ολόκληρο το σκληρό δίσκο, ή κάποια απομονωμένα αρχεία;
Τεράστιο ρόλο τέλος, παίζει και ο παράγοντας “κατασκοπεία“, η προέλευση της οποίας καθορίζει συνήθως και το ποιόν, το κόστος αλλά και το μέγεθος της ασφαλείας που παρέχουν τα ομώνυμα προγράμματα. Αν για παράδειγμα τα δεδομένα θα πρέπει να προστατευτούν από τρίτους για δέκα λεπτά ή για 10 χρόνια και κυρίως εάν η ταυτότητα του επιτήδειου εισβολέα σχετίζεται με τον “περίεργο” αδερφό μας, την ανταγωνίστρια εταιρεία μας, ή ακόμα και την ίδια την κυβέρνηση!
Symmetric vs Asymmetric Cryptography
Υπάρχουν δύο διαφορετικοί τύποι κρυπτογράφησης: η Συμμετρική και η Ασύμμετρη. Στην πρώτη χρησιμοποιείται το ίδιο κλειδί τόσο για την κρυπτογράφηση όσο και για την αποκρυπτογράφηση. Επομένως, το κλειδί αυτό πρέπει να είναι γνωστό μόνο στα εξουσιοδοτημένα μέρη και επομένως, απαιτείται ασφαλές μέσο για τη μετάδοσή του. Αν κάτι τέτοιο δεν είναι εφικτό, η συμμετρική κρυπτογραφία είναι μάλλον αναποτελεσματική. Τα συστήματα συμμετρικής κρυπτογραφίας προϋποθέτουν την ύπαρξη ενός ασφαλούς καναλιού για την ανταλλαγή των μυστικών κλειδιών.
Tο μειονέκτημα ωστόσο είναι ότι δεν είναι εύκολο να επεκταθούν για την εξυπηρέτηση μεγάλων πληθυσμών και απαιτούν επίσης πρόσθετες διαδικασίες ασφάλειας, όπως την αποθήκευση των κλειδιών σ’ έναν κεντρικό ασφαλή server. Αντίστοιχα, στην ασύμμετρη κρυπτογραφία, χρησιμοποιούνται διαφορετικά κλειδιά για την κρυπτογράφηση και την αποκρυπτογράφηση, το δημόσιο (public) και το ιδιωτικό (private) κλειδί αντίστοιχα. Τα κλειδιά αυτά παράγονται έτσι ώστε να έχουν τις εξής ιδιότητες:
- Μήνυμα κρυπτογραφημένο με το δημόσιο κλειδί μπορεί να αποκρυπτογραφηθεί μόνο με το ιδιωτικό κλειδί και αντίστροφα.
- Το ένα κλειδί δεν μπορεί να προκύψει από το άλλο με απλό τρόπο.
Για να αποκατασταθεί επικοινωνία με χρήση ασύμμετρης κρυπτογραφίας, ο κάθε χρήστης πρέπει να διαθέτει τα δικά του κλειδιά, ένα δημόσιο και ένα ιδιωτικό. Ο αποστολέας ενός μηνύματος πρέπει να γνωρίζει το δημόσιο κλειδί του παραλήπτη και να κρυπτογραφήσει το μήνυμα με αυτό. Ο παραλήπτης αποκρυπτογραφεί το μήνυμα με το ιδιωτικό του κλειδί. Η ασύμμετρη κρυπτογραφία προσφέρει μεγαλύτερη ασφάλεια από τη συμμετρική. Έχει όμως το μειονέκτημα ότι οι αλγόριθμοι ασύμμετρης κρυπτογράφησης είναι πολύ πιο αργοί από τους αλγόριθμους συμμετρικής κρυπτογράφησης.
Keys vs Passphrases
Θα πρέπει να γνωρίζετε ότι ο όρος κλειδί (“key”) δεν σχετίζεται με τον όρο “passphrase” ή password. Για να αντεπεξέλθουν λοιπόν σε μία ενδεχόμενη επίθεση θα πρέπει όλα τα keys να έχουν την ίδια ισχύ αντίστασης, γιατί στην αντίθετη περίπτωση ο εισβολέας θα εκμεταλλευτεί τα πλέον αδύναμα κλειδιά, διευκολύνοντας έτσι την προσπάθειά του να σπάσει το κρυπτογράφημα.
Oυσιαστικά το key θα πρέπει να είναι δύσκολα προβλέψιμο (σπάνιο). Από την άλλη μία passphrase θα πρέπει να είναι εύκολη να τη θυμάται κανείς, γι’ αυτό και οι πιθανότητες εύρεσής της είναι μεγαλύτερες. Τα περισσότερα λοιπόν software κρυπτογράφησης μετατρέπουν μία passphrase σε key, μέσω μίας διαδικασίας καλούμενη “key initialization” ή “hashing”. Καλό λοιπόν θα ήταν να αποφεύγετε κρυπτο – συστήματα που παραβλέπουν αυτό το στάδιο και χρησιμοποιούν απευθείας ένα password ως κλειδί.
One-Time-Pads
Ορισμένοι κατασκευαστές μπορεί να ισχυριστούν ότι το σύστημά τους υποστηρίζει OTP (one-time-pad), το οποίο πρακτικά είναι το πλέον ασφαλή και σχεδόν αδύνατον να “σπάσει”. Από τεχνικής άποψης, το κρυπτογραφημένο output (text) ενός τέτοιου συστήματος έχει το ίδιο μέγεθος με το plaintext (το “κείμενο” δηλαδή του πηγαίου αρχείου). Για παράδειγμα, το string “h2f” θα μπορούσε να είναι οι λέξεις “sea”, “dog”, “win” κλπ. Πριν λοιπόν οι κατασκευαστές αρχίζουν να διαφημίζουν τα προϊόντα τους βασιζόμενοι στο ότι διαθέτουν τον εν λόγω αλγόριθμο, θα πρέπει πρώτα να μας εγγυηθούν ότι η ακεραιότητά του είναι στο 100% και ότι δεν έχει γίνει καμία απολύτως αλλαγή προκειμένου να προσαρμοστεί σε κάποιο από τα προϊόντα τους.
Για να λειτουργήσει σωστά ένα σύστημα OTP, πρέπει τόσο ο αποστολέας όσο και ο παραλήπτης του κρυπτογραφημένου αρχείου να διαθέτουν το μοτίβο (pad) από τα τυχαία bits και να είναι σίγουροι ότι τα έχουν μόνο αυτοί και κανένας άλλος. Τα bits που αποτελούν το pad, δεν μπορούν να δημιουργηθούν από κάποιον αλγόριθμο, αλλά θα πρέπει να χρησιμοποιήσουμε κάποιο random bit generator (είτε software είτε hardware) και θα πρέπει να γνωρίζουμε ότι μετά την κρυπτογράφηση όσα από τα bits “περισσέψουν”, καταστρέφονται.
Και σε αυτή την περίπτωση, αρκετοί κατασκευαστές ενδέχεται να πουν ότι το προϊόν τους διαθέτει κάποιο script που δημιουργεί bits αλλά και πάλι, αυτό δεν είναι OTP. Το γεγονός αυτό, αποτελεί και το μεγαλύτερο περιορισμό των συστημάτων αυτών. Για κάθε bit πληροφορίας θα πρέπει να μεταφέρουμε και ένα bit κλειδιού κρυπτογράφησης, το οποίο όπως αναφέραμε προηγουμένως θα πρέπει να προέρχεται από ειδικό generator. Αλλά κι αν ακόμη ισχύουν όλες οι προϋποθέσεις, δεν μπορούμε να γνωρίζουμε αν για παράδειγμα ο κατασκευαστής του κλειδιού δεν κρατάει ένα αντίγραφο για τον εαυτό του, ή αν το μοιράζει σε περισσότερους παραλήπτες από αυτούς που πρέπει.
Δυσνόητοι τεχνικοί όροι
Πολλές φορές η περιγραφή που δίνεται από την κατασκευάστρια εταιρεία του προϊόντος δεν επεξηγεί ακριβώς τη χρήση και τη λειτουργικότητά του σε συνάρτηση με το σύστημα στο οποίο απευθύνεται. Η χρήση καινοτόμων τεχνικών ορολογιών, με σκοπό να κερδίσουν τις εντυπώσεις του υποψήφιου αγοραστή, καταφέρνει τις περισσότερες φορές να αποτελέσει παγίδα και κατά συνέπεια να καταλήξει σε μία άχρηστη αγορά προγράμματος.
Θα πρέπει επίσης να έχετε υπόψη σας ότι από τη στιγμή που το υλικό αγοράς στερείται ξεκάθαρης και λεπτομερούς επεξήγησης των δυνατοτήτων της εφαρμογής, αναμενόμενο είναι και το εγχειρίδιο οδηγιών χρήσης να μην είναι πληρέστερο και πιο κατανοητό. Ένας λάθος ή ελλιπής χειρισμός ενός προγράμματος, μπορεί να καταστήσει άχρηστο, ακόμα και το καλύτερο πρόγραμμα.
Secret Algorithms
Καλό θα ήταν να αποφεύγετε προγράμματα κρυπτογράφησης που χρησιμοποιούν μυστικούς αλγόριθμους. Και αυτό γιατί δεν θεωρούνται ασφαλή στην ισχυρή προστασία δεδομένων. Μία τυπική δικαιολογία για τη μη αποκάλυψη του αλγορίθμου είναι ότι οι hackers μπορούν να σπάσουν το source του προγράμματος. Κάτι τέτοιο αν και ισχύει, δεν θα πρέπει ωστόσο να παραλείπεται και το εξής: οι ίδιοι hackers πραγματοποιώντας τη γνωστή μέθοδο παραβίασης reverse engineering, μπορούν να σπάσουν τους κωδικούς και να δουν τη λειτουργία του προγράμματος. Κάτι τέτοιο ωστόσο δεν αποτελεί πρόβλημα στην περίπτωση που ο αλγόριθμος είναι ισχυρός και η ενσωμάτωσή του έχει γίνει σωστά.
Η χρήση λοιπόν ενός γνωστού και έμπιστου αλγόριθμου (προερχόμενου από εταιρεία που ειδικεύεται στην κρυπτογράφηση) και που καθιστά το source code διαθέσιμο, είναι στοιχεία που αποδεικνύουν ότι ο κατασκευαστής του προϊόντος είναι σίγουρος για την ακεραιότητα και την ασφάλεια του. Σημειώνεται επίσης ότι ακόμα και αν ο αλγόριθμος είναι καλός, μία κακή εγκατάσταση (λάθος κλείδωμα) τον καθιστά άχρηστο. Από την άλλη, ένα ισχυρό lock το οποίο οι attackers δεν μπορούν να σπάσουν ακόμα και αν ανακαλύψουν τους εσωτερικούς του μηχανισμούς, αποτελεί ισχυρό παράγοντα ασφάλειας.
Eπαναστατικές μέθοδοι
Ιδιαίτερη προσοχή θα πρέπει να δίνεται σε εταιρείες software που υποστηρίζουν ότι ανακάλυψαν έναν καινοτόμο και επαναστατικό τύπο κρυπτογράφησης. Ο λόγος είναι ότι οι πραγματικά “επαναστατικοί” αλγόριθμοι δεν αποδεικνύονται παρά έπειτα από χρόνιες αναλύσεις και έρευνες, έχοντας περάσει το στάδιο της δοκιμασίας τους με χειροπιαστά αποτελέσματα. Συνεπώς, η δύναμη ενός κρυπτογραφικού συστήματος, δεν αποδεικνύεται παρά με το πέρασμα του χρόνου.
Όταν πρωτοβγαίνουν στην αγορά, το αποτέλεσμα που δίνουν δεν είναι παρά ένα ρίσκο για τον καταναλωτή, όπως ακριβώς τα νέα φάρμακα. Στη δεύτερη όμως περίπτωση, ο καταναλωτής αντιλαμβάνεται άμεσα την αποτελεσματικότητα γιατί έχει επιπτώσεις στην υγεία του, ενώ στην περίπτωση των καινοτόμων εφαρμογών, δεν έχει καμία ένδειξη ότι οι πληροφορίες που μεταφέρει δεν είναι τόσο μυστικές όσο θα ήθελε.
Καλό επίσης θα ήταν να αποφεύγονται εφαρμογές που υποστηρίζουν ότι χρησιμοποιούν τεχνολογικά επαναστατικές μεθόδους υπολογισμού (κυτταρικά αυτόματα, γενετικούς αλγόριθμους, θεωρία του χάους, νευρωνικά δίκτυα κλπ.). Το ότι κάποιο πρόγραμμα χρησιμοποιεί διαφορετική μέθοδο υπολογισμού, δεν σημαίνει ότι είναι και πιο ασφαλές. Και τέλος, στην περίπτωση που αναγράφεται η ένδειξη ότι το πρόγραμμα έχει αναλυθεί και εξετασθεί από ειδικούς ασφαλείας χωρίς να υπάρχουν αποδεδειγμένες αναφορές (βιβλιογραφία), το πιθανότερο είναι ότι η εν λόγω αναφορά στηρίζεται απλά στα γράμματα που τη συνθέτουν και πουθενά αλλού.
Απαραβίαστοι αλγόριθμοι
Πολλοί κατασκευαστές προγραμμάτων υποστηρίζουν ότι τα προγράμματα τους είναι απαραβίαστα. Κάτι τέτοιο δεν αποτελεί παρά καθαρή τακτική marketing δεδομένου ότι κανένας αλγόριθμος δεν είναι απαραβίαστος. Ακόμα και οι πλέον επιτυχημένοι αλγόριθμοι είναι ευπαθείς στα γνωστά brute-force attacks. Και βέβαια, πολλά εξαρτώνται και από τι τελικά θεωρούμε παραβίαση ασφαλείας του συστήματος, και ειδικά ως προς το τελευταίο, εάν είναι τεχνικά εξοπλισμένο ώστε να αντεπεξέλθει σε ενδεχόμενες παραβιάσεις.
Military Grade – exported by USA
Όταν το πρόγραμμα έχει την ένδειξη ότι εξάγεται από τις Ηνωμένες Πολιτείες, θα πρέπει να αμφιβάλετε για το ποιόν ασφαλείας που παρέχει. Και αυτό γιατί η ισχυρή κρυπτογράφηση στις ΗΠΑ θεωρείται ύποπτη έως και επικίνδυνη συνδεόμενη με κατασκοπεία. Για το λόγο αυτό, προτού εξαχθεί από τη χώρα, απαιτείται έγκρισή από το US Bureau of Export Administration, που βρίσκεται υπό τον έλεγχο του Υπουργείου Εμπορίου. Οι πιθανότητες λοιπόν έγκρισής του, συνεπάγονται το γεγονός ότι ο εν λόγω αλγόριθμος θα είναι σίγουρα αδύναμος ή “crackable” (διαρρηκτός).
Επίσης πολλές εταιρείες εφαρμογών κρυπτογράφησης, διαφημίζουν ότι το προϊόν τους είναι στρατιωτικού βαθμού (“military grade”). O όρος αυτός απλά σημαίνει, ότι το πρόγραμμα αυτό έχει δοκιμαστεί από στρατιωτικές δυνάμεις και έχει εγκριθεί για χρήση του σε περίοδο πολέμου για υψηλόβαθμη κρυπτογράφηση. Κάτι για το οποίο θα πρέπει να αναρωτηθούν σοβαρά οι καταναλωτές, είναι ότι η ιδιότητα αυτή του προϊόντος δεν δύναται να αποδειχθεί, εφόσον καμιά στρατιωτική επιχείρηση (καμιάς χώρας) δεν αποκαλύπτει τα μέσα κρυπτογράφησης που χρησιμοποιεί! Με ποια λογική λοιπόν κάτι που θεωρείται απόρρητο, είναι βέβαιο ότι έχει δοκιμαστεί σε στρατιωτικές συνθήκες; Μάλλον με καμία και…μάλλον πρέπει να αποφευχθεί!
Τι εστί κρυπτογράφηση;
Πρόκειται για μία αρκετά παλιά (από τα ρωμαϊκά κιόλας χρόνια) επιστήμη που βασίζεται στα μαθηματικά για την κωδικοποίηση και αποκωδικοποίηση των δεδομένων. Ο σκοπός των διαφόρων μεθόδων κρυπτογράφησης είναι να εξασφαλίζουν το απόρρητο στις ψηφιακές επικοινωνίες αλλά και στην αποθήκευση ευαίσθητων πληροφοριών. Το αρχικό μήνυμα ονομάζεται απλό κείμενο (plaintext), ενώ το ακατάληπτο μήνυμα που προκύπτει από την κρυπτογράφηση του απλού κειμένου ονομάζεται κρυπτογράφημα (ciphertext) Αποκρυπτογράφηση είναι η ανάκτηση του απλού κειμένου από το κρυπτογράφημα με την εφαρμογή αντίστροφου αλγορίθμου.
Η κρυπτογραφημένη επικοινωνία είναι αποτελεσματική, όταν μόνο τα άτομα που συμμετέχουν σε αυτή μπορούν να ανακτήσουν το περιεχόμενο του αρχικού μηνύματος. Ο αλγόριθμος κρυπτογράφησης είναι μια μαθηματική συνάρτηση που χρησιμοποιείται για την κρυπτογράφηση και αποκρυπτογράφηση πληροφοριών. Όσο αυξάνει ο βαθμός πολυπλοκότητας του αλγορίθμου, τόσο μειώνεται η πιθανότητα να τον διαβάλλει κάποιος. Ο αλγόριθμος κρυπτογράφησης λειτουργεί σε συνδυασμό με ένα κλειδί (key), για την κρυπτογράφηση του απλού κειμένου. Το ίδιο απλό κείμενο κωδικοποιείται σε διαφορετικά κρυπτογραφήματα όταν χρησιμοποιούνται διαφορετικά κλειδιά.