Daten verschlüsseln

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Artikel für fortgeschrittene Anwender

Dieser Artikel erfordert mehr Erfahrung im Umgang mit Linux und ist daher nur für fortgeschrittene Benutzer gedacht.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Installation von Programmen

  2. Bearbeiten von Paketquellen

  3. Ein Terminal öffnen

  4. Eine Festplatte Partitionieren

  5. Umgang mit Kernelmodulen (Treibern)

  6. Einen Editor mit Rootrechten öffnen

  7. Verschlüsselte Partitionen verwenden

  8. Die Benutzerverzeichnisse umziehen

Inhaltsverzeichnis
  1. Sicherheit der Verschlüsselungsmethoden
  2. Einzelne Dateien verschlüsseln
    1. GnuPG
    2. ccrypt
    3. OpenSSL
  3. Mit LUKS verschlüsselte /home-Partition au...
    1. Software installieren
    2. Daten migrieren
    3. pam-mount konfigurieren
    4. Konfiguration überprüfen und neu starten...
  4. Zu erwartende Geschwindigkeiten bei Festpl...
  5. Links
    1. Intern
    2. Extern

Wiki/Icons/security.png Aus Gründen der Geheimhaltung sensibler Daten, aber auch zur Wahrung der Privatsphäre, bietet es sich an, Daten zu verschlüsseln. Dazu gibt es – je nach Verwendungszweck – mehrere Möglichkeiten:

  1. Verschlüsselung einzelner Dateien mit

    1. GnuPG

    2. ccrypt

    3. OpenSSL

    4. bcrypt

    5. AES Crypt

    6. Elettra

  2. Verschlüsselung einzelner Verzeichnisse mit

    1. EncFS

    2. ecryptfs

  3. Homeverzeichnis verschlüsseln mit

    1. LUKS

    2. ecryptfs (auch teilweise)

  4. Verschlüsselung des gesamten Systems während der Installation (bis auf /boot):

    1. auf Basis von LVM

    2. ohne LVM

  5. Verschlüsselung von Daten mit Hilfe von Containern

    1. VeraCrypt

    2. TrueCrypt (Entwicklung wurde eingestellt)

    3. LUKS/Containerdatei

In diesem Artikel werden die Möglichkeiten 1a, 1b, 1c und 3a behandelt. Die Beschreibung der anderen Programme bzw. Verfahren sind den jeweiligen Artikeln zu entnehmen.

Achtung!

Das Verschlüsseln von Daten kann der Sicherheit bei der Wahrung der Privatsphäre oder sensibler Daten dienen, beinhaltet aber in der Konsequenz, dass eine eventuell zukünftig notwendige Datenrettung durch eine manuelle Entschlüsselung erschwert werden kann. Eine Entscheidung für oder gegen eine Datenverschlüsselung sollte daher nicht leichtfertig erfolgen. Empfohlen wird eine individuelle Nutzen-Risiko-Abwägung, bezogen auf Anwendungsbereich, Computerkenntnisse des Nutzers oder ähnliche Faktoren, um die Gefahr eines späteren Datenverlusts zu minimieren.

Sicherheit der Verschlüsselungsmethoden

Hinweis:

Ohne ein sicheres Kennwort nutzt die stärkste Verschlüsselung nichts! Wie man Passwörter am besten wählt, findet man im Sicherheits 1x1.

Wirkliche Sicherheit bietet Verschlüsselung nur, wenn alle Bereiche, in denen temporäre Dateien (z.B. in /tmp) gespeichert werden, ebenfalls verschlüsselt sind. Ansonsten besteht das Risiko, dass (beispielsweise durch das Bearbeiten von Textdokumenten) Sicherungskopien dieser Dateien auf unverschlüsselte Bereiche der Festplatte kopiert werden. Daher sollte man, wenn möglich, das gesamte System verschlüsseln oder zumindest die Vorbereitung zur Teilverschlüsselung durchgearbeitet haben.

Die Verschlüsselungsalgorithmen der in diesem Artikel vorgestellten Verschlüsselungsverfahren gelten als sicher und ungebrochen. Das heißt, es gibt bis heute keine Methode, eine der hier vorgestellten Verschlüsselungsverfahren zu knacken, außer durch zeitaufwendiges Brute Force bzw. das "einfache" Durchprobieren sämtlicher möglichen Schlüssel.

Einzelne Dateien verschlüsseln

Der große Nachteil dieser Methode ist, dass man eine Datei jedes Mal manuell ver- und entschlüsseln muss. Außerdem muss man die Originaldatei jedes Mal löschen. Dies ist auf Dauer nicht nur etwas mühselig, auch sind die gelöschten Original-Dateien unter Umständen wiederherstellbar, wenn diese nicht mit wipe oder shred entsorgt werden.

GnuPG

Möchte man einzelne Dateien verschlüsseln, so kann man dies mit GnuPG realisieren oder mittels gpg4usb. Das Verschlüsseln von Dateien findet im Terminal [3] statt. Durch Eingabe von

gpg -c DATEINAME 

wird die Datei DATEINAME nach doppelter Eingabe eines Passwortes verschlüsselt.

Experten-Info:

Durch das Argument --cipher-algo kann der Verschlüsselungsalgorithmus manuell bestimmt werden, standardmäßig wird hier CAST5 verwendet. Um eine Liste der unterstützten Algorithmen einzusehen, genügt die Eingabe von gpg --version im Terminal. Auch die Verschlüsselung von Dateien mit einem öffentlichen Schlüssel durch die Option -e ist möglich.

