16.15. Partitionen verschlüsseln

Beigetragen von Lucky Green.

FreeBSD bietet ausgezeichnete Möglichkeiten, Daten vor unberechtigten Zugriffen zu schützen. Wenn das Betriebssystem läuft, schützen Zugriffsrechte und vorgeschriebene Zugriffskontrollen (MAC) (siehe Kapitel 15) die Daten. Die Zugriffskontrollen des Betriebssystems schützen allerdings nicht vor einem Angreifer, der Zugriff auf den Rechner hat. Der Angreifer kann eine Festplatte einfach in ein anderes System einbauen und dort die Daten analysieren.

GEOM Based Disk Encryption (gbde) schützt Daten auf Dateisystemen auch vor hoch motivierten Angreifern, die über erhebliche Mittel verfügen. Der Schutz ist unabhängig von der Art und Weise, auf der ein Angreifer Zugang zu einer Festplatte oder zu einem Rechner erlangt hat. Im Gegensatz zu schwerfälligen Systemen, die einzelne Dateien verschlüsseln, verschlüsselt gbde transparent ganze Dateisysteme. Auf der Festplatte werden keine Daten im Klartext gespeichert.

16.15.1. gbde im Kernel einrichten

  1. Wechseln sie zu root

    Sie benötigen Superuser-Rechte, um gbde einzurichten.

    % su -
    Password:
    
  2. Überprüfen Sie die FreeBSD-Version

    gbde(4) benötigt FreeBSD 5.0 oder höher.

    # uname -r
    5.0-RELEASE
    
  3. Aktivieren Sie gbde(4) in der Kernelkonfiguration

    Fügen Sie mit Ihrem Lieblingseditor die folgende Zeile in die Kernelkonfiguration ein:

    options GEOM_BDE

    Übersetzen und installieren Sie den FreeBSD-Kernel. In Kapitel 8 werden die dazu notwendigen Schritte erklärt.

    Starten sie das System neu, um den neuen Kernel zu benutzen.

16.15.2. Einrichten eines verschlüsselten Dateisystems

Das folgende Beispiel beschreibt, wie ein Dateisystem auf einer neuen Festplatte verschlüsselt wird. Das Dateisystem wird in /private eingehangen. Mit gbde könnten auch /home und /var/mail verschlüsselt werden. Die dazu nötigen Schritte können allerdings in dieser Einführung nicht behandelt werden.

  1. Installieren der Festplatte

    Installieren Sie die Festplatte wie in Abschnitt 16.3 beschrieben. Im Beispiel verwenden wir die Partition /dev/ad4s1c. Die Gerätedateien /dev/ad0s1* sind Standard-Partitionen des FreeBSD-Systems.

    # ls /dev/ad*
    /dev/ad0        /dev/ad0s1b     /dev/ad0s1e     /dev/ad4s1
    /dev/ad0s1      /dev/ad0s1c     /dev/ad0s1f     /dev/ad4s1c
    /dev/ad0s1a     /dev/ad0s1d     /dev/ad4
    
  2. Verzeichnis für gbde-Lock-Dateien anlegen

    # mkdir /etc/gbde
    

    Die Lock-Dateien sind für den Zugriff von gbde auf verschlüsselte Partitionen notwendig. Ohne die Lock-Dateien können die Daten nur mit erheblichem manuellen Aufwand wieder entschlüsselt werden (dies wird auch von der Software nicht unterstützt). Jede verschlüsselte Partition benötigt eine gesonderte Lock-Datei.

  3. Vorbereiten der gbde-Partition

    Eine von gbde benutzte Partition muss einmalig vorbereitet werden:

    # gbde init /dev/ad4s1c -i -L /etc/gbde/ad4s1c
    

    gbde(8) öffnet eine Vorlage in Ihrem Editor, in der Sie verschiedene Optionen einstellen können. Setzen Sie sector_size auf 2048, wenn Sie UFS1 oder UFS2 benutzen.

    $FreeBSD: src/sbin/gbde/template.txt,v 1.1 2002/10/20 11:16:13 phk Exp $
    #
    # Sector size is the smallest unit of data which can be read or written.
    # Making it too small decreases performance and decreases available space.
    # Making it too large may prevent filesystems from working.  512 is the
    # minimum and always safe.  For UFS, use the fragment size
    #
    sector_size     =       2048
    [...]
    

    gbde(8) fragt dann zweimal eine Passphrase zum Schutz der Daten ab. Die Passphrase muss beides Mal gleich eingegeben werden. Die Sicherheit der Daten hängt alleine von der Qualität der gewählten Passphrase ab. [1]

    Mit gbde init wurde im Beispiel auch die Lock-Datei /etc/gbde/ad4s1c angelegt.

    Achtung: Sichern Sie die Lock-Dateien von gbde immer zusammen mit den verschlüsselten Dateisystemen. Ein entschlossener Angreifer kann die Daten vielleicht auch ohne die Lock-Datei entschlüsseln. Ohne die Lock-Datei können Sie allerdings nicht auf die verschlüsselten Daten zugreifen. Dies ist nur noch mit erheblichem manuellen Aufwand möglich, der weder von gbde(8) noch seinem Entwickler unterstützt wird.

  4. Einbinden der verschlüsselten Partition in den Kernel

    # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c
    

    Das Kommando fragt die Passphrase ab, die Sie beim Vorbereiten der Partition eingegeben haben. Das neue Gerät erscheint danach als /dev/device_name.bde im Verzeichnis /dev:

    # ls /dev/ad*
    /dev/ad0        /dev/ad0s1b     /dev/ad0s1e     /dev/ad4s1
    /dev/ad0s1      /dev/ad0s1c     /dev/ad0s1f     /dev/ad4s1c
    /dev/ad0s1a     /dev/ad0s1d     /dev/ad4        /dev/ad4s1c.bde
    
  5. Dateisystem auf dem verschlüsselten Gerät anlegen

    Wenn der Kernel die verschlüsselte Partition kennt, können Sie ein Dateisystem auf ihr anlegen. Benutzen Sie dazu den Befehl newfs(8). Da ein Dateisystem vom Typ UFS2 sehr viel schneller als eins vom Typ UFS1 angelegt wird, empfehlen wir Ihnen, die Option -O2 zu benutzen.

    Anmerkung: Ab FreeBSD 5.1-RELEASE wird -O2 als Voreinstellung verwendet.

    # newfs -U -O2 /dev/ad4s1c.bde
    

    Anmerkung: newfs(8) muss auf einer dem Kernel bekannten gbde-Partition (einem Gerät mit dem Namen *.bde laufen.

  6. Einhängen der verschlüsselten Partition

    Legen Sie einen Mountpunkt für das verschlüsselte Dateisystem an:

    # mkdir /private
    

    Hängen Sie das verschlüsselte Dateisystem ein:

    # mount /dev/ad4s1c.bde /private
    
  7. Überprüfen des verschlüsselten Dateisystem

    Das verschlüsselte Dateisystem sollte jetzt von df(1) erkannt werden und benutzt werden können.

    % df -H
    Filesystem        Size   Used  Avail Capacity  Mounted on
    /dev/ad0s1a      1037M    72M   883M     8%    /
    /devfs            1.0K   1.0K     0B   100%    /dev
    /dev/ad0s1f       8.1G    55K   7.5G     0%    /home
    /dev/ad0s1e      1037M   1.1M   953M     0%    /tmp
    /dev/ad0s1d       6.1G   1.9G   3.7G    35%    /usr
    /dev/ad4s1c.bde   150G   4.1K   138G     0%    /private
    

16.15.3. Einhängen eines existierenden verschlüsselten Dateisystems

Nach jedem Neustart müssen verschlüsselte Dateisysteme dem Kernel wieder bekannt gemacht werden, auf Fehler überprüft werden und eingehangen werden. Die dazu nötigen Befehle müssen als root durchgeführt werden.

  1. gbde-Partition im Kernel bekannt geben

    # gbde attach /dev/ad4s1c -l /etc/gbde/ad4s1c
    

    Das Kommando fragt nach der Passphrase, die Sie beim Vorbereiten der Partition eingegeben haben.

  2. Prüfen des Dateisystems

    Das verschlüsselte Dateisystem kann noch nicht automatisch über /etc/fstab eingehangen werden. Daher muss es vor dem Einhängen mit fsck(8) geprüft werden:

    # fsck -p -t ffs /dev/ad4s1c.bde
    
  3. Einhängen des verschlüsselten Dateisystems

    # mount /dev/ad4s1c.bde /private
    

    Das verschlüsselte Dateisystem steht danach zur Verfügung.

16.15.3.1. Verschlüsselte Dateisysteme automatisch einhängen

Mit einem Skript können verschlüsselte Dateisysteme automatisch bekannt gegeben, geprüft und eingehangen werden. Wir raten Ihnen allerdings aus Sicherheitsgründen davon ab. Starten Sie das Skript manuell an der Konsole oder in einer ssh(1)-Sitzung.

16.15.4. Kryptographische Methoden von gbde

gbde(8) benutzt den 128-Bit AES im CBC-Modus, um die Daten eines Sektors zu verschlüsseln. Jeder Sektor einer Festplatte wird mit einem unterschiedlichen AES-Schlüssel verschlüsselt. Mehr Informationen, unter anderem wie die Schlüssel für einen Sektor aus der gegebenen Passphrase ermittelt werden, erhalten Sie in gbde(4).

16.15.5. Kompatibilität

sysinstall(8) kann nicht mit verschlüsselten gbde-Geräten umgehen. Vor dem Start von sysinstall(8) sind alle *.bde-Geräte zu deaktivieren, da sysinstall(8) sonst bei der Gerätesuche abstürzt. Das im Beispiel verwendete Gerät wird mit dem folgenden Befehl deaktiviert:

# gbde detach /dev/ad4s1c

Anmerkung: Sie können gbde nicht zusammen mit vinum benutzen, da vinum(4) das geom(4)-Subsystem nicht benutzt.

Fußnoten

[1]

Die Auswahl einer sicheren und leicht zu merkenden Passphrase wird auf der Webseite Diceware Passphrase beschrieben.

Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an <de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an <de-bsd-translators@de.FreeBSD.org>.

Hosting by: Hurra Communications GmbH
Generated: 2007-01-26 17:56:55