Κρυπτογράφηση συστημάτων αρχείων

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

Ειδικά κρυπτογραφικά συστήματα αρχείων

Τα κρυπτογραφικά συστήματα αρχείων είναι εξειδικευμένα συστήματα αρχείων που είναι σχεδιασμένα εξαρχής ώστε να παρέχουν δυνατότητες κρυπτογράφησης και ασφάλειας. Συνήθως κρυπτογραφούν όλα τα δεδομένα που περιέχουν, συμπεριλαμβανομένων των μεταδεδομένων. Συχνά αποτελούν ένα στρώμα πάνω από ήδη υπάρχοντα συστήματα αρχείων γενικής χρήσης και μπορούν να προσφέρουν πιο προχωρημένες λειτουργίες, όπως η διαψεύσιμη κρυπτογράφηση. Συνήθως δεν εξαρτώνται από το σύστημα αρχείων ή το λειτουργικό σύστημα. Τέτοια παραδείγματα είναι το σύστημα TrueCrypt  και το σύστημα BestCrypt .

Διαψεύσιμη κρυπτογράφηση

Ο όρος διαψεύσιμη κρυπτογράφηση εισήχθη από τον Τζούλιαν Ασάντζ κατά τη δημιουργία του προγράμματος Rubberhose  που κυκλοφόρησε για πρώτη φορά το 1997 και περιγράφεται αναλυτικά στο άρθρο. Η διαψεύσιμη κρυπτογράφηση δίνει σε κάποιον χρήστη που έχει ιδιωτικά κρυπτογραφημένα δεδομένα τη δυνατότητα είτε να αρνηθεί με πειστικό τρόπο την ύπαρξή τους είτε αλλιώς να δείξει ότι υπάρχουν περισσότερες από μια ερμηνείες των κρυπτογραφημένων δεδομένων.
Συνήθως το κρυπτοκείμενο 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, το οποίο δεν μπορεί να κρυπτογραφήσει τους καταλόγους συστήματος.