Benutzer-Werkzeuge

Webseiten-Werkzeuge


openssl-verschluesselung_mit_passwort

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
openssl-verschluesselung_mit_passwort [2024-06-24 16:23:26] manfredopenssl-verschluesselung_mit_passwort [2024-07-23 14:28:32] (aktuell) – [CHACHA20] manfred
Zeile 5: Zeile 5:
     * [[::GPG-Verschlüsselung mit Passwort]]     * [[::GPG-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.__+===== Allgemeines =====
  
-__Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option ''-salt'' verwendet werden!__ +Leider kann OpenSSL kein **Serpent** (//der meiner Kenntnis nach, z.Z. sicherste Cipher//und kein **Twofish** (//ist auch sehr sicher//), deshalb müssen wir **BlowFish** (//ist eigentlich veraltet und wurde durch Twofish abgelöst//verwenden.
- +
-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**: Das sind alles Synonyme für **BlowFish**:
Zeile 25: Zeile 15:
   * bf-cbc   * bf-cbc
   * BF-CBC   * BF-CBC
 +
 +**//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 Cipher **AES** (''aes-256-cbc'') oder **CHACHA20** (''-chacha20'') verwenden.//**
 +
 +__Alle Cipher, die von dem Kommando__ **''openssl list -cipher-commands''** __ausgegeben werden, können für die hier genannten Beispiel verwendet werden.__
 +
 +  > openssl ciphers -v | grep -F TLSv1.3
 +  TLS_AES_256_GCM_SHA384         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(256)            Mac=AEAD
 +  TLS_CHACHA20_POLY1305_SHA256   TLSv1.3 Kx=any      Au=any   Enc=CHACHA20/POLY1305(256) Mac=AEAD
 +  TLS_AES_128_GCM_SHA256         TLSv1.3 Kx=any      Au=any   Enc=AESGCM(128)            Mac=AEAD
  
 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)//: 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)//:
Zeile 30: Zeile 30:
   U2FsdGVkX18ouNc6jFzkBRSQ9T28w9pW   U2FsdGVkX18ouNc6jFzkBRSQ9T28w9pW
      
-  > echo 'U2FsdGVkX18ouNc6jFzkBRSQ9T28w9pW' | openssl enc -salt -pbkdf2 -bf -a -d -k geheim+  > echo 'U2FsdGVkX18ouNc6jFzkBRSQ9T28w9pW' | openssl enc -pbkdf2 -bf -a -d -k geheim
   Hallo   Hallo
 +
 +__Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option ''-salt'' verwendet werden!__
 +
 +
 +===== HASH =====
 +
 +Mit OpenSSL eine Zeichenkette ''base64''-kodieren:
 +  > echo 'Hallo' | openssl enc -a -e
 +  SGFsbG8K
 +  
 +  > echo 'SGFsbG8K' | openssl enc -a -d
 +  Hallo
 +
 +
 +===== Linux und FreeBSD 14.0 =====
  
 nutzbare Verschlüsselungsalgorithmen anzeigen lassen: nutzbare Verschlüsselungsalgorithmen anzeigen lassen:
  
-__Linux und FreeBSD 14.0:__ 
   > openssl enc -list   > openssl enc -list
   > openssl list -cipher-commands   > openssl list -cipher-commands
   > openssl list -cipher-algorithms   > openssl list -cipher-algorithms
 +
 +
 +==== AES ====
  
 mit AES256 (OpenSSL 3.0.12) ver- und entschlüsseln: mit AES256 (OpenSSL 3.0.12) ver- und entschlüsseln:
Zeile 44: Zeile 61:
   U2FsdGVkX1+IQzl442cG6a0/3e4wpCH2BqZ+8WoXYbQ=   U2FsdGVkX1+IQzl442cG6a0/3e4wpCH2BqZ+8WoXYbQ=
      
-  > echo 'U2FsdGVkX1+IQzl442cG6a0/3e4wpCH2BqZ+8WoXYbQ=' | openssl enc -salt -pbkdf2 -aes-256-cbc -a -d -k geheim+  > echo 'U2FsdGVkX1+IQzl442cG6a0/3e4wpCH2BqZ+8WoXYbQ=' | openssl enc -pbkdf2 -aes-256-cbc -a -d -k geheim
   Hallo Welt!   Hallo Welt!
 +
 +
 +==== CAMELLIA ====
 +
 +Japans erste 128-Bit-Blockchiffre „[[http://info.isl.ntt.co.jp/crypt/camellia/index.html|Camellia]]“ wurde als neuer Standard-Verschlüsselungsalgorithmus im Internet zugelassen.
 +Camellia ist international als Vertreter japanischer Verschlüsselungsverfahren und als einzigartige 128-Bit-Blockverschlüsselung anerkannt, der über die gleiche Sicherheitsstufe und Verarbeitungsfähigkeit wie AES verfügt. Tatsächlich wurde Camellia 2003 als von der EU empfohlene Verschlüsselung und von E-Government empfohlene Verschlüsselung ausgewählt und wurde kürzlich auch als internationale ISO/IEC-Standard-Verschlüsselung übernommen.
  
 mit Camellia256 (OpenSSL 3.0.12) ver- und entschlüsseln: mit Camellia256 (OpenSSL 3.0.12) ver- und entschlüsseln:
Zeile 51: Zeile 74:
   U2FsdGVkX19bASuy32qe9FoA4yOSI/42fpdG93XSTU8=   U2FsdGVkX19bASuy32qe9FoA4yOSI/42fpdG93XSTU8=
      
-  > echo 'U2FsdGVkX19bASuy32qe9FoA4yOSI/42fpdG93XSTU8=' | openssl enc -salt -pbkdf2 -camellia-256-cbc -a -d -k geheim+  > echo 'U2FsdGVkX19bASuy32qe9FoA4yOSI/42fpdG93XSTU8=' | openssl enc -pbkdf2 -camellia-256-cbc -a -d -k geheim
   Hallo Welt!   Hallo Welt!
  
-__ältere FreeBSD:__+//Firefox und Opera deaktivieren CAMELLIA. 
 +Warum? 
 +Ist er zu schwach oder ist es ein anderer Grund?// 
 +Laut [[https://phys.org/news/2005-07-japan-bit-block-cipher-camellia.html|dieser Quelle]] sollen AES und CAMELLIA in etwa gleich stark sein... 
 + 
 +Die Verschlüsselungen, die standardmäßig mit den Webbrowsern ausgestattet sind, beschränken sich auf diejenigen, die von der IETF als SSL/TLS-Standard übernommen wurden.  Das heißt, wenn Camellia nicht vom SSL/TLS-Standard übernommen würde, könnte Camellia selbst im E-Government-System nicht mit den Webdiensten verwendet werden, obwohl Camellia bereits als von E-Government empfohlene Verschlüsselung ausgewählt wurde. Kurz gesagt, allein aufgrund der technischen Überlegenheit des Algorithmus und der Übernahme als De-jure-Standard usw. war er als Umgebung, die für Produkte und Dienstleistungen umfassend genutzt werden kann, unzureichend. 
 +Im Hinblick auf die wichtigsten verschlüsselten Kommunikationsprotokolle wie SSL/TLS und S/MIME hat die IETF die Internet-Verschlüsselungen Triple DES, IDEA, RC2 und RC4 als Standard übernommen, die vor 1995 erstellt wurden und daher zum Zeitpunkt der Standardisierung der Protokolle verfügbar waren. Unter diesen werden derzeit noch Triple DES und RC4 als Standards verwendet. Mit den jüngsten Fortschritten in der Chiffrierforschung sind jedoch Bedenken hinsichtlich der Sicherheit dieser Standardchiffren entstanden. Um dieses Problem anzugehen, hat die IETF zusätzliche Untersuchungen zu den Verschlüsselungsschemata der nächsten Generation durchgeführt, insbesondere zu den 128-Bit-Blockchiffren, die international als Verschlüsselungsverfahren der nächsten Generation empfohlen werden und sicherer sind als die 64-Bit-Blockchiffren Triple DES und RC4, von denen die Schwachstellen bereits bekannt sind. 
 + 
 + 
 +==== CHACHA20 ==== 
 + 
 +mit CHACHA20 (OpenSSL 3.0.12) ver- und entschlüsseln: 
 +  > echo "Hallo Welt!" | openssl enc -salt -pbkdf2 -chacha20 -a -e -k geheim 
 +  U2FsdGVkX1/hibFsrIC4XDMF7MJNrsH6sO96fg== 
 +   
 +  > echo 'U2FsdGVkX1/hibFsrIC4XDMF7MJNrsH6sO96fg==' | openssl enc -pbkdf2 -chacha20 -a -d -k geheim 
 +  Hallo Welt! 
 + 
 +//Da die verschlüsselte Ausgabe mit dem Cipher CHACHA20 etwas kürzer ist als die Aus gaben mit den Ciphern AES und CAMELLIA, könnte man annehmen, das der Cipher CHACHA20 schwächer ist...?// 
 + 
 +[[https://nordpass.com/blog/xchacha20-encryption-vs-aes-256/|XChaCha20 ist ein 256-Bit-Stream-Verschlüsselungstyp und AES ist ein Block-Verschlüsselungstyp (128, 192 oder 256 Bit).]] Wie AES verschlüsselt XChaCha20 symmetrisch, indem es einen einzigen Schlüssel zum Verschlüsseln und Entschlüsseln von Daten verwendet. (Obwohl es auch eine asymmetrische Version davon gibt.) Anstatt Daten in Blöcke aufzuteilen, verschlüsselt XChaCha20 jedes Datenbit separat. Dadurch ist der Prozess deutlich schneller und weniger komplex als bei AES. Einige argumentieren, dass XChaCha20 dadurch eine bessere Wahl als AES ist. 
 + 
 +Im Gegensatz zu 256-Bit-AES kann XChaCha20 ohne spezielle Hardware reibungslos ausgeführt werden, wodurch die Verschlüsselung einfacher zu implementieren und weniger anfällig für technische und menschliche Fehler ist. 
 + 
 + 
 +===== älteres FreeBSD ===== 
   > openssl enc -ciphers   > openssl enc -ciphers
   > openssl list -cipher-commands   > openssl list -cipher-commands
Zeile 63: Zeile 112:
   U2FsdGVkX1+aDaO1UN6wTrpmTHwQnMRlGhUPlbYPDC8=   U2FsdGVkX1+aDaO1UN6wTrpmTHwQnMRlGhUPlbYPDC8=
      
-  > echo 'U2FsdGVkX1+aDaO1UN6wTrpmTHwQnMRlGhUPlbYPDC8=' | openssl enc -salt -pbkdf2 -bf-cbc -a -d -k geheim+  > echo 'U2FsdGVkX1+aDaO1UN6wTrpmTHwQnMRlGhUPlbYPDC8=' | openssl enc -pbkdf2 -bf-cbc -a -d -k geheim
   Hallo Welt!   Hallo Welt!
  
Zeile 81: Zeile 130:
   U2FsdGVkX1/RdDv9u2fRJtSGwATuvHEu   U2FsdGVkX1/RdDv9u2fRJtSGwATuvHEu
      
-  > echo "U2FsdGVkX1/RdDv9u2fRJtSGwATuvHEu" | openssl enc -salt -pbkdf2 -iter 1234567 -bf-cbc -a -d+  > echo "U2FsdGVkX1/RdDv9u2fRJtSGwATuvHEu" | openssl enc -pbkdf2 -iter 1234567 -bf-cbc -a -d
   enter bf-cbc decryption password:   enter bf-cbc decryption password:
   Hallo   Hallo
/home/http/wiki/data/attic/openssl-verschluesselung_mit_passwort.1719246206.txt · Zuletzt geändert: von manfred