|
|
Zeile 16: |
Zeile 16: |
|
| |
|
| == OpenSSL == | | == 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.
| | siehe [[openssl]] |
| | |
| ; 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.
| |
| | |
| === 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
| |
| | |
|
| |
|
| = TMP = | | = TMP = |
Version vom 16. Dezember 2022, 10:54 Uhr
Einzelne 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.
- 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
GnuPG
siehe GnuPG
ccrypt
siehe ccrypt
OpenSSL
siehe openssl
TMP
EncFS (Encrypted Filesystem)
siehe EncFS
AES Crypt
siehe aescrypt
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 :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
- 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 :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: