Logo GH

چرخش کلید و توکن

1) چرا چرخش مورد نیاز است

کلید و نشانه به ناچار «سن»: قرار گرفتن در معرض در سیاهههای مربوط/پشتیبان گیری, خطرات خودی, آسیب پذیری کتابخانه, نشت از شرکای. چرخش «طول عمر خطر» را کاهش می دهد و کنترل حوادث را فراهم می کند. هدف این است که چرخه های چرخش قابل پیش بینی و مکانیزم های فراخوانی سریع بدون خرابی ایجاد شود.

2) منطقه: دقیقا همان چیزی است که ما چرخش می دهیم

کلید های امضا/رمزگذاری: JWT (JWS/JWE)، OAuth/OIDC، SAML، webhooks (HMAC)، مجوزها.
اسرار ادغام: کلیدهای API، راز مشتری، رمزهای عبور فناوری. کاربران.
TLS/mTLS: گواهینامه های سرور/مشتری، CA های ریشه/متوسط.
کلید های داده: KEK/CMK در KMS/HSM، DEK (رمزگذاری پاکت).
Токены: دسترسی/تازه کردن، سرویس به سرویس (mTLS، HMAC)، جلسه کوتاه مدت.

3) ذخیره سازی، نسخه ها، برچسب ها

KMS/HSM/Vault به عنوان منبع حقیقت ذخیره کلیدهای خصوصی در فایلهای git/ENV/image ممنوع است.
نسخه بندی: 'key _ id '/' version' + برچسب ها: 'هدف = jwt-sign'، 'env = prod'، 'alg = ES256'، 'created _ at'، 'rotates _ at'.
سیاست های دسترسی: اصل حداقل حقوق لازم (حداقل امتیاز)، تفکیک وظایف (SoD).
حسابرسی: چه کسی ایجاد/خواندن/امضا ؛ سیاهههای مربوط تغییر ناپذیر.

4) الگوهای چرخش پایه

4. 1 پنجره های همپوشانی (رولاور برازنده)

ما کلید → جدید را در JWKS/توزیع گواهی منتشر می کنیم.
پنجره همپوشانی: اعتبار سنجی با کلیدهای قدیمی و جدید، امضا - فقط با موارد جدید.
پس از پایان دوره مهلت، قدیمی را از مجموعه قابل اعتماد حذف کنید.

4. 2 دوگانه اجرا می شود

یک دوره کوتاه زمانی که بخشی از نمونه نشانه های قدیمی، بخشی - جدید (برای ناوگان بزرگ).
نیاز به JWKS به شدت هماهنگ و نظارت بر درصد اعتبار سنجی توسط «بچه».

4. 3 چرخش بر روی برنامه در مقابل چرخش بر روی استفاده

برنامه ریزی شده: یک بار در هر N روز/هفته (کلید امضا، TLS).
هنگام استفاده: تازه کردن نشانه - یک بار, برای هر انتشار ارز جدید («کشویی» چرخش).

5) JWT/JWKS: تمرین

5. 1 عنوان ها و شناسه ها

از «بچه» در هدر JWS برای انتخاب یک کلید تأیید استفاده کنید.
حداقل clims، کوتاه 'exp'، درست 'aud/iss/nbf'.

مثال هدر JWS:
json
{ "alg": "ES256", "kid": "jwt-2025-10", "typ": "JWT" }

5. 2 انتشار JWKS

JWKS باید شامل تمام کلیدهای اعتبارسنجی فعال باشد (قدیمی + جدید در پنجره grace).

مشتری JWKS ذخیره: TTL کوتاه (به عنوان مثال 5-15 دقیقه)

اگر به خطر بیافتد، کلید به خطر افتاده از JWKS (به طور ناگهانی)، نیروی ناتوانی کش را حذف کنید.

مثال 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 کادنس و زمان بندی

امضای JWT: چرخش کلید هر 3-6 ماه (یا بیشتر برای ریسک بالا).
'exp' access-token: 5-30 دقیقه ؛ تازه کردن - 7-30 روز (با «چرخش در استفاده»).
«پیوند» اجباری با PoP/DPoP (به § 8 مراجعه کنید) برای کاهش خطر سرقت.

6) چرخش HMAC (webhooks/signatures)

اسرار فعال و قناری را حفظ کنید از هر دو امضا بگیرید.

عناوین: 'X-Signature' + 'X-Timestamp' ؛ محدودیت پنجره ± 300 ثانیه

