Heim  >  Artikel  >  Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt

Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt

Java后端技术全栈
Java后端技术全栈nach vorne
2023-08-28 16:43:231361Durchsuche

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. 面试

Aber Sie können die folgenden drei Fragen zur Seelenfolter möglicherweise nicht beantworten:

Warum ist HTTPS sicher?

Wie implementiert man das Grundprinzip von HTTPS?

Ist die Verwendung von HTTPS unbedingt sicher?
  • In diesem Artikel gehen wir in die Tiefe und erklären die Sicherheit von HTTPS im Prinzip.
  • Das Implementierungsprinzip von HTTPS
  • Sie haben vielleicht gehört, dass das HTTPS-Protokoll sicher ist, weil das HTTPS-Protokoll die übertragenen Daten verschlüsselt und der Verschlüsselungsprozess eine asymmetrische Verschlüsselung verwendet.

    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:

    Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt
    img

    Zertifikatsüberprüfungsphase:

    • Der Browser initiiert eine HTTPS-Anfrage.
    • Der Server gibt das HTTPS-Zertifikat zurück.
    • Der Kunde überprüft, ob das Zertifikat legal ist und löst einen Alarm aus, wenn es nicht legal ist.

    Datenübertragungsstufe:

    • Wenn die Gültigkeit des Zertifikats überprüft wird, wird lokal eine Zufallszahl generiert.
    • Verschlüsseln Sie die Zufallszahl mit dem öffentlichen Schlüssel und übertragen Sie die verschlüsselte Zufallszahl an den Server.
    • Der Server entschlüsselt die Zufallszahl über den privaten Schlüssel.
    • Der Server erstellt einen symmetrischen Verschlüsselungsalgorithmus anhand der vom Client übergebenen Zufallszahlen und verschlüsselt den zurückgegebenen Ergebnisinhalt, bevor er ihn überträgt.

    Warum wird bei der Datenübertragung eine symmetrische Verschlüsselung eingesetzt?

    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.

    Warum braucht man eine CA-Zertifizierungsstelle, um ein Zertifikat auszustellen?

    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:

    Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt

    Das Prozessprinzip ist wie folgt:

    • Lokale Anforderungen werden gekapert (z. B. DNS-Hijacking usw.). ) und alle Anfragen werden an den Server des Mittelsmanns gesendet.
    • Der Zwischenhändler-Server gibt das eigene Zertifikat des Zwischenhändlers zurück.
    • Der Client erstellt eine Zufallszahl, verschlüsselt die Zufallszahl über den öffentlichen Schlüssel des Zwischenhändlerzertifikats und überträgt sie an den Zwischenhändler. Anschließend erstellt er mithilfe der Zufallszahl eine symmetrische Verschlüsselung, um den Übertragungsinhalt zu verschlüsseln.
    • Da der Mittelsmann über die Zufallszahl des Kunden verfügt, kann er den Inhalt durch einen symmetrischen Verschlüsselungsalgorithmus entschlüsseln.
    • Der Mittelsmann verwendet den Anfrageinhalt des Kunden, um eine Anfrage an die reguläre Website zu initiieren.
    • Da der Kommunikationsprozess zwischen dem Mittelsmann und dem Server legal ist, gibt die reguläre Website verschlüsselte Daten über den etablierten sicheren Kanal zurück.
    • Der Mittelsmann entschlüsselt den Inhalt mithilfe eines symmetrischen Verschlüsselungsalgorithmus, der mit der legitimen Website erstellt wurde.
    • Der Mittelsmann verschlüsselt und überträgt die vom regulären Inhalt zurückgegebenen Daten mithilfe des mit dem Client festgelegten symmetrischen Verschlüsselungsalgorithmus.
    • Der Client entschlüsselt die zurückgegebenen Ergebnisdaten mithilfe des mit dem Mittelsmann festgelegten symmetrischen Verschlüsselungsalgorithmus.

    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?

    Welche Informationen enthält das Zertifikat?

    Das Zertifikat enthält folgende Informationen:

    • Behördeninformationen
    • Öffentlicher Schlüssel
    • Firmeninformationen
    • Domainname
    • Gültigkeitszeitraum
    • Fingerabdruck

    Zertifikat Was ist die Basis? für die Legalität?

    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.

    Wie überprüft der Browser die Legitimität des Zertifikats?

    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:

    • Überprüfen Sie, ob der Domänenname, die Gültigkeitsdauer und andere Informationen korrekt sind. Das Zertifikat enthält diese Informationen und erleichtert so den Abschluss der Verifizierung.
    • Bestimmen Sie, ob die Quelle des Zertifikats legal ist. Jedes ausgestellte Zertifikat kann das entsprechende Stammzertifikat gemäß der Verifizierungskette finden. Das Betriebssystem und der Browser speichern das Stammzertifikat der maßgeblichen Organisation lokal. Das lokale Stammzertifikat kann verwendet werden, um die Quellüberprüfung des von der entsprechenden Organisation ausgestellten Zertifikats abzuschließen Organisation.
    Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt
    • ** 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.

    Können nur Zertifizierungsstellen Zertifikate erstellen?

    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.

    Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt

    Was soll ich tun, wenn die lokale Zufallsnummer gestohlen wird?

    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.

    Werden meine Pakete erfasst, wenn ich HTTPS verwende?

    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.

    Zusammenfassung

    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:

    Interview mit einer großen Fabrik: HTTPS wurde dreimal hintereinander gefragt, und die letzte Frage war, ob es viele Leute gibt

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:Java后端技术全栈. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen