So verschlüsseln und entschlüsseln Sie Dateien und Verzeichnisse mit OpenSSL und Linux
Das sichere Verschlüsseln und Entschlüsseln von Dateien und Verzeichnissen ist für den Schutz sensibler Daten unerlässlich. OpenSSL, ein leistungsstarkes Open-Source-Tool, bietet robuste Verschlüsselungs- und Entschlüsselungsfunktionen, die Dateien jeder Größe verarbeiten können, von kleinen Textdateien über große Binärdateien bis hin zu ganzen Verzeichnissen. Dieses Tutorial führt Sie durch den Prozess der Verschlüsselung und Entschlüsselung von Dateien und Verzeichnissen mit OpenSSL auf Linux-Systemen wie Redhat, Ubuntu, Debian, CentOS und Fedora.
In diesem Tutorial lernen Sie:
- So erstellen Sie eine Beispieldatei oder ein Beispielverzeichnis
- So generieren Sie ein öffentliches und privates RSA-Schlüsselpaar
- So verschlüsseln Sie eine Datei oder ein Verzeichnis mit OpenSSL
- So entschlüsseln Sie die verschlüsselte Datei oder das verschlüsselte Verzeichnis wieder in den ursprünglichen Zustand
Erstellen einer Beispieldatei oder eines Beispielverzeichnisses und Generieren von RSA-Schlüsseln
Zu Beginn benötigen Sie eine Datei oder ein Verzeichnis, das Sie verschlüsseln möchten. Zu Demonstrationszwecken erstellen wir eine Beispieldatei oder ein Beispielverzeichnis und generieren ein RSA-Schlüsselpaar.
Erstellen Sie eine Beispieldatei oder ein Beispielverzeichnis: Sie können eine Datei oder ein Verzeichnis erstellen, je nachdem, was Sie verschlüsseln möchten. Hier sind die Befehle für beide:Für eine Datei:
$ fallocate -l 100M sample_file.img
Dieser Befehl erstellt eine Datei mit dem Namen
sample_file.img
und einer Größe von 100 MB.Für ein Verzeichnis:
$ mkdir sample_directory touch sample_directory/file1.txt sample_directory/file2.txt
Generieren Sie ein öffentliches und privates RSA-Schlüsselpaar: Generieren Sie nun ein öffentliches und privates Schlüsselpaar mit dem OpenSSL-Befehl:
$ openssl req -x509 -nodes -newkey rsa:2048 -keyout private-key.pem -out public-key.pem
Dieser Befehl erstellt ein 2048-Bit-RSA-Schlüsselpaar. Der private Schlüssel wird in
private-key.pem
gespeichert, und der öffentliche Schlüssel wird inpublic-key.pem
gespeichert. Während dieses Vorgangs werden Sie zur Eingabe von Zertifikatsdetails aufgefordert. Sie können diese jedoch überspringen, indem SieENTER
drücken.$ ls -l *.pem
Stellen Sie sicher, dass der private Schlüssel sicher aufbewahrt wird, da ein Verlust ihn daran hindert, Ihre Dateien oder Verzeichnisse zu entschlüsseln.
Dadurch wird ein Verzeichnis mit dem Namen sample_directory
erstellt, das zwei Textdateien enthält.
Verschlüsseln einer Datei oder eines Verzeichnisses mit OpenSSL
Nachdem wir nun die Schlüssel und die Beispieldatei bzw. das Beispielverzeichnis haben, fahren wir mit der Verschlüsselung fort.
Datei oder Verzeichnis verschlüsseln: Je nachdem, ob Sie eine Datei oder ein Verzeichnis verschlüsseln, ist der Vorgang etwas anders.Für eine Datei:
$ openssl smime -encrypt -binary -aes-256-cbc -in sample_file.img -out sample_file.img.enc -outform DER public-key.pem
Dieser Befehl verschlüsselt
sample_file.img
mit AES-256-CBC und speichert die verschlüsselte Ausgabe alssample_file.img.enc
.Für ein Verzeichnis:
Komprimieren Sie zunächst das Verzeichnis in einen Tarball:$ tar -czf sample_directory.tar.gz sample_directory/
Verschlüsseln Sie dann den Tarball:
$ openssl smime -encrypt -binary -aes-256-cbc -in sample_directory.tar.gz -out sample_directory.tar.gz.enc -outform DER public-key.pem
Verschlüsselung überprüfen: Um sicherzustellen, dass der Verschlüsselungsprozess erfolgreich war, generieren Sie zum Vergleich die MD5-Prüfsumme sowohl der ursprünglichen als auch der verschlüsselten Dateien oder Verzeichnisse.Für eine Datei:
$ md5sum sample_file.img*
Für ein Verzeichnis:
$ md5sum sample_directory.tar.gz*
Die Prüfsummen sollten unterschiedlich sein und bestätigen, dass die Datei oder das Verzeichnis verschlüsselt wurde.
Dieser Befehl verschlüsselt sample_directory.tar.gz
und speichert die verschlüsselte Ausgabe als sample_directory.tar.gz.enc
.
Entschlüsseln einer Datei oder eines Verzeichnisses mit OpenSSL
Sobald Ihre Datei oder Ihr Verzeichnis verschlüsselt ist, müssen Sie wissen, wie Sie sie entschlüsseln.
Verschlüsselte Datei oder Verzeichnis entschlüsseln: Je nachdem, ob Sie eine Datei oder ein Verzeichnis entschlüsseln, verwenden Sie die folgenden Befehle.Für eine Datei:
$ openssl smime -decrypt -in sample_file.img.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_file.img
Dieser Befehl entschlüsselt
sample_file.img.enc
und speichert das Ergebnis alsdecrypted_sample_file.img
.Für ein Verzeichnis:
Entschlüsseln Sie zunächst den Tarball:$ openssl smime -decrypt -in sample_directory.tar.gz.enc -binary -inform DER -inkey private-key.pem -out decrypted_sample_directory.tar.gz
Extrahieren Sie dann das Verzeichnis:
$ tar -xzf decrypted_sample_directory.tar.gz
Entschlüsselung überprüfen: Um zu überprüfen, ob die Entschlüsselung erfolgreich war, generieren Sie die MD5-Prüfsumme der entschlüsselten Datei oder des entschlüsselten Verzeichnisses und vergleichen Sie sie mit der Prüfsumme der Originaldatei oder des Originalverzeichnisses.Für eine Datei:
$ md5sum decrypted_sample_file.img sample_file.img
Für ein Verzeichnis:
$ md5sum decrypted_sample_directory.tar.gz sample_directory.tar.gz
Die Prüfsummen der ursprünglichen und entschlüsselten Dateien oder Verzeichnisse sollten übereinstimmen, was darauf hinweist, dass die Entschlüsselung erfolgreich war.
Dieser Befehl stellt das ursprüngliche sample_directory
wieder her.
Abschluss
Wenn Sie die in diesem Tutorial beschriebenen Schritte befolgen, können Sie Dateien und Verzeichnisse mit OpenSSL unter Linux problemlos verschlüsseln und entschlüsseln. Unabhängig davon, ob Sie mit kleinen Dateien, großen Dateien oder ganzen Verzeichnissen arbeiten, bietet OpenSSL eine zuverlässige und effiziente Methode zur Sicherung Ihrer Daten. Denken Sie immer daran, Ihren privaten Schlüssel sicher aufzubewahren, da er für die Entschlüsselung Ihrer Dateien oder Verzeichnisse unerlässlich ist.