Logo GH

Rotacja klucza i tokena

1) Dlaczego rotacja jest potrzebna

Klucze i żetony nieuchronnie „wiek”: ekspozycja w logach/kopiach zapasowych, ryzyko poufne, luki biblioteczne, wycieki od partnerów. Rotacja zmniejsza „żywotność ryzyka” i daje możliwość kontrolowania incydentów. Celem jest zbudowanie przewidywalnych cykli rotacyjnych i mechanizmów szybkiego wycofywania bez przestojów.

2) Obszar: co dokładnie obracamy

Klucze podpisu/szyfrowania: JWT (JWS/JWE), OAuth/OIDC, SAML, webhaki (HMAC), licencje.
Tajemnice integracji: klucze API, tajemnica klienta, hasła techniczne. użytkowników.
TLS/mTLS: certyfikaty serwera/klienta, główne/pośrednie urzędy certyfikacji.
Klucze danych: KEK/CMK w KMS/HSM, DEK (szyfrowanie koperty).
Токена: access/refresh, service-to-service (mTLS, HMAC), krótkotrwała sesja.

3) Przechowywanie, wersje, etykiety

KMS/HSM/Skarbiec jako źródło prawdy. Zabrania się przechowywania kluczy prywatnych w plikach git/NA/na obrazkach.
Wersioning: 'key _ id'/' version' + labels: 'purpose = jwt-sign', '= prod', 'alg = ES256', 'created _ at', 'rotates _ at'.
Polityka dostępu: zasada minimalnych niezbędnych praw (najmniejszego przywileju), rozdzielenie obowiązków (SoD).
Audyt: kto stworzył/przeczytał/podpisał; niezmienne kłody.

4) Podstawowe wzory rotacji

4. 1 Nakładające się okna (wdzięczne przewrócenie)

Publikujemy nowy klucz → w JWKS/rozpowszechniać certyfikat.
Okno zakładki: walidacja starymi i nowymi klawiszami, podpis - tylko z nowymi.
Po upływie okresu łaski usuń starą z zaufanego zestawu.

4. 2 Podwójny bieg

Krótki okres, gdy część przypadków oznacza stare, część - nowe (dla dużych flot).
Wymaga ściśle zsynchronizowanego JWKS i monitorowania odsetka walidacji przez 'dziecko'.

4. 3 Obrót w schemacie a obrót w użyciu

Zaplanowane: raz na N dni/tygodnie (klucze do podpisu, TLS).
Przy użyciu: żetony odświeżające - jednorazowy, dla każdej wymiany zwolnienia nowy („przesuwny” obrót).

5) JWT/JWKS: praktyka

5. 1 Pozycje i identyfikatory

Użyj 'kid' w nagłówku JWS, aby wybrać klucz weryfikacyjny.
Minimalne wspinaczki, krótkie 'exp', poprawne 'aud/iss/nbf'.

Przykład nagłówka JWS:
json
{ "alg": "ES256", "kid": "jwt-2025-10", "typ": "JWT" }

5. 2 Publikacja JWKS

JWKS musi zawierać wszystkie aktywne klucze walidacyjne (stare + nowe w oknie grace).
Buforowanie klienta JWKS: krótki TTL (np. 5-15 min).
W przypadku kompromisu, usunąć kompromisowy klucz z JWKS (nagle), siła-niepełnosprawność pamięci podręcznej.

Przykład 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 Kadencja i czas

Podpis JWT: rotacja klucza co 3-6 miesięcy (lub częściej dla wysokiego ryzyka).
"exp 'access-token: 5-30 min; odświeżyć - 7-30 dni (z „rotate-on-use”).
Przymusowe „wiązanie” z PoP/DPoP (zob. § 8) w celu zmniejszenia ryzyka kradzieży.

6) Rotacja HMAC (haki/podpisy)

