Cihaz geri çağırma (beta) özelliğini kullanarak tekrarlanan kötüye kullanımları tespit etme

Bu sayfada, belirli cihazlarla özel verileri depolamak ve almak için cihazı geri çağırma özelliğinin nasıl kullanılacağı açıklanmaktadır. Uygulamanız aynı cihaza yüklendiğinde, cihaz sıfırlandıktan sonra bile özel verileri güvenle tekrar çağırabilirsiniz. Bu sayede, kullanıcı gizliliğini korurken bir cihazın yeniden kullanılmasını, belirttiğiniz bir işleme veya davranışa göre algılayıp önleyebilirsiniz.

Cihaz geri çağırma nasıl çalışır?

Cihaz geri çağırma, uygulamalara belirli bir cihazla ilişkili özel verileri kullanıcı gizliliğini koruyacak şekilde saklayıp geri çağırma olanağı sunar. Veriler, Google sunucularında saklandığı için uygulamanız yeniden yüklendikten veya cihaz sıfırlandıktan sonra bile uygulamanız, özel verilerinizi güvenilir bir şekilde geri çağırabilir. Örneğin, ciddi kötüye kullanım kanıtı bulduğunuz cihazları, yüksek değerli öğeleri (ücretsiz deneme gibi) zaten kullanmış cihazları veya kötüye kullanım amaçlı yeni hesap oluşturmak için tekrar tekrar kullanılan cihazları geri çağırmak için bu özelliği kullanabilirsiniz. İstekte bulunan uygulama, herhangi bir cihaza veya kullanıcı tanımlayıcısına erişmeden yalnızca cihazlarla ilişkilendirdiği sınırlı verileri geri çağırabildiğinden cihaz hatırlama özelliği kullanıcı gizliliğini korur. Cihaz geri çağırma özelliğini etkinleştirdikten sonra şunları yapabilirsiniz:

  • Cihaz başına verileri okuma: Bütünlük kararı aldığınızda her cihaz için üç özel değer veya bit okuyabilirsiniz. Bu değerlere kendi anlamınızı tanımlayabilirsiniz. Örneğin, değerleri üç ayrı işaret olarak değerlendirebilir veya sekiz özel etiketi temsil edecek şekilde birleştirebilirsiniz.
  • Cihaz başına verileri değiştirme: Bir bütünlük jetonu aldıktan sonra, bu jetonu kullanarak Google Play'in sunucusuna sunucu tarafı çağrısı yaparak bir veya daha fazla değeri değiştirebilirsiniz. Jetonu 14 gün içinde kullanmanız gerekir. Bu sayede, örneğin kötüye kullanım yalnızca ilk bütünlük kontrolünü gerçekleştirdikten sonraki iki hafta içinde ortaya çıkarsa bir değeri değiştirebilirsiniz. Bir değeri değiştirdiğinizde, değişikliğin yapıldığı ay ve yıl da depolanır.

Cihaz geri çağırma ön koşulları ve dikkat edilmesi gereken hususlar

Cihaz geri çağırma özelliği yalnızca uygulama güvenliğini korumak, kötüye kullanımı, sahtekarlığı ve yetkisiz erişimi azaltmak için bilgileri saklamak ve geri çağırmak amacıyla kullanılabilir. Cihazları geri çağırma özelliğini, kullanıcıların veya cihazların parmak izini almak ya da kullanıcıları veya cihazları izlemek için kullanamazsınız. Ayrıca cinsiyet, yaş veya konum verileri gibi hassas kullanıcı ya da cihaz özelliklerini takip etmek için cihazları geri çağırma özelliğini kullanamazsınız.

Cihaz geri çağırma için aşağıdaki ön koşullar geçerlidir:

  • Cihaz geri çağırma özelliği telefonlar, tabletler, katlanabilir cihazlar, TV, Auto ve Wear OS'te kullanılabilir. Wear'da cihaz geri çağırma özelliği yalnızca Wear OS 5 veya sonraki sürümleri çalıştıran cihazlarda kullanılabilir. Cihaz geri çağırma, emülatörlerde desteklenmez.
  • Cihaz geri çağırma işlemi için hem Google Play Store hem de Google Play Hizmetleri'nin en son sürümlerinin cihaza yüklenmesi ve etkinleştirilmesi gerekir.
  • Cihaz geri çağırma işlemi için kullanıcı hesabının Play lisanslı olması gerekir. Aksi takdirde karar değerlendirilmez.

