einzelne_dateien_mit_openssl_verschluesseln
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| einzelne_dateien_mit_openssl_verschluesseln [2024-03-03 04:24:15] – manfred | einzelne_dateien_mit_openssl_verschluesseln [2024-10-29 15:44:17] (aktuell) – [mit RSA-Schlüssel] manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== einzelne Dateien mit openSSL verschlüsseln ====== | ====== einzelne Dateien mit openSSL verschlüsseln ====== | ||
| - | [[https:// | + | * [[:: |
| + | * [[:: | ||
| + | * [[https:// | ||
| * [[http:// | * [[http:// | ||
| * [[http:// | * [[http:// | ||
| Zeile 16: | Zeile 17: | ||
| __Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option '' | __Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option '' | ||
| - | |||
| - | |||
| - | ===== HASH / Quersummer ===== | ||
| - | |||
| - | eine Datei anlegen, die verschlüsselt werden soll: | ||
| - | > echo "Hallo Welt!" > Text.txt | ||
| - | |||
| - | > openssl dgst -sha3-512 Datei.edg | ||
| - | > openssl sha3-512 Datei.edg | ||
| - | |||
| - | |||
| - | ===== Allgemeines ===== | ||
| - | |||
| - | einen privaten RSA-Schlüssel generieren: | ||
| - | > openssl genrsa -out private.pem 4096 | ||
| - | > ls *.pem | ||
| - | private.pem | ||
| - | |||
| - | aus dem privaten RSA-Schlüssel einen öffentlichen RSA-Schlüssel generieren: | ||
| - | > openssl rsa -in private.pem -out public.pem -outform PEM -pubout | ||
| - | > ls *.pem | ||
| - | private.pem | ||
| - | public.pem | ||
| - | |||
| - | einen privaten RSA-Schlüssel mit dazugehörigem (öffentlichen) Zertifikat erzeugen: | ||
| - | > openssl req -rand / | ||
| - | > ls *.pem | ||
| - | private.pem | ||
| - | cert.pem | ||
| - | |||
| - | // | ||
| - | |||
| - | |||
| - | ===== mögliche Verschlüsselungsalgorithmen ===== | ||
| - | |||
| - | nutzbare Verschlüsselungsalgorithmen anzeigen lassen: | ||
| - | |||
| - | __Linux und FreeBSD 14.0:__ | ||
| - | > openssl enc -list | ||
| - | > openssl list -cipher-commands | ||
| - | > openssl list -cipher-algorithms | ||
| - | |||
| - | __älteres FreeBSD:__ | ||
| - | > openssl enc -ciphers | ||
| - | > openssl list -cipher-commands | ||
| - | > openssl list -cipher-algorithms | ||
| - | ... | ||
| - | aes-256-cbc | ||
| - | ... | ||
| - | bf-cbc | ||
| - | ... | ||
| - | |||
| - | Leider werden die guten Algotithmen (wie __Serpent__, | ||
| - | Die besten verfügbaren sind die folgenden (ich bevorzuge den **BlowFish**, | ||
| - | * AES-256-CBC | ||
| - | * BF-CBC (blowfish) | ||
| - | |||
| - | Das sind alles Synonyme für **BlowFish**: | ||
| - | * blowfish | ||
| - | * bf | ||
| - | * bf-cbc | ||
| - | * BF-CBC | ||
| Zeile 87: | Zeile 26: | ||
| - | ==== in Text-Form | + | ==== Zeichenkette symetrisch |
| eine Datei mit geheimem Inhalt anlegen: | eine Datei mit geheimem Inhalt anlegen: | ||
| Zeile 95: | Zeile 34: | ||
| den geheimen Dateiinhalt verschlüsseln: | den geheimen Dateiinhalt verschlüsseln: | ||
| - | > cat geheim.txt | openssl enc -salt -iter 1234567 -bf-cbc -a -e > geheim.ssl | + | > cat geheim.txt | openssl enc -salt -iter 1234567 -aes-256-cbc -a -e > geheim.ssl |
| enter bf-cbc encryption password: | enter bf-cbc encryption password: | ||
| Verifying - enter bf-cbc encryption password: | Verifying - enter bf-cbc encryption password: | ||
| Zeile 104: | Zeile 43: | ||
| das Geheimnis wieder sichtbar machen: | das Geheimnis wieder sichtbar machen: | ||
| - | > cat geheim.ssl | openssl enc -salt -iter 1234567 -bf-cbc -a -d | + | > cat geheim.ssl | openssl enc -salt -iter 1234567 -aes-256-cbc -a -d |
| enter bf-cbc decryption password: | enter bf-cbc decryption password: | ||
| Das ist ein geheimer Text | Das ist ein geheimer Text | ||
| - | ==== in Binär-Form | + | ==== Dateien symetrisch |
| - | die Datei verschlüsseln: | + | |
| - | > cat datei | openssl enc -salt -iter 1234567 -bf-cbc -e > datei.ssl | + | === Datei mit OpenSSL auf der CLI verschlüsseln === |
| + | |||
| + | Datei verschlüsseln | ||
| + | > echo "ganz geheimer Text" > datei.txt | ||
| + | > openssl enc -a -salt -iter 1234567 -aes-256-cbc -e -in datei.txt -out datei.aes | ||
| + | oder | ||
| + | > openssl enc -a -salt -iter 1234567 -aes-256-cbc -e -in datei.txt > datei.aes | ||
| + | |||
| + | Datei wieder entschlüsseln (AES): | ||
| + | > openssl enc -a -salt -iter 1234567 -aes-256-cbc -d -in datei.aes -out datei2.txt | ||
| + | oder | ||
| + | > cat datei.aes | openssl enc -a -salt -iter 1234567 -aes-256-cbc -d > datei2.txt | ||
| + | |||
| + | einen ganzen Verzeichnisbaum verschlüsseln (AES): | ||
| + | > tar -cf - / | ||
| + | oder | ||
| + | | ||
| + | |||
| + | und wieder entschlüsseln (AES): | ||
| + | > openssl enc -salt -iter 1234567 -aes-256-cbc -d -in verzeichnis.tar.aes | tar -x -f - | ||
| + | oder | ||
| + | > cat verzeichnis.tar.aes | openssl enc -salt -iter 1234567 -aes-256-cbc -d | tar -x -f - | ||
| + | |||
| + | Datei verschlüsseln (mit BF und ohne Passwrtabfrage): | ||
| + | > openssl enc -a -salt -iter 1234567 -bf-cbc -md sha512 -k " | ||
| enter bf-cbc encryption password: | enter bf-cbc encryption password: | ||
| Verifying - enter bf-cbc encryption password: | Verifying - enter bf-cbc encryption password: | ||
| - | | ||
| - | > rm -f datei | ||
| - | | ||
| - | > cat datei.ssl | openssl enc -salt -iter 1234567 -bf-cbc -d > datei | ||
| + | Datei verschlüsseln (mit BF und ohne Passwrtabfrage): | ||
| + | > openssl enc -a -salt -iter 1234567 -bf-cbc -md sha512 -k " | ||
| + | oder | ||
| + | > cat datei.ssl | openssl enc -a -salt -iter 1234567 -bf-cbc -md sha512 -k " | ||
| - | ==== Datei mit OpenSSL per Skript verschlüsseln ==== | + | |
| + | === Datei mit OpenSSL per Skript verschlüsseln === | ||
| + | |||
| + | Die Datei ''/ | ||
| + | ~/ | ||
| + | enter bf-cbc encryption password: | ||
| + | Verifying - enter bf-cbc encryption password: | ||
| + | -rw-r--r-- | ||
| + | |||
| + | Die Datei ''/ | ||
| + | ~/ | ||
| + | enter bf-cbc decryption password: | ||
| + | -rw-r--r-- | ||
| Zeile 298: | Zeile 273: | ||
| - | === Test mit Textdatei === | ||
| - | Die Datei ''/ | + | ===== Asymetrische Verschlüsselung |
| - | ~/ | + | |
| - | enter bf-cbc encryption password: | + | |
| - | Verifying - enter bf-cbc encryption password: | + | |
| - | -rw-r--r-- | + | |
| - | Die Datei ''/ | ||
| - | ~/ | ||
| - | enter bf-cbc decryption password: | ||
| - | -rw-r--r-- | ||
| - | Datei verschlüsseln (AES): | + | ==== mit RSA-Schlüssel ==== |
| - | > echo "ganz geheimer Text" > datei.txt | + | |
| - | > openssl enc -a -salt -iter 1234567 -aes-256-cbc -e -in datei.txt -out datei.aes | + | |
| - | oder | + | |
| - | > openssl enc -a -salt -iter 1234567 -aes-256-cbc -e -in datei.txt > datei.aes | + | |
| - | Datei wieder entschlüsseln (AES): | + | Große Dateien können nicht asymetrisch verschlüsselt werden! => [[https:// |
| - | > openssl enc -a -salt -iter 1234567 | + | |
| - | oder | + | |
| - | > cat datei.aes | openssl | + | |
| - | einen ganzen Verzeichnisbaum | + | Die übliche Vorgehensweise, |
| - | > tar -cf - / | + | Große Dateien werden jedes Mal mit einem neuen zufällig generierten, |
| - | | + | Der dazu verwendete symmetrische Schlüssel wird mit dem öffentlichen RSA-Schlüssel verschlüsselt. |
| - | > tar -cf - / | + | Dann wird der Chiffre-Text zusammen mit dem verschlüsselten symmetrischen Schlüssel an den Empfänger übertragen. |
| + | Der Empfänger entschlüsselt den symmetrischen Schlüssel mit seinem privaten Schlüssel und verwendet dann den symmetrischen Schlüssel zum Entschlüsseln der Nachricht (Chiffre-Text). | ||
| - | und wieder entschlüsseln (AES): | + | Datei verschlüsseln: |
| - | > openssl | + | > echo "ganz geheimer Text" > datei.txt |
| + | > openssl | ||
| oder | oder | ||
| - | > cat verzeichnis.tar.aes | openssl | + | > openssl |
| - | Datei verschlüsseln (mit BF und ohne Passwrtabfrage): | + | Datei entschlüsseln: |
| - | > openssl | + | > openssl |
| - | enter bf-cbc encryption password: | + | |
| - | Verifying - enter bf-cbc encryption password: | + | |
| - | Datei verschlüsseln | + | __Manchmal gibt es Probleme |
| - | > openssl enc -a -salt -iter 1234567 -bf-cbc -md sha512 -k " | + | |
| - | oder | + | |
| - | > cat datei.ssl | openssl enc -a -salt -iter 1234567 -bf-cbc -md sha512 -k " | + | |
| - | + | > base64 | |
| - | ===== Asymetrische Verschlüsselung (mit SSL-Schlüssel) ===== | + | > openssl |
| - | + | > openssl | |
| - | + | ||
| - | ==== mit RSA-Schlüssel ==== | + | |
| - | + | ||
| - | Datei verschlüsseln: | + | |
| - | | + | |
| - | > openssl | + | |
| - | + | ||
| - | Datei entschlüsseln: | + | |
| - | > openssl | + | |
| Zeile 362: | Zeile 309: | ||
| eine Zeichenkette mit einem Zertifikat verschlüsseln: | eine Zeichenkette mit einem Zertifikat verschlüsseln: | ||
| - | > openssl smime -encrypt -aes256 -out message_verschluesselt.txt cert.pem | + | > openssl smime -encrypt -aes256 |
| die verschlüsselte Zeichenkette mit dem privaten Schlüssel entschlüsseln: | die verschlüsselte Zeichenkette mit dem privaten Schlüssel entschlüsseln: | ||
| - | > openssl smime -decrypt | + | > openssl smime -decrypt -inkey private.pem |
| + | > cat datei.txt | ||
| Text | Text | ||
/home/http/wiki/data/attic/einzelne_dateien_mit_openssl_verschluesseln.1709439855.txt · Zuletzt geändert: von manfred
