Don't understand german? Read or subscribe to my english-only feed.

grml-crypt: verschlüsselte Dateien schnell und einfach

Was mich an USB-Sticks schon immer gestört hat, war die Tatsache, dass ein gestohlener/verlorener Stick nicht nur Datenverlust bedeutet, sondern dass die Daten auch in die falschen Hände fallen können, sofern sie nicht dementsprechend gesichert waren. GPG ist unangenehm, wenn man den privaten Schlüssel nicht auf einem anderen Medium transportieren kann bzw. bei sich hat. Darum wollte ich eine ordentliche[tm] Lösung: DM-Crypt und Cryptsetup-LUKS.

Gebi aus dem grml-Team hat schon seit längerem cryptsetup mit LUKS-Unterstützung paketiert und kennt sich in diesem Gebiet sehr gut aus. Ich hab ihn also gebeten etwas dementsprechendes zu machen, das Ergebnis ist grml-crypt. grml-crypt ist ein Wrapper rund um cryptsetup-luks und macht es wunderbar einfach in seiner Anwendung. Hier einmal eine Demonstration wie man es nutzt:

Ich möchte eine verschlüsselte Datei namens verschluesselte_datei auf meinem USB-Stick (via /mnt/external1 auf grml eingebunden) erstellen, also rufe ich grml-crypt mit der Option ‘format’ und der zu erstellenden Datei sowie (optional) dem Mountpoint auf:

root@grml ~ # grml-crypt format /mnt/external1/verschluesselte_datei /mnt/test 
Initialising file with SECURE mode (taking /dev/urandom as source, this could take some time)

WARNING!
========
This will overwrite data on /dev/loop1 irrevocably.

Are you sure? (Type uppercase yes): YES
Enter LUKS passphrase: 
Enter LUKS passphrase: 
key slot 0 unlocked.
Successully created vfat on encrypted /dev/loop1

Hat ja tadellos geklappt, schauen wir uns das also mal an und kopieren eine Datei hinein und unmounten /mnt/test nach erfolgreicher Aktion:

root@grml ~ # mount | grep test
/dev/mapper/grml-crypt_verschluesselte_datei on /mnt/test type vfat (rw)
root@grml ~ # cp big_files /mnt/test 
root@grml ~ # ls -lah /mnt/test
total 19K
drwxr-xr-x   2 root root  16K Aug 10 12:21 .
drwxr-xr-x  10 root root 1.0K Aug 10 11:38 ..
-rwxr-xr-x   1 root root 1.8K Aug 10 12:21 big_files
root@grml ~ # grml-crypt stop /mnt/test 

Die Datei ist wirklich verschlüsselt, wer sie knacken möchte kann das ja mal probieren ;-) – hier aber nur mal ein kurzer Kontrollblick:

root@grml ~ # ls -lah /mnt/external1/verschluesselte_datei 
-rwxr-xr-x  1 grml grml 10M Aug 10 12:21 /mnt/external1/verschluesselte_datei
root@grml ~ # file /mnt/external1/verschluesselte_datei
/mnt/external1/verschluesselte_datei: data

Und was macht man mit der Datei nun wenn man sie nutzen will? Mehr als folgender Befehl plus Eingabe der Passphrase ist nicht notwendig:

root@grml ~ # grml-crypt start /mnt/external1/verschluesselte_datei /mnt/test
Enter LUKS passphrase: 
key slot 0 unlocked.
root@grml ~ #

Und nach vollendeter Tat ein:

root@grml ~ # grml-crypt stop /mnt/test/

Und das war es auch schon!

grml-crypt bekommt man in Gebis Debian-Repository, es benötigt sh-lib (>= 1.02.00), cryptsetup-luks, realpath und dmsetup (was es nicht bei Debian gibt bekommt man bei Gebi). Es funktioniert nicht nur auf grml sondern auf jedem Debian-System und jedem anderen System das die benötigte Software mitbringt. Und mit der nächsten grml-Release braucht man dann nur mehr eine grml-CD oder einen bootfähigen USB-Stick mit grml. ;-)

2 Responses to “grml-crypt: verschlüsselte Dateien schnell und einfach”

  1. Karl Says:

    Habe ich das richtig verstanden, dass diese Datei mit der Größe der hineinkopierten Daten mitwächst? Also ein zusätzliches virtuelles Laufwerk, dass sich dynamisch vergrößert?

    Cool, wenn’s so ist.

    Und: wie schaut es aus, wenn ich von diesem virtuellen Laufwerk wieder Daten lösche? Wird diese verschlüsselte Date auch wieder entsprechend kleiner?

  2. mika Says:

    > Habe ich das richtig verstanden, dass diese Datei mit der Größe der
    > hineinkopierten Daten mitwächst? Also ein zusätzliches virtuelles
    > Laufwerk, dass sich dynamisch vergrößert?

    Nope, das ist ein ganz normales Dateisystem. Per Default hat es 10MB und da kannst dann reinkopieren was rein passt. ;-) Und wenn dir 10MB zu klein sind, musst du es halt beim ‘grml-crypt format’ mit der Option ‘-s’ dementsprechend abändern.