it-swarm.com.de

Verwendet jemand Client-Browser-Zertifikate?

Client-Browser-Zertifikate scheinen eine gute Möglichkeit zu sein, Websites vor Eindringlingen zu schützen - es ist unmöglich zu erraten und sollte schwieriger zu stehlen sein. Natürlich lösen sie nicht alle Probleme, aber sie erhöhen die Sicherheit.

Ich habe jedoch keine öffentlichen Websites gefunden, die sie verwendet haben. Gibt es Websites, die sie verwenden? Gibt es einen Fehler in ihnen, der die Verwendung ausschließt, selbst wenn Sicherheit wichtig ist, oder einen anderen Grund, warum sie so wenig verwendet werden?

43
StasM

Client-zertifizierte Unternehmen hatten einfach keinen ausreichend guten Kosten-Nutzen-Kompromiss. Sie sind für Benutzer sehr verwirrend, sodass die Supportkosten steigen. Und sie sind immer noch nur Kleinigkeiten und somit "etwas, das Sie wissen" und sind anfällig für eine Reihe von Software-Angriffen auf den Browser, das Verteilungsschema, Phishing usw.

Hardware-Token-Schemata (Zwei-Faktor-Authn) sind besser für ein gutes Authn. Single-Sign-On-Schemata (SSO), die möglicherweise zusammengeschlossen sind und möglicherweise durch Hardware-Token unterstützt werden, lösen mehr Probleme und sind einfacher bereitzustellen.

Das Verwalten vieler Zertifikate wäre für einen Benutzer weitaus komplizierter als das derzeitige heikle Problem mit mehreren Kennwörtern, und Browser bieten keine gute Unterstützung für die Auswahl des richtigen Zertifikats. Wenn ein Benutzer ein einzelnes Zertifikat für viele Websites verwendet, treten Datenschutzprobleme auf, da die Verwendung des Zertifikats den Benutzer identifiziert.

Im Laufe der Jahrzehnte haben viele von uns gedacht, dass das Zeitalter der Endbenutzer-PK-Krypto vor der Tür steht, besonders diejenigen wie ich, die von der Schönheit von RSA begeistert sind. Es stellt sich nur heraus, dass die Art und Weise, wie es sich entwickelt hat, die Helpdesk- und Entwicklungskosten sowie Feinheiten und Komplexitäten und rechtlichen Verstrickungen der realen PKI die Vorteile immer weiter verschlingen.

Geräte scheinen teurer als Bits zu sein, aber nicht, wenn die Bits nicht funktionieren oder eine effektive Nutzung die Produktivität beeinträchtigt.

20
nealmcb

Ich verwende Browser-Zertifikate für eine Handvoll Websites, aber wie Sie sagten, meistens nicht öffentliche Websites.

Die Hauptschwierigkeit bei clientseitigen Zertifikaten besteht darin, sie zu verteilen . Das heißt, wie kann ich Ihnen sicher das "allmächtige" Zertifikat geben, das Ihnen Zugriff auf mein System gewährt, wenn ich Sie nicht kenne?
Unternehmenssysteme sind natürlich einfacher, ebenso wie Systeme, die einem kleinen Kreis von Partnern offen stehen. Die Schlüsselverteilung ist jedoch immer ein schwer zu lösendes Rätsel. Es ist viel schwieriger als nur ein Passwort zwischen zwei Parteien zu teilen, wenn man die Aspekte des privaten Schlüssels und den Zertifizierungsschutz berücksichtigt.

Es gibt tatsächlich Lösungen dafür, und ich verwende sogar eine für eine "öffentliche" Website. (Es ist zufällig im Identitätsgeschäft, also ist es den Aufwand für sie wert ...). Diese Lösung basiert auf der primären Authentifizierung über ein Kennwort. Nach der vollständigen Authentifizierung habe ich die Möglichkeit, mein Zertifikat herunterzuladen - vorausgesetzt, ich weiß, was ich damit tun soll.
Nicht viel besser, da der Passwortkanal noch offen ist ... aber das gibt mir zumindest die Möglichkeit, das Passwort in zu ändern etwas unmögliches und unbrauchbares, und haben nur das CSC ....

Dies ist jedoch nicht trivial und in der korrekten Implementierung etwas komplex. Die Verteilung würde die meisten Benutzer immer noch nerven.

18
AviD

Soweit ich weiß, gibt es in der Praxis zahlreiche Probleme bei der Verwendung von Client-Zertifikaten. Hier sind einige der Probleme, die ich gehört habe:

  1. Client-Zertifikate erhalten. Es ist für Benutzer ein Problem, zunächst ein Client-Zertifikat zu erhalten. Offensichtlich möchten Websites keine unnötigen Hürden schaffen, durch die Benutzer springen müssen, bevor sie überhaupt mit der Nutzung ihrer Website beginnen können. (Selbst wenn die Site das Client-Zertifikat generiert und dem Client zur Verfügung stellt, ist dies für einen Benutzer kein vertrauter Vorgang. Ganz zu schweigen von Sicherheitsproblemen, da im Idealfall nur der Client den privaten Schlüssel des Clients kennen sollte.) Moderne Browser bieten Möglichkeiten zum Erstellen oder Importieren von privaten Schlüsseln und Client-Zertifikaten, aber die Benutzererfahrung ist schrecklich.

  2. Ich habe gehört, dass einige Server anscheinend Client-Zertifikate nicht gut unterstützen (z. B. http://osdir.com/ml/encryption.cryptlib/2005-09/msg00000.html).

  3. Mobilität ist ein Problem. Trotz aller Probleme sind Passwörter sehr portabel. Client-Zertifikate sind nicht. Selbst wenn es dem Client gelingt, einen privaten Schlüssel zu generieren und ein Client-Zertifikat dafür zu erhalten, muss er, wenn er einen zweiten Computer verwenden möchte, einen komplizierten und verwirrenden Tanz ausführen, um den privaten Schlüssel und das Zertifikat auf den zweiten zu übertragen Computer. Wenn der erste Computer ausfällt (oder ein Festplattenfehler auftritt) und das Betriebssystem neu installiert oder ein neuer Computer gekauft werden muss und der Client seinen privaten Schlüssel nicht gesichert hat, kann er seinen privaten Schlüssel nicht speichern Schlüssel und Zertifikat auf ihren neuen Computer; Sie sind ziemlich beschissen. Eine Site kann eine Sicherungsmethode für die Authentifizierung erstellen, sodass Benutzer, die ihren privaten Schlüssel verloren haben, einen neuen privaten Schlüssel generieren und senden können. Diese Sicherungsmethode für die Authentifizierung kann jedoch leicht zum schwächsten Glied in der Kette werden. Es spielt keine Rolle, wie stark Ihre primäre Authentifizierungsmethode ist, wenn Ihre Sicherungsmethode leicht besiegt werden kann.

  4. Es ist nicht klar, ob Browser-Zertifikate von Browsern ausreichend unterstützt werden. Ich weiß nicht, ob all die verschiedenen Browser (einschließlich mobiler Browser) Client-Zertifikate angemessen unterstützen.

  5. Das PKI-Modell ist sowieso ziemlich kaputt. Die Annahme war, dass die Zertifizierungsstelle die Identität des Benutzers (z. B. seinen tatsächlichen Namen) überprüfen würde, bevor er ihnen ein Client-Zertifikat gibt, und das Protokoll wurde um diese Annahme herum entworfen. Die heutigen Zertifizierungsstellen überprüfen die Identität jedoch nicht wirklich. Dies führt zu einer Nichtübereinstimmung zwischen den Entwurfsannahmen und der Realität.

  6. Client-Zertifikate erstellen Datenschutzrisiken für Benutzer. In einigen Browsern ermöglichen sie die Verfolgung von Benutzern über Domänen hinweg. (Alle Browser stellen sicher, dass Cookies diese Bedrohung sorgfältig abwehren: Nur die Domain, die das Cookie gesetzt hat, kann es lesen. Browser bieten jedoch keinen ähnlichen Schutz für SSL-Client-Zertifikate.) Ich weiß nicht, ob moderne Browser dies effektiv angegangen sind Problem, aber es ist ein Bereich, in dem Kundenzertifikate, soweit ich weiß, relativ unausgereift sind.

  7. Es gibt lästige technische Probleme, wenn der Client sein eigenes Client-Zertifikat generiert und signiert. Gemäß dem TLS-Protokoll soll der Server zuerst nach einer Liste von Zertifizierungsstellen fragen, die er akzeptieren möchte. Der Client antwortet anschließend mit einem von dieser Zertifizierungsstelle ausgestellten Client-Zertifikat, falls vorhanden. (Beachten Sie, dass dies geschieht, bevor der Client eine HTTP-Anfrage, HTTP-Cookies, einen Benutzernamen oder andere identifizierende Informationen gesendet hat.) Dies bedeutet, dass, wenn Sie vom Client ausgestellte (selbstsignierte) Client-Zertifikate verwenden möchten, die Der Server muss den Namen der Zertifizierungsstelle kennen, die der Client verwendet, bevor sich der Client überhaupt authentifiziert oder identifiziert. Das ist schwierig.

  8. Schließlich die Kirsche auf dem Kuchen: Client-Zertifikate lösen das Phishing-Problem nicht. Sie verhindern den Diebstahl des privaten Schlüssels des Kunden, jedoch nicht anderer persönlicher Informationen. Böse Jungs können immer noch eine gefälschte Bank-Site einrichten (die alle an sie gesendeten Kundenzertifikate verwirft). Die Phishing-Site lernt den privaten Schlüssel des Benutzers nicht, aber wenn der Benutzer glaubt, mit der realen Bank-Site verbunden zu sein, kann er seine Bankkontonummer, SSN, PIN usw. eingeben und diese Informationen dem Angreifer mitteilen.

All dies führt zu einer schlechten Benutzerfreundlichkeit und erhöhten Supportkosten (z. B. Helpdesk-Anrufe). Kurz gesagt, Sie können verwenden zumindest im Prinzip Client-Zertifikate; Es ist nur so, dass dies in der Praxis für alle unpraktisch ist und die Benutzerfreundlichkeit schlecht ist.

Grundsätzlich gibt es ein Henne-Ei-Problem: Bis auf vielen Websites Client-Zertifikate verwendet werden, werden Browser-Hersteller der Verwendung von Client-Zertifikaten keine hohe Priorität einräumen. und bis Browser Client-Zertifikate nutzbar machen, werden sie von Websites nicht übernommen. Anders ausgedrückt, wenn wir Client-Zertifikate verwenden möchten, um das allgemeine Authentifizierungsproblem zu lösen, müssen wir beide alle Browserhersteller davon überzeugen, größere Änderungen an den Browsern vorzunehmen, und Websites davon überzeugen, neue Technologien einzuführen. Es entstehen niemandem Vorteile, bis alle diese Parteien koordinierte Änderungen vorgenommen haben. Das ist eine große Hürde für die Adoption.

Es gibt bessere Lösungen für die sichere Authentifizierung im Web, einschließlich HTTPS, sicherer dauerhafter Cookies und E-Mail-basierter Wiederherstellung. Dies geht jedoch über den Rahmen Ihrer Frage hinaus.

Letzter Kommentar: Die grundlegende Herausforderung bei der sicheren Webauthentifizierung ist Benutzerfreundlichkeit, Benutzerfreundlichkeit und Benutzerfreundlichkeit. Es ist sehr herausfordernd und alles, was zählt, Systeme zu entwickeln, die für Benutzer gut funktionieren - und sicher sind, wenn sie als normale Benutzer verwendet werden. Krypto ist nur ein winziger Teil dieses Problems.

15
D.W.

Ich denke, dass sie hauptsächlich nicht verwendet werden, weil die durchschnittliche Person (d. H. Nicht Sie, seit Sie diese Frage stellen) ihre Verwendung nicht ergründen kann. Es gibt einige kommerzielle Websites, die sie verwenden, aber sie sind normalerweise sehr spezielle Zwecke oder zur Automatisierung. Beispielsweise verwendet Oracle Clientzertifikate, um Endbenutzer mit gültigen Supportverträgen für Paketaktualisierungen zu validieren. Aber selbst bei hochtechnischen Benutzern kann es schwierig sein, den richtigen Schlüsselaustausch zu finden.

Abgesehen davon verwende ich Kundenzertifikate, um Teile meiner Websites zu schützen, die ich der Öffentlichkeit zugänglich mache, und ich finde sie fantastisch.

7
bahamat

Der Estnischer Personalausweis ist eine Smartcard, in die ein Client-Zertifikat eingebettet ist. Sie können Smartcard-Lesegeräte dafür erwerben und diese zu Hause verwenden, um staatliche Dienstleistungen zu beantragen oder sich bei den wichtigsten estnischen Banken zu authentifizieren. Der Benutzer sieht lediglich eine Karten-/PIN-Eingabeaufforderung und als nächstes weiß er, dass er authentifiziert ist.

6
blowdart

Einer unserer Kunden verwendet Kundenzertifikate zur Authentifizierung von Touchscreen-Kiosksystemen. Die Systeme werden an Händler verteilt, und auf jedem wird das CA-Stammzertifikat sowie ein eindeutiges Client-Zertifikat installiert.

Das Client-Zertifikat wird verwendet, um das Kiosk-System beim Webserver zu authentifizieren, ohne dass der Händler beim Start des Geräts eine manuelle Authentifizierung durchführen muss. Wenn ein einzelnes System ausgeschaltet werden muss, kann unser Kunde das Zertifikat leicht widerrufen.

5
Martijn Heemels

Der französische Wirtschaftsminister veröffentlichte eine öffentliche Website für das Steuermanagement (Online-Steuerzahlung, Informationen zu Fristen, Herunterladen von Formularen ...), auf der das SSL-Zertifikat zur Benutzerauthentifizierung verwendet wird. Die Benutzerregistrierung (diese Rolle wird einer Registrierungsstelle in PKI zugeordnet), die von AviD ♦ als Hauptschwierigkeit in einem solchen Projekt bezeichnet wurde, wurde gelöst, da diese Verwaltung bereits über genügend Informationen verfügt Identifizieren Sie die Steuerzahler.

4
Jcs

Im HTTP/S-basierten ActiveSync-Protokoll wird eine Variation von Browserzertifikaten verwendet.

Mehrere E-Mail-Administratoren verwenden Zertifikate, um mobile Geräte zu authentifizieren, damit mobile E-Mails nicht plötzlich nicht mehr funktionieren, wenn der Benutzer sein Kennwort ändert.

1

Client-Zertifikate haben die beste Qualität für die Authentifizierung. Aufgrund eines Henne-Ei-Problems haben Benutzer jedoch keinen Grund, ein ernsthaftes Zertifikat zu erwerben (kostet Geld und Zeit, da die Lieferung von Angesicht zu Angesicht erfolgen sollte), da nur wenige Websites sie verwenden und die Site-Administratoren seitdem keinen Grund haben, sie aktiv zu unterstützen Ihre Benutzer haben im Allgemeinen kein Zertifikat.

Unternehmenssysteme sind unterschiedlich, denn wenn die Sicherheitsanforderungen hoch genug sind, sind die globalen Kosten einer PKI-Infrastruktur durchaus akzeptabel.

Wenn Sie sich jedoch daran erinnern, wie hoch die tatsächlichen Gesamtkosten und -verfahren für einen nationalen Personalausweis sind (ohne von einem Reisepass zu sprechen), würde das Hinzufügen eines von einer nationalen Verwaltung erstellten Zertifikats nicht viel hinzufügen und alle Authentifizierungsfragen mit institutionellen Websites wie Verwaltungen gut lösen. Banken, ... Natürlich würde ich das nicht für Händlerseiten oder wenig kontrollierte Foren verwenden

1
Serge Ballesta

Ich arbeite an der Entwicklung einer Website, die eine Smartcard-Authentifizierung bietet. Der Benutzer schließt einen USB-Kartenleser an, besucht die Site und legt die Karte ein, wenn er sich anmelden möchte, und gibt eine PIN ein. Das Problem ist, dass das System ein Java Applet) verwendet und diese Applets nicht mehr von Chrome oder von MS Edge) unterstützt werden. Es wird eine neue Middleware entwickelt, die dies tut Verwenden Sie nicht Java Applets, und es ist ein Wettlauf gegen die Zeit, da wir sehen können, dass alle gängigen Browser anhalten Java Applets können in Zukunft nicht mehr mit Hardware auf Ihrem PC interagieren.

0
Totoro53

Wenn wir den OP-Bereich erweitern, um über den Browser hinauszugehen. Client-Zertifikate können auch im Nicht-Browser-Kontext verwendet werden. Beispielsweise verwendet Docker TLS- und Client-Zertifikate, um die Verbindungen zwischen einem Remote-Docker-Client und den Daemons zu sichern.

Dies müsste zwar noch verwaltet werden, muss jedoch keine vollwertige Zertifizierungsstelle durchlaufen. Es kann sich um eine interne Unternehmenszertifizierungsstelle handeln, die alle von den Computern verwendeten Zertifikate verwaltet.

0