Datei verschlüsseln: Unterschied zwischen den Versionen

Aus Foxwiki
Zeile 13: Zeile 13:


== ccrypt ==
== ccrypt ==
'''ccrypt''' kann direkt aus den Paketquellen installiert werden.
siehe [[ccrypt]]
 
; Verschlüsseln
ccencrypt foobar
 
; Entschlüsseln
ccdecrypt foobar
 
Entschlüsseln – nur auf die Standardausgabe:
ccat foobar
 
Weitere Informationen bietet die [:man:Manpage] zur Anwendung.
 
=== ccrypt ===
 
'''ccrypt''' verwendet den Rijndael-Algorithmus zur Verschlüsselung von Dateien und befindet sich in den regulären Distro-Repos.
 
==== Dateien verschlüsseln ====
; Syntax
ccrypt <Dateiname>
 
; Beispiel
ccrypt secret.txt
Kennwort zur Verschlüsselung:
Kennwort zur Verschlüsselung: (wiederholen)
 
Hierbei wird die ursprüngliche Datei durch die verschlüsselte Version ersetzt und diese besitzt die Endung <tt>.cpt</tt>
 
==== Dateien entschlüsseln ====
; Syntax
ccdecrypt <Dateiname>


== OpenSSL ==
== OpenSSL ==

Version vom 16. Dezember 2022, 10:46 Uhr

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"
  1. openssl benutzt ab Version 1.1 (?) nicht mehr -md md5 als Default-Option, ohne diese Option kann eine mit
  2. 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: