GH GambleHub

API güvenliği ve belirteçleri

Kısa Özet

API güvenliği, bir isteğin beklenen bir varlığı beklenen bir kaynağa beklenen bir bağlamda yürütmesini sağlayan bir kimlik doğrulama, yetkilendirme, kriptografik koruma, kötüye kullanım önleme ve gözlemlenebilirlik mekanizmaları koleksiyonudur. Anahtar eser, arama hakkını kanıtlayan bir belirteçtir (veya imza talep eder). İyi bir mimari, kısa ömürlü belirteçlere, açık kapsamlara, minimum ayrıcalıklara, yeniden oynatma korumasına, hız sınırlamasına ve operasyonel prosedürlere (rotasyonlar, denetimler, olaylar) dayanır.

API Kimlik Doğrulama Modelleri - Ne Zaman ve Ne Seçilmeli

API anahtarı (statik gizli)

B2B entegrasyonları ve düşük riskli senaryolar için basittir. Bağlam taşımaz, servis tarafında depolama gerektirir.
Sadece IP/ASN izin listesi, sabit kotalar, kısa TTL ve rotasyonlarla kullanın.

OAuth 2. 1/OIDC

Kullanıcı ve ortak entegrasyonları için standart: erişim belirteci (kısa süreli) + yenileme belirteci (rotasyon) + kapsamları.
Kamu müşterileri - PKCE ile; Gizli müşteriler - istemci sırrı/mTLS ile.

Müşteri Kimlik Bilgileri (m2m)

Mashina - mashina: Kesin olarak tanımlanmış kapsamlar ve kitle üzerindeki hizmetler için erişim belirteci, genellikle yenileme olmadan (tekrar alın).

mTLS (karşılıklı TLS)

Kimliği kanala bağlar. Yüksek riskli veya ödeme entegrasyonu için idealdir (TLS üzerinden PoP).
OAuth ile birleştirilebilir (yalnızca mTLS istemcileri için belirteçler).

İstek İmzaları (HMAC/EdDSA)

Aktarımdan bağımsız bir PoP'ye ihtiyacınız olduğunda: imza başlığı, zaman damgası ve nonce. Webhooks ve çevrimdışı doğrulama için uygundur.

Token formatları ve türleri

JWT (JWS, imzalı)

Kendi kendine yeterli, yerel olarak kontrol edilir; Zorunlu 'iss', 'sub', 'aud', 'exp', 'iat', 'jti', 'scope'.
Risk - hatırlama daha zor: Olaylarda kısa TTL (5-15 dk) + geri çağrılan 'jti' listesi kullanın.

JWE (şifreli JWT)

Yük duyarlı ise gereklidir (PII). Maliyet - daha yüksek karmaşıklık ve genel gider.

Referans belirteçleri

Opak tanımlayıcılar, Authorization Server tarafından iç gözlem yoluyla kontrol edilir - daha kolay hatırlama/merkezileştirme.

PoP/DPoP

Bir belirtecin bir istemci anahtarına veya bir TLS oturumuna bağlanması, çalınan belirtecin değerini azaltır.

Token İçeriği: Minimum Yeterli

Önerilen pullar (JWT):
  • 'iss' (ihraççı), 'sub' (konu), 'aud' (hedef sistem/kaynak), 'exp' (terim), 'iat', 'nbf' (isteğe bağlı), 'jti'.
  • 'scope'/' permissions' (minimum gerekli), 'tenant' (çoklu kiracı için), 'device _ compliant'/' amr' (kimlik doğrulama yöntemi), 'ip'/' asn' (ilkeye uygunsa).
Kurallar:
  • Erişim için kısa TTL (5-15 dakika), yenileme - 12-48 saat (döner rotasyonlu).
  • İzleyici ('aud') kesinlikle spesifik bir kaynaktır, aksi takdirde belirteç "yeniden kullanılabilir'dir.
  • Kapsamlar - eylem ve nesne (örneğin, 'ödemeler: çekilme. Oku ').
  • Boyut - Başlıklar ve proxy'ler için ≤ 2-4 KB; Aksi takdirde ağ geçitleri ile ilgili sorunlar olabilir.

Yetkilendirme ve Politikalar

RBAC + ABAC: rol + bağlam (organizasyon, coğrafi, risk, cihaz durumu).
Uygulama öncesinde API Gateway/Proxy (Envoy/OPA) üzerinde PEP/PDP Token Doğrulama ve Karar.
Bildirimsel kurallar: Git'te mağaza, CI'da politika testlerini geçin.

