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 07:39:21] – [Allgemeines] 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 ===== 
- 
-[[https://wiki.openssl.org/index.php/Command_Line_Utilities]] 
- 
-//[[https://sslhow.com/create-private-key-with-openssl-genrsa|openssl genpkey vs genrsa]]: Das Dienstprogramm „openssl genpkey“ hat das Dienstprogramm „genrsa“ abgelöst.// 
- 
- 
-==== Allgemeines ==== 
- 
- 
-==== Curve-Schlüssel ==== 
- 
-  > openssl ecparam -list_curves 
-  > openssl ecparam -name sect571r1 -out sect571r1.pem 
-  > openssl ecparam -in sect571r1.pem -noout -text 
-  EC-Parameters: (570 bit) 
-  ASN1 OID: sect571r1 
-  NIST CURVE: B-571 
- 
-ungeschützten Schlüssel erstellen: 
-  > openssl genpkey -paramfile sect571r1.pem -out private-key.pem 
- 
-geschützten Schlüssel erstellen: 
-  > openssl genpkey -aes256 -paramfile sect571r1.pem -out private-key.pem 
-  Enter PEM pass phrase: 
-  Verifying - Enter PEM pass phrase: 
-   
-  > openssl pkey -in private-key.pem -text 
-  > openssl pkey -in private-key.pem -out public-key.pem -pubout 
-  Enter pass phrase for private-key.pem: 
-   
-  > openssl pkey -in public-key.pem -pubin -text 
- 
- 
-==== RSA-Schlüssel nach neuer Methode ==== 
- 
-einen privaten RSA-Schlüssel generieren (neue Methode): 
-  > openssl genpkey -out private-key.pem -algorithm RSA -aes256 -pkeyopt rsa_keygen_bits:4096 
- 
-nachschauen, wie lang der Schlüssel ist (Textausgabe): 
-  > openssl pkey -in private-key.pem -text 
- 
-einen privaten RSA-Schlüssel generieren, mit Textausgabe in der PEM-Datei: 
-  > openssl genpkey -out private-key.pem -algorithm RSA -aes256 -pkeyopt rsa_keygen_bits:1024 -text 
- 
-aus dem privaten RSA-Schlüssel einen öffentlichen RSA-Schlüssel generieren (neue Methode): 
-  > openssl pkey -in private-key.pem -out public-key.pem -pubout 
-  > openssl pkey -in public-key.pem -pubin -text 
- 
- 
-==== RSA-Schlüssel nach alter Methode ==== 
- 
-einen privaten RSA-Schlüssel generieren (alte Methode): 
-  > openssl genrsa -out private.pem 4096 
-  > ls *.pem 
-  private.pem 
- 
-aus dem privaten RSA-Schlüssel einen öffentlichen RSA-Schlüssel generieren (alte Methode): 
-  > 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 389: 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 398: Zeile 295:
 Datei entschlüsseln: Datei entschlüsseln:
   > openssl pkeyutl -decrypt -inkey private.pem -in datei.ssl -out datei.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.1709451561.txt · Zuletzt geändert: von manfred