Der Charme von “TOTP”

Ich selbst nutze schon längere Zeit verschiedene Möglichkeiten zur Absicherung meiner Konten.

Im Grunde war mit dabei egal, wie es funktioniert.

Jetzt will ich mich aber doch etwas näher mit einem der weit verbreiteten Standards dem TOTP (Time-based One-Time Password Algorithmus) beschäftigen.

Schaut man sich dazu die Dokumentation an, so wird schnell klar – das ist keine “Raketenwissenschaft”.
(Auch wenn sich der RFC dazu etwas schwieriger lesen lässt – https://datatracker.ietf.org/doc/html/rfc6238)

Man nimmt ein komplexes Kennwort und kombiniert dieses mit der aktuellen Zeit.

Von Vorteil ist dabei, dass heute fast alle Geräte eine sehr genaue Uhrzeit verwenden.

So bekomme ich eine gemeinsame Referenz.

Die Berechnung ist so einfach, dass ich das mit wenigen Programmzeilen zu einem “Einmalkennwort” verarbeiten kann.

Ein Beispiel findet sich bei https://github.com/jakwings/totp.

Wieso ist das dann sicher?

Zunächst müsste ein Angreifer den ersten Faktor kennen – das übliche Kennwort.

Dann müsste er den geheimen Schlüssel für das TOTP kennen.

Aha – dieser zweite Schlüssel sollte also nicht einfach so öffentlich herumliegen.

Meist wird er dem Gerät bei der Einrichtung über einen Barcode mitgeteilt.

Danach ist er nicht mehr sichtbar.

Sofern wir also bei der Einrichtung des TOTP nicht beobachtet wurden, ist es sehr unwahrscheinlich, dass jemand den zweiten Schlüssel kennt.

Per Definition ist das eigentlich keine echte “Multi-Faktor-Authentifizierung”, weil im Kern ein zweites Kennwort und kein zweiter Faktor zum Einsatz kommt.

Verbreitete “zweite Faktoren” sind zur Zeit (https://de.wikipedia.org/wiki/Multi-Faktor-Authentisierung)

    • knowledge“, also „Wissen“, etwas, das der Nutzer weiß (beispielsweise ein Passwort, das ist in der Regel immer der erste Faktor),
    • ownership“, also „Besitz“, etwas, das nur der Nutzer besitzt (beispielsweise ein Mobiltelefon),
    • inherence“, also „Inhärenz“, etwas, das der Nutzer ist (beispielsweise ein Fingerabdruck),
    • location“, also „Ort“, ein Ort, an dem sich der Nutzer befindet.

Vielleicht ein “Zwei-Kennwort-Authentifizierung” Verfahren?

Weil wir aber das zweite Kennwort meist direkt an ein Gerät bzw. eine App auf einem Gerät übergeben, haben wir dann in der praktischen Anwendung doch wieder einen weiteren “Faktor”.

Oder man ergänzt obige Liste um die Zeile

    • time“, also das Zeitfenster, innerhalb der man eine Aktion ausführt.

Tatsächlich kommt die Sicherheit durch das sehr kleine Zeitfenster, in dem der zweite Faktor genutzt werden kann.

Er wird nämlich etwa alle 30 Sekunden neu berechnet.

Das Verfahren entspricht so ganz meiner Mentalität.

Es ist einfach, pragmatisch und dennoch wirkungsvoll.

Aber, es ist auch mit Risiken verbunden.

    • wer sein Smartphone verliert, der verliert damit auch alle TOTP’s.
    • wäre das Smartphone nicht ausreichend geschützt, kämen diese vielleicht in die Hand von möglichen Angreifern.

Dagegen stehen die Vorteile

    • TOTP funktioniert überall, auch dort, wo es kein Internet gibt.
    • es gibt eine Vielzahl von App’s aber auch eigenständige Geräte wie z.B. den „Authenticator“ von ReinerSCT (https://shop.reiner-sct.com/authenticator/reiner-sct-authenticator).
    • es ist sehr leicht zu bedienen, auch wenn man die sechs Zahlen dafür eintippen muss.

Eigentlich spricht gar nichts dagegen, diese Technik auch einzusetzen, um sich und die verschiedenen Online Konten effektiv zu schützen.

Ich selbst habe übrigens alle „Codes“ auf einem weiteren Handy gespeichert.

Der google-Authenticator ermöglicht es in den Einstellungen ganz schnell und unkompliziert alle gewählten „Profile“ per Barcode auf ein weiteres Gerät zu übertragen.

Dafür eignet sich gut auch ein ausgemustertes Handy.

Wie immer gilt selbst bei so einfachen Dingen die Regel:

Ohne Backup sollte man nie arbeiten.