Rego örneği (basitleştirilmiş):
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
}

İstek İmzalama (HMAC) ve anti-replay

Gerektiğinde: webhooks, OAuth olmadan entegrasyon, kritik işlemleri iki kez kontrol etme.

Üstbilgi şeması (örnek):

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))
Kurallar:
  • Zaman yanlış hizalama> ± 300 s ile istekleri reddedin.
  • Nonce 5-15 dakika saklayın ve tekrarları kabul etmeyin (yeniden oynatma önbelleği).
  • Kanonlaştırılmış bir sorgu görünümü imzalayın (yöntem, yol, sorgu, gövde karma).

Kimlik ve işlem koruması

Yazma/ödeme/oluşturma işlemleri için Idempotency-Key: aynı anahtar - aynı etki.
Anahtar kullanım ömrü, ≥ iş zaman aşımı süresidir (genellikle 24-72 saat).
Sunucu tarafı mantığı - Sorgu parametrelerini daha önce bu anahtar için taahhüt edilenlerle karşılaştırın.

Tarayıcı ve mobil istemciler

PKCE zorunludur (kamu müşterileri).
Tarayıcıdaki belirteci yenileyin - kaçının; Gerekirse - ROTATION + replay response (replay-detection).
Depolama: oturum depolama> yerel depolama; Daha iyisi - ön uç için arka uç (BFF) belirteçlerden sorumludur.
SameSite, Secure, HttpOnly для çerez; CORS - açık izin listeleri, başlıklar ve yöntemler; Ön kontrol önbelleğe alma güvenli.

m2m ve yüksek riskli entegrasyonlar

mTLS + İstemci Kimlik Bilgilerini kapsamlar ve 'aud'ile OAuth2.
Ağ geçidinde IP/ASN izin listesi.
Kritik işlemler için TLS üzerinden PoP/DPoP veya HMAC imzaları.
Kuruluş/müşteri/anahtar başına kotalar ve oran sınırları.

Dönüşler, geri çağırmalar ve olay yanıtı

Gizli ve imza anahtar rotasyonu (JWKS): Olay üzerine zamanlanmış + zorlanmış.
Çift anahtarlı sunum: Önceden yeni bir anahtar çifti yayınlayın (kid2), bunun için belirteçleri imzalayın, TTL tükenene kadar eski olanı (kid1) doğrulama için saklayın.
Yenileme-rotasyon: her yenileme değişimi - yeni bir belirteç, eski hemen geçersiz hale gelir; Tekrar et - uzlaşma sinyali.
İptal: JWT için - kısa bir süre için geri çağrılan 'jti' listeleri; Referans belirteçleri için - AS'de anında engelleme.
Cam kırma komut dosyaları: minimum haklara sahip geçici statik krediler ve sert TTL, günlüğe kaydedin.

Hız sınırlaması, bot koruması ve kaba kuvvet koruması

Üç katmanlı sınırlar: anahtar başına/IP başına/kuruluş başına.
Burst + sustained: token-tank/sürgülü pencere.
Karmaşık kontroller: cihaz parmak izi, davranışsal sinyaller, coğrafi/ASN anomalileri, yalnızca UI için CAPTCHA.
İmza/NMAC ve kimlik doğrulama girişimlerini yeniden müzakere ederken kilitleme/yavaşlama başarısız olur.

Günlük kaydı, metrikler ve SLO

Minimum günlük kümesi: 'request _ id', 'client _ id', 'sub', 'aud', 'scope', 'decision', 'reason', 'jti', 'ip', 'asn', 'latency', 'cota _ state'.

Metrikler:
  • Token doğrulama başarısı (%), p95 doğrulama zamanı.
  • Tekrarlama sapmalarının sıklığı, Idempotency-Key'in kopyaları.
  • PoP/DPoP/mTLS ile isteklerin yüzdesi.
  • 'aud/scope' errors, süresi dolmuş 'exp', zaman kaymaları (NTP).
SLO (örnekler):
  • Auth/AS ≥ 99 kullanılabilirliği. %95/ay; P95 iç gözlem ≤ 50 мс.
  • Prod'da TTL <60 s ile sıfır belirteçler (guard metrik).
  • 0'dan küçük. Günde %1 'aud/scope' errors (entegrasyonların kalitesi).

Yapılandırma örnekleri

Elçi: JWT ve seyirci kontrolü

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 к arka uç

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;

İmza başlığı örneği (webhooks)


X-Signature: t=1730803210,n=ac12...,s=base64(HMAC_SHA256(secret, "POST\n/webhook\nsha256(body)\n1730803210\nac12..."))

Eğer't '300 c'den büyükse,'n' zaten karşılaşmışsa veya's 'yenilmezse sunucu reddeder.

Veri koruma ve gizlilik

Ayırt edici özellikleri (özellikle PII) ve yaşam sürelerini en aza indirin.
Üçüncü taraf entegrasyonları için hassas damgaları (JWE) şifreleyin.
Günlüklerde Maske/DLP: gövdeleri PAN/PII, belirteçlerle kaydetmeyin - sadece'çocuk "/bayraklar, sırrın kendisi değil.

Yaygın hatalar

Uzun ömürlü erişim belirteçleri ve "ebedi" yenileme.
'Aud'/' scope' yokluğu - belirteçler çok amaçlıdır.
'Zaman damgası'/' nonce' olmadan webhook'ların imzası.
JWT'yi yalnızca uygulamada kontrol edin, ağ geçidinde (PEP) değil.
Döndürme ve çift anahtarlı kullanıma sunma yok.
"CORS've başlık kontrolü olmadan güvensiz yöntemlere izin verdi.
Belirteçleri BFF olmadan 'yerel Depolama'da saklamak.

Uygulama Yol Haritası

1. API envanteri ve sınıflandırması (public/partner/internal, sensitivity).
2. AuthN model seçimi: Özel için OAuth2/OIDC, mTLS + İstemci Kimlik Bilgileri/m2m için HMAC.
3. Belirteçler: kısa TTL, sıkı 'aud', kapsamlar, kritik işlemler için DPoP/PoP.
4. Ağ geçitlerinde PEP: JWT doğrulama, imzalar ve uygulamaya oran sınırları.
5. Anti-replay ve idempotency: zaman damgası/nonce/Idempotency-Key.
6. Rotasyonlar ve JWKS: çift anahtar, otomasyon ve uyarı.
7. Gözlemlenebilirlik: metrikler/SLO, erişim günlükleri, UEBA sinyalleri.
8. Egzersizler: imza anahtarı, yenileme sızıntısı, kota aşırı yüklenmesi.

İGaming/fintech için Özgüllük

Ödemeler/ödemeler: Yalnızca mTLS + PoP/HMAC, sıkı kapsamlar ('çekilme. create '), idempotency gereklidir.
Ortaklar (PSP/içerik sağlayıcıları): Ortak başına anahtarlar/sertifikalar, IP/ASN izin listesi, bireysel kotalar ve panolar.
GDPR/PCI DSS: damgaları en aza indirmek, üçüncü taraf belirteçlerde PII'yi yasaklamak, hassas kaynaklara erişimi günlüğe kaydetmek, düzenli erişim incelemesi.
Kötüye kullanımı önleme: davranışsal sınırlar, coğrafi kontrol, API düzeyinde bonus kötüye kullanımına karşı koruma.

SSS

JWT veya referans belirteç?
JWT - performans ve özerklik; Referans - merkezi geri bildirim ve olay yanıtının basitliği. Genellikle bir melez: harici - JWT, dahili - referans.

JWE gerekli mi?
Yalnızca yük PII/sırlar içeriyorsa. Aksi takdirde - Minimum işaretlerle JWS.

API anahtarlarıyla yaşayabilir miyim?
Evet, ama sadece kısa TTL, sıkı kotalar, IP-allow-list ve istek imzalama ile. Kullanıcılar için OAuth/OIDC tercih edilir.

DPoP/PoP zorunlu mu?
Her zaman değil. Ancak yüksek riskli operasyonlar için (ödemeler, sonuçlar) oldukça arzu edilir.

Toplam

Güvenilir API güvenliği, kısa ömürlü belirteçler, doğru kapsamlar ve kitleler, güvenli kanallar (TLS/mTLS), istek imzalama ve katı yeniden oynatma önleme koruması, sınırlar ve gözlemlenebilirlik ile geliştirilmiştir. Ağ geçitlerine otomatik döndürme, çift anahtarlı kullanıma sunma ve siyasi kontrol ekleyin; API'niz yüksek performans ve yönetilebilirliği korurken sızıntılara, tekrarlara ve kötüye kullanıma karşı dayanıklı olacaktır.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.