Datensicherung mit verschlüsselten DVDs

Über dieses Dokument

Wer kennt es nicht das leidige Thema der Datensicherung? Immer mehr Daten müssen gegen einen Ausfall der Festplatte gesichert werden. CD- und DVD-Brenner sind heute gut bezahlbar und gerade wiederbeschreibare Medien bieten sich für eine regelmässige Sicherung an.

Einziger Haken: schreibt man den Inhalt seiner Festplatte - wohlmöglich mit allen privaten Dateien wie e-Mails, Briefen und so weiter - ohne weiteres auf eine CD oder DVD, kann sie jeder lesen, der pysikalischen Zugriff auf das Medium bekommt. Schutzmechanismen, die die Daten im normalen Betrieb sichern, wie Benutzerverwaltung und dazugehörige Passwörter, greifen hier nicht mehr. Das bedeutet, dass das Backup genau so sicher ist, wie der Ort, an dem es aufbewahrt wird.

Für Linuxbenutzer kann das keine akzeptable Lösung sein, darum stellt dieses Dokument eine Möglichkeit vor, CDs oder DVDs zu verschlüsseln und somit gegen den Zugriff Fremder zu schützen.

Vorbereitung

Momentan ist je nach Distribution noch etwas Handarbeit nötig, um das System auf die Verschlüsselung vorzubereiten.

Es gibt prinzipiell mehrere Verfahren, verschlüsselte Dateisysteme unter Linux anzulegen. In diesem HOWTO wird dazu loop-AES verwendet. Das hat folgende Gründe:

Die folgende Passage lehnt sich an das "Encrypted Root Filesystem HOWTO" an. Möglicherweise sind diese Schritte nicht bei allen Distributionen nötig! In jedem Fall muss aber loop-AES sowohl vom Kernel, als auch von den Programmen losetup, mount und umount (Teil von util-linux) unterstützt werden.

 

Installieren eines angepassten Kernels 2.4.23

Zunaechst lade das loop-AES Packet herunter und entpacke es:

cd /usr/src
wget http://loop-aes.sourceforge.net/loop-AES/loop-AES-v2.0b.tar.bz2
tar -xvjf loop-AES-v2.0b.tar.bz2

Dann muss der Kernel heruntergeladen werden, falls noch nicht geschehen, und der loop-AES-Patch eingespielt werden.

wget http://ftp.kernel.org/pub/linux/kernel/v2.4/linux-2.4.23.tar.bz2
tar -xvjf linux-2.4.23.tar.bz2
cd linux-2.4.23
patch -Np1 -i ../loop-AES-v2.0b/kernel-2.4.23.diff

Der folgende Befehl legt die Tastaturbelegung fest:

dumpkeys | loadkeys -m - > drivers/char/defkeymap.c

Die folgenden Optionen muessen bei der Kernel-Konfiguration gesetzt werden:

make menuconfig

    
	Block devices  --->

        <*> Loopback device support
        [*]   AES encrypted loop device support (NEW)

Installiere den Kernel und starte das System mit dem modifizierten Kernel neu.

Installieren von util-linux-2.12

Die Programme losetup, mount und umount sind Teil des Packets util-linux. Sie muessen ebenfalls gepatcht werden:

wget http://ftp.cwi.nl/aeb/util-linux/util-linux-2.12.tar.gz
tar -xvzf util-linux-2.12.tar.gz
cd util-linux-2.12
patch -Np1 -i ../loop-AES-v2.0b/util-linux-2.12.diff

Kompiliere und installiere die angepassten Programme:

./configure && make lib mount
cp -f mount/losetup /sbin
rm -f /usr/share/man/man8/losetup.8.gz
cp -f mount/losetup.8 /usr/share/man/man8

mv /bin/mount /bin/mount.org
cp -f mount/mount /bin/mount
mv /bin/umount /bin/umount.org
cp -f mount/umount /bin/umount

Ein Aufruf von make tests stellt sicher, dass die Installation erfolgreich war.

Als letztes benötigen wir noch das Tool aespipe, zu finden unter http://loop-aes.sourceforge.net/aespipe/. Dieses wird wie üblich entpackt, kompiliert und installiert. Es dient dazu, beliebigen Input einzulesen und verschlüsselt wieder auszugeben. Das hat den Vorteil, dass die Länge des Inputs vorher nicht bekannt sein muss!

Image erstellen

Sind diese Vorbereitungen getroffen, stehen uns alle notwendigen Mittel zur Verfügung.

Angenommen, die zu sichernden Dateien liegen im Verzeichnis /backup. Dann erstellt folgender Befehl ein verschlüsseltes CD-Image von diesem Verzeichnis und speichert es als backup.iso im aktuellen Verzeichnis ab:

mkisofs -r /backup | /usr/local/bin/aespipe -e AES128 -T >backup.iso

Hierbei wird das AES Verfahren mit einer Schlüssellänge von 128 Bit verwendet. aespipe fragt nach einem Passwort, dass mindestens 20 Zeichen lang sein muss.

Die Länge des Images wird nicht geprüft! Man sollte also selbst darauf achten, dass die Kapazität des Mediums nicht überschritten wird (DVD: 4.377 GB).

Trockenübung

Bevor wir das Image brennen, machen wir noch einen Test. Ein CD-Image lässt sich problemlos über das loopback-device mounten, das gilt natürlich auch für unser verschlüsseltes Image:

mount -t iso9660 backup.iso /mnt/cdrom -o loop=/dev/loop0,encryption=AES128

Der Parameter encryption=AES128 stellt dabei sicher, dass das Image entschlüsselt wird. Wird das richtige Passwort eingegeben, sollte der Inhalt des Image jetzt unter /mnt/cdrom zu finden sein. War dieser Test erfolgreich, hängen wir das Image wieder aus und können es nun endlich auf sein Medium brennen.

umount /mnt/cdrom

Image brennen

Das Image kann wie jedes andere auf ein entsprechendes Medium gebannt werden. Bei einer CD-R oder einer DVD-R/RW ist cdrecord das Standardprogramm. /dev/brenner ist hier das device des Brenners

cdrecord -v dev=/dev/brenner backup.iso

Bei DVD+R/RW Rohlingen empfiehlt sich das Programm growisofs aus dem dvd+rw-tools Packet. Dieses Programm ist eigentlich ein Frontend zu mkisofs, wird aber auch zum Brennen von Images benutzt. In neueren Versionen werden auch DVD-R/RW unterstützt.

growisofs -Z /dev/brenner=backup.iso

Backup mounten

Will man sein Backup nun lesen, muss man es mittels des loopback-device einhängen. Entweder man mountet es direkt mit mount:

mount -t iso9660 /dev/cdrom /mnt/cdrom -o loop=/dev/loop0,encryption=AES128

Oder man fügt in der Datei /etc/fstab einen Eintrag wie den folgenden ein:

/dev/cdrom  /mnt/cryptoCD iso9660  noauto,ro,user,loop=/dev/loop0,encryption=AES128  0 0

Jetzt reicht ein einfaches mount /mnt/cryptoCD, um eine verschlüsselte CD zu mounten.

 

Zusammenfassung


Image erstellen:
mkisofs -r /backup | /usr/local/bin/aespipe -e AES128 -T >backup.iso

Image auf DVD brennen:
growisofs -Z /dev/brenner=backup.iso

CD/DVD mounten:
mount -t iso9660 /dev/cdrom /mnt/cdrom -o loop=/dev/loop0,encryption=AES128

 

Kai Wurm, Dezember 2003