Festplattenverschlüsselung
Unter Linux gibt es verschiedene Ansätze, um Festplatten zu verschlüsseln. Wir betrachten hier die Vollverschlüsselungen, die eine komplette Partition verschlüsselt.
Unabhängig von dem eingesetzten Produkt, muss außerdem darauf geachtet werden, dass alle Partitionen, die sensible Daten tragen könnten, verschlüsselt werden. Das sind nicht nur HOME-Partitionen sondern auch bspw. Swap-Partitionen, in denen Abbilder des RAMs zurückbleiben können. Außerdem auch Partitionen, die das /tmp-, oder, um jegliche Form des Data-Mining zu verhindern, das /var-, oder Teile des /etc-Verzeichnisse, beinhalten.
Linux Unified Key Setup / dm_crypt
Interessant gegenüber anderen Produkten, ist hier vor allem LUKS (Linux Unified Key Setup) hervorzuheben. Dies bietet, wie vergleichbare kommerzielle Produkte aus dem Windows-Umfeld, die Möglichkeit, den Verschlüsselungskey mit verschiedenen Passphrases geschützt abzulegen. Dadurch kann man verschiedenen Personen Zugriff auf eine Verschlüsselte Partition gewähren, wobei jede Person eine eigene Passphrase kennt. Somit können auch gezielt die Zugriffsrechte einzelner Personen, z.B. auf verschlüsselte Bereiche, wieder entzogen werden.
LUKS ist eine Erweiterung für dm_crypt. Der device mapper (dm) mappt eine echte Partition (bspw. /dev/hda2) auf eine temporäre (bspw. /dev/mapper/home), die nun am eigentlichen Mountpoint eingehängt und gelesen werden kann.
Nutzung des eTokens mit LUKS
LUKS kann die einzelnen Slots nicht nur mit Passphrases schützen, sondern man kann auch den Key aus einem externen File verwenden. Dies kann man sich in Kombination mit dem eToken leicht zu Nutze machen, ohne den Code von LUKS anfassen zu müssen.
Dazu wird der Key auf dem Token abgelegt. Der Key auf dem Token ist mit der Token-PIN geschützt. Gegenüber bspw. einer passwortgeschützen Datei auf einem USB-Stick hat man den Vorteil der Smartcard, dass das Object ohne Wissen der PIN nicht kopierbar ist. Außerdem kann man anders als bei der passwortgeschützen Datei auf einem USB-Stick nicht eine Brute-Force-Attacke auf das Passwort/auf die PIN fahren, da die Smartcard nach mehrmaliger Falscheingabe der PIN gesperrt wird.
Beim Einbinden einer so verschlüsselten und geschützen Partition, ist es nun erforderlich den eToken einzusetzen und die PIN einzugeben. Nur dann wird der Key vom eToken temporär in den Arebitsspeicher kopiert und via
cryptsetup luksOpen --file <keyfile>
die Partition aufgeschlossen. Direkt im Anschluss wird die lokale Kopie des Keys zerstört.
Somit ist sichergestellt, dass diese Partition nur mit dem Besitz des eTokens und dem Wissen um die PIN eingebunden und gelesen werden kann.
Dies hat die LSE als ein Proof-of-Concept für Debian-basierte Linux-Systeme realisiert. Lesen Sie mehr zu LUKS und eToken.
Natürlich stellt das Auslesen des Keys aus dem Token eine potentielle grobe Sicherheitslücke dar. Wahre starke Authentisierung erhält man erst, wenn man assymetrische Verschlüsselung wählt, wobei der private Schlüssel den eToken nicht mehr verlassen kann. Dies bietet derzeit kein Produkt unter Linux und dazu sind auch erhebliche Code-Erweiterungen an LUKS notwendig.
Die LSE bleibt am Ball.
Bleiben Sie gespannt!
eCryptfs
ecrypts verschlüsselt keine kompletten Partitionen, sondern Verzeichnisse. Es wird ein Verzeichnis definiert, das die verschlüsselten Daten aufnimmt. Dieses Verzeichnis mit den verschlüsselten Daten kann dann an dem endgültigen Mountpoint eingehängt werden.
mount -t ecryptfs /root/crypt /mnt/crypt
Wenn das Verzeichnis wieder ausgehängt wird, kann man weiterhin auf die Daten zugreifen, aber sie nicht mehr im Klartext lesen. So lassen sich also die verschlüsselten Daten leicht backuppen, wobei sie verschlüsselt bleiben. Die Verschlüsselungsinformationen liegen als Metadaten vor einer jeden Datei, sodass ein Restore durch ein einfaches Kopieren der Daten möglich ist.
Diese Verschlüsselung erinnert an Content Encryption. So kann, bspw. auf einem Fileserver, ein Verzeichnis verschlüsselt sein. Dieses wird via SMB oder NFS auf dem Client eingehängt. Das Verzeichnis ist weiterhin verschlüsselt. Schließlich wird das so eingehängte Verzeichnis nochmals an den endgültigen Mountpoint gehängt, sodass auf die Daten entschlüsselt zugegriffen werden kann. Die Ver- und Entschlüsselung erfolgt somit auf dem Client. Die Daten werden verschlüsselt über das Netzwerk übertragen.
LoopAES
Weitere Verschlüsselungsmöglichkeiten sind die mit loopAES.