Anahtar ve belirteç döndürme
1) Neden rotasyon gereklidir
Anahtarlar ve belirteçler kaçınılmaz olarak'yaş ": günlüklere/yedeklere maruz kalma, içeriden gelen riskler, kütüphane açıkları, ortaklardan gelen sızıntılar. Rotasyon "risk ömrünü" azaltır ve olaylarda kontrol edilebilirlik sağlar. Amaç, kesinti olmadan öngörülebilir rotasyon döngüleri ve hızlı hatırlama mekanizmaları oluşturmaktır.
2) Alan: tam olarak ne döndürüyoruz
İmza/şifreleme anahtarları: JWT (JWS/JWE), OAuth/OIDC, SAML, webhooks (HMAC), lisanslar.
Entegrasyon sırları: API anahtarları, istemci sırrı, teknik şifreler. kullanıcılar.
TLS/mTLS: sunucu/istemci sertifikaları, root/intermediate CA'lar.
Veri anahtarları: KMS/HSM'de KEK/CMK, DEK (zarf şifreleme).
Токены: access/refresh, service-to-service (mTLS, HMAC), kısa süreli oturum.
3) Depolama, sürümler, etiketler
Gerçeğin kaynağı olarak KMS/HSM/Vault. Git/ENV/image dosyalarında özel anahtarların saklanması yasaktır.
Sürüm oluşturma: 'key _ id'/' version' + etiketler: 'purpose = jwt-sign', 'env = prod', 'alg = ES256', 'created _ at', 'rotates _ at'.
Erişim politikaları: Asgari gerekli haklar ilkesi (en az ayrıcalık), görevlerin ayrılması (SoD).
Denetim: kim yarattı/okudu/imzaladı; Değişmez günlükler.
4) Temel rotasyon desenleri
4. 1 Üst üste binen pencereler (zarif rollover)
Yeni anahtarı - JWKS'de yayınlıyoruz/sertifikayı dağıtıyoruz.
Çakışma penceresi: eski ve yeni anahtarlarla doğrulama, imza - yalnızca yenileriyle.
İzin süresi sona erdikten sonra, eski olanı güvenilir kümeden silin.
4. 2 Dual-run
Örneklerin bir kısmının eski, bir kısmının yeni (büyük filolar için) olduğu kısa bir süre.
Kesinlikle senkronize bir JWKS ve'çocuk'tarafından doğrulama yüzdesinin izlenmesini gerektirir.
4. 3 Programda döndürme vs kullanımda döndürme
Zamanlanmış: Her N gün/haftada bir (imza anahtarları, TLS).
Kullanırken: yenileme belirteçleri - bir kerelik, her değişim için yeni ("kayar" rotasyon) bırakın.
5) JWT/JWKS: Uygulama
5. 1 Başlıklar ve tanımlayıcılar
Bir doğrulama anahtarı seçmek için JWS başlığında'çocuk 'kullanın.
Minimum iklim, kısa 'exp', doğru 'aud/iss/nbf'.
json
{ "alg": "ES256", "kid": "jwt-2025-10", "typ": "JWT" }
5. 2 JWKS yayını
JWKS tüm aktif doğrulama anahtarlarını içermelidir (eski + grace penceresinde yeni).
İstemci JWKS önbelleğe alma: kısa TTL (örn. 5-15 dk).
Ele geçirilirse, ele geçirilen anahtarı JWKS'den çıkarın (aniden), önbelleğin zorla devre dışı bırakılması.
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 Kadans ve zamanlama
JWT imzası: Her 3-6 ayda bir anahtar rotasyonu (veya yüksek riskli için daha sık).
'exp' access-token: 5-30 dk; Yenileme - 7-30 gün ("kullanımda döndürme'ile).
Hırsızlık riskini azaltmak için PoP/DPoP ile zorla "bağlanma" (bkz. § 8).
6) HMAC rotasyonu (webhooks/imzalar)
Aktif ve kanarya sırlarını tutmak; Her iki tarafın imzalarını kabul ediyorum.
Başlıklar: 'X-İmza' + 'X-Zaman Damgası'; Pencere sınırlaması ± 300'ler.
Eski olanın tamamen kesilmesi - gönderen onaylandıktan sonra.
İş ortakları için, anahtar tarih-saat ve uç nokta denetimlerini yayınlayın.
7) TLS/mTLS ve güven zincirleri
Genel sunucu sertifikaları için ACME/otomatik yenileme (Let's Encrypt veya enterprise CA).
mTLS: kısa istemci sertifikaları (7-30 gün), kanallar üzerinden otomatik rotasyon (SPIFFE/SPIRE/mesh).
Orta/kök CA rotasyonu - yalnızca örtüşen güven demeti çapaları ve uzun kanarya aracılığıyla.
OCSP/CRL'ye ve saat eğrisine dikkat edin. Günlüklerde - doğrulama başarısızlığının nedenleri.
8) PoP/DPoP ve istemci token↔klyuch paketi
DPoP (Sahip Olma Kanıtı Gösterimi): belirteç müşterinin açık anahtarına bağlıdır; Tekrarlama riskini azaltır.
İstemci anahtarı rotasyonu = kısa bir süre için yeni bir DPoP anahtarının, belirteçlerin serbest bırakılması.
Servis-servis için mTLS tercih edilir (cihaz/çalışan anahtarı HSM/TPM'de "taşır").
9) Belirteçleri yenileyin: kullanımda döndürün
Bir kerelik yenileme belirteçleri: Her değişim - yeni bir yenileme + erişim.
TTL = ömür boyu yenileme ile geri çağrılan 'jti'/' sid' mağazasının listesi.
Yeniden kullanım algılama (yeniden oynatma): anında oturum/cihaz hatırlama, uyarı.
10) Listeleri geri çağırma ve engelleme
İçgözlemsiz JWT: kritik durumlar için kısa 'exp' +'kara liste '' jti 'kullanın (yerel olarak/Redis'te, hash sharding).
OAuth iç gözlem: kısa bir TTL ile merkezi durum sunucusu önbelleği'aktif = yanlış/doğru ".
API anahtarları: anahtar karması (parolalar gibi), sahip/kiracı etiketleri, kapsam, oluşturma/son erişim tarihi; hatırlama - anında.
11) Veri anahtarları: zarf şifreleme
CMK/KEK (KMS/HSM), DEK'i korur; CMK dönüşü, verilerin yeniden açıklanması olmadan gerçekleşir: DEK'yi yeniden sarın.
Her nesne/kiracı/parti için DEK; Türetilmiş anahtarlar için KDF/HKDF.
Kripto parçalama politikaları: KEK'i silmek = tehlikeye girdiğinde okunamayan veriler.
12) Olay prosedürleri (uzlaşma)
1. Freeze: Ele geçirilmiş bir anahtarda belirteç vermeyi devre dışı bırakın, yeni bir anahtara aktarın.
2. İptal: 'kid'i JWKS'den kaldır, sertifikaları iptal et (OCSP/CRL), listeden API anahtarlarını engelle.
3. TTL'yi azaltın: 'exp' belirteçlerini geçici olarak azaltın, PoP/DPoP kontrolünü güçlendirin.
4. Zorla oturum açma: oturumları devre dışı bırak ('sid'/' jti' komutunu iptal et).
5. Adli tıp ve raporlama: zaman çizelgeleri, kapsama, kim/ne acı; Oyun kitaplarını güncelle.
13) Boru hattı ve dağıtım
13. 1 Nesil ve yayın
HSM/KMS'de anahtarlar üretin; özel anahtar ihracatı - yasaktır.
Doğrulama ve testlerle JWKS/sertifikaların otomatik olarak yayınlanması.
Kanarya sürümü: Müşterilerin %1-5 %100.
13. 2 Sağlık kontrolü
Metrikler:'çocuk'tarafından yapılan doğrulamaların oranı, imza/sertifika hataları, saat kayması.
Uyarılar: İmza nedeniyle 401/403 artış, OCSP/CRL kullanılamıyor, süresi dolan sertifikalar (T-30/T-7/T-1).
14) Yapılandırmalar ve örnekler
14. 1 Vault/KMS İlkesi Örneği (Sözde)
hcl path "transit/keys/jwt-prod" {
capabilities = ["read," "update," "list"] # signature/rotation
}
path "transit/keys/jwt-prod/rotate" {
capabilities = ["update"]
}
14. 2 JWT Rotasyon Planı Örneği
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 Elçi: kuvvet JWKS güncelleme (sözde)
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) Gözlemlenebilirlik ve denetim
Метрики: 'jwt _ verify _ fail _ total {reason}', 'jwks _ refresh _ total', 'jwks _ kid _ share {kid}', 'token _ revolved _ total', 'refresh _ rotations _ total', 'dpop _ fail _ total'.
Логи: 'kid', 'jti', 'sid', 'reason', 'client _ id', 'tenant', 'trace _ id' (без PII).
Panolar:'çocuk 'paylaşım kartı, süresi dolan sertifikalar, hatırlama sıklığı, bölgeye göre geçersiz imzalar.
16) Antipatterns
Hatırlama ve kısa 'exp' olmayan uzun ömürlü JWT'ler.
Doğrulama anahtarının'id've 'manuel' seçiminin olmaması.
KMS ve etcd düzeyinde şifreleme olmadan ENV/k8s-Secret sırların saklanması.
Rotasyonel olmayan yenileme belirteçleri; Algılama olmadan yenilemeyi yeniden kullanın.
"Herkes için'tek bir global API anahtarı.
"Sessiz" JWKS yayın ve izleme olmadan yeni anahtarların serbest bırakılması.
Sıfır çakışan pencereler (anında değiştirme) - kütle 401/403.
17) iGaming/Finansın Özellikleri
Düzenleyiciler ve denetim: Değiştirilemez rotasyon/geri çağırma kayıtları; Zamanın ve aktörlerin kanıtlanabilirliği.
Ortak PSP/KYC: Ortak/yargı alanı başına ayrı anahtarlar; SLA/güvenlik ihlalleri için hızlı geri çağırma.
Çoklu kiralama: kapsamı olan kiracı başına API anahtarları; Marka/bölge anahtar izolasyonu.
Yüksek risk: Kritik işlemler için PoP/DPoP, kısa 'exp', dahili hizmetler arasında mTLS.
Backoffice: SSO/OIDC, kısa oturumlar, donanım belirteçleri (FIDO2), her yerde-on-schedule döndürmek.
18) Prod Hazırlık Kontrol Listesi
- KMS/HSM/Vault'daki tüm özel anahtarlar; İhracat yasak.
- JWKS kısa TTL ile yayınlanır ve önbelleğe alınır; JWT manşetlerinde bir'çocuk 'var.
- Örtüşen pencere ve otomatik kullanıma sunma ile rotasyon planı.
- Yenileme belirteçleri tek kullanımlıktır; TTL ile iptal edilen 'jti'lerin listesi.
- HMAC sırları: aktif + kanarya; Her ikisi tarafından resepsiyon; T-switch zamanı bildirildi.
- TLS/mTLS: otomatik yenileme, T-30/T-7/T-1 uyarıları, CA değişikliği için güven paketi.
- Zarf şifreleme: KEK/CMK kesinti olmadan döndürüldü, nesne/kiracı başına DEK.
- İmza, JWKS, geri bildirim ile metrikler/uyarılar; Panoları'çocuk '-deals.
- Olay oyun kitabı (uzlaşma) ve düzenli tatbikatlar.
- Kanarya testleri ve yeni anahtarlar/CA ile doğrulama kopyaları.
19) TL; DR
Anahtarları KMS/HSM'de tutun, JWT'yi'çocuk'ile imzalayın ve JWKS'yi gönderin. Anahtarları ve sertifikaları çakışma ile döndürün, doğrulama paylaşımlarını'çocuk'tarafından izleyin. Yenileme - kullanımda döndürme ve kısa 'exp'; Kritik işlemler için - PoP/DPoP ve mTLS. Veriler için, kapalı kalma süresi olmadan KEK rotasyonlu zarf şifreleme kullanın. Metrikleri/uyarıları, olay oyun kitaplarını ve düzenli kanarya rotasyonlarını uygulayın.