BenBE's humble thoughts Thoughts the world doesn't need yet …

05.10.2009

System-Verschlüsslung bei Multiboot

Filed under: Software — Schlagwörter: , , , , , — BenBE @ 20:43:06

Viele werden sicherlich TrueCrypt für die Verschlüsslung von Festplatten – oder zumindest Datenkontainern – kennen. Richtig interessant wird es aber erst, wenn man einmal einen etwas umfangreicheren Usecase in Angriff nimmt, wie er die Tage bei mir aufgelaufen ist. Gefragt war hierbei eine Systeminstallation mit Dual-Boot für Vista + Linux (Distri frei wählbar) unter der Maßgabe, dass das gesamte System nach außen hin verschlüsselt ist.

Nun ist der Einsatz von TrueCrypt unter Windows kein Thema und auch die Systemverschlüsslung ist unter Windows kein Problem, was jedoch interessant ist, ist die Umsetzung der Systemverschlüsslung für Linux. Hier funktioniert der Ansatz rein über TrueCrypt nicht, da TrueCrypt keine Systemverschlüsslung für Unix-Derivate anbietet. Aus früheren Experimenten mit den Möglichkeiten weiß ich jedoch, dass es hier mit LVM und den damit möglichen Crypt-Volumes eine nahezu äquivalente Möglichkeit gibt. Nachteilig ist hierbei einzig, dass Crypt-LVMs immer über eine Initramfs gebootet werden müssen, d.h. ein Teil des installierten Linu unverschlüsselt auf der Platte steht. Da die Sicherheitsanforderungen für die beabsichtigte Konfiguration aber weit entfernt vom Schutz gegen Geheimdienste dienen soll, ist dieser Nachteil erstmal vernachlässigbar.

TrueCrypt bietet neben der Möglichkeit von „Single-Boot“-Verschlüsslung, wie ich diese im Folgenden verwenden werde auch explizit eine Möglichkeit für Multi-Boot-Umgebungen, jedoch habe ich – mehr oder weniger aus Zeitgründen – auf ein genaues Studium der Doku an dieser Stelle zu Gunsten eines Tutorials verzichtet.

Als Basis für das zu installierende System diente ein 64-Bit AMD mit einer 250GB Festplatte. Da mehrere Betriebssysteme unterzubringen waren habe ich mich anfangs für folgende Partitionierung entschieden,

Path    Volume          FS	Linux   Windows
1       /dev/sda1       FAT32   /boot   *
2       /dev/sda2       NTFS    *       C:
3       /dev/sda3       Ext3    /       *
4       /dev/sda4       Ext. Partition
4:1     /dev/sda5       Swap    Swap    *
4:2     /dev/sda6       NTFS    /data   D:

was jedoch auf Grund von Problemen bei der Vista-Installation folgendermaßen geändert werden musste:

Path    Volume          FS	Linux   Windows
1       /dev/sda1       NTFS    *       C:
2       /dev/sda2       FAT32   /boot   *
3       /dev/sda3       Ext3    /       *
4       /dev/sda4       Ext. Partition
4:1     /dev/sda5       Swap    Swap    *
4:2     /dev/sda6       NTFS    /data   D:

Da bei einem Krypto-System zusätzlich zur System-Partition auch jegliche Swap-Daten verschlüsselt werden müssen, befinden sich die Linux-Partition (3) und der Swap-Bereich (4:1) in einem LVM. Dieses muss von Windows nicht beachtet werden, darf also durchaus Linux-Spezifisch sein. Der übrige, in Partition 4:2 vergebene Speicherplatz wird voraussichtlich in ein TrueCrypt-Volume wandern, da dieses im Gegensatz zu LVM-Volumes auch unter Windows zugreifbar sind.

Aber gut, kommen wir zur Praxis. Wie bereits erwähnt, gestaltete sich die Vista-Installation etwas störrisch. Obwohl Vista an sich kein Problem mit der Installation auf Partition 2 (Stand oben) hatte, ließ sich das so installierte System anschließend nicht booten: Entweder (Partition 1 Bootfähig) wollte er kein System finden oder (Partition 2 bootfähig) er war der Meinung keinen Bootloader finden zu wollen, was mehr oder weniger stimmte, weil dieser (korrekter Weise) auf Partition 1 stand.

