|
|
(46 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) |
Zeile 1: |
Zeile 1: |
| = Einzelne Dateien verschlüsseln =
| | '''Datein verschlüsseln''' - Tool-Übersicht |
| 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 ==
| | 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 [3] statt. Durch Eingabe von
| |
|
| |
|
| {{{#!vorlage Befehl | | == 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 |
| | * Originaldatei muss manuell gelöscht werden |
| | ** Gelöschten Dateien sind unter Umständen wiederherstellbar |
| | ** wenn nicht mit [[wipe]] oder [[shred]] vernichtet |
|
| |
|
| {{{#!vorlage Experten
| | [[Kategorie:Kryptografie/Anwendung]] |
| 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
| |
| | |
| {{{#!vorlage Befehl
| |
| gpg -d DATEINAME.gpg > DATEINAME
| |
| }}}
| |
| | |
| wird eine verschlüsselte Datei '''DATEINAME.gpg''' nach Eingabe des Passwortes wieder entschlüsselt und als '''DATEINAME''' gespeichert.
| |
| | |
| {{{#!vorlage 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.
| |
| }}}
| |
| | |
| [[Anker(luks)]]
| |
| | |
| | |
| = 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) ===
| |
| | |
| Mit EncFS ist es möglich Ordner zu verschlüsselte und dann wieder per Passwort zu entschlüsseln.Dateien werden in verschlüsselten Ordnern abgelegt, welche bei der Entschlüsselung in das bestehende Dateisystem eingehangen werden.'''Anmerkung:''' Es existiert eine (theoretische) [https://defuse.ca/audits/encfs.htm Schwachstelle] in diesem Tool, welche den normalen Anwender allerdings nicht betrifft.
| |
| | |
| Laut EncFS Security Audit {en} vom 14.01.2014 enthält EncFS in der Version 1.7.4 einige potentielle Schwachstellen.
| |
| Das Fazit der Prüfung: EncFS ist wahrscheinlich noch sicher, solange ein potentieller Angreifer nur (genau) eine Version der verschlüsselten Daten erhält, wie z.B. bei Diebstahl oder Verlust eines Datenträgers.
| |
| Kann ein potentieller Angreifer allerdings mehr als eine Version der verschlüsselten Daten einsehen, ist EncFS laut der Sicherheitsprüfung nicht mehr geeignet.
| |
| Die verbreitete Verwendung von EncFS zur Verschlüsselung von Daten in der Cloud ist ein solcher Risikofall.
| |
| | |
| Stand April 2018: Sieben von zehn im Audit aufgezeigten Schwachstellen sind im EncFS-Bugtracker bis heute offen und für eine irgendwann geplante Version 2.0 zurückgestellt. Die aktuelle Version ist 1.9.5 aus April 2018.
| |
| | |
| '''Quelle:''' [https://wiki.ubuntuusers.de/EncFS/ wiki.ubuntuusers.de]
| |
| | |
| '''INSTALLATION'''Die EncFS-Pakete sind mittlerweile in jeder bekannten Linux-Distro enthalten und können somit direkt über die entsprechenden Paketquellen installiert werden.
| |
| | |
| '''Anwendung'''Um die Ordner (einen versteckten mit den verschlüsselten Dateien und einen Ordner als Mountpunkt) anzulegen verwendet man folgende Syntax:<tt>encfs <Pfad/zum/geheimen/Ordner> <mountpunkt> </tt>
| |
| | |
| '''HINWEIS:''' Verzeichnisse werden mit dem selben Befehl eingehängt, mit dem sie auch neu erstellt werden.
| |
| | |
| Beispiel:
| |
| | |
| encfs ~/.secret ~/secret
| |
| Das Verzeichnis "/home/rasputin/.secret/" existiert nicht. Soll es angelegt werden? (y,N) y
| |
| Das Verzeichnis "/home/rasputin/secret/" existiert nicht. Soll es angelegt werden? (y,N) y
| |
| Neues verschlüsselter Datenträger wird angelegt.
| |
| Bitte wählen Sie eine der folgenden Optionen:
| |
| "x" für den Experten-Modus,
| |
| "p" für den vorkonfigurierten Paranoia-Modus,
| |
| etwas anderes oder eine Leerzeile wählt den Standard-Modus.
| |
| ?> p
| |
| | |
| Paranoide Einstellungen gewählt.
| |
| | |
| Konfiguration abgeschlossen. Das angelegte Dateisystem hat die
| |
| folgenden Eigenschaften:
| |
| Dateisystem-Verschlüsselung: "ssl/aes", Version 3:0:2
| |
| Dateinamenkodierung: "nameio/block", Version 4:0:2
| |
| Schlüssellänge: 256 Bits
| |
| Blockgröße: 1024 Bytes, enthält 8 Bytes MAC-Kopf
| |
| Jede Datei enthält 8 Bytes Vorspann mit einmaligen IV-Daten.
| |
| Dateinamenkodierung benutzt IV-Verkettungsmodus.
| |
| Dateidaten-IV ist mit Dateinamen-IV verkettet.
| |
| Dateilöcher wurden zur verschlüsselten Ausgabe durchgereicht.
| |
| | |
| <nowiki>-------------------------- WARNUNG</nowiki>
| |
| <nowiki>--------------------------</nowiki>
| |
| Die externe Initialisierungsvektor-Verkettung wurde ausgewählt.
| |
| Mit dieser Option können keine Hard-Links verwendet werden.
| |
| Bei manchen Programmen (z.B. 'mutt' und 'procmail') kann dies zu Fehlern führen.
| |
| Weitere Informationen befinden sich auf der Encfs-Mailingliste.
| |
| Wenn Sie diese Option ändern wollen, drücken sie STRG-C zum Abbrechen und beginnen erneut.
| |
| | |
| Nun wird ein Passwort für das Dateisystem benötigt.
| |
| Da es keinen Mechanismus zur Wiederhestellung gibt, müssen Sie
| |
| sich an das Kennwort erinnern! Das Kennwort kann mit encfsctl
| |
| nächträglich geändert werden.
| |
| | |
| Neues EncFS-Passwort:
| |
| EncFS-Passwort bestätigen:
| |
| | |
| Nachdem dies durchgeführt wurde können wir den eingehangenen Ordner (~/secret) die Dateien ablegen, welche durch Verschlüsselung geschützt werden sollen.
| |
| | |
| „Standard-Modus“ und „Paranoia-Modus“ bitten lediglich um die Eingabe eines Passworts, wobei der Paranoia-Modus eine etwas stärkere Verschlüsselung und einige zusätzliche Sicherheitsfeatures bietet. Der „Experten-Modus“ erlaubt den weiter fortgeschrittenen Benutzern die Art der Verschlüsselung zu wählen sowie diverse weitere Optionen zu konfigurieren.
| |
| | |
| Um zu überprüfen ob alles geklappt hat kann man folgenden Befehl verwenden:
| |
| | |
| $ mount | grep "encfs"
| |
| encfs on /home/rasputin/secret type fuse.encfs (rw,nosuid,nodev,relatime,user_id=1000,group_id=100,default_permissions)
| |
| | |
| '''Aushängen des Verzeichnisses'''
| |
| | |
| Zum aushängen des Ordners wird [https://en.wikipedia.org/wiki/Filesystem_in_Userspace FUSE] verwendet.Der entsprechende Befehl lautet:<tt>fusermount -u ~/secret</tt>'''-u''' —> steht für unmount
| |
| | |
| EncFS bietet noch weítere Optionen, z.b. das nach x Minuten Inaktivität der Ordner ausghangen wird (Option: <tt>-i</tt> bzw. <tt>--idle=</tt> mit Angabe der Zeit in Minuten) oder auch einen <tt>verbose</tt> Modus mit welchem Probleme besser analysiert werden können (Bsp: <tt>encfs -v -f ~/.secret ~/secret 2> encfs-report.txt</tt>). Es lohnt sich also ein Blick in die man Page (<tt>man encfs</tt>).
| |
| | |
| === GPG ===
| |
| | |
| '''GPG''' (OpenPGP) ist eines der bekanntesten Programme um Dateien zu verschlüsseln.
| |
| | |
| '''Dateien verschlüsseln'''
| |
| | |
| Syntax:<tt>gpg -c <zu verschlüsselnde Datei></tt>
| |
| | |
| Beispiel:<tt>gpg -c secret.txt</tt>
| |
| | |
| Hierbei entsteht, nach zweimaliger Eingabe eines Passwortes, die Datei <tt>secret.txt.gpg</tt>
| |
| | |
| '''Dateien entschlüsseln'''
| |
| | |
| Syntax:<tt>gpg <verschlüsselte Datei></tt>oder<tt>gpg -d <verschlüsselte Datei></tt>oder <tt>gpg --decrypt <verschlüsselte Datei></tt>
| |
| | |
| '''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:<tt>gpg -c --cipher-algo TWOFISH --digest-algo SHA512 --s2k-digest-algo SHA512 <zu verschlüsselnde Datei></tt>
| |
| | |
| === OpenSSL ===
| |
| | |
| Es ist auch möglich mit [https://www.openssl.org/ OpenSSL] Dateien zu verschlüsseln.
| |
| | |
| '''Dateien verschlüsseln'''
| |
| | |
| Syntax:<tt>openssl enc <Algorithmus> -in <zu verschlüsselnde Datei> -out <Dateiname für verschlüsselte Datei></tt>
| |
| | |
| Welche Verschlüsselungs-Algorithmen verfügbar sind kann man sich per <tt>openssl ciphers</tt> anzeigen lassen:
| |
| | |
| $ 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:<tt>openssl enc -aes-256-cbc -in secret.txt -out secret.txt.enc</tt>
| |
| | |
| '''Dateien entschlüsseln'''
| |
| | |
| Syntax:<tt>openssl enc <Algorithmus> -d -in <zu entschlüsselnde Datei> -out <Dateiname für entschlüsselte Datei></tt>Linux: Dateien verschlüsselnIm Grunde handelt es sich um den gleichen Befehl wie bei der Verschlüsselung, nur das 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:<tt>ccrypt <Dateiname></tt>
| |
| | |
| 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:<tt>ccdecrypt <Dateiname></tt>
| |
| | |
| === 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:<tt>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:<tt>aescrypt -d -p <Passwort> <Dateiname></tt>'''-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
| |
| Geben Sie bitte den Schlüssel für "secret.txt" ein:
| |
| Geben Sie bitte den Schlüssel ein:
| |