19.17. Den Auslagerungsspeicher verschlüsseln

Geschrieben von Christian Brüffer.

Die Verschlüsselung des Auslagerungsspeichers ist unter FreeBSD einfach einzurichten. Je nach dem, welche FreeBSD-Version Sie einsetzen, können Konfiguration und mögliche Optionen allerdings unterschiedlich sein. Sie können entweder das gbde(8)- oder das geli(8)-Verschlüsselungs-Subsystem einsetzen. Beide Subsysteme werden über das rc.d-Skript encswap gestartet.

Der letzte Abschnitt, Partitionen verschlüsseln, enthält eine kurze Beschreibung der verschiedenen Verschlüsselungs-Subsysteme.

19.17.1. Warum sollte der Auslagerungsspeicher verschlüsselt werden?

Wie die Verschlüsselung von Plattenpartitionen dient auch die Verschlüsselung des Auslagerungsspeichers dem Schutz sensitiver Informationen. Stellen Sie sich etwa eine Anwendung vor, die ein Passwort erfordert. Solange dieses Passwort im Hauptspeicher verbleibt, ist alles in Ordnung. Beginnt Ihr Betriebssystem allerdings, Daten auf die Festplatte auszulagern, um im Hauptspeicher Platz für andere Anwendungen zu schaffen, kann es passieren, dass Ihr Passwort im Klartext in den Auslagerungsspeicher geschrieben wird, was es einem potentiellen Angreifer leicht macht, Ihr Passwort herauszufinden. Die Verschlüsselung Ihres Auslagerungsspeichers kann dieses Problem lösen.

19.17.2. Vorbereitungen

Anmerkung: Für die weiteren Ausführungen dieses Abschnitts stellt ad0s1b die Swap-Partition dar.

Noch ist Ihr Auslagerungsspeicher nicht verschlüsselt. Es könnte allerdings sein, dass bereits Passwörter oder andere sensitive Daten als Klartext im Auslagerungsspeicher vorhanden sind. Daher sollten Sie den Auslagerungsspeicher komplett mit zufällig generierten Zeichen überschreiben, bevor Sie ihn verschlüsseln:

# dd if=/dev/random of=/dev/ad0s1b bs=1m

19.17.3. Den Auslagerungsspeicher mit gbde(8) verschlüsseln

In der Datei /etc/fstab sollte das Suffix .bde an den Gerätenamen der Swap-Partition anhängt werden:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b.bde         none            swap    sw              0       0

19.17.4. Den Auslagerungsspeicher mit geli(8) verschlüsseln

Alternativ können Sie Ihren Auslagerungsspeicher auch mit geli(8) verschlüsseln. Die Vorgehensweise ist dabei ähnlich. Allerdings hängen Sie bei der Verwendung von geli(8) in /etc/fstab das Suffix .eli an den Gerätenamen der Swap-Partition an:

# Device                Mountpoint      FStype  Options         Dump    Pass#
/dev/ad0s1b.eli         none            swap    sw              0       0

In der Voreinstellung verschlüsselt geli(8) den Auslagerungsspeicher mit dem AES-Algorithmus und einer Schlüssellänge von 128 Bit.

Es ist möglich, diese Optionen durch das Setzen der geli_swap_flags-Option in /etc/rc.conf anzupassen. Die folgende Zeile weist das rc.d-Skript encswap an, geli(8)-Swap-Partitionen mit dem Blowfish-Algorithmus und einer Schlüssellänge von 128 Bit zu verschlüsseln. Zusätzlich wird die Sektorgröße auf 4 Kilobyte gesetzt und die Option “detach on last close” aktiviert:

geli_swap_flags="-e blowfish -l 128 -s 4096 -d"

Eine Auflistung möglicher Optionen für den Befehl onetime finden Sie in der Manualpage zu geli(8).

19.17.5. Die korrekte Funktion testen

Nachdem Sie Ihr System neu gestartet haben, können Sie die korrekte Funktion Ihres verschlüsselten Auslagerungsspeichers prüfen, indem Sie sich die Ausgabe von swapinfo ansehen.

Wenn Sie gbde(8) einsetzen, erhalten Sie eine Meldung ähnlich der folgenden:

% swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/ad0s1b.bde    542720        0   542720     0%

Wenn Sie geli(8) einsetzen, erhalten Sie hingegen eine Ausgabe ähnlich der folgenden:

% swapinfo
Device          1K-blocks     Used    Avail Capacity
/dev/ad0s1b.eli    542720        0   542720     0%

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <[email protected]>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <[email protected]>.