Heim >häufiges Problem >Warum ist HTTPS sicherer als HTTP?

Warum ist HTTPS sicherer als HTTP?

(*-*)浩
(*-*)浩nach vorne
2019-08-15 16:09:283302Durchsuche

Warum ist HTTPS sicherer als HTTP?

Vorwort

In den letzten Jahren hat das Internet enorme Veränderungen erfahren, insbesondere das HTTP-Protokoll, das wir sind Mit der gemeinsamen Förderung von Browsern, Suchmaschinen, CA-Institutionen und großen Internetunternehmen wird das Internet die „Ära der HTTPS-Verschlüsselung“ vollständig ersetzen in den nächsten Jahren der Mainstream der Vereinbarung.

Nachdem Sie diesen Artikel gelesen haben, hoffe ich, dass Sie verstehen können:

Was sind die Probleme bei der HTTP-Kommunikation?

Wie HTTPS sich verbessert. Wo liegen die Probleme? HTTP

Was ist das Funktionsprinzip von HTTPS

1. Was ist HTTPS

HTTPS richtet eine SSL-Verschlüsselungsschicht auf HTTP ein und verschlüsselt die Die übertragenen Daten sind Teil der sicheren Version des HTTP-Protokolls. Es wird heute häufig für sicherheitsrelevante Kommunikation im World Wide Web verwendet, beispielsweise für Transaktionszahlungen.

Die Hauptfunktionen von HTTPS sind:

(1) Daten verschlüsseln und einen Informationssicherheitskanal einrichten, um die Datensicherheit während der Übertragung zu gewährleisten;

(2) Durchführung einer echten Identitätsauthentifizierung auf dem Website-Server.

Wir verwenden häufig HTTPS-Kommunikation auf der Web-Anmeldeseite und der Schnittstelle zum Bezahlen von Einkäufen. Bei Verwendung von HTTPS-Kommunikation wird nicht mehr http:// verwendet, sondern stattdessen https://. Wenn der Browser außerdem auf eine Website mit gültiger HTTPS-Kommunikation zugreift, wird in der Adressleiste des Browsers eine Sperrmarkierung angezeigt. Die Art und Weise, wie HTTPS angezeigt wird, variiert je nach Browser.

2. Warum HTTPS benötigt wird

Im HTTP-Protokoll können Sicherheitsprobleme wie Informationsdiebstahl oder Identitätsverschleierung auftreten. Die Verwendung des HTTPS-Kommunikationsmechanismus kann diese Probleme wirksam verhindern. Lassen Sie uns zunächst die Probleme des HTTP-Protokolls verstehen:

Die Kommunikation verwendet Klartext (nicht verschlüsselt) und der Inhalt kann abgehört werden

Da HTTP selbst nicht über die Verschlüsselungsfunktion verfügt, kann es nicht die gesamte Kommunikation (den Inhalt von Anfragen und Antworten, die über das HTTP-Protokoll kommuniziert werden) verschlüsseln. Das heißt, HTTP-Nachrichten werden im Klartext gesendet (bezieht sich auf unverschlüsselte Nachrichten).

Die Mängel des HTTP-Klartextprotokolls sind eine wichtige Ursache für Sicherheitsprobleme wie Datenlecks, Datenmanipulation, Traffic-Hijacking und Phishing-Angriffe. Das HTTP-Protokoll kann keine Daten verschlüsseln und alle Kommunikationsdaten laufen „nackt“ im Klartext im Netzwerk. Mithilfe von Netzwerk-Sniffing-Geräten und einigen technischen Mitteln kann der Inhalt von HTTP-Nachrichten wiederhergestellt werden.

Die Integrität der Nachricht kann nicht nachgewiesen werden, sie kann also manipuliert werden

Die sogenannte Integrität bezieht sich auf die Richtigkeit der Informationen. Wenn die Vollständigkeit nicht nachgewiesen werden kann, kann in der Regel nicht beurteilt werden, ob die Informationen korrekt sind. Da das HTTP-Protokoll die Integrität der Kommunikationsnachrichten nicht nachweisen kann, gibt es keine Möglichkeit herauszufinden, ob der Inhalt der Anfrage oder Antwort in der Zeit nach dem Senden der Anfrage oder Antwort bis zum Empfang durch die andere Partei manipuliert wurde . Mit anderen Worten: Es gibt keine Möglichkeit zu bestätigen, dass die gesendete Anfrage/Antwort und die empfangene Anfrage/Antwort identisch sind.

Die Identität der kommunizierenden Partei wird nicht überprüft, daher ist eine Maskierung möglich.

Anfragen und Antworten im HTTP-Protokoll bestätigen die kommunizierende Partei nicht. Da während der HTTP-Protokollkommunikation keine Verarbeitungsschritte zur Bestätigung der kommunizierenden Partei erforderlich sind, kann jeder eine Anfrage initiieren. Darüber hinaus gibt der Server, solange er die Anfrage empfängt, eine Antwort zurück, unabhängig davon, wer die andere Partei ist (jedoch nur, wenn die IP-Adresse und die Portnummer des Absenders nicht durch den Webserver eingeschränkt sind)

HTTP-Protokoll kann nicht überprüft werden. Was die Identität der kommunizierenden Partei betrifft, kann jeder einen gefälschten Server fälschen, um Benutzer zu täuschen und so einen „Phishing-Betrug“ erreichen, der von Benutzern nicht erkannt werden kann.

Das HTTPS-Protokoll bietet folgende Vorteile gegenüber dem HTTP-Protokoll (siehe unten):

Datenschutz: Der Inhalt wird symmetrisch verschlüsselt und jede Verbindung generiert einen eindeutigen Verschlüsselungsschlüssel

Datenintegrität: Die Integrität der Inhaltsübertragung wird überprüft

Identitätsauthentifizierung: Ein Dritter kann die Identität des Servers (Clients) nicht fälschen

3. Wie löst HTTPS das oben Gesagte? Probleme von HTTP?

HTTPS ist kein neues Protokoll auf der Anwendungsebene. Es ist lediglich so, dass der Teil der HTTP-Kommunikationsschnittstelle durch SSL- und TLS-Protokolle ersetzt wird.

Normalerweise kommuniziert HTTP direkt mit TCP. Bei der Verwendung von SSL wird zunächst mit SSL und dann mit TCP kommuniziert. Kurz gesagt, das sogenannte HTTPS ist eigentlich HTTP, das in die Hülle des SSL-Protokolls eingebettet ist.

Nach der Einführung von SSL verfügt HTTP über die Verschlüsselungs-, Zertifikats- und Integritätsschutzfunktionen von HTTPS. Das heißt, HTTP plus Verschlüsselungsverarbeitung, Authentifizierung und Integritätsschutz ist HTTPS.

Die Hauptfunktionen des HTTPS-Protokolls basieren im Wesentlichen auf dem TLS/SSL-Protokoll. Die Funktionsimplementierung von TLS/SSL basiert hauptsächlich auf drei Arten grundlegender Algorithmen: Hash-Funktion, symmetrische Verschlüsselung und asymmetrische Verschlüsselung, die asymmetrische Verschlüsselung verwendet Verschlüsselung Realisieren Sie Identitätsauthentifizierung und Schlüsselaushandlung. Der symmetrische Verschlüsselungsalgorithmus verwendet den ausgehandelten Schlüssel zum Verschlüsseln von Daten und überprüft die Integrität der Informationen basierend auf der Hash-Funktion.

1. Lösen Sie das Problem, dass Inhalte abgehört werden können – Verschlüsselung

Methode 1. Symmetrische Verschlüsselung

Diese Methode verwendet denselben Schlüssel für die Verschlüsselung und Entschlüsselung. Zur Ver- und Entschlüsselung werden Schlüssel verwendet. Ohne den Schlüssel kann das Passwort nicht entschlüsselt werden, umgekehrt kann es jeder mit dem Schlüssel entschlüsseln.

Bei der Verschlüsselung mittels symmetrischer Verschlüsselung muss der Schlüssel auch an die Gegenpartei gesendet werden. Doch wie lässt es sich sicher übertragen? Wenn Schlüssel über das Internet weitergeleitet werden und die Kommunikation abgehört wird, können die Schlüssel in die Hände eines Angreifers gelangen und der Zweck der Verschlüsselung geht verloren. Sie müssen auch eine Möglichkeit finden, den erhaltenen Schlüssel sicher aufzubewahren.

Methode 2. Asymmetrische Verschlüsselung

Public-Key-Verschlüsselung verwendet ein Paar asymmetrischer Schlüssel. Einer wird als privater Schlüssel und der andere als öffentlicher Schlüssel bezeichnet. Wie der Name schon sagt, ist der private Schlüssel niemandem bekannt, während der öffentliche Schlüssel frei freigegeben und für jedermann verfügbar sein kann.

Bei der Verschlüsselung mit öffentlichem Schlüssel verwendet die Partei, die den Chiffretext sendet, den öffentlichen Schlüssel der anderen Partei zur Verschlüsselung. Nachdem die andere Partei die verschlüsselten Informationen erhalten hat, verwendet sie ihren eigenen privaten Schlüssel, um sie zu entschlüsseln. Auf diese Weise ist es nicht erforderlich, den zur Entschlüsselung verwendeten privaten Schlüssel zu senden, und es besteht kein Grund zur Sorge, dass der Schlüssel von einem Angreifer belauscht und gestohlen wird.

Das Merkmal der asymmetrischen Verschlüsselung besteht darin, dass Informationen eins zu viele übertragen werden. Der Server muss nur einen privaten Schlüssel verwalten, um eine verschlüsselte Kommunikation mit mehreren Clients durchzuführen.

Diese Methode hat die folgenden Nachteile:

Der öffentliche Schlüssel ist öffentlich, sodass Hacker nach dem Abfangen der mit dem privaten Schlüssel verschlüsselten Informationen den öffentlichen Schlüssel verwenden können, um den Inhalt zu entschlüsseln und abzurufen

Der öffentliche Schlüssel enthält nicht die Informationen des Servers. Die Verwendung asymmetrischer Verschlüsselungsalgorithmen kann die Legitimität der Serveridentität nicht gewährleisten. Es besteht die Gefahr eines Man-in-the-Middle-Angriffs Der Mittelsmann kann während des Übertragungsvorgangs vom Server zum Client abgefangen und manipuliert werden.

Die Verwendung der asymmetrischen Verschlüsselung erfordert eine gewisse Zeit beim Datenverschlüsselungs- und -entschlüsselungsprozess, was die Effizienz der Datenübertragung verringert

Methode 3. Symmetrische Verschlüsselung + asymmetrische Verschlüsselung (HTTPS verwendet diese Methode)

Der Vorteil der Verwendung eines symmetrischen Schlüssels besteht darin, dass die Entschlüsselungseffizienz relativ schnell ist. Der Vorteil der Verwendung eines asymmetrischen Schlüssels besteht darin, dass die Übertragung erfolgt Der Inhalt kann nicht geknackt werden, denn selbst wenn Sie die Daten abfangen, aber nicht über den entsprechenden privaten Schlüssel verfügen, können Sie den Inhalt nicht knacken. Sie schnappen sich zum Beispiel einen Tresor, können ihn aber ohne den Tresorschlüssel nicht öffnen. Anschließend kombinieren wir symmetrische Verschlüsselung und asymmetrische Verschlüsselung, nutzen ihre jeweiligen Vorteile voll aus, verwenden asymmetrische Verschlüsselung in der Schlüsselaustauschphase und symmetrische Verschlüsselung in den nachfolgenden Kommunikations- und Nachrichtenaustauschphasen.

Die spezifische Methode ist: Die Partei, die den Chiffretext sendet, verwendet den öffentlichen Schlüssel der anderen Partei, um den „symmetrischen Schlüssel“ zu verschlüsseln, und dann verwendet die andere Partei ihren eigenen privaten Schlüssel, um den „symmetrischen Schlüssel“ zu entschlüsseln und zu erhalten. Dadurch wird sichergestellt, dass die Kommunikation unter Verwendung einer symmetrischen Verschlüsselung unter der Voraussetzung erfolgt, dass die ausgetauschten Schlüssel sicher sind. Daher verwendet HTTPS einen hybriden Verschlüsselungsmechanismus, der sowohl symmetrische als auch asymmetrische Verschlüsselung verwendet.

