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

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

2345
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.

34 Kommentare

  1. 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.

  2. Keee, das Video musst du dir via Bittorent herunterladen. Die verlinkte Datei ist nur die so genannte .torrent-Datei. Unter Ubuntu findest du einen passenden Client unter „Anwendungen -> Internet -> Transmission BitTorrent Client
    Name“, damit kannst du dann das Video runterladen. 🙂

  3. @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.

  4. 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.

  5. Hallo Steffen, dieser Artikel lag schon recht lange in meiner Artikel-Baustelle. Schon zum Release von Intrepid wollte ich darüber bloggen. Der Beitrag von Steven lieferte den letzten Mosaikstein (Mittels strings nach Text zu Suchen, verdeutlicht ohne großen Aufwand die Problematik) und brachte mich darauf die Baustelle nochmal auszugraben 🙂

    @bas89, hier klappts. Allerdings tauchen keine Seeds auf. Egal, das Video gibts im Netz. Bspw. hier: http://ftp.uni-erlangen.de/mirrors/22c3/22C3-1112-en-modern_disk_encryption.mp4 oder hier http://media.ccc.de/browse/congress/2005/22C3-1112-en-modern_disk_encryption.html per Flash-Stream.

  6. @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

  7. 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

  8. @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

  9. 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

  10. 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 😉

  11. 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.

  12. 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.

  13. 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 😉

  14. 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.

  15. 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.

  16. 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.

  17. 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.

  18. Hallo Detru, Computer werden nicht nur von klein Kevin benutzt, der mit seinem Rechner Aufsätze schreibt, sondern von Unternehmen, Rechtsanwälten, Ärzten, Pfarrern, Psychiatern oder oder oder… oder von Christoph Daum, der nicht will dass sein Testament oder Details zu seinen Verträgen an die Öffentlichkeit kommen.

    In vielen Fällen ist es SEHR wichtig dass Daten von Dritten nicht eingesehen werden können. In solchen Fällen ist es essentiell, dass eine Verschlüsselung wasserdicht durchgeführt wird. Das Verschlüsseln einzelner Dateien oder Ordner erfüllt den Zweck definitiv nicht.

    Hallo winky, sowohl zum Auslesen von SWAP, also auch zum Auflisten der Partitionen braucht es auf einem unmodofizierten Ubuntu-System Root-Rechte. Daher: Essential use of sudo…

  19. 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 🙂

  20. 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).

  21. Hallo peterp, bei kommerziellen Produkten ist immer Vorsicht angesagt. Apple hat sich beispielsweise schonmal kräftig blamiert und bei anderen Produkten gibts auch immer mal wieder solche Berichte wie Crypto backdoor in Qnap storage devices.

    Hallo Gerald, Verschlüsselung ist immer nur ein „Offline“-Schutz der Daten. Hier gehts nicht um das Erlangen oder den Missbrauch von Root-Rechten. Auch wenn du „Verdacht“ erregst, in Deutschland darfst du zum Glück noch die Aussage verweigern und die Herausgabe von Zugangsdaten verneinen.

    Anders sieht es in GB aus, wo du dank dem RIP Act für diese Weigerung bis zu zwei Jahre ins Gefängnis gehen kannst. Ein Anderes Thema ist auch wieder eine Reise in die USA. Solltest du aufgefordert werden Zugangsdaten preiszugeben, so stehst du vor den Optionen Abschiebung oder Einreise. Ich persönlich würde nur mit einem blanken Rechner in die USA reisen, erst recht während einer Dienstreise. Europäische Unternehmen machen das oft so, vertrauliche Daten werden per VPN nach Einreise aus dem Intranet geholt.

  22. 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ß!

  23. 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

  24. 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

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein