Ανέκαθεν ένα από τα μεγαλύτερα παράπονα, που σχετίζονταν με τα Windows αφορούσε στην προσφερόμενη ασφάλεια. Ας δούμε με μεγαλύτερη λεπτομέρεια μια από τις πλέον ενδιαφέρουσες κινήσεις, που πραγματοποίησε η εταιρεία, για την παροχή της πολυπόθητης ασφάλειας στους χρήστες.
Encrypted File System στα Windows: Ασφάλεια για όλους
Ένα από τα βασικά στοιχεία στο οποίο πάντα στηριζόταν η κριτική, που πραγματοποιούν οι υποστηρικτές του Linux, στα Windows, αφορά στην παρεχόμενη ασφάλεια από το λειτουργικό. Η Microsoft προσπαθεί συνεχώς να βελτιώσει το σύστημα της, το οποίο κακά τα ψέματα βρίσκεται στο στόχαστρο όλων.
Ένα από τα στοιχεία που αξίζει να αναφέρουμε και το οποίο αφορά στα προσωπικά αρχεία του χρήστη είναι το EFS. Το EFS (Encrypted File System) αποτελεί ένα βασικό στοιχείο της νέας έκδοσης του NTFS που έχει ολοκληρώσει η Microsoft στα Windows. Θα πρέπει να σημειώσουμε ότι η υποστήριξη για το EFS γίνεται απευθείας από τον πυρήνα του λειτουργικού, κάτι που έχει σαν αποτέλεσμα να εγκαθίσταται αυτόματα σε κάθε σύστημα Windows με NTFS.
Το EFS χρησιμοποιεί έναν συνδυασμό συμμετρικού κλειδιού και κρυπτογράφησης δημοσίου κλειδιού. Ενα τυχαίο κλειδί κρυπτογράφησης (File Encryption Key – FEK) δημιουργείται σε κάθε περίπτωση που ένας χρήστης επιλέγει να κρυπτογραφήσει ένα αρχείο. Με τη χρήση του FEK, το αρχείο κρυπτογραφείται με τη χρήση του DESX, το οποίο είναι αλγόριθμος 128 Bit για τις αμερικάνικες εκδόσεις των Windows
Με αυτό τον τρόπο το FEK κρυπτογραφείται μαζί με το δημόσιο κλειδί του χρήστη, το οποίο προέρχεται από το πιστοποιητικό κρυπτογράφησης, που δημιουργείται αυτόματα την πρώτη φορά που χρησιμοποιούμε το EFS και αποθηκεύεται στο αρχείο. Επιπλέον το FEK κρυπτογραφείται με το δημόσιο κλειδί, του αντίστοιχου recovery agent. Και σε αυτή την περίπτωση το FEK αποθηκεύεται στο αρχείο. Η πραγματοποίηση της αποκρυπτογράφησης πραγματοποιείται με τη χρήση του δημοσίου κλειδιού, που είναι αποθηκευμένο στο αντίστοιχο αρχείο κατά περίπτωση.
Το EFS παρέχει πολλά χαρακτηριστικά όπως:
Προστασία αρχείων με ευαίσθητα δεδομένα
- Η κρυπτογράφηση και η αποκρυπτογράφηση πραγματοποιείται on the fly, χωρίς να είναι απαραίτητο ο χρήστης να δώσει κάποιο password, καθώς μόνο ο χρήστης που έχει πραγματοποιήσει την κρυπτογράφηση μπορεί να αποκρυπτογραφήσει ένα αρχείο.
- Η κρυπτογράφηση ενός folder έχει σαν αποτέλεσμα να κρυπτογραφούνται και όλα τα στοιχεία που περιλαμβάνονται σε αυτόν.
- Η μετακίνηση ενός κρυπτογραφημένου αρχείου, εκτός του φακέλου μέσα στον οποίο δημιουργήθηκε δεν αναιρεί την κρυπτογράφησή του.
- Το EFS είναι σε θέση να κρυπτογραφήσει τα προσωρινά αρχεία των εφαρμογών, που μπορούν να το αξιοποιήσουν ή αυτών που αντιγράφουν τα δικαιώματα του αρχικού αρχείου στα προσωρινά.
- Το EFS δεν αποθηκεύει κανένα από τα κλειδιά στον σκληρό δίσκο.
- Αποτρέπει την κρυπτογράφηση των αρχείων συστήματος, αλλά και των αντίστοιχων folders, καθώς διαθέτουν το χαρακτηριστικό System.
- Για τη διαχείριση πολλαπλών αρχείων υπάρχει η εφαρμογή CIPHER, Η οποία τρέχει σε command line. Βέβαια δεν θα πρέπει να θεωρήσουμε ότι το EFS αποτελεί πανάκεια, κάτι που οφείλεται κυρίως στο σχεδιασμό του. Ετσι διαθέτει και κάποιους περιορισμούς όπως:
- Το EFS απαιτεί την ύπαρξη ενός recovery agent.
- Η αντιγραφή αρχείων από NTFS σε κάποιο άλλο file system με τη χρήση των συνηθισμένων εντολών (copy, move κ.α.) έχει σαν αποτέλεσμα την αποθήκευση του αρχείου ως αποκρυπτογραφημένο.
- Το EFS δεν υποστηρίζει κρυπτογράφηση για πολλαπλούς χρήστες
- Αν ένας απομακρυσμένος χρήστης ανοίξει έναν κρυπτογραφημένο αρχείο μέσω του δικτύου, αυτό μεταφέρεται αποκρυπτογραφημένο στο σύστημά του.
- Η κρυπτογράφηση ενός φακέλου δεν εμποδίζει την εμφάνιση των αρχείων που περιέχει αλλά ούτε και τη διαγραφή τους
Συμβουλές προς τους Χρήστες των Windows
Σε γενικές γραμμές υπάρχουν κάποιες βασικές οδηγίες, στις οποίες μπορούμε να στηριχθούμε για να δούμε αν πρέπει να χρησιμοποιήσουμε ή όχι το EFS. Χαρακτηριστικό παράδειγμα χρήσης του EFS αποτελούν οι φορητοί υπολογιστές, οι οποίοι περιέχουν ευαίσθητα δεδομένα και οι οποίοι μπορούν να κλαπούν σχετικά εύκολα. Ένα άλλο παράδειγμα χρήσης του EFS είναι οι κοινόχρηστοι υπολογιστές. Με τη χρήση του EFS αποτρέπεται η πρόσβαση μη εξουσιοδοτημένων χρηστών σε συγκεκριμένα αρχεία.
Ξεπερνώντας εγγενή προβλήματα
Καθώς το EFS αποτελεί χαρακτηριστικό που ενσωματώθηκε στα Windows, δεν το εκμεταλλεύονται όλες οι εφαρμογές. Πολλές από αυτές μάλιστα δεν μπορούν να αναγνωρίσουν ότι χρησιμοποιούν κάποιο κρυπτογραφημένο αρχείο, έχοντας σαν αποτέλεσμα την πραγματοποίηση λειτουργιών πάνω τους χωρίς ασφάλεια. Για να μπορέσουμε να μην έχουμε τέτοια προβλήματα μπορούμε να ακολουθήσουμε συγκεκριμένες τακτικές: Αποφυγή αποθήκευσης αντιγράφων κειμένου των κρυπτογραφημένων αρχείων: Στην περίπτωση που υπάρξει κάποιο πρόβλημα στο σύστημα, το EFS διαθέτει ένα ολοκληρωμένο σχήμα ανάκτησης δεδομένων, το οποίο δημιουργεί ένα backup του αρχείου που είναι στη διαδικασία κρυπτογράφησης ή αποκρυπτογράφησης.
Το εν λόγω αρχείο μάλιστα είναι σε μορφή plain text. Από τη στιγμή που το αρχείο κρυπτογραφηθεί ή αποκρυπτογραφηθεί με ασφάλεια το αρχείο backup διαγράφεται. Υπάρχει περίπτωση όμως το συγκεκριμένο αρχείο να αφήσει κάποια στοιχεία στο δίσκο, που να μπορέσουν να χρησιμοποιηθούν για την επαναφορά του.
Για να μπορέσουμε να αποφύγουμε αυτό το πρόβλημα, μπορούμε να μεταφέρουμε τη χρήση του EFS σε επίπεδο folder. Με αυτό τον τρόπο μπορούμε να δημιουργήσουμε ένα κρυπτογραφημένο folder και στη συνέχεια να δημιουργούμε τα αρχεία που χρειαζόμαστε απευθείας σε αυτόν. Τα εν λόγω αρχεία κρυπτογραφούνται αυτόματα και δεν δημιουργείται κάποιο αρχείο plain text.
Προσωρινά αρχεία εφαρμογών
Πολλές εφαρμογές δημιουργούν προσωρινά αρχεία στο directory του αρχείου που επεξεργαζόμαστε. Εκτός και η εφαρμογή δηλώνει σαφώς ότι μπορεί να εκμεταλλευθεί τις δυνατότητες του EFS και κρυπτογραφεί τα προσωρινά αρχεία, αυτά αντιμετωπίζονται σαν απλά χωρίς καμιά κρυπτογράφηση ακόμα και αν το αρχικό αρχείο διέθετε. Και σε αυτή την περίπτωση η αντιμετώπιση του προβλήματος γίνεται με το να θέσουμε το EFS σε επίπεδο folder, οπότε όλα τα αρχεία που δημιουργούνται μέσα σε αυτό είναι κρυπτογραφημένα εξ αρχής.
Φάκελοι χρηστών
Τα νέα έγγραφα του Office δημιουργούνται απευθείας στο folder %UserProfile%\MyDocuments. Για την καλύτερη δυνατή ασφάλεια των δεδομένων του κάθε χρήστη είναι να χρησιμοποιούμε το EFS στο επίπεδο αυτού του folder. Εκτός από αυτό όμως θα πρέπει να χρησιμοποιήσουμε το EFS και για να κρυπτογραφήσουμε και τα directories c:\temp και %UserProfile%\LocalSettings\Temp, στα οποία αποθηκεύονται προσωρινά αρχεία πολλών εφαρμογών.
Backup δεδομένων
Οι περισσότερες εφαρμογές backup δεν είναι σε θέση να αντιληφθούν την ύπαρξη του EFS με αποτέλεσμα να παίρνουν backup και αρχεία που είναι κρυπτογραφημένα βάσει του EFS.
Η δημιουργία ενός ‘’πράκτορα”
Το EFS απαιτεί την ύπαρξη κάποιου λογαριασμού χρήστη, ο οποίος θα είναι ο Recovery Agent των δεδομένων όλων των κρυπτογραφημένων αρχείων ενός συγκεκριμένου επιπέδου σε ένα οργανισμό. Αυτό μπορεί να τεθεί σε κάθε επίπεδο χρήστη, φτάνει να μπει στο αντίστοιχο group policy. Από τη στιγμή, που ο συγκεκριμένος χρήστης έχει τη δυνατότητα να αποκρυπτογραφήσει οποιοδήποτε αρχείο από αυτά που έχει το δικαίωμα να παρέμβει, θα πρέπει ο εν λόγω λογαριασμός να υπόκειται σε συγκεκριμένες προδιαγραφές.
Εξ ορισμού, ο Recovery Agent είναι ο Domain Administrator για ένα δίκτυο, το οποίο ακολουθεί το μοντέλο των domains, ή ο τοπικός Administrator, όταν έχουμε να κάνουμε με Workgroup ή συστήματα stand alone. Για να υπάρχει όμως καλύτερος καταμερισμός των δικαιωμάτων, θα ήταν καλό, ο ρόλος του recovery agent να διατεθεί (μέσω delegation) σε έναν ειδικό λογαριασμό, ο οποίος έχει δημιουργηθεί για αυτό και μόνο το λόγο. Η θέσπιση ενός recovery agent μπορεί να πραγματοποιηθεί σε οποιοδήποτε επίπεδο Group Policy (site, domain, OU), επιτρέπονται τοπικό έλεγχο στην περίπτωση που απαιτείται γρήγορη αποκρυπτογράφηση των αρχείων.
Εξάγοντας τα απαραίτητα στοιχεία
Η απώλεια των στοιχείων του λογαριασμού recovery μπορεί να αποβεί μοιραία. Για να αποφύγουμε λοιπόν αυτό το πρόβλημα, εκτός από τη δημιουργία του αντίστοιχου λογαριασμού, θα ήταν φρόνιμο να εξάγουμε το πιστοποιητικό αποκρυπτογράφησης του recovery agent και του ιδιωτικού του κλειδιού σε μια δισκέτα και να την αποθηκεύσουμε σε ασφαλή χώρο. Το πιστοποιητικό και το ιδιωτικό κλειδί, δεν είναι απαραίτητα σε καθημερινή χρήση παρά μόνο για περιπτώσεις ανάγκης.
Επιπλέον θα πρέπει να αναφέρουμε ότι όταν εξάγουμε το πιστοποιητικό και το κλειδί, υπάρχει η δυνατότητα να τα προστατεύσουμε με ένα ιδιαίτερα ισχυρό password, αποτρέποντας τη μη εξουσιοδοτημένη χρήση τους. Για την εξαγωγή του πιστοποιητικού και του κλειδιού του EFS, θα πρέπει να κάνουμε log-on στο σύστημα με το λογαριασμό του χρήστη Recovery agent και να ακολουθήσουμε τα ακόλουθα βήματα: Κάνουμε κλικ στο Start και επιλέγουμε Run.
Στο μενού διαλόγου που παρουσιάζεται πληκτρολογούμε mmc.exe. Μόλις ανοίξει η νέα Microsoft Management Console από το μενού Console επιλέγουμε Add/Remove Snap -in. Στην επόμενη οθόνη κάνουμε κλικ στο κουμπί Add. Επιλέγουμε το Snap-in με την ονομασία Certificates. Σε αυτό το σημείο, το σύστημα θα μας ρωτήσει αν το Snap-in θα είναι για τον προσωπικό μας λογαριασμό, για κάποια υπηρεσία ή για το λογαριασμό του υπολογιστή. Η επιλογή μας είναι το My User Account. Κάνουμε κλικ διαδοχικά στα κουμπιά Add, Close και OK. Ανοίγουμε τη λίστα των πιστοποιητικών κάνοντας κλικ στο σύμβολο συν (+) που βρίσκεται στο αριστερό τμήμα του Certificates node.
Επεκτείνουμε το πεδίο Personal κάνοντας κλικ πάλι στο (+). Κάνουμε κλικ στο φάκελο folder κάτω από το Personal. Στο δεξί τμήμα της οθόνης μετακινούμαστε σε ένα τέτοιο σημείο, ώστε να είναι εμφανής η στήλη Intended Purpose. Επιλέγουμε το certificate, το οποίο έχει ως Intended Purpose το Encrypting File System. Σε αυτό το σημείο κάνουμε δεξί κλικ στο certificate και επιλέγουμε κατά σειρά All Tasks και Export.
Αυτό έχει σαν αποτέλεσμα να ξεκινήσει ο Certificate Export Wizard. Κάνουμε κλικ στο Next. Στο μενού διαλόγου που ακολουθεί με την ονομασία Export Private key επιλέγουμε Yes, export the private key. Κάνουμε κλικ στο Next. Στην οθόνη Export File Format ενεργοποιούμε την επιλογή Enable Strong Protection. Αν η μεταφορά του κλειδιού πραγματοποιείται σε τελείως διαφορετική τοποθεσία ή εν γένει εκτός site, ενεργοποιούμε και την επιλογή Delete the private key if export is successful. Κάνουμε κλικ στο Next.
Εισάγουμε ένα ιδιαίτερα ισχυρό password και το αποδεχόμαστε. Αυτό θα προστατεύσει το πιστοποιητικό από χρήστές που δεν έχουν δικαιώματα πρόσβασης σε αυτό, οι οποίοι θα μπορούσαν να το χρησιμοποιήσουν και να αποκρυπτογραφήσουν όλα τα αρχεία EFS που έχουν κρυπτογραφηθεί με αυτό. Κάνουμε κλικ στο Next. Στο επόμενο μενού, με την ονομασία File to Export, επιλέγουμε ένα περιγραφικό όνομα, αλλά και την τοποθεσία που θα αποθηκευθεί το αρχείο. Αυτές οι λεπτομέρειες είναι ιδιαίτερα σημαντικές, ώστε να μην μπερδευτεί ποτέ το τι είναι το συγκεκριμένο αρχείο.
Για παράδειγμα μπορούμε να χρησιμοποιήσουμε το όνομα του χρήστη, την ημερομηνία που πραγματοποιήθηκε η εξαγωγή και να συμπεριλάβουμε το EFS στο label του αρχείου. Κάνουμε κλικ στο Next. Μόλις ολοκληρωθεί η διαδικασία, θα πάρουμε ένα μήνυμα, το οποίο μας ενημερώνει ότι η εξαγωγή ολοκληρώθηκε επιτυχημένα. Κάνουμε κλικ στο OK για να επιστρέψουμε στη Microsoft Management Console.
Λύσεις σε προβλήματα
Όπως έχουμε προαναφέρει, το EFS διαθέτει και κάποιες εγγενείς αδυναμίες, οι οποίες όμως μπορούν να αντιμετωπιστούν με την κατάλληλη στρατηγική. Χαρακτηριστικό παράδειγμα αποτελεί, ότι κάποιος χρήστης των Windows μπορεί να διαγράψει τα αρχεία που έχει κρυπτογραφήσει ένας άλλος χρήστης στο ίδιο σύστημα.
Το EFS δεν παρέχει καμιά προστασία ενάντια στη μετονομασία ή τη διαγραφή αρχείων σε ένα folder. Αν κάποιος χρήστης έχει πλήρη πρόσβαση (Full Control) σε ένα directory μπορεί να μετονομάσει ή να διαγράψει τα αρχεία που έχει κρυπτογραφήσει ένας άλλος χρήστης. Παρόλα αυτά το EFS δεν επιτρέπει την αντιγραφή ή τη μετακίνηση αρχείων σε διαφορετικό directory, με αποτέλεσμα να μην μπορεί να τα μεταφέρει σε κάποιο άλλο file system, το οποίο δεν υποστηρίζει EFS. Ο μόνος τρόπος αντιμετώπισης σε αυτή την περίπτωση είναι η χρήση των κατάλληλων NTFS permissions σε επίπεδο αρχείων και directory, που θα εμποδίσουν ένα χρήστη να μεταποιήσει ή να διαγράψει τα αρχεία κάποιου άλλου.