![]() |
Το λήμμα παραθέτει τις πηγές του αόριστα, χωρίς παραπομπές. |
Το άρθρο αυτό περιγράφει τις μεθόδους και τις τεχνικές κρυπτογράφησης που χρησιμοποιούνται με σκοπό την απόκρυψη του περιεχομένου, δηλαδή των αρχείων και καταλόγων, ενός συστήματος αρχείων. Τα ιδιωτικά δεδομένα που περιέχονται στο σύστημα αρχείων πρέπει να προστατευθούν από πιθανές επιθέσεις κάποιου αντιπάλου ο οποίος ίσως να αποκτήσει πρόσβαση μέσω δικτύου στον υπολογιστή ή μπορεί να αποκτήσει το ίδιο το φυσικό μέσο (π.χ. το σκληρό δίσκο) στο οποίο βρίσκεται το σύστημα αρχείων. Ο αντίπαλος θα πρέπει να μην μπορεί να διαβάσει τα ιδιωτικά δεδομένα (ή ακόμα καλύτερα δεν θα πρέπει να μπορεί να διαπιστώσει καν την ύπαρξή τους).
Η κρυπτογράφηση συστημάτων αρχείων διακρίνεται από την κρυπτογράφηση σε επίπεδο δίσκου, στην οποία κάθε bit δεδομένων, συμπεριλαμβανομένων όλων των προγραμμάτων, που αποθηκεύεται σε έναν δίσκο κρυπτογραφείται. [1]
Η κρυπτογράφηση υποστηρίζεται με διάφορους τρόπους, είτε απευθείας από τον πυρήνα:
είτε μέσω του συστήματος FUSE, με ειδικά κρυπτογραφικά συστήματα αρχείων όπως τα CryptoFS, EncFS. [3][4]
Με τη χρήση του Encrypting File System (EFS), τα Windows περιλαμβάνουν τη δυνατότητα κρυπτογράφησης δεδομένων απευθείας σε τόμους που χρησιμοποιούν το σύστημα αρχείων NTFS, αλλά αυτή η δυνατότητα δεν υπάρχει για συστήματα αρχείων FAT ή FAT 32. Το EFS είναι διαθέσιμο στα Windows XP Professional, Windows 2000 Server, Windows 2000 Professional και στα νεότερα λειτουργικά συστήματα της Microsoft.
Οι χρήστες μπορούν να κρυπτογραφήσουν αρχεία και φακέλους, εάν ορίσουν ένα χαρακτηριστικό στο παράθυρο διαλόγου Ιδιότητες (Properties) του αντικειμένου. Η τεχνολογία κρυπτογράφησης που χρησιμοποιείται είναι δημόσιου κλειδιού και τρέχει σαν μια υπηρεσία του συστήματος διάφανη για το χρήστη. Ένα ζεύγος κλειδιών, ιδιωτικό και δημόσιο κλειδί, δημιουργείται τυχαία, όταν ο χρήστης κρυπτογραφεί το πρώτο του αρχείο. Αυτό το ζεύγος κλειδιών χρησιμοποιείται για την κρυπτογράφηση και την αποκρυπτογράφηση των κρυπτογραφημένων αρχείων. Αν ένας χρήστης που προσπαθεί να προσπελάσει ένα κρυπτογραφημένο αρχείο NTFS διαθέτει το ιδιωτικό κλειδί που σχετίζεται με αυτό το αρχείο, τότε ο χρήστης μπορεί να ανοίξει το αρχείο και να εργαστεί με αυτό με διάφανο τρόπο. Ένας χρήστης χωρίς το ιδιωτικό κλειδί για το αρχείο συναντά άρνηση πρόσβασης.
Για τη μέγιστη προστασία των κρυπτογραφημένων δεδομένων, συνίσταται οι χρήστες να εξάγουν τα πιστοποιητικά και τα ιδιωτικά κλειδιά τους σε αφαιρούμενα μέσα (π.χ. σε εξωτερικούς δίσκους, δισκέτες, οπτικούς δίσκους) και το ιδιωτικό κλειδί να καταργείται από τον υπολογιστή, όταν αυτός δεν χρησιμοποιείται. Όταν ο χρήστης πρέπει να αποκτήσει πρόσβαση στα κρυπτογραφημένα αρχεία, το ιδιωτικό κλειδί μπορεί εύκολα να εισαχθεί από τα αφαιρούμενα μέσα. Η ενέργεια αυτή προστατεύει από εισβολείς που χρησιμοποιούν τον υπολογιστή και προσπαθούν να αποκτήσουν πρόσβαση στο ιδιωτικό κλειδί. Στην αντίθετη περίπτωση που τα κλειδιά αποθηκεύονται στο ίδιο υπολογιστή, τότε η προστασία είναι μόνο τόσο ισχυρή όσο ο κωδικός πρόσβασης του χρήστη.
Σε κάποιες εκδόσεις του συστήματος υπάρχει η δυνατότητα να δοθεί πρόσβαση και σε άλλους χρήστες του υπολογιστή, ώστε πολλοί χρήστες να μοιράζονται τα ίδια κρυπτογραφημένα δεδομένα. Το σύστημα έχει κάποιους περιορισμούς όπως για παράδειγμα το γεγονός ότι δεν μπορούν να κρυπτογραφηθούν αρχεία και κατάλογοι του συστήματος ούτε συμπιεσμένοι κατάλογοι.
Οι αλγόριθμοι κρυπτογράφησης που μπορούν να χρησιμοποιηθούν εξαρτώνται από την έκδοση του λειτουργικού συστήματος και είναι γενικά οι AES, Triple DES, DESX, ενώ στις νεότερες εκδόσεις Windows 7 και Windows Server 2008 μπορεί να χρησιμοποιηθεί και συνδυασμός των αλγορίθμων AES, SHA, και ECC.
Τα κρυπτογραφικά συστήματα αρχείων είναι εξειδικευμένα συστήματα αρχείων που είναι σχεδιασμένα εξαρχής ώστε να παρέχουν δυνατότητες κρυπτογράφησης και ασφάλειας. Συνήθως κρυπτογραφούν όλα τα δεδομένα που περιέχουν, συμπεριλαμβανομένων των μεταδεδομένων. Συχνά αποτελούν ένα στρώμα πάνω από ήδη υπάρχοντα συστήματα αρχείων γενικής χρήσης και μπορούν να προσφέρουν πιο προχωρημένες λειτουργίες, όπως η διαψεύσιμη κρυπτογράφηση. Συνήθως δεν εξαρτώνται από το σύστημα αρχείων ή το λειτουργικό σύστημα. Τέτοια παραδείγματα είναι το σύστημα TrueCrypt [10] και το σύστημα BestCrypt [11].
Ένα επιτιθέμενος αντίπαλος μπορεί να δοκιμάσει διάφορους τρόπους για να διαβάσει τα ιδιωτικά δεδομένα:
Ο όρος διαψεύσιμη κρυπτογράφηση εισήχθη από τον Τζούλιαν Ασάντζ κατά τη δημιουργία του προγράμματος Rubberhose [12] που κυκλοφόρησε για πρώτη φορά το 1997 και περιγράφεται αναλυτικά στο άρθρο[13]. Η διαψεύσιμη κρυπτογράφηση δίνει σε κάποιον χρήστη που έχει ιδιωτικά κρυπτογραφημένα δεδομένα τη δυνατότητα είτε να αρνηθεί με πειστικό τρόπο την ύπαρξή τους είτε αλλιώς να δείξει ότι υπάρχουν περισσότερες από μια ερμηνείες των κρυπτογραφημένων δεδομένων.
Συνήθως το κρυπτοκείμενο c = E(m, k), όπου E ο αλγόριθμος κρυπτογράφησης και k το κλειδί κρυπτογράφησης, αποκρυπτογραφείται σε ένα μόνο καθαρό κείμενο m και επομένως αν αποκρυπτογραφηθεί, ο χρήστης της κρυπτογράφησης δεν μπορεί να ισχυριστεί ότι είχε κρυπτογραφήσει ένα διαφορετικό μήνυμα. Η διαψεύσιμη κρυπτογράφηση όμως επιτρέπει στους χρήστες της να αποκρυπτογραφήσουν το ίδιο κρυπτοκείμενο c παράγοντας ένα διαφορετικό (αθώο αλλά πιστευτό) καθαρό κείμενο m' με ένα διαφορετικό κλειδί k' και να επιμένουν ότι αυτό ήταν που είχαν κρυπτογραφήσει. Ο αντίπαλος που έχει στα χέρια του το κρυπτοκείμενο δεν έχει τα μέσα για να αντιληφθεί ότι το καθαρό κείμενο που του παρουσιάζεται είναι αναληθές ή ελλιπές και δεν μπορεί να φτάσει στο πραγματικό καθαρό κείμενο χωρίς τη συνεργασία του χρήστη.
Αυτό σημαίνει ότι αν ένας αντίπαλος αποκτήσει φυσική πρόσβαση στο σύστημα αρχείων, μπορεί ίσως να υποψιαστεί ότι περιέχει κρυπτογραφημένα δεδομένα, αλλά θα είναι αδύνατο να αποδείξει την ύπαρξή τους και ακριβώς πόσα είναι αυτά, χωρίς τη συνεργασία του χρήστη. Ο χρήστης έτσι έχει τη δυνατότητα να αποκρύπτει την ύπαρξη ενός τμήματος των ιδιωτικών δεδομένων, το οποίο αυτός θεωρεί το πιο σημαντικό, θυσιάζοντας ίσως ένα μέρος τους, που πιθανό να είναι λιγότερο ευαίσθητα ή παραπλανητικά δεδομένα.
Η διαψεύσιμη κρυπτογράφηση είναι σχεδιασμένη για να παρέχει κάποια άμυνα για την περίπτωση που ο αντίπαλος όχι μόνο έχει αποκτήσει πρόσβαση στα κρυπτογραφημένα δεδομένα, αλλά έχει και τη δυνατότητα να ασκεί κάποια πίεση στον αρχικό χρήστη για να τον αναγκάσει να αποκαλύψει τα κλειδιά της κρυπτογράφησης.
Το Rubberhose, η πρώτη εφαρμογή που αποθήκευε δεδομένα με διαψεύσιμη κρυπτογράφηση, δε δέσμευε τους χρήστες του στη χρήση ενός συγκεκριμένου συστήματος αρχείων, αλλά ήταν ένα στρώμα πάνω από το σύστημα αρχείων του λειτουργικού συστήματος (π.χ. UFS, ext2, FAT ή FAT32). Για την κρυπτογράφηση των δεδομένων ο χρήστης επιλέγει κάποιον ή κάποιους από τους αλγορίθμους DES, 3DES, IDEA, RC5, RC6, Blowfish, Twofish, CAST.
Στις περιπτώσεις που περιγράφηκαν παραπάνω, συνηθίζεται να είναι κρυπτογραφημένο ένα διαμέρισμα του σκληρού δίσκου (π.χ. ο κατάλογος /home στα συστήματα Unix), ενώ κάποια άλλα διαμερίσματα δεν είναι. Ένας επιτιθέμενος αντίπαλος μπορεί να αντλήσει πληροφορίες για τα περιεχόμενα του κρυπτογραφημένου καταλόγου (π.χ. μια λίστα με τα ονόματα των αρχείων) αν διαβάσει ένα άλλο, μη κρυπτογραφημένο σύστημα αρχείων στον ίδιο υπολογιστή (όπως /var, /tmp, /swap). Ή μπορεί να διαβάσει τα μεταδεδομένα κάποιων συστημάτων αρχείων, που μερικές φορές αποθηκεύονται σε μορφή καθαρού κειμένου. Μία λύση είναι να κρυπτογραφούνται και τα υπόλοιπα διαμερίσματα του δίσκου, ή ακόμα και ολόκληρος ο δίσκος.
Σημειώνεται ότι παρόμοιο πρόβλημα υπάρχει και στο EFS της Microsoft, το οποίο δεν μπορεί να κρυπτογραφήσει τους καταλόγους συστήματος.