Logo GH

გასაღებები და ნიშნები

1) რატომ არის საჭირო როტაცია

გასაღებები და ნიშნები გარდაუვალად „დაბერდება“: ექსპოზიცია ლოგებში/ბეკებში, ინსაიდერის რისკები, ბიბლიოთეკების დაუცველობა, პარტნიორების გაჟონვა. როტაცია ამცირებს „რისკის სიცოცხლის ხანგრძლივობას“ და უზრუნველყოფს ინციდენტების მართვას. მიზანია პროგნოზირებადი როტაციის ციკლების შექმნა და სწრაფი გაწვევის მექანიზმების შექმნა.

2) სფერო: რა ვჭამოთ

ხელმოწერის/დაშიფვრის გასაღებები: JWT (JWS/JWE), OAuth/OIDC, SAML, ვებჰუკი (HMAC), ლიცენზიები.
ინტეგრაციის საიდუმლოებები: API გასაღებები, კლიენტის საიდუმლო, პაროლები ტექნიკური. მომხმარებლები.
TLS/mTLS: სერვერის/კლიენტის სერთიფიკატები, ფესვი/შუალედური CA.
მონაცემთა გასაღებები: KEK/CMK KMS/HSM, DEK (envelope encryption).
Токены: access/refresh, service-to-service (mTLS, HMAC), short-lived session.

3) შენახვა, ვერსიები, ეტიკეტები

KMS/HSM/Vault, როგორც სიმართლის წყარო. აკრძალულია პირადი გასაღებების შენახვა git/ENV/სურათების ფაილებში.
ვერსია: 'key _ id '/' version' + ეტიკეტები: 'purpose = jwt-sign', 'env = shign', 'alg = ES256', 'created _ at', 'rotates _ at'.
დაშვების პოლიტიკოსები: მინიმალური პრივილეგიის პრინციპი, მოვალეობების გამიჯვნა (SoD).
აუდიტი: ვინ შექმნა/წაიკითხა/ხელი მოაწერა; უცვლელი ჟურნალები.

4) როტაციის ძირითადი ნიმუშები

4. 1 გადახურვის ფანჯრები (graceful rollover)

ჩვენ ვაქვეყნებთ ახალ კლავიშს JWKS/ვავრცელებთ სერთიფიკატს.
ჭერის ფანჯარა: ძველი და ახალი კლავიშების შესაბამისობა, ხელმოწერა - მხოლოდ ახალი.
გრეის პერიოდის გასვლის შემდეგ - ამოიღეთ ძველი სანდო ნაკრებიდან.

4. 2 ორმაგი გამოშვება (ორმაგი რუნი)

მოკლე პერიოდი, როდესაც ზოგიერთი ინსტანცია ხელს აწერს ძველს, ნაწილი ახალია (დიდი ფლოტებისთვის).
იგი მოითხოვს მკაცრად სინქრონიზებულ JWKS- ს და აკონტროლებს 'kid' - ის ტენდენციების წილს.

4. 3 Rotate-on-schedule vs rotate-on-use

გრაფიკის მიხედვით: N დღეში/კვირაში ერთხელ (ხელმოწერის გასაღებები, TLS).
გამოყენებისას: refresh ნიშნები - ერთჯერადი, ახალი გამოშვების თითოეული გაცვლისთვის („მოცურების“ როტაცია).

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 უნდა შეიცავდეს შემოწმების ყველა აქტიურ გასაღებას (ძველი + ახალი გრეის ფანჯარაში).
მომხმარებლებისგან 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 ნიშანი: 5-30 წთ; რეფრესი - 7-30 დღე („rotate-on-use“ - ით).
იძულებითი „წებოვანი“ PoP/DPOP- ით (იხ. § 8) ქურდობის რისკის შესამცირებლად.

6) HMAC როტაცია (ვებჰუკი/ხელმოწერები)

შეინახეთ აქტიური და კანარის საიდუმლოებები; მიიღეთ ხელმოწერები ორივესთვის.
სათაურები: 'X-Signature' + 'X-Timestamp'; ფანჯრის შეზღუდვა ± 300s.
ძველი სრული გათიშვა - გამგზავნის დადასტურების შემდეგ.
პარტნიორებისთვის: გამოაქვეყნეთ გადართვის თარიღი და გადამოწმების დრო.

7) TLS/mTLS და ნდობის ჯაჭვები

ACME/auto-renew საჯარო სერვერის სერთიფიკატებისთვის (Let's Encrypt ან კორპორატიული CA).
MTLS: მოკლე კლიენტის სერთიფიკატები (7-30 დღე), ავტომატური როტაცია არხებით (SPIFFE/SPIRE/mesh).
შუალედური/ფესვის CA- ს როტაცია მხოლოდ ნდობის წამყვანის (trust bundle) და გრძელი კანარის საშუალებით ხდება.
დააკვირდით OCSP/CRL და clock-skew. ლოგიკაში შედის ვალიდაციის უარის თქმის მიზეზები.

8) PoP/DPOP და ნიშნის თაიგული კლიენტის გასაღები

DPoP (პრო-პოზიციის დემონსტაცია): ნიშნის მიბმული კლიენტის საზოგადოებრივი კეი; ამცირებს replay რისკს.
კლიენტის გასაღების როტაცია = ახალი DPoP გასაღების გამოშვება, ნიშნები - მოკლე დროში.
mTLS სასურველია სერვისის მომსახურებისთვის (მოწყობილობა/ვორკერი „ატარებს“ ღილაკს HSM/TPM).

9) Refresh ნიშნები: rotate-on-use

ერთჯერადი refresh ნიშნები: თითოეული გაცვლა არის ახალი refresh + წვდომა.
გაიხსენეთ 'jti '/' sid' სია, რომ შეინახოთ TTL = refresh- ის სიცოცხლის ხანგრძლივობა.
განმეორებითი გამოყენების დეტალი (repple): სესიის/მოწყობილობის დაუყოვნებელი მიმოხილვა, ალერტი.

10) მიმოხილვა და დაბლოკვის სიები

JWT ინტროსპექციის გარეშე: გამოიყენეთ მოკლე 'exp' + „შავი სიები“ 'jti' კრიტიკული შემთხვევებისთვის (ადგილობრივად/Redis- ში, ჰაშის შარდვა).
OAuth introspection: სტატუსის ცენტრალიზებული სერვერი; keshirute „Active = false/Real“ მოკლე TTL.
API გასაღებები: შეინახეთ hash გასაღები (პაროლები), მფლობელის/ტენანტის ეტიკეტები, სკოპი, შექმნის თარიღი/ბოლო წვდომა; მიმოხილვა - მყისიერად.

11) მონაცემთა გასაღებები: envelope დაშიფვრა

CMK/KEK (KMS/HSM) იცავს DEK- ს; CMK როტაცია ხდება მონაცემთა გადაკეთების გარეშე: კალამი-wrap DEK.
DEK თითოეული ობიექტისთვის/ტენანტი/წვეულებისთვის; KDF/HKDF წარმოებული გასაღებებისთვის.
განადგურების პოლიტიკა (crypto-shredding): KEK = მონაცემების ამოცნობა კომპრომისზე.

12) ინციდენტების პროცედურები (კომპრომისი)

1. გაყინვა: გამორთეთ ტოქსინების წარმოება კომპრომეტირებულ ღილაკზე, გადაიტანეთ გაცემა ახალზე.
2. ამოიღეთ: ამოიღეთ 'kid' JWKS- დან, ამოიღეთ სერთიფიკატები (OCSP/CRL), გადაკეტეთ API გასაღებები სიიდან.
3. შეამცირეთ TTL: დროებით შეამცირეთ 'exp' ნიშნები, გააძლიერეთ PoP/DPOP შემოწმება.
4. იძულებითი ლოგო: სესიების ინვალიდობა (revoke 'sid '/' jti').
5. ფორენსიკა და მოხსენებები: დრო, გაშუქება, ვინ/რა დაზარალდა; განაახლეთ playbooks.

13) Pipline და rollout

13. 1 თაობა და პუბლიკაცია

ჩამოაყალიბეთ გასაღებები HSM/KMS- ში; პირადი გასაღების ექსპორტი აკრძალულია.
JWKS/სერთიფიკატების ავტომატური გამოქვეყნება გადამოწმებით და ტესტებით.
კანარის გამოშვება: მომხმარებელთა 1-5% 100% -ს შეადგენს.

13. 2 ჯანმრთელობის კონტროლი

მეტრიკი: 'kid' - ის შესაბამისობის წილი, ხელმოწერის/სერტიფიკატის შეცდომები, საათის დრიფტი.
ალერტები: ხელმოწერის გამო 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 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- ში KMS- ის გარეშე და დაშიფვრის გარეშე etcd დონეზე.
არარეგისტრირებული რეფრეშის ნიშნები; რეფრესის ხელახალი გამოყენება დეტაჟის გარეშე.
ერთი გლობალური API გასაღები „ყველასთვის“.
ახალი გასაღებების „მშვიდი“ გამოშვება JWKS გამოქვეყნებისა და მონიტორინგის გარეშე.
ნულოვანი გადახურვის ფანჯრები (მყისიერი ჩანაცვლება) - მასიური 401/403.

17) iGaming/ფინანსების სპეციფიკა

რეგულატორები და აუდიტი: ბრუნვის/მიმოხილვების უცვლელი ლოგოები; დროისა და მსახიობების დადასტურება.
პარტნიორი PSP/KYC: პარტნიორის/იურისდიქციის ცალკეული გასაღებები; სწრაფი მიმოხილვა SLA/უსაფრთხოების დარღვევებში.
მრავალფეროვნება: per-tenant API გასაღებები სკოპით; ბრენდების/რეგიონების გასაღებების იზოლაცია.
მაღალი რისკი: PoP/DPoP კრიტიკული ოპერაციებისთვის, მოკლე 'exp', mTLS შიდა სერვისებს შორის.
Backoffice: SSO/OIDC, მოკლე სესიები, აპარატურის ნიშნები (FIDO2), ფართო rotate-on-schedule.

18) მზადყოფნის ჩეკის სია

  • ყველა პირადი გასაღები KMS/HSM/Vault- ში; აკრძალულია ექსპორტი.
  • JWKS ქვეყნდება და იშლება მოკლე TTL- ით; სათაურებში JWT არის 'kid'.
  • ბრუნვის გეგმა გადახურვის ფანჯრით და ავტომატური რულეტით.
  • Refresh ნიშნები ერთჯერადია; გაიხსენეთ 'jti' s TTL.
  • HMAC საიდუმლოებები: აქტიური + კანარი; მიღება ორივე; გამოცხადდა გადართვის დრო.
  • TLS/mTLS: auto-renew, ალერტები T-30/T-7/T-1, trust bundle CA შეცვლისთვის.
  • Envelope დაშიფვრა: KEK/CMK იბრუნება უსაქმურობის გარეშე, DEK per ობიექტი/ტენანტი.
  • მეტრიკი/ალერტები ხელმოწერისთვის, JWKS, მიმოხილვები; დაშბორდები 'kid' -დოლი.
  • ინციდენტების ფლეიბუკი (კომპრომისი) და რეგულარული წვრთნები.
  • საკანცელარიო ტესტები და ვალიდაცია ახალი კლავიშებით/SA.

19) TL; DR

შეინახეთ გასაღებები KMS/HSM- ში, გააფორმეთ JWT 'kid' - ით და გამოაქვეყნეთ JWKS. აკონტროლეთ გასაღებები და სერთიფიკატები გადახურვით, დააკვირდით 'kid' - ის შესაბამისობის წილს. Refresh - rotate-on-use და მოკლე 'exp'; კრიტიკული ოპერაციებისთვის - PoP/DPoP და mTLS. მონაცემთა მისაღებად, გამოიყენეთ KEK როტაციით envelope დაშიფვრა. დანერგეთ მეტრიკები/ალერტები, ინციდენტების პლეიბუსები და რეგულარული კანარის როტაციები.

Contact

დაგვიკავშირდით

დაგვიკავშირდით ნებისმიერი კითხვის ან მხარდაჭერისთვის.ჩვენ ყოველთვის მზად ვართ დაგეხმაროთ!

Telegram
@Gamble_GC
ინტეგრაციის დაწყება

Email — სავალდებულოა. Telegram ან WhatsApp — სურვილისამებრ.

თქვენი სახელი არასავალდებულო
Email არასავალდებულო
თემა არასავალდებულო
შეტყობინება არასავალდებულო
Telegram არასავალდებულო
@
თუ მიუთითებთ Telegram-ს — ვუპასუხებთ იქაც, დამატებით Email-ზე.
WhatsApp არასავალდებულო
ფორმატი: ქვეყნის კოდი და ნომერი (მაგალითად, +995XXXXXXXXX).

ღილაკზე დაჭერით თქვენ ეთანხმებით თქვენი მონაცემების დამუშავებას.