AES Crypt
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Ubuntu 20.04 Focal Fossa
Du möchtest den Artikel für eine weitere Ubuntu-Version testen? Mitarbeit im Wiki ist immer willkommen! Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
AES Crypt 🇬🇧 ist ein Programm zum Verschlüsseln einzelner Dateien. Es kann plattformübergreifend genutzt werden, da neben Linux auch Windows, Mac OS X und iOS unterstützt werden (für Android wird Crypt4All Lite 🇬🇧 empfohlen).
Grundlage der symmetrischen Verschlüsselung ist das sehr sichere AES-256 im CBC-Modus, als Passwort-Hash kommt SHA-256 zum Einsatz. Für Programm und Quellcode wird eine Lizenz vom Typ Freeware bzw. BSD-Style verwendet.
Zur Erinnerung: Falls das Kennwort zur Entschlüsselung verloren geht, ist die verschlüsselte Datei unwiderruflich verloren - es gibt keinen Nachschlüssel! Und es besteht Verwechslungsgefahr: AES Crypt ist nicht identisch mit AEScrypt 🇬🇧.
Voraussetzungen¶
Je nach Desktop-Umgebung wird entweder auf Zenity oder KDialog zurückgegriffen, um die Kennwort-Eingabe zu erleichtern. Eines der beiden Programme ist zwar in der Regel vorinstalliert, aber eine Kontrolle kann nicht schaden.
Installation¶
Das Programm ist nicht in den offiziellen Paketquellen enthalten, da die freizügige Lizenz eine Aufnahme verhindert. Die Installation muss daher manuell oder über ein PPA erfolgen, wenn man es nicht selbst aus dem Quelltext erstellen möchte.
Manuell¶
Hinweis!
Fremdsoftware kann das System gefährden.
Anmerkung: Nach dem Herunterladen sollte man unbedingt die Prüfsumme ermitteln (siehe Hashfunktionen) und mit der offiziellen Prüfsumme 🇬🇧 abgleichen, um eine Manipulation durch Dritte auszuschließen.
Prinzipiell besteht die Installation aus vier Schritten:
Herunterladen der GUI-Version 🇬🇧 ⮷ als Archivdatei (Systemarchitektur beachten)
Entpacken der Archivdatei [1]
Inhalt des Archivs ausführbar machen [2]
Da die Schritte 1 und 2 keine Schwierigkeit darstellen sollten, hier nur die Befehle für die beiden letzten Schritte am Beispiel der 32-bit-Version:
chmod 755 AESCrypt-GUI-3.11-Linux-x86-Install sudo ./AESCrypt-GUI-3.11-Linux-x86-Install
Installiert werden folgende Dateien:
Installierte Dateien | |
Datei | Zweck |
/usr/bin/aescrypt | Kommandozeilenversion |
/usr/bin/aescrypt-gui | Perl-Skript (setzt Zenity oder KDialog voraus) |
/usr/share/aescrypt/SmallLock.png | Programmsymbol |
/usr/share/aescrypt/uninstall | Deinstallationsroutine |
/usr/share/applications/AESCrypt.desktop | Programmstarter |
PPA¶
Alternativ steht ein inoffizielles "Personal Package Archiv" (PPA) [5] zur Verfügung. Unterstützt wird aktuell (Stand April 2021) nur Ubuntu 18.04.
Adresszeile zum Hinzufügen des PPAs:
ppa:aasche/aescrypt
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der PPA-Beschreibung des Eigentümers/Teams aasche zu entnehmen.
Nach dem Aktualisieren der Paketquellen kann folgendes Paket installiert werden:
aescrypt (ppa)
Befehl zum Installieren der Pakete:
sudo apt-get install aescrypt
Oder mit apturl installieren, Link: apt://aescrypt
Verwendung¶
Die Nutzung erfolgt über das Kontextmenü des jeweiligen Dateimanagers via aescrypt-gui. Während Nautilus und Dolphin von Haus aus unterstützt werden, muss man bei anderen Programmen noch selbst Hand anlegen (siehe unten).
Bevor die Verwendung in den einzelnen Dateimanagern besprochen wird, noch ein paar grundsätzliche Anmerkungen:
die Länge des Kennworts beeinflusst den Aufwand, den ein Angreifer betreiben muss, um die Verschlüsselung zu brechen. Mit anderen Worten: je länger, desto sicherer. Anmerkung: Leerzeichen im Kennwort werden erst ab Version 3.10 akzeptiert.
Sowohl das Verschlüsseln als auch das Entschlüsseln einer Datei erfordert die zweimalige Eingabe des Kennworts. Ab Version 3.10 reicht zur Entschlüsselung eine einmalige Eingabe.
Verschlüsselte Dateien erhalten automatisch die Endung .aes, die an den Originaldateinamen angehängt wird
Die Originaldatei bleibt beim Verschlüsseln erhalten. Während man eine verschlüsselte Datei einfach löschen kann, wenn sie nicht mehr benötigt wird, sollte man beim Löschen einer Originaldatei mehr Aufwand betreiben und diese "sicher" löschen. Weitere Hinweise sind den Artikeln wipe und shred zu entnehmen. Empfohlen wird, eine Funktion zum sicheren Löschen ebenfalls im Kontextmenü des jeweiligen Dateimanagers zu verankern.
Existiert beim Entschlüsseln einer Datei bereits eine Originaldatei gleichen Namens, wird sie durch die entschlüsselte Version überschrieben
Nautilus¶
Um eine Datei zu ver-/entschüsseln, siehe Nautilus (Abschnitt „Dateiverknuepfungen“). Der erforderliche Programmname lautet AESCrypt. Unter Umständen kann es erforderlich sein, die Datei /usr/share/applications/AESCrypt.desktop noch ausführbar zu machen [2].
Dolphin¶
Prinzipiell wie bei Nautilus. Weitere Details sind dem Artikel Dolphin (Abschnitt „Kontextmenue-und-Servicemenues“) zu entnehmen.
Thunar¶
Siehe Thunar/Benutzerdefinierte Aktionen. Beispiel:
Name: AES Crypt
Befehl:
aescrypt-gui %f
Dateizuordnung:
*
Erscheint falls ausgewählt: alles außer Ordner aktivieren
Alternativ kann man auch Thunar/Senden an verwenden.
PCManFM¶
~/.local/share/file-manager/actions/aescrypt.desktop:
[Desktop Entry] Type=Action Tooltip= Name=Encrypt or decrypt a file using AES Crypt Name[de]=Mit AES Crypt ver- oder entschlüsseln Icon=/usr/share/aescrypt/SmallLock.png Profiles=aescrypt; [X-Action-Profile aescrypt] MimeTypes=all/allfiles Exec=/usr/bin/aescrypt-gui %f Name=en-/decrypt
Wenn noch eine eine ältere Version (< als 1.2) von PCManFM genutzt wird, geht man wie im Artikel PCMan File Manager (Abschnitt „Verknuepfung-mit-Programmen“) beschrieben vor.
Kommandozeile¶
Die allgemeine Syntax von aescrypt lautet [1]:
aescrypt OPTIONEN QUELLDATEI
Die Angabe einer Datei ist zwingend erforderlich. Das Programm kennt die folgenden Optionen:
Optionen von aescrypt | |
Option | Beschreibung |
-e | Datei verschlüsseln |
-d | Datei entschlüsseln |
-p KENNWORT | Passwort |
-k SCHLÜSSELDATEI | keyfile, Alternative zu -p |
-o DATEI | Zieldatei |
Beispiele¶
Verschlüsseln einer Datei (die Endung .aes wird automatisch angefügt):
aescrypt -e -p KENNWORT DATEI
Name der verschlüsselten Datei anpassen (die Endung .aes wird nicht angefügt):
aescrypt -e -p KENNWORT DATEI -o ZIELDATEI
Entschlüsseln einer Datei:
aescrypt -d -p KENNWORT DATEI.aes
Ein Tar-Archiv eines Ordners im Homeverzeichnis anlegen und verschlüsseln:
tar -cvf - ~/ORDNERNAME | aescrypt -e -k ~/SCHLÜSSELDATEI - > ~/ORDNERNAME.tar.aes
Ein verschlüsseltes Tar-Archiv wiederherstellen:
aescrypt -d -k ~/SCHLÜSSELDATEI ~/ORDNERNAME.tar.aes -o - | tar -xvf - -C /
Problembehebung¶
Verzeichnisse verschlüsseln¶
Oft ist die Verschlüsselung ganzer Ordnerstrukturen gewünscht. Da aber nur einzelne Dateien verarbeitet werden können, legt man als Zwischenschritt eine Archivdatei an, die anschließend verschlüsselt wird.
Prüfsummen¶
Kommen Prüfsummen für Dateien zum Einsatz, ist zu beachten, dass diese unterschiedlich ausfallen, wenn die unverschlüsselte Original-Datei ein zweites Mal verschlüsselt wird.
Zenity-Fehler¶
Es kann passieren, dass bei der doppelten Kennworteingabe zur Verschlüsselung ein nicht identisches Kennwort beanstandet wird, obwohl die Eingabe korrekt war. Erhält man im Terminal beim Befehl:
aescrypt-gui DATEINAME.TYP
eine Fehlermeldung der Art:
"(zenity:5208): WARNING **: Couldn't connect to accessibility bus..."
dann ergänzt man als Workaround folgende Zeile in der Datei ~/.bashrc:
export NO_AT_BRIDGE=1
Anschließend ab- und neu anmelden (Quelle: 1193236 🇬🇧).
Kompilierung aus dem Quelltext¶
Paranoiker bevorzugen grundsätzlich das Kompilieren aus dem Quellcode [6]. Dabei kann man selbst entscheiden, ob man eine Archivdatei 🇬🇧 ⮷ oder GitHub als Quelle nutzen möchte (der Programmautor empfiehlt die Archivdatei). Anschließend wird der Quellcode entpackt:
tar -xzf aescrypt-VERSION.tgz cd aescrypt-VERSION/src
Für Debian und Ubuntu muss das Makefile in den Abschnitten "install
" und "uninstall
" noch leicht angepasst werden:
# # Makefile for aescrypt # Copyright (C) 2007, 2008, 2009, 2013 # Paul E. Jones <paulej@packetizer.com> # # This software is licensed as "freeware." Permission to distribute # this software in source and binary forms is hereby granted without a # fee. THIS SOFTWARE IS PROVIDED 'AS IS' AND WITHOUT ANY EXPRESSED OR # IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. # THE AUTHOR SHALL NOT BE HELD LIABLE FOR ANY DAMAGES RESULTING FROM THE # USE OF THIS SOFTWARE, EITHER DIRECTLY OR INDIRECTLY, INCLUDING, BUT # NOT LIMITED TO, LOSS OF DATA OR DATA BEING RENDERED INACCURATE. # CC=gcc #The below line is for debugging #CFLAGS=-I. -ggdb -Wall -D_FILE_OFFSET_BITS=64 CFLAGS=-Wall -D_FILE_OFFSET_BITS=64 LIBS= #Uncomment the line below to compile on Mac #LIBS=-liconv all: aescrypt aescrypt_keygen aescrypt: aescrypt.o aes.o sha256.o password.o keyfile.o $(CC) $(CFLAGS) $(LIBS) -o $@ $^ aescrypt_keygen: aescrypt_keygen.o password.o $(CC) $(CFLAGS) $(LIBS) -o $@ $^ test: @$(CC) -DTEST -o sha.test sha256.c @./sha.test @#rm sha.test @$(CC) -DTEST -o aes.test aes.c @./aes.test @#rm aes.test testfile: aescrypt @echo "testing this 123..." > test.orig.txt ./aescrypt -e -p "praxis" test.orig.txt @cp test.orig.txt.aes test.txt.aes ./aescrypt -d -p "praxis" test.txt.aes cmp test.orig.txt test.txt %.o: %.c %.h $(CC) $(CFLAGS) -c $*.c install: aescrypt install -o root -g root -m 755 aescrypt /usr/bin install -o root -g root -m 755 aescrypt_keygen /usr/bin install -o root -g root -m 755 ../gui/aescrypt-gui /usr/bin install -o root -g root -m 644 ../man/aescrypt.1 /usr/share/man/man1 install -o root -g root -m 644 ../gui/AESCrypt.desktop /usr/share/applications install -d /usr/share/aescrypt install -o root -g root -m 644 ../Readme.txt /usr/share/aescrypt install -o root -g root -m 644 ../gui/SmallLock.png /usr/share/aescrypt uninstall: rm -f /usr/bin/aescrypt rm -f /usr/bin/aescrypt_keygen rm -f /usr/bin/aescrypt-gui rm -f /usr/share/man/man1/aescrypt.1 rm -f /usr/share/applications/AESCrypt.desktop rm -f /usr/share/aescrypt/ clean: rm -f *.o aescrypt aescrypt_keygen test* *test
Dann erfolgt das Kompilieren und die Installation mit folgenden Befehlen:
make sudo make install
Als kleiner Bonus steht bei der Installation aus dem Quellcode zusätzlich der Befehl aescrypt_keygen zur Erzeugung eines Schlüsseldatei zur Verfügung.
Links¶
Projektseite 🇬🇧
User Guide 🇬🇧 ⮷ (PDF)
Forum 🇬🇧
Quellcode 🇬🇧
Daten verschlüsseln Übersichtsartikel