Google propose un ensemble d'API et de services pour vous aider à détecter si votre application s'exécute dans un environnement sûr et fiable. L'API Play Integrity est l'élément central. Elle permet de vérifier l'authenticité des interactions en détectant les interactions potentiellement dangereuses et frauduleuses. En plus de l'intégrité des applications et de l'intégrité de l'appareil, l'API Play Integrity fournit désormais des informations sur les risques d'accès et d'accessibilité, Google Play Protect et l'activité récente de l'appareil. Pour renforcer davantage votre stratégie de lutte contre la fraude, la plate-forme Android propose des API pour des scénarios spécifiques qui peuvent être pertinents pour votre application.
API Play Integrity
L'API Play Integrity vous permet d'en savoir plus sur l'état de sécurité de l'appareil sur lequel votre application s'exécute. Cela vous permet d'être sûr que le bon utilisateur accède aux informations sensibles.
Elle vous aide à vérifier que les interactions et les requêtes de serveur proviennent du binaire de votre application authentique dans un environnement fiable :
- 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 sur Google Play.
- Appareil Android authentique : déterminez si votre application s'exécute sur un appareil Android authentique équipé des services Google Play.
- 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.
- Risque d'accès faible par d'autres applications : déterminez si d'autres applications en cours d'exécution peuvent capturer l'écran ou contrôler l'appareil et les entrées dans votre application.
Comment cela permet d'atténuer la fraude
Lorsqu'un utilisateur effectue une action importante dans votre application, vous pouvez appeler l'API Play Integrity. Si ce n'est pas le cas, le serveur backend de votre application peut décider de la marche à suivre pour se prémunir contre les attaques et les fraudes. Par exemple, vous pouvez exiger une validation supplémentaire de l'utilisateur ou refuser l'accès à des fonctionnalités sensibles.

Risque d'accès à l'appli
Le signal Risque d'accès à l'application a été introduit pour vous aider à évaluer si d'autres applications sur un appareil peuvent afficher et capturer l'écran lorsque votre application est en cours d'exécution ou y accéder à l'aide d'autorisations d'accessibilité. Les applications d'accessibilité validées sont automatiquement exclues de ces évaluations. Le risque d'accès à l'application aide les développeurs à protéger leurs applications tout en préservant la confidentialité des utilisateurs, car l'application à l'origine de la demande n'obtient pas l'identité des applications installées, et l'évaluation n'est pas liée aux identifiants des utilisateurs ou des appareils.
Grâce à cette collaboration, nous pouvons obtenir les signaux nécessaires pour obtenir des insights plus approfondis et protéger plus efficacement nos clients.
— Nubank, partenaire pour l'accès anticipé
Le risque d'accès à l'application comporte différents niveaux de risque :
- Une réponse de capture signifie que d'autres applications en cours d'exécution peuvent capturer l'écran.
- Une réponse de contrôle signifie que d'autres applications en cours d'exécution peuvent contrôler l'appareil et, par conséquent, capturer l'écran et contrôler les entrées dans votre application.
Application du risque d'accès à l'application
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.
Ce tableau contient quelques exemples de verdicts :
| Exemple de réponse d'évaluation du risque d'accès à l'application | Interprétation |
|---|---|
appsDetected:["KNOWN_INSTALLED"]
|
Seules les applications installées sont reconnues par Google Play ou préchargées sur la partition du système par le fabricant de l'appareil. Aucune application en cours d'exécution ne peut entraîner les verdicts "capturing", "controlling" ou "overlays". |
appsDetected:["KNOWN_INSTALLED","UNKNOWN_INSTALLED","UNKNOWN_CAPTURING"]
|
Des applications sont installées par Google Play ou préchargées sur la partition système par le fabricant de l'appareil. D'autres applications sont en cours d'exécution, dont les autorisations sont activées, peuvent servir à afficher l'écran ou à capturer d'autres entrées et sorties. |
appsDetected:["KNOWN_INSTALLED","KNOWN_CAPTURING","UNKNOWN_INSTALLED","UNKNOWN_CONTROLLING"]
|
Des applications Play ou système en cours d'exécution dont les autorisations sont activées peuvent être utilisées pour afficher l'écran ou capturer d'autres entrées et sorties. D'autres applications en cours d'exécution, dont les autorisations sont activées, peuvent servir à contrôler l'appareil et à commander directement les entrées dans votre application. |
appAccessRiskVerdict: {}
|
Le risque d'accès à l'application n'est pas examiné, car une condition requise n'a pas été respectée. Par exemple, l'appareil n'était pas suffisamment fiable. |
Signal Play Protect
Le signal Play Protect indique à votre application si Play Protect est activé et s'il a détecté des applications dangereuses connues installées sur l'appareil.
environmentDetails:{
playProtectVerdict: "NO_ISSUES"
}
Si les logiciels malveillants sont une préoccupation particulière pour votre application ou les données de vos utilisateurs, vous pouvez vérifier ce verdict et demander à vos utilisateurs d'activer Play Protect ou de supprimer les applications dangereuses avant de continuer.

playProtectVerdict peut avoir une des valeurs suivantes :
| Verdict | Explication | Action recommandée |
|---|---|---|
|
Play Protect est activé et n'a détecté aucun problème d'application sur l'appareil. |
Play Protect est activé et n'a détecté aucun problème. Aucune action n'est donc requise de la part de l'utilisateur. |
|
Play Protect est activé, mais aucune analyse n'a encore été effectuée. L'appareil ou l'application Play Store ont peut-être été réinitialisés récemment. |
Play Protect est activé et n'a détecté aucun problème. Aucune action n'est donc requise de la part de l'utilisateur. |
|
Play Protect est désactivé. |
Play Protect est activé et n'a détecté aucun problème. Aucune action n'est donc requise de la part de l'utilisateur. |
|
Play Protect est activé et a détecté des applications potentiellement dangereuses installées sur l'appareil. |
En fonction de votre tolérance au risque, vous pouvez demander à l'utilisateur de lancer Play Protect et de prendre des mesures concernant les avertissements Play Protect. Si l'utilisateur ne peut pas répondre à ces exigences, vous pouvez l'empêcher d'effectuer l'action du serveur. |
|
Play Protect est activé et a détecté des applications dangereuses installées sur l'appareil. |
En fonction de votre tolérance au risque, vous pouvez demander à l'utilisateur de lancer Play Protect et de prendre des mesures concernant les avertissements Play Protect. Si l'utilisateur ne peut pas répondre à ces exigences, vous pouvez l'empêcher d'effectuer l'action du serveur. |
|
L'évaluation Play Protect n'a pas été menée. Plusieurs raisons peuvent expliquer cette situation. Par exemple :
|
Activité récente de l'appareil
Vous pouvez également activer l'option permettant de connaître l'activité récente de l'appareil. Celle-ci indique le nombre de fois où votre application a demandé un jeton d'intégrité sur un appareil spécifique au cours de la dernière heure. Vous pouvez utiliser l'activité récente de l'appareil pour protéger votre application contre les appareils hyperactifs inattendus qui pourraient être le signe d'une attaque en cours. Vous pouvez décider du niveau de confiance attribué à chaque niveau d'activité récente de l'appareil en fonction du nombre de fois que vous estimez qu'un jeton d'intégrité devrait être demandé par votre appli installée sur un appareil type au cours de chaque heure.
Si vous acceptez de recevoir recentDeviceActivity, le champ deviceIntegrity aura deux valeurs :
deviceIntegrity: {
deviceRecognitionVerdict: ["MEETS_DEVICE_INTEGRITY"]
recentDeviceActivity: {
// "LEVEL_2" is one of several possible values.
deviceActivityLevel: "LEVEL_2"
}
}
Tout d'abord, vous devez vérifier les données pour connaître les niveaux d'activité typiques de l'appareil pour votre application sur tous vos appareils. Vous pouvez ensuite décider de la façon dont votre application doit répondre lorsqu'un appareil envoie trop de requêtes. Si l'activité est un peu élevée, vous pouvez demander à l'utilisateur de réessayer plus tard. Si l'activité est très élevée, vous pouvez envisager de prendre des mesures coercitives plus strictes.
Requêtes standards et classiques
Lorsque vous implémentez Play Integrity, il est important de tenir compte des deux types de requêtes. Dans la plupart des cas, vous devez utiliser des requêtes standards pour obtenir la réponse la plus rapide. Les requêtes classiques doivent être utilisées lorsqu'une requête nouvellement générée par rapport à l'enregistrement d'attestation de l'appareil est nécessaire.
Requête classique |
Requête standard |
|---|---|
Les requêtes prennent plus de temps et doivent être effectuées moins fréquemment. Par exemple, pour vérifier de temps en temps si une action sensible particulièrement intéressante ou sensible est légitime. Utilisez-les peu souvent. |
Les requêtes offrent une faible latence et peuvent être utilisées à la demande. Une requête standard comprend deux étapes :
Utiliser à la demande |
Pour en savoir plus sur les requêtes standards et classiques, consultez la documentation Play Integrity.
Implémentation
Pour commencer à utiliser l'API Play Integrity :
- Activez les réponses de l'API Play Integrity dans la Google Play Console et associez-les à un projet Google Cloud.
- Intégrez l'API Play Integrity à votre application.
- Décidez comment gérer les verdicts.
Par défaut, l'API Play Integrity autorise jusqu'à 10 000 requêtes par application et par jour. Pour demander à augmenter le nombre maximal de requêtes quotidiennes, suivez ces instructions. Pour pouvoir bénéficier d'une augmentation du nombre maximal de requêtes par jour, votre application doit implémenter correctement l'API Play Integrity et être disponible sur Google Play en plus de tout autre canal de distribution.
Points à retenir concernant l'API Play Integrity
- Il est essentiel que vous gériez correctement les erreurs dans les réponses des API Play Integrity. Suivez ce guide sur les stratégies de nouvelle tentative et d'application en fonction des codes d'erreur.
- L'API Play Integrity propose des outils de test pour les réponses.
- Pour afficher le résultat de l'intégrité sur votre appareil, procédez comme suit.
- Consultez ces remarques concernant la sécurité pour découvrir les pratiques recommandées avec l'API Play Integrity.
Protection automatique de l'intégrité (API >= 23)
La protection automatique de l'intégrité est un service de protection du code contre la falsification qui protège votre application contre les modifications et redistributions non autorisées portant atteinte à son intégrité. Elle fonctionne sans connexion de données et ne nécessite aucun travail de la part du développeur avant l'exécution des tests ni l'intégration du serveur backend.
Comment cela permet d'atténuer la fraude
Lorsque vous activez la protection automatique de l'intégrité, Google Play ajoute des vérifications au code de votre application et les rend difficiles à supprimer grâce à des techniques avancées d'obscurcissement et de protection contre la rétro-ingénierie. Lors de l'exécution, la protection vérifie si votre application a été falsifiée ou redistribuée :
- Si la vérification du programme d'installation échoue, les utilisateurs sont invités à télécharger votre application sur Google Play.
- Si la vérification des modifications échoue, l'application ne s'exécute pas.
Cela permet de protéger les utilisateurs contre les versions modifiées de votre application.
Implémentation
La protection automatique de l'intégrité n'est actuellement disponible que pour certains partenaires Play. Contactez l'assistance Google Play pour les développeurs si la fonctionnalité n'est pas disponible dans votre Google Play Console et que vous souhaitez y avoir accès.
Vous pouvez activer la protection lorsque vous créez une version ou sur la page Protégé avec Play. La protection automatique de l'intégrité nécessite que votre application utilise la signature d'application Play.
Veillez à tester votre application protégée avant de promouvoir la version en production.
À retenir
- Ne pas publier de versions d'application non protégées
- Être vigilant lorsque vous associez plusieurs solutions de protection contre la falsification
- Tester votre application protégée avant de la déployer en production
- Surveillez les statistiques comme d'habitude pour détecter toute augmentation du nombre de plantages.
- Vous pouvez signaler les versions piratées de votre application à Google Play.