Benutzer-Werkzeuge

Webseiten-Werkzeuge


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