تناوب المفتاح والرمز
1) سبب الحاجة إلى التناوب
المفاتيح والرموز حتمًا «العمر»: التعرض في السجلات/النسخ الاحتياطية، والمخاطر الداخلية، ونقاط ضعف المكتبة، والتسريبات من الشركاء. يقلل التناوب من «عمر المخاطرة» ويعطي إمكانية التحكم في الحوادث. الهدف هو بناء دورات تناوب يمكن التنبؤ بها وآليات استدعاء سريعة دون توقف.
2) المنطقة: ما الذي ندوره بالضبط
مفاتيح التوقيع/التشفير: JWT (JWS/JWE)، OAuth/OIDC، SAML، خطوط الويب (HMAC)، التراخيص.
أسرار التكامل: مفاتيح واجهة برمجة التطبيقات، سر العميل، كلمات المرور التقنية. المستخدمين.
TLS/mTLS: شهادات الخادم/الزبون، CAs الجذرية/المتوسطة.
مفاتيح البيانات: KEK/CMK في KMS/HSM، DEK (تشفير المغلف).
Токены: الوصول/التحديث، الخدمة إلى الخدمة (mTLS، HMAC)، جلسة قصيرة الأجل.
3) التخزين، الإصدارات، الملصقات
KMS/HSM/Vault كمصدر للحقيقة. يحظر تخزين المفاتيح الخاصة في ملفات git/ENV/الصورة.
Versioning: 'key _ id '/' version' + labels: 'purpose = jwt-sign', 'env = prod',' alg = ES256 ',' created _ at', 'durates _ at' at'.
سياسات الوصول: مبدأ الحد الأدنى من الحقوق الضرورية (أقل امتياز)، الفصل بين الواجبات.
مراجعة الحسابات: من أنشأ/قرأ/وقع ؛ جذوع الأشجار الثابتة.
4) أنماط الدوران الأساسية
4. 1 نوافذ متداخلة (انقلاب رشيق)
ننشر → الرئيسية الجديدة في JWKS/نوزع الشهادة.
نافذة التداخل: التحقق من صحة المفاتيح القديمة والجديدة، التوقيع - فقط مع المفاتيح الجديدة.
بعد انتهاء فترة السماح، احذف الفترة القديمة من المجموعة الموثوقة.
4. 2 ثنائي التشغيل
فترة قصيرة عندما يشير جزء من الحالات إلى قديم وجزء - جديد (للأساطيل الكبيرة).
يتطلب تزامن JWKS بشكل صارم ورصد النسبة المئوية للتصديق بواسطة «طفل».
4. 3 التناوب حسب الجدول الزمني مقابل التناوب عند الاستخدام
المقرر: مرة كل يوم/أسبوع (مفاتيح التوقيع، TLS).
عند الاستخدام: تحديث الرموز - لمرة واحدة، لكل إصدار تبادل جديد (دوران «منزلق»).
5) JWT/JWKS: الممارسة
5. 1 العناوين ومحددات الهوية
استخدم «طفل» في رأس JWS لتحديد مفتاح التحقق.
الحد الأدنى من التسلق، قصير 'exp'، صحيح 'aud/iss/nbf'.
json
{ "alg": "ES256", "kid": "jwt-2025-10", "typ": "JWT" }
5. 2 منشور JWKS
يجب أن تحتوي JWKS على جميع مفاتيح التحقق النشطة (القديمة + الجديدة في نافذة النعمة).
العميل JWKS cacking: TTL قصير (على سبيل المثال 5-15 دقيقة).
إذا تعرضت للخطر، قم بإزالة المفتاح المخترق من 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 يومًا (مع «الدوران عند الاستخدام»).
«الترابط» القسري مع برنامج العمل/برنامج العمل (انظر الفقرة 8) للحد من مخاطر السرقة.
6) تناوب HMAC (خطوط الويب/التوقيعات)
الاحتفاظ بأسرار نشطة وكناري ؛ تقبل التوقيعات من كليهما.
العناوين: 'X-Signature' + 'X-Timestamp' ؛ الحد من النوافذ ± 300.
قطع الاتصال الكامل بالقديم - بعد تأكيد المرسل.
للشركاء، انشر تاريخ التبديل وفحص نقطة النهاية.
7) TLS/mTLS وسلاسل الثقة
ACME/التجديد التلقائي لشهادات الخادم العامة (دعونا نشفر أو مؤسسة CA).
mTLS: شهادات العميل القصيرة (7-30 يومًا)، والتناوب التلقائي عبر القنوات (SPIFFE/SPIRE/neesh).
تناوب CA المتوسط/الجذر - فقط من خلال مراسي حزمة الثقة المتداخلة والكناري الطويل.
راقب OCSP/CRL وانحراف الساعة. في السجلات - أسباب فشل التحقق.
8) برنامج عمل/برنامج عمل ديربان وحزمة token↔klyuch العملاء
DPoP (إثبات الحيازة): الرمز مربوط بالمفتاح العام للعميل ؛ يقلل من خطر إعادة التشغيل.
تناوب مفتاح العميل = إصدار مفتاح DPoP جديد، رموز - لفترة قصيرة.
بالنسبة للخدمة إلى الخدمة، يتم تفضيل mTLS (الجهاز/العامل «يحمل» المفتاح في HSM/TPM).
9) تحديث الرموز: تدوير عند الاستخدام
رموز التحديث لمرة واحدة: كل تبادل → تحديث جديد + وصول.
قائمة متجر "jti "/" sid' المسترجع مع TTL = تحديث مدى الحياة.
إعادة استخدام الكشف (إعادة التشغيل): جلسة فورية/استدعاء الجهاز، تنبيه.
10) قوائم الاستدعاء والكتلة
JWT بدون استبطان: استخدم "exp" + "القوائم السوداء" jti "للحالات الحرجة (محليًا/في Redis، hash sharding).
OAuth introspection: centralic status server cache «active = false/true» with a short TTL.
مفاتيح واجهة برمجة التطبيقات: تخزين تجزئة المفاتيح (مثل كلمات المرور)، ملصقات المالك/المستأجر، النطاق، الإنشاء/تاريخ الوصول الأخير ؛ تذكر - فوري.
11) مفاتيح البيانات: تشفير المغلف
يحمي CMK/KEK (KMS/HSM) DEK ؛ يحدث دوران CMK دون إعادة الكشف عن البيانات: إعادة تغليف DEK.
DEK لكل كائن/مستأجر/طرف ؛ KDF/HKDF للمفاتيح المشتقة.
سياسات تمزيق التشفير: حذف KEK = بيانات غير قابلة للقراءة عند اختراقها.
12) إجراءات الحوادث (حل وسط)
1. التجميد: تعطيل إصدار الرمز على مفتاح مخترق، تحويل الإصدار إلى واحد جديد.
2. الإلغاء: إزالة «طفل» من JWKS، وإلغاء الشهادات (OCSP/CRL)، وحظر مفاتيح واجهة برمجة التطبيقات من القائمة.
3. خفض TTL: تقليل الرموز «exp» مؤقتًا، وتعزيز فحص PoP/DPoP.
4. الإخراج القسري: جلسات تعطيل (إلغاء 'sid'/' jti').
5. الطب الشرعي والإبلاغ: الجداول الزمنية، والتغطية، ومن/ما عانى ؛ تحديث كتب اللعب.
13) خط الأنابيب والبدء
13. 1 الجيل والنشر
توليد مفاتيح في نظام إدارة الموارد البشرية/نظام إدارة الكيماويات ؛ تصدير مفاتيح خاصة - محظور.
النشر التلقائي لشهادات JWKS/مع التحقق والاختبارات.
إصدار الكناري: 1-5٪ من العملاء → 100٪.
13. 2 التحكم الصحي
المقاييس: نسبة المصادقة بواسطة «طفل»، أخطاء التوقيع/الشهادة، انجراف الساعة.
التنبيهات: 401/403 ارتفاع بسبب التوقيع، OCSP/CRL غير متوفر، الشهادات منتهية الصلاحية (T-30/T-7/T-1).
14) التكوينات والأمثلة
14. 1 Vault/KMS Policy مثال (زائف)
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 _ recorded _ total»، «dpop _ fail _ total».
Логи: «طفل»، «جتي»، «سيد»، «سبب»، «عميل _ معرف»، «مستأجر»، «تتبع _ معرف» (без PII).
لوحات القيادة: بطاقة مشاركة «طفل»، شهادات منتهية الصلاحية، تردد الاستدعاء، توقيعات غير صالحة حسب المنطقة.
16) أنتيباترن
JWTs طويلة العمر بدون استدعاء ولا يوجد «exp» قصير.
عدم وجود اختيار 'طيب' و 'يدوي' لمفتاح التحقق.
تخزين الأسرار في ENV/k8s-Secret بدون KMS وبدون تشفير على مستوى etcd.
رموز تحديث غير دورية ؛ إعادة استخدام التحديث دون اكتشاف.
مفتاح عالمي واحد لواجهة برمجة التطبيقات «للجميع».
إصدار «هادئ» لمفاتيح جديدة بدون نشر JWKS ومراقبتها.
عدم وجود نوافذ متداخلة (استبدال فوري) → الكتلة 401/403.
17) تفاصيل iGaming/Finance
الجهات التنظيمية ومراجعة الحسابات: سجلات غير قابلة للتغيير لعمليات التناوب/الاستدعاء ؛ إمكانية إثبات الوقت والجهات الفاعلة.
الشريك PSP/KYC: مفاتيح منفصلة لكل شريك/ولاية قضائية ؛ الاستدعاء السريع لانتهاكات جيش تحرير السودان/جيش تحرير السودان/جيش السلامة.
عقود الإيجار المتعددة: مفاتيح واجهة برمجة التطبيقات لكل مستأجر ذات نطاق ؛ العزلة الرئيسية للعلامة التجارية/المنطقة.
مخاطر عالية: برنامج عمل/DPoP للعمليات الحرجة، «exp» قصيرة، mTLS بين الخدمات الداخلية.
Backofice: 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، التعليقات ؛ صفقات لوحات القيادة «طفل».
- دليل الحوادث (حل وسط) وتدريبات منتظمة.
- اختبارات الكناري ونسخ المصادقة مع مفاتيح جديدة/CA.
19) TL ؛ د
احتفظ بالمفاتيح في KMS/HSM، ووقع JWT مع «طفل» ونشر JWKS. قم بتدوير المفاتيح والشهادات مع التداخل، وراقب أسهم التحقق من الصحة بواسطة «طفل». التحديث - الدوران عند الاستخدام و 'exp' القصير ؛ للعمليات الحرجة - برنامج عمل/برنامج عمل ديربان و MTLS. للبيانات، استخدم تشفير المغلف مع دوران KEK دون توقف. تنفيذ المقاييس/التنبيهات، وكتب اللعب للحوادث، والدوران المنتظم للكناري.