Heim Web-Frontend js-Tutorial Was ist der HTTP- vs. HTTPS-Handshake?

Was ist der HTTP- vs. HTTPS-Handshake?

Sep 08, 2017 pm 01:00 PM
http https Händedruck

Heute habe ich zusammengefasst, was der HTTP-Drei-Wege-Handshake ist, den Prozess des HTTPS-Handshakes und warum HTTPS sicher ist.

Prämisse

Bei der Beschreibung dieser beiden Handshakes gibt es einige Dinge, die im Vorfeld erklärt werden müssen.

Was ist der Unterschied zwischen HTTP und TCP/IP?

Das TPC/IP-Protokoll ist ein Transportschichtprotokoll, das hauptsächlich die Art und Weise löst, wie Daten im Netzwerk übertragen werden, während HTTP ein Anwendungsschichtprotokoll ist, das hauptsächlich die Art und Weise löst, wie Daten verpackt werden. WEB verwendet das HTTP-Protokoll als Protokoll der Anwendungsschicht, um HTTP-Textinformationen zu kapseln, und verwendet dann TCP/IP als Protokoll der Transportschicht, um sie an das Netzwerk zu senden.

Das folgende Diagramm versucht, die Position verschiedener TCP/IP- und anderer Protokolle im ursprünglichen OSI-Modell (Open System Interconnect) darzustellen:

PS: Das Formular stammt aus Online-Informationen

Was ist ein CA-Zertifikat?

CA (Certificate Authority) ist eine externe Behörde, die für die Verwaltung und Ausstellung von Zertifikaten verantwortlich ist. Sie genießt das Vertrauen und die Anerkennung aller Branchen und der Öffentlichkeit.

CA-Zertifikat ist ein von einer Zertifizierungsstelle ausgestelltes Zertifikat, das verwendet werden kann, um zu überprüfen, ob eine Website vertrauenswürdig ist (für HTTPS), um zu überprüfen, ob eine Datei vertrauenswürdig ist (ob sie manipuliert wurde) usw. Ein Zertifikat kann auch zum Nachweis der Authentizität und Vertrauenswürdigkeit eines anderen Zertifikats verwendet werden. Das Zertifikat der obersten Ebene wird als Stammzertifikat bezeichnet. Mit Ausnahme des Stammzertifikats (das sich als zuverlässig erweist) müssen sich andere Zertifikate auf das übergeordnete Zertifikat verlassen, um sich zu beweisen.

HTTP-Drei-Wege-Handshake

Das Hypertext-Übertragungsprotokoll HTTP (HyperText Transfer Protocol) wird am häufigsten verwendet das Internet Ein Netzwerkprotokoll. Da die Informationen im Klartext übermittelt werden, gelten sie als unsicher. Der Drei-Wege-Handshake von HTTP verwendet tatsächlich den Drei-Wege-TCP-Handshake, um den Aufbau einer HTTP-Verbindung zu bestätigen.

Wie in der Abbildung unten gezeigt, ist SYN (synchron) das Handshake-Signal, die Sequenznummer und die Bestätigungsnummer, die verwendet werden, wenn TCP/IP eine Verbindung herstellt. Die drei darauf zeigenden Pfeile stellen einen Drei-Wege-Handshake dar. Nach Abschluss des Drei-Wege-Handshakes beginnen Client und Server mit der Datenübertragung.

PS: Das Bild stammt aus Online-Informationen

Erster Handshake: Der Client sendet ein Syn-Paket (syn=j) an den Server und gibt das SYN_SEND ein Zustand. Warten auf die Bestätigung durch den Server;

Zweiter Handshake: Der Server empfängt das Syn-Paket und muss das SYN des Clients bestätigen (ack=j+1), gleichzeitig sendet er auch ein SYN-Paket (syn=k), das heißt, SYN+ACK-Paket, zu diesem Zeitpunkt wechselt der Server in den SYN_RECV-Status

Der dritte Handshake: Der Client empfängt das SYN+ACK-Paket vom Server und sendet ein Bestätigungspaket ACK (ack=k+1) an den Server, nachdem das Paket gesendet wurde. Der Client und der Server treten in den ESTABLISHED-Status ein und schließen den Drei-Wege-Handshake ab.

HTTPS-Handshake-Prozess

HTTPS fügt das SSL-Protokoll basierend auf HTTP hinzu, und SSL verlässt sich auf Zertifikate, um das zu überprüfen Serveridentität und verschlüsseln Sie die Kommunikation zwischen Browser und Server. In der folgenden Abbildung wird insbesondere gezeigt, wie die Verschlüsselung, Entschlüsselung und Überprüfung durchgeführt wird. Das Folgende wird als Handshake bezeichnet. Was ist der HTTP- vs. HTTPS-Handshake?

PS: Die folgende Beschreibung des Bildes stammt von: http://zhuqil.cnblogs.com

1. Client initiiert HTTPS-Anfrage

2. Serverkonfiguration

Ein Server, der das HTTPS-Protokoll verwendet, muss über ein Set verfügen Anzahl digitaler Zertifikate Sie können es selbst erstellen oder ein CA-Zertifikat verwenden. Der Unterschied besteht darin, dass das von Ihnen ausgestellte Zertifikat vom Client überprüft werden muss, bevor Sie weiterhin darauf zugreifen können. Bei Verwendung des CA-Zertifikats wird jedoch keine Eingabeaufforderungsseite angezeigt. Bei diesem Zertifikatssatz handelt es sich eigentlich um ein Paar öffentlicher und privater Schlüssel. Der öffentliche Schlüssel wird von anderen zur Verschlüsselung verwendet und der private Schlüssel wird von Ihnen selbst zur Entschlüsselung verwendet.

3. Übertragen Sie das Zertifikat

Dieses Zertifikat ist eigentlich ein öffentlicher Schlüssel, der jedoch viele Informationen enthält, beispielsweise die ausstellende Behörde des Zertifikats, Ablaufzeit usw. .

4. Der Client analysiert das Zertifikat

Dieser Teil der Arbeit wird vom TLS des Clients erledigt. Es wird zunächst überprüft, ob die Öffentlichkeit Der Schlüssel ist gültig, beispielsweise die ausstellende Behörde, die Ablaufzeit usw. Wenn eine Anomalie festgestellt wird, wird ein Warnfeld angezeigt, das darauf hinweist, dass ein Problem mit dem Zertifikat vorliegt. Liegt kein Problem mit dem Zertifikat vor, wird ein Zufallswert generiert und dieser Zufallswert anschließend mit dem Zertifikat verschlüsselt.

5. Verschlüsselte Informationen übertragen

Dieser Teil überträgt einen mit einem Zertifikat verschlüsselten Zufallswert. Der Zweck besteht darin, dass der Server diesen Zufallswert erhält Wertwert, zukünftige Kommunikation zwischen dem Client und dem Server kann über diesen Zufallswert verschlüsselt und entschlüsselt werden.

6. Informationen zur Entschlüsselung des Dienstsegments

Nachdem der Server ihn mit dem privaten Schlüssel entschlüsselt hat, erhält er den vom Client übergebenen Zufallswert (privaten Schlüssel) und verschlüsselt den Inhalt dann symmetrisch mit diesem Wert. Bei der sogenannten symmetrischen Verschlüsselung werden Informationen und private Schlüssel durch einen bestimmten Algorithmus gemischt, sodass der Inhalt nicht abgerufen werden kann und der Client und der Server den privaten Schlüssel kennen, solange der private Schlüssel nicht bekannt ist Der Verschlüsselungsalgorithmus ist stark genug, der private Schlüssel ist komplex genug und die Daten sind sicher genug.

7. Übermittlung verschlüsselter Informationen

Dieser Teil der Informationen sind die durch den privaten Schlüssel im Dienstsegment verschlüsselten Informationen, die sein können Wird auf die Client-Reduktion angewendet.

8. Der Client entschlüsselt die Informationen

Der Client verwendet den zuvor generierten privaten Schlüssel, um die vom Dienstsegment übergebenen Informationen zu entschlüsseln Dann erhält die Entschlüsselung den folgenden Inhalt.

PS: Auch wenn der Dritte die Daten während des gesamten Handshake-Prozesses überwacht, kann man nichts dagegen tun.

Zusammenfassung

Warum ist HTTPS sicher?

Wenn im vierten Schritt des HTTPS-Handshakes das Zertifikat der Website nicht vertrauenswürdig ist, wird die folgende Bestätigungsoberfläche angezeigt, um die Authentizität der Website zu bestätigen. Darüber hinaus wird in den Schritten sechs und acht der private Schlüssel des Clients zum Ver- und Entschlüsseln verwendet, um die Sicherheit der Datenübertragung zu gewährleisten.

Der Unterschied zwischen HTTPS und HTTP

1 Das https-Protokoll erfordert die Beantragung eines Zertifikats von ca oder ein selbst erstelltes Zertifikat erstellen.

2. HTTP-Informationen werden im Klartext übertragen, während https eine sichere SSL-Verschlüsselung verwendet.

3. HTTP überträgt Daten direkt mit TCP, während HTTP eine SSL-Schicht (OSI-Präsentationsschicht) durchläuft und unterschiedliche Ports verwendet. Ersteres ist 80 (erfordert inländische Archivierung) und letzteres ist 443.

4. Die HTTP-Verbindung ist sehr einfach und zustandslos; das HTTPS-Protokoll ist ein Netzwerkprotokoll, das auf dem SSL+HTTP-Protokoll basiert und eine verschlüsselte Übertragung und Identitätsauthentifizierung durchführen kann und sicherer als das HTTP-Protokoll ist.

