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).
Vous pouvez également choisir de recevoir des informations sur l'environnement dans votre réponse à l'API Play Integrity, y compris les suivantes:
- Risque d'accès à l'application:déterminez si des applications en cours d'exécution peuvent être utilisées pour capturer l'écran, afficher des superpositions ou contrôler l'appareil.
- Risque 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 qu'elle 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 informations supplémentaires dans la réponse, y compris le volume de requêtes qu'un appareil a effectuées récemment et les signaux sur l'environnement, y compris l'évaluation du risque d'accès à l'application et l'évaluation de Play Protect. 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.
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.
Collecter des données télémétriques et cerner votre audience avant d'agir
Avant de modifier le comportement de votre application en fonction des évaluations de l'API Play Integrity, vous pouvez comprendre la situation actuelle de votre audience existante en implémentant l'API sans mesure d'application forcée. Une fois que vous avez obtenu l'évaluation que votre nombre d'installations actuel renvoie, vous pouvez estimer l'impact de toute mesure d'application envisagée et adapter votre stratégie de lutte contre les utilisations abusives en conséquence.
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.
Demander une évaluation de l'intégrité au moment opportun
Demandez une évaluation du risque d'accès à l'application très rapidement après l'action ou la requête de serveur à laquelle vous souhaitez empêcher l'accès, afin d'empêcher les escrocs de contourner la vérification de l'intégrité effectuée par votre application.
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 à l'aide de l'activité récente de l'appareil
Dans l'API Play Integrity, utilisez la fonctionnalité activité récente de l'appareil afin de rechercher les appareils qui demandent un grand nombre de jetons d'intégrité. 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. Vous pouvez utiliser le niveau d'activité récente de l'appareil pour vérifier le nombre d'attestations générées par votre application sur cet appareil au cours de la dernière heure.
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 devez planifier à 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. Notez que votre serveur backend doit également être prêt à fonctionner lorsque les clés d'attestation de clé de plate-forme Android spécifiques aux appareils sont révoquées.
Lutter contre la fraude à l'aide des solutions reCAPTCHA Enterprise de bout en bout
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.
Vérifier la légitimité du trafic dangereux accédant à des fonctionnalités importantes ou sensibles
Identifiez les actions sensibles ou importantes dans votre application ou jeu pour vous protéger avec l'API Play Integrity, au lieu de refuser complètement l'accès. Si possible, vérifiez la légitimité du trafic dangereux avant de lui permettre d'accéder aux actions importantes. Par exemple, lorsque le risque d'accès à l'application indique qu'une application en cours d'exécution pourrait capturer l'écran, demandez à l'utilisateur de désactiver ou de désinstaller les applications qui peuvent capturer l'écran avant de lui permettre d'accéder à une fonctionnalité que vous souhaitez protéger.
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.