Βασικά ο τίτλος δεν είναι πολύ κατάλληλος. Ήθελα λοιπόν σε ενα USB stick να μπορώ κάποια αρχεία να τα έχω κρυπτογραφημένα και να μπορώ χωρίς κόπο να τα βλέπω και απο Linux και απο Windows.
- Μέσα απ'το linux χρειαζόμαστε το πακέτο cryptsetup:
apt-get install cryptsetup
- Φτιάχνουμε ενα αρχείο 200 περίπου Mb (ή όσης χωρητικότητας πιστεύουμε ότι θα χρειαστούμε):
dd if=/dev/urandom of=/tmp/encrypted.vol bs=1024 count=200000
- Κάνουμε αντιστοίχιση του πρώτου ελεύθερου loop device με το αρχείο που δημιουργήσαμε:
export LOOP=`losetup -f` losetup $LOOP /tmp/encrypted.vol
⚠ | Χρησιμοποιούμε τη σωστή απόστροφο: ` |
- Κρυπτογραφούμε όλο το αρχείο encrypted.vol με 256bit aes key και χρησιμοποιούμε LUKS standard format. Θα μας ζητήθεί να ορίσουμε δύο φορές ενα passphrase. Καλό θα είναι να είναι κάτι περίπλοκο και μεγάλο καθώς με αυτό το passphrase θα αποκρυπτογραφούμε το αρχείο κάθε φορα.
cryptsetup -c aes -s 256 --verify-passphrase luksFormat $LOOP
- Αποκρυπτογραφούμε το αρχείο και το δίνουμε ένα προσωρινό όνομα με το οποίο θα το αναγνωρίζει ο device mapper:
cryptsetup luksOpen $LOOP koukou
- Φτιάχνουμε το filesystem. Διαλέγουμε vfat για μπορούμε να το βλέπουμε και απο windows
mkdosfs /dev/mapper/koukou
- Το κάνουμε mount κάπου:
mkdir -p /mnt/koukou mount /dev/mapper/koukou /mnt/koukou
- Τώρα μπορούμε να ρίξουμε μέσα στο /mnt/koukou όλα τα αρχεία μας τα οποία θέλουμε κρυπτογραφημένα. Μόλις μεταφέρουμε εκεί τα αρχεία μας, κάνουμε unmount το device koukou και το αποδεσμέυουμε απο τον device mapper:
umount /mnt/koukou cryptsetup luksClose koukou
- Αφαιρούμε τη συσχέτιση του encrypted.vol με το loop device:
losetup -d $LOOP
- Τώρα λοιπόν έχουμε ενα encrypted image (/tmp/encrypted.vol) με τα αρχεία μας. Το αντιγράφουμε μέσα στο usb stick (πχ /dev/sda1 mounted στο /media/disk):
mv /tmp/encrypted.vol /media/disk
- Μέσα στο USB stick εχω τοποθετήσει το παρακάτω script για να κάνει αυτόματα όλη τη διαδικασία (δίνει read write δικαιώματα στον χρήστη με uid 1000 , αυτό το αλλάζετε όπως σας βολεύει). To script πρέπει να το τρέχετε σαν root μέσα απο το mount point του usb stick.
cat > /media/disk/mount.sh << EOF #!/bin/sh DEVICEPATH=`dirname $0`/encrypted.vol MNTDIR=`mktemp -d` LOOPDEV=`losetup -f` losetup "$LOOPDEV" "$DEVICEPATH" cryptsetup luksOpen "$LOOPDEV" flashaki mount -t vfat -o nodev,noexec,nosuid,uid=1000,gid=100,umask=007,codepage=850,iocharset=utf8,shortname=mixed,quiet /dev/mapper/flashaki "$MNTDIR" echo "-------------------------------------------" echo "Encrypted container mounted at $MNTDIR" echo echo "Press any key to unmount" echo "-------------------------------------------" read key umount "$MNTDIR" rmdir "$MNTDIR" cryptsetup luksClose flashaki losetup -d $LOOPDEV echo "done" EOF chmod +x /media/disk/mount.sh
Θέλουμε λοιπόν τα αρχεία μας αυτα να τα βλέπουμε απο κάθε windows μηχανάκι:
- Κατεβάζουμε το πάρα πολύ ωραίο open source freeOTFE. Εγώ προτίμησα τα binary files κι όχι το full installation package. Το τοποθετούμε μές στο usb και το κάνουμε unzip:
cd /media/disk mkdir FreeOTFE cd !$ unzip /path/to/FreeOTFE_4_00.zip
Τώρα απο οποιοδήποτε Windows μπορουμε να τρέχουμε το freeotfe.exe που βρίσκεται στο USB stick μας και να κάνουμε mount το αρχείο encrypted.vol. Το freeotfe εχει την επιλογή να ανοίξει με portable mode, το οποίο σημαίνει οτι δεν χρειάζεται να κάνουμε καμία εγκατάσταση στα Windows όπου το τρέχουμε.
Ο λόγος που επέλεξα αυτόν τον τρόπο ήταν απλά επειδή μου δίνει την δυνατότητα να δώ τα αρχεία μου απο οποιοδήποτε pc βρίσκεται κοντά μου την ώρα που το χρειάζομαι.