Lösen Sie das Problem einer möglichen Manipulation von Nachrichten – digitale Signatur

Während des Netzwerkübertragungsprozesses müssen die Daten viele Zwischenknoten durchlaufen, obwohl dies möglicherweise der Fall ist manipuliert. Wie kann man die Datenintegrität überprüfen? ----Überprüfen Sie die digitale Signatur.

Digitale Signaturen haben zwei Funktionen:

Sie können bestätigen, dass die Nachricht tatsächlich vom Absender signiert und gesendet wurde, da andere die Signatur des Absenders nicht fälschen können.

Digitale Signaturen können die Integrität der Nachricht feststellen und nachweisen, ob die Daten nicht manipuliert wurden.

So generieren Sie eine digitale Signatur:

Warum ist HTTPS sicherer als HTTP?

Verwenden Sie eine Hash-Funktion, um einen Nachrichtenauszug eines Textstücks zu generieren, und verschlüsseln Sie ihn dann mit der privaten Signatur des Absenders Schlüssel zum Generieren einer digitalen Signatur und der Originaltext wird zusammen an den Empfänger gesendet. Im nächsten Schritt überprüft der Empfänger die digitale Signatur.

Prozess der digitalen Signatur zur Überprüfung:

Warum ist HTTPS sicherer als HTTP?

Der Empfänger kann nur den öffentlichen Schlüssel des Absenders verwenden, um die verschlüsselten Digest-Informationen zu entschlüsseln, und dann die HASH-Funktion verwenden, um die Der erhaltene Originaltext generiert zusammenfassende Informationen, die mit den im vorherigen Schritt erhaltenen zusammenfassenden Informationen verglichen werden. Wenn sie identisch sind, bedeutet dies, dass die empfangenen Informationen vollständig sind und während des Übertragungsprozesses nicht geändert wurden. Andernfalls bedeutet dies, dass die Informationen geändert wurden, sodass die digitale Signatur die Integrität der Informationen überprüfen kann.

Gehen Sie davon aus, dass die Nachrichtenübermittlung zwischen Kobe und James stattfindet. James sendet die Nachricht zusammen mit der digitalen Signatur an Kobe. Nachdem Kobe die Nachricht erhalten hat, kann er überprüfen, ob die empfangene Nachricht von James gesendet wurde, indem er die digitale Signatur überprüft. Voraussetzung für diesen Prozess ist natürlich, dass Kobe den öffentlichen Schlüssel von James kennt. Der Schlüssel zum Problem liegt darin, dass der öffentliche Schlüssel ebenso wie die Nachricht selbst nicht direkt über ein ungesichertes Netzwerk an Kobe gesendet werden kann oder wie nachgewiesen werden kann, dass der erhaltene öffentliche Schlüssel James gehört.

Zu diesem Zeitpunkt ist es notwendig, eine Zertifizierungsstelle (CA) einzuführen. Es gibt nicht viele CAs. Der Kobe-Client verfügt über integrierte Zertifikate von allen vertrauenswürdigen CAs. Die Zertifizierungsstelle generiert ein Zertifikat, nachdem sie den öffentlichen Schlüssel von James (und andere Informationen) digital signiert hat.

3. Lösen Sie das Problem, dass die Identität der kommunizierenden Partei verschleiert werden kann – digitales Zertifikat

Die Zertifizierungsstelle für digitale Zertifikate ist in der Position einer Drittorganisation, die für beide Seiten vertrauenswürdig ist der Client und der Server.

Lassen Sie uns den Geschäftsprozess der Zertifizierungsstelle für digitale Zertifikate vorstellen:

Der Serverbetreiber übermittelt den öffentlichen Schlüssel, organisatorische Informationen und persönliche Informationen (Domänenname) an die Drittanbieter-Agentur (CA) und andere Informationen und beantragen Sie die Zertifizierung;

CA überprüft die Authentizität der vom Antragsteller bereitgestellten Informationen auf verschiedene Weise, beispielsweise online und offline, z. B. ob die Organisation existiert, ob das Unternehmen legal ist, ob es den Domainnamen besitzt usw.

