Hallo zusammen, ich bin Lao Tian, der sich darauf spezialisiert hat, nützliche Informationen mit Ihnen zu teilen. Freunde, die Interviewmaterialien benötigen, denken außerdem daran, hinter der Bühne zu antworten Zu den Protokollen gehören SSL, nicht-symmetrische Verschlüsselung, CA-Zertifikat usw.面试
Ist die Verwendung von HTTPS unbedingt sicher?
Aber tatsächlich verwendet HTTPS symmetrische Verschlüsselung, um die Inhaltsübertragung zu verschlüsseln, und asymmetrische Verschlüsselung funktioniert nur in der Zertifikatsüberprüfungsphase.
Der Gesamtprozess von HTTPS ist in die Phasen der Zertifikatsüberprüfung und der Datenübertragung unterteilt. Der spezifische Interaktionsprozess ist wie folgt:
Zertifikatsüberprüfungsphase:
Datenübertragungsstufe:
Erstens ist die Verschlüsselungs- und Entschlüsselungseffizienz der asymmetrischen Verschlüsselung sehr gering, und in HTTP-Anwendungsszenarien gibt es normalerweise viele End-to-End-Interaktionen, sodass die Effizienz der asymmetrischen Verschlüsselung nicht akzeptabel ist.
Darüber hinaus speichert im HTTPS-Szenario nur der Server den privaten Schlüssel, und ein Paar aus öffentlichen und privaten Schlüsseln kann nur eine Einwegverschlüsselung und -entschlüsselung erreichen. Daher verwendet die Inhaltsübertragungsverschlüsselung in HTTPS eine symmetrische Verschlüsselung statt einer asymmetrischen Verschlüsselung.
Das HTTP-Protokoll gilt als unsicher, da der Übertragungsprozess leicht von Zuhörern zur Überwachung und Fälschung von Servern genutzt werden kann, während das HTTPS-Protokoll hauptsächlich das Sicherheitsproblem der Netzwerkübertragung löst.
Zunächst gehen wir davon aus, dass es keine Zertifizierungsstelle gibt und jeder ein Zertifikat erstellen kann. Das damit verbundene Sicherheitsrisiko ist das klassische „Man-in-the-Middle-Angriff“.
Der spezifische Prozess des „Man-in-the-Middle-Angriffs“ ist wie folgt:
Das Prozessprinzip ist wie folgt:
Obwohl der Client eine HTTPS-Anfrage initiiert, hat der Client aufgrund der fehlenden Zertifikatsüberprüfung keine Ahnung, dass sein Netzwerk abgefangen wurde und der gesamte Übertragungsinhalt vom Mittelsmann gestohlen wurde.
Wie stellt der Browser die Legitimität des CA-Zertifikats sicher?
Das Zertifikat enthält folgende Informationen:
Zuallererst muss eine maßgebende Organisation zertifiziert sein. Nicht jede Organisation ist für die Ausstellung eines Zertifikats qualifiziert, sonst würde sie nicht als maßgebende Organisation bezeichnet werden.
Darüber hinaus basiert die Glaubwürdigkeit des Zertifikats auf dem Vertrauenssystem. Die maßgebliche Organisation muss das von ihr ausgestellte Zertifikat bestätigen. Solange es sich um ein von einer maßgeblichen Organisation erstelltes Zertifikat handelt, betrachten wir es als legitim.
Autorisierte Organisationen überprüfen die Informationen des Antragstellers auf verschiedenen Ebenen und haben unterschiedliche Überprüfungsanforderungen. Daher werden Zertifikate auch in kostenlose, günstige und teure Zertifikate unterteilt.
Wenn der Browser eine HTTPS-Anfrage initiiert, gibt der Server das SSL-Zertifikat der Website zurück.
Der Browser muss die folgende Überprüfung des Zertifikats durchführen:
** Stellen Sie fest, ob das Zertifikat manipuliert wurde. **Erfordert eine Verifizierung mit einem CA-Server.
** Stellen Sie fest, ob das Zertifikat widerrufen wurde. **Erreicht durch CRL (Certificate Revocation List) und OCSP (Online Certificate Status Protocol).
OCSP kann in Schritt 3 verwendet werden, um die Interaktion mit dem CA-Server zu reduzieren und die Überprüfungseffizienz zu verbessern.
Nur wenn einer der oben genannten Schritte erfüllt ist, betrachtet der Browser das Zertifikat als legitim.
**Hier ist eine Frage, über die ich schon lange nachgedacht habe, aber die Antwort ist eigentlich ganz einfach: **Da das Zertifikat öffentlich ist, lade ich es herunter, wenn ich einen Man-in-the-Middle-Angriff starten möchte Ein Zertifikat von der offiziellen Website als mein Serverzertifikat, dann wird der Client definitiv zustimmen, dass dieses Zertifikat legitim ist. Wie kann eine solche betrügerische Verwendung des Zertifikats vermieden werden?
Tatsächlich handelt es sich dabei um die Verwendung unverschlüsselter symmetrischer öffentlicher und privater Schlüssel. Der Mittelsmann kann zwar das Zertifikat erhalten, der private Schlüssel kann jedoch nicht abgerufen werden.
Es ist unmöglich, den entsprechenden privaten Schlüssel aus einem öffentlichen Schlüssel abzuleiten. Selbst wenn der Mittelsmann das Zertifikat erhält, kann er sich nicht als legitimer Server ausgeben, da er die vom Client übermittelten verschlüsselten Daten nicht entschlüsseln kann.
Wenn Sie möchten, dass der Browser nicht auf Sicherheitsrisiken hinweist, können Sie nur von Zertifizierungsstellen ausgestellte Zertifikate verwenden.
Aber Browser fragen in der Regel nur nach Sicherheitsrisiken und schränken den Zugriff auf die Website nicht ein, sodass technisch gesehen jeder ein Zertifikat generieren kann, und solange ein Zertifikat vorhanden ist, kann die HTTPS-Übertragung der Website abgeschlossen werden.
Zum Beispiel nutzte die frühe 12306 die manuelle Installation privater Zertifikate, um HTTPS-Zugriff zu erreichen.
Die Zertifikatsüberprüfung wird mithilfe einer asymmetrischen Verschlüsselung implementiert, der Übertragungsprozess verwendet jedoch eine symmetrische Verschlüsselung, und die wichtigen Zufallszahlen im symmetrischen Verschlüsselungsalgorithmus werden lokal generiert und gespeichert. Wie stellt HTTPS sicher, dass die Zufallszahlen nicht gestohlen werden?
Tatsächlich beinhaltet HTTPS keine Sicherheitsgarantien für Zufallszahlen. HTTPS garantiert nur die Sicherheit des Übertragungsprozesses, und die lokale Sicherheit gehört zu einer anderen Sicherheitskategorie. Anti-Trojaner-Pferde und Durchsuchen von Servern zur Behebung von Fehlern usw.
HTTPS-Daten werden verschlüsselt. Unter normalen Umständen ist der vom Paketerfassungstool nach der Proxy-Anfrage erfasste Paketinhalt verschlüsselt und kann nicht direkt angezeigt werden.
Wie oben erwähnt, weist der Browser jedoch nur dann auf das Sicherheitsrisiko hin, wenn der Benutzer dies autorisiert, kann er weiterhin auf die Website zugreifen und die Anfrage abschließen.
Solange der Client unser eigenes Terminal ist und wir ihn autorisieren, können wir daher ein Zwischenhändlernetzwerk einrichten und das Paketerfassungstool fungiert als Agent des Zwischenhändlers.
Normalerweise wird das HTTPS-Paketerfassungstool zum Generieren eines Zertifikats verwendet. Der Benutzer muss das Zertifikat manuell im Client installieren, und dann schließen alle vom Terminal initiierten Anforderungen die Interaktion mit dem Paketerfassungstool über dieses Zertifikat ab.
Dann leitet das Paketerfassungstool die Anfrage an den Server weiter und gibt schließlich das vom Server zurückgegebene Ergebnis an die Konsole aus und gibt es dann an das Terminal zurück, wodurch die gesamte geschlossene Schleife der Anfrage abgeschlossen wird.
Welchen Sinn hat HTTPS, da HTTPS die Paketerfassung nicht verhindern kann? HTTPS kann verhindern, dass Benutzer auf Kommunikationsverbindungen ohne ihr Wissen überwacht werden. Es bietet keinen Schutz für aktive Paketerfassungsvorgänge zur Kreditgewährung, da sich Benutzer in diesem Szenario bereits der Risiken bewusst sind.
Um die Erfassung von Paketen zu verhindern, muss ein Sicherheitsschutz auf Anwendungsebene eingeführt werden, z. B. eine private symmetrische Verschlüsselung und eine Anti-Dekompilierungs-Verstärkung auf dem mobilen Endgerät, um zu verhindern, dass lokale Algorithmen geknackt werden.
Das Folgende ist eine kurze Frage-und-Antwort-Zusammenfassung des vollständigen Textes:
F: Warum ist HTTPS sicher?
A: Weil HTTPS die Übertragungssicherheit gewährleistet, die Überwachung des Übertragungsprozesses verhindert, den Diebstahl von Daten verhindert und die Authentizität der Website bestätigen kann.
F: Wie ist der Übertragungsprozess von HTTPS?
A: Der Client initiiert eine HTTPS-Anfrage, der Server gibt ein Zertifikat zurück, der Client überprüft das Zertifikat und generiert nach bestandener Überprüfung lokal eine Zufallszahl, die zur Transformation des symmetrischen Verschlüsselungsalgorithmus verwendet wird.
Die Zufallszahl wird verschlüsselt und über den öffentlichen Schlüssel im Zertifikat an den Server übertragen. Nach dem Empfang entschlüsselt der Server die Zufallszahl über den privaten Schlüssel und nachfolgende Dateninteraktionen werden über den symmetrischen Verschlüsselungsalgorithmus verschlüsselt und entschlüsselt.
F: Warum braucht man ein Zertifikat?
A: Verhindern Sie „Man-in-the-Middle“-Angriffe und stellen Sie einen Identitätsnachweis für die Website bereit.
F: Werden Pakete erfasst, wenn HTTPS verwendet wird?
A: HTTPS verhindert lediglich, dass Benutzer ohne deren Wissen überwacht werden. Wenn der Benutzer aktiv Guthaben gewährt, kann ein „Zwischenhändler“-Netzwerk aufgebaut werden, und die Proxy-Software kann den Übertragungsinhalt entschlüsseln.
Teilen Sie ein Prozessdiagramm zum Erlernen von HTTPS:
Das obige ist der detaillierte Inhalt vonInterview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!