[[Vorlage(Getestet, focal)]] {{{#!vorlage Wissen [:Archivmanager: Eine Archivdatei entpacken] [:Rechte#Datei-ausfuehrbar-machen: Eine Datei ausführbar machen] [:sudo: Root-Rechte] [:Terminal: Ein Terminalfenster öffnen] [:Paketquellen_freischalten/PPA: Verwenden eines PPAs] optional [:Programme_kompilieren:] optional }}} [[Inhaltsverzeichnis()]] [[Bild(aescrypt_logo.png, 48, align=left)]] [https://www.aescrypt.com/ AES Crypt] {en} 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 [https://play.google.com/store/apps/details?id=com.codewell4.Crypt4AllLite Crypt4All Lite] {en} empfohlen). Grundlage der symmetrischen Verschlüsselung ist das sehr sichere [wikipedia:Advanced_Encryption_Standard:AES-256] im CBC-Modus, als Passwort-Hash kommt [wikipedia:Secure_Hash_Algorithm:SHA-256] zum Einsatz. Für Programm und Quellcode wird eine Lizenz vom Typ [wikipedia: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 [sourceforge:aescrypt:AEScrypt] {en}. = 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 = [[Bild(Wiki/Icons/synaptic.png, 48, align=right)]] 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 == [[Vorlage(Fremd, Software, "Nach dem Herunterladen sollte man unbedingt die Prüfsumme ermitteln (siehe [:Hashfunktionen:]) und mit der [https://www.evernote.com/shard/s109/sh/cc691421-314d-4777-aa49-fb6788735d21/fe3dbd23268b1b66e6be7c66ec0dfa91 offiziellen Prüfsumme] {en} abgleichen, um eine Manipulation durch Dritte auszuschließen.")]] Prinzipiell besteht die Installation aus vier Schritten: 1. [https://www.aescrypt.com/download/ Herunterladen der GUI-Version] {en} {dl} als Archivdatei (Systemarchitektur beachten) 1. Entpacken der Archivdatei [1] 1. Inhalt des Archivs ausführbar machen [2] 1. 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: {{{#!vorlage Befehl chmod 755 AESCrypt-GUI-3.11-Linux-x86-Install sudo ./AESCrypt-GUI-3.11-Linux-x86-Install }}} Installiert werden folgende Dateien: {{{#!vorlage Tabelle <-2 rowclass="titel"> 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. [[Vorlage(PPA, aasche/aescrypt)]] Nach dem Aktualisieren der Paketquellen kann folgendes Paket installiert werden: {{{#!vorlage Paketinstallation aescrypt, ppa }}} = Verwendung = Die Nutzung erfolgt über das Kontextmenü [[Vorlage(Tasten, rmb)]] des jeweiligen [:Dateimanager: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ü [[Vorlage(Tasten, rmb)]] 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#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#Kontextmenue-und-Servicemenues:] zu entnehmen. [[Bild(./aescrypt-gui_zenity.png,, align=right)]] == 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#Verknuepfung-mit-Programmen:] beschrieben vor. [[Bild(Wiki/Icons/terminal.png, 48, align=right)]] == Kommandozeile == Die allgemeine Syntax von aescrypt lautet [1]: {{{#!vorlage Befehl aescrypt OPTIONEN QUELLDATEI }}} Die Angabe einer Datei ist zwingend erforderlich. Das Programm kennt die folgenden Optionen: {{{#!vorlage Tabelle <-2 rowclass="titel"> 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): {{{#!vorlage Befehl aescrypt -e -p KENNWORT DATEI }}} * Name der verschlüsselten Datei anpassen (die Endung '''.aes''' wird nicht angefügt): {{{#!vorlage Befehl aescrypt -e -p KENNWORT DATEI -o ZIELDATEI }}} * Entschlüsseln einer Datei: {{{#!vorlage Befehl aescrypt -d -p KENNWORT DATEI.aes }}} * Ein [:tar:Tar-Archiv] eines Ordners im [:Homeverzeichnis:] anlegen und verschlüsseln: {{{#!vorlage Befehl tar -cvf - ~/ORDNERNAME | aescrypt -e -k ~/SCHLÜSSELDATEI - > ~/ORDNERNAME.tar.aes }}} * Ein verschlüsseltes Tar-Archiv wiederherstellen: {{{#!vorlage Befehl 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 [:Hashfunktionen: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: {{{#!vorlage 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: [bug:1193236:] {en}). == Kompilierung aus dem Quelltext == Paranoiker bevorzugen grundsätzlich das Kompilieren aus dem Quellcode [6]. Dabei kann man selbst entscheiden, ob man eine [https://www.aescrypt.com/download/ Archivdatei] {en} {dl} oder GitHub als Quelle nutzen möchte (der Programmautor empfiehlt die Archivdatei). Anschließend wird der Quellcode entpackt: {{{#!vorlage Befehl 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 # # 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 [mark]install -o root -g root -m 755 ../gui/aescrypt-gui /usr/bin[/mark] [mark]install -o root -g root -m 644 ../man/aescrypt.1 /usr/share/man/man1[/mark] [mark]install -o root -g root -m 644 ../gui/AESCrypt.desktop /usr/share/applications[/mark] [mark]install -d /usr/share/aescrypt[/mark] [mark]install -o root -g root -m 644 ../Readme.txt /usr/share/aescrypt[/mark] [mark]install -o root -g root -m 644 ../gui/SmallLock.png /usr/share/aescrypt[/mark] uninstall: rm -f /usr/bin/aescrypt rm -f /usr/bin/aescrypt_keygen [mark]rm -f /usr/bin/aescrypt-gui[/mark] [mark]rm -f /usr/share/man/man1/aescrypt.1[/mark] [mark]rm -f /usr/share/applications/AESCrypt.desktop[/mark] [mark]rm -f /usr/share/aescrypt/[/mark] clean: rm -f *.o aescrypt aescrypt_keygen test* *test }}} Dann erfolgt das Kompilieren und die Installation mit folgenden Befehlen: {{{#!vorlage Befehl make sudo make install }}} Als kleiner Bonus steht bei der Installation aus dem Quellcode zusätzlich der Befehl '''aescrypt_keygen''' zur Erzeugung eines [#Kommandozeile Schlüsseldatei] zur Verfügung. = Links = * [https://www.aescrypt.com/ Projektseite] {en} * [https://www.aescrypt.com/linux_aes_crypt.html Using AES Crypt on Linux] {en} * [https://www.aescrypt.com/documentation/AES%20Crypt%20User%20Guide.pdf User Guide] {en} {dl} (PDF) * [https://forums.packetizer.com/viewforum.php?f=72 Forum] {en} * [github:paulej/AESCrypt:Quellcode] {en} * [:Daten_verschlüsseln:] {Übersicht} Übersichtsartikel # tag: System, Sicherheit, Verschlüsselung