Mobil Tehdit
Mobil Tehdit, Identity Intelligence'ın ayrı bir native yüzeyidir. Web snapshot bir tarayıcı oturumunu parmak izler; Mobil Tehdit ise bir native mobil uygulamayı değerlendirir: donanım-destekli attestation'ı, uygulama-klon tespitini ve araya-girme (MITM) zekâsını aynı risk snapshot'ında, mobile* alanları üzerinden birleştirir. Bu sinyaller özel bir native mobil SDK ile üretilir — web SDK bunları üretmez.
Mobil Tehdit bir kanıt sağlayıcıdır (evidence provider). Her değerlendirme bir sınıflandırma, bir güven değeri ve bir dizi bulgu döndürür — kendi başına bloklamaz. Verdict'i kendi mantığınıza besler, kararı siz verirsiniz.
Native mobil SDK gerekir. Attestation ve araya-girme sinyalleri, yalnız bir native uygulamanın erişebildiği cihaz-düzeyi API'lerinden gelir. Beyan edilmiş ama doğrulanabilir token'ı olmayan bir attestation asla güvenilir sayılmaz — açık bir "doğrulanamaz" sonucu döner, geçiş değil.
Nasıl çalışır
Native SDK'yı gömün
Lunixi mobil SDK'sını Android ve/veya iOS uygulamanıza entegre edin. SDK, sunucu değerlendirmesinin ihtiyaç duyduğu donanım attestation'ını ve cihaz-bütünlüğü telemetrisini toplar.
Uygulamayı kaydedin (bir kez)
Uygulama ID'lerini, minimum SDK/uygulama sürümlerini ve attestation gereksinimlerini mobil uygulama kayıt defterinde tanımlayın. Ham bir attestation'ı bir güven kararına dönüştüren şey bu kayıttır — kayıtlı olmayan bir uygulama raporlanır, güvenilir sayılmaz.
Bir oturumu değerlendirin (sunucu)
Backend'inizden POST /identity/mobile-threat/evaluate çağırın; SDK'nın sağladığı attestation'ı ve iş bağlamını gönderin. mobile* sınıflandırma alanlarını taşıyan bir snapshot alırsınız.
Hassas bir aksiyonu bağlayın (opsiyonel)
Yüksek-güvenceli bir aksiyon için — para transferi, alıcı ekleme — geçen bir değerlendirmenin ardından tek kullanımlık bir trusted action token üretin ve aksiyon endpoint'inde tüketin; böylece aksiyonun değerlendirilen risk duruşu altında çalıştığını kanıtlarsınız.
Attestation kapsamı
| Platform | Mekanizma | Durum |
|---|---|---|
| Android | Play Integrity — gerçek, değiştirilmemiş bir uygulama ve cihaza dair donanım-destekli attestation | Canlı |
| iOS | App Attest — Apple tarafından tasdik edilen bir uygulama anahtarı | Uygulama başına enrollment gerektirir (App Attest anahtarını kaydedin) |
| iOS | DeviceCheck — Apple cihaz-düzeyi bit deposu | Ortamda DeviceCheck kimlik bilgileri gerektirir |
Play Integrity, Android uygulaması kaydedilir kaydedilmez çalışır. iOS mekanizmaları yapılandırılabilir: App Attest, uygulamanın attestation anahtarının app-attest/register-key ile kaydedilmesini; DeviceCheck ise Apple kimlik bilgilerinin sunucu tarafında yapılandırılmasını ister. O ana dek iOS attestation, sizin adına fail-closed olmadan "doğrulanamaz" olarak raporlanır.
App Attest enrollment (iOS)
App Attest, Apple'ın kefil olduğu uygulama-başına kriptografik bir anahtarı bağlar. Backend'inizden iki adımda kaydedin:
POST /identity/mobile-threat/app-attest/bootstrap-challenge— SDK'ya verilecek tek kullanımlık bir challenge alın.POST /identity/mobile-threat/app-attest/register-key— SDK'nın ürettiği, Apple-tasdikli anahtarı uygulamanıza karşı kaydedin.
Bir anahtar kaydedildikten sonra, o uygulama için sonraki evaluate çağrıları App Attest assertion'larını doğrulayabilir.
Klon & araya-girme zekâsı
Attestation'ın ötesinde, değerlendirme uygulamanın nasıl çalıştırıldığını ve trafiğinin nasıl taşındığını raporlar:
| Alan | Ne tespit eder |
|---|---|
| Klon zekâsı | Uygulamanın dual-space / uygulama-klonlama araçları altında ya da bir Android work profile içinde çalışması — tek cihazda tek uygulamanın birden çok örneği |
| MITM zekâsı | Trafiğin manuel proxy veya VPN transport üzerinden taşınması ya da özel bir private DNS ile çözülmesi — araya-girmeyi önceleyen transport şekilleri |
İstek
POST /identity/mobile-threat/evaluate — sunucu tarafı, Authorization: Bearer <secret key>.
curl https://api-gateway.lunixi.com/api/v1/identity/mobile-threat/evaluate \
-H "Authorization: Bearer at_live_5f3e2b1a..." \
-H "Content-Type: application/json" \
-d '{
"subjectType": "customer",
"subjectId": "cus_8f2a9c",
"productContext": "money_transfer",
"action": {
"actionType": "transfer_submit",
"beneficiaryHash": "bnf_abc",
"challenge": "nonce_123"
},
"issueTrustedActionToken": true,
"device": { "...": "native SDK attestation + bütünlük telemetrisi" }
}'POST /identity/mobile-threat/simulate aynı değerlendirme hattını varsayımsal bir girdiye karşı çalıştırır; böylece belirli bir attestation durumunun hangi sınıflandırmaya karşılık geldiğini — canlı bir karar kaydetmeden — prova edebilirsiniz. Yaşam-döngüsü bağlamını POST /identity/mobile-threat/timeline-event ile akıtın.
Snapshot
Değerlendirme aynı gateway zarfını döndürür ({ success, message, code, data, meta }); data, paylaşılan identity alanlarının üstüne mobil alanları taşıyan risk snapshot'ıdır.
{
"identityRiskLevel": "medium",
"riskScore": 58,
"confidenceScore": 0.88,
"mobilePlatform": "android",
"mobileAppId": "io.example.app",
"mobileAppTrusted": true,
"mobileIntegrityClassification": "genuine",
"mobileIntegrityConfidence": 0.93,
"mobilePolicyStatus": "pass",
"reasonCodes": ["private_dns_detected"],
"findings": [
{ "code": "private_dns_detected", "severity": "medium", "scoreDelta": 14, "source": "mobile" }
]
}Sinyaller
| Alan | Size ne söyler |
|---|---|
mobileIntegrityClassification | Uygulama/cihaz için bütünlük verdict'i (ör. genuine vs tampered vs doğrulanamaz) |
mobileIntegrityConfidence | O sınıflandırmaya duyulan güven |
mobilePolicyStatus | Değerlendirmenin, kayıt defterinde bu uygulama için tanımlanan policy'yi karşılayıp karşılamadığı |
mobileAppTrusted | Uygulamanın kayıtlı, güvenilir bir uygulama girdisine çözülüp çözülmediği |
mobilePlatform | android ya da ios |
mobileAppId / mobileAppVersion | Beyan edilen uygulama tanımlayıcısı ve sürümü |
Kanonik verdict identityRiskLevel'dır (clean | low | medium | high | critical) — Identity'nin kendi kanıt-derece değerlendirmesi, bir ödeme ya da fraud aksiyonu değil. Bkz. Risk Snapshot.
Trusted action token
Geçen bir değerlendirmeyi tek bir hassas aksiyona bağlayın; böylece aksiyon farklı, doğrulanmamış bir duruş altında çalışamaz:
Üretin
Geçen bir evaluate sonrası POST /identity/mobile-threat/trusted-action-token çağırın ve aksiyona kapsamlanmış tek kullanımlık bir token basın.
Tüketin
Aksiyon endpoint'inde POST /identity/mobile-threat/trusted-action-token/consume ile token'ı gönderin. Tek kullanımlıktır — tüketmek, aksiyonun değerlendirilen risk duruşu altında çalıştığını kanıtlar.
Kararları okuma
Her değerlendirme kaydedilir, merchant-scoped'tur ve sorgulanabilir:
GET /identity/mobile-threat/decisions— son mobil değerlendirmeler.GET /identity/mobile-threat/decisions/:id— tek bir değerlendirmenin tamamı.GET /identity/mobile-threat/trace/:traceId/decisions— belirli bir trace'e bağlı mobil kararlar.
Mobil uygulama kayıt defteri
Attestation'ı anlamlı kılan şey kayıt defteridir — hangi uygulamalara ve hangi standarda güvendiğinizi tanımlar:
GET /identity/mobile-apps— kayıtlı uygulamalarınızı listeleyin.POST /identity/mobile-apps— bir uygulama ID'si, minimum SDK/uygulama sürümü ve attestation gereksinimi tanımlayın.PATCH /identity/mobile-apps/:id— bir uygulama girdisini güncelleyin.
Kayıtlı olmayan bir uygulama yine de değerlendirilebilir ama mobileAppTrusted: false olarak çözülür — attestation raporlanır, güvenilir sayılmaz.
Notlar
- Native SDK gerekir. Bu sinyaller yalnız native mobil SDK üzerinden vardır — bir web oturumunda beklemeyin.
- Beyan ≠ doğrulanmış. Eksik ya da geçersiz bir attestation token'ı "doğrulanamaz" sonucu verir, asla örtük geçiş değil.
- Platform başına yapılandırılabilir. Android Play Integrity kayıt sonrası canlıdır; iOS App Attest anahtar enrollment'ı, DeviceCheck ise ortam kimlik bilgileri gerektirir.
Sonraki adımlar
- Risk Snapshot — tam alan referansı
- POS / Terminal Tehdit — mağaza-içi B2B yüzeyi
- Sunucu API & Sorgular — analizleri okuma ve sorgulama
- Identity Assertion & JWKS — bir kararın non-repudiable doğrulaması