Datei verschlüsseln: Unterschied zwischen den Versionen

Aus Foxwiki
Keine Bearbeitungszusammenfassung
 
(40 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
= Einzelne Dateien verschlüsseln =
'''Datein verschlüsseln''' - Tool-Übersicht
* 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
Möchte man einzelne Dateien verschlüsseln, so kann man dies mit [[GnuPG]] realisieren.


Das Verschlüsseln von Dateien findet im Terminal statt. Durch Eingabe von
== Werkzeuge ==
gpg -c DATEINAME
{| class="wikitable big"
|-
! Möglichkeit!!Beschreibung
|-
| [[GnuPG]] ||
|-
| [[ccrypt]] ||
|-
| [[openssl]] ||
|-
| [[EncFS]] ||
|-
| [[aescrypt]] ||
|-
| [[Vim/Kryptografie]] ||
|}


wird die Datei '''DATEINAME''' nach doppelter Eingabe eines Passwortes verschlüsselt.
== Hinweise ==
 
* Dateien müssen manuell ver- und entschlüsseln werden
Durch das Argument `--cipher-algo` kann der Verschlüsselungsalgorithmus manuell bestimmt werden, standardmäßig wird hier [wikipedia:CAST_(Algorithmus):CAST5] verwendet.
* Originaldatei muss manuell gelöscht werden
 
** Gelöschten Dateien sind unter Umständen wiederherstellbar
Um eine Liste der unterstützten Algorithmen einzusehen, genügt die Eingabe von `gpg --version` im Terminal. Auch die Verschlüsselung von Dateien mit einem öffentlichen Schlüssel durch die Option `-e` ist möglich.
** wenn nicht mit [[wipe]] oder [[shred]] vernichtet
 
Durch Ausführen von
gpg -d DATEINAME.gpg > DATEINAME
 
wird eine verschlüsselte Datei '''DATEINAME.gpg''' nach Eingabe des Passwortes wieder entschlüsselt und als '''DATEINAME''' gespeichert.
 
; Hinweis
* Evtl. wird beim Verschlüsseln das eingegebene Passwort im Cache gespeichert, sodass man die verschlüsselte Datei direkt danach wieder ohne Passworteingabe entschlüsseln kann.
* Erst durch das Abmelden des Benutzers wird das Passwort im Cache gelöscht.
* Alternativ kann man auch
`echo RELOADAGENT | gpg-connect-agent ` ausführen.
 
== ccrypt ==
Das Programm [sourceforge2:ccrypt:] {en} kann direkt aus den Paketquellen installiert werden.
 
; Verschlüsseln
ccencrypt foobar
 
; Entschlüsseln
ccdecrypt foobar
 
Entschlüsseln – nur auf die Standardausgabe:
ccat foobar
 
 
Weitere Informationen bietet die [:man:Manpage] zur Anwendung.
 
== 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.
 
= Linux: 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 <tt>man</tt> oder <tt>help</tt> Seiten der Tools.
 
=== EncFS (Encrypted Filesystem) ===
siehe [[EncFS]]
 
=== GPG ===
'''GPG''' (OpenPGP) ist eines der bekanntesten Programme um Dateien zu verschlüsseln.
 
==== Dateien verschlüsseln ====
gpg -c <zu verschlüsselnde Datei>
 
; Beispiel
gpg -c secret.txt
 
Hierbei entsteht, nach zweimaliger Eingabe eines Passwortes, die Datei <tt>secret.txt.gpg</tt>
 
==== Dateien entschlüsseln ====
; Syntax
gpg <verschlüsselte Datei>
oder
gpg -d <verschlüsselte Datei>
oder
gpg --decrypt <verschlüsselte Datei>
 
; Hinweis
* Auch hier lässt sich die Sicherheit durch die zusätzliche Angabe verschiedener Parameter (.z.B. für den zu verwendenden Verschlüsselungsalgorithmus) erhöhen.
* Ein gutes Beipsiel dafür habe ich auf [https://wiki.ubuntuusers.de/GnuPG/Symmetrische_Verschlüsselung/ wiki.ubuntuusers.de] gefunden:
gpg -c --cipher-algo TWOFISH --digest-algo SHA512 --s2k-digest-algo SHA512 <zu verschlüsselnde Datei>
 
=== 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
 
=== 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>
 
=== 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></tt>'''-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: <tt>:setlocal cm=blowfish2</tt>
 
Um diesen Wert persistent zu setzen, trägt man in der <tt>~/.vimrc</tt> folgende Zeile ein:<tt>setlocal cm=blowfish2</tt>
 
Um zu prüfen welcher Algorithmus aktuell verwendet wird, verwendet man in Vim den Befehl <tt>:setlocal cm?</tt>.Eine entsprechende Ausgabe kann dann wie folgt aussehen: <tt>cryptmethod=blowfish2</tt>
 
'''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: <tt>vim -x secret.txt</tt>
 
Anschließend wird man nach einem Passwort gefragt und beim speichern (<tt>:w</tt>) 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
[[Kategorie:Kryptografie/Anwendung]]
Geben Sie bitte den Schlüssel für "secret.txt" ein:
Geben Sie bitte den Schlüssel ein:

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