Միգրացիայի և հոսանքների վերացումը
1) Ինչո՞ ւ պետք է նավարկենք
Բանալիները և հոսանքները անխուսափելիորեն «ծերանում են» 'էքսպոզիցիա լոգոտներում/bakas, ինսայդերի ռիսկեր, գրադարանների խոցելիություն, գործընկերների արտահոսք։ Միգրացիան նվազեցնում է «ռիսկի կյանքի ժամանակը» և վերահսկում է միջադեպերի ժամանակ։ Նպատակն է կառուցել կանխատեսելի ռոտացիայի ցիկլեր և արագ արձագանքման մեխանիզմներ առանց անցյալի։
2) Տարածքը 'ի՞ նչ ենք մենք անում։
Ստորագրության բանալիները/07: JWT (JWS/JWE), OAuth/OIDC, SAML, Webhuki (HMAC), լիցենզիա։
Ինտեգրման գաղտնիքները 'API բանալիներ, client secret, technoli։ օգտագործողները։
TFC/mTSA: սերվերներ/հաճախորդների հավաստագրեր, արմատային/միջանկյալ CA։
Տվյալների բանալիները ՝ KEK/CMK-ում KFC/HSM, DEK (envelope encryption)։
Токены: access/refresh, service-to-service (mTLS, HMAC), short-lived session.
3) Պահեստավորում, տարբերակներ, ստանդարտ
KFC/HSM/Vance որպես ճշմարտության աղբյուրը։ Արգելվում է մասնավոր բանալիներ պահել git/ENV/պատկերների ֆայլերում։
Տարբերակումը '"key _ id "/" version '+," purpose = jwt-sport "," env = elg = ES256 "," created _ at "," rotates _ at "։
Հասանելիության քաղաքականությունը 'նվազագույն անհրաժեշտ իրավունքների սկզբունքը (leportprivilege), պարտականությունների բաժանումը (SoD)։
Աուդիտ 'ով է ստեղծել/կարդալ/ստորագրել; անփոփոխ ամսագրեր։
4) Հիմնական պարտատոմսերը
4. 1 Փակող պատուհաններ (graceful rollover)
Մրցույթի նոր բանալին հրապարակում ենք JWKS/մենք տարածում ենք հավաստագիրը։
Արգելափակման պատուհանը 'հին և նոր բանալիներ, ստորագրությունը միայն նոր է։
Grace-ժամանակահատվածից հետո մենք հանում ենք վստահելի հավաքածուից հինը։
4. 2 Կրկնակի արտադրություն (d07-run)
Կարճ ժամանակահատվածը, երբ ինստանսների մի մասը ստորագրում է հին, մի մասը նոր է (մեծ ֆլիթների համար)։
Պահանջում է խստորեն համաժամեցված JWKS-ը և վալիդացիայի մասնաբաժնի մոնիտորինգը 'kid'։
4. 3 Rotate-on-schedule vs rotate-on-use
Գրաֆիկով 'անգամ N օրվա/շաբաթվա ընթացքում (ստորագրության բանալիներ, TSA)։
Օգտագործելիս 'refresh-tocens-ը միանվագ է, յուրաքանչյուր փոխանակման համար նոր («սայթաքող» ռոտացիա)։
5) JWT/JWKS 'պրակտիկա
5. 1 Վերնագրեր և ցուցիչներ
Օգտագործեք «kid» -ը JWS-վերնագրում 'վերափոխման բանալին ընտրելու համար։
Առնվազն կլիեմներ, կարճ «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 մեզի ստեղնը (կամ ավելի հաճախ high-risk)։
'exp' 71-token: 5-30 րոպե; refresh-7-30 օր է («rotate-on-use» -ից)։
Հարկադիր «թեքումը» PoP/DPoP-ից (տե՛ ս 388) գողության ռիսկի նվազեցման համար։
6) HMAC-ի (webhuki/ստորագրության) ռոտացիա
Պահպանեք ակտիվ և կանարական գաղտնիքները։ ստորագրություններ վերցրեք երկուսով։
Վերնագրեր ՝ «X-Signature» + «X-Timestamp»; պատուհանի սահմանափակումը 300s է։
Հին - ի ամբողջական անջատումը այն բանից հետո, երբ ուղարկողը հաստատապես անցավ։
Գործընկերների համար 'հրապարակեք մրցույթի ամսաթիվը և ստուգման endpoint։
7) TFC/mTSA և վստահության շղթաներ
ACFC/2019-renew հանրային սերվերային հավաստագրերի համար (Let 's Encrypt կամ կորպորատիվ CA)։
MT.RU: կարճ հաճախորդների հավաստագրեր (7-30 օր), ավտոմատ միգրացիա (SPIFE/SPIRE/mesh)։
CA-ի լուծարումը միայն վստահության խարիսխի (trust bundle) և երկար canary միջոցով։
Հետևեք OCSA/CRL և clock-skew-ին։ Լոգայի պատճառները վալիդացիայից հրաժարվելու պատճառն են։
8) PoP/DPoP և միացումը հոսող է հաճախորդի բանալին։
DPoP (Demonstration of Prof-of-Possession): թոկենը կապված է public-key հաճախորդի հետ։ նվազեցնում է replay ռիսկը։
Հաճախորդի ստեղնաշարի լուծումը = նոր DPoP ստեղնը, հոսանքները կարճ ժամանակով։
Ծառայությունների համար նախընտրելի է mTSA (սարք/գողեր «կրում է» բանալին HSM/TPM)։
9) Refresh-tocens: rotate-on-use
Միանգամյա refresh-tocens: Յուրաքանչյուր փոխանակում նոր refresh + 210 է։
Հետ կանչված «jti »/« sid» ցանկը պահել TTL = refresh կյանքի ժամանակահատվածը։
Կրկնվող օգտագործման մանրամասը (ռր-105) 'նստաշրջանի/սարքի չարտոնված արձագանքը, ալերտը։
10) Վերանայումներ և արգելափակման ցուցակներ
JWT-ն առանց international Redis-ի օգտագործեք կարճ "exp '+ +" սև ցուցակները "քննադատական դեպքերի համար (տեղական/Redis-ում, hash-ում)։
OAuth introsp.ru: կենտրոնացված կարգավիճակի սերվեր; քերծեք «action = false/2019» կարճ TTL-ով։
API բանալիներ 'պահեք բանալին (ինչպես գաղտնաբառերը), սեփականատիրոջ/տենբերի, scope, ստեղծման/վերջին հասանելիության ամսաթիվը։ ակնթարթային ակնարկ է։
11) Տվյալների բանալիները ՝ envelope-կոդավորումը
CMK/KEK (KMS/HSM) պաշտպանում է DEK-ը։ CMK-ի լուծարումը տեղի է ունենում առանց տվյալների վերահաշվարկի 'pere-wrap DEK-ի։
DEK յուրաքանչյուր օբյեկտի/tenault/կուսակցության համար; KDF/HKDF ածանցյալների համար։
Ոչնչացման քաղաքականությունը (crypto-shredding) 'KEK = տվյալների անհեթեթությունը փոխզիջման ժամանակ։
12) Միգրացիայի ընթացակարգերը (փոխզիջում)
1. Սառեցրեք 'անջատել հոսանքների արտադրությունը սկեսրոջ ձևափոխված ձևով, թարգմանել խողովակը նոր։
2. Հետ կանչեք 'հեռացնել «kid» -ը JWKS-ից, հետ վերցնել հավաստագրերը (OCSA/CRL), արգելափակել API բանալիները ցուցակով։
3. Կրճատել TTL 'ժամանակավորապես կրճատել' exp 'token, ուժեղացնել PoP/DPoP ստուգումը։
4. Հարկադիր logout 'հաշմանդամացնել (revoke' sid '/' jti ')։
5. Ֆորենզիկան և հաշվետվությունները 'թայմլայններ, միգրանցներ, ովքեր/ինչ վնասվել են։ թարմացնել պլեյբուսները։
13) Delpline և rollout
13. 1 Գեներացիա և հրատարակություն
Ստեղծեք բանալիներ HSM/KFC-ում։ մասնավոր ստեղնաշարի արտահանումը արգելված է։
JWKS/հավաստագրերի ավտոմատ հրատարակումը verization և թեստերով։
Կանարյան թողարկումը 'հաճախորդների 1-5 տոկոսը 100 տոկոսն է։
13. 2 Առողջության վերահսկում
Մետրիկները '«kid» -ի վալիդացիայի մասնաբաժինը, ստորագրության սխալները/108, ժամացույցի դրեյֆը։
Alerts: 401/403 աճը ստորագրության պատճառով, OCSA/CRL-ը անհասանելի է, ավարտվում են հավաստագրերը (T-30/T-7/T-1)։
14) Գեորգի և օրինակներ
14. 1 Vox/KFC քաղաքականության օրինակ (կեղծ)
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 Envoy: 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_revoked_total`, `refresh_rotations_total`, `dpop_fail_total`.
Логи: `kid`, `jti`, `sid`, `reason`, `client_id`, `tenant`, `trace_id` (без PII).
Դաշբորդներ '«kid» մասնաբաժնի քարտեզը, որը լրանում է վկայագրերը, հետ կանչման հաճախականությունը, ոչ որակյալ ստորագրությունները տարածաշրջաններում։
16) Անտիպատերնի
Երկար գոյատևող JWT-ը առանց հետ կանչելու և առանց կարճ «exp» -ի։
«kid» -ի բացակայությունը և «ձեռքով» ստուգման բանալին ընտրելը։
Գաղտնի պահպանումը ENV/k8s-Secret-ում առանց KFC-ի և առանց etcd մակարդակում։
Ոչ ռոտացիոն refresh-tocens; refresh-ի կրկնվող օգտագործումը առանց մանրամասների։
Միակ համաշխարհային API-ի բանալին «բոլորի վրա»։
«Հանգիստ» նոր կոմպոզիցիաների արտադրությունը առանց JWKS հրապարակման և մոնիտորինգի։
Արգելափակման զրոյական պատուհանները (անմիջապես փոխարինումը) տեղադրված են զանգվածային 401/403։
17) iGaming/ֆինանսական առանձնահատկությունները
Կարգավորիչները և աուդիտը 'սուբսիդիաների/ակնարկների անփոփոխ լոգները։ ժամանակի և ակտորների ապացուցումը։
Գործընկեր PSA/KYC 'գործընկերոջ/միգրացիայի առանձին բանալիներ; արագ արձագանք SLA/անվտանգության խախտումների ժամանակ։
Բազմաբնույթ 'per-tenae API-բանալիներ scope-ից; ռուսական բրենդների/տարածաշրջանների մեկուսացում։
Բարձր ռիսկ ՝ PoP/DPoP կրիտիկական վիրահատությունների համար, կարճ 'exp ", mTSA ներքին ծառայությունների միջև։
Backoffice: SSO/OIDC, կարճ նստաշրջաններ, ապարատային հոսանքներ (FIDO2), ամենուր rotate-on-schedule։
18) Չեկ-թուղթ պատրաստակամության համար
- Բոլոր մասնավոր բանալիները KFC/HSM/Vox-ում; արգելված է արտահանումը։
- JWKS-ը հրապարակվում և քշվում է կարճ TTL-ի հետ։ JWT վերնագրերում կա «kid»։
- Արգելափակված պատուհանի և ավտոմատ rollout.
- Refresh-tokens միանվագ; չեղյալ հայտարարված «jti» ցուցակը TTL-ի հետ։
- HMAC գաղտնիքները 'ակտիվ + կանացի; ընդունումը երկու է. Հայտարարվել է t-ժամանակը։
- TFC/mTSA: 108-renew, ալտերտեր T-30/T-7/T-1, trust bundle փոխելու համար։
- Envelope-կոդավորումը 'KEK/CMK պտտվում են առանց անցքի, DEK per-օբյեկտ/տենանտ։
- Metriki/alerts ստորագրությամբ, JWKS, ակնարկներ; dashbords 'kid' doley։
- Պլեյբուկը (փոխզիջում) և ռուսական ուսմունքները։
- canary-ի թեստերը և վալիդացիաները նոր բեկորների/SA-ի հետ։
19) TL; DR
Պահեք բանալիները KFC/HSM-ում, ստորագրեք JWT-ը «kid» -ի հետ և հրապարակեք JWKS-ը։ Միացրեք բանալիները և հավաստագրերը համընկնումով, հետևեք «kid» -ի վալիդների բաժնետոմսերին։ Refresh-ը rotate-on-use և կարճ 'exp'; կրիտիկական վիրահատությունների համար 'PoP/DPoP և mTSA։ Տվյալների համար օգտագործեք envelope-կոդավորումը KEK-ի լուծույթով առանց անցքի։ Ներդրեք փոխաբերություններ/ալտերտեր, պլեյբուսներ։