API անվտանգությունը և հոսանքները
Live ռեզյումե
API-ի անվտանգությունը ինտեգրման մեխանիզմների, հեղինակային իրավունքի, կրիպտոգրաֆիկ պաշտպանության, anti-չարաշահման և դիտարկման ամբողջությունն է, որն ապահովում է, որ հարցումը կատարում է սպասվող սուբյեկտ սպասվող ռեսուրսի համար սպասվող համատեքստում։ Հիմնական արտեֆակտը ցնցումն է (կամ հարցման ստորագրությունը), որը ապացուցում է զանգի իրավունքը։ Լավ ճարտարապետությունը հիմնված է կարճատև հոսանքների վրա, հստակ կատակներ, նվազագույն արտոնություններ, պաշտպանություն խոհարարներից, rate limiting և վիրահատական ընթացակարգերից (ռոտացիաներ, աուդիտ, միջադեպեր)։
Ռուսական API մոդելներ. Երբ և ինչ ընտրել
API բանալին (ստատիկ գաղտնիք)
Պարզ է B2B ինտեգրման և ցածր դատարանների համար։ Չի կրում կոնտեքստը, պահանջում է պահեստավորում միգրանցների կողմից։
Օգտագործեք միայն IP/ASN allow-list, ֆիքսված քվոտաներ, կարճ TTL և պարտատոմսեր։
OAuth 2. 1 / OIDC
Օգտագործողի և ինտեգրման համար ստանդարտ ՝ www.token (հակիրճ) + refresh token (ռոտացիա) + սկուտեր։
Public հաճախորդները 'PKCE-ից; wwww.idential հաճախորդները հաճախորդի գաղտնիքով/mTRC-ով։
Client Credentials (m2m)
Մեքենան նկարագրում է մեքենան 'wwww.token ծառայությունների համար խիստ տեղադրված կոշիկների և audience-ի համար, հաճախ առանց refresh (նորից ստանալը)։
MTSA (փոխադարձ TLS)
Այն կապում է ինքնությունը միգրանցների հետ։ Կատարյալ է բարձր ռիսկային կամ երկրորդային ինտեգրիաների համար (PoP վերևում TFC)։
Այն կարող է համակցվել OAuth-ի հետ (հոսանքները միայն mTRC հաճախորդներով)։
Հարցումների ստորագրությունները (HMAC/EddDSA)
Երբ անհրաժեշտ է անկախ PoP տրանսպորտից 'ստորագրության վերնագիր, timestamp և nonce։ Հարմար է ուեբհուկի և օֆլինի ստուգման համար։
Մոսկվան և հոսանքների տեսակները
JWT (JWS, ստորագրված)
Ինքնաբուխ, ստուգվում են տեղական; պարտադիր «iss», «sub», «aud», «exp», «iat», «jti», «scope»։
Ռիսկը ավելի բարդ է 'օգտագործեք կարճ TTL (5-15 րոպե) + արձագանքված «jti» ցուցակը միջադեպերի ժամանակ։
JWE (կոդավորված JWT)
Անհրաժեշտ է, եթե payload զգայուն (PII)։ Արժեքը բարձր է բարդությունից և ծախսերից։
Reference tokens
Անթույլատրելի ցուցանիշները ստուգվում են introsport-ի միջոցով Authorization Server-ի միջոցով, ավելի հեշտ է հղում/կենտրոնացում։
PoP/DPoP
Կապումը ցնցված է հաճախորդի բանալին կամ TRC նստաշրջանին, նվազեցնում է գողացված հոսանքի արժեքը։
Հոսանքի պարունակությունը նվազագույն է
Առաջարկվող կլեյմները (JWT)
"iss" (issuer), "sub" (wwww.ject), "aud" (նպատակային համակարգ/ռեսուրս), "exp" (ժամանակ), "iat", "nbf" (opti ")," jti "։
«scope »/« permissions» (նվազագույն անհրաժեշտ), «tenae» (բազմաբնույթ), «device _ compliance »/« amr» (մեթոդ), «ip »/« asn» (եթե կիրառելի է քաղաքականության համար)։
Կանոնները
Կարճ TTL-ի համար (5-15 րոպե), refresh-12-48 ժամ (պտտվող ռոտացիայի հետ)։
Լսարանը («aud») խիստ կոնկրետ ռեսուրս է, հակառակ դեպքում «վերաօգտագործելի» է։
Սկոպները գործողություն և օբյեկտ են (օրինակ 'payments: withdrance։ read`).
Չափը 382-4 KB է վերնագրերի և մետաղների համար։ հակառակ դեպքում հնարավոր են խնդիրներ խաղախաղերի հետ։
Հեղինակային իրավունքի և քաղաքականության մասին
RBAC + ABAC 'դերը + ենթատեքստը (կազմակերպություն, գեո, ռիսկ, սարքի վիճակը)։
PEP/PDP 'հոսանքի ստուգումը և API դարպասի/2019 (Envoy/OPA) որոշումը մինչև ծրագիրը։
Կառավարական կանոնները 'պահել Git-ում, անցնել policy-tes.ru CI-ում։
Ռեգոյի օրինակը (պարզեցված)
rego package policy. withdraw
default allow = false
allow {
input. token. aud == "wallet-api"
input. token. scope[_] == "payments:withdraw. create"
input. device. compliant == true input. risk. score < 70
}
Հարցումների ստորագրությունը (HMAC) և anti-replay
Երբ անհրաժեշտ է 'webhuks, առանց OAuth-ի, կրիտիկական վիրահատությունների կրկնակի ստուգում։
Վերնագրերի սխեման (օրինակ)
X-Client-Id: <id>
X-Timestamp: 2025-11-05T13:20:10Z
X-Nonce: 4d1f...a2
X-Signature: base64(HMAC_SHA256(secret, method + "\n" + path + "\n" + sha256(body) + "\n" + timestamp + "\n" + nonce))
Կանոնները
Շեղել հարցումները ժամանակի ռասինխրոնի հետ> 36300 վ։
Nonce պահել 5-15 րոպե և չընդունել կրկնությունները (replay-cash)։
Ստորագրեք հարցման կանոնականացված ներկայացումը (մեթոդ, ճանապարհ, query, մարմնի հեշ)։
Idempotention և գործարքային պաշտպանություն
Idempotency-Key-ը ապամոնտաժման/վճարման/ստեղծման վիրահատությունների համար 'նույն բանալին, որը համապատասխանում է նույն ազդեցությանը։
Ստեղնաշարի կյանքի ժամանակահատվածը բիզնես-թայմաուտի կանոնավոր ժամանակն է (սովորաբար 24-72 ժամ)։
Տրամաբանությունը սերվերի կողմում 'համեմատել հարցման պարամետրերը նախկինում նշված բանալին։
Զննարկիչ և բջջային հաճախորդներ
PKCE-ը պարտադիր է (public հաճախորդներ)։
Refresh-tocen զննարկչի մեջ 'խուսափել; Եթե ձեզ հարկավոր է ROTATION + արձագանքը խոհարարին (replay-մանկություն)։
Պահեստավորում ՝ session storage> wwww.al storage; ավելի լավ է հոսանքի համար պատասխանատու է backend for frontend (BFF)։
SameSite, Secure, HttpOnly для cookie; SYS-ը ակնհայտ allow-lis.ru, վերնագրեր և մեթոդներ են։ www.flight-keshing ապահով։
m2m և բարձրորակ կոմպոզիցիաներ
MTSA + OAuth2 Client Credentials-ը սկուտեղներով և «aud»։
IP/ASN allow-list խաղացողի վրա։
PoP/DPoP կամ HMAC ստորագրությունները TLS-ի վերևում կրիտիկական վիրահատությունների համար։
Քվոտաներ և rate limits կազմակերպության/հաճախորդի/բանալին։
Հավատարմագրում, հետ կանչեք և արձագանքեք միջադեպերին
Գաղտնիքների վերացումը և ռուսական ստորագրությունները (JWKS) 'ժամանակացույցի վրա + հարկադիր պատահականության ժամանակ։
Dj-key rollout: Հրատարակեք նոր ռուսական զույգ նախօրոք (kid2), ստորագրեք նրա հոսանքները, պահեք հին (kid1) վալիդացիայի համար մինչև TTL սպառումը։
Refresh-rotation: refresh-ի յուրաքանչյուր փոխանակում նոր հոսանք է, հինը անմիջապես դառնում է անվավեր։ խոհարարը փոխզիջման ազդանշան է։
Revocation: JWT-ի համար 'կարճ ժամանակով հետ կանչված «jti» ցուցակները։ reference toxens-ը AS-ում ռուսական արգելափակումն է։
Break-glass-ի սցենարները 'ժամանակավոր ստատիկ կրեդները նվազագույն իրավունքներով և կոշտ TTL-ով, գրեք ամսագրում։
Rate limiting, bot-պաշտպանություն և պաշտպանություն ընդհատումից
Երեք շերտավոր լիմիտներ ՝ per-key/per-IP/per-կազմակերպություն։
Burst + sustained: token-bak/սայթաքող պատուհան։
Բարդ ստուգումներ ՝ device fingerprint, վարքագծային ազդանշաններ, geo/ASN անոմալիաներ, CAPTCHA միայն UI-ի համար։
Nokout/slowdown-ը ստորագրության/NMAS-ի տեղափոխման և մրցույթի անհաջող փորձերի ժամանակ։
Տրամաբանություն, չափումներ և SLO
Լոգարանների նվազագույն հավաքածուն ՝ «request _ id», «client _ id», «sub», «aud», «scope», «decision», «reason», «jti», «ip», «asn», «latency», «delta _ state»։
Մետրիկները
Տոկենի (%) հաջողությունը, p95 վերականգնման ժամանակը։
Replay-շեղումների հաճախականությունը, Idempotency-Key կրկնօրինակները։
PoP/DPoP/mTSA հարցումների մասը։
«Aud/scope» սխալները, որոնք ավարտեցին «exp», ժամանակի տեղաշարժերը (NTP)։
SLO (օրինակներ)
Auth/AS 3599 հասանելիությունը։ 95 %/մես; p95 introspection ≤ 50 мс.
Զրոյական հոսանքները TTL <60 c երկարությամբ (պաշտպանիչ մետրիկ)։
Ավելի քան 0։ 1% սխալներ «aud/scope» օրական (ինտեգրման որակը)։
Միգրացիոն օրինակներ
Envoy 'JWT ստուգում և audience
yaml http_filters:
- name: envoy. filters. http. jwt_authn typed_config:
providers:
as:
issuer: https://auth. example. com/
audiences: ["wallet-api"]
remote_jwks:
http_uri:
uri: https://auth. example. com/.well-known/jwks. json cluster: jwks_cluster cache_duration: 600s rules:
- match: { prefix: "/v1/withdraw" }
requires:
provider_and_audiences:
provider_name: as audiences: ["wallet-api"]
NGINX: mTLS к backend
nginx proxy_ssl_server_name on;
proxy_ssl_name wallet. internal;
proxy_ssl_certificate /etc/nginx/mtls/client. crt;
proxy_ssl_certificate_key /etc/nginx/mtls/client. key;
proxy_ssl_trusted_certificate /etc/nginx/mtls/ca. crt;
proxy_ssl_verify on;
proxy_ssl_verify_depth 2;
Ստորագրության վերնագրի օրինակ (webhuks)
X-Signature: t=1730803210,n=ac12...,s=base64(HMAC_SHA256(secret, "POST\n/webhook\nsha256(body)\n1730803210\nac12..."))
Սերվերը մերժում է, եթե «t» -ը 300-ից բարձր է, «n» -ը արդեն հանդիպել է, կամ «s» -ը չի ծեծում։
Տվյալների պաշտպանությունը և գաղտնիությունը
Նվազագույնի հասցրեք կլեյմերը (հատկապես PII) և կյանքի ժամանակահատվածը։
Ծածկագրեք զգայուն կլեյմերը (JWE) երրորդ կողմի ինտեգրման համար։
Drok/DLP լոգոներում 'մի տրամաբանեք մարմինները PAN/PII-ից, հոսանքները միայն' kid '/դրոշներ, գաղտնիք չէ։
Տիպիկ սխալներ
Երկար բազմապատկող մետաղադրամներ և «հավերժական» refresh։
«aud »/« scope» -ի բացակայությունը բազմաբնույթ է։
Webhuks ստորագրությունը առանց "timestamp '/" nonce"։
JWT-ի ստուգումը միայն խմբագրության մեջ է, ոչ թե խաղացողի վրա (PEP)։
Միգրացիայի բացակայությունը և dox-key rollout-ը։
MSS «» և թույլատրված անապահով մեթոդներ առանց վերնագրերի վերահսկման։
Հոսանքների պահպանումը 'www.alStorage' առանց BFF-ի։
Իրականացման քարտեզը
1. API-ի և դասակարգման (հանրային/գործընկեր/ներքին, զգայունություն)։
2. AuthN մոդելի ընտրությունը 'OAuth2/OIDC օգտագործողների, mTSA + Client Credentials/HMAC-ի համար m2m-ի համար։
3. Տոկենները ՝ կարճ TTL, խիստ «aud», կարճ, DPoP/PoP կրիտիկական վիրահատությունների համար։
4. PEP խաղացողի վրա 'JWT, ստորագրություններ և rate limits մինչև ծրագիրը։
5. Anti-replay-ը և գաղափարախոսությունը ՝ timestamp/nonce/Idempotency-Key։
6. Ռոտացիաները և JWKS: dj-key, ավտոմատիզացիան և ալերտինգը։
7. Դիտարկումը 'չափումներ/SLO, հասանելիության ամսագրեր, UEBA ազդանշաններ։
8. Ուսուցումները 'ստորագրման ստեղնը, ռեֆրեսի արտահոսքը, քվոտաների ծանրաբեռնվածությունը։
Հատուկ iGaming/fintech
Վճարումներ/վճարումներ ՝ միայն mTSA + PoP/HMAC, խիստ կոշիկներ («withdr.ru»)։ create '), idempotency-ը պարտավոր է։
Գործընկերները (PMS/բովանդակության պրովայդերներ): per-partner բանալիներ/հավաստագրեր, IP/ASN allow-list, առանձին քվոտաներ և dashbords։
GDPR/PCI DSS-ը 'քլեյմների նվազեցումը, PII-ի արգելքը երրորդ կողմի հոսքերում, զգայուն ռեսուրսների հասանելիության տրամաբանությունը, որը համապատասխանում է ակնարկին։
Anti-abuse: վարքագծային լիմիտներ, գեո վերահսկողություն, պաշտպանություն բոնուս-աբուզից API մակարդակում։
FAQ
JWT կամ reference token?
JWT-ը արտադրողականություն և ինքնավարություն է։ reference-ը կենտրոնացված արձագանք և պարզություն է։ Հաճախ հիբրիդ 'արտաքին' JWT, ներքին 'reference։
Արդյո՞ ք JWE-ն անհրաժեշտ է։
Միայն եթե payload-ը պարունակում է PII/գաղտնիքները։ Հակառակ դեպքում, JWS-ը նվազագույն կլեյմերով։
Կարո՞ ղ եք ապրել API-բաների վրա։
Այո, բայց միայն կարճ TTL, խիստ քվոտաների, IP-allow-list-ի և հարցումների ստորագրությամբ։ Օգտագործողների համար - OAuth/OIDC։
DPoP/PoP։
Միշտ չէ, որ։ Բայց high-risk վիրահատությունների համար (վճարումներ, եզրակացություններ) չափազանց ցանկալի է։
Արդյունքը
API-ի հուսալի անվտանգությունը կառուցվում է կարճ հոսանքների, ճշգրիտ սկուտերների և լսարանների վրա, որոնք պաշտպանված են ալիքներով (TFC/mTRK), հարցումների ստորագրությունները և խիստ հակատիպային պաշտպանության ստորագրությունները, որոնք ամրացված են սահմաններով և դիտարկմամբ։ Ավելացրեք ավտոմատացված ռոտացիաները, dig-key rollout-ը և քաղաքական վերահսկողությունը խաղախաղերի վրա, և ձեր API-ն կդառնա կայուն արտահոսքի, խոհարարների և չարաշահումների համար, պահպանելով բարձր արտադրողականությունը և կառավարումը։