Beachten Sie, dass die https-Verschlüsselung auf der Transportschicht abgeschlossen ist

https-Pakete werden verschlüsselt, wenn sie in TCP-Pakete verpackt werden, unabhängig davon, ob Header-Feld und das Body-Feld von https werden verschlüsselt.

Bei Verwendung von tcpdump oder wireshark und anderen TCP-Layer-Tools zum Erfassen von Paketen wird der verschlüsselte Inhalt erhalten, während dies bei der Anwendungsschicht der Fall ist Wird zum Erfassen von Paketen verwendet. Verwenden Sie das Paketerfassungstool Charels (Mac), Fildder (Windows). Dann wird es natürlich im Klartext angezeigt.

PS: HTTPS selbst dient der Sicherheit der Netzwerkübertragung.

Beispiel: Verwenden Sie Wireshark, um Pakete zu erfassen:

http. Sie können sehen, dass die Erfassung im Klartext erfolgt:

https, Sie können im Chiffretext gefangen sehen:

Anhang

Die Verschlüsselungs- und HASH-Algorithmen, die im Allgemeinen von HTTPS verwendet werden sind wie folgt:

Asymmetrischer Verschlüsselungsalgorithmus: RSA, DSA/DSS

Symmetrischer Verschlüsselungsalgorithmus: AES, RC4, 3DES

HASH-Algorithmus: MD5, SHA1, SHA256

Das obige ist der detaillierte Inhalt vonWas ist der HTTP- vs. HTTPS-Handshake?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bedeutet der http-Statuscode 520? Was bedeutet der http-Statuscode 520? Oct 13, 2023 pm 03:11 PM

Der HTTP-Statuscode 520 bedeutet, dass der Server bei der Verarbeitung der Anfrage einen unbekannten Fehler festgestellt hat und keine genaueren Informationen bereitstellen kann. Wird verwendet, um darauf hinzuweisen, dass bei der Verarbeitung der Anforderung durch den Server ein unbekannter Fehler aufgetreten ist, der durch Serverkonfigurationsprobleme, Netzwerkprobleme oder andere unbekannte Gründe verursacht werden kann. Dies wird normalerweise durch Serverkonfigurationsprobleme, Netzwerkprobleme, Serverüberlastung oder Codierungsfehler verursacht. Wenn Sie auf einen Fehler mit dem Statuscode 520 stoßen, wenden Sie sich am besten an den Website-Administrator oder das technische Support-Team, um weitere Informationen und Unterstützung zu erhalten.

Was ist der HTTP-Statuscode 403? Was ist der HTTP-Statuscode 403? Oct 07, 2023 pm 02:04 PM

Der HTTP-Statuscode 403 bedeutet, dass der Server die Anfrage des Clients abgelehnt hat. Die Lösung für den HTTP-Statuscode 403 ist: 1. Überprüfen Sie die Authentifizierungsdaten. Wenn der Server eine Authentifizierung erfordert, stellen Sie sicher, dass die richtigen Anmeldedaten angegeben werden. 2. Überprüfen Sie die IP-Adresseinschränkungen Die IP-Adresse des Clients ist eingeschränkt oder nicht auf der Blacklist. Wenn der Statuscode 403 mit den Berechtigungseinstellungen der Datei oder des Verzeichnisses zusammenhängt, stellen Sie sicher, dass der Client über ausreichende Berechtigungen zum Zugriff auf diese Dateien oder Verzeichnisse verfügt. usw.

So verwenden Sie Nginx Proxy Manager, um einen Reverse-Proxy unter dem HTTPS-Protokoll zu implementieren So verwenden Sie Nginx Proxy Manager, um einen Reverse-Proxy unter dem HTTPS-Protokoll zu implementieren Sep 26, 2023 am 08:40 AM

So implementieren Sie mit NginxProxyManager einen Reverse-Proxy unter dem HTTPS-Protokoll. Mit der Popularität des Internets und der Diversifizierung der Anwendungsszenarien sind die Zugriffsmethoden auf Websites und Anwendungen immer komplexer geworden. Um die Effizienz und Sicherheit des Website-Zugriffs zu verbessern, haben viele Websites damit begonnen, Reverse-Proxys zur Bearbeitung von Benutzeranfragen zu verwenden. Der Reverse-Proxy für das HTTPS-Protokoll spielt eine wichtige Rolle beim Schutz der Privatsphäre der Benutzer und der Gewährleistung der Kommunikationssicherheit. In diesem Artikel wird die Verwendung von NginxProxy vorgestellt

Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Verstehen Sie gängige Anwendungsszenarien der Webseitenumleitung und verstehen Sie den HTTP-301-Statuscode Feb 18, 2024 pm 08:41 PM

Verstehen Sie die Bedeutung des HTTP 301-Statuscodes: Häufige Anwendungsszenarien der Webseitenumleitung. Mit der rasanten Entwicklung des Internets werden die Anforderungen der Menschen an die Webseiteninteraktion immer höher. Im Bereich Webdesign ist die Webseitenumleitung eine gängige und wichtige Technologie, die über den HTTP-301-Statuscode implementiert wird. In diesem Artikel werden die Bedeutung des HTTP 301-Statuscodes und häufige Anwendungsszenarien bei der Webseitenumleitung untersucht. Der HTTP-Statuscode 301 bezieht sich auf eine permanente Weiterleitung (PermanentRedirect). Wenn der Server die des Clients empfängt

So verwenden Sie Nginx Proxy Manager, um einen automatischen Sprung von HTTP zu HTTPS zu implementieren So verwenden Sie Nginx Proxy Manager, um einen automatischen Sprung von HTTP zu HTTPS zu implementieren Sep 26, 2023 am 11:19 AM

So implementieren Sie den automatischen Sprung von HTTP zu HTTPS mit NginxProxyManager Mit der Entwicklung des Internets beginnen immer mehr Websites, das HTTPS-Protokoll zur Verschlüsselung der Datenübertragung zu verwenden, um die Datensicherheit und den Schutz der Privatsphäre der Benutzer zu verbessern. Da das HTTPS-Protokoll die Unterstützung eines SSL-Zertifikats erfordert, ist bei der Bereitstellung des HTTPS-Protokolls eine gewisse technische Unterstützung erforderlich. Nginx ist ein leistungsstarker und häufig verwendeter HTTP-Server und Reverse-Proxy-Server sowie NginxProxy

Schnelle Anwendung: Praktische Entwicklungsfallanalyse des asynchronen HTTP-Downloads mehrerer PHP-Dateien Schnelle Anwendung: Praktische Entwicklungsfallanalyse des asynchronen HTTP-Downloads mehrerer PHP-Dateien Sep 12, 2023 pm 01:15 PM

Schnelle Anwendung: Praktische Entwicklungsfallanalyse von PHP Asynchroner HTTP-Download mehrerer Dateien Mit der Entwicklung des Internets ist die Funktion zum Herunterladen von Dateien zu einem der Grundbedürfnisse vieler Websites und Anwendungen geworden. In Szenarien, in denen mehrere Dateien gleichzeitig heruntergeladen werden müssen, ist die herkömmliche synchrone Download-Methode oft ineffizient und zeitaufwändig. Aus diesem Grund ist die Verwendung von PHP zum asynchronen Herunterladen mehrerer Dateien über HTTP eine zunehmend verbreitete Lösung. In diesem Artikel wird anhand eines tatsächlichen Entwicklungsfalls detailliert analysiert, wie PHP asynchrones HTTP verwendet.

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Oct 09, 2023 pm 09:21 PM

Häufige Netzwerkkommunikations- und Sicherheitsprobleme und Lösungen in C# Im heutigen Internetzeitalter ist Netzwerkkommunikation zu einem unverzichtbaren Bestandteil der Softwareentwicklung geworden. In C# treten normalerweise einige Netzwerkkommunikationsprobleme auf, z. B. die Sicherheit der Datenübertragung, die Stabilität der Netzwerkverbindung usw. In diesem Artikel werden häufig auftretende Netzwerkkommunikations- und Sicherheitsprobleme in C# ausführlich erläutert und entsprechende Lösungen und Codebeispiele bereitgestellt. 1. Netzwerkkommunikationsprobleme Unterbrechung der Netzwerkverbindung: Während des Netzwerkkommunikationsprozesses kann die Netzwerkverbindung unterbrochen werden, was zu Problemen führen kann

HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort HTTP 200 OK: Verstehen Sie die Bedeutung und den Zweck einer erfolgreichen Antwort Dec 26, 2023 am 10:25 AM

HTTP-Statuscode 200: Erkunden Sie die Bedeutung und den Zweck erfolgreicher Antworten. HTTP-Statuscodes sind numerische Codes, die den Status einer Serverantwort angeben. Darunter zeigt der Statuscode 200 an, dass die Anfrage vom Server erfolgreich verarbeitet wurde. In diesem Artikel wird die spezifische Bedeutung und Verwendung des HTTP-Statuscodes 200 untersucht. Lassen Sie uns zunächst die Klassifizierung von HTTP-Statuscodes verstehen. Statuscodes sind in fünf Kategorien unterteilt, nämlich 1xx, 2xx, 3xx, 4xx und 5xx. Unter diesen zeigt 2xx eine erfolgreiche Antwort an. Und 200 ist der häufigste Statuscode in 2xx

See all articles