Benutzer:ChrisGT/Festplatte verschlüsseln

Aus wiki.archlinux.de

„ChrisGT/Festplatte verschlüsseln“ wurde von ChrisGT als in Bearbeitung markiert. Um Bearbeitungskonflikte zu vermeiden, kontaktiere ChrisGT bitte, bevor du den Artikel bearbeitest.


In vielen Bereichen ist es wichtig sicherzustellen, dass sensible oder private Daten nicht in falsche Hände geraten. Gerade Laptops wechseln schnell unfreiwillig den Besitzer und oft ist der Verlust der Daten deutlich schlimmer als der Materialverlust. Das Verschlüsseln von Festplatten bietet einen guten Schutz, falls der Rechner im ausgeschalteten Zustand gestohlen worden ist(im laufenden Zustand kann natürlich ganz normal darauf zugegriffen werden und es sind andere Sicherungsmaßnahmen notwendig). Ein weiterer Vorteil ist die Entsorgung von Festplatten. Bei vollverschlüsselten Festplatten, können diese bedenkenlos entsorgt bzw. verkauft werden, ohne sich stundenlang mit dem sicheren Löschen der Daten beschäftigen zu müssen. Zielgruppen sind also nicht nur Staatsfeinde und Terrorverdächtige, sondern auch ganz normale Privatpersonen, denen die eigene Privatsphäre am Herzen liegt oder verschiedene Berufsgruppen, bei denen die Vertraulichkeit der Daten wichtig ist(zB Anwälte)

Welche Möglichkeiten bietet Arch

Unter Linux bietet uns dm-crypt die Möglichkeit im Zusammenhang mit verschiedenen Algorithmen die Festplatten zu verschlüsseln, was leider (im Gegensatz zu Windows mit Truecrypt ab V5 oder PGP Pro) vor der Installation geschehen sollte, da dies nachträglich um einiges schwieriger zu handhaben ist.

Nach dem Start der Installations CD, sollte man ersteinmal das Tastaturlayout auf Deutsch stellen(wichtig wegen der Passwortabfrage, da hier das richtige Installscript genutzt wird und somit beim Systemstart das Layout schon auf Deutsch ist, im Gegensatz zum alten Wiki).


Mit

 km 

ist das relativ schnell gemacht, die quertz Tastatur in Deutsch findet ihr weiter unten(i386/quertz/de-latin1-nodeadkeys.map.gz) und der Konsolefont sollte der Default-Eintrag(default8x16.psfu.gz) sein.

Nun kann man sich anschauen, welche Möglichkeiten Arch bietet, sein System zu verschlüsseln:

 cd /lib/modules/$(uname -r)/kernel/crypto
 ls

Wichtig ist hier vorallem das Modul xts und das jeweilige Modul des Algorithmus den man nutzen möchten. Empfehlenswert sind hier AES(wird meist verwendet), Twofish und Serpent.

Ich werde im folgenden versuchen auf alle 3 einzugehen.

Weiter Informationen zu den verschiedenen Algorithmen liefert Wikipedia:

AES

Twofish

Serpent

Einen Geschwindigkeitsvergleich zwischen Ext3(ohneVerschlüsselung), AES und Twofish findet Ihr unter:

KLICK MICH

oder

KLICK MICH

Laden und partitionieren

Laden der Module

Als erstes müssen die Kernelmodule aktiviert werden:

 modprobe dm-crypt
 modprobe xts
 modprobe aes-i586 oder aes-x86-64 für ein 64bit-Arch-System

Solltet Ihr Twofisch oder Serpent statt aes nehmen, dann einfach

 modprobe twofish 
 oder 
 modprobe serpent


Partitionieren

Spätestens an dieser Stelle sollte man sich Überlegen wie das Partitionslayout aussehen sollte und welchen Verschlüsselungsalgorithmus man wählt, da nach der Installation das Verändern/Verschieben der Partitionen nur sehr umständlich möglich ist und man so einiges an Erfahrung braucht. Je nach Vorliebe, also

 fdisk /dev/sda (Ich gehe davon aus, dass auf die erste Festplatte installiert wird, wenn nicht muss hier angepasst werden)

oder

 cfdisk /dev/sda (die doch etwas komfortablere Möglichkeit)

Meine Partitionslayout sieht folgendermaßen aus:

 /dev/sda1 ==> /boot ca. 100 MB Der einzige Teil der auf der Platte unverschlüsselt bleibt
 /dev/sda2 ==> swap je nach Größe von Eurem Arbeitsspeicher, ich nehme da immer 1 GB, auch wenn ichs gar nicht brauche
 /dev/sda3 ==> / 15 bis 25 GB je nach Eurem Plattenspeicher
 /dev/sda4 ==> /home den ganzen Rest

Crypto-Devices anlegen, formatieren und mounten

Jetzt geht es ans Eingemachte. Da ich wenig Lust habe, für jede Partition, ein eigenes Passwort einzugeben, habe ich bei mir / mit einem PW gesichert, /home wird mit einem Keyfile verschlüsselt und swap wird mit einem Zufallskey bei jedem Systemstart neu angelegt.

/

Als erstes kommt / dran Für die Verschlüsselung mit AES:

 cryptsetup luksFormat /dev/sda3 --cipher aes-xts-plain:sha256 --verify-passphrase --key-size 256

für Twofish

 cryptsetup luksFormat /dev/sda3 --cipher twofish-xts-plain:sha256 --verify-passphrase --key-size 256

für Serpent

 cryptsetup luksFormat /dev/sda3 --cipher serpent-xts-plain:sha256 --verify-passphrase --key-size 256

sha256 kann auch mit sha512 ersetzt werden, was allerdings mit Geschwindigkeitseinbußen einhergehen dürfte. Die Option key-size könnte ebenfalls auf 512 gesetzt werden, allerdings lohnt das nur wenn man ein Passwort mit mehr als 40 Zeichen hat und das wird sich kaum jemand merken können. Mit beiden Werten auf 256 ist man also ganz gut bedient und ziemlich sicher unterwegs. Das Passwort sollte sich gut gemerkt sein, sonst gibt es Probleme und man kann dieses Wiki von vorn abarbeiten, ein Widerherstellen ist nicht möglich, aber das ist ja auch Sinn der Sache. Prüft am Besten auch noch einmal Euer Passwort als Klartext und gebt es in die Kommandozeile ein. So kann sichergestellt werden, dass auch das richtige Tastaturlayout gewählt wurde und Sonderzeichen auch das sind was man haben wollte. Abgesehen davon, ist man so auf der sicheren Seite, sollte man beim Installieren von Arch das falsche Tastaturlayout auswählen, den Rechner neustarten und der die PW-Abfrage ist nicht auf Deutsch. Mir hat es einmal geholfen(Tastatur war Englisch), einfach in Grub(da ist sie eh auf Englisch) auf E für Edit zu drücken und dort in der Eingabemöglichkeit einfach mal zu Testen, wo in diesem Layout die Tasten liegen(Trick 17). Aber wie gesagt: Im Normalfall passiert das nicht.

Nun sollte das Crypto-Device geöffnet und gemountet werden. Dazu muss ersteinmal ein Ordner in /mnt erstellt werden, wo wir die Partition einhängen können

 mkdir /mnt/root

und das Crypto-Device geöffnet werden

cryptsetup luksOpen /dev/sda3 root

Nach der Passworteingabe wird das erfolgreiche Öffnen mit "key slot 0 unlocked" bestätigt und es kann das Crypto-Device formatiert werden

 mke2fs -j /dev/mapper/root

und gemounted werden

mount /dev/mapper/root /mnt/root


 mount /dev/mapper/root /mnt/root


/home

/home wird mit einem zufallsgenerierten Keyfile verschlüsselt. Dazu muss ersteinmal ein Zielordner für das Keyfile angelegt werden

 mkdir /mnt/root/crypto

und dort ein zufallsgenerierter File angelegt

 dd if=/dev/urandom of=/mnt/root/crypto/home.key bs=1k count=2

Jetzt kann das Crypto-Device angelegt werden. Für AES

 cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher aes-xts-plain:sha256 --key-size 256

für Twofish

 cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher twofish-xts-plain:sha256 --key-size 256

und Serpent

 cryptsetup luksFormat /dev/sda4 /mnt/root/crypto/home.key --cipher serpent-xts-plain:sha256 --key-size 256


Nun wieder das gleiche Spiel wie bei der letzten Partition.

Öffnen:

 cryptsetup luksOpen /dev/sda4 home --key-file /mnt/root/crypto/home.key

Formatieren:

 mke2fs -j /dev/mapper/home

Zielordner erstellen:

 mkdir /mnt/root/home

Und mounten:

 mount /dev/mapper/home /mnt/root/home

/boot

Die kleinere Bootpartition ist die einzige Partition in unserem System die nicht verschlüsselt wird, da darin der Bootloader liegt und dieser nicht verschlüsselt werden kann.

Also auch hier: formatieren, Zielordner anlegen und mounten

 mke2fs /dev/sda1
 mkdir /mnt/root/boot
 mount /dev/sda1 /mnt/root/boot

Arch installieren

Ab hier kann fast der normale Installationsweg, bis auf ein paar Kleinigkeiten abgearbeitet werden.

Als erstes sorgt man für eine Netzverbindung:

 dhcpcd eth0

und wechselt in das Verzeichniss /arch

 cd /arch

Im Verzeichniss Arch ist das setup-Script zu finden, was ein wenig angepasst werden muss. Keine Panik, das ist nicht schwer, es muss lediglich das Zielverzeichniss angepasst werden, da ja alle partitionen nach /mnt/root gemounted wurden. Mit nano oder vi öffnet man dieses Script

 nano setup bzw vi setup

und öndert die Zeile

 DESTDIR="/mnt"

in

 DESTDIR="/mnt/root"

Das wars schon und man kann das setup-Script abarbeiten, wobei ein paar Dinge zu beachten sind:

1. Der Punkt Network kann weg gelassen werden, denn der wurde mit dem dhcpcd schon erledigt

2. Der Punkt "Prepare Hard Drive" kann weggelassen werden, da dies ebenfalls schon erledigt wurde.


Die Punkte "Select Packages" und "install Packages" können ganz normal abgearbeitet werden.

Wichtig ist jetzt wieder der nächste Punkt "Configure System", bei dem unbedingt die Frage "Do you need support for booting from encrypted volumes?" mit YES beantwortet. Sollte dort NO geantwortet werden, wird das Kernelimage nicht mit den nötigen Module konfiguriert und der Systemstart wird nich nicht möglich.

Nach diesen Fragen hat man die Möglichkeit die Konfigurationsdateien zu bearbeiten.

Als erstes die /etc/rc.conf, welche Ihr nach Euren Bedürfnissen anpasst. Üblicherweise wird gleich der Punkt LOCALE auf de_DE.utf8, die TIMEZONE zu "Europe/Berlin" und die Option KEYMAP auf de gestellt

Nun ist die /etc/fstab dran, welche um die Crypto-Devices erweitert werden muss und im Falle der hier angewendeten Partitionierung wie folgt aussehen muss:

 /dev/sda1              /boot       ext2    defaults                0      0
 /dev/mapper/root       /           ext3    defaults                0      0
 /dev/mapper/home       /home       ext3    defaults                0      0
 /dev/mapper/swap       none        swap    sw                      0      0

Die anderen Punkte werden wie gewöhnlich bearbeitet und es ist darauf zu achten, auch /etc/locale.gen auf deutsch zu stellen und bitte grub nicht vergessen zu installieren.

Nach Abschluss des Setup-Syripts muss noch dem System mitgeteilt werden, was mit zB /dev/mapper/root in /etc/fstab gemeint ist. Dies kann in der Datei /etc/crypttab erledigt werden.

In diese muss folgendes eingetragen werden:

 swap            /dev/sda2               SWAP                    -c aes-xts-plain -s 256
 home            /dev/sda5               /crypto/home.key

Für Twofish oder Serpent ist natürlich die Option hinter Swap wieder anzupassen. Einfach aes durch twofish oder serpent ersetzen.


Das war es schon fast.

Die Mapper-Devices existieren noch nicht, sodass man die einfach vom Installationsmedium zur neuen Festplatte kopiert

 cp -r /dev/mapper /mnt/root/dev/mapper

Nun kann neu gestartet werden und das System ist zum einrichten bereit.