Datei verschlüsseln: Unterschied zwischen den Versionen
Keine Bearbeitungszusammenfassung |
|||
Zeile 1: | Zeile 1: | ||
= Einzelne Dateien verschlüsseln = | = Einzelne Dateien verschlüsseln = | ||
Der große 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, auch sind die gelöschten Original-Dateien unter Umständen wiederherstellbar, wenn diese nicht mit [:wipe:] oder [:shred:] entsorgt werden. | Der große 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, auch sind die gelöschten Original-Dateien unter Umständen wiederherstellbar, wenn diese nicht mit [:wipe:] oder [:shred:] entsorgt werden. | |||
== GnuPG == | == GnuPG == | ||
Möchte man einzelne Dateien verschlüsseln, so kann man dies mit [:GnuPG:] realisieren. Das Verschlüsseln von Dateien findet im Terminal [3] statt. Durch Eingabe von | Möchte man einzelne Dateien verschlüsseln, so kann man dies mit [:GnuPG:] realisieren. Das Verschlüsseln von Dateien findet im Terminal [3] statt. Durch Eingabe von | ||
gpg -c DATEINAME | |||
gpg -c DATEINAME | |||
wird die Datei '''DATEINAME''' nach doppelter Eingabe eines Passwortes verschlüsselt. | wird die Datei '''DATEINAME''' nach doppelter Eingabe eines Passwortes verschlüsselt. | ||
Durch das Argument `--cipher-algo` kann der Verschlüsselungsalgorithmus manuell bestimmt werden, standardmäßig wird hier [wikipedia:CAST_(Algorithmus):CAST5] verwendet. 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. | Durch das Argument `--cipher-algo` kann der Verschlüsselungsalgorithmus manuell bestimmt werden, standardmäßig wird hier [wikipedia:CAST_(Algorithmus):CAST5] verwendet. 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. | ||
Durch Ausführen von | Durch Ausführen von | ||
gpg -d DATEINAME.gpg > DATEINAME | |||
gpg -d DATEINAME.gpg > DATEINAME | |||
wird eine verschlüsselte Datei '''DATEINAME.gpg''' nach Eingabe des Passwortes wieder entschlüsselt und als '''DATEINAME''' gespeichert. | 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 | * 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. | `echo RELOADAGENT | gpg-connect-agent ` ausführen. | ||
== ccrypt == | == ccrypt == | ||
Zeile 66: | Zeile 63: | ||
# Version 1.0 verschlüsselte Datei nicht entschlüsselt werden. | # Version 1.0 verschlüsselte Datei nicht entschlüsselt werden. | ||
}}} | }}} | ||
= Linux: Dateien verschlüsseln = | = Linux: Dateien verschlüsseln = | ||
Nachfolgend möchte ich eine grobe Übersicht aufzeigen, welche Möglichkeiten es gibt Dateien in Linux zu 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. | * 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) === | === EncFS (Encrypted Filesystem) === | ||
Zeile 128: | Zeile 123: | ||
$ cat secret.txt.enc | $ cat secret.txt.enc | ||
U2FsdGVkX18vM/gClOw34NJQday0+By5Ztpd2HKvbVK3D4ccDk3qrbaGZo065h7b | U2FsdGVkX18vM/gClOw34NJQday0+By5Ztpd2HKvbVK3D4ccDk3qrbaGZo065h7b | ||
=== ccrypt === | === ccrypt === | ||
Zeile 134: | Zeile 129: | ||
'''ccrypt''' verwendet den Rijndael-Algorithmus zur Verschlüsselung von Dateien und befindet sich in den regulären Distro-Repos. | '''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 === | === 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. | 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 | ; 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. | 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] | Weitere Möglichkeiten findet man unter: [https://www.aescrypt.com/linux_aes_crypt.html aescrypt.com] | ||
=== Verschlüsselung von Textdateien mit VIM === | === 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) | * 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) | * 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> | '''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> |
Version vom 16. Dezember 2022, 09:53 Uhr
Einzelne Dateien verschlüsseln
Der große 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, auch sind die gelöschten Original-Dateien unter Umständen wiederherstellbar, wenn diese nicht mit [:wipe:] oder [:shred:] entsorgt werden.
GnuPG
Möchte man einzelne Dateien verschlüsseln, so kann man dies mit [:GnuPG:] realisieren. Das Verschlüsseln von Dateien findet im Terminal [3] statt. Durch Eingabe von
gpg -c DATEINAME
wird die Datei DATEINAME nach doppelter Eingabe eines Passwortes verschlüsselt.
Durch das Argument `--cipher-algo` kann der Verschlüsselungsalgorithmus manuell bestimmt werden, standardmäßig wird hier [wikipedia:CAST_(Algorithmus):CAST5] verwendet. 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.
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: {{{#!vorlage Befehl
ccencrypt foobar }}}
* Entschlüsseln: {{{#!vorlage Befehl
ccdecrypt foobar }}}
* Entschlüsseln – nur auf die Standardausgabe: {{{#!vorlage Befehl
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: {{{#!code bash
- !/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: {{{#!code bash
- !/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 man oder help 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 secret.txt.gpg
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 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 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
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 .cpt
Dateien entschlüsseln
- Syntax
ccdecrypt <Dateiname>
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) festlegenSollte 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
Um zu prüfen welcher Algorithmus aktuell verwendet wird, verwendet man in Vim den Befehl :setlocal cm?.Eine entsprechende Ausgabe kann dann wie folgt aussehen: 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: