Lösung für die sichere und hochgradig gesicherte Codierung beliebiger Dateien in OpenSSL und Befehlszeile:
Sie sollten ein X.509-Zertifikat bereithalten, um Dateien im PEM-Format zu verschlüsseln.
Datei verschlüsseln:
openssl smime -encrypt -binary -aes-256-cbc -in plainfile.zip -out encrypted.zip.enc -outform DER yourSslCertificate.pem
Was ist was:
- lächeln - SSL-Befehl für das S/MIME-Dienstprogramm (smime(1))
- -verschlüsseln - gewählte Methode für die Dateiverarbeitung
- -binär - Verwenden Sie einen sicheren Dateiprozess. Normalerweise wird die Eingabenachricht gemäß der S/MIME-Spezifikation in das "kanonische" Format konvertiert, dieser Schalter deaktiviert sie. Es ist für alle Binärdateien (wie Bilder, Sounds, ZIP-Archive) erforderlich.
- -aes-256-cbc - gewählte Chiffre AES in 256 Bit für die Verschlüsselung (stark). Wenn nicht angegeben, wird 40-Bit-RC2 verwendet (sehr schwach). (Unterstützte Chiffren)
- -in plainfile.zip - Dateinamen eingeben
- -outverschlüsselt.zip.enc - Name der Ausgabedatei
- -DER übertreffen - Ausgabedatei binär kodieren. Wenn nicht angegeben, wird die Datei mit base64 kodiert und die Dateigröße wird um 30 % erhöht.
- yourSslCertificate.pem - Dateiname Ihres Zertifikats. Das sollte im PEM-Format vorliegen.
Dieser Befehl kann große Dateien unabhängig von ihrem Format sehr effektiv stark verschlüsseln.
Bekanntes Problem: Beim Versuch, eine große Datei (>600 MB) zu verschlüsseln, passiert ein Fehler. Es wird kein Fehler ausgegeben, aber die verschlüsselte Datei wird beschädigt. Überprüfen Sie immer jede Datei! (oder verwenden Sie PGP - das bietet größere Unterstützung für die Dateiverschlüsselung mit öffentlichen Schlüsseln)
Datei entschlüsseln:
openssl smime -decrypt -binary -in encrypted.zip.enc -inform DER -out decrypted.zip -inkey private.key -passin pass:your_password
Was ist was:
- -DER informieren - dasselbe wie -outform oben
- -inkey private.key - Dateiname Ihres privaten Schlüssels. Das sollte im PEM-Format sein und kann per Passwort verschlüsselt werden.
- -passin pass:your_password - Ihr Passwort zum Verschlüsseln des privaten Schlüssels. (Passwort-Argumente)
Public-Key-Krypto dient nicht zum Verschlüsseln beliebig langer Dateien. Man verwendet eine symmetrische Chiffre (z. B. AES), um die normale Verschlüsselung durchzuführen. Jedes Mal, wenn ein neuer zufälliger symmetrischer Schlüssel generiert, verwendet und dann mit der RSA-Chiffre (öffentlicher Schlüssel) verschlüsselt wird. Der Chiffretext wird 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, um die Nachricht zu entschlüsseln.
Der private Schlüssel wird niemals geteilt, nur der öffentliche Schlüssel wird verwendet, um die zufällige symmetrische Chiffre zu verschlüsseln.