Somit musste (wenn auch eher ungewollt) die zweite Partitionierung her, die gerade bei älteren Systemen ggf. zu Bootproblemen führen kann, wenn das BIOS eine Begrenzung an dieser Stelle beinhaltet oder der ausreichende Support großer Platten fehlt. In meinem Fall war dies nicht der Fall, weshalb eine derartige Konfiguration möglich wurde.

Nach dem Vista vollständig installiert war, bedurfte es neben der Installation von TrueCrypt aus einer vertrauenswürdigen, verifizierten Quelle noch der Aktualisierung von Windows auf mindestens Vista SP1, da sich TrueCrypt ansonsten weigert, das System zu verschlüsseln. Nach dem dies (nach Nutzung des c’t-Offline-Updates) gelungen war – Vista selbst bot mir SP1 irgendwie nicht an – konnte ich die Systemverschlüsslung, wie im Tutorial oben beschrieben, starten. Der Vorgang dauerte ungefähr 2 Stunden, die man durchaus für einen gemütlichen Fernsehabend nutzen kann. Neben der erwähnten Geduld benötigt man hierbei noch zusätzlich einen Brenner, da TrueCrypt auf die Erstellung einer Rescue-CD pocht, die man sich auch dringend aufbewahren sollte, da diese im Zweifelsfalle die einzige Möglichkeit zur Entschlüsslung des Systems bietet.

Nach Abschluss der Systemverschlüsslung sollte man diese kurz testen. Insbesondere das Booten des Systems sowie verschiedene Standby-Szenarien können durchaus interessant sein, da es u.U. bei der Reinitialisierung von Treibern zu Konflikten kommen kann. In meinem Fall verliefen diese Tests reibungslos, weshalb ich beim nächsten Schritt fortfahren kann: Dem sichern des Bootsektors.

Wie im Tutorial beschrieben muss man hierzu ein Live-System booten. Bei mir handelete es sich speziell um eine Debian-Live-CD (Testing), jede andere Linux-CD, die einem eine Shell mit Root-Rechten und den Tools mount und dd bietet gänge aber auch. Zum Sichern des Bootsektors (konkret dem MBR+Partitionstabelle) mountet man sich dafür zuerst die vorhin angelegte (bei mir 256 MB große) /boot-Partition mit RW-Zugriff

mkdir /mnt/boot
mount /dev/sda2 /mnt/boot

Verläuft dies erfolgreich, kann man anschließend mit dd den MBR kopieren:

dd if=/dev/sda of=/mnt/boot/tcboot.bin bs=512 count=1

Um zu schauen, ob der MBR wie erwartet der von TrueCrypt geschriebene ist, kann man entweder einen cat-Befehl auf die *.bin-Datei machen (Achtung: zerlegt definitiv die Display-Settings und bedarf zur Korrektur der Durchführung eines reset-Befehls) oder man schaut sich den Inhalt kurz mit dem Tool hexdump an. Bei beiden sollte relativ am Anfang der String „TrueCrypt“ (bei Hexdump in HEX) auftauchen.

Ist man hiermit fertig, geht es an die Linux-Installation. Diese kann im Wesentlichen wie eine normale Installation durchgeführt werden, benötigt aber insbesondere bei der Partitionierung und beim Schreiben des Boot-Sektors etwas Sorgfalt. Bei der Partitionierung sollte man hierbei beachten, dass die Partitionen 3 und 4:1 beide als Crypto-LVMs ausgeführt werden und man die Partition 2 (/boot) korrekt einhängt. Beim Schreiben des Bootloaders sollte man sich für Grub entscheiden (nicht LILO oder Grub2!) und explizit schauen, dass dieser im MBR eingetragen wird.

Der weitere Verlauf der Installation entspricht dann dem Vorgehen wie im Tutorial beschrieben …

Aber gut, ich bin noch auf die Stolpersteine bei Linux gespannt, nachdem allein die Vista-Installation 5 Versuche benötigte. Sollten sich aber nennenswerte Probleme auftun, wird sich dies sicherlich in einem oder mehreren Updates niederschlagen …

Flattr this!

1 Kommentar »

  1. […] ich ja bereits beschrieben habe, wie man ein voll-verschlüsseltes Multiboot-System aufsetzt, und ich zudem auf Grund einer Reihe tragischer Fehler die Gelegenheit hatte, da ganze noch einmal […]

    Pingback by Verschlüsseltes Multiboot ohne Live-CD « BenBE's humble thoughts — 19.10.2009 @ 09:12:57

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress