Ist Ihnen beim Öffnen großer, bekannter Websites aufgefallen, dass der Adressleiste ein kleines grünes Schloss hinzugefügt wurde?
Ja, das ist https, das ist die Ära von https.
Aber verstehen Sie https?
Um es einfach auszudrücken: https ist HTTP, das in SSL/TLS verpackt ist, was sicheres HTTP ist. Was ist Sicherheit? Eine sichere Netzwerkkommunikationsumgebung muss drei Probleme lösen:
1. Vertraulichkeit der Kommunikationsinhalte
2. Integrität der Kommunikation Inhalt
https wurde geboren, um diese drei Hauptprobleme zu lösen (genauer gesagt SSL). Schauen wir uns die Lösungen für diese drei Probleme an.
Vertraulichkeit von Kommunikationsinhalten
Vertraulichkeit von Kommunikationsinhalten muss durch Verschlüsselung gewährleistet werden . Unsere Internetumgebung ist sehr transparent und die Kommunikation muss viele Wege durchlaufen, bevor sie den Empfänger erreicht. Diese Situation ist ein bisschen so, als würde man Xiaohong während des Unterrichts in der ersten Reihe einen Zettel geben. Auf den Zettel würde man auf keinen Fall direkt schreiben „Wir sehen uns heute Abend um Mitternacht“, sondern geschickt schreiben: „Wir sehen uns am selben Ort.“ " Nur Sie und Xiaohong wissen von diesem alten Ort. Selbst wenn Xiaoming und Xiaoli die Notiz sehen, wissen sie nicht, ob es sich bei dem alten Ort um die Bibliothek oder die englische Ecke handelt. Das ist Verschlüsselung, und der alte Ort ist der sogenannte Schlüssel.
Natürlich ist dieses Beispiel nicht sehr genau. Einfach ausgedrückt sind Verschlüsselung und Entschlüsselung Funktionen, und der Schlüssel ist der Parameter dieser Funktion. Zum Beispiel definieren wir eine einfache Verschlüsselungsfunktion, f(x)=x+b, x ist der Eingabe-Klartext und b ist der Schlüssel, die Entschlüsselungsfunktion ist die Umkehrfunktion der Verschlüsselungsfunktion, also g(x). =x-b. Wenn Sie b nicht kennen, können Sie den tatsächlichen Inhalt nicht erraten, selbst wenn Sie den Chiffretext sehen, sodass eine Verschlüsselung erreicht wird. Diese Art der Verschlüsselung und Entschlüsselung verwendet denselben Schlüssel, der als symmetrische Verschlüsselung bezeichnet wird
Aber hier gibt es ein Problem. Wie wird der Parameter b hier ausgehandelt?
Sie und Xiaohong können Zeit und Geld aufwenden, um sich auf den b-Wert zu einigen, aber in einer echten Netzwerkumgebung gibt es keine Möglichkeit einer direkten Kommunikation zwischen Ihnen und Xiaohong. Alle Kommunikation Wenn Sie sich darauf verlassen müssen, dass Xiao Ming und Xiao Li die Notiz weitergeben, wie können Sie sie vermeiden? Hier müssen Sie einen asymmetrischen Verschlüsselungsalgorithmus verwenden. Dieser Algorithmus verfügt über ein Paar öffentlicher Schlüssel und privater Schlüssel. Der öffentliche Schlüssel ist ein Schlüssel, den jeder erhalten kann, und der private Schlüssel ist ein Schlüssel, den der Server privat behält. Beim asymmetrischen Verschlüsselungsalgorithmus kann der mit dem öffentlichen Schlüssel verschlüsselte Inhalt nur mit dem privaten Schlüssel entschlüsselt werden, und der mit dem privaten Schlüssel verschlüsselte Inhalt kann nur mit dem öffentlichen Schlüssel entschlüsselt werden. Wenn Sie also den öffentlichen Schlüssel von Xiaohong zum Verschlüsseln Ihrer Notiz verwenden, können Xiaoming, Xiaoli und andere, die Ihnen bei der Übermittlung der Notiz helfen, den Inhalt nicht lesen, wenn sie die Notiz sehen. Nur Xiaohong, der über den privaten Schlüssel verfügt, kann Ihre Informationen lesen.
Wenn Xiaohong mit ihrem privaten Schlüssel verschlüsselt, kennt jeder in der Klasse den öffentlichen Schlüssel und der öffentliche Schlüssel kann den privaten Schlüssel entschlüsseln, was auch bedeutet, dass jeder Xiaohongs Antwort auf Nachrichten entschlüsseln kann. Wenn Sie schlau sind, müssen Sie sich eine Lösung ausgedacht haben: Verwenden Sie einen asymmetrischen Verschlüsselungsalgorithmus, um einen symmetrischen Schlüssel für Xiaohong zu verschlüsseln. Xiaohong verwendet ihren privaten Schlüssel, um den symmetrischen Schlüssel zu lesen, und dann verwenden Sie diesen symmetrischen Schlüssel, um eine symmetrische Verschlüsselung durchzuführen Sie können ein angenehmes Date haben.
Natürlich macht https das Gleiche.
Die wahre Identität der kommunizierenden ParteienNach der Verschlüsselung scheint der Kommunikationsprozess perfekt zu sein? Moment mal, wie wird der öffentliche Schlüssel von Xiaohong der Welt bekannt?
Sie müssen wissen, dass die gesamte Informationsinteraktion in der Netzwerkumgebung durch die Weitergabe von Notizen erfolgt, und Xiaohongs öffentlicher Schlüssel ist keine Ausnahme. Was passiert, wenn er durch Xiaomings Hände ausgetauscht wird? Wie kann sichergestellt werden, dass der öffentliche Xiaohong-Schlüssel in Ihrer Hand der echte öffentliche Xiaohong-Schlüssel ist? Als Schwester Feng, das Mitglied des Unterhaltungskomitees, sah, dass die Notizen über die verrückten Männer und Frauen in der Klasse auf verschiedene Weise ausgetauscht wurden, beschloss sie, sich zu melden. Schwester Feng hat eine Möglichkeit gefunden, bei jeder verschlüsselten Kommunikation ein Zertifikat mit sich zu führen, um ihre Identität nachzuweisen. Dieses Zertifikat wurde von Schwester Feng speziell für alle Singles in der Klasse erstellt. Der öffentliche Schlüssel wird in das Zertifikat eingefügt und an den Absender der Notiz zurückgesandt. Das Zertifikat enthält auch verschiedene Informationen wie die Schülernummer , Name und sogar Sternzeichen, Größe und Maße. Auf dem Zertifikat ist ein großes Identifikationssiegel eingeprägt. Dies ist das einzigartige Siegel von Schwester Feng, was bedeutet, dass die Echtheit der Informationen auf dem Zertifikat von Schwester Feng garantiert wird echter Single.
Anhand dieser Informationen können Sie erkennen, ob die andere Partei Xiaohong oder Ruhua ist. Dies ist der Zertifikatsmechanismus.
Natürlich werden Sie vermuten, dass das offizielle Siegel von Schwester Feng auf dem Zertifikat gefälscht sein könnte, und Ihr Verdacht ist berechtigt! Daher ist auch das offizielle Siegel auf dem Zertifikat asymmetrisch verschlüsselt. Die Verschlüsselungsmethode ist genau das Gegenteil von dem, was oben erwähnt wurde: mit dem privaten Schlüssel von Schwester Feng verschlüsselt und mit dem öffentlichen Schlüssel von Schwester Feng entschlüsselt, sodass die Authentizität des Zertifikats sichergestellt werden kann verifiziert. Bei diesem offiziellen Siegel handelt es sich um die digitale Signatur des Zertifikats. Konkret handelt es sich dabei um den Prozess der Extraktion des Digests des Zertifikats mithilfe eines Hash-Algorithmus und der anschließenden Verschlüsselung des Digests. Darüber hinaus können Sie sich mit dem Zertifikat auch direkt an Schwester Feng wenden und Schwester Feng hilft Ihnen bei der Überprüfung der Gültigkeit des Zertifikats. (Zertifikate haben ein Ablaufdatum, sodass auch echte Zertifikate ablaufen können. Sie müssen also aufpassen.)
Dieser Mechanismus scheint ziemlich vollständig zu sein, aber wir müssen gegenüber allem misstrauisch sein, um einen Sicherheitsmechanismus aufzubauen dass Schwester Feng garantiert, dass es vertrauenswürdig ist.
Aber ist Schwester Feng wirklich Schwester Feng? ? ?
Daher muss Schwester Feng selbst durch ein Zertifikat garantiert werden, das von der Schulleiterin ausgestellt wird, und das Zertifikat der Schulleiterin wird von der Schulleiterin ausgestellt... Diese Kette reicht bis zu den wenigen maßgeblichen Institutionen. Diese Institutionen sind die sogenannten Root-CAs im https-System. Wurzeln sind unbestreitbare Autoritäten, sie bringen sich selbst Salz und beweisen, wer sie sind. Im https-Zertifikatsystem wird das Stammzertifikat mit dem Betriebssystem/Browser geliefert. Wir können den von diesen Organisationen zertifizierten Zertifikaten vertrauen und sie dann Schicht für Schicht auf die Ebene von Fengjie ableiten.
Da das Zertifikat außerdem eigentlich sehr einfach zu bekommen ist, kostet es am U-Bahn-Eingang 10 Yuan pro Exemplar, und sowohl für Harvard als auch für Stanford kostet es 10 Yuan! Daher erstellen einige Unternehmen ihre eigenen Zertifikate, ohne sich überhaupt an die Stamm-CA-Organisation zu wenden, wie zum Beispiel das berühmte 12306. Sie können auch Ihr eigenes Zertifikat erstellen und es online stellen, damit Benutzer es herunterladen und in ihren Browser importieren können. Da Sie jedoch nicht über den Einfluss von Schwester Feng verfügen, wird Ihnen niemand glauben. Natürlich glauben manche Leute Schwester Feng nicht einmal ...
Der Kommunikationsinhalt ist vollständig
Das Passwort wird ebenfalls hinzugefügt, und das offizielle Siegel von Schwester Feng ist ebenfalls eingeprägt. Ist dieser Mechanismus genau richtig?
NeinNeinNein, denken Sie darüber nach, Xiao Ming, der in Sie verknallt ist, wird sich definitiv unglücklich fühlen, wenn er sieht, wie Sie Xiao Hong eine Nachricht schicken. Obwohl er es nicht verstehen kann, kann er es Ändern Sie immer noch den geheimen Text. Ursprünglich wollte man Xiaohong bitten, sich um Mitternacht auf dem Spielplatz zu treffen, aber Xiaoming löschte die erste Hälfte des Chiffriertextes und nach der Entschlüsselung lautete er zufällig „Treffen auf dem Spielplatz“. Dann rannte Xiaohong direkt nach dem Unterricht zum Spielplatz , aber du bist zurück in den Schlafsaal gelaufen, um eine gute Dusche zu nehmen. . . Dann ist Xiaohong mit Xiaoming weggelaufen.
Ich glaube, jeder hat ein tiefes Verständnis für dieses Szenario der Manipulation von Kommunikationsinhalten. Wenn wir einige Websites besuchen, erscheinen Anzeigen von Betreibern ohne Grund vom Betreiber hinzugefügt! ! Daher muss auch die Integrität des Inhalts gewährleistet werden. Dies ist relativ einfach: Verwenden Sie zunächst einen Hash-Algorithmus, um die Inhaltszusammenfassung zu extrahieren, und verschlüsseln Sie dann die Zusammenfassung, um eine digitale Signatur zu erstellen Integrität des Kommunikationsinhalts.
Das Obige ist eine vereinfachte Version der in https verwendeten Technologie. Ein HTTP-Kommunikationsprozess ist wie folgt:
Allgemeine Schritte:
1. Der Client sendet eine Client-Hallo-Nachricht, um die SSL-Kommunikation zu starten. Schlüssellänge usw.
2. Wenn der Server die SSL-Kommunikation unterstützt, antwortet er mit einer Server-Hallo-Nachricht. Die Nachricht enthält auch die SSL-Version und die Konfiguration des Verschlüsselungsalgorithmus.
3. Anschließend sendet der Server eine Zertifikatsnachricht, d. h. das Zertifikat wird an den Client gesendet.
4. Der Client sendet eine Client Key Exchange-Nachricht, verwendet den öffentlichen Schlüssel des Zertifikats in 3, um die zufällige Passwortzeichenfolge des Pre-Master-Geheimnisses zu verschlüsseln, und verwendet dieses Passwort anschließend für die symmetrische Verschlüsselung für die Kommunikation.
5. Nachdem der Server mit dem privaten Schlüssel erfolgreich entschlüsselt hat, gibt er eine Antwort zurück, die angibt, dass die SSL-Kommunikationsumgebung eingerichtet wurde.
6. Dann gibt es die reguläre http-c/s-Kommunikation.
Wie oben erwähnt, werden in den Schritten 3 und 6 Digest- und Signaturalgorithmen verwendet, um sicherzustellen, dass das übermittelte Zertifikat und der Kommunikationsinhalt nicht manipuliert werden. Aus diesem Prozess ist ersichtlich, dass der Kern von https in der Verschlüsselung liegt, insbesondere im asymmetrischen Verschlüsselungsalgorithmus, der häufig zur Übertragung von Schlüsselinformationen verwendet wird.
Nachdem man die Verschlüsselung verstanden, die Transparenz des Netzwerks erkannt und allem gegenüber skeptisch geworden ist, wird es einfacher, das https-System zu verstehen.
Fazit
Kürzlich im System Um Dinge im Zusammenhang mit http zu überprüfen, werden in diesem Artikel zunächst die Grundprinzipien von https vorgestellt. Ich hoffe, Sie können sie korrigieren. Praktische Anwendungen, statische Serverkonfiguration usw. werden später vorgestellt~
Anhang
Wie vermeidet man Man-in-the-Middle-Hijacking in https?
Wenn jemand Ihren DNS-Server kapert und http://wwe.icbc.com auf seine illegale Website auflöst oder der Proxyserver Sie auf seine illegale Website weiterleitet, handelt es sich um einen Man-in-the-Middle-Angriff. Wenn kein https vorhanden ist, erfolgt der Angriff. Wie vermeidet https solche Angriffe?
Die Antwort liegt in der Zertifikatauthentifizierung.
1. Bei der Beantragung eines Zertifikats führt die Zertifizierungsstelle eine Kontrollzertifizierung für den zu beantragenden Domainnamen durch, sodass Sie nicht die Website von Lao Wang nebenan nutzen können, um ein Zertifikat zu beantragen. Selbst wenn man seine Website hackt, kann Lao Wang das herausfinden, solange er ein Zertifikat beantragt.
2. Wenn Sie ein Zertifikat fälschen, das nicht von einer autorisierenden Zertifizierungsstelle ausgestellt wurde, warnt der Browser den Benutzer bei der Überprüfung des Zertifikats, um ihn darauf hinzuweisen, dass das Zertifikat illegal ist. Natürlich können Benutzer weiterhin operieren, z. B. Bahntickets ergattern oder ähnliches. .
3. Wenn Sie das Zertifikat der echten Site herunterladen, der Domänenname auf dem Zertifikat unverändert bleibt und Sie nur den öffentlichen Schlüssel ersetzen, stellt der Browser beim Vergleich der digitalen Signatur fest, dass er nicht korrekt ist Rufen Sie wortlos die Polizei.
4. Wenn der Mittelsmann direkt das echte Zertifikat von ICBC Home verwendet, kann er die Nachricht des Kunden zwar empfangen, sie jedoch nicht entschlüsseln, sodass er nicht auf die Anfrage des Kunden antworten kann und der Angriff ungültig ist!
Digitale Signatur des Zertifikats
Vor dem Hash-Algorithmus und der Nummer Ich weiß nicht viel über Signaturen, aber nachdem ich sie verstanden hatte, stellte ich fest, dass das Prinzip eigentlich ganz einfach ist. Der Hash-Algorithmus kann eine große Datenmenge in eine Zusammenfassung fester Länge umwandeln, und die Zusammenfassung entspricht der Eingabe. Die Zusammenfassung ändert sich auch, wenn sich die Eingabe ändert. Daher wird ein Hash-Algorithmus auf die Daten angewendet, um eine Zusammenfassung zu erhalten. Durch den Vergleich der Zusammenfassung können Sie feststellen, ob die Daten manipuliert wurden. Das Zertifikat verwendet den privaten Schlüssel, um den Digest zu verschlüsseln, und dann kann der Client ihn mit dem öffentlichen Schlüssel entschlüsseln, um den Digest zu erhalten. Durch Vergleich des vom Hash-Algorithmus berechneten Digests kann er feststellen, ob das Zertifikat manipuliert wurde. Da andererseits der öffentliche und der private Schlüssel paarweise vorliegen, kann zwar der Auszug des manipulierten Zertifikats abgerufen werden, die Signatur kann jedoch nicht verschlüsselt werden, sodass die Kombination aus Auszug und Verschlüsselung die Authentizität des Zertifikats sicherstellen kann. Der private Schlüssel ist hier der private Schlüssel der ausstellenden Behörde des Zertifikats, d. h. die Zertifizierungsstelle in der Zertifizierungsstellenkette verschlüsselt das Benutzerserverzertifikat und die übergeordnete Zertifizierungsstelle verschlüsselt das Zertifikat der untergeordneten Zertifizierungsstelle und bildet so einen Vertrauensring.