Start GNU/Linux Verschlüsseltes $HOME! Und was ist mit SWAP?

Verschlüsseltes $HOME! Und was ist mit SWAP?

34

Privatsphäre und Datensicherheit ist gerade unter Linux-Anwendern ein immer wieder gerne diskutiertes Thema. Besonders beim Thema Verschlüsselung von Daten ergeben sich gerne nicht mehr endende Diskussionen. Ich gieße mal wieder ein bisschen Öl ins Feuer…

Seit Ubuntu „Intrepid Ibex“ 8.10 gibt es die Option ein Verzeichnis im Home-Verzeichnis eines jeden Benutzers zu verschlüsseln. Seit Ubuntu „Jaunty Jackalope“ 9.04 kann das Home-Verzeichnis des Benutzers komplett verschlüsselt werden. Diese Optionen werden recht gerne benutzt, weil sie einfach und bequem Daten auf der Platte verschlüsseln können, und sie so vor Zugriff von Dritten schützen können. Aber ist das auch wirklich sicher? Kann niemand mehr auf die Daten zugreifen?

Der Sicherheitsspezialist Jacob Appelbaum hat schon auf dem 22C3 des CCC Ende 2005 im Vortrag A discussion about modern disk encryption systems Kommentatoren belächelt (~00:18:00 des Vortrags), die nur ihr Homeverzeichnis verschlüsseln. Und die Situation hat sich bis heute nicht geändert. Ich kann Euch nur empfehlen diesen 50-minütigen Vortrag einmal anzuhören oder zu sehen, ein Video ist unter dem „More information…“-Link zu finden. [UPDATE: Oder auf einfach auf CCC-TV beziehungsweise Youtube vorbeischauen.]

Aktivieren Sie JavaScript um das Video zu sehen.
Video-Link: https://www.youtube.com/watch?v=MPEKX3WE-VI

Die große Schwachstelle an diesem Konzept ist die SWAP-Partition. Ist diese Partition nicht verschlüsselt, so können private Daten ohne großen Aufwand ausgelesen werden! Manch einer wird sagen: „Ist ja nicht schlimm, ich hab X GB RAM, Swap wird sowieso nie benutzt, außerdem findet man da ja nur Chaos und keine kompletten Dateien“. Ich rate dagegen die Probe aufs Exempel zu machen. Schaut nach wo Eure Swap-Partition liegt…

$ sudo fdisk -l | grep Swap
/dev/sda2  1021  1236  1735020  82  Linux Swap / Solaris

…und schaut Euch den Inhalt Eurer Swap-Partition an. Ich suche einfach mal nach Strings mit meinem Namen…

$ sudo strings /dev/sda2 | grep Christoph | more

So kommen Kontakte, Bookmarks, Browserinformationen usw. zu Tage. Selbst Informationen, die ich eher nicht gerne preisgeben würde, konnte ich in fünf Minuten Sucherei finden. Des weiteren darf man nicht vergessen, dass bei Suspend-To-Disk der gesamte Inhalt des Speichers auf die Festplatte geschrieben wird. Eine Schatzgrube für jemanden mit Sachkenntnis, denn mit dem Speicherinhalt wird auch der Schlüssel zu $HOME auf die Platte geschrieben.

Die nächste Version von Ubuntu „Karmic Koala“ 9.10 greift das Thema auf und soll wohl die Möglichkeit anbieten auch SWAP zu verschlüsseln. Doch was ist mit /tmp, mit /var/log oder /var/spool? Überall werden Daten auf die Festplatte geschrieben, die selbst bei verschlüsselten $HOME und SWAP persönliche Daten beinhalten könnten. In meinen Augen geht besonders bei mobilen Geräten kein Weg an einer Vollverschlüsselung des Systems vorbei. Installiert man Ubuntu mit der Alternate-CD so geht dies recht leicht von der Hand. Auch Debian bietet entsprechendes an… Man weiß ja nie was passiert, wenn das eigene Laptop geklaut oder verloren geht.