Cihaz geri çağırma işleminde aşağıdaki zamanlama hususları dikkate alınır:

  • Bir bütünlük jetonunu doğruladıktan sonra, özel cihaz geri çağırma verilerini depolamak için 14 gün içinde kullanmanız gerekir.
  • Cihaz geri çağırma, yakın zamanda değiştirilen verileri uzun zaman önce değiştirilen verilerden daha yüksek öncelikli olarak değerlendirebilmeniz için zaman damgaları içerir. Cihazların el değiştirebileceğini veya yenilenip yeniden satılabileceğini göz önünde bulundurarak, verileri yeterince uzun bir süre geçtikten sonra yok saymayı veya sıfırlamayı düşünebilirsiniz.
  • Bir cihazın geri çağırma bitleri, son okuma veya yazma erişiminden sonraki 3 yıl boyunca saklanır.
  • Bir cihazla ilişkili tüm verileri silmeniz gerekiyorsa uygulamanız, söz konusu cihazdaki üç değeri de false olarak sıfırlayabilir. Bu işlem, zaman damgalarını otomatik olarak sıfırlar.

Birden fazla uygulaması olan ve uygulama aktaran geliştiriciler için cihaz geri çağırma şu şekilde çalışır:

  • Google Play geliştirici hesabınızdaki tüm uygulamalar, cihaz başına aynı üç değere erişebilir. Başka bir deyişle, uygulamalarınızdan biri değerlerden birini değiştirirse tüm uygulamalarınız aynı cihaza yüklendiğinde değiştirilen değeri okur.
  • Bir uygulama bir geliştirici hesabından diğerine aktarılırsa cihaz geri çağırma işlemi, eski geliştirici hesabının cihaz başına verilerini değil, yeni geliştirici hesabının cihaz başına verilerini yansıtır.

Cihaz hatırlama özelliğini etkinleştirme

Hazır olduğunuzda Play Console'da cihaz geri çağırma özelliğini etkinleştirin:

  1. Play Console'da oturum açın.
  2. Cihaz geri çağırma özelliğini kullanacak uygulamayı seçin.
  3. Soldaki menünün Sürüm bölümünde Uygulama bütünlüğü'ne gidin.
  4. Play Integrity API'nin yanındaki Ayarlar'ı tıklayın.
  5. Sayfanın Yanıtlar bölümünde Yanıtları değiştir'i tıklayın.
  6. Cihaz geri çağırma özelliğini etkinleştirin.
  7. Değişiklikleri kaydet'i tıklayın.

Cihaz geri çağırma özelliğini etkinleştirdiğinizde veya devre dışı bıraktığınızda Play Console'da ayarladığınız Play Integrity API test yanıtları silinir ve bunları tekrar oluşturmanız gerekir.

Cihaz geri çağırma değerlerini okuma

Cihaz geri çağırma, hem Play Integrity API klasik hem de standart isteklerinde çalışır. Standart isteklerde, cihaz geri çağırma işlemi ısınma çağrısında yenilenir. Diğer bir deyişle, cihaz başına verileri değiştirdikten sonra güncellenmiş değeri görmek için başka bir sıcak başlatma yapmanız gerekir. Cihaz geri çağırma etkinleştirildikten sonra, bütünlük kararlarınızda cihaz geri çağırma değerlerini okuyabilirsiniz.

Cihaz geri çağırma değerlerini değiştirme

Bütünlük kararının kodunu çözmeye benzer şekilde sunucudan sunucuya API çağrısı yaparak cihaz geri çağırma değerlerini değiştirebilirsiniz. Bir biti true olarak ayarlamak, yazma tarihini de günceller (true olarak ayarlanmış olsa bile). Bir biti false olarak ayarlamak, yazma tarihini boş olarak sıfırlar. Bir istekte belirtilmeyen bitler değişmeden kalır. Bitlerin yazılması ile kararda tekrar okunabilmesi arasında küçük bir yayılma gecikmesi vardır. Bu gecikme 30 saniye kadar sürebilir ancak genellikle çok daha kısadır. Cihaz geri çağırma yazma istekleri, bütünlük jetonu isteklerinizden daha seyrek olmalıdır. Bu istekler, bütünlük jetonu istek kotanıza dahil edilmez ancak herkese açık olmayan, savunma amaçlı ücret sınırlamalarına tabidir.

playintegrity.googleapis.com/v1/PACKAGE_NAME/deviceRecall:write -d \
'{
  "integrityToken": "INTEGRITY_TOKEN",
  "newValues": {
    "bitFirst": true,
    "bitThird": false
  }
}'