Logo GH

Schlüssel- und Token-Rotation

1) Warum Rotation notwendig ist

Schlüssel und Token „altern“ unweigerlich: Exposition in Logs/Backups, Insiderrisiken, Schwachstellen von Bibliotheken, Lecks bei Partnern. Rotation reduziert die „Risikolebensdauer“ und gibt Beherrschbarkeit bei Vorfällen. Ziel ist es, planbare Rotationszyklen und schnelle Rückrufmechanismen ohne Ausfallzeiten aufzubauen.

2) Bereich: Was genau rotieren wir

Signatur-/Verschlüsselungsschlüssel: JWT (JWS/JWE), OAuth/OIDC, SAML, Webhooks (HMAC), Lizenzen.
Geheimnisse der Integrationen: API-Schlüssel, Client-Geheimnis, technische Passwörter. Benutzer.
TLS/mTLS: Server-/Client-Zertifikate, Root/Intermediate-CAs.
Datenschlüssel: KEK/CMK in KMS/HSM, DEK (Envelope Encryption).
Токены: access/refresh, service-to-service (mTLS, HMAC), short-lived session.

3) Lagerung, Versionen, Etiketten

KMS/HSM/Vault als Quelle der Wahrheit. Es ist verboten, private Schlüssel in git/ENV/Image-Dateien zu speichern.
Versionierung: 'key _ id '/' version' + Tags: 'purpose = jwt-sign', 'env = prod', 'alg = ES256', 'created _ at', 'rotates _ at'.
Zugangsrichtlinien: Prinzip der minimal notwendigen Rechte (least privilege), Aufteilung der Verantwortlichkeiten (SoD).
Audit: wer erstellt/gelesen/unterzeichnet hat; Unveränderliche Protokolle.

4) Grundlegende Rotationsmuster

4. 1 Überlappende Fenster (graceful rollover)

→ veröffentlichen den neuen Schlüssel in JWKS/verteilen das Zertifikat.
Überlappungsfenster: Validierung mit alten und neuen Schlüsseln, Unterschrift nur mit neuen.
Nach Ablauf der Grace-Periode - entfernen Sie die alte aus dem vertrauenswürdigen Satz.

4. 2 Doppelausgabe (Dual-Run)

Eine kurze Zeit, in der ein Teil der Instanzen das Alte unterschreibt, ein Teil das Neue (für große Flöten).
Erfordert ein streng synchronisiertes JWKS und die Überwachung des Anteils der Validierungen durch "kid'.

4. 3 Rotate-on-schedule vs rotate-on-use

Nach Zeitplan: einmal in N Tagen/Wochen (Signaturschlüssel, TLS).
Bei Verwendung: Refresh-Token - einmalig, für jeden Austausch eine neue Ausgabe („gleitende“ Rotation).

5) JWT/JWKS: Praxis

5. 1 Titel und Kennungen

Verwenden Sie' kid' im JWS-Header, um den Verifizierungsschlüssel auszuwählen.
Minimum von Climes, kurz' exp', korrekt 'aud/iss/nbf'.

Beispiel für einen JWS-Header:
json
{ "alg": "ES256", "kid": "jwt-2025-10", "typ": "JWT" }

5. 2 Veröffentlichung JWKS

JWKS muss alle aktiven Validierungsschlüssel enthalten (alt + neu im Grace-Fenster).
JWKS-Caching bei Kunden: kurze TTL (z.B. 5-15 min).
Wenn kompromittiert - Entfernen Sie den kompromittierten Schlüssel von JWKS (scharf), höhere Behinderung des Cache.

Beispiel JWKS:
json
{
"keys": [
{ "kty":"EC","crv":"P-256","kid":"jwt-2025-10","use":"sig","alg":"ES256","x":"...","y":"..." },
{ "kty":"EC","crv":"P-256","kid":"jwt-2025-07","use":"sig","alg":"ES256","x":"...","y":"..." }
]
}

5. 3 Kadenz und Fristen

JWT-Signatur: Schlüsselrotation alle 3-6 Monate (oder häufiger für hohes Risiko).
„exp“ -Zugangstoken: 5-30 min; refresh - 7-30 Tage (mit „rotate-on-use“).
Erzwungenes „Kleben“ mit PoP/DPoP (siehe § 8), um das Diebstahlrisiko zu reduzieren.

6) HMAC Rotation (Webhooks/Signaturen)

Bewahren Sie aktive und kanarische Geheimnisse auf; Akzeptieren Sie die Unterschriften beider.
Rubriken: „X-Signatur“ + „X-Timestamp“; Fensterbegrenzung ± 300s.
Vollständige Deaktivierung des alten - nachdem der Absender bestätigt gewechselt hat.
Für Partner: Veröffentlichen Sie Datum und Uhrzeit der Umstellung und Endpunktprüfung.

7) TLS/mTLS und Vertrauensketten

ACME/auto-renew für öffentliche Serverzertifikate (Let's Encrypt oder Enterprise CA).
mTLS: kurze Client-Zertifikate (7-30 Tage), automatische Rotation nach Kanal (SPIFFE/SPIRE/mesh).
Die Rotation der dazwischenliegenden/root CA erfolgt nur über sich überlappende Vertrauensanker (trust bundle) und einen langen Kanaren.
Achten Sie auf OCSP/CRL und Clock-Skew. In den Protokollen sind die Gründe für die Ablehnung der Validierung.

8) PoP/DPoP und Bündel token↔klyuch Client

DPoP (Demonstration of Proof-of-Possession): Das Token ist an den Public-Key des Clients gebunden; reduziert das Replay-Risiko.
Kundenschlüsselrotation = Freigabe eines neuen DPoP-Schlüssels, Token - kurzfristig.
Für Service-to-Service wird mTLS bevorzugt (Gerät/Worker „trägt“ Schlüssel im HSM/TPM).

9) Refresh-Token: rotate-on-use

Einmalige Refresh-Token: Jeder Austausch → einen neuen Refresh + Access.
Liste der zurückgezogenen 'jti '/' sid' speichern mit TTL = Lebensdauer refresh.
Wiederverwendungsdetail (Re-Play): sofortiger Rückruf der Sitzung/des Geräts, alert.

10) Widerruf und Sperrlisten

JWT ohne Introspektion: Verwenden Sie die kurze' exp'+ 'blacklists' 'jti' für kritische Fälle (lokal/in Redis, Hashing).
OAuth introspection: zentraler Statusserver; „active = false/true“ mit kurzer TTL zwischenspeichern.
API-Schlüssel: Schlüssel-Hash (als Passwörter), Besitzer/Tenant-Tags, Scope, Erstellungsdatum/letzter Zugriff speichern; Rückruf - sofort.

11) Datenschlüssel: Envelope-Verschlüsselung

CMK/KEK (KMS/HSM) schützt DEK; Die CMK-Rotation findet statt, ohne die Daten zu überlagern: DEK-Wrap.
DEK für jedes Objekt/Tenant/Partei; KDF/HKDF für abgeleitete Schlüssel.
Zerstörungsrichtlinien (Crypto-Shredding): KEK löschen = Unlesbarkeit der Daten bei Kompromittierung.

12) Verfahren für Zwischenfälle (Kompromittierung)

1. Einfrieren: Deaktivieren Sie die Ausgabe von Token auf dem kompromittierten Schlüssel, übertragen Sie die Ausgabe auf einen neuen.
2. Widerrufen: 'kid' aus JWKS entfernen, Zertifikate widerrufen (OCSP/CRL), API-Schlüssel per Liste sperren.
3. TTL reduzieren: „exp“ Token vorübergehend reduzieren, PoP/DPoP-Validierung verstärken.
4. Erzwungene Abmeldung: Sitzungen behindern (revoke' sid '/' jti').
5. Forenzika und Berichterstattung: Zeitlinien, Reichweite, wer/was betroffen ist; Playbooks aktualisieren.

13) Pipeline und Rollout

13. 1 Erzeugung und Veröffentlichung

Generieren Sie Schlüssel in HSM/KMS; Der Export des privaten Schlüssels ist verboten.
Automatische Veröffentlichung von JWKS/Zertifikaten mit Verifizierung und Tests.
Kanarische Freigabe: 1-5% der Kunden → 100%.

13. 2 Gesundheitskontrolle

Metriken: Anteil der Validierungen durch 'kid', Signatur-/Zertifikatfehler, Uhrendrift.
Alerts: 401/403 Spitze wegen Signatur, OCSP/CRL nicht verfügbar, auslaufende Zertifikate (T-30/T-7/T-1).

14) Configs und Beispiele

14. 1 Beispiel für eine Vault/KMS-Richtlinie (Pseudo)

hcl path "transit/keys/jwt-prod" {
capabilities = ["read," "update," "list"] # signature/rotation
}
path "transit/keys/jwt-prod/rotate" {
capabilities = ["update"]
}

14. 2 Beispiel eines JWT-Rotationsplans


T0: create a new version of the key (kid = jwt-2025-10), add to JWKS
T0 + 15m: start signing with a new kid; validate with old and new
T0 + 7d: remove old kid from JWKS
T0 + 30d: delete old private key from KMS (schedule purge)

14. 3 Envoy: JWKS-Update erzwingen (Pseudo)

yaml jwt_authn:
providers:
oidc:
issuer: https://auth. example. com/
remote_jwks:
http_uri:
uri: https://auth. example. com/.well-known/jwks. json cluster: jwks_cluster timeout: 2s cache_duration: 300s # короткий TTL

15) Beobachtbarkeit und Auditierung

Метрики: `jwt_verify_fail_total{reason}`, `jwks_refresh_total`, `jwks_kid_share{kid}`, `token_revoked_total`, `refresh_rotations_total`, `dpop_fail_total`.
Логи: `kid`, `jti`, `sid`, `reason`, `client_id`, `tenant`, `trace_id` (без PII).
Dashboards: Karte der „Kid“ -Anteile, auslaufende Zertifikate, Abrufquote, nicht valide Unterschriften nach Regionen.

16) Antipatterns

Langlebige JWT ohne Rückruf und ohne kurzes' exp'.
Keine' kid' und 'manuelle' Auswahl des Verifizierungsschlüssels.
Speichern Sie Geheimnisse in ENV/k8s-Secret ohne KMS und ohne Verschlüsselung auf ETCD-Ebene.
Nicht-rotierende Refresh-Token; Wiederverwendung von refresh ohne Detect.
Ein einziger globaler API-Schlüssel „für alle“.
„Stille“ Freigabe neuer Schlüssel ohne JWKS-Veröffentlichung und Monitoring.
Null-Überlappungsfenster (sofortiger Ersatz) → Masse 401/403.

17) Spezifität von iGaming/Finanzen

Regulatoren und Audits: unveränderliche Protokolle von Rotationen/Reviews; Nachweisbarkeit von Zeit und Akteuren.
Partner PSP/KYC: separate Schlüssel pro Partner/Gerichtsbarkeit; schneller Rückruf bei SLA/Sicherheitsverletzungen.
Multiarrangement: per-tenant API-Schlüssel mit Scope; Isolierung von Markenschlüsseln/Regionen.
Hohes Risiko: PoP/DPoP für kritische Operationen, kurze' exp', mTLS zwischen internen Diensten.
Backoffice: SSO/OIDC, kurze Sitzungen, Hardware-Token (FIDO2), allgegenwärtige Rotate-on-Schedule.

18) Checkliste Prod-Ready

  • Alle privaten Schlüssel in KMS/HSM/Vault; Export verboten.
  • JWKS wird mit einer kurzen TTL veröffentlicht und zwischengespeichert; in den JWT-Schlagzeilen steht "kid'.
  • Rotationsplan mit überlappendem Fenster und automatischem Rollout.
  • Refresh-Token sind einmalig; Liste der zurückgezogenen „jti“ mit TTL.
  • HMAC-Geheimnisse: aktiv + kanarienartig; Empfang von beiden; die T-Schaltzeit wird angekündigt.
  • TLS/mTLS: auto-renew, alert T-30/T-7/T-1, trust bundle für CA-Wechsel.
  • Envelope-Verschlüsselung: KEK/CMK rotieren ohne Ausfallzeit, DEK per Objekt/Tenant.
  • Metriken/Warnungen für Signatur, JWKS, Bewertungen; Dashboards von 'Kid' -Dolls.
  • Playbook der Vorfälle (Kompromittierung) und regelmäßige Übungen.
  • Kanarische Tests und Validierungsreplikationen mit neuen Schlüsseln/CA.

19) TL; DR

Schlüssel im KMS/HSM aufbewahren, JWT mit 'kid' signieren und JWKS veröffentlichen. Rotieren Sie Schlüssel und Zertifikate mit Überlappung, überwachen Sie die Validierungsanteile von 'kid'. Refresh - Rotate-on-use und kurze' exp'; für kritische Operationen - PoP/DPoP und mTLS. Verwenden Sie für Ihre Daten eine Envelope-Verschlüsselung mit KEK-Rotation ohne Ausfallzeiten. Implementieren Sie Metriken/Alerts, Incident Playbooks und regelmäßige Kanarienrotationen.

Contact

Kontakt aufnehmen

Kontaktieren Sie uns bei Fragen oder Support.Wir helfen Ihnen jederzeit gerne!

Telegram
@Gamble_GC
Integration starten

Email ist erforderlich. Telegram oder WhatsApp – optional.

Ihr Name optional
Email optional
Betreff optional
Nachricht optional
Telegram optional
@
Wenn Sie Telegram angeben – antworten wir zusätzlich dort.
WhatsApp optional
Format: +Ländercode und Nummer (z. B. +49XXXXXXXXX).

Mit dem Klicken des Buttons stimmen Sie der Datenverarbeitung zu.