1: Was ist OpenSSL? Welche Funktion hat es? Was ist das Anwendungsszenario? In der Baidu Encyclopedia heißt es: „OpenSSL ist ein Open-Source-Softwarebibliothekspaket, das Anwendungen für eine sichere Kommunikation nutzen können und das Abhören von Informationen verhindern kann.“ SSL ist die Abkürzung für Secure Sockets Layer und kann für vertrauliche Übertragungen im Internet sorgen. Netscape schlug den SSL-Protokollstandard vor, als es den ersten Webbrowser auf den Markt brachte. Sein Ziel besteht darin, die Vertraulichkeit und Zuverlässigkeit der Kommunikation zwischen zwei Anwendungen sicherzustellen und kann sowohl auf der Server- als auch auf der Benutzerseite unterstützt werden. Denn während der Netzwerkübertragung müssen die Netzwerkdaten über den WLAN-Router laufen, oder? Dann können wir die Daten mit ein paar Tricks über den Router abrufen. Daher besteht die Aufgabe von OpenSSL darin, das Abhören von Informationen zu verhindern. Wie stellt OpenSSL sicher, dass Informationen nicht abgehört werden? Daher müssen wir einige grundlegende Konzepte wie asymmetrische Verschlüsselung, digitale Signaturen und digitale Zertifikate verstehen. 1.1 Was ist asymmetrische Verschlüsselung? Bei der asymmetrischen Verschlüsselung werden Daten mit einem Schlüssel verschlüsselt und können anschließend mit einem anderen Schlüssel entschlüsselt werden. Die beiden Schlüssel sind der öffentliche Schlüssel und der private Schlüssel. Wir können den öffentlichen Schlüssel auf Grundlage des privaten Schlüssels berechnen, aber wir können den privaten Schlüssel nicht auf Grundlage des öffentlichen Schlüssels berechnen. Der private Schlüssel wird normalerweise vom Server gehalten, während der öffentliche Schlüssel auf dem Client verwendet wird. Hinweis: Wir untersuchen nicht die spezifischen Algorithmen der asymmetrischen Verschlüsselung. 1.2 Was ist eine digitale Signatur? Laut Baidu Encyclopedia: Eine digitale Signatur (auch digitale Public-Key-Signatur genannt) ist eine physische Signatur, die einer auf Papier geschriebenen Signatur ähnelt, aber mithilfe einer Technologie aus dem Bereich der Public-Key-Verschlüsselung implementiert wird. Es handelt sich um eine Methode zur Authentifizierung digitaler Informationen. Digitale Signaturen bestehen aus zwei sich ergänzenden Vorgängen: einem zum Signieren und einem zum Verifizieren. Die Funktion besteht darin, mithilfe eines bestimmten HASH-Algorithmus eine Zusammenfassung mit fester Bitanzahl der Nachricht zu berechnen, diese Zusammenfassung dann mit dem privaten Schlüssel zu verschlüsseln und anschließend die vorherige Nachricht an den Empfänger zu senden. Der Empfänger entschlüsselt die Zusammenfassung mit dem öffentlichen Schlüssel. Der Nachrichten-Digest wird ebenfalls über den Hash-Algorithmus berechnet. Wenn die beiden Digests übereinstimmen, bedeutet dies, dass die Daten nicht manipuliert wurden und vollständig sind. 1.3 Was ist ein digitales Zertifikat? Laut Baidu Encyclopedia: Ein digitales Zertifikat ist eine Zahlenfolge, die die Identitätsinformationen der kommunizierenden Parteien bei der Internetkommunikation kennzeichnet. Bietet eine Möglichkeit, die Identität von Kommunikationseinheiten im Internet zu überprüfen. Die Funktion ist: Es verwendet den privaten Schlüssel der Zertifizierungsstelle, um den öffentlichen Schlüssel und andere Informationen der Website zu signieren. Wenn der Client den Server anfordert, sendet die Website das Zertifikat an den Client. Der Client überprüft zunächst die Identität der Zertifizierungsstelle anhand der digitalen Signatur der Zertifizierungsstelle, um die Authentizität und Integrität des Zertifikats nachzuweisen. Nachdem wir uns mit den Konzepten der asymmetrischen Verschlüsselung, digitaler Signaturen und digitaler Zertifikate vertraut gemacht haben, wollen wir uns nun ansehen, wie diese sicherstellen, dass Daten nicht gefälscht wurden: SSL implementiert die Authentifizierung von Benutzern und Servern Lassen Sie uns nun über eine Frage nachdenken. Wenn wir jetzt unsere Blog Garden-Website besuchen, woher wissen wir, ob wir einen echten oder einen gefälschten Blog Garden besuchen? Um festzustellen, ob der Server unserer Blog-Garden-Website gefälscht wurde, gibt es in SSL eine solche Regel: Wenn wir eine Anfrage an den Server senden, muss der Server sein digitales Zertifikat an den Empfänger zurücksenden. Wenn wir das digitale Zertifikat erhalten, können wir die Legitimität des digitalen Zertifikats anhand der darin enthaltenen digitalen CA-Signatur überprüfen. Angenommen, wir können jetzt beweisen, dass das digitale Zertifikat zu Blog Garden gehört, aber das bedeutet nicht, dass der Server, der uns das Zertifikat gesendet hat, von Blog Garden ist? Um dieses Problem zu lösen, enthält das Zertifikat, das wir erhalten, tatsächlich den öffentlichen Schlüssel von Blog Garden. Bei der nachfolgenden Kommunikation verwendet der Client den öffentlichen Schlüssel, um Daten an den Blog Garden-Server zu verschlüsseln. Der Blog Garden-Server muss den privaten Schlüssel verwenden, um die darin enthaltenen Daten zu entschlüsseln. Solange er die Daten entziffern kann, ist er legal, andernfalls sind sie gefälscht. Wenn es gefälscht ist, ist eine Kommunikation unmöglich. Daher löst SSL das Problem der Serverauthentifizierung. Wie kann verhindert werden, dass während der Kommunikation verschlüsselte Daten gestohlen werden? Wenn der Client zum ersten Mal eine Anfrage an den Server sendet (die Anfrage vor dem Erhalt des Zertifikats), fügt er eine Zufallszahl (z. B. A) in die Anfrage ein, und die Antwort des Servers auf das Zertifikat enthält ebenfalls eine Zufallszahl (z. B. B). Nachdem der Client das Zertifikat erhalten hat, verschlüsselt er mit dem öffentlichen Schlüssel eine Zufallszahl (z. B. C) und sendet sie an den Server. Daher verfügen der Client und der Server über drei Zufallszahlen: A, B und C. Beide Parteien verwenden diese Zufallszahlen und denselben Algorithmus, um einen Schlüssel zu generieren, und alle nachfolgenden Kommunikationen verwenden diesen symmetrischen Schlüssel. Im Allgemeinen können diese drei Schlüssel nicht gleichzeitig weitergegeben werden, da sie zufällig aus drei Zufallszahlen generiert werden. Und eine der Zufallszahlen wird mit dem öffentlichen Schlüssel verschlüsselt. So stellen wir sicher, dass keine Daten gestohlen werden. Oben sind einige konzeptionelle Fragen, die im Internet aufgetaucht sind. Verstehen Sie sie einfach und wissen Sie, dass es sich um Konzepte handelt. Unser OpenSSL ist die Implementierungsversion von SSL. Daher besteht die Aufgabe von OpenSSL darin, den Diebstahl von Informationen zu verhindern. Dies geschieht über die oben genannten Wissenspunkte. Anwendungsszenarien von OpenSSL: Wenn wir http-Websites verwenden, sehen wir häufig Werbung auf den Websites. Diese Werbung wird nicht von den Websites selbst angezeigt, sondern von den Betreibern dazwischen, die den Inhalt manipuliert haben. Jetzt können wir die https-Technologie (basierend auf OpenSSL) zum Verschlüsseln von Daten verwenden. Es stellt sicher, dass die Daten nicht manipuliert werden. 2: Generieren Sie ein kostenloses Zertifikat mit OpenSSL 1 Verwenden Sie das Tool openssl, um einen privaten RSA-Schlüssel zu generieren Verwenden Sie den Befehl: openssl genrsa -des3 -out server.key 2048 Wie oben: des3 ist der Algorithmus, 2048 Bit Stärke (für Vertraulichkeit). server.key ist der Name der Schlüsseldatei – out bedeutet: Pfad und Name der generierten Datei. Wie unten dargestellt: Lassen Sie uns den privaten Schlüssel überprüfen, den wir gerade generiert haben. Verwenden Sie den folgenden Befehl: openssl rsa -text -in server.key Wie in der folgenden Abbildung dargestellt: Fahren Sie mit der Anzeige von server.key mit dem Befehl „cat server.key“ fort, wie unten dargestellt: 2. Erstellen Sie eine CSR-Datei für die Zertifikatsignieranforderung Verwenden Sie den folgenden Befehl: openssl req -new -key server.key -out server.csr -key bedeutet: privaten Schlüssel angeben Wie unten dargestellt: Nachdem Sie den obigen Befehl ausgeführt haben, werden Sie beim Generieren des CSR aufgefordert, die folgenden Informationen einzugeben: Ländername (2-Buchstaben-Code) []:CN // Geben Sie den Ländercode ein. Für China geben Sie CN ein. Name des Staates oder der Provinz (vollständiger Name) []:HangZhou // Geben Sie die Provinz ein, füllen Sie hier HangZhou aus Ortsname (z. B. Stadt) []:HangZhou // Geben Sie die Stadt ein. Wir füllen hier auch HangZhou aus. Organisationsname (z. B. Firma) []:tbj // Gib den Organisationsnamen ein (oder den Firmennamen, ich schreibe hier einfach tbj) Name der Organisationseinheit (z. B. Abschnitt) []:tbj // Geben Sie die Abteilung der Organisation ein. Allgemeiner Name (z. B. vollständig qualifizierter Hostname) []:*.abc.com // Geben Sie den Domänennamen ein, meiner ist (*.abc.com) E-Mail-Adresse []:[email protected] // Ihre E-Mail-Adresse Bitte geben Sie die folgenden „zusätzlichen“ Attribute ein wird mit Ihrem Zertifikatsantrag mitgeschickt Ein Challenge-Passwort []:123456 // Ihr Zertifikatspasswort. Wenn Sie kein Passwort festlegen möchten, können Sie einfach die Eingabetaste drücken. Nach dem obigen Vorgang werden die folgenden zwei Dateien im aktuellen Verzeichnis generiert: server.key server.csr Wie in der folgenden Abbildung dargestellt: Zeigen Sie die CSR-Datei wie folgt an: openssl req -text -in server.csr -noout Wie in der folgenden Abbildung dargestellt: 3. CA-Zertifikat generieren openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Die Bedeutung von x509: angegebenes Format Wie in der folgenden Abbildung dargestellt: Hinweis: Wie oben gezeigt, enthält server.crt die Informationen des Zertifikatsinhabers, den öffentlichen Schlüssel des Inhabers und die Signatur des Unterzeichners. 4. Generieren Sie ein Client-Zertifikat Das Generieren eines Client-Zertifikats ähnelt dem Generieren eines CA-Zertifikats. 4.1. Generieren Sie zuerst einen privaten Schlüssel Verwenden Sie den Befehl: openssl genrsa -out client.key 2048 Wie in der folgenden Abbildung dargestellt: 4.2 Anforderungsdatei generieren Verwenden Sie den Befehl: openssl req -new -key client.key -out client.csr Wie in der folgenden Abbildung dargestellt: 4.3 Zur Unterschrift an die Zertifizierungsstelle senden Verwenden Sie den Befehl: openssl x509 -req -days 365 -in client.csr -signkey client.key -out client.crt Wie in der folgenden Abbildung dargestellt: Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
>>: Ein genauerer Blick auf SQL-Injection
In der XHTML-Sprache wissen wir alle, dass das ul...
Was ist Schauen wir uns zunächst das Konzept von ...
Boolescher MySQL-Wert, speichert „false“ oder „tr...
Konzept von SFTP sftp ist die Abkürzung für Secur...
1. MySQL herunterladen 1.1 Download-Adresse https...
Wenn hier ein <input type="image">...
In diesem Artikelbeispiel wird der spezifische Co...
Tutorial zur Installation und Kennworteinstellung...
Inhaltsverzeichnis 1. Planaufgaben anpassen 2. Ze...
Zabbix Server-Umgebungsplattform Version: ZABBIX ...
In diesem Artikel wird die MySQL-Vorkompilierungs...
Beim Erstellen einer Datenbank und Schreiben eine...
Inhaltsverzeichnis Vorwort 1. Rendern 2. Code 3. ...
Wie lässt sich feststellen, worauf dies hinweist?...
Methode 1: Verwenden Sie den Befehl lsof Mit dem ...