Wie TOTP-Geheimnisse funktionieren (und warum man sie nicht teilen sollte)

Was ein TOTP-Geheimnis ist, wo sich seine Kopien lautlos ansammeln, und die genaue Reihenfolge zum Zurücksetzen eines Kontos, dessen Geheimnis schon zirkuliert ist.

Ein TOTP-Geheimnis ist eine zufällige Zeichenkette aus 16 bis 32 Base32-Zeichen, die der Anbieter einmal erzeugt und nie ändert. Es wird nicht aus Ihrem Passwort abgeleitet, es ist an kein Gerät gebunden, und es hat kein Ablaufdatum. Jede Kopie erzeugt für immer gültige Codes, und nichts im Konto kann Ihnen sagen, wie viele Kopien es gibt.

Das ist die ganze Anklage gegen das Teilen. Jeder dieser Sätze verdient seine Ausführung, und dazu kommt, was man mit einem Konto macht, dessen Geheimnis bereits zirkuliert ist, denn die Frage kommt fast immer zu spät.

Was ein Geheimnis genau ist

Die Mechanik, die aus einem Geheimnis sechs Ziffern macht, steht im vollständigen Leitfaden zu TOTP im Team. Hier zählt, was das Geheimnis als Gegenstand ist.

Es ist symmetrisch. Beide Seiten halten denselben Wert. Es gibt keine öffentliche Hälfte: Es gibt also nichts, das Sie gefahrlos verteilen könnten.

Es hat viel Entropie und lässt sich nicht erraten. 80 bis 160 Bit Zufall. Kein praktischer Angriff besteht darin, es zu berechnen, und genau deshalb ist jeder reale Vorfall eine Kopie.

Es hat keinen Lebenszyklus. Kein Ablauf, keine Version, keine Sperrliste, keine Rotation. Das Protokoll hat kein Vokabular für „diese Kopie ist nicht mehr gültig“, nur für „dieses Geheimnis ist am Konto nicht mehr eingerichtet“.

Es ist vom Passwort unabhängig. Das eine zurückzusetzen tut dem anderen nichts. Teams ändern nach einem Abgang die Passwörter und lassen den zweiten Faktor stehen, was die falsche Hälfte ist, wenn das Geheimnis gereist ist.

Die Orte, an denen eine Kopie endet

Diese Liste verdient es, langsam gelesen zu werden. Das Argument gegen das Teilen ist nicht, dass eine Kopie gefährlich wäre, sondern dass sich die Kopien dort ansammeln, wo niemand hinsieht.

  • Die Datenbank des Anbieters, an ihrem Platz.
  • Die Authenticator-App aller, die den QR-Code gescannt haben.
  • Die Gerätesicherung jedes dieser Telefone, wo auch immer sie lebt.
  • Die Cloud-Synchronisierung der Apps, die sie anbieten, also der meisten heute.
  • Der während der Einrichtung gemachte Screenshot, in einer Fotomediathek, die selbst synchronisiert wird.
  • Die Chatnachricht, in der es gepostet wurde, plus der Suchindex und die Aufbewahrung dieser Plattform.
  • Der geteilte Tresoreintrag, eines Tages in eine Datei exportiert, die niemand gelöscht hat.
  • Die Umgebungsvariable auf einem CI-Runner oder Server, wenn sich ein Automat anmeldet.

Zwei Dinge gelten für alle Punkte nach dem ersten. Keiner erscheint irgendwo in den Sicherheitseinstellungen des Kontos, und keiner wird durch eine Handlung gelöscht, die Sie innerhalb des Kontos vornehmen können.

Warum „wir haben es nur einmal geteilt“ nie einmal ist

Ein einmal geteiltes Geheimnis bleibt nicht an einem Ort, weil die Systeme, in denen es landet, dafür gebaut sind, Dinge zu kopieren.

Ein Telefon wird gesichert und auf seinem Nachfolger wiederhergestellt. Eine Authenticator-App fügt bei einem Update die Cloud-Synchronisierung hinzu, und das Geheimnis liegt nun in einem Konto, an das Sie nicht gedacht hatten. Ein Tresor wird vor einer Migration exportiert. Eine Chatplattform behält den Verlauf und macht ihn durchsuchbar für alle, die später dazukommen, auch für die, die zum Zeitpunkt der Nachricht nicht im Team waren. Der Laptop eines Dienstleisters geht mit dem Dienstleister.

Nichts davon unterstellt, dass sich jemand schlecht verhält. Das ist der gewöhnliche Betrieb von Endkundensoftware, und deshalb wächst die Zahl der Kopien eines geteilten Geheimnisses immer nur.

Was das Teilen Sie kostet

Zählbarkeit. Sie können nicht wissen, wie viele Kopien es gibt.

Entzug. Sie können keine einzelne zurücknehmen. Sie können nur alle ungültig machen, indem Sie das Konto neu einrichten.

Unabhängigkeit. Ein Geheimnis neben dem Passwort macht, dass eine einzige Kompromittierung beide Faktoren liefert, was auf einen einzelnen Faktor mit zusätzlichen Schritten hinausläuft.

Zuordnung. Jede der Kopien kann den um 03:12 Uhr benutzten Code erzeugt haben. Kein Protokoll, nirgends, wird sagen, welche.

Alles, was ein Team von 2FA auf einem geteilten Konto erwartet, von Verfügbarkeit ohne Engpass über einen funktionierenden Abgang bis zu einer Antwort auf „wer hat sich angemeldet“, folgt daraus, das Geheimnis nicht zu verteilen. Die Mechanik dorthin steht in TOTP-Codes teilen, ohne das Geheimnis zu teilen.

Wenn es schon geteilt wurde

Die meisten Teams, die das lesen, haben irgendwo schon ein Geheimnis geteilt. Die nützliche Frage ist nicht, ob das ein Fehler war, sondern welche Konten die Arbeit eines Zurücksetzens verdienen.

1. Entscheiden Sie, was Sie zurücksetzen

Setzen Sie die Konten zurück, auf denen ein ehemaliger Halter des Geheimnisses echten Schaden anrichten könnte: alles, was Geld, Domains, Kundendaten, Veröffentlichungsrechte oder Cloud-Infrastruktur berührt. Bei einem Konto ohne Einsatz, dessen Passwort Sie ändern können und dessen Zugriffsliste kurz ist, kann es verhältnismäßig sein, das Passwort zu ändern und das Teilen zu straffen. Wichtig ist, bewusst zu entscheiden; durch Trägheit zu entscheiden ist das, was ein Zahlungskonto zwei Jahre lang exponiert lässt.

2. Setzen Sie in dieser Reihenfolge zurück

Die Reihenfolge zählt, weil zwei dieser Schritte Sie aussperren können, wenn Sie sie zuerst tun.

  1. Vergewissern Sie sich, dass Sie aktuelle Wiederherstellungscodes haben oder bekommen können, bevor Sie irgendetwas anfassen.
  2. Schalten Sie die 2FA am Konto ab. Alle vorhandenen Kopien des Geheimnisses sterben hier.
  3. Schalten Sie sie wieder ein und legen Sie das neue Geheimnis an genau einen Ort.
  4. Gewähren Sie den Personen Zugriff, die die Codes brauchen, ohne das neue Geheimnis zu verteilen.
  5. Erzeugen und verwahren Sie die Wiederherstellungscodes neu, außerhalb des Kontos, das sie wiederherstellen.

3. Räumen Sie dann auf, was das Zurücksetzen nicht berührt hat

Das ist der Schritt, den man überspringt. Den zweiten Faktor zurückzusetzen beendet in der Regel nichts von dem, was bereits läuft:

  • Melden Sie alle Geräte und alle Sitzungen ab. Ein Angreifer mit einer lebenden Sitzung braucht keine Codes.
  • Ändern Sie das Passwort, da die beiden Anmeldedaten meist gemeinsam gereist sind.
  • Gehen Sie die API-Schlüssel, die Token und die verbundenen Anwendungen durch. Sie authentifizieren sich von der Konstruktion her ohne den zweiten Faktor und überleben dessen Zurücksetzen.
  • Sehen Sie sich den Zugriffs- und Anmeldeverlauf des Kontos an, auf der Suche nach etwas aus einer Zeit oder einem Ort, die es nicht geben dürfte.

4. Notieren Sie, wo das neue Geheimnis lebt

Eine Zeile je Konto: wo das Geheimnis ist, wer es verwaltet, wo die Wiederherstellungscodes sind. Das Fehlen dieser Notiz macht Teams zurückhaltend, überhaupt etwas zurückzusetzen, weil niemand sicher ist, was dabei bricht.

Wo ein Geheimnis leben sollte

An einem Ort, von mindestens zwei Administratoren erreichbar, getrennt von den Wiederherstellungscodes und getrennt von dem Konto, das es schützt. Ob das ein eingeschränkter Eintrag Ihres Passwortmanagers oder ein dafür gebautes Werkzeug ist, zählt weniger als der Teil „an einem“.

Share Auth ist eine Antwort: Das Geheimnis wird einmal eingegeben, im Ruhezustand verschlüsselt und nie wieder angezeigt. Mitglieder sehen Codes und Countdowns, der Zugriff wird je Person und je Konto gewährt, und jeder Abruf wird protokolliert. Was es beseitigt, ist der Grund, aus dem Teams überhaupt Geheimnisse verteilen, nämlich dass die Person mit dem Telefon nicht immer verfügbar ist.

Kurz gesagt

  • Ein TOTP-Geheimnis ist dauerhaft, symmetrisch und für sich genommen nicht entziehbar.
  • Es zu teilen kostet Sie die Zählbarkeit, den Entzug, die Unabhängigkeit der Faktoren und die Zuordnung.
  • Die Kopien vermehren sich durch Sicherungen, Synchronisierung, Exporte und Chatverläufe, ohne dass jemand etwas falsch macht.
  • Wurde es geteilt, entscheiden Sie Konto für Konto, setzen Sie der Reihe nach zurück, und räumen Sie die Sitzungen und Token auf, die das Zurücksetzen zurücklässt.
  • Halten Sie dann genau eine Kopie und geben Sie den Menschen stattdessen Zugriff auf die Codes.

Häufige Fragen

In der Praxis ja: Schlüssel, Geheimnis und Seed bezeichnen dieselbe Base32-Zeichenkette. Was sich unterscheidet, ist die Key URI, der otpauth://-Text, den der Einrichtungs-QR-Code kodiert und der das Geheimnis und seine Parameter trägt. Wenn ein Werkzeug nach einem Schlüssel fragt, erwartet es meist das Geheimnis.

Weiterlesen · So funktioniert TOTP

10 Min. Lesezeit

Der vollständige Leitfaden zu TOTP im TeamLeitfaden

Wie TOTP funktioniert, welche Eigenschaften des Algorithmus alle Probleme geteilter Konten verursachen, und was ein Team einrichten muss.