قطع ارتباط کامل از یکی از قدیمی - پس از فرستنده تغییر کرده است تایید.
برای شرکا، تاریخ سوئیچ و چک های پایانی را منتشر کنید.

7) TLS/mTLS و زنجیره های اعتماد

ACME/auto-renew برای گواهینامه های سرور عمومی (Let's Encrypt or enterprise CA).
mTLS: گواهی مشتری کوتاه (7-30 روز)، چرخش خودکار از طریق کانال (SPIFFE/SPIRE/مش).
چرخش CA متوسط/ریشه - فقط از طریق لنگرهای بسته اعتماد همپوشانی و قناری طولانی.
نگه داشتن چشم در OCSP/CRL و ساعت skew. در سیاهههای مربوط - دلایل شکست اعتبار.

8) PoP/DPoP و بسته نرم افزاری token↔klyuch مشتری

DPoP (تظاهرات اثبات مالکیت): نشانه به کلید عمومی مشتری متصل است ؛ خطر بازگشت را کاهش می دهد.
چرخش کلید مشتری = انتشار یک کلید DPoP جدید، نشانه ها - برای یک زمان کوتاه.
برای سرویس به سرویس، mTLS ترجیح داده می شود (دستگاه/کارگر «کلید» را در HSM/TPM حمل می کند).

9) نشانه های تازه کردن: چرخش در استفاده

یک بار نشانه تازه کردن: هر تبادل → تازه کردن جدید + دسترسی.
لیست فروشگاه «jti »/« sid» به یاد می آید با TTL = تازه کردن طول عمر.
تشخیص استفاده مجدد (پخش مجدد): فراخوانی فوری جلسه/دستگاه، هشدار.

10) لیست های یادآوری و بلوک

JWT بدون خودآزمایی: استفاده از کوتاه 'exp' + 'blacklists' 'jti' برای موارد بحرانی (به صورت محلی/در Redis، هش شاردینگ).
درون نگری OAuth: کش سرور وضعیت متمرکز «active = false/true» با یک TTL کوتاه.

کلیدهای API: هش کلید فروشگاه (مانند رمزهای عبور)، برچسب مالک/مستاجر، دامنه، تاریخ ایجاد/آخرین دسترسی ؛ یادآوری - فوری

11) کلید های داده: رمزگذاری پاکت

CMK/KEK (KMS/HSM) از DEK محافظت می کند ؛ چرخش CMK بدون افشای مجدد داده ها رخ می دهد: DEK را دوباره بسته بندی کنید.
DEK برای هر شی/مستاجر/حزب ؛ KDF/HKDF برای کلید های مشتق شده.
سیاست های خرد کردن رمزنگاری: حذف KEK = داده های غیرقابل خواندن در صورت به خطر افتادن.

12) روش های حادثه (سازش)

1. توقف: غیر فعال کردن صدور نشانه بر روی یک کلید به خطر بیافتد, انتقال صدور به یکی از جدید.
2. لغو: حذف بچه از JWKS، لغو گواهینامه (OCSP/CRL)، مسدود کردن کلید های API از لیست.
3. TTL را کاهش دهید: به طور موقت توکن های «exp» را کاهش دهید، بررسی PoP/DP را تقویت کنید.
4. خروج اجباری: جلسات را غیرفعال کنید (لغو 'sid '/' jti').
5. پزشکی قانونی و گزارش: جدول زمانی، پوشش، چه کسی/چه رنج می برد ؛ به روز رسانی playbooks.

13) خط لوله و رول

13. 1 نسل و انتشار

تولید کلید در HSM/KMS ؛ صادرات کلید خصوصی - ممنوع است.
انتشار خودکار JWKS/گواهینامه ها با تأیید و آزمایش.
انتشار قناری: 1-5٪ از مشتریان → 100٪.

13. 2 کنترل سلامت

معیارها: نسبت اعتبار سنجی توسط «بچه»، خطاهای امضا/گواهی، رانش ساعت.
هشدارها: 401/403 سنبله به دلیل امضا، OCSP/CRL در دسترس نیست، گواهینامه های منقضی (T-30/T-7/T-1).

14) پیکربندی و نمونه

14. 1 مثال سیاست Vault/KMS (شبه)

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

14. 2 برنامه چرخش 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 نماینده: نیروی JWKS به روز رسانی (شبه)

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) قابلیت مشاهده و حسابرسی

Метрики: 'jwt _ verify _ fail _ total {reason}', 'jwks _ refresh _ total', 'jwks _ kid _ share {kid}', 'token _ revoloked _ total', 'refresh _ rotations _ total', 'dpop _ fail _ total'.
Логи: 'kid'، 'jti'، 'sid'، 'reason'، 'client _ id'، 'tenant'، 'trace _ id' (без PII).
داشبورد: کارت اشتراک گذاری «بچه»، گواهینامه های منقضی، فرکانس فراخوانی، امضای نامعتبر بر اساس منطقه.

16) ضد گلوله

JWT های طولانی مدت بدون یادآوری و بدون «exp» کوتاه.
عدم انتخاب «kid» و «دستی» کلید تأیید.
ذخیره اسرار در ENV/k8s-Secret بدون KMS و بدون رمزگذاری در سطح etcd.

نشانه های تازه سازی غیر چرخشی ؛ استفاده مجدد از Refresh بدون شناسایی

یک کلید API جهانی «برای همه».
انتشار «آرام» کلیدهای جدید بدون انتشار و نظارت JWKS.
پنجره های همپوشانی صفر (جایگزینی فوری) → جرم 401/403.

17) ویژگی های iGaming/امور مالی

تنظیم کننده ها و حسابرسی: سیاهههای مربوط غیر قابل تغییر چرخش/به یاد می آورد ؛ قابلیت اطمینان زمان و بازیگران.
شریک PSP/KYC: کلیدهای جداگانه برای هر شریک/صلاحیت ؛ فراخوان سریع برای نقض SLA/ایمنی.
چند اجاره نامه: کلیدهای API هر مستاجر با دامنه ؛ جداسازی کلید نام تجاری/منطقه.
خطر بالا: PoP/DPoP برای عملیات بحرانی، کوتاه 'exp'، mTLS بین خدمات داخلی.
دفتر پشتی: SSO/OIDC، جلسات کوتاه، نشانه های سخت افزاری (FIDO2)، چرخش در برنامه در همه جا.

18) تولید لیست آمادگی

  • تمام کلید های خصوصی در KMS/HSM/Vault ؛ صادرات ممنوع
  • JWKS منتشر شده و با TTL کوتاه ذخیره می شود ؛ یک «بچه» در عناوین JWT وجود دارد.
  • برنامه چرخش با همپوشانی پنجره و رول اتوماتیک.
  • نشانه های تازه کردن یکبار مصرف هستند ؛ لیست لغو 'jti' با TTL.
  • اسرار HMAC: فعال + قناری ؛ استقبال هر دو ؛ زمان سوییچ اعلام شد
  • TLS/mTLS: خودکار تجدید، هشدار T-30/T-7/T-1، بسته نرم افزاری اعتماد برای تغییر CA.
  • رمزگذاری پاکت: KEK/CMK بدون خرابی چرخش، DEK در هر شی/مستاجر.
  • معیارها/هشدارها توسط امضا، JWKS، بازخورد ؛ داشبورد «بچه» -deals.
  • دفترچه حوادث (سازش) و تمرینات منظم.
  • تست canary و اعتبار کپی با کلید های جدید/CA.

19) TL ؛ دکتر متخصص

کلیدها را در KMS/HSM نگه دارید، JWT را با «بچه» امضا کنید و JWKS را ارسال کنید. چرخش کلید ها و گواهینامه ها با همپوشانی، نظارت بر سهام اعتبار سنجی توسط «بچه». تازه کردن - چرخش در استفاده و کوتاه 'exp'; برای عملیات بحرانی - PoP/DPoP و mTLS. برای داده ها، از رمزگذاری پاکت با چرخش KEK بدون خرابی استفاده کنید. پیاده سازی متریک/هشدار، playbooks حادثه، و چرخش قناری به طور منظم.

Contact

با ما در تماس باشید

برای هرگونه سؤال یا نیاز به پشتیبانی با ما ارتباط بگیرید.ما همیشه آماده کمک هستیم!

Telegram
@Gamble_GC
شروع یکپارچه‌سازی

ایمیل — اجباری است. تلگرام یا واتساپ — اختیاری.

نام شما اختیاری
ایمیل اختیاری
موضوع اختیاری
پیام اختیاری
Telegram اختیاری
@
اگر تلگرام را وارد کنید — علاوه بر ایمیل، در تلگرام هم پاسخ می‌دهیم.
WhatsApp اختیاری
فرمت: کد کشور و شماره (برای مثال، +98XXXXXXXXXX).

با فشردن این دکمه، با پردازش داده‌های خود موافقت می‌کنید.