Présentation de l'API Play Integrity

L'API Play Integrity vous aide à vérifier que les interactions et les requêtes du serveur proviennent du binaire d'application s'exécutant sur un appareil Android authentique. Le serveur backend de votre application détecte les interactions potentiellement risquées et frauduleuses, telles que les versions d'application falsifiées et les environnements non fiables. Il peut ainsi répondre en prenant les mesures appropriées pour empêcher les attaques et réduire les abus.

Lorsque votre application ou votre jeu est utilisé sur un appareil Android avec le Google Play Store et alimenté par les services Google Play, l'API Play Integrity fournit une réponse qui vous aide à déterminer si vous interagissez avec les éléments suivants :

  • Binaire d'application authentique : déterminez si vous interagissez avec le binaire non modifié reconnu par Google Play.
  • Installation Play authentique : déterminez si le compte utilisateur actuel dispose d'une licence, c'est-à-dire si l'utilisateur a installé ou payé votre application ou votre jeu à partir de Google Play.
  • Appareil Android authentique : déterminez si votre application s'exécute sur un appareil Android authentique équipé des services Google Play (ou une instance authentique de Google Play Jeux pour PC).
  • Absence de logiciel malveillant connu : déterminez si Google Play Protect est activé et s'il a détecté des applications douteuses ou dangereuses installées sur l'appareil.

Présentation

Lorsqu'un utilisateur effectue une action dans votre application, vous pouvez appeler l'API Play Integrity pour vérifier que l'action s'est produite dans le véritable fichier binaire de l'application, installé par Google Play, et exécuté sur un appareil Android authentique. Vous pouvez également activer des signaux sur l'environnement, par exemple pour indiquer si Google Play Protect est activé et s'il a détecté un logiciel malveillant connu installé sur l'appareil. En cas de problème avec les évaluations, le serveur backend de votre application peut décider de la marche à suivre pour se prémunir contre des problèmes tels que les abus et la fraude, l'usage abusif et la tricherie, l'accès non autorisé et les attaques.

Principales étapes de l'API Play Integrity

Points à noter concernant la sécurité

L'API Play Integrity offre des avantages sans égal pour votre application lorsque vous suivez les pratiques recommandées :

Appliquer une stratégie de lutte contre les abus

L'API Play Integrity fonctionne de manière optimale lorsqu'elle est combinée avec d'autres signaux dans votre stratégie globale de lutte contre les abus plutôt que lorsqu'elle est exécutée comme seul mécanisme de protection. Utilisez cette API conjointement avec d'autres bonnes pratiques de sécurité adaptées à votre application. Par défaut, votre application peut effectuer jusqu'à 10 000 requêtes classiques par jour pour toutes les installations. Vous pouvez demander à augmenter votre limite quotidienne maximale.

Décider de comment demander les évaluations de l'intégrité

L'API Play Integrity propose deux options pour demander et recevoir des évaluations de l'intégrité. Que vous effectuiez des requêtes standards ou classiques, ou une combinaison des deux, la réponse de l'évaluation de l'intégrité est renvoyée au même format.

Les requêtes API standards conviennent à tous les jeux et applications, et peuvent être effectuées à la demande pour vérifier que toute action de l'utilisateur ou requête du serveur est authentique. Elles présentent la latence la plus faible (quelques centaines de millisecondes en moyenne) et une haute fiabilité d'obtention d'une évaluation utilisable. Les requêtes standards utilisent la mise en cache intelligente sur l'appareil tout en déléguant à Google Play une protection contre certains types d'attaques.

Les requêtes API classiques, avec lesquelles les évaluations de l'intégrité étaient demandées à l'origine, restent également disponibles. Elles ont une latence plus élevée (quelques secondes en moyenne), et vous êtes responsable de l'atténuation des risques liés à certains types d'attaques. Les requêtes classiques consomment plus de données et de batterie que les requêtes standards, car elles lancent une nouvelle évaluation. Elles doivent donc être effectuées à titre exceptionnel pour vérifier si une action hautement sensible ou à forte valeur ajoutée est authentique. Si vous envisagez d'exécuter une requête classique et de la mettre en cache pour l'utiliser ultérieurement, il est conseillé d'effectuer une requête standard afin de réduire le risque d'attaque.

Le tableau suivant met en évidence quelques différences majeures entre ces deux types de requêtes :

Requête API standard Requête API classique
Version minimale du SDK Android requise Android 5.0 (niveau d'API 21) ou version ultérieure Android 4.4 (niveau d'API 19) ou version ultérieure
Préparation de l'API requise ✔️ (quelques secondes)
Latence habituelle des requêtes Quelques centaines de millisecondes Quelques secondes
Fréquence des requêtes potentielles Fréquentes (vérification à la demande pour toute action ou requête) Occasionnelles (vérification ponctuelle des actions les plus intéressantes ou des requêtes les plus sensibles)
Atténuer les risques de rejeu et d'attaques similaires Atténuation automatique par Google Play Utiliser le champ nonce avec la logique côté serveur

Vous trouverez un tableau présentant d'autres différences dans les considérations relatives aux requêtes classiques.

Rendre les requêtes API difficiles à répliquer

Les requêtes API standards comportent un champ nommé requestHash qui protège les utilisateurs contre les accès non autorisés et les attaques similaires. Dans ce champ, vous devez inclure un récapitulatif de toutes les valeurs pertinentes de la requête de votre application. Suivez les instructions sur l'utilisation de la liaison de contenu pour protéger les requêtes standards de votre application.

Les requêtes API classiques comportent un champ appelé nonce qui sert à protéger certains types d'attaques, tels que les attaques par relecture et la falsification. Suivez les conseils sur la génération des nonces pour protéger les requêtes classiques de votre application.

Éviter la mise en cache des évaluations de l'intégrité

La mise en cache des évaluations de l'intégrité augmente le risque de proxying, qui constitue une attaque par laquelle un acteur malintentionné réutilise l'évaluation d'un bon appareil à des fins abusives dans un autre environnement. Plutôt que de mettre en cache les réponses, vous pouvez effectuer une requête API standard pour obtenir une évaluation à la demande.

Adopter une stratégie d'application à plusieurs niveaux

L'évaluation de l'intégrité de l'API Play Integrity offre un éventail de réponses possibles, ce qui permet de créer une stratégie de lutte contre les utilisations abusives avec plusieurs niveaux d'application. Pour ce faire, configurez le serveur backend de votre application de sorte qu'il se comporte différemment en fonction de chaque réponse ou groupe de réponses possible.

Vous pouvez également hiérarchiser votre stratégie d'application en fonction de la fiabilité des appareils en activant la réception de libellés d'appareil supplémentaires dans la réponse de l'API à partir de la Play Console. Chaque appareil renvoie tous les libellés dont il répond aux critères. Par exemple, après avoir activé la réception de tous les libellés d'appareil, vous pouvez choisir de faire confiance à un appareil qui renvoie MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY et MEETS_BASIC_INTEGRITY plus qu'à un appareil qui ne renvoie que MEETS_BASIC_INTEGRITY. Vous pouvez répondre différemment du serveur dans chaque scénario.

Envoyer une plage de réponses de votre serveur à votre application

Il est plus difficile de répliquer une plage de résultats que de renvoyer une réponse binaire (réussite/échec) du serveur à l'application. Par exemple, vous pouvez opter pour une série de réponses associées ("Autoriser", "Autoriser avec des limites", "Autoriser avec des limites après la confirmation du CAPTCHA" et "Refuser", par exemple).

Détecter les utilisations abusives à grande échelle

Dans l'API Play Integrity, utilisez la fonctionnalité activité récente de l'appareil afin de rechercher les appareils qui demandent un grand nombre d'attestations. Les utilisateurs au comportement généralement abusif génèrent des résultats d'attestation valides à partir d'appareils réels et les fournissent aux bots dans le but de lancer des attaques automatisées sur les appareils en mode root ainsi que les émulateurs. Pour déterminer le nombre d'attestations générées par votre appli sur un appareil au cours de la dernière heure, vous pouvez utiliser le résultat de l'activité récente de l'appareil.

Afficher des messages d'erreur exploitables

Si possible, fournissez des messages d'erreur utiles qui indiquent à l'utilisateur ce qu'il peut faire pour résoudre un problème. Par exemple, vous pouvez lui suggérer de réessayer, d'activer sa connexion Internet ou de vérifier que son application Play Store est à jour.

Anticiper les problèmes ou pannes inattendus

Le tableau de bord d'état de Play affiche des informations sur l'état de fonctionnement de l'API Play Integrity, ainsi que sur les perturbations et les pannes. Vous pouvez configurer à l'avance la manière dont votre serveur backend devra fonctionner dans l'éventualité peu probable d'une panne à grande échelle de l'API Play Integrity.

Envisager des solutions d'entreprise de bout en bout de lutte contre la fraude

Les entreprises clientes à la recherche d'une solution complète de lutte contre la fraude et les bots peuvent acheter reCAPTCHA Enterprise pour mobile. Cette application inclut des SDK pour Android qui fournissent aux développeurs des scores de risque de fraude. reCAPTCHA Enterprise inclut automatiquement les signaux de l'API Play Integrity et les combine aux signaux reCAPTCHA relatifs aux réseaux et aux applications, offrant ainsi une solution prête à l'emploi, fluide et invisible pour lutter contre la fraude. Elle peut également protéger les applications Android sur lesquelles l'API Play Integrity n'est pas disponible.

Conditions d'utilisation et sécurité des données

En accédant à l'API Play Integrity et en l'utilisant, vous en acceptez les Conditions d'utilisation. Veuillez lire attentivement l'ensemble des conditions d'utilisation et des règles applicables avant d'accéder à l'API.

Google Play dispose d'une section sur la sécurité des données, qui permet aux développeurs de divulguer les pratiques de collecte, de partage et de sécurité des données de leurs applications afin d'en tenir les utilisateurs informés. Pour découvrir comment remplir votre formulaire de données, consultez ces informations sur la manière dont l'API Play Integrity traite les données.