21 Stimmen

Wie funktionieren digitale Zertifikate, wenn sie zur Sicherung von Websites (mit SSL) verwendet werden?

Bitte helfen Sie mir zu verstehen, wie der Prozess abläuft. Ich weiß, dass Webbrowser Root-Zertifikate für Zertifizierungsstellen (CAs) wie Verisign, Entrust, Comodo usw. enthalten, aber was genau passiert, wenn ein Benutzer auf eine sichere Seite zugreift? Sendet der Webbrowser eine Anfrage an den Server der Zertifizierungsstelle, um das Zertifikat zu überprüfen, oder verwendet er nur das Root-Zertifikat der Zertifizierungsstelle (im Browser), um das Zertifikat zu überprüfen?

Ich habe einen HTTP-Sniffer verwendet und mich bei Google Mail angemeldet (die Anmeldeseite ist sicher), aber ich habe keine Anfragen gesehen, die an andere Websites als Google gingen. Bedeutet das, dass nur das Root-Zertifikat der CA verwendet wird?

1 Stimmen

Das von der Zertifizierungsstelle bereitgestellte Zertifikat wird auf dem Webserver (z. B. IIS) installiert und der betreffenden Webanwendung zugeordnet. Ich wüsste nicht, warum der Browser eine Verbindung zur Zertifizierungsstelle herstellen sollte.

23voto

Bill the Lizard Punkte 384619

Eine Zertifizierungsstelle stellt Zertifikate aus, die mit einem privat Taste. Ihr Browser speichert den entsprechenden öffentlich Schlüssel für eine Reihe von vertrauenswürdigen CAs. Wenn Sie eine Anfrage für eine sichere Transaktion erhalten, prüft Ihr Browser die Wurzel des Zertifikats (das von dem Host, mit dem Sie sich verbinden, bereitgestellt wird) mit dem öffentlichen Schlüssel, um sicherzustellen, dass es wirklich mit dem passenden privaten Schlüssel signiert wurde.

Der Host speichert das von einer vertrauenswürdigen dritten Partei (der CA) signierte Zertifikat, und Ihr Browser speichert den öffentlichen Schlüssel dieser dritten Partei. Wenn eine Transaktion beginnt, muss der Host nur dieses Zertifikat vorlegen, damit Ihr Browser es überprüfen kann. Ein Eingreifen der vertrauenswürdigen dritten Partei während der Transaktion ist nicht erforderlich.

Dies ist anders als bei Systemen wie PGP, bei denen Sie sich an den Dritten wenden müssen, um den öffentlichen Schlüssel desjenigen zu erhalten, mit dem Sie kommunizieren. Die Systeme können unterschiedlich funktionieren, denn mit PGP verschlüsseln/entschlüsseln Sie Daten. Bei Zertifikaten geht es nur um die Authentifizierung der Identität.

1 Stimmen

Gute Antwort, ich würde mit CA's folgen sind in der Regel verisign.com, godaddy.com etc ... Allerdings scheinen sie heutzutage überall aufzutauchen. Das Zertifikat der Zertifizierungsstelle muss im Browser vorinstalliert sein, bevor die Browser ihnen "vertrauen", daher können Sie theoretisch nicht einfach Ihre eigene Zertifizierungsstelle einrichten und mit dem Spoofing beginnen. Für die Sicherheit in Unternehmen können Sie Ihre Benutzer jedoch Ihr CA-Zertifikat installieren lassen, um SSL ohne Sicherheitswarnungen des Browsers zu verwenden.

0 Stimmen

Danke - das war die beste Antwort, die ich nach 5-10 Minuten Suche im Internet gefunden habe. Sehr geschätzt.

13voto

Bennett Brown Punkte 4916

Der Webbrowser verfügt über eine Liste von Root-Zertifikaten, denen er vertraut. Dies sind öffentliche Schlüssel von CAs. Der Browser sagt, dass Sie darauf vertrauen können, dass die privaten Schlüssel dieser CAs tatsächlich privat sind und dass alles, was mit einem dieser privaten Schlüssel verschlüsselt wurde - einschließlich des angeblichen Webserver-Zertifikats - wirklich von der CA stammt.