Durch Ausführen von

gpg -d DATEINAME.gpg > DATEINAME 

wird eine verschlüsselte Datei DATEINAME.gpg nach Eingabe des Passwortes wieder entschlüsselt und als DATEINAME gespeichert.

ccrypt

Das Programm ccrypt {en} kann direkt aus den Paketquellen installiert werden.

Weitere Informationen bietet die Manpage zur Anwendung.

OpenSSL

Hier helfen zwei kleine Skripte. Diese können z.B. als ssl-encode.sh und ssl-decode.sh gespeichert werden. Dazu bieten sich die Ordner ~/bin (für einen einzelnen Benutzer) oder /usr/local/bin (bei systemweiter Nutzung) an.

Mit LUKS verschlüsselte /home-Partition automatisch beim Anmelden einbinden

Nachdem, wie im Artikel LUKS beschrieben, eine verschlüsselte Partition angelegt worden ist, kann diese als /home genutzt werden. Damit diese Partition automatisch mit pam-mount beim Anmelden eingebunden werden kann, müssen das jeweilige Nutzer-Passwort und ein Passwort der Partition identisch sein. Das Verfahren hat den Vorteil, dass es sich nahtlos in den normalen Anmeldevorgang einbindet und nur eine Passworteingabe nötig ist - allerdings ist es dann umso wichtiger, dass das gewählte Passwort von guter Qualität ist.

Achtung!

Sollte nicht das gesamte System verschlüsselt werden, besteht die Gefahr, dass persönliche Daten in unverschlüsselten Bereichen gespeichert werden. Um dieses Risiko zu minimieren, sollte der Artikel Vorbereitung zur Teilverschlüsselung durchgearbeitet werden. Ohne diese Maßnahmen ist die Verschlüsselung möglicherweise wirkungslos.

Software installieren

Zuerst muss das folgende Paket installiert [1] werden:

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install libpam-mount 

sudo aptitude install libpam-mount 

Daten migrieren

Zuerst wird die verschlüsselte Partition geöffnet[7], welche als /home verwendet werden soll. Dann wird sie kurzfristig unter /mnt eingehängt:

cryptsetup luksOpen /dev/sdPARTITIONS_NUMMER NAME
mount /dev/mapper/NAME /mnt 

Anschließend werden alle Dateien von der ursprünglichen Home-Partition auf die neue, verschlüsselte kopiert[8]:

rsync -avx /home/ /mnt 

Nachdem überprüft worden ist, ob alle Daten kopiert wurden, sollte man dort noch eine Test-Datei (z.B. Test.txt) erstellen, um nachher zu sehen, ob wirklich alles funktioniert hat. Abschließend hängt man dann die Partition wieder aus:

umount /mnt
cryptsetup luksClose NAME 

pam-mount konfigurieren

Damit pam-mount weiß, welche Partitionen es bei Anmeldung wohin einhängen soll, werden mit den folgenden Befehlen die entsprechende Zeilen in die allgemeinen Konfigurationsdateien eingetragen, die man dazu mit Root-Rechten öffnet [2]:

Nach demselben Schema kann man auch weitere Partitionen einbinden lassen, insbesondere in Pfade unterhalb von /home. Falls man bestimmte Partitionen nur für bestimmte Nutzer einbinden will, erweitert man entsprechend die Konfiguration:

In /etc/security/pam_mount.conf.xml wird unter der auskommentierten Dokumentation folgende Zeile eingetragen und UUID durch die tatsächliche UUID der Partition ersetzt:

1
<volume user="BENUTZERNAME" fstype="crypt" path="/dev/disk/by-uuid/UUID" mountpoint="/ABSOLUTER/PFAD/ZU/EINHÄNGEPUNKT" options="fsck,relatime" />

In aktuellen Ubuntu-Versionen werden die PAM-Module automatisch verwaltet.

Experten-Info:

Falls es bei der Benutzung von sudo und cron zu segfaults kommt, sind diese als Bug zu melden. Man kann das Problem beheben, indem man fest vorgibt, welcher Benutzer die verschlüsselte Partition verwenden soll.

Konfiguration überprüfen und neu starten

Nachdem die Konfiguration nochmals geprüft worden ist kann man das System neu starten. Wenn man nach erfolgreicher Anmeldung in /home die entsprechende Test-Datei gefunden hat, arbeitet man mit dem verschlüsselten /home.

Zu erwartende Geschwindigkeiten bei Festplattenverschlüsselung

Möchte man abschätzen, welche Übertragungsgeschwindigkeiten zu erwarten sind, muss man v.a. CPU und Festplatte untersuchen. In erster Linie ist die CPU der Flaschenhals bei der Verschlüsselung, da die Festplatte erst nach der Verschlüsselung beschrieben wird, d.h. maximal soviele Daten schreiben kann, wie die CPU liefern kann.
Wie schnell die einzelnen CPUs von einer verschlüsselten RAM-Disk mit LUKS lesen können, kann man folgender Vergleichstabelle {de} entnehmen. Zu beachten ist, dass bei einigen CPUs die Festplatte den Flaschenhals darstellt, da Übertragungsraten von bis zu 984 MB/s für herkömmliche Festplatten utopisch sind.

Intern

Extern