Daten verschlüsseln
Fehlendes Makro
Das Makro „Fortgeschritten“ konnte nicht gefunden werden.
Fehlendes Makro
Das Makro „Fehlerhaft“ konnte nicht gefunden werden.
* [1]: [:Paketquellen freischalten: Bearbeiten von Paketquellen] * [2]: [:Pakete installieren: Installation von Paketen] * [3]: [:Terminal: Ein Terminal öffnen] * [4]: [:Editor: Einen Texteditor öffnen]
- Verschlüsselung des Systems
- Vorbereitung: Paketinstallation
- Einrichtung des Systems
- Anlegen der Partitionen für /home, /tmp ...
- Daten umverteilen
- Konfiguration der Cryptopartitionen
- Partitionen verschlüsseln
- Eintrag der neuen Dateisysteme
- Alte Daten zur Seite räumen
- Erster Start mit Verschlüsselung
- Verbleibende Datenspuren vernichten
- Schlüssel ändern
- Vereinfachung: Schlüsseldiskette
- Verschlüsselung einzelner Dateien
- Veraltet: cryptoloop
Wenn auf der Festplatte des Rechners sensible Daten liegen, bietet es sich an, diese zu verschlüsseln. Prinzipiell lassen sich einzelne Dateien verschlüsseln, wirkliche Sicherheit bietet aber nur die weitgehende Verschlüsselung des Systems.
Verschlüsselung des Systems¶
Weitgehende Sicherheit ist nur erreichbar, wenn man alle Stellen bedenkt, an denen die zu schützenden Daten auftauchen können, und sei dies auch nur vorübergehend. "Gelöschte" Daten lassen sich nämlich mit entsprechendem Aufwand durchaus auslesen. Traditionell verhindert man dies, indem man die Daten beim Löschen mehrfach überschreibt. Dies ist bei modernen Dateisystemen jedoch prinzipbedingt nicht möglich.
Folgende Bereiche müssen deshalb verschlüsselt werden:
die Daten selber, z.B. die Partition mit den persönlichen Ordnern (/home)
die Auslagerungspartition (swap)
die temporären Dateien (/tmp)
die Dateien in /var, wo z.B. Druckaufträge zwischengespeichert sind.
Vorbereitung: Paketinstallation¶
Das folgende Paket muss installiert [2] werden:
cryptsetup (universe, [1])
Einrichtung des Systems¶
Um einerseits unnötig viele Passworteingaben beim Systemstart zu vermeiden, andererseits aber die Datensicherung nicht zu erschweren, verwenden wir eine Partition für /home und eine weitere gemeinsame für /tmp und /var. Das hat den Vorteil, dass man auch ohne größere Anpassungen beim Systemstart nur zwei zusätzliche Passwörter, und nicht gleich drei eingeben muss.
Besteht für /home noch keine eigene Partition, muss dies geändert werden. Für /tmp und /var muss ebenfalls eine Partition angelegt werden.
Anlegen der Partitionen für /home, /tmp und /var¶
Diese Schritte müssen von einer Live-CD aus erledigt werden, da die Systempartition betroffen ist. Sie werden mit dem graphischen Partitionierungsprogramm GParted vorgenommen. Beim Start mit der Live-CD muss ausnahmsweise ein Parameter eingegeben werden:
live noswap
verhindert die Nutzung von Swappartitionen, denn dies könnte die Bearbeitung der Partitionstabelle stören.
Verkleinerung der Systempartition¶
Zuerst muss die Systempartition verkleinert werden. Fünf GB sind meist angemessen, sofern nicht bereits mehr Platz auf dem Gerät belegt ist.
Verschieben der Swappartition¶
Die Leistung leidet, wenn die Swappartition zu weit hinten auf der Festplatte liegt. Sie ist also direkt an das Ende der Systempartition zu verschieben
Anlage der neuen Partitionen¶
Zwei Partitionen sind nun anzulegen:
Für die gemeinsame Partition für /tmp und /var genügen etwa ein bis zwei GB. Diese Partition sollte möglichst nach dem Swapbereich liegen.
Für die spätere /home-Partition kann man den restlichen verfügbaren Platz verwenden.
Normalerweise wird man für beide Partitionen das ext3-Dateiystem wählen.
Die Bezeichnungen der System- und der neuen Partitionen sollte man sich notieren. Auch die nächsten Schritte werden mit der Live-CD erledigt, also noch nicht neustarten.
Daten umverteilen¶
Die Daten, die derzeit noch auf der alten Partition liegen, müssen jetzt an den richtigen Ort verschoben werden. Diese Schritte finden von einer Live-CD aus und im Terminal statt.
Partitionen einbinden¶
/dev/hda1 sei die Systempartition, /dev/hda5 die Partition für /tmp und /var, /dev/hda6 sei die neue /home-Partition. Die Verzeichnisse zum Einbinden werden im Terminal [3] erzeugt mit
sudo mkdir -p /mnt/{root,crypt,home}
Die Partitionen werden eingehängt mit
sudo mount /dev/hda1 /mnt/root sudo mount /dev/hda5 /mnt/crypt sudo mount /dev/hda6 /mnt/home
Daten verschieben¶
Falls sich das /home-Verzeichnis noch nicht auf der separaten Partition befindet, wird sein Inhalt so kopiert:
sudo cp -a /mnt/root/home/* /mnt/home/
Die Verzeichnisse /tmp und /var werden so kopiert bzw. angelegt:
sudo mkdir -p /mnt/crypt/tmp2 sudo chmod 1777 /mnt/crypt/tmp2 sudo cp -a /mnt/root/var/* /mnt/crypt/
/tmp wird nicht kopiert, sondern neu angelegt, weil der Inhalt beim Systemstart ohnehin automatisch gelöscht wird. Es wird also der Inhalt von /var nach /mnt/crypt kopiert und in diesem Verzeichnis noch ein Ordner /tmp2 angelegt, welcher später mit /tmp verlinkt wird. Der Ordner heißt /tmp2, da es bereits einen Ordner /tmp im neuen /var-Verzeichnis gibt.
Den Inhalt der Partitionen kann man sich so anzeigen lassen:
ls /mnt/crypt ls /mnt/home
Dort sollten sich die Verzeichnisse /tmp2 und der ursprüngliche Inhalt von /var bzw. alle persönlichen Ordner der Benutzer befinden.
[Falls vorhanden: /home aus der fstab entfernen]¶
Wurde bereits früher eine separate Partition für /home verwendet, darf diese beim nächsten Start nicht eingebunden werden. Der Eintrag in /etc/fstab ist also in einem Editor mit Root-Rechten [4] auszukommentieren.
Damit ist dieser Schritt erledigt. Nun sollte wieder das normale System gestartet werden. Nicht in der graphischen Oberfläche einloggen, sondern mit
Fehlendes Makro
Das Makro „Tasten“ konnte nicht gefunden werden.
auf eine Konsole wechseln und dort anmelden.
Konfiguration der Cryptopartitionen¶
Die zu verschlüsselnden Partitionen sind in der Datei /etc/crypttab gelistet, die in einem Editor mit Root-Rechten [4] bearbeitet werden kann. Außer der Datenpartition wird auch die Swappartition hier gelistet.
# <target device> <source device> <key file> <options> crypt /dev/hda5 none vol_id home /dev/hda6 none vol_id swap0 /dev/hda2 /dev/urandom swap
An erster Stelle wird der gewünschte Name des verschlüsselten Gerätes eingetragen, an zweiter Stelle die zu verschlüsselnde Partition bzw. das zu verschlüsselnde Volume, falls man EVMS verwendet. Die zusätzlichen Optionen für den Swap geben an, dass als Schlüssel eine Zufallszahl verwendet und das verschlüsselte Gerät nach Einrichtung als Swap formatiert werden soll.
Partitionen verschlüsseln¶
Beim ersten Mal legen wir das Cryptogerät noch von Hand an, um eine doppelte Passwortabfrage zu erhalten. Später beim automatischen Start der Verschlüsselung wird das Passwort natürlich nur einmal pro Partition abgefragt. Das wäre jetzt im Fall eines Vertippers fatal, also:
sudo cryptsetup create -y crypt /dev/hda5 sudo cryptsetup create -y home /dev/hda6
Jetzt kommt der abenteuerliche Teil: die folgenden Befehle wandeln die bestehenden Partitionen um. Sie dürfen dabei nicht eingebunden sein. Die enthaltenen Dateisysteme samt Inhalt sind danach über das verschlüsselte Gerät unversehrt zugänglich.
sudo dd if=/dev/hda5 of=/dev/mapper/crypt sudo dd if=/dev/hda6 of=/dev/mapper/home
Das Umwandeln kann abhängig von der Größe der umzuwandelnden Partitionen und der Performance der eingesetzten Hardware ziemlich lange dauern. Beispiel: crypt (23 GB) und home (260 GB), bei meinem Rechner eine Bearbeitung von 4,2 MB/s für die 23 GB und 3,1 MB/s für die 260 GB macht eine Gesamtzeit des Prozesses von etwa '''25,5 Stunden''' (scheint so dass größere Partitionen langsamer verarbeitet werden). Nun hängt die Rate der bearbeiteten MBs pro Sekunde natürlich stark von eurer Hardware ab. Also sollte man das ganze mit Bedacht starten. Lieber vorm schlafen gehen und daran denken das man am morgigen Tage villeicht auch noch nicht an seinen Rechner kann. ''(Ergänzung von tobitious)'' Man braucht eigentlich nicht die komplette Platte lowlevel zu kopieren, das dauert erstens sehr lange und zweitens werden Fragmentierung und leere Blöcke auch 1:1 kopiert, was man eigentlich nicht will. Besser ist: von /home und /var vorher ein Backup auf Dateisystemebene mit tar oder cpio zu machen (man kann das Archiv z.B. unter /root/ erstellen lassen), anschliessend mit mkfs.ext3 auf den Zielpartitionen /dev/mapper/crypt und /dev/mapper/home ein Filesystem anzulegen es zu mounten und mit tar bzw. cpio das Backuparchiv dorthin zu entpacken. ''(Ergänzung von mdkuser)''
Nun sollte bei Zugriff auf die "originale" Partition nur noch Datenmüll zu sehen sein, die alten Inhalte sind über /dev/mapper/home zugänglich. Wir testen nun die Korrektheit der umgewandelten Partition mit
sudo fsck /dev/mapper/crypt sudo fsck /dev/mapper/home
Zur Sicherheit können wir die Partition auch schon einmal einbinden, um ihre Inhalte zu betrachten:
sudo mount /dev/mapper/crypt /mnt sudo mount /dev/mapper/home /home
Eintrag der neuen Dateisysteme¶
In der /etc/fstab, mit einem Editor mit Root-Rechten[4] zu bearbeiten, sollten nun noch Einträge für die neuen oder geänderten Partitionen wie folgt erstellt bzw. angepasst werden:
/dev/mapper/swap0 none swap sw 0 0 /dev/mapper/crypt /var ext3 defaults 0 2 /dev/mapper/home /home ext3 defaults 0 2
Alte Daten zur Seite räumen¶
Nun müssen noch die alten Daten aus dem Weg geräumt werden, damit auf die neuen, verschlüsselten Daten zugegriffen werden kann. Hierzu starten wir noch einmal eine Live-CD und binden die Systempartition ein:
mount /dev/hda1 /mnt
Zur Sicherheit benennen wir die alten, unverschlüsselten Daten erst mal um, statt sie gleich zu löschen. Sollte irgend etwas doch nicht funktionieren, ist der Weg zurück so besonders einfach. Lediglich das beim Systemstart ohnehin leere /tmp wird sogleich gelöscht. Dann werden leere Verzeichnisse bzw. Links auf die verschlüsselten Daten erstellt.
sudo mv /mnt/home /mnt/noenc-home sudo mkdir /mnt/home sudo rm -rf /mnt/tmp sudo ln -s /var/tmp2 /mnt/tmp sudo mv /mnt/var /mnt/noenc-var
Im Ordner /var, wo die Crypt-Partition eingehängt wird, müssen auf jeden Fall noch die Ordner lock, run und tmp angelegt und mit den nötigen Zugriffsrechten versehen werden (andernfalls kommt es zu Fehlern beim Booten):
sudo mkdir -p /mnt/var/lock sudo chmod 1777 /mnt/var/lock sudo mkdir -p /mnt/var/run sudo chmod 755 /mnt/var/run sudo mkdir -p /mnt/var/tmp sudo chmod 1777 /mnt/var/tmp
Es ist wichtig das /var direkt in ein Verzeichnis gemounted wird. Seit Dapper gibt es sonst Probleme, da Dapper auf /var gewisse Aktionen ausführt, bevor die Crypt-Partitionen eingehängt werden. Ist /var ein Symlink, kommt es an dieser stelle sonst zu Problemen. Siehe auch [http://forum.ubuntuusers.de/topic/34490/]
Erster Start mit Verschlüsselung¶
Beim nächsten Start des installierten Systems wird nach dem Passwort für die verschlüsselten Partitionen gefragt. Wenn man sich vertippt, hat man Pech gehabt und landet auf einer Konsole. Wenn man hier
/etc/init.d/cryptdisks restart
eingibt, kann man die Passworteingaben wiederholen. Nach Druck auf
Fehlendes Makro
Das Makro „Tasten“ konnte nicht gefunden werden.
wird der Systemstart dann fortgesetzt.
Funktioniert alles, müssen die zuvor umbenannten Daten noch gelöscht werden:
sudo rm -rf /noenc*
Verbleibende Datenspuren vernichten¶
Im Prinzip könnten nun auf der Systempartition noch die Daten aus den verschobenen Verzeichnissen zu finden sein. Diese überschreiben wir nun, indem wir den gesamten leeren Platz auf der Partition mit Zufallszahlen auffüllen
Fehlendes Makro
Das Makro „Anmerkung“ konnte nicht gefunden werden.
. Von einer Live-CD aus geht das so:
Systempartition einbinden mit
sudo mount /dev/hda1 /mnt
Zufallszahlen in eine Datei schreiben, bis der Platz erschöpft ist, und die Datei dann wieder löschen:
sudo dd if=/dev/urandom of=/mnt/zufall sudo rm /mnt/zufall
Das war's endlich - alle sensiblen Daten befinden sich jetzt ausschließlich auf verschlüsselten Partitionen.
Schlüssel ändern¶
Prinzipiell ist es ganz einfach, es gibt nur ein praktisches Problem: Da die Partitionen, deren Schlüssel man ändern möchte, nicht in Benutzung sein dürfen, benötigt man ein Wartungssystem, auf dem cryptsetup installiert ist. Die Ubuntu-Desktop-CD erfüllt diese spezielle Anforderung leider nicht, auch Knoppix (4.0.2) enthält cryptsetup nicht einmal auf der DVD. Vermutlich lässt es sich in einem Knoppix-Livesystem aber nachinstallieren.
Das Vorgehen ist folgendermaßen:
Jeweils ein verschlüsseltes Gerät mit dem alten und neuen Schlüssel anlegen:
sudo cryptsetup create crypto-alt /dev/hda5 sudo cryptsetup create -y crypto-neu /dev/hda5
Nun sollte man unbedingt noch testen, ob die verschlüsselte Partition korrekt angesprochen wird. Hätte man sich beim Passwort vertippt, würde sonst gleich nur Datenmüll umgewandelt.
sudo fsck /dev/mapper/crypto-alt
Wenn keine Fehler gemeldet werden, kann es losgehen.
Daten vom alten aufs neue Gerät kopieren:
sudo dd if=/dev/mapper/crypto-alt of=/dev/mapper/crypto-neu
Neu starten, und bei der Passwortabfrage künftig den neuen Schlüssel verwenden.
Vereinfachung: Schlüsseldiskette¶
Wenn man beim Start nicht immer zwei Passwörter eingeben möchte, kann man sich einer Diskette oder eines USB-Sticks bedienen, die eine Datei mit dem Schlüssel der Partitionen enthalten (und selbst auch verschlüsselt sein können). Siehe dazu [:Keydisk].
Verschlüsselung einzelner Dateien¶
Um einzelne Dateien zu verschlüsseln, genügt die Installation [1] von GnuPG; die folgenden Pakete werden benötigt:
gnupg
gnupg-doc (Optional, enthält die Dokumentation)
Wer die Dokumentation mitinstalliert, kann sie mit dem Browser unter der Adresse /usr/share/doc/gnupg-doc/GNU_Privacy_Handbook/de/html/book1.html lesen.
Die Verschlüsselung selbst findet im Terminal [3] statt.
Ein einfaches Kommando wie
gpg -c DATEINAME
genügt, um die Datei DATEINAME zu verschlüsseln.
Mit
gpg --decrypt DATEINAME.gpg > Datei
oder
gpg -d DATEINAME.gpg > Datei
packt man die Datei wieder aus.
gpg erfragt beim Ver- und Entschlüsseln natürlich die gpg-Passphrase.
Der große Nachteil dieser Methode ist, dass man die Datei jedesmal manuell ver- und entschlüsseln muss. Desweiteren muss man die Orginaldatei jedesmal löschen. Etwas mühselig auf die Dauer, und die gelöschten Orginal-Dateien sind unter Umständen wieder herstellbar...
Veraltet: cryptoloop¶
Dieses Verfahren ist veraltet und sollte in neuen Installationen nicht mehr eingesetzt werden. Die Unterstützung im Kernel dafür entfällt.
Fehlendes Makro
Das Makro „Tags“ konnte nicht gefunden werden.