Benutzer-Werkzeuge

Webseiten-Werkzeuge


einzelne_dateien_mit_openssl_verschluesseln

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
einzelne_dateien_mit_openssl_verschluesseln [2024-03-03 05:09:48] – [S/MIME-Verschlüsselung (E-Mail-Format)] manfredeinzelne_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://wiki.openssl.org/index.php/Enc]] +  * [[::OpenSSL]] 
 +  * [[::OpenSSL-Verschlüsselung von Zeichenketten]] 
 +  * [[https://wiki.openssl.org/index.php/Enc]]
   * [[http://wiki.ubuntuusers.de/Daten_verschlüsseln#OpenSSL]]   * [[http://wiki.ubuntuusers.de/Daten_verschlüsseln#OpenSSL]]
   * [[http://cb.vu/unixtoolbox_pt.xhtml#crypt]]   * [[http://cb.vu/unixtoolbox_pt.xhtml#crypt]]
Zeile 16: Zeile 17:
  
 __Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option ''-salt'' verwendet werden!__ __Bei symetrischer Verschlüsselung (z.B. nur mit Passwort), sollte immer die Option ''-salt'' verwendet werden!__
- 
- 
-===== 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 /dev/urandom -new -x509 -newkey rsa:4096 -sha3-512 -nodes -keyform PEM -keyout private.pem -outform PEM -out cert.pem -days 7000 -subj /emailAddress=email@adresse.de/C=DE/ST=Hessen/L=Frankfurt/O=Firma/OU=Abteilung/CN=Hostname 
-  > ls *.pem 
-  private.pem 
-  cert.pem 
- 
-//Verschlüsselung funktioniert mit einem öffentlichen RSA-Schlüssel und mit einem Zertifikat.// 
- 
- 
-===== 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__, __Twofish__ oder __MARS__) von OpenSSL nicht unterstützt. 
-Die besten verfügbaren sind die folgenden (ich bevorzuge den **BlowFish**, es ist der Vorgänger Twofish, mit genügend Wiederholung -> mind. 1 Mio.): 
-  * AES-256-CBC 
-  * BF-CBC (blowfish) 
- 
-Das sind alles Synonyme für **BlowFish**: 
-  * blowfish 
-  * bf 
-  * bf-cbc 
-  * BF-CBC 
  
  
Zeile 339: Zeile 278:
  
 ==== mit RSA-Schlüssel ==== ==== mit RSA-Schlüssel ====
 +
 +Große Dateien können nicht asymetrisch verschlüsselt werden! => [[https://stackoverflow.com/questions/7143514/how-to-encrypt-a-large-file-in-openssl-using-public-key|How to encrypt a large file in openssl using public key]]
 +
 +Die übliche Vorgehensweise, für das verschlüsseln von langen Dateien sieht wie folgt aus:
 +Große Dateien werden jedes Mal mit einem neuen zufällig generierten, symmetrischen Schlüssel Verschlüsselt.
 +Der dazu verwendete symmetrische Schlüssel wird mit dem öffentlichen RSA-Schlüssel verschlüsselt.
 +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).
  
 Datei verschlüsseln: Datei verschlüsseln:
Zeile 347: Zeile 294:
  
 Datei entschlüsseln: Datei entschlüsseln:
-  > openssl pkeyutl -decrypt -inkey private.pem -in datei.ssl -out datei2.txt+  > openssl pkeyutl -decrypt -inkey private.pem -in datei.ssl -out datei.txt 
 + 
 +__Manchmal gibt es Probleme (meist beim entschlüsseln), wenn bestimmte Zeichen in der Datei vorkommen. In soeinem Fall ist es hilfreich, die zu verschlüsselnden Dateien vorher in Base64-Kode umzuwandeln.__ 
 + 
 +  > base64 Datei.txt > Datei.txt.b64 
 +  > openssl pkeyutl -encrypt -pubin -inkey public-ssl-key.pem -in Datei.txt.b64 -out Datei.txt.b64.ssl 
 +  > openssl pkeyutl -decrypt -inkey privat-ssl-key.pem -in Datei.txt.b64.ssl -out Datei.txt.b64.txt
  
  
/home/http/wiki/data/attic/einzelne_dateien_mit_openssl_verschluesseln.1709442588.txt · Zuletzt geändert: von manfred