Heim  >  Artikel  >  Java  >  Was sind die Gründe und Vorteile der Verwendung von HTTPS in Java?

Was sind die Gründe und Vorteile der Verwendung von HTTPS in Java?

WBOY
WBOYnach vorne
2023-04-17 22:19:011291Durchsuche

    1.HTTP

    Bevor wir über HTTPS sprechen, müssen wir zunächst HTTP verstehen, da HTTP die Grundlage der HTTPS-Kommunikation ist. HTTP (HyperText Transport Protocol) Hypertext Transfer Protocol, das zur Übertragung von clientseitigen und serverseitigen Daten verwendet wird.

    HTTP ist sehr einfach und bequem zu verwenden, weist jedoch die folgenden drei schwerwiegenden Probleme auf:

    • Durch die Klartextkommunikation kann der Inhalt abgehört werden.

    • Wenn Sie die wahre Identität der kommunizierenden Partei nicht überprüfen, kann es sein, dass Sie getarnt sind.

    • Die Integrität der Nachricht kann nicht nachgewiesen werden und sie kann leicht manipuliert werden.

    Angesichts der oben genannten Probleme wird das aktuelle System HTTPS anstelle von HTTP verwenden.

    2.HTTPS

    Zuallererst ist HTTPS kein neues Protokoll, sondern fügt einen Verschlüsselungsmechanismus SSL (Secure Socket Layer) oder TLS (Transport Layer Security) basierend auf dem HTTP-Protokoll hinzu. HTTPS = HTTP + Verschlüsselung + Authentifizierung + Integritätsschutz.

    SSL und TLS:

    SSL (Secure Socket Layer) wurde zuerst vom Browser-Entwickler Netscape entwickelt. Dieses Unternehmen entwickelte SSL 3.0 und Versionen vor 3.0 und übergab SSL dann an die IETF (Internet Engineering Task Force). ) In den Händen der Internet Engineering Task Force entwickelte die IETF TLS 1.0 auf Basis von SSL 3.0, sodass TLS als „neue Version“ von SSL betrachtet werden kann.

    2.1 Lösen Sie das Vertrauensproblem

    Was HTTPS betrifft, ist das erste, was gelöst werden muss, das Vertrauensproblem, das heißt das Problem der Identitätsüberprüfung „Man-in-the-Middle-Angriff“. Der sogenannte Man-in-the-Middle-Angriff bedeutet, dass unter normalen Umständen Client und Server direkt interagieren sollten, hier entsteht jedoch ein „Bösewicht“ (Man-in-the-Middle), der zwischen den Clients geschaltet wird und Server zum Stehlen und Manipulieren des Inhalts der Kommunikation zwischen den beiden Parteien,

    wie in der folgenden Abbildung gezeigt:

    Was sind die Gründe und Vorteile der Verwendung von HTTPS in Java?

    HTTPS verwendet eine Lösung mit digitalen Zertifikaten, um das Vertrauensproblem zu lösen Wenn der Server zuerst erstellt wird, sendet er zunächst eine Nachricht an alle. Eine anerkannte Drittanbieterplattform beantragt ein zuverlässiges digitales Zertifikat. Wenn der Client dann auf den Server zugreift, stellt der Server dem Client zunächst ein digitales Zertifikat zur Verfügung, um dies zu beweisen Es handelt sich um einen zuverlässigen Server und nicht um einen „Mittelsmann“. Zu diesem Zeitpunkt ist der Browser für die Validierung und Überprüfung der Gültigkeit des digitalen Zertifikats verantwortlich. Wenn ein Problem mit dem digitalen Zertifikat auftritt, stoppt der Client die Kommunikation sofort. Wenn kein Problem vorliegt, wird der nachfolgende Vorgang ausgeführt.

    Wie in der Abbildung unten gezeigt:

    Was sind die Gründe und Vorteile der Verwendung von HTTPS in Java?

    Mit dem digitalen Zertifikat können Sie die wahre Identität des Servers überprüfen. Dadurch wird das Problem des „Man-in-the-Middle-Angriffs“ gelöst Verkleidung.

    2.2 Lösen Sie das Problem der Klartextübertragung und -integrität

    Obwohl wir das oben genannte Vertrauensproblem gelöst haben, besteht immer noch die Gefahr, dass der Kommunikationsinhalt während der Kommunikation abgehört wird, da die beiden Parteien im Klartext kommunizieren zu diesem Zeitpunkt tun? Deshalb dachten wir darüber nach, Verschlüsselung einzusetzen, um das Problem der Offenlegung von Informationen zu lösen.

    Klassifizierung der Verschlüsselung

    Verschlüsselung wird hauptsächlich in zwei Kategorien unterteilt: Symmetrische Verschlüsselung und asymmetrische Verschlüsselung.

    • Bei der symmetrischen Verschlüsselung gibt es einen gemeinsamen geheimen Schlüssel, der eine schnelle Verschlüsselung und Entschlüsselung ermöglicht, jedoch aufgrund des Problems des gemeinsamen geheimen Schlüssels Der gemeinsame geheime Schlüssel wird abgefangen, die sogenannte Verschlüsselung und Dekodierung ist leeres Gerede.

    • Bei der asymmetrischen Verschlüsselung gibt es ein Paar geheimer Schlüssel: öffentlicher Schlüssel und privater Schlüssel. Der öffentliche Schlüssel kann zum Verschlüsseln von Informationen verwendet werden, der private Schlüssel kann jedoch nicht zum Entschlüsseln von Informationen verwendet werden. Seine Besonderheit besteht darin, dass der Server den privaten Schlüssel speichert und ihn nicht an die Außenwelt weitergibt. Selbst wenn andere den öffentlichen Schlüssel erhalten, können sie die verschlüsselten Informationen nicht entschlüsseln sicherer, aber asymmetrische Verschlüsselung. Die Ausführungsgeschwindigkeit ist relativ langsam.

    Sollten wir also in HTTPS symmetrische oder asymmetrische Verschlüsselung verwenden? Verwenden Sie eine symmetrische Verschlüsselung, die schnell, aber unsicher ist; verwenden Sie eine asymmetrische Verschlüsselung, die sicher, aber langsam ist. Nur Kinder treffen die Wahl, Erwachsene tun dies, daher verwendet HTTPS sowohl asymmetrische als auch symmetrische Verschlüsselung. Der gesamte Interaktionsprozess ist wie folgt:

    Was sind die Gründe und Vorteile der Verwendung von HTTPS in Java?

    Was sind die Gründe und Vorteile der Verwendung von HTTPS in Java?

    Der HTTPS-Ausführungsprozess ist wie folgt:

    • Der Client verwendet HTTPS, um auf den Server zuzugreifen.

    • Der Server gibt ein digitales Zertifikat zurück und generiert mithilfe asymmetrischer Verschlüsselung einen öffentlichen Schlüssel für den Client (der Server behält den privaten Schlüssel selbst).

    • Der Client überprüft, ob das digitale Zertifikat gültig ist. Wenn es ungültig ist, wird der Zugriff beendet. #? ;

      • Verwenden Sie den öffentlichen Schlüssel der asymmetrischen Verschlüsselung, um den gemeinsamen geheimen Schlüssel zu verschlüsseln (erzeugt durch symmetrische Verschlüsselung).

      • Senden Sie den verschlüsselten geheimen Schlüssel und die Daten an den Server.

      • Der Server verwendet den privaten Schlüssel, um den gemeinsamen geheimen Schlüssel des Clients zu entschlüsseln (erzeugt mit symmetrischer Verschlüsselung) und verwendet dann den gemeinsamen geheimen Schlüssel, um ihn zu entschlüsseln spezifischer Dateninhalt.
      • Der Client und der Server interagieren dann miteinander und nutzen dabei den durch den gemeinsamen geheimen Schlüssel verschlüsselten Inhalt.
    • Auf diese Weise sorgt HTTPS nicht nur für Sicherheit, sondern auch für Effizienz, die das Beste aus beiden Welten vereint.

    • Die Verwendung von Verschlüsselung stellt auch indirekt die Integrität der Daten sicher. Wenn es sich um unvollständige Daten handelt oder redundante Daten vorhanden sind, wird bei der Entschlüsselung ein Fehler gemeldet, sodass indirekt die Die Integrität der Daten ist gewährleistet.

    Das obige ist der detaillierte Inhalt vonWas sind die Gründe und Vorteile der Verwendung von HTTPS in Java?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen