|
|
(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:
| |