Zachować aktywne i kanaryjskie tajemnice; przyjmują podpisy od obu.
Tytuły: „X-Signature” + „X-Timestamp”; ograniczenie okna ± 300s.
Całkowite odłączenie starego - po potwierdzeniu przez nadawcę.
W przypadku partnerów należy opublikować datę-godzinę przełączania i kontrolę punktów końcowych.

7) TLS/mTLS i łańcuchy zaufania

ACME/auto-renewal dla certyfikatów serwera publicznego (Zaszyfrujmy lub CA przedsiębiorstwa).
mTLS: krótkie certyfikaty klienta (7-30 dni), automatyczne obracanie kanałami (SPIFFE/SPIRE/mesh).
Pośrednia/korzeniowa rotacja CA - tylko poprzez nakładanie się kotew wiązki zaufania i długiego kanarka.
Należy mieć oko na OCSP/CRL i zegar-skew. W dziennikach - przyczyny awarii walidacji.

8) Pakiet PoP/DPoP i token kliencki

DPoP (Demonstration of Proof-of-Possession): token jest związany z kluczem publicznym klienta; zmniejsza ryzyko powtórki.
Rotacja klucza klienta = wydanie nowego klucza DPoP, żetony - na krótki czas.
W przypadku usług preferowany jest mTLS (urządzenie/pracownik „przenosi” klucz w HSM/TPM).

9) Żetony odświeżające: obracane w użyciu

Jednorazowe żetony odświeżające: każda wymiana → nowy odświeżacz + dostęp.
Lista przywołanego sklepu 'jti '/' sid' z TTL = odświeżanie życia.
Wykrywanie ponownego użycia (ponowne odtwarzanie): natychmiastowe odwołanie sesji/urządzenia, alarm.

10) Listy wycofań i bloków

JWT bez introspekcji: stosować krótkie 'exp' + 'czarne listy' jti 'w przypadkach krytycznych (lokalnie/w Redis, shading hash).
OAuth introspection: scentralizowany serwer stanu pamięci podręcznej „active = false/true” z krótkim TTL.
Klucze API: sklep hash klucza (jak hasła), etykiety właściciela/najemcy, zakres, data utworzenia/ostatni dostęp; recall - instant.

11) Klucze danych: szyfrowanie koperty

CMK/KEK (KMS/HSM) chroni DEK; Rotacja CMK następuje bez ponownego ujawnienia danych: ponowne wrapping DEK.
DEK dla każdego obiektu/najemcy/strony; KDF/HKDF dla kluczy pochodnych.
Polityka Crypto-Shredding: usuwanie KEK = nieczytelne dane w przypadku kompromisu.

12) Procedury incydentów (kompromis)

1. Zamrożenie: wyłączyć emisję tokenów na kompromisowym kluczu, przenieść emisję na nowy.
2. Cofnij: usuń 'dziecko' z JWKS, cofnij certyfikaty (OCSP/CRL), zablokuj klucze API z listy.
3. Zmniejsz TTL: czasowo zmniejszyć żetony „exp”, wzmocnić sprawdzanie PoP/DPoP.
4. Wymuszony wylogowanie: wyłączyć sesje (cofnąć 'sid'/' jti').
5. Badania sądowe i sprawozdawczość: terminy, zasięg, kto/co cierpiał; aktualizować playbooks.

13) Rurociąg i toczenie

13. 1 Generowanie i publikacja

Generowanie klawiszy w HSM/KMS; eksport klucza prywatnego - zabroniony.
Automatyczna publikacja certyfikatów JWKS wraz z weryfikacją i testami.
Wydanie kanaryjskie: 1-5% klientów → 100%.

13. 2 Kontrola zdrowia

Wskaźniki: odsetek walidacji przez „dziecko”, błędy w podpisie/certyfikacie, dryfowanie zegara.
Wpisy: 401/403 skok ze względu na podpis, OCSP/CRL niedostępne, wygasające certyfikaty (T-30/T-7/T-1).

14) Konfiguracje i przykłady

14. 1 Przykład polityki skarbca/KMS (Pseudo)

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

14. 2 Przykład planu rotacji JWT


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 Wysłannik: wymusić aktualizację JWKS (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) Obserwowalność i audyt

Метрика: 'jwt _ verify _ fail _ total {reason}', 'jwks _ refresh _ total', 'jwks _ kid _ share {kid}', 'token _ revoked _ total', 'refresh _ rotows _ total', 'dpop _ fail _ total'.
Лова: 'kid', 'jti', 'sid',' reason ',' client _ id', 'tenant', 'trace _ id' (лЕВ PII).
Deski rozdzielcze: karta akcji „dziecko”, wygasające certyfikaty, częstotliwość wycofywania, nieprawidłowe podpisy według regionu.

16) Antypattery

Długotrwałe JWT bez wspomnień i bez krótkiego „exp”.
Brak 'dzieciaka' i 'instrukcja' wybór klucza weryfikacyjnego.
Przechowywanie tajemnic w ENV/k8s-Secret bez KMS i bez szyfrowania na poziomie etcd.
Nie rotacyjne żetony odświeżające; ponowne użycie odświeżenia bez wykrywania.
Jeden globalny klucz API „dla wszystkich”.
„Ciche” wydanie nowych kluczy bez publikacji i monitorowania JWKS.
Zero okien nakładających się na siebie (natychmiastowa wymiana) → masa 401/403.

17) Szczegóły dotyczące iGaming/Finance

Regulatory i audyt: niezmienne dzienniki rotacji/wycofania; wiarygodność czasu i aktorów.
Partner PSP/KYC: oddzielne klucze dla każdego partnera/jurysdykcji; szybkie wycofanie w przypadku naruszenia SLA/bezpieczeństwa.
Multi-lease: klucze API dla jednego najemcy z zakresem; izolacja klucza marki/regionu.
Wysokie ryzyko: PoP/DPoP dla operacji krytycznych, short 'exp', mTLS między służbami wewnętrznymi.
Backoffice: SSO/OIDC, krótkie sesje, żetony sprzętowe (FIDO2), wszechobecny obrót w harmonogramie.

18) Lista kontrolna gotowości Prod

  • Wszystkie klucze prywatne w KMS/HSM/Vault; wywóz jest zabroniony.
  • JWKS jest publikowany i buforowany z krótkim TTL; w nagłówkach JWT jest „dzieciak”.
  • Plan rotacji z pokrywającym się oknem i automatycznym uruchomieniem.
  • Żetony odświeżające są jednorazowe; lista odwołanych 'jti' z TTL.
  • Tajemnice HMAC: aktywny + kanaryjski; odbiór przez obie strony; Czas T-switch zadeklarowany.
  • TLS/mTLS: automatyczne odnawianie, T-30/T-7/T-1 alerty, pakiet zaufania dla zmiany CA.
  • Szyfrowanie koperty: KEK/CMK obracane bez przestoju, DEK na obiekt/najemcę.
  • Wskaźniki/wpisy w drodze podpisu, JWKS, informacje zwrotne; deski rozdzielcze 'dzieciak' -deals.
  • Incydent playbook (kompromis) i regularne wiertła.
  • Testy replik kanarkowych i walidacyjnych z nowymi kluczami/CA.

19) TL; DR

Trzymaj klucze w KMS/HSM, podpisz JWT z 'kid' i post JWKS. Obróć klucze i certyfikaty za pomocą nakładania się, monitoruj akcje walidacyjne przez 'dziecko'. odświeżanie - obrót w użyciu i krótkie 'exp'; dla operacji krytycznych - PoP/DPoP i mTLS. W przypadku danych należy użyć szyfrowania koperty z rotacją KEK bez przestoju. Wdrożyć mierniki/wpisy, playbooks incydentów i regularne rotacje kanaryjskie.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.