it-swarm.com.de

Identifiziert ein Client-Zertifikat den Eigentümer für nicht verwandte Websites?

Wenn ich ein Client-Zertifikat in meinem Browser installiere, können auf welchen Websites Informationen zu diesem Client-Zertifikat oder der Zertifizierungsstelle angezeigt werden, die es ausgestellt hat?

Ich habe einmal eine SSL-Diagnoseseite besucht, die sofort Informationen von einem meiner Client-Zertifikate zurückmeldete, einschließlich meines Namens (den ich in die Zertifizierungsstelle eingegeben hatte, die das Client-Zertifikat ausgestellt hatte).

Dies hängt zusammen mit: Schutz von Informationen in TLS-Client-Zertifikaten Auf diese Weise wird das Zertifikat an die Website gesendet, für die das Zertifikat bestimmt ist. Ich frage nach nicht verwandten Websites.

57
user13097

Interessante Frage! Ich habe zufällig einen Browser voller Testzertifikate und eine Reihe von Testseiten, mit denen ich mich verbinden kann! Testen wir das!

(Für eine Zusammenfassung nach unten springen)

Ermittlung

Testen auf Firefox

Firefox mit Zertifikaten geladen, eine Test-Site, für die ein TLS-Client-Zertifikat erforderlich ist, Wireshark.

Ich habe Firefox neu gestartet, um eine saubere Sitzung zu erhalten. Dann gab ich die URL einer Website ein, auf der nach einem TLS-Client-Zertifikat gefragt wird, und stoppte, sobald das Popup "Bitte wählen Sie ein Zertifikat aus" angezeigt wurde. Dies ist die Wireshark-Paketerfassung bis zu diesem Punkt:

(Wireshark packet capture of a mutual-auth TLS handshake from Firefox

Dinge zu beachten:

Der Client sendet ein generisches ClientHello.

Der Server sendet ein ServerHello, das das Serverzertifikat und eine Anforderung für ein Clientzertifikat enthält.

An dieser Stelle zeigt Firefox das Popup an, in dem ich auswählen kann, welches Zertifikat ich senden möchte. Wenn ich auf Abbrechen drücke, gibt es keinen weiteren Netzwerkverkehr, dh es wird nichts an den Server gesendet, außer dem generischen ClientHello, das keine persönlich identifizierbaren Informationen enthält. (abgesehen von der Liste der unterstützten Cipher Suites, anhand derer ermittelt werden kann, welche Version von welchem ​​Browser Sie verwenden)

Hinweis 1: Ich habe denselben Test mit nur einem Client-Zertifikat in meinem Browser versucht und im Popup zur Zertifikatauswahl sogar auf "Diese Entscheidung speichern" geklickt, um das gleiche Ergebnis zu erhalten. Daher kann ich Ihr Ergebnis der Übermittlung privater Daten an den Server nicht reproduzieren, ohne dass ich auf "OK" klicke.

Hinweis 2: Wie von @JohnWu in den Kommentaren hervorgehoben, können Sie das Verhalten von Firefox in den Einstellungen ändern. In diesem Fall verhält es sich genauso unsicher wie Chrome unten. Die Standardeinstellung ist:

(Firefox default setting for whether to Prompt you for a certificate or to select one for you

Testen auf Chrome

Genau das gleiche Testszenario wie oben, jedoch mit Chrome. (Beachten Sie, dass Chrome keinen eigenen Zertifikatspeicher hat, sondern Ihren Windows-Zertifikatspeicher verwendet, dessen Bearbeitung etwas schwieriger ist als bei Firefox. Details dazu finden Sie hier nicht. )

BINGO!! Chrome beginnt sofort damit, Client-Zertifikate ohne Benutzeraufforderung an den Server zu senden. Dieses Zertifikat wurde vom Server abgelehnt, da dieses Zertifikat für eine andere Website bestimmt war. Ja, das ist in Ordnung ein Datenschutzproblem.

(Wireshark packet capture of a mutual-auth TLS handshake from Chrome

Hinweis 1: @JohnWu weist darauf hin, dass es möglich ist, dieses Verhalten zu ändern und Chrome Prompt) zu haben, aber es ist nicht das Standardverhalten, und Sie müssen in Windows Group Policy (GPO) tauchen, um dies zu tun .

Hinweis 2: Die Reproduzierbarkeit hängt möglicherweise davon ab, wie Ihr Windows-Betriebssystem konfiguriert wurde, da Chrome neigt dazu, viele seiner Sicherheitseinstellungen vom IE zu erben.

Zusammenfassung

Bei meinen Tests mit den beiden Browsern in meiner Testumgebung (Firefox und Chrome) zeigte Chrome das von Ihnen beschriebene Verhalten (Spammen von Client-Zertifikaten auf dem Server, unabhängig davon, ob sie von einem anderen stammen) Site), während Firefox mich höflich bat, zu bestätigen, welches Zertifikat gesendet werden soll, auch wenn ich nur ein Zertifikat installiert hatte.

Fazit: Wenn Sie sich für den Datenschutz interessieren, ist Chrome ist nicht Ihr Freund. Verwenden Sie stattdessen Firefox.

68
Mike Ounsworth