Αυτό είναι το χρονικό διάστημα:
2011-05-25 19:48:54
2011-05-26 00:00:16
που έζησα από τις χειρότερες ώρες της ζωής μου.
Μα ας πάρουμε τα πράγματα από την αρχή.
Εδώ και μερικές μέρες χρησιμοποιώ το pamusb ως εναλλακτικό τρόπο για να κάνω login στο σύστημά μου. Διαθέτω μονάχα ένα laptop, στο οποίο πλέον έχω περάσει σχεδόν ότι χρειάζομαι καθημερινά τα τελευταία 5 χρόνια! Είναι το μοναδικό μου σύστημα και για λόγους ασφαλείας έχω το /home σε encrypted partition via luks (cryptsetup).
Το pamusb ακολουθεί μια λογική με την οποία σε κάθε επιτυχημένο login παράγονται δύο νέα μοναδικά κλειδιά. Ένα αποθηκεύεται στον δίσκο - ένα στο usb. Μαζί με τα στοιχεία του usb (label/serial) γίνεται η ταυτοποίηση μεταξύ του laptop και του usb για να κάνω το login χωρίς να δίνω κωδικό. Μάλιστα έχω τροποποιήσει λίγο το σύστημά μου, ώστε να γράψει στο /etc το κλειδί.
Μέχρι εδώ καλά.
Σκέφτηκα να δοκιμάσω να προσθέσω το κλειδί αυτό στο encryption.
έτσι κάθε φορά που θα κάνω login θα αλλάζει ταυτόχρονα και το κλειδί της κρυπτογράφησης του luks.
Ναι ε ?
Και ποιος είπε ότι το κλειδί αποθηκεύεται στον δίσκο ? Το κλειδί, αποθηκεύεται στα slots και δεν είναι δυναμικό - δεν είναι αρχείο - όπως νόμιζα! Πίστευα ότι το κλειδί αποθηκεύεται κι αυτό στο δίσκο κι ένα στο usb stick για να κάνει την ταυτοποίηση με βάση τα file paths που έχεις δώσει.
Παίζονται αρκετά κατάφερα να βάλω το κλειδί σε slot, αλλά εν τέλη φαίνεται να μην παίζει ο κωδικός που δίνω με το χέρι στο boot!
Κάνω reboot για να δω ότι παίζει και φυσικά δεν παίζει,
κάνω login με το usb και ταταταταμ ! αλλάζει το pamusb φυσικά τα κλειδιά που χρησιμοποιεί.
Εγώ στο cryptsetup έχω δώσει να διαβάζει το path του αρχείου από το usb, κι έχει επίσης αλλάξει (γίνει overwrite) το κλειδί στο δίσκο.
ΑΛΛΑ στο key-slot ΔΕΝ έχει αλλάξει.
Το κλειδί που πέρασα είναι random generate, πλέον έχει αλλάξει σε usb και δίσκο και δεν το έχω!
Επίσης όπως προανέφερα έχω αφαιρέσει (κατά λάθος) το κλειδί που δίνω χειροκίνητα για το cryptsetup.
Με λίγα λόγια, έχω δύο τυχαία και δυναμικά κλειδιά τα οποία δεν συμβιβάζουν με το τυχαίο κλειδί που βρίσκεται στο key slot του luks.
Κι εάν ακόμα δεν το πιάσατε, την γ@μ#σ@ (με το συμπάθιο).
5 χρόνια δουλειάς, φωτογραφίες - σχεδόν τα πάντα έχουν κρυπτογραφηθεί με τυχαίο κλειδί που φυσικά δεν υπάρχει κανένας τρόπος να παράγω.
Καταλαβαίνεται πως ήμουν; Σας έχει τύχει ποτέ να σας πει γκόμενα ότι έχει καθυστέρηση μια βδομάδα; Κάπως έτσι.
Τα πράγματα δεν φαινόντουσαν καλά, η ψυχολογία είχε φτάσει στο ναδίρ!
Κάπου εκεί έβαλα κι ένα διπλό ουίσκι, σκέτο και το κατέβασα χωρίς δεύτερη σκέψη.
Μία φωνή μου έλεγε: format - format - format
Πραγματικά ένιωσα πάρα πολύ άσχημα και πάρα πολύ χάλια.
Έχω στείλει και κάτι sms στην κοπελιά μου, του στυλ: το τέλος του κόσμου έχει έρθει και διάφορα τέτοια. Δεν ξέρω τι άλλο μπορώ να κάνω ή ποιον να πάρω τηλέφωνο ή σε ποιον να στείλω email.
Τα σκάτωσα.
Κοιτώντας τον δίσκο μου, είδα ότι έχω έναν κατάλογο backup, μα σε αυτόν ΔΕΝ παίρνω αντίγραφο το /home γιατί πολύ απλά δεν χωράει. Τα /boot /etc/ usr/etc /var/spool/cron παίρνω μονάχα και μάλιστα τα παίρνω ως snapshot. Κι εκεί ρε γμτ άτυχος. Το script είναι μια παραλαγή του abs4snap ώστε να κρατά τα τελευταία 100 και το τρέχω ανά ώρα cron.hourly και στο boot.
Τι να σου κάνει; Τίποτα.
ΤΙ ΤΙΠΟΤΑ ?
μα προηγουμένως δεν είπα ότι έχω τροποποιήσει το pamusb για να γράφει το κλειδί στον κατάλογο etc ? δεν είπα ότι το τρέχω στο boot και κάθε μια ώρα ?
Και ΝΑΙ, το abs4snap είχε ήδη πάρει αντίγραφο το αρχικό τυχαίο κλειδί !
το αντέγραψα κάτω από το /root κι έκανα την δοκιμή. Κάπου εκεί σταύρωσα τα δάχτυλα κι έκανα και μια σταυροκοπιά (μπας …) και τρέχω την εντολή.
Περιμένω να τελειώσει και …
έπαιξε !!!!
Ναι, ναι ναι σχεδόν 4 ώρες μετά κατάφερα να κάνω decrypt το /home μου.
Να βρω όλα τα αρχεία μου
Ναι ναι ναι ναι, αυτή η αίσθηση είναι απίστευτη!
Φυσικά ξεκινώ να πάρω full backup το /home στο root filesystem για να ξανα-στήσω το encryption από την αρχή, σωστά και χωρίς πειράματα.
Αυτό το απόγευμα δεν νομίζω να το ξεχάσω πολύ εύκολα.
Ηθικό δίδαγμα #1: Μην κάνετε πειράματα σε παραγωγικά μηχανήματα. Πρώτα όλα τα test κάπου που δεν σας νοιάζει.
Ηθικό δίδαγμα #2: Πάρτε backup, ότι μπορείτε. Μπορείτε να χρησιμοποιήσετε το script μου για να πάρετε μια ιδέα, ή βρείτε κάποιον άλλο τρόπο. Είχα ξεχάσει ότι το abs4snap έτρεχε! Μα με έσωσε με την λογική των snapshots βρήκα το συγκεκριμένο αρχείο/κλειδί πριν αλλάξει, πριν γίνει overwrite.