Play Integrity API'ye genel bakış

Play Integrity API, etkileşimlerin ve sunucu isteklerinin orijinal Android cihazda çalışan orijinal uygulama ikili programınızdan gelip gelmediğini kontrol etmenize yardımcı olur. Uygulamanızın arka uç sunucusu, değiştirilmiş uygulama sürümleri ve güvenilir olmayan ortamlardan gelenler gibi riskli olabilecek sahte etkileşimleri tespit ederek saldırıları önlemek ve kötüye kullanımı azaltmak için uygun işlemleri gerçekleştirerek gereken yanıtı verebilir.

Uygulamanız veya oyununuz, Google Play Store'un yüklü olduğu ve Google Play Hizmetleri tarafından desteklenen bir Android cihazda kullanıldığında Play Integrity API, aşağıdakilerle etkileşimde bulunup bulunmadığınızı belirlemenize yardımcı olan bir yanıt sağlar:

  • Orijinal uygulama ikili programı: Google Play tarafından tanınan değiştirilmemiş ikili programınızla etkileşim kurup kurmadığınızı belirleyin.
  • Orijinal Play yüklemesi: Mevcut kullanıcı hesabının lisanslı olup olmadığı, yani kullanıcının uygulamayı veya oyunu Google Play'den yükleyerek ya da ödeme yaparak edinip edinmediğini belirleyin.
  • Orijinal Android cihaz: Uygulamanızın çalıştığı cihazın, Google Play Hizmetleri (veya PC Üzerinde Google Play Games'in orijinal bir örneği) tarafından desteklenen orijinal bir Android cihaz olup olmadığını belirleyin.

Ayrıca Play Integrity API yanıtınızda ortam hakkında bilgi almayı da seçebilirsiniz. Örneğin:

  • Uygulama erişim riski: Ekranı kaydetmek, yer paylaşımları göstermek veya cihazı kontrol etmek için kullanılabilecek uygulamaların çalışıp çalışmadığını belirleyin.
  • Bilinen kötü amaçlı yazılımlardan kaynaklanan risk: Google Play Protect'in açık olup olmadığını ve cihazda riskli ya da tehlikeli uygulamalar bulup bulmadığını belirleyin.

Genel Bakış

Kullanıcılar uygulamanızda bir işlem gerçekleştirdiğinde, işlemin Google Play tarafından yüklenen ve orijinal bir Android cihazda çalışan orijinal uygulama ikili programınızda gerçekleşip gerçekleşmediğini kontrol etmek için Play Integrity API'yi çağırabilirsiniz. Ayrıca, bir cihazın son zamanlarda gönderdiği isteklerin hacmi ve uygulama erişim riski kararı ile Play Protect kararı da dahil olmak üzere ortamla ilgili sinyaller gibi ek bilgileri de yanıtta etkinleştirebilirsiniz. Kararlarda bir sorun varsa uygulamanızın arka uç sunucusu; kötüye kullanım ve sahtekarlık, hatalı kullanım ve hile, yetkisiz erişim ve saldırılar gibi sorunlara karşı korunmak için ne yapılması gerektiğine karar verebilir.

Play Integrity API'ye genel bakış akışı

Güvenlikle ilgili olarak göz önünde bulundurulması gerekenler

Uygulamanızın Play Integrity API'den en iyi şekilde yararlanabilmesi için aşağıdaki önerilen uygulamaları uygulayın:

Kötüye kullanıma karşı stratejiniz olsun

Play Integrity API; kötüye kullanıma karşı tek mekanizma olarak değil, genel stratejinizin bir parçası olarak diğer sinyallerle birlikte kullanıldığında en iyi performansı gösterir. Bu API'yi, uygulamanız için uygun diğer güvenlik en iyi uygulamaları ile birlikte kullanın. Varsayılan olarak uygulamanız,tüm yüklemeler için günde toplam 10.000 istek gönderebilir. Günlük maksimum sınırınızı artırma isteğinde bulunabilirsiniz.

İşlem yapmadan önce telemetri toplayın ve kitlenizi anlayın

Uygulamanızın davranışını Play Integrity API kararlarına göre değiştirmeden önce, API'yi zorunluluk olmadan uygulayarak mevcut kitlenizle ilgili mevcut durumu anlayabilirsiniz. Mevcut yükleme tabanınızın hangi kararları döndürdüğünü öğrendikten sonra, planladığınız yaptırımın etkisini tahmin edebilir ve kötüye kullanımla mücadele stratejinizi buna göre ayarlayabilirsiniz.

Entegrasyon kararını nasıl isteyeceğinize karar verin

Play Integrity API, entegrasyon kararı istemek ve almak için iki seçenek sunar. Standart istek, klasik istek veya her iki istek türünün bir kombinasyonunu göndermiş olmanıza bakılmaksızın, bütünlük kararı yanıtı aynı biçimde döndürülür.

Standart API istekleri her uygulama veya oyun için uygundur ve kullanıcı işlemlerinin ya da sunucu isteklerinin gerçekliğini kontrol etmek için isteğe bağlı olarak gönderilebilir. Standart isteklerin gecikmesi en düşüktür (ortalama birkaç yüz milisaniye) ve kullanılabilir bir karar alma güvenilirliği yüksektir. Standart istekler, belirli saldırı türlerine karşı koruma sağlama yetkisini Google Play'e verirken akıllı cihaz üzerinde önbelleğe alma özelliğinden yararlanır.

Entegrasyon kararı talep etmenin orijinal yolu olan klasik API istekleri de kullanılabilir olmaya devam eder. Klasik isteklerin gecikmesi daha yüksektir (ortalama birkaç saniye) ve belirli saldırı türlerinin riskini azaltmaktan siz sorumlusunuz. Klasik istekler, yeni bir değerlendirme başlattığı için standart isteklerden daha fazla kullanıcı verisi ve pil kullanır. Bu nedenle, son derece hassas veya değerli bir işlemin gerçek olup olmadığını kontrol etmek için nadiren tek seferlik olarak yapılmalıdır. Klasik istek gönderip daha sonra kullanmak için isteği önbelleğe almayı düşünüyorsanız saldırı riskini azaltmak için bunun yerine standart istek göndermeniz gerekir.

Aşağıdaki tabloda, iki istek türü arasındaki temel farklar açıklanmıştır:

Standart API isteği Klasik API isteği
Gerekli minimum Android SDK sürümü Android 5.0 (API düzeyi 21) veya sonraki sürümler Android 4.4 (API düzeyi 19) veya sonraki sürümler
API ısınma şartı ✔️ (birkaç saniye)
Tipik istek gecikmesi Birkaç yüz milisaniye Birkaç saniye
Olası istek sıklığı Sık (herhangi bir işlem veya istek için talep üzerine kontrol) Nadir (en yüksek değere sahip işlemler veya en hassas istekler için tek seferlik kontrol)
Tekrar oynama ve benzer saldırılara karşı çözüm Google Play tarafından otomatik çözüm nonce alanını sunucu tarafı mantığıyla kullanma

Klasik isteklerle ilgili dikkat edilmesi gereken noktalar bölümünde daha fazla farkı içeren bir tablo görebilirsiniz.

Uygun bir zamanda bütünlük kararı isteme

Dolandırıcıların uygulamanız tarafından gerçekleştirilen bütünlük kontrolünü atlatmasını önlemek için, erişilmesine karşı korumak istediğiniz işleme veya sunucu isteğine mümkün olduğunca yakın bir zamanda uygulama erişim riski kararı talep etmeniz gerekir.

API isteklerinizin kopyalanmasını zorlaştırma

Standart API isteklerinde, müdahaleye ve benzer saldırılara karşı koruma sağlamak için kullanılan requestHash adlı bir alan bulunur. Bu alana, uygulamanızın isteklerindeki tüm alakalı değerlerin özetini eklemeniz gerekir. Uygulamanızın standart isteklerini korumak için içerik bağlama özelliğini kullanma ile ilgili talimatları uygulayın.

Klasik API isteklerinde, tekrar oynama ve müdahale saldırıları gibi belirli saldırı türlerine karşı koruma sağlamak için kullanılan nonce (bir kez sayısının kısaltması) adlı bir alan bulunur. Uygulamanızın klasik isteklerini korumak için tek seferlik rastgele sayı oluşturma ile ilgili talimatları uygulayın.

Bütünlük kararlarını önbelleğe almaktan kaçının

Bütünlük kararlarını önbelleğe almak, kötü niyetli bir kullanıcının iyi bir cihazdan alınan bir kararı başka bir ortamda kötüye kullanım amaçlı olarak yeniden kullandığı proxy kullanma riskini artırır. Yanıtları önbelleğe almak yerine, istek üzerine karar almak için standart bir API isteği gönderebilirsiniz.

Katmanlı bir yaptırım stratejiniz olmalıdır.

Play Integrity API'nin entegrasyon kararı kapsamında verilebilecek birbirinden farklı yanıtlar, kötüye kullanıma karşı çok katmanlı bir strateji geliştirmenize olanak tanır. Bunu, uygulamanızın arka uç sunucusunu her olası yanıta veya yanıt grubuna göre farklı şekilde davranacak şekilde yapılandırarak yapabilirsiniz.

Ayrıca, Play Console'dan API yanıtınızda ek cihaz etiketleri almayı etkinleştirerek yaptırım stratejinizi cihaz güvenilirliğine göre sınıflandırabilirsiniz. Her cihaz, ölçütlerini karşıladığı tüm etiketleri döndürür. Örneğin, tüm cihaz etiketlerini almayı etkinleştirdikten sonra yalnızca MEETS_BASIC_INTEGRITY döndüren bir cihaza göre MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY ve MEETS_BASIC_INTEGRITY döndüren bir cihaza güvenmeyi seçebilirsiniz. Her senaryoda sunucuya farklı yanıtlar verebilirsiniz.

Sunucunuzdan uygulamanıza çeşitli yanıtlar gönderme

Çeşitli karar sonuçlarının olması, her yanıt için sunucudan uygulamaya izin ver/reddet yanıtı göndermekten daha zordur. Örneğin, İzin ver, Sınırlı olarak izin ver, CAPTCHA tamamlandıktan sonra sınırlı olarak izin ver ve Reddet gibi bir dizi ilgili yanıt kullanabilirsiniz.

Son cihaz etkinliğini kullanarak büyük ölçekli kötüye kullanımları algılama

Çok sayıda bütünlük jetonu isteyen cihazları bulmak için Play Integrity API'deki son cihaz etkinliği özelliğini kullanın. Yüksek hacimli etkinlik gerçekleştiren kötüye kullananlar, genellikle gerçek cihazlardan geçerli doğrulama sonuçları oluşturur ve köklenmiş cihazlara ve emülatörlere yönelik saldırıları otomatikleştirmek için bunları botlara sağlar. Son cihaz etkinliği düzeyini kullanarak uygulamanızın son bir saat içinde söz konusu cihazda kaç tane doğrulama oluşturduğunu kontrol edebilirsiniz.

İşlem yapılabilir hata mesajları göster

Mümkün olduğunda kullanıcıya faydalı hata mesajları gösterin ve sorunu düzeltmek için neler yapabileceklerini (ör. yeniden denemek, internet bağlantısını etkinleştirmek veya Play Store uygulamasının güncel olup olmadığını kontrol etmek) açıklayın.

Beklenmedik sorunlar veya kesintiler için bir planınız olsun

Play durum kontrol panelinde, Play Integrity API'nin hizmet durumuyla ilgili bilgiler ve aksaklıklar ile kesintiler hakkında bilgiler gösterilir. Büyük ölçekli bir Play Integrity API kesintisi ihtimaline karşı arka uç sunucunuzun nasıl çalışmasını istediğinizi önceden planlamanız gerekir. Arka uç sunucunuzun, cihazlara özgü Android Platform Anahtar Doğrulaması anahtarlarının geri çekilmesi durumunda da çalışmaya hazır olması gerektiğini unutmayın.

End-to-end kurumsal sahtekarlık çözümlerini değerlendirin

Eksiksiz bir sahtekarlık ve bot yönetimi çözümü arayan kurumsal müşteriler, mobil cihazlar için reCAPTCHA Enterprise'ı satın alabilir. Bu çözüm, geliştiricilere sahtekarlık riski puanları sağlayan Android SDK'ları içerir. reCAPTCHA Enterprise, Play Integrity API sinyallerini otomatik olarak içerir ve bunları müşteriler için reCAPTCHA ağı ve uygulama sinyalleriyle birleştirir. Böylece, kullanıma hazır, sorunsuz ve görünmez bir sahtekarlık yönetimi çözümü sunar. Ayrıca Play Integrity API'nin kullanılamadığı Android uygulamaları için de koruma sağlayabilir.

Yüksek değerli veya hassas özelliklere erişirken riskli trafiğe itiraz etme

Erişimi tamamen reddetmek yerine, uygulamanızda veya oyununuzda Play Integrity API ile korumak için yüksek değerli veya hassas işlemleri tanımlayın. Mümkün olduğunda, yüksek değerli işlemlerin devam etmesine izin vermeden önce riskli trafiğe itiraz edin. Örneğin, uygulama erişim riski ekranı kaydedebilecek bir uygulamanın çalıştığını gösterdiğinde, kullanıcıdan korumak istediğiniz işleve devam etmeden önce ekranı kaydedebilecek uygulamaları devre dışı bırakmasını veya kaldırmasını isteyin.

Hizmet şartları ve veri güvenliği

Play Integrity API'ye erişerek veya kullanarak Play Integrity API Hizmet Şartları'nı kabul etmiş olursunuz. API'ye erişmeden önce lütfen geçerli tüm şartları ve politikaları okuyup anlayın.

Google Play'de, geliştiricilerin kullanıcılarını bilgilendirmek için uygulamalarının veri toplama, paylaşma ve güvenlik yöntemlerini açıklayabilecekleri bir Veri Güvenliği bölümü vardır. Veri formunuzu doldurmanıza yardımcı olması için Play Integrity API'nin verileri nasıl işlediği hakkındaki bu bilgilere bakın.