openssl-verschluesselung_mit_passwort

Dies ist eine alte Version des Dokuments!


OpenSSL-Verschlüsselung mit Passwort

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?

ä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
/home/http/wiki/data/attic/openssl-verschluesselung_mit_passwort.1721739539.txt · Zuletzt geändert: von manfred