Was ist Refresh-Token-Rotation und warum ist sie wichtig?
Tauchen wir ein und besprechen wir, warum die Refresh-Token-Rotation eine effektive Methode ist, um die Sicherheit deiner Refresh-Tokens zu schützen.
Tauchen wir ein und besprechen wir, warum die Refresh-Token-Rotation eine effektive Methode ist, um die Sicherheit deiner Refresh-Tokens zu schützen.
Ein Refresh-Token ist eine spezielle Art von Token, das verwendet wird, um ein neues Zugriffstoken zu erhalten, wenn das aktuelle Zugriffstoken abläuft. Lies unseren vorherigen Beitrag Verständnis von Tokens in OIDC, um mehr zu erfahren.
Während der Einleitung haben wir auch erwähnt, dass wir bei Logto standardmäßig einen „Refresh-Token-Rotation“-Mechanismus implementiert haben, um die Sicherheit deines Refresh-Tokens zu schützen.
Aber was genau ist „Refresh-Token-Rotation“? Wie profitieren unsere Endbenutzer davon? Lass uns eintauchen!
Refresh-Token-Rotation ist ein Mechanismus, der das vorherige Refresh-Token ungültig macht und ein neues ausstellt, wenn das Refresh-Token verwendet wird, um ein neues Zugriffstoken zu erhalten. Dieser Mechanismus stellt sicher, dass das Refresh-Token erneuert wird, bevor es abläuft.
Refresh-Tokens haben eine längere Lebensdauer, in der Regel Wochen oder sogar Monate. Und da wir mit einem Refresh-Token neue Zugriffstokens erhalten können, wird das Refresh-Token auch ein attraktives Ziel für Angreifer. Daher muss der Autorisierungsserver gemäß dem OAuth 2.0 BCP eine der folgenden Maßnahmen ergreifen, um solche Angriffe zu verhindern.
Sec-Token-Binding) im Header der Refresh-Anforderung bereit, sodass das ausgestellte Refresh-Token kryptografisch an einen bestimmten Client gebunden ist. Heute sind jedoch nur einige der nativen Clients senderbeschränkt, und die meisten modernen SPAs und mobilen Clients sind öffentlich.Bei Logto wird, wenn ein Benutzer erfolgreich angemeldet ist, zuerst ein Grant-Objekt in der Datenbank erstellt, und das daraufhin ausgestellte Refresh-Token verfügt über eine Referenz grantId und zeigt auf das allererste Grant-Objekt.
Immer wenn eine Refresh-Token-Rotation stattfindet, wird das vorherige Refresh-Token als verbraucht markiert, und der Logto-Autorisierungsserver stellt ein neues Refresh-Token mit derselben grantId aus.
Angenommen, das vorherige Refresh-Token ist durchgesickert, dann hätte entweder der legitime Client oder der Angreifer es verwendet, um ein Zugriffstoken auszutauschen. Und egal wer das getan hat, das durchgesickerte Refresh-Token muss bereits rotiert und als verbraucht markiert worden sein. Einer von ihnen, der das verbrauchte Refresh-Token als Zweites verwendet, wird den Autorisierungsserver über den Bruch informieren. Der Autorisierungsserver wird alle Refresh-Tokens mit derselben grantId widerrufen.
Im obigen Fall kann der legitime Client nach dem Auslösen des Alarms nur erneut durch den Anmeldeablauf authentifiziert werden, um ein neues Refresh-Token zu erhalten. Der Angreifer hingegen wird die Kontrolle über dein System verlieren und ausgeschlossen werden.
Bei Logto definiert das Standardverhalten einer Refresh-Token-Rotation:
Gehe in der Logto-Admin-Konsole zu Admin-Konsole > Anwendungen und wähle die Anwendung aus, bei der du die Refresh-Token-Rotation umschalten möchtest. Auf der Anwendungsdetailseite gehst du zum Reiter „Erweiterte Einstellungen“ und scrollst nach unten, dort findest du den Schalter zusammen mit einigen anderen nützlichen Einstellungen.

Wenn du den Schalter ausschaltest, wird dein Refresh-Token nie rotiert, bis es abläuft. Daher empfehlen wir dringend, die Refresh-Token-Rotation immer zu aktivieren.
Refresh-Token-Rotation ist eine Best Practice, die die Sicherheit des Refresh-Tokens in deiner Anwendung gewährleistet. Sie macht das vorherige Refresh-Token ungültig und stellt ein neues aus, wenn das Refresh-Token verwendet wird, um ein neues Zugriffstoken zu erhalten. Dieser Mechanismus mindert das Risiko eines Token-Lecks und stellt die Sicherheit deines Refresh-Tokens sicher.
Logto folgt branchenführenden Best Practices und stellt die Benutzersicherheit immer an oberste Stelle.
Ich hoffe, dieser Blog erklärt gut deine Zweifel zum Mechanismus der Refresh-Token-Rotation. Lass uns wissen, wenn noch etwas unklar ist. Deine Rückmeldungen und Vorschläge sind immer willkommen!
Probiere Logto heute aus und erlebe ein sichereres Authentifizierungserlebnis.