it-swarm.com.de

Wie funktionieren Hardware-Token-Geräte?

Vor kurzem hat mir meine Bank dieses winzige Gerät geschickt, das einen eindeutigen Code generiert, der bei Online-Transaktionen verwendet werden muss. Alles, was das Gerät macht, ist diesen eindeutigen Code zu generieren, wenn ich eine bestimmte weiße Taste drücke Remote-Server oder irgendetwas davon.

Ich recherchierte und kam in die Kryptographie mit der sogenannten Hash-Funktion , aber ich verstehe sie immer noch nicht.

Meine Fragen

  • Wie wissen die Server meiner Bank, dass der von diesem Gerät generierte Code korrekt ist?
  • Warum generiert der Server keine zufälligen Zahlen, die ich auch verwendet habe, da er nur alle 30 Sekunden fünf zufällige Ziffern generiert?
27
Feyisayo Sonubi

Dies hat sehr wenig mit Hash-Funktionen zu tun. Eine kryptografische Hash-Funktion kann Teil der Implementierung sein, ist jedoch nicht erforderlich.

Tatsächlich werden die Ziffern in einem zeitlichen Intervall generiert. Wenn ich die Taste drücke, um die Ziffern zu generieren, werden die Ziffern generiert. Nach etwa 25 Sekunden drücke ich erneut, und die Ziffern ändern sich nicht, wenn ich sie erneut drücke gleich nachdem ich es gerade gedrückt hatte.

Da ist dein Hinweis. Es ist ein zeitbasierter pseudozufälliger oder kryptographischer Algorithmus. Basierend auf der Zeit gibt es einen Code. Der Dongle und der Server kennen oder können den Code für jedes Fenster berechnen. Dies ist ein Shared Secret - Der Dongle stellt keine Verbindung zu einem Remote-Server her. Der Server lässt wahrscheinlich einen oder zwei der neuesten geheimen Schlüssel zu, um zu verhindern, dass Sie einen Schlüssel eingeben, für den nur abgelaufen ist, während die Übertragung unterwegs war.

(Obwohl meine jüngsten Erfahrungen mit Amazon Web Service-Multi-Faktor-Authentifizierung definitiv zu Anmeldefehlern innerhalb von 5 Sekunden nach Anzeige eines Codes geführt haben. Mit anderen Worten, einige Anbieter sind mit ihren Zeitfenstern sehr streng. Wie immer ist es ein Kompromiss zwischen Sicherheit und Benutzerfreundlichkeit.)

Die Abkürzungen CodesInChaos sind zeitbasiertes Einmalkennwort (TOTP) und HMAC-basiertes Einmalkennwort (HOTP) , zwei allgemein verwendete Algorithmen Faktor Authentifizierung.

Wikipedia sagt dies über den RSA SecurID , eine bestimmte Marke des Zwei-Faktor-Authentifizierung -Dongle.

Der RSA SecurID-Authentifizierungsmechanismus besteht aus einem "Token" - entweder Hardware (z. B. ein USB-Dongle) oder Software (ein Soft-Token) -, das einem Computerbenutzer zugewiesen ist und einen Authentifizierungscode in festen Intervallen (normalerweise 60 Sekunden) generiert eine eingebaute Uhr und den werksseitig codierten Zufallsschlüssel der Karte ("Samen"). Der Startwert ist für jedes Token unterschiedlich und wird beim Kauf der Token in den entsprechenden RSA SecurID-Server (RSA Authentication Manager, früher ACE/Server) geladen.

Ich habe diesen Artikel gewählt, weil er eine vernünftige, physische Beschreibung hat. Die übergeordneten Artikel konzentrieren sich auf die theoretische über die physische Implementierung.

Der Artikel bestätigt auch, dass Sie die Geheimhaltung des Tokens einhalten müssen. Andernfalls kann eine andere Person Ihre Logins verkörpern, indem Sie die Codes so einfach wie Sie kennen.

Die Token-Hardware ist manipulationssicher, um Reverse Engineering zu verhindern. Als Software-Implementierungen desselben Algorithmus ("Software-Token") auf den Markt kamen, wurde von der Sicherheitsgemeinschaft öffentlicher Code entwickelt, der es einem Benutzer ermöglicht, RSA SecurID in Software zu emulieren, jedoch nur, wenn er Zugriff auf einen aktuellen RSA SecurID-Code hat. und die ursprüngliche 64-Bit-RSA-SecurID-Seed-Datei, die in den Server eingeführt wurde.

Da der Überprüfungsserver jedoch Vorwissen über die Token haben muss, sind die Zwei-Faktor-Geheimnisse auch für Angriffe auf die Quelle anfällig. SecurID war das Opfer eines Diebstahls, der auf seine eigenen Server abzielte und schließlich zu sekundären Übergriffen auf den Servern seiner Kunden führte.

Schließlich sind weitere Informationen auf der Schwesterseite security.stackexchange unter dem Multi-Factor-Tag sowie auf dieser Site unter dem Tag Zwei-Faktor-Authentifizierung verfügbar.

34
Patrick M

Bevor ich anfange:

Ich bin Elektrotechnik und Elektronik. und öffnete gerade ein altes Sicherheitsgerät und machte ein Brainstorming darüber.

Ich habe eine Antwort, die mit der abgelaufenen Zeit zusammenhängt:

Jede dieser Sicherheitsvorrichtungen hat einen Quarzkristall im Inneren, und wann immer dieser Kristall mit Strom versorgt wird, beginnt sein Lebenszyklus (wie alle, die zur Welt gekommen sind) und keines der Geräte zur gleichen Zeit gestartet wurde (weil nicht die gleiche Anzahl zur gleichen Zeit erzeugt wurde) Moment) Wenn Sie also die Taste drücken, wird eine eindeutige Zahl generiert, indem die verstrichene Zeit (wahrscheinlich in der Größenordnung von 1/1000000 aufgrund von 6 Ziffern, die auf meinem Gerät in Abständen von 15 Sekunden angezeigt werden) in eine eindeutige Zahl umgewandelt wird. Aber woher kennt der Bankserver meine eindeutige generierte Nummer?

Antwort an den Bankserver:

Wahrscheinlich zählt die Bank die verstrichene Zeit, nachdem Sie sie aktiviert haben. weil Sie diese Sicherheitsgeräte bei der ersten Verwendung mit einer generierten eindeutigen Nummer von Ihrem eigenen Gerät aktivieren müssen. Bei einer exakten Zeitberechnungsberechnung weiß der Bankserver, dass die eingegebene Nummer xxx-xxx sein muss, und ändert sich im Laufe der Zeit.

Ich bin sicher, dass die Gerätebatterie den Quarzkristall während der Lebensdauer der Batterie mit Strom versorgt, auch wenn Sie die Sicherheitsvorrichtung niemals verwenden. Wenn die Batterie entfernt wird, schlägt die Generierung der Nummer fehl, weil der Quarzkristall nicht mit Strom versorgt wird und die Zeit zu diesem Zeitpunkt nicht gezählt werden kann. So kann es nie wieder eindeutige Nummern erzeugen.

0
Gem