it-swarm.com.de

Wie kann die Online-Identifizierung "USB-Stick" möglicherweise funktionieren?

Meine Bank hat kürzlich ihre Website überarbeitet und sie hat sich für mich zum Besseren gewendet. Insbesondere die Sicherheit scheint dramatisch verbessert worden zu sein.

Vor allem haben sie eine eher ungewöhnliche (ich habe das noch nie gesehen) Identifikationsmethode eingeführt, die sie als "elektronisches Zertifikat" bezeichnen. Grundsätzlich muss man persönlich zur Bank gehen und der Typ gibt Ihnen einen winzigen, billigen USB-Stick mit einer sehr geringen Kapazität. Ab diesem Zeitpunkt müssen Sie den Stick jedes Mal an Ihren Computer anschließen, wenn Sie sich anmelden möchten. Der Stick allein reicht nicht aus, Sie müssen auch Ihr Passwort eingeben - im Grunde genommen eine 2-Faktor-Authentifizierung mit einem USB-Gerät der zweite Faktor sein.

Wie kann das möglicherweise funktionieren? Natürlich glaube ich, dass der USB-Stick Zertifikate/Verschlüsselungsschlüssel enthält, die beim Anmeldevorgang verwendet werden, aber der Benutzer muss keine installieren Software auf der Maschine. Ich finde es ziemlich gruselig, dass eine Website, auf die über einen Sandbox-Webbrowser zugegriffen wird, ohne dass ein Plug-In/Modul/App/Symbolleiste installiert ist, den USB-Stick sehen kann, den Sie gerade angeschlossen haben. Und nicht nur Sehen Sie diesen Stick, aber lesen Sie ihn und verwenden Sie seinen Inhalt gründlich genug, um Sie auf der sensibelsten Ebene Ihrer Online-Banking-App zu protokollieren.

Ich bin kein großer Fan davon, unbekannte Geräte an meinen Computer anzuschließen, und meine Warnleuchte blinkte, als mir dies erklärt wurde. Deshalb habe ich mich für eine andere Identifikationsmethode entschieden (Sie können wählen). Ich bin nur Neugierig.

PS: Die Maßnahme gilt offensichtlich nicht für ihre mobilen Apps, da Smartphones keine USB-Anschlüsse haben, aber das ist keine große Sache, da Sie mit ihrer Telefon-App nicht viel anfangen können (es handelt sich hauptsächlich um eine Beratungs-App, die Sie eigentlich nicht herstellen können große Zahlungen/Überweisungen mit).

Bearbeiten: Es wird kein Dialogfeld zum Öffnen von Dateien verwendet, was die Erklärung ziemlich klar machen würde.

70
user135452

Was Ihre Bank Ihnen gegeben hat, ist ein SB-Sicherheitstoken mit einem digitalen Zertifikat ( wie diese ). Dies sind standardisierte Hardwaregeräte, die von fast jedem Betriebssystem sofort unterstützt werden. Sie sind sehr verbreitet bei der Implementierung der Multi-Faktor-Authentifizierung für Hochsicherheitssysteme in der Unternehmens-IT.

Ihr Webbrowser verwendet HTTPS mit clientbasierten Zertifikaten, um auf die Website Ihrer Bank zuzugreifen. Es verwendet den Zertifikatspeicher Ihres Betriebssystems, um ein installiertes Zertifikat zu finden, das der Identität entspricht, die der Webserver anfordert. Wenn Sie ein Standard-USB-Sicherheitstoken installiert haben, sucht das Betriebssystem auch nach Zertifikaten auf dem Token.

Das Betriebssystem kann den Überprüfungsprozess nicht selbst mit dem Webserver durchführen, da das Token das direkte Lesen des privaten Schlüssels der darauf gespeicherten Zertifikate nicht zulässt. Das Token enthält die Hardware für die Überprüfung. Der private Schlüssel verlässt also niemals den USB-Stick. Dies bedeutet, dass der private Schlüssel des Zertifikats auch dann nicht gestohlen werden kann, wenn Ihr PC durch Malware kompromittiert wird. Beachten Sie jedoch, dass diese Methode nach erfolgreicher Authentifizierung keinen Schutz bietet. Malware kann immer noch Probleme verursachen Ihr Webbrowser).

Übrigens: Welche Bank ist das? Wenn meine Bank diese Authentifizierungsmethode auch unterstützen würde, könnte ich sogar mit dem Online-Banking beginnen.

64
Philipp

Eine Möglichkeit könnte sein, dass Chrome unterstützt FIDO U2F ohne Plugin. Angesichts dessen, dass jetzt Chrome ist jetzt der beliebteste Browser und das Chrome läuft unter Windows, Mac und Linux. Es ist nicht völlig falsch zu behaupten, dass "es auf jedem Gerät mit USB-Anschluss, Windows, Mac, Linux und mehr funktioniert und sofort funktioniert".

Haben sie behauptet, dass es in jedem Browser oder nur in jedem Betriebssystem funktioniert?

29
Lie Ryan

.... der Benutzer muss keine Software auf dem Computer installieren .... Ich dachte, dass die Möglichkeit einer Webseite, das Dateisystem ohne Benutzeraktion frei zu durchsuchen, standardmäßig zu häufig eingeschränkt ist

Ja, das sollte ohne Smartcard-Treiber definitiv nicht möglich sein. Dies ist ein grundlegender Sicherheitsmechanismus jedes Browsers. Was gibt dem Clou die Möglichkeit, dass das Zertifikat gelesen wird, ohne auf ein Dialogfeld "Datei öffnen", ein Dialogfeld Java oder Treiber vor der Installation) zu klicken? Sie sagten, Sie hätten eine andere Überprüfungsoption ausgewählt.

Dies klingt wie der USB-Stick, der beispielsweise von der Bank of China verwendet wird. Diese Technologie wird hier beschrieben.

soll mit "jedem Gerät mit USB-Anschluss" kompatibel sein

Ein PKCS # 11-Zertifikat oder ein # 12 zum Kombinieren mit einer Passphrase funktioniert auf allen Betriebssystemen. Dies ist die gleiche Art und Weise, wie Passwort-Manager wie Keepass arbeiten und etwas, das Sie wissen, mit etwas kombinieren, das Sie benötigen, um zwei Authentifizierungsfaktoren zu erhalten.

25
J.A.K.

Es handelt sich wahrscheinlich nur um einen USB-Smartcard-Leser mit eingelegter SIM-Smartcard.

Eine manuelle Installation der Treiber ist nicht erforderlich, da in den meisten modernen Betriebssystemen zumindest generische Treiber für Lesegerät und Karte bereits installiert sind.

In der Abbildung unten sehen Sie ein Beispiel für ein solches Gerät:

(Photo of USB device.

Auf dieser SIM-Smartcard im Lesegerät ist ein Zertifikat mit privatem Schlüssel gespeichert. Wenn Sie es an den Computer anschließen, wird dieses Zertifikat von der Smartcard in den OS-Zertifikatspeicher geladen. Von da an verhält es sich im Grunde wie jedes andere Zertifikat, das auf dem Computer gespeichert ist und für den Zugriff auf gesicherte Ressourcen, das Signieren von Dokumenten/E-Mails, das Verschlüsseln von Inhalten usw. verwendet werden kann.

Dies wird insbesondere von der Zertifizierungsstelle ausgestellt, der meine Bank (Webbanking) und mein Bundesstaat vertrauen (die von mir hauptsächlich für IRS-bezogene Dinge und das Anfordern von echten Dokumenten verwendet werden).

12
user2720406

Es handelt sich höchstwahrscheinlich um ein Gerät, das sich als Tastatur ausgibt und daher von jedem Betriebssystem erkannt wird, ohne dass spezielle Treiber erforderlich sind. Intern würde es wahrscheinlich HOTP (oder TOTP, wenn es einen RTC Chip und eine Batterie) hätte und einfach jedes Mal, wenn die Taste gedrückt wird, das OTP "eingeben", wie ein Yubikey oder ähnliches U2F-Gerät.

Der Browser spricht nicht und weiß nicht, dass der USB-Anschluss vorhanden ist. Es weist den Benutzer lediglich an, eine physische Taste auf dem Gerät zu drücken (um das Gerät anzuweisen, den Code "einzugeben", da der Browser selbst nicht mit ihm sprechen kann) und interpretiert dann alle Tastenanschläge (bis zur Länge des Codes). es empfängt als vom Gerät kommend.

11
André Borie

Klingt nach einer theoretischen Idee, die ich vor etwa einem Jahrzehnt hatte.

Nahezu jedes Betriebssystem unterstützt USB-Netzwerkgeräte. Ihr USB-Stick gibt möglicherweise vor, eine Netzwerkkarte zu sein, die mit einem lokalen Netzwerk verbunden ist und in der sich auch ein Webserver befindet. Dieser Webserver kann auch HTTPS-Zertifikate haben.

Ihr Webbrowser kann HTTPS-Anfragen an diesen Webserver senden und feststellen, dass sich der USB-Stick und die Bank-Website gegenseitig vertrauen. Dies wird nicht als Sandbox-Escape betrachtet, da weder der Browser noch das Betriebssystem wissen, dass sich der Webserver tatsächlich auf dem USB-Stick befindet.

IP-Warnung: Nach meinem besten Wissen hält mein ehemaliger Arbeitgeber in den meisten Ländern ein Patent auf diese Idee. Wenden Sie sich an einen Patentanwalt, bevor Sie diese Idee kopieren.

9
MSalters

Wie in einigen anderen Antworten erwähnt, handelt es sich höchstwahrscheinlich um ein USB-Sicherheitstoken. Stellen Sie sich das als Smartcard-Leser + eingebettete Smartcard vor (und manchmal werden sie tatsächlich auf diese Weise implementiert). Think CAC-Karte wird von US-Verteidigungsorganisationen verwendet. Denken Sie an die PGP-Karte. Einige Yubikey-Modelle unterstützen auch die Verwendung als Smartcard.

Diese Art von Geräten wird von Banken in China häufig zum Schutz ihrer Online-Banking-Website/Desktop-Client-Software verwendet. Meine Antwort basiert hauptsächlich auf meiner persönlichen Erfahrung mit diesen Token in China.

Wie benutzt man es?

Wenn Sie sich für das Online-Banking anmelden und sich für ein USB-Token entscheiden, gibt Ihnen die Bank das Token, erstellt ein öffentliches/privates Schlüsselpaar und Ihr persönliches Zertifikat und lädt diese in das Token. Sie legen für das Token ein Kennwort fest, das von Ihrem Online-Banking-Anmeldekennwort getrennt ist.

Sie installieren den von der Bank bereitgestellten Treiber auf Ihrem PC, schließen das Token an und navigieren zur Website der Bank. Immer wenn Sie sich anmelden oder einen vertraulichen Vorgang ausführen (Geld überweisen, Kontaktinformationen ändern, Online-Kauf autorisieren usw.), fordert der Browser/das Betriebssystem zur Eingabe Ihres Token-Passworts auf, das Licht auf dem Token blinkt einige Sekunden lang und die Transaktion geht durch.

Warten Sie, ich muss Treiber installieren?

Ja. Das Windows-Betriebssystem verfügt über eine Standard-Smartcard-Schnittstelle, für jedes USB-Token-Modell ist jedoch weiterhin ein Treiber erforderlich. Sehr selten installiert Windows Update die richtigen Treiber für Sie, aber in den meisten Fällen müssen Sie ein Paket von der Website der Bank herunterladen.

Oft ist Windows das einzige unterstützte Betriebssystem, und der einzige unterstützte Browser ist IE. (Sie mögen ActiveX.) Smartcards/USB-Token können im Allgemeinen durchaus andere Betriebssysteme/Browser unterstützen (siehe CAC-Karte oben). Sie müssen die Kompatibilität mit Ihrer eigenen Bank überprüfen.

Wie authentifiziert es Sie?

Der Browser fordert das Betriebssystem auf, das Token aufzufordern, ein kleines Datenelement (möglicherweise Ihre Transaktionsdetails) zu signieren. Das Token signiert es mit Ihrem privaten Schlüssel und Zertifikat. Der Browser sendet die Signatur an die Bank. Die Bank überprüft die Signatur und ist überzeugt, dass nur das Token, das sie Ihnen gegeben hat, über den privaten Schlüssel verfügt, um diese Signatur zu erstellen.

Der private Schlüssel verlässt das Token nie. Bei ordnungsgemäßem Design sollte das Token niemals den privaten Schlüssel preisgeben.

Lassen Sie mich zunächst feststellen, dass ich der Behauptung eines nicht technischen Mitarbeiters, dass es auf "jedem Gerät mit USB-Anschluss" funktioniert, unabhängig von Browser oder Betriebssystem, ziemlich skeptisch gegenüber stehe. Es würde mich nicht wundern, wenn sich herausstellen würde, dass das unterstützte Betriebssystem nur ein paar Windows-Versionen (und möglicherweise MacOS) sind. Es ist jedoch interessant zu überlegen, wie ein solches Gerät funktionieren könnte.

Die meisten Lösungen, für die keine Treiber erforderlich sind, wie der André Borie-Vorschlag für eine USB-Tastatur, erfordern jedoch eine zusätzliche Schnittstelle (z. B. eine Hardwaretaste).

Der Beitrag von user2720406 gab mir jedoch eine Idee für ein Gerät, das tatsächlich [an bestimmten Stellen] für jedes [eingeschaltete] Gerät mit USB-Anschluss funktioniert:

Das USB-Gerät würde einfach eine SIM-Karte enthalten, mit der über GPRS/3G selbstständig auf das Internet zugegriffen werden kann. Dann würde das Gerät einfach digital signierte Nachrichten von "Kunde mit Token 12312121 nutzt Online-Banking" senden. Die Online-Sitzung ist nur zulässig, wenn eine Sitzung in den letzten 5 Minuten empfangen wurde (plus möglicherweise andere Faktoren, z. B. die IP des Kunden mit einer ähnlichen Geolokalisierung wie die IP des Geräts). Somit würde der USB-Anschluss nur für die Stromversorgung verwendet, und das Gerät ist völlig unabhängig davon, was auf dem Computer installiert ist.

5
Ángel

Das klingt nach einem Yubikey. Sie sind bekannt und arbeiten großartig. https://www.yubico.com/products/yubikey-hardware/yubikey4/

  • Wenn Sie keine Treiber benötigen: Der Yubikey identifiziert sich als Tastatur, sodass jeder Computer mit einem Tastaturtreiber die Textausgabe von ihm lesen kann.
  • So funktioniert es: Sie drücken die Taste und der Yubikey gibt einen öffentlichen Schlüssel aus (von einem sicheren privaten Schlüssel, der in das Gerät eingebettet ist). Die Bank kann Sie dann authentifizieren und bestätigen, dass Sie das haben, was Sie wissen (Ihr Passwort) und das, was Sie haben (Ihren physisch gesicherten privaten Schlüssel).
  • Warum es sicher ist: Software auf Ihrem Computer kann nicht auf Ihren privaten Schlüssel zugreifen, sodass Malware den Schlüssel nicht kopieren und sich als Sie ausgeben kann. Es müsste dir physisch gestohlen werden. (was möglich ist, aber deshalb kombinierst du es mit etwas, das du kennst)

  • Wer verwendet sie und warum: Google hat das yubikey so gestaltet, dass das Problem der Malware auf einem Computer gelöst werden kann, der lokale Anmeldeinformationen abruft, während der Benutzer nicht anwesend ist. Jeder Google-Ingenieur hat einen. Ich habe sie jahrelang verwendet und zahlreiche 2fa-Lösungen um sie herum bereitgestellt.

2
jorfus