guest
34 Kommentare
Inline Feedbacks
Zeige alle Kommentare
burli

Swap verschlüsseln? Ist ja schon langsam leicht paranoid 😉

Mal abgesehen davon, dass ich eigentlich noch nie Swap benötigt hab 😉

Someone

@Burli:
Eieiei… Da geht’s schon los..

Toby

Wenn man verschlüsselt, dann richtig – meine Meinung.
dm-crypt ist eine gute Möglichkeit. Verschlüsselt alles bis auf die Boot-Partition. /boot und Grub habe ich daher auf nem USB-Stick 😉
Somit auch etwas Schutz gegen Bootkits.

keee

kann mir das video nicht ansehn/runterladen 🙁

bas89

@Burli: Hast du den Artikel nicht gelesen? Spiele die Sache mal wie beschrieben durch, ich hatte auch sehr schnell sensible Daten gefunden. Mein System ist allerdings komplettverschlüsselt.

Steffen

Inspiriert durch http://www.sharms.org/blog/2009/09/16/encrypted-swap/?
Wenn ja bitte angeben, der Fairness halber.

Netter Artikel.

Andre

Und wenn man kein Swap hat? 😉
Mit gecrypteten Swap konnt ich mir bei Benutzung in der Regel erstmal nen Kaffee holen, da ging (fast) nichts mehr.
Jetzt hab ich den RAM aufgestockt und lass Swap weg – so ists schöner.

bas89

@Torrent: Leider erreiche ich den Tracker nicht.
Keine Verbindung zu Rechner bittorrent.ccc.de: Unbekannter Fehler

burli

@bas89: Waren nicht genug 😉 in meinem Beitrag? 😉

Mir ist das schon klar, wo Gefahren lauern können. Aber wie gesagt, ich hab Swap noch nie gebraucht. Außer einmal, als F-Spot Amok gelaufen ist und den ganzen Speicher vollgemüllt hat

Schumbi

Hey,
mein Laptop ist voll verschlüßelt. Ich habe es mit dm-crypt und luks anhand einer schönen Anleitung aus dem englischen Arch Linux Forum (http://wiki.archlinux.org/index.php/System_Encryption_with_LUKS_for_dm-crypt)

Einziges Problem war seiner Zeit, dass der Suspend to Disk nicht wollte, weil die Swap partition mit einem zufälligen Schlüßel gesichert wird, der nach neuerlichem aufwachen nicht mehr verfügbar ist. Mein Lösung war, dass ich keine swap partition habe sondern eine swap Datei auf der root-Partition. Und es klappt auch mit dem aufwachen.

HF 🙂 und in meinen Augen hat das nichts mit Paranoia zu tun, wenn man seinen Laptop sichert. Der kann durchaus mal ungewollt den Besitzer wechseln. Und falls es gewollt ist, spart man sich das lästige Festplatten formatieren. 😉

lG
Schumbi

daniel

@Toby: die Auslagerung von /boot und grub auf einen USB-Stick hab ich mir auch schon der Vollständigkeit halber überlegt. Hast du dafür einen Guide zur Hand?
Grüße, Daniel

Ice

Hi,
cool, wie einfach das geht. Wobei wenn ich nicht genau weiss wonach ich suche muss ich lange und viel kryptisches Zeug lesen…
Bei 2 GB Ram hat’s doch recht viel in meiner 08:15 partitionierten Festplatte Swap-Partition drin…
…und wie geht das jetzt mit Backup? Welche Software unterstützt verschlüsselte $home oder gar ganze Platten?
Greez
Ice

Frederik

Tipp:
Kryptopartition Erstellen
LVM erstellen
SWAP und Root-Partition ins LVM
Sich freuen, dass beide(alle) Partitionen verschlüsselt sind, und man nur ein Passwort eingeben muss 😉

bas89

Und noch /home mit reinpacken, wenn man das auf einer Extra-Partition hat. Viele Infos findet man im UU-Wiki. 🙂

Betz Stefan

Tja, ich verschlüssel immer das komplette LVM… Außer /boot ist da alles drin!

mfg Betz Stefan

Lorag

Wie wäre es denn, /home zu verschlüsseln, gar keinen Swap zu benutzen und /var/log und /tmp mit tmpfs ins Ram zu schieben? Aufm Netbook ist Vollverschlüsselung ja schon etwas heftig.

peterp

An Verschlüsselung auf dem Notebook habe ich mich noch nicht gewagt. Ich nutze stattdessen das von Dell-Biosen angebotene Festplatten-Passwort. Damit wird der Zugriff auf die Platte erst nach PW-Eingabe freigegeben, auch bei einem Ausbau der Platte. Das ersetzt zwar keine Verschlüsselung, aber gibt doch ein etwas sicheres Gefühl.

harddy

Ich kann nur empfehlen, einfach eine Systeminstallation mit der Alternate CD zu machen, da gibt es die Möglichkeit das komplette LVM zu crypten.
@Andre: in wie fern ging nichts mehr mit einem crypted swap? Ich muss sagen, ich habe fast keine Performanceverluste.

Ich kann allerdings auch Hardware-basierende cryted Drives zu verwenden. Wie oben schon erwähnt bietet Dell die Möglichkeit mit TPM u. SED das eigene System sicher zu machen 😉

winky

useless use of sudo

ceby

Für einfache Dateien ist die Home Verschlüsselung schon brauchbar. Zum Beispiel um vertrauliche OpenOffice Dokumente zu schützen. Aber ansonsten ist die Festplattenverschlüsselung die ich im Moment benutze durch nichts zu ersetzen. Wenn man sich der Risiken bewusst ist und eine entsprechende Backup Strategie hat. Schade nur das Ubuntu hier nur den Weg über die Alternate-CD anbietet. Fedora macht es in diesem Punkt besser.

Sven

Ich nutze auch die Vollverschlüsselung die man mittels der Alternate Cd installieren kann. Bin aber der Meinung das man auch nach einer Lösung suchen sollte das /boot Verzeichnis mitzuverschlüsseln.

Grub 2 soll so eine Funktion bieten wobei das einiges an Handarbeit erfordert. Ich hoffe das in der zukünftigen Ubuntu Versionen dies umgesetzt wird. So ähnlich wie die System Verschlüsselung durch Truecrypt bei einem Windows System.

Was aber aufjedenfall sinnvoll wäre das man die Vollverschlüsselung in der Desktop Variante integriert.

detru

oha und wieder ein post zum Thema: „ich muss verschlüsseln sonst klaut mir irgendwie meine relativ uninteressanten und genau genommen vollkommen irrelevanten Daten“.

Wenn ihr so ach geheime Daten habt, dann verschlüsselt die einzelne Datei. Fertig, damit hat sichs.

Wenn jmd. die Daten kopiert hat (egal ob verschlüsselt oder nicht) wird er sowieso früher oder später an den Verschlüsselungscode kommen (entweder durch bruteforce/rainbow tables usw. oder (wenns der Staat ist) durch Beugehaft und andere entsprechende Maßnahmen.

Christian

Einfach SWAP deaktivieren und ordentlich viel RAM in die Kiste. Dann ist das System eh schneller und man hat das Problem nicht mehr. Zumal eine das System ausbremsende SWAP Partition es nochmal extra ausbremst wenn es dazu noch verschlüsseln muss.

JeG

Ein kleines Kommentar zum verschlüsselten Home: Die Verschlüsselung geschieht ja „transparent“ für das Unterverzeichnis des Users. Loggt er sich aus, wird es wieder verschlüsselt.
Das zählt aber natürlich nicht als „echte“ Partition oder Mountpoint. Das war dann auch das Problem als wir auf meinem Arbeitsrechner mal einen Mittag gesucht haben, warum das Backup mit Bacula mein Homedir partout nicht sichern will – es hat einfach keines gefunden. 😉 Ist bei einem Backup also nicht zu verachten, dass ggf. nicht /home als Backupziel, sondern die Userdirs selbst angegeben werden müssen 🙂

Gerald

Christoph,

Root-Rechte? Stell dir vor, du kommst zum US-Zoll. Die nehmen dir dein Notebook weg, bauen die Festplatte aus, machen eine 1:1-Kopie, bauen sie wieder ein und geben dir das Notebook zurück. Danach haben sie beliebig viel Zeit, deine Platte zu analysieren. Dazu brauchen sie weder dein Root-, noch dein Bios-Passwort, nur einen Schraubenzieher. Ich würd’s jedenfalls so machen…

Aber trotzdem: Wozu root verschlüssen? Unter Linux gibt’s ja keine illegale Software. In den Logs habe ich noch nie sensible Daten gefunden, und /tmp kann man ins RAM legen, wenn man genug davon hat, was ggf. ebenfalls zum Swappen führt, das heißt, auf swap ist der Inhalt dann gespeichert.

Bleibt das home-Verzeichnis. Ich bin der Meinung, dass ich auch hier nicht alles verschlüsseln muss, sondern nur wirlich sensible Daten, diese ggf. sogar in einen hidden Truecrypt-Container oder -Partition. Das ist noch sicherer.

Nicht vergessen: Ein komplett verschlüsseltes System erweckt auf jeden Fall Verdacht! Habe ich jedoch auf den ersten und zweiten Blick ein „sauberes“ System, wird nicht weiter gesucht.

In meinem Swap habe ich ebenfalls nicht wirklich was gefunden. Das liegt einerseits sicher an 4 GB RAM, andererseits daran, dass ich die Partionen erst vor ein paar Wochen verschoben habe. Was ich fand, war von vorher, als es noch Teil einer ext4-Partition war! Trotzdem denke ich jetzt über Swap-Verschlüsselung nach. Alternative: gelegentlich Ausnullen und neu anlegen…

Am besten wäre aber, wenn die Anwendungen so geschrieben wären, dass sie Passwörter und andere sensible Daten bereits im RAM mit einem Zufallsschlüssel verschlüsselt ablegen würden (dessen Speicheradresse wiederum zufällig gewählt wird).

daniel

Schönes aktuelles Beispiel für die Unzuverlässigkeit Hardware-basierter Verschlüsselung: http://www.baseline-security.de/downloads/BSC-Qnap_Crypto_Backdoor-CVE-2009-3200.txt

In diesem Fall wird als Untersatz LUKS benutzt, die ganze Sache ist aber übelst dilettantisch implentiert.

Gerald

Ich bin inzwischen beim verschlüsselten Swap-Bereich gelandet…

Aus der /etc/initramfs-tools/conf.d/resume und der /etc/fstab habe ich ihn rausgeschmissen (der Ruhezustand funktioniert mit meinen Grafiktreibern derzeit eh nicht und ist bei 4 GB sowieso saulangsam), dafür lege ich ihn bei jedem Start mit einem Zufallsschlüssel und -passwort in der rc.local neu an.

Hier die Befehle:

tr -dc ‚0-9a-zA-Z‘ /tmp/.xxx
yes `cat /tmp/.xxx` | cryptsetup -q -c aes-xts-plain -s 512 luksFormat /dev/sda3 –key-file /tmp/.xxx
yes `cat /tmp/.xxx` | cryptsetup luksAddKey /dev/sda3 /tmp/.xxx
yes `cat /tmp/.xxx` | cryptsetup luksOpen /dev/sda3 swap –key-file /tmp/.xxx
mkswap /dev/mapper/swap
swapon /dev/mapper/swap
rm /tmp/.xxx

Viel Spaß!

Gerald

Sorry, Kleiner- und Größerzeichen sind abhanden gekommen. Die erste Zeile nochmal:

tr -dc ‚0-9a-zA-Z‘ </dev/urandom | head -c 32 > /tmp/.xxx

Sascha

Hi,

angeblich verschlüsselt Karmic bei der Option „Home verschlüsseln“ auch den Swap mit … habe das ganze auf meinem Netbook (Asus 1000H) so eingerichtet und die Performance ist noch ganz in Ordnung