Einführung

Einführung

OpenSSL ist ein leistungsstarkes Kryptographie -Toolkit. Viele von uns haben OpenSSL bereits verwendet, um RSA Private Keys oder CSR (Zertifikatsignalanforderung) zu erstellen. Wussten Sie jedoch, dass Sie OpenSSL verwenden können, um Ihre Computergeschwindigkeit zu reduzieren, oder dass Sie auch Dateien oder Nachrichten verschlüsseln können? Dieser Artikel bietet Ihnen einige einfache Tipps zum Verschlüsseln von Nachrichten und Dateien mithilfe von OpenSSL.

Nachrichten verschlüsseln und entschlüsseln

Zuerst können wir mit einfachen Nachrichten beginnen. Der folgende Linux -Befehl verschlüsselt eine Nachricht „Willkommen bei LinuxCareer.com ”mit Base64 -Codierung:

$ echo "Willkommen bei Linuxcareer.com "| OpenSSL ENC -Base64
V2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K

Die Ausgabe des obigen Befehls ist eine verschlüsselte Zeichenfolge, die eine codierte Nachricht enthält. „Willkommen bei Linuxcareer.com ”. Um die codierte Zeichenfolge zu seiner ursprünglichen Nachricht zu entschlüsseln, müssen wir die Reihenfolge umkehren und die Option -d zur Entschlüsselung anhängen:

$ echo "V2VSY29TZSB0BYBMAW51EENHCMVLCI5JB20K" | OpenSSL ENC -Base64 -d
Willkommen bei Linuxcareer.com

Die obige Verschlüsselung ist einfach zu verwenden. Es fehlt jedoch eine wichtige Funktion eines Kennworts, das für die Verschlüsselung verwendet werden sollte. Versuchen Sie beispielsweise, die folgende Zeichenfolge mit einem Passwort zu entschlüsseln. “passieren„:

U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRduc0CBSLPZQXQ2DB7IPD7KEXJ

Verwenden Sie dazu OpenSSL erneut mit -D-Option und Codierungsmethode AES-256-CBC:

echo "U2FSDGVKX181XSCMHKPIA6J0QD76N/NSJJTC9NRDUC0CBSLPZQXQ2DB7IPD7KEXJ" | OpenSSL ENC -AES -256 -CBC -D -a

Wie Sie wahrscheinlich bereits erraten haben, können Sie den folgenden Linux -Befehl verwenden, um eine verschlüsselte Nachricht mit einem Passwort zu erstellen:

 $ echo "OpenSSL" | OpenSSL ENC -AES-256-CBC -A-Eingabetaste AES-256-CBC-Verschlüsselungskennwort:
Überprüfung-Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein:
U2FSDGVKX185E3H2ME2D+QMCFKESXDTN8NCN/4SBLR8 =


Wenn Sie die OpenSSL -Ausgabe in eine Datei anstelle von STDOut speichern möchten, verwenden Sie einfach die STDOut -Umleitung ">" ". Beim Speichern verschlüsselter Ausgabe in eine Datei können Sie auch weglassen -A Option, da Sie die Ausgabe nicht mehr benötigen, um acii -textbasiert zu werden:

$ echo "OpenSSL" | OpenSSL ENC -AES-256-CBC> OpenSSL.dat
Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein:
Überprüfung-Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein:
$ Datei OpenSSL.dat
OpenSSL.DAT: Daten

Das OpenSSL entschlüsseln.DAT -Datei zurück zu seiner ursprünglichen Nachricht verwendet:

$ OpenSSL ENC -AES -256 -CBC -D -in OpenSSL.dat
Geben Sie das AES-256-CBC-Entschlüsselungskennwort ein:
OpenSSL

Datei verschlüsseln und entschlüsseln

Das Verschlüsseln von Dateien mit OpenSSL ist so einfach wie die Verschlüsselung von Nachrichten. Der einzige Unterschied ist, dass anstelle der Echo Befehl wir verwenden die -In Option mit der tatsächlichen Datei, die wir verschlüsseln möchten und -aus Option, mit der OpenSL angewiesen wird, die verschlüsselte Datei unter einem bestimmten Namen zu speichern:

Warnung: Stellen Sie sicher, dass die verschlüsselte Ausgabedatei einen anderen Dateinamen als die ursprüngliche Eingabedatei erhält. Es wird auch empfohlen, nur wenige Verschlüsselungs-/Entschlüsselungstests für Dummy -Daten durchzuführen, bevor wichtige Inhalte verschlüsseln.

$ OpenSSL ENC -AES -256 -CBC -in /etc /dienste -out -Dienste.dat

So entschlüsseln Sie unsere Nutzung unserer Dienstedatei:

$ OpenSSL ENC -AES -256 -CBC -D -IN -Dienste.dat> dienste.txt
Geben Sie das AES-256-CBC-Entschlüsselungskennwort ein:

Verzeichnis verschlüsseln und entschlüsseln

Für den Fall, dass Sie OpenSL verwenden mussten, um ein ganzes Verzeichnis zu verschlüsseln, müssen Sie nicht Gzip -Tarball erstellen und dann den Tarball mit der oben genannten Methode verschlüsseln, oder Sie können beides gleichzeitig mit Pipe tun:

# TAR CZ /ETC | OpenSSL ENC -AES -256 -CBC -OUT usw.Teer.gz.dat
TAR: Entfernen der Führung '/' aus Mitgliedernamen
Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein:
Überprüfung-Geben Sie das AES-256-CBC-Verschlüsselungskennwort ein:

Um das gesamte usw./ Verzeichnis zu entschlüsseln und an Sie zu extrahieren

# OpenSSL ENC -AES -256 -CBC -D -in usw.Teer.gz.dat | TAR XZ
Geben Sie das AES-256-CBC-Entschlüsselungskennwort ein:

Die obige Methode kann für automatisierte verschlüsselte Backups sehr nützlich sein.



Verwenden von öffentlichen und privaten Schlüssel

In diesem Abschnitt zeigen wir, wie Sie Dateien mit öffentlichen und privaten Schlüssel verschlüsseln und entschlüsseln können. Zuerst müssen wir private und öffentliche Schlüssel generieren. Dies kann einfach geschehen, wenn:

$ openssl genrsa -out private_key.PEM 1024
Generieren Sie RSA Private Key, 1024 -Bit -Long -Modul
… ++++++
… ++++++
E ist 65537 (0x10001)

Aus dem privaten Schlüssel können wir dann den öffentlichen Schlüssel erstellen:

$ openSSL RSA -in private_key.pem -out public_key.PEM -Outform PEM -Pubout
RSA -Schlüssel schreiben

Zu diesem Zeitpunkt sollten Sie in Ihrem aktuellen Arbeitsverzeichnis sowohl privaten als auch öffentlichen Schlüssel zur Verfügung haben.

$ ls
Privat Schlüssel.pem public_key.Pem

Als nächstes erstellen wir eine Beispieldatei namens Encrypt.txt mit beliebiger Text:

$ echo "Willkommen bei Linuxcareer.com "> verschlüsseln.txt
$ cat verschlüsseln.txt
Willkommen bei Linuxcareer.com

Jetzt sind wir bereit, diese Datei mit öffentlichem Schlüssel zu verschlüsseln:

$ openSSL rsautl -crypt -inkey public_key.PEM -Pubin -in verschlüsseln.txt -out verschlüsseln.dat
$ ls
Verschlüsseln.dat verschlüsseln.txt private_key.pem public_key.Pem
$ Datei verschlüsseln.dat
Verschlüsseln.DAT: Daten

Wie Sie unsere neue Verschlüsselung sehen können.DAT -Datei ist keine Textdateien mehr. Um diese Datei zu entschlüsseln, müssen wir den privaten Schlüssel verwenden:

$ OpenSSL rsautl -decrypt -inkey private_key.pem -in verschlüsseln.dat -out new_encrypt.txt
$ cat new_encrypt.txt
Willkommen bei Linuxcareer.com

Die obige Syntax ist ziemlich intuitiv. Wie Sie sehen, haben wir eine Dateiverschlüsselung entschlüsselt.dat zu seinem ursprünglichen Formular und speichern Sie es als new_encrypt.txt. Sie können diese Syntax beispielsweise mit dem Beispiel für Verschlüsseln verschließen, um automatisiertes verschlüsseltes Sicherungsskript zu erstellen.

Abschluss

Was Sie gerade gelesen haben, war eine grundlegende Einführung in die OpenSSL -Verschlüsselung. Wenn es um OpenSSL als Verschlüsselungs -Toolkit geht, hat es buchstäblich keine Begrenzung für das, was Sie tun können. Um zu sehen, wie verschiedene Codierungsmethoden verwendet werden, siehe OpenSSL -Handbuch Seite: Mann OpenSSL

Verwandte Linux -Tutorials:

  • So richten Sie einen OpenVPN -Server auf Ubuntu 20 ein.04
  • So generieren Sie ein selbstsigniertes SSL-Zertifikat unter Linux
  • Dinge zu installieren auf Ubuntu 20.04
  • USB -Antriebs -Benchmark -Test unter Linux
  • Dinge zu tun nach der Installation Ubuntu 20.04 fokale Fossa Linux
  • Eine Einführung in Linux -Automatisierung, Tools und Techniken
  • Wie man die Festplattenleistung unter Linux bewertet
  • Testen von HTTPS -Clients mithilfe von OpenSSL, um einen Server zu simulieren
  • Mastering -Bash -Skriptschleifen beherrschen
  • Dinge zu tun nach der Installation Ubuntu 22.04 Jammy Quallen…