Wenn die Informationen genehmigt werden, stellt die Zertifizierungsstelle dem Antragsteller ein Zertifizierungsdokument aus. Das Zertifikat enthält folgende Informationen: den öffentlichen Schlüssel des Antragstellers, die Organisationsdaten und persönlichen Daten des Antragstellers, die Informationen der ausstellenden Behörde CA, die Gültigkeitsdauer, die Seriennummer des Zertifikats und weitere Informationen im Klartext sowie eine Signatur. Der Signaturgenerierungsalgorithmus: Verwenden Sie zunächst eine Hash-Funktion, um den Informationsauszug der öffentlichen Klartextinformationen zu berechnen, und verwenden Sie dann den privaten Schlüssel der Zertifizierungsstelle, um den Informationsauszug zu verschlüsseln.

Der Client sendet die Nachricht an den Server Wenn der Server eine Anfrage stellt, gibt der Server die Zertifikatsdatei zurück;

Der Client liest die relevanten Klartextinformationen im Zertifikat, verwendet dieselbe Hash-Funktion, um den Informationsauszug zu berechnen, und verwendet ihn dann Der öffentliche Schlüssel der entsprechenden Zertifizierungsstelle zum Entschlüsseln der Signatur. Die Daten werden mit dem Informationsauszug des Zertifikats verglichen. Wenn sie konsistent sind, kann die Legitimität des Zertifikats bestätigt werden, d. h. der öffentliche Schlüssel des Servers ist vertrauenswürdig.

Der Client überprüft auch die Domänennameninformationen, die Gültigkeitsdauer und andere Informationen im Zusammenhang mit dem Zertifikat. Der Client verfügt über integrierte vertrauenswürdige CA-Zertifikatinformationen (einschließlich des öffentlichen Schlüssels). Wird das entsprechende CA-Zertifikat nicht gefunden, wird das Zertifikat ebenfalls als illegal beurteilt.

4. HTTPS-Workflow

1. Der Client initiiert eine HTTPS-Anfrage (z. B. https://juejin.im/user). 443-Port (Standard) des Servers, zu dem Sie eine Verbindung herstellen müssen.

2. Der Server gibt das vorkonfigurierte Public-Key-Zertifikat an den Client zurück.

3. Der Kunde überprüft das Public-Key-Zertifikat: zum Beispiel, ob es innerhalb der Gültigkeitsdauer liegt, ob der Zweck des Zertifikats mit der vom Kunden angeforderten Site übereinstimmt, ob es in der CRL-Sperrliste steht, ob Das Zertifikat der oberen Ebene ist gültig. Dies ist ein rekursiver Prozess, bis das Stammzertifikat überprüft wird (das im Betriebssystem integrierte Stammzertifikat oder das im Client integrierte Stammzertifikat). Wenn die Überprüfung erfolgreich ist, fahren Sie fort, andernfalls wird eine Warnmeldung angezeigt.

4. Der Client verwendet einen Pseudozufallszahlengenerator, um einen symmetrischen Schlüssel für die Verschlüsselung zu generieren, verschlüsselt dann den symmetrischen Schlüssel mit dem öffentlichen Schlüssel des Zertifikats und sendet ihn an den Server.

5. Der Server verwendet seinen eigenen privaten Schlüssel, um die Nachricht zu entschlüsseln und den symmetrischen Schlüssel zu erhalten. Zu diesem Zeitpunkt verfügen sowohl Client als auch Server über denselben symmetrischen Schlüssel.

6. Der Server verwendet einen symmetrischen Schlüssel, um „Nur-Text-Inhalt A“ zu verschlüsseln und ihn an den Client zu senden.

7.Der Client verwendet den symmetrischen Schlüssel, um den Chiffretext der Antwort zu entschlüsseln und erhält „Klartextinhalt A“.

8. Der Client initiiert erneut eine HTTPS-Anfrage und verwendet den symmetrischen Schlüssel, um den angeforderten „Klartext-Inhalt B“ zu verschlüsseln. Anschließend verwendet der Server den symmetrischen Schlüssel, um den Chiffretext zu entschlüsseln und „Klartext-Inhalt B“ zu erhalten.

5. Der Unterschied zwischen HTTP und HTTPS

HTTP ist ein Nur-Text-Übertragungsprotokoll, und das HTTPS-Protokoll ist ein Netzwerk, das auf dem SSL+HTTP-Protokoll basiert verschlüsseltes Übertragungs- und Identitätsauthentifizierungsprotokoll, das sicherer ist als das HTTP-Protokoll.

Was die Sicherheit betrifft, ist die einfachste Metapher, um die Beziehung zwischen den beiden zu beschreiben, dass LKWs Güter transportieren. Die LKWs unter HTTP sind offen und die Güter sind offen. Und https ist ein geschlossener Containerwagen, was die Sicherheit natürlich erheblich verbessert.

HTTPS ist sicherer als HTTP und suchmaschinenfreundlicher, was sich positiv auf die Suchmaschinenoptimierung auswirkt. Google und Baidu bevorzugen die Indizierung von HTTPS-Webseiten;

HTTPS erfordert ein SSL-Zertifikat, HTTP jedoch schon nicht;

HTTPS-Standardport 443, HTTP-Standardport 80;

HTTPS basiert auf der Transportschicht, HTTP basiert auf der Anwendungsschicht;

HTTPS wird grün angezeigt Sicherheitssperre im Browser, HTTP nicht;

6. Warum verwenden nicht alle Websites HTTPS?

Da HTTPS so sicher und zuverlässig ist, warum nicht Alle Websites verwenden HTTPS?

Zuallererst denken viele Leute immer noch, dass es einen Schwellenwert für die HTTPS-Implementierung gibt. Dieser Schwellenwert liegt in der Notwendigkeit eines SSL-Zertifikats, das von einer autorisierenden Zertifizierungsstelle ausgestellt wurde. Von der Zertifikatsauswahl über den Kauf bis hin zur Bereitstellung ist das traditionelle Modell zeitaufwändiger und arbeitsintensiver.

Zweitens geht man allgemein davon aus, dass HTTPS einen höheren Leistungsverbrauch aufweist als HTTP, da verschlüsselte Kommunikation mehr CPU- und Speicherressourcen verbraucht als reine Textkommunikation. Wenn jede Kommunikation verschlüsselt ist, verbraucht sie viele Ressourcen, und wenn sie auf einen einzelnen Computer verteilt wird, verringert sich zwangsläufig die Anzahl der Anfragen, die verarbeitet werden können. Dies ist jedoch nicht der Fall. Benutzer können dieses Problem lösen, indem sie die Leistung optimieren und Zertifikate in SLB oder CDN bereitstellen. Um ein praktisches Beispiel zu nennen: Während der „Double Eleven“-Zeit stellten Taobao und Tmall mithilfe von HTTPS für die gesamte Website weiterhin einen reibungslosen Zugriff, Browsing, Transaktionen und andere Vorgänge auf der Website und den mobilen Endgeräten sicher. Durch Tests wurde festgestellt, dass die Leistung vieler optimierter Seiten der von HTTP entspricht oder sogar leicht verbessert ist, sodass HTTPS nach der Optimierung nicht wirklich langsam ist.

Darüber hinaus ist auch der Wunsch, die Kosten für den Kauf von Zertifikaten einzusparen, einer der Gründe. Für die HTTPS-Kommunikation sind Zertifikate unerlässlich. Das verwendete Zertifikat muss von einer Zertifizierungsstelle (CA) erworben werden.

Das Letzte ist Sicherheitsbewusstsein. Im Vergleich zu China sind das Sicherheitsbewusstsein und die Technologieanwendung der ausländischen Internetbranche relativ ausgereift, und der Trend zur HTTPS-Bereitstellung wird von Gesellschaft, Unternehmen und Regierungen gemeinsam gefördert.

Das obige ist der detaillierte Inhalt vonWarum ist HTTPS sicherer als HTTP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen
Vorheriger Artikel:Wie lernt man die C-Sprache?Nächster Artikel:Wie lernt man die C-Sprache?