Das Zertifikat enthält den öffentlichen Schlüssel des Webservers und die Adresse des Webservers (und den Firmennamen usw.), verschlüsselt mit dem privaten Schlüssel der CA. Diese Verschlüsselung wird einmalig vorgenommen, wenn der Inhaber der Website das Zertifikat bei der Zertifizierungsstelle erwirbt. Danach hält der Inhaber der Website das Zertifikat bereit, um es Ihnen zu schicken, wenn Sie eine https-Anfrage stellen. Da Ihr Browser in der Lage ist, das vom Webserver gesendete Zertifikat mit dem öffentlichen Schlüssel der Zertifizierungsstelle (der sich bereits auf Ihrem Computer befand) zu entschlüsseln, und im entschlüsselten Zertifikat sieht, dass das Zertifikat eine Host-Adresse enthält, die mit dem https-Host übereinstimmt, schließt der Browser auf die Echtheit des öffentlichen Schlüssels des Hosts (der mit dem öffentlichen Schlüssel der Zertifizierungsstelle entschlüsselt wurde). Das Zertifikat, das der Webhost routinemäßig ausgibt, könnte immer noch von einer beliebigen Person stammen, die den Host fälscht, aber zumindest können Sie sicher sein, dass es den authentischen öffentlichen Schlüssel des https-Hosts enthält, mit dem Sie kommunizieren wollen.

Sie können dann Daten (z. B. Ihre Kreditkartennummer) senden, die mit dem öffentlichen Schlüssel des Hosts verschlüsselt sind, und nur der private Schlüssel des Hosts ist in der Lage, Ihre Daten zu entschlüsseln. Während der Transaktion war keine Kommunikation mit der Zertifizierungsstelle erforderlich.

0 Stimmen

An vielen Stellen ist das, was Sie Ver- und Entschlüsselung nennen, eigentlich Unterzeichnung y die Überprüfung der Unterschrift . In Bezug auf " [...] könnte immer noch von einer beliebigen Person stammen [...] "Deshalb prüft der Browser auch den Hostnamen im Zertifikat.

0 Stimmen

Danke, Bruno, für die Klarstellung. Ist das "Signieren" nicht eigentlich eine Verschlüsselung von etwas? Die Art und Weise, wie ich weiß, dass Verisign ein Zertifikat signiert hat, ist, dass der öffentliche Schlüssel von Verisign in der Lage ist, die Signatur zu entschlüsseln. Diese Signatur enthält die IP-Adresse und den Domänennamen des Webservers, so dass nur die Zertifizierungsstelle - unter Verwendung der Verschlüsselung mit ihrem privaten Schlüssel - in der Lage ist, die IP/DN des Webhosts in das Zertifikat aufzunehmen.

0 Stimmen

So wie ich es verstehe, bezieht sich die Überprüfung auf den Vergleich der Informationen in der Zertifikatsanforderung durch die Zertifizierungsstelle mit dem Absender der Anforderung/dem Empfänger des Zertifikats und auf den Vergleich des Inhalts des Zertifikats (entschlüsselt mit dem öffentlichen Schlüssel der Zertifizierungsstelle) durch den Browser mit der IP-Adresse und dem Domänennamen des Webhosts, der das Zertifikat vorlegt. Ich bin kein Experte und muss es richtig machen, um es zu lehren, also danke für Ihre Hilfe!

6voto

blowdart Punkte 53842

Das hängt von der Konfiguration Ihres Browsers/OS ab. Grundsätzlich verfügt ein Browser oder ein Betriebssystem über eine Liste vertrauenswürdiger Root-Autoritäten (Mozilla hat eine eigene Liste, der IE verwendet die Windows-Liste).

Beim SSL-Handshake wird das Website-Zertifikat daraufhin überprüft, ob es von einer der vertrauenswürdigen Stellen signiert ist und ob der Servername mit dem im Zertifikat übereinstimmt.

Was dann geschieht, hängt von der Konfiguration des Browsers oder des Betriebssystems ab. Zertifizierungsstellen verfügen über eine Sperrlistenfunktion (entweder eine große Liste oder ein separater Dienst (OCSP), über den Sie abfragen können, ob ein Zertifikat noch gültig ist). Wenn Ihr Browser/Betriebssystem so konfiguriert ist, dass er dies überprüft, wird dieser zusätzliche Schritt ausgeführt.

Firefox und Windows prüfen standardmäßig OCSP-Dienste, wenn sie verfügbar sind, und keine der beiden prüfen standardmäßig CRL-Listen.

2voto

mmx Punkte 400975

CA signiert das Webserver-Zertifikat. Da der Browser bereits über den öffentlichen Schlüssel der CA (in Root-Zertifikaten) verfügt, kann er die Authentizität des Zertifikats überprüfen, ohne auf die CA zugreifen zu müssen. Das Einzige, was den Zugriff auf die CA erfordert, ist die Überprüfung, ob das Zertifikat widerrufen wurde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X