AES Crypt

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

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

  1. Eine Archivdatei entpacken

  2. Eine Datei ausführbar machen

  3. Root-Rechte

  4. Ein Terminalfenster öffnen

  5. Verwenden eines PPAs, optional

  6. Programme kompilieren, optional

Inhaltsverzeichnis
  1. Voraussetzungen
  2. Installation
    1. Manuell
    2. PPA
  3. Verwendung
    1. Nautilus
    2. Dolphin
    3. Thunar
    4. PCManFM
    5. Kommandozeile
      1. Beispiele
  4. Problembehebung
    1. Verzeichnisse verschlüsseln
    2. Prüfsummen
    3. Zenity-Fehler
    4. Kompilierung aus dem Quelltext
  5. Links

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

Wiki/Icons/synaptic.png 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:

  1. Herunterladen der GUI-Version 🇬🇧 ⮷ als Archivdatei (Systemarchitektur beachten)

  2. Entpacken der Archivdatei [1]

  3. Inhalt des Archivs ausführbar machen [2]

  4. Installation mit Root-Rechten [3][4]

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 werden allerdings nur LTS-Versionen von Ubuntu.

Adresszeile zum Hinzufügen des PPAs:

Hinweis!

Zusätzliche Fremdquellen können das System gefährden.


Ein PPA unterstützt nicht zwangsläufig alle Ubuntu-Versionen. Weitere Informationen sind der Wiki/Vorlagen/PPA/ppa.png PPA-Beschreibung des Eigentümers/Teams aasche zu entnehmen.

Damit Pakete aus dem PPA genutzt werden können, müssen die Paketquellen neu eingelesen werden.

Nach dem Aktualisieren der Paketquellen kann folgendes Paket installiert werden:

Paketliste zum Kopieren:

sudo apt-get install aescrypt 

Oder mit apturl die Pakete installieren. Link: apt://aescrypt

Verwendung

Die Nutzung erfolgt über das Kontextmenü rechte Maustaste 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:

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.

./aescrypt-gui_zenity.png

Thunar

Siehe Thunar/Benutzerdefinierte Aktionen. Beispiel:

Alternativ kann man auch Thunar/Senden an verwenden.

PCManFM

Zu den Details siehe PCMan File Manager/Benutzerdefinierte Aktionen.

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.

Wiki/Icons/terminal.png

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.