Datei verschlüsseln: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(27 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
== Einzelne Dateien verschlüsseln ==
'''Datein verschlüsseln''' - Tool-Übersicht
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 <tt>man</tt> oder <tt>help</tt> 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
** wenn nicht mit [[wipe]] oder [[shred]] vernichtet


== GnuPG ==
Einzelne Datei verschlüsseln
siehe [[GnuPG]]


== ccrypt ==
== Werkzeuge ==
siehe [[ccrypt]]
{| class="wikitable big"
|-
! Möglichkeit!!Beschreibung
|-
| [[GnuPG]] ||
|-
| [[ccrypt]] ||
|-
| [[openssl]] ||
|-
| [[EncFS]] ||
|-
| [[aescrypt]] ||
|-
| [[Vim/Kryptografie]] ||
|}


== OpenSSL ==
== Hinweise ==
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.
* Dateien müssen manuell ver- und entschlüsseln werden
 
* Originaldatei muss manuell gelöscht werden
; Verschlüsseln
** Gelöschten Dateien sind unter Umständen wiederherstellbar
#!/bin/bash
** wenn nicht mit [[wipe]] oder [[shred]] vernichtet
# 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 [https://www.openssl.org/ 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 <tt>-d</tt> 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 <tt>rsautl</tt>.
 
Eine weitere sinnvolle Option ist z.B. noch <tt>-a</tt>, 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 [https://de.wikipedia.org/wiki/Advanced_Encryption_Standard AES] zu verschlüsseln (ähnlich ccrypt) bietet sich das Tool '''AES Crypt''' an.
 
; Projektseite
* [https://www.aescrypt.com/linux_aes_crypt.html AES Crypt]
 
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 [https://www.aescrypt.com/download/ Download-Seite] und lädt sich das * aktuelle .tgz Archiv herunter.
* Anschließend entpackt man das Archiv per <tt>tar -xzf <archivname></tt>, wechselt hinein und dort in das Unterverzeichnis <tt>src</tt>.
* Dort führt man den Befehl <tt>make</tt> aus.
* Möchte man die kompilierten Binärdateien systemweit verfügbar machen, kann man anschließend den Befehl <tt>make install</tt> ausführen.
* Durch die Kompillierung entstehen zwei Binärdateien: <tt>aescrypt</tt> und <tt>aescrypt_keygen</tt>
 
==== 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: [https://www.aescrypt.com/linux_aes_crypt.html 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 <tt>:setlocal cm=<Algorithmus></tt> tun.
; Beispiel
:setlocal cm=blowfish2
 
Um diesen Wert persistent zu setzen, trägt man in der <tt>~/.vimrc</tt> folgende Zeile ein:<tt>setlocal cm=blowfish2</tt>
 
; 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 <tt>:X</tt> verwenden.Alternativ kann man auch Vim mit <tt>-x</tt> starten.
 
;Beispiel
vim -x secret.txt
 
Anschließend wird man nach einem Passwort gefragt und beim speichern (<tt>:w</tt>) wird die Datei dann verschlüsselt.


==== Dateien entschlüsseln ====
[[Kategorie:Kryptografie/Anwendung]]
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:
[[Kategorie:Verschlüsselung]]

Aktuelle Version vom 11. April 2024, 13:35 Uhr

Datein verschlüsseln - Tool-Übersicht

Einzelne Datei verschlüsseln

Werkzeuge

Möglichkeit Beschreibung
GnuPG
ccrypt
openssl
EncFS
aescrypt
Vim/Kryptografie

Hinweise

  • Dateien müssen manuell ver- und entschlüsseln werden
  • Originaldatei muss manuell gelöscht werden
    • Gelöschten Dateien sind unter Umständen wiederherstellbar
    • wenn nicht mit wipe oder shred vernichtet