Datei verschlüsseln
Einzelne Dateien verschlüsseln
Nachfolgend möchte ich eine grobe Übersicht aufzeigen, welche Möglichkeiten es gibt Dateien in Linux zu verschlüsseln.
- Hierbei muss man beachten, dass es meist noch Optionen und Parameter gibt, welche die Sicherheit bei der Verschlüsselung erhöhen.
- Am besten schaut man in die entsprechenden man oder help Seiten der Tools.
- 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
- Gelöschten Dateien sind unter Umständen wiederherstellbar
GnuPG
siehe GnuPG
ccrypt
siehe ccrypt
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.
- Verschlüsseln
#!/bin/bash # make sure we get a file name if [ $# -lt 1 ]; then echo "Usage: $0 filename" exit 1 fi openssl enc -e -aes256 -in "$1" -out "$1".enc
- Entschlüsseln
#!/bin/bash # make sure we get 2 files if [ $# -lt 2 ]; then echo "Usage: $0 encrypted_file decrypted_file" exit 1 fi
openssl enc -d -aes256 -in "$1" -out "$2"
- openssl benutzt ab Version 1.1 (?) nicht mehr -md md5 als Default-Option, ohne diese Option kann eine mit
- Version 1.0 verschlüsselte Datei nicht entschlüsselt werden.
EncFS (Encrypted Filesystem)
siehe EncFS
OpenSSL
Es ist auch möglich mit OpenSSL Dateien zu verschlüsseln.
Dateien verschlüsseln
- Syntax
openssl enc <Algorithmus> -in <zu verschlüsselnde Datei> -out <Dateiname für verschlüsselte Datei>
- Verfügbare Verschlüsselungs-Algorithmen anzeigen
$ openssl ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:DHE-RSA-AES256-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES128-SHA:RSA-PSK-AES256-GCM-SHA384:DHE-PSK-AES256-GCM-SHA384:RSA-PSK-CHACHA20-POLY1305:DHE-PSK-CHACHA20-POLY1305:ECDHE-PSK-CHACHA20-POLY1305:AES256-GCM-SHA384:PSK-AES256-GCM-SHA384:PSK-CHACHA20-POLY1305:RSA-PSK-AES128-GCM-SHA256:DHE-PSK-AES128-GCM-SHA256:AES128-GCM-SHA256:PSK-AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:ECDHE-PSK-AES256-CBC-SHA384:ECDHE-PSK-AES256-CBC-SHA:SRP-RSA-AES-256-CBC-SHA:SRP-AES-256-CBC-SHA:RSA-PSK-AES256-CBC-SHA384:DHE-PSK-AES256-CBC-SHA384:RSA-PSK-AES256-CBC-SHA:DHE-PSK-AES256-CBC-SHA:AES256-SHA:PSK-AES256-CBC-SHA384:PSK-AES256-CBC-SHA:ECDHE-PSK-AES128-CBC-SHA256:ECDHE-PSK-AES128-CBC-SHA:SRP-RSA-AES-128-CBC-SHA:SRP-AES-128-CBC-SHA:RSA-PSK-AES128-CBC-SHA256:DHE-PSK-AES128-CBC-SHA256:RSA-PSK-AES128-CBC-SHA:DHE-PSK-AES128-CBC-SHA:AES128-SHA:PSK-AES128-CBC-SHA256:PSK-AES128-CBC-SHA
- Beispiel
openssl enc -aes-256-cbc -in secret.txt -out secret.txt.enc
Dateien entschlüsseln
- Syntax
openssl enc <Algorithmus> -d -in <zu entschlüsselnde Datei> -out <Dateiname für entschlüsselte Datei>
Im Grunde handelt es sich um den gleichen Befehl wie bei der Verschlüsselung, nur dass hierbei noch die Option -d für decryption hinzugefügt wird.
- Hinweis
- Hierbei ist es auch möglich, für die Verschlüsselung eigene Keys zu verwenden.
- Das entsprechende Schlüsselwort lautet hierbei rsautl.
Eine weitere sinnvolle Option ist z.B. noch -a, welche die verschlüsselten Daten in der Datei noch base64 kodiert.
$ cat secret.txt.enc U2FsdGVkX18vM/gClOw34NJQday0+By5Ztpd2HKvbVK3D4ccDk3qrbaGZo065h7b
AES Crypt
Um eine Datei verhältnismäßig einfach per AES zu verschlüsseln (ähnlich ccrypt) bietet sich das Tool AES Crypt an.
- Projektseite
Hierbei handelt es sich um ein recht einfaches Programm, welches (auf Wunsch) auch per GUI bedient werden kann.
Installation
- Um die einfache CLI-Version zu installieren, geht man auf die Download-Seite und lädt sich das * aktuelle .tgz Archiv herunter.
- Anschließend entpackt man das Archiv per tar -xzf <archivname>, wechselt hinein und dort in das Unterverzeichnis src.
- Dort führt man den Befehl make aus.
- Möchte man die kompilierten Binärdateien systemweit verfügbar machen, kann man anschließend den Befehl make install ausführen.
- Durch die Kompillierung entstehen zwei Binärdateien: aescrypt und aescrypt_keygen
Dateien verschlüsseln
- Syntax
aescrypt -e -p <Passwort> <Dateiname>
- -e steht für encrypt
- -p gibt das Passwort an (wird dieser Parameter nicht angegeben, gibt man das Passwort bei der Verschlüsselung im Terminal ein)
- Hierbei entsteht eine Datei welche die Endung .aes trägt.
Dateien entschlüsseln
- Syntax
aescrypt -d -p <Passwort> <Dateiname>
- -d steht für decrypt
- -p gibt auch hier wieder das Passwort an
Weitere Möglichkeiten findet man unter: aescrypt.com
Verschlüsselung von Textdateien mit VIM
Vim bietet ebenfalls die Möglichkeit an Dateien zu, welche man in Vim bearbeitet, zu verschlüsseln.
- Hierzu können folgende Algorithmen verwendet werden
- zip (Standardwert, PkZip kompatibel, schwache Verschlüsselung)
- blowfish (mittelstarke Verschlüsselung, ab Vim >7.3)
- blowfish2 (mittelstarke Verschlüsselung, ab Vim >7.4, hierbei wird mit zusätzlichen Seed gearbeitet womit sich die verschlüsselten Bytes bei jedem speichern ändern)
Algorithmus (cryptmethod) festlegen
Sollte keine cryptmethod gesetzt sein, kann man dies direkt in Vim per :setlocal cm=<Algorithmus> tun.
- Beispiel
:setlocal cm=blowfish2
Um diesen Wert persistent zu setzen, trägt man in der ~/.vimrc folgende Zeile ein:setlocal cm=blowfish2
- Prüfen welcher Algorithmus aktuell verwendet wird
:setlocal cm cryptmethod=blowfish2
Dateien verschlüsseln
Möchte man eine bestehende Textdatei noch verschlüsseln, so kann man :X verwenden.Alternativ kann man auch Vim mit -x starten.
- Beispiel
vim -x secret.txt
Anschließend wird man nach einem Passwort gefragt und beim speichern (:w) wird die Datei dann verschlüsselt.
Dateien entschlüsseln
Ruft man eine per Vim verschlüsselte Datei wieder mit Vim auf wird man direkt nach einem Passwort für die Entschlüsselung gefragt.
$ vim secret.txt
Geben Sie bitte den Schlüssel für "secret.txt" ein: Geben Sie bitte den Schlüssel ein: