datasearch
Goto Top

Minimalistisches Linux zur Festplattenverschlüsselung

Hallo Leute,

ich habe da so eine Idee. Ich würde gerne ein Linux bauen (gentoo-Basierend), das nur die nötigsten Systemdateien (zb. Busybox) und alle Komponenten für den Zugriff auf verschlüsselte Datenträger enthält. Dies könnte man ja zb. mit cryptsetup lösen. Im Prinzip könnte man ja alles in eine initrd packen, booten, platte mit einem Schlüssel vom USB-Stick oder SmartCard entschlüsseln, neu als root einbinden und das eigentliche System starten. Quasi eine Art Startschlüssel für das vorhandene System. Ich experimentiere damit schon eine ganze Weile. Scheitere jedoch an einem zuverlässigem Schutz für den Schlüssel auf dem USB-Stick oder an der initrd.

Ich suche eigentlich nur Ideen, Vorschläge oder ähnliches die ich ausprobieren könnte. Ziel ist ein Server für den mobilen Einsatz, der quasi nur mit einem Medium (am liebsten SmartCard) überhaupt gestartet werden kann. Wird das Gerät gestolen, kommt man weder an Betriebssystem (das ja VPN-Schlüssel usw. enthalten könnte), noch an Daten (falls es sich um einen Fileserver handelt).

Also, egal wie weit hergeholt, ich bin offen für alle Vorschläge (außer proparitärer-/komerzieller- / nicht-OSS- / Lösungen).

Derzeit habe habe ich eine optimierte gentoo-stage1 Installation soweit abgespeckt das es auf 30MB passt und boote es von einer unverschlüsselten Partition. Ziel ist es aber, alles per initrd zu booten.

Zur Verschlüsselung würde ich Via C7 Hardware (wegen PadLock AES Engine), PCIe Raid-controller und 2.5" SATA-Platten im Raid5 verwenden. Natürlich erst wenn das OS soweit steht. Zum testen habe ich einen Via C3 (Padlock). Nach einigen Optimierungen schaffe ich so an die 40MB/s. Der C7 sollte so an die 60 schaffen, was für einen On-The-Road-Server völlig ausreicht.

Falls ich OT bin, bitte verschieben face-smile

Content-Key: 94628

Url: https://administrator.de/contentid/94628

Printed on: April 19, 2024 at 09:04 o'clock

Member: filippg
filippg Aug 17, 2008 at 22:09:46 (UTC)
Goto Top
Hallo datasearch,

leider kein Vorschlag, aber eine Frage: Wie schaffst du es denn, ein zweites OS zu booten, ohne das erste zu beenden? Oder willst du erst die ganze Platte entschlüsselt speicher und dann komplett neu booten? Dann funktioniert der Spass aber doch nur einmal, oder?

Ach so, und zu den Vorschlägen: Du willst sicherstellen, dass der Schlüssel nicht von seinem Datenträger ausgelesen werden kann? Das lässt sich m.E. mit herkömmlichen Datenträger schlicht und einfach nicht realisieren. Dein Entschlüsselungs-Linux ist ja darauf angewiesen, den Schlüssel in den Arbeitsspeicher laden zu können. Und was das kann, können andere auch. Aber genau dafür wurden ja Smartcards entwickelt. Die können Daten entschlüsseln (idealerweise nur den Schlüssel für die eigentlichen Nutzdaten), ohne dabei den Schlüssel preiszugeben.

Gruß

Filipp
Member: datasearch
datasearch Aug 18, 2008 at 07:10:02 (UTC)
Goto Top
Wie schaffst du es denn, ein zweites OS zu booten, ohne das erste zu beenden?

Indem ich diese Vorgänge entweder in einer initrd oder einem sehr frühem rc-script ausführe. ZB. append=init=/bin/preinit.sh.
Mit der initrd hatte ich noch kein Glück. Muss aber auch funktionieren.

Anschließend übergebe ich das neue root und boote das System fertig. In der letzten version habe ich mit kexec einen neuen Kernel aus der Cryptdisk gebootet.


Naja, RAM ist unkritisch. Es geht primär um diebstal, wenn jemand die Kiste im offenem zustand hackt, bringt eine Verschlüsselung freilig nichts. Ich möchte aber auch nicht wie bei LUKS, truecrypt usw... den Schlüssel in der Partition liegen haben. Eine Smartcard oder Stick sind schnell vernichtet.


Dummerweise brauche ich hotplug und mehrere regeln um bei anstecken des Sticks den Schlüssel zu laden. geht das mit SC vieleicht besser?

Im Moment boote ich das System mit der init=??? methode. In dem Script wird am ende udev getsartet. Sobald nun der Stick mit der richtigen Seriennummer angesteckt word, startet ein Script das Mountet, den Schlüssel lädt, entschlüsselt und bootet. Dummerweise kommt udev da völlig durcheinander. Also suche ich neue Möglichkeiten face-smile.