Ich verwende RSA SecureID ® Keys seit einiger Zeit (vielleicht 10 Jahre), um beispielsweise mein Online-Homebanking-Konto sicher zu machen oder auf mein Konto zuzugreifen Das Computernetzwerk des Unternehmens von zu Hause aus. Diese Schlüssel generieren ein 6-stelliges numerisches Token, das abläuft. Ich habe mich jedoch immer gefragt, wie diese funktionieren.
Auf der rechten Seite befindet sich ein Punkt (auf dem Bild nicht dargestellt), der einmal pro Sekunde blinkt, und auf der linken Seite befindet sich ein Stapel von sechs vertikal gestapelten horizontalen Balken, von denen jeder alle zehn Sekunden verschwindet. Jedes Mal, wenn 60 Sekunden vergangen sind, wird das Token selbst zurückgesetzt und das vorherige Token wird ungültig.
AFAIK Diese Geräte nutzen das Netzwerk nicht und die von ihnen generierten Nummern müssen vom Server überprüft werden (ob Der Server ist eine Bank oder der Server eines Unternehmens. Daher muss in diesem Gerät ein Algorithmus gespeichert sein, der Zufallszahlen mit einem Mechanismus erzeugt, der einen sehr präzisen Timer enthält, der von einer kleinen Batterie gespeist wird. Der Timer muss sehr genau sein, da der Server die Gültigkeit der generierten Ziffern im selben Zeitintervall überprüfen muss. Soweit ich weiß, muss der Server für jeden Benutzer / Mitarbeiter denselben Algorithmus zur Generierung von Zufallszahlen mit einem solchen Algorithmus pro Kunde / Mitarbeiter speichern. Der Chip muss natürlich so konstruiert sein, dass der Angreifer bei einem Diebstahl nicht auf den darin gespeicherten Algorithmus zur Erzeugung von Zufallszahlen zugreifen kann, selbst wenn das Gerät defekt ist.
Funktioniert das so?
Danke!
Kommentare
- Auf die gleiche Weise TOTP funktioniert, mit Ausnahme der letzteren müssen Sie ‚ keine überteuerte Lösung kaufen und können normale Telefone oder jedes Gerät verwenden, das zur Basisberechnung fähig ist, sogar eine Smartwatch .
- Software-definiertes OTP ist extrem schlecht, da Sie nicht die Manipulationsresistenz erhalten, die erforderlich ist, um Resistenz gegen das Klonen des Seeds zu erhalten. Jeder mit einem Micro-USB-Kabel und den richtigen Tools kann Ihr Telefon in < 5 Minuten klonen. Wenn sein Passwort geschützt ist, kann der verschlüsselte Klon gespeichert werden, bis der Code durch schädliche Software oder Schulter-Surfen abgerufen werden kann. Einige Telefone bieten heutzutage einen manipulationssicheren Hardware-Schlüsselspeicher. Dann ist es eine gute Idee, diesen oder eine Security Smart-MicroSD zu verwenden. Damit wird verhindert, dass der Startwert extrahiert wird. Nur “ verwendet „. Nicht-RSA-Hardware-TOTP-Token sind jedoch sehr günstig.
- Verwandte Themen: Funktionsweise von RSA-Token
- @sebastiannielsen stützt sich immer noch auf Social Engineering oder darauf, dass Benutzer ihre Sachen nicht richtig verfolgen. Wenn ich das Telefon des Benutzers ‚ mit einem Computer verbinden kann, ohne dass er es bemerkt, kann ich auch seinen RSA-Token stehlen und einen anderen an seine Stelle setzen (und er hat ‚ merkt es erst, wenn er das nächste Mal versucht, es zu verwenden, was zu spät wäre.
- Es lohnt sich zu verknüpfen: Kann das Zahlen auf RSA SecurID-Token werden vorhergesagt?
Antwort
Ja, es funktioniert, wie Sie sagen . Der Chip ist „manipulationssicher“ und löscht den „Samen“ (geheimen Schlüssel), wenn versucht wird, ihn anzugreifen. Dies wird häufig dadurch erreicht, dass eine nicht vom Benutzer austauschbare Batterie und eine „Falle“ vorhanden sind, die die Stromversorgung des Geräts unterbricht, sobald das Gerät geöffnet oder die Chipoberfläche entfernt wird. Der Schlüssel wird dann in einem SRAM gespeichert, der Strom benötigt, um den Schlüssel zu behalten.
Der Schlüssel ist ein Startwert, der mit der aktuellen Zeit in einem Schritt von 60 Sekunden kombiniert wird (effektiv der aktuelle UNIX-Zeitstempel / 60). Aktualisiert den Code.
Nein, das Gerät muss NICHT präzise sein. Stattdessen speichert der Server die Zeit des zuletzt akzeptierten Codes. Dann akzeptiert der Server einen Code eine Minute früher, eine Minute im Voraus und zur aktuellen Zeit. Wenn also die aktuelle Zeit auf dem Server 23:20 ist, akzeptiert er einen Code von 23:19, 23:20 und 23: 21.
Danach wird die Zeit des zuletzt akzeptierten Codes gespeichert. Wenn beispielsweise ein 23: 21-Code akzeptiert wurde, wird 23: 21 in einer Datenbank gespeichert und die Annahme eines Codes verweigert, der diesen Code akzeptiert wurde um 23:21 oder früher generiert.
Nun zum interessanten Teil: Um zu verhindern, dass ein ungenaues Token vom Server desynchronisiert wird, speichert der Server in seiner Datenbank, wenn eine 23 akzeptiert werden musste: 19 Code oder ein 23:21 Code um 23:20 Uhr. Dadurch wird sichergestellt, dass der Server bei der nächsten Anmeldung den Code mit der Anzahl der Schritte korrigiert.
Nehmen wir an, Sie melden sich um 23:20 Uhr mit einem 23: 19-Code an. Der Server speichert „-1“ in seiner Datenbank (und wenn es sich um einen 23: 21-Code handelt, speichert er „+1“ in der Datenbank). Wenn Sie sich das nächste Mal anmelden, ist die Uhr 23:40 Uhr. Dann akzeptiert der Server einen 23:38, 23:39 oder 23:40 Code.Wenn ein 23: 38-Code akzeptiert wird, wird „-2“ in der Datenbank gespeichert, um 23:39 wird „-1“ in der Datenbank gespeichert und um 23:40 wird „0“ in der Datenbank gespeichert. P. >
Dadurch wird effektiv sichergestellt, dass der Server mit Ihrem Token synchronisiert bleibt. Darüber hinaus ermöglicht das System eine Resyncronisierung, wenn ein Token „zu weit vom Server entfernt“ lief (da es lange Zeit nicht verwendet wurde). Dies wird entweder von einem Systemadministrator durchgeführt, oder es wird ein Self-Service-Resynchronisationsdienst angezeigt, bei dem der Token-Benutzer aufgefordert wird, zwei nachfolgende Codes aus dem Token bereitzustellen, z. B. 23:20 und 23:21 oder 19:10 und 19:11. Beachten Sie, dass der Server NIEMALS einen Token-Code akzeptiert, der zum oder vor dem Zeitpunkt generiert wurde, als „zuletzt verwendeter Token-Code“ verwendet wurde (da dies die Wiederverwendung von OTP-Codes ermöglichen würde). Wenn eine Resynchronisation durchgeführt wird, speichert das Token die Differenz zu den bereitgestellten 2 Token-Codes und der aktuellen Serverzeit. Bei einer Resynchronisation kann das Suchfenster plus / minus 50 Schritte sein (was ungefähr 0,75 Stunden erlauben würde) Desync in beide Richtungen).
Der Server kann ein desynchronisiertes Token erkennen, indem er die 50 vorherigen Codes und 50 zukünftigen Codes generiert. Wenn der angegebene Code damit übereinstimmt, wird der Resync-Prozess automatisch gestartet. Um zu verhindern, dass ein Angreifer den Resync-Prozess verwendet, um gültige Codes zu finden, wird die Anmeldung nach dem Resync-Modus eines Kontos häufig nicht ohne Resyncing akzeptiert. Dies würde erfordern, dass der Angreifer den genauen Code nach oder vor dem Code findet gefunden.
Kommentare
- Coole Sachen, ‚ wusste nichts davon.
Antwort
Dem SecurID-Token ist ein „Startwert“ zugewiesen, der mit einem bestimmten Algorithmus programmiert ist, der Zahlen generiert basierend auf dem Samen und seiner Systemuhr. Der Startwert wird auch in einer Datei gespeichert, die mit dem Token geliefert wird. Nach Erhalt des Tokens importieren Systemadministratoren die Seed-Datei auf den Authentifizierungsserver. Da sowohl das SecurID-Token-Gerät als auch der Server den Startwert haben und beide den Algorithmus verwenden, kann der Server bestimmen, wie der richtige Token-Code zu einem bestimmten Zeitpunkt lauten soll.
Gelegentlich die Token Die Uhr ist möglicherweise nicht mehr mit dem Authentifizierungsserver synchronisiert. In diesem Fall können Systemadministratoren oder anderes autorisiertes Supportpersonal den Benutzer unterstützen, indem sie einen erneuten Synchronisierungsprozess auf dem Server durchführen. Dadurch wird der Server so konfiguriert, dass der Zeitversatz für dieses Token erkannt wird Damit zukünftige Authentifizierungsversuche genau behandelt werden können.
Hinweis: Da diese Zahlen vom Server vorhersehbar sein müssen, nur basierend auf den in der Seed-Datei gespeicherten Daten, der aktuellen Zeit und einem Standardalgorithmus, müssen sie kann auch von einem Angreifer mit Spezialwerkzeugen und Zugriff auf das Token vorhergesagt werden. (Oder schlimmer noch, Zugriff auf die Seed-Dateien selbst – wie vermutet wird, dass es 2011 passiert ist .) Bei genügend aufeinanderfolgenden Token-Codes gibt es zu ols, die den Startwert bestimmen und dann selbst zukünftige Codes generieren können.
Antwort
Die Sebastian-Antwort war großartig. Ich werde das in Laienbegriffen wiederholen. Das SecureID-Token ist einfach eine Uhr mit einem Startwert. Anstatt die Zeit anzuzeigen, wird eine Zahl angezeigt. Der Punkt, den wir auf dem Bild sehen können, ist Sekunden (glaube ich). In der Leiste wird sich die Nummer ändern, damit Sie sie zeitlich festlegen können. Wenn sie den unteren Rand erreicht, wird sie sich bald ändern. Wenn Sie sie eingeben, möchten Sie warten.
Das “ seed „befindet sich auch auf dem Server, der das Gerät authentifiziert. Wenn Sicherheitsleute den RSA-Server installieren, müssen sie dieselben Seeds auf den Server laden, der Ihren PIN-Code empfängt.
Also … im Grunde genommen ist eine Kryptouhr. Genau wie die alten LCD-Uhren, die meine Kinder mit Dora oder Prinzessinnen tragen. Der Unterschied ist der Keim, der die Mathematik für die Zahl liefert.