Heim  >  Artikel  >  Web-Frontend  >  Wissen Sie im https-Zeitalter noch nichts über ihn?

Wissen Sie im https-Zeitalter noch nichts über ihn?

PHPz
PHPzOriginal
2017-03-12 17:24:531156Durchsuche

Der Autor dieses Artikels: Qieguo, konzentriert sich auf den Bereich der Front-End-Entwicklung. Weitere Artikel finden Sie in der Zhihu-Kolumne „Front-End-Kleinigkeiten“

Öffnen Sie nun die wichtigsten bekannten Websites. Haben Sie die Adresse gefunden? Der Spalte wurde ein kleines grünes Schloss hinzugefügt?

Wissen Sie im https-Zeitalter noch nichts über ihn?

Ja, das ist https, das ist die Ära von https.

Aber kennen Sie sich mit https aus?

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 des Kommunikationsinhalts

  2. Wahrheit der Identität beider Kommunikationsparteien

  3. Vollständiger Kommunikationsinhalt

Und https wurde geboren, um diese drei Hauptprobleme zu lösen (genauer gesagt sollte es SSL sein). diese 3 separat lösen.

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 ist die Verschlüsselung und Entschlüsselung eine Funktion , und der Schlüssel ist der Parameter dieser Funktion. Zum Beispiel definieren eine einfache Verschlüsselungsfunktion, f(x)=x+b, x ist der Eingabeklartext und b ist der Schlüssel, die Umkehrfunktion der Verschlüsselungsfunktion ist, 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, was als symmetrische Verschlüsselung bezeichnet wird.

Aber hier gibt es ein Problem. Wie wird Parameter b hier ausgehandelt?

Sie und Xiaohong können vorher und nachher einen Termin mit Xiaohong vereinbaren, aber in einer echten Netzwerkumgebung gibt es für Sie und Xiaohong keine Möglichkeit, direkt zu kommunizieren. Die gesamte Kommunikation muss sich auf Xiaoming und Xiaoli verlassen Wenn ja, was können Sie tun, um sie zu vermeiden? Hier müssen Sie einen asymmetrischen Verschlüsselungsalgorithmus verwenden. Der öffentliche Schlüssel ist ein Schlüssel, den jeder erhalten kann, und der private Schlüssel wird vom Dienst privat aufbewahrt . Schlüssel. 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.

Symmetrische Verschlüsselungsalgorithmen verwenden denselben geheimen Schlüssel für die Verschlüsselung und Entschlüsselung; asymmetrische Verschlüsselungsalgorithmen erfordern zwei Schlüssel für die Verschlüsselung und Entschlüsselung, und diese beiden Schlüssel sind öffentliche Schlüssel (öffentlicher Schlüssel, öffentlicher Schlüssel genannt) und privater Schlüssel (privater Schlüssel, auch privater Schlüssel genannt). Sie sind vielleicht neugierig auf das Prinzip des asymmetrischen Verschlüsselungsalgorithmus, aber ich werde hier nicht auf den Algorithmus eingehen. Interessierte Schüler können selbst suchen.

Dann stellt sich die Frage: Was soll ich tun, wenn Xiaohong auch die Antwort an Sie verschlüsseln möchte?

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 an die Lösung gedacht haben: Verwenden Sie den 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 Symmetric auszuführen Verschlüsselung , und dann können Sie sich glücklich verabreden.

Natürlich macht https das Gleiche.

Die wahre Identität der kommunizierenden Parteien

Nach 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 geändert wird, wenn er durch Xiaomings Hände gelangt? 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. Dieses offizielle Siegel ist die digitale Signatur des Zertifikats. Dabei handelt es sich insbesondere um den Prozess, bei dem zunächst der Digest des Zertifikats mithilfe eines Hash-Algorithmus extrahiert und dann der Digest verschlüsselt wird. 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? ? ?

Wissen Sie im https-Zeitalter noch nichts über ihn?

Daher muss Schwester Feng selbst durch ein Zertifikat garantiert werden. Das Zertifikat von Schwester Feng wird vom Schulleiter ausgestellt, und das Zertifikat des Schulleiters wird vom Schulleiter ausgestellt ... Diese Kette geht bis zum Ende. Mehrere maßgebliche 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 ...

Wissen Sie im https-Zeitalter noch nichts über ihn?

Der Kommunikationsinhalt ist vollständig

Das Passwort wurde ebenfalls hinzugefügt und das offizielle Siegel von Schwester Feng ist ebenfalls abgestempelt perfekt?

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:

Wissen Sie im https-Zeitalter noch nichts über ihn?

Allgemeine Schritte :

  1. Der Client sendet eine Client-Hallo-Nachricht, um die SSL-Kommunikation zu starten. Die Nachricht enthält die SSL-Version, die Liste der verfügbaren Algorithmen, die 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, also den ausgehandelten Verschlüsselungs- und Entschlüsselungsalgorithmus.

  3. Dann sendet der Server die Certificate-Nachricht, was bedeutet, dass das Zertifikat an den Client gesendet wird.

  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 regelmäßige 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

In letzter Zeit habe ich systematisch die HTTP-bezogenen Dinge vorgestelltdie Grundprinzipien von https Wenn etwas unangemessen ist, korrigieren Sie mich bitte! Später werden wir die eigentliche Anwendung, die statische Serverkonfiguration usw. vorstellen. ~

Anhang

So vermeiden Sie Man-in-the- mittleres Hijacking von https?

Wenn jemand Ihren DNS-Server kapert und wwe.icbc.com zu seiner illegalen Website auflöst oder der Proxyserver Sie zu seiner illegalen 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 Domainnamen durch, den Sie beantragen. Daher ist es für Sie unmöglich, die Website von Lao Wang nebenan zu nutzen, um ein Zertifikat zu beantragen Zertifikat. 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 Sie der Browser, wenn er prüft, ob 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, bleibt der Domänenname auf dem Zertifikat unverändert und Sie ersetzen nur den öffentlichen Schlüssel, dann kann der Browser die Richtigkeit finden, wenn Vergleichen Sie die digitale Signatur des Zertifikats. Wenn Sie nicht weiterkommen, rufen Sie wortlos die Polizei.

  4. Wenn der Mittelsmann direkt das echte Zertifikat von www.icbc.com verwendet, kann er zwar die Nachricht des Kunden empfangen, sie aber nicht entschlüsseln, sodass er nicht auf die Anfrage des Kunden antworten kann. Der Angriff ist ungültig!

Digitale Signatur des Zertifikats

Ich wusste vorher nicht viel über Hashing-Algorithmen und digitale Signaturen, aber nachdem ich es verstanden hatte, stellte ich fest, dass das Prinzip tatsächlich recht ist einfach. 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.

Der Autor dieses Artikels: Qie Guo, der sich auf den Bereich der Front-End-Entwicklung konzentriert. Weitere Artikel finden Sie in der Zhihu-Kolumne „Front-End-Kleinigkeiten“

Das obige ist der detaillierte Inhalt vonWissen Sie im https-Zeitalter noch nichts über ihn?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn