Dies ist eine alte Version des Dokuments!
OpenSSL-Verschlüsselung mit Passwort
- siehe auch:
Leider musste ich Anfang des Jahres 2024 (mit FreeBSD 14.0) feststellen, dass OpenSSL 3 die hier genannten Beispiele mit BlowFish (bf/bf-cbc) nicht mehr ausführt (das ging nur mit OpenSSL 1.1.1). Um diese Kommandos weiterhin ausführen zu können, muß man stattdessen den schwächeren AES (aes-256-cbc) verwenden.
Alle Cipher, die von dem Kommando openssl list -cipher-commands ausgegeben werden, können für die hier genannten Beispiel verwendet werden.
Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option -salt verwendet werden!
Mit OpenSSL eine Zeichenkette base64-kodieren:
> echo 'Hallo' | openssl enc -a -e SGFsbG8K > echo 'SGFsbG8K' | openssl enc -a -d Hallo
Leider kann OpenSSL kein Serpent und kein Twofish, deshalb müssen wir BlowFish verwenden.
Das sind alles Synonyme für BlowFish:
- blowfish
- bf
- bf-cbc
- BF-CBC
ein kurzes Beispiel für eine symetrische Datenverschlüsselung (mit dem Parameter -k kann man das Passwort an der CLI direkt mit übergeben, muß das aber nicht tun):
> echo 'Hallo' | openssl enc -salt -pbkdf2 -bf -a -e -k geheim U2FsdGVkX18ouNc6jFzkBRSQ9T28w9pW > echo 'U2FsdGVkX18ouNc6jFzkBRSQ9T28w9pW' | openssl enc -pbkdf2 -bf -a -d -k geheim Hallo
nutzbare Verschlüsselungsalgorithmen anzeigen lassen:
Linux und FreeBSD 14.0:
> openssl enc -list > openssl list -cipher-commands > openssl list -cipher-algorithms
mit AES256 (OpenSSL 3.0.12) ver- und entschlüsseln:
> echo "Hallo Welt!" | openssl enc -salt -pbkdf2 -aes-256-cbc -a -e -k geheim U2FsdGVkX1+IQzl442cG6a0/3e4wpCH2BqZ+8WoXYbQ= > echo 'U2FsdGVkX1+IQzl442cG6a0/3e4wpCH2BqZ+8WoXYbQ=' | openssl enc -pbkdf2 -aes-256-cbc -a -d -k geheim Hallo Welt!
mit Camellia256 (OpenSSL 3.0.12) ver- und entschlüsseln:
> echo "Hallo Welt!" | openssl enc -salt -pbkdf2 -camellia-256-cbc -a -e -k geheim U2FsdGVkX19bASuy32qe9FoA4yOSI/42fpdG93XSTU8= > echo 'U2FsdGVkX19bASuy32qe9FoA4yOSI/42fpdG93XSTU8=' | openssl enc -pbkdf2 -camellia-256-cbc -a -d -k geheim Hallo Welt!
Firefox und Opera deaktivieren CAMELLIA. Warum? Ist er zu schwach oder ist es ein anderer Grund? Laut dieser Quelle sollen AES und CAMELLIA in etwa gleich stark sein…
ältere FreeBSD:
> openssl enc -ciphers > openssl list -cipher-commands > openssl list -cipher-algorithms
mit Blowfish (OpenSSL 1.1.1) ver- und entschlüsseln:
> echo "Hallo Welt!" | openssl enc -salt -pbkdf2 -bf-cbc -a -e -k geheim U2FsdGVkX1+aDaO1UN6wTrpmTHwQnMRlGhUPlbYPDC8= > echo 'U2FsdGVkX1+aDaO1UN6wTrpmTHwQnMRlGhUPlbYPDC8=' | openssl enc -pbkdf2 -bf-cbc -a -d -k geheim Hallo Welt!
The -salt option should ALWAYS be used if the key is being derived from a password.
Das Passwort in einer Datei speichern, um automatisiert zu verschlüsseln:
> touch passwortdatei.txt > chmod 0600 passwortdatei.txt > echo "geheim" > passwortdatei.txt > echo 'Hallo' | openssl enc -salt -pbkdf2 -iter 4567890 -bf-cbc -a -e -pass file:passwortdatei.txt U2FsdGVkX1+8DaWoHh1YJFtX6qlnkBjL
das Geheimnis von der CLI verschlüsseln:
> echo "Hallo" | openssl enc -salt -pbkdf2 -iter 1234567 -bf-cbc -a -e enter bf-cbc encryption password: Verifying - enter bf-cbc encryption password: U2FsdGVkX1/RdDv9u2fRJtSGwATuvHEu > echo "U2FsdGVkX1/RdDv9u2fRJtSGwATuvHEu" | openssl enc -pbkdf2 -iter 1234567 -bf-cbc -a -d enter bf-cbc decryption password: Hallo
Das Passwort direkt an der CLI übergeben, um automatisiert zu verschlüsseln:
> export MYPW="geheim" > echo 'Hallo' | openssl enc -salt -pbkdf2 -iter 4567890 -bf-cbc -a -e -pass env:MYPW U2FsdGVkX1+G87gXFRuojo9Nt6Z0Wfne > echo 'Hallo' | openssl enc -salt -pbkdf2 -iter 4567890 -bf-cbc -a -e -pass pass:geheim U2FsdGVkX1+G87gXFRuojo9Nt6Z0Wfne > echo 'Hallo' | openssl enc -salt -pbkdf2 -iter 4567890 -bf-cbc -a -e -k geheim U2FsdGVkX1+G87gXFRuojo9Nt6Z0Wfne
