Nous avons récemment annoncé que nous renforcions les évaluations de l'API Play Integrity pour les rendre plus rapides, plus résilientes contre les attaques et plus privées pour les utilisateurs, ainsi que pour apporter d'autres améliorations de sécurité.
Résumé des modifications
Vous trouverez un récapitulatif détaillé des modifications et de l'impact attendu plus loin dans ce document. Les nouveaux verdicts seront disponibles comme suit:
Nouvelles intégrations:toutes les nouvelles intégrations recevront automatiquement les nouveaux résultats.
Intégrations existantes jusqu'en mai 2025: les développeurs disposant d'intégrations existantes peuvent activer les nouvelles évaluations sur la page des paramètres de l'API Play Integrity de la Play Console pour les recevoir en même temps que les anciennes évaluations. Vous aurez ainsi le temps de les examiner et d'envisager d'apporter des modifications au comportement de votre application. Avant d'activer cette fonctionnalité, vous pouvez voir le changement attendu dans le pourcentage d'appareils qui renvoient chaque évaluation et un exemple JSON de la nouvelle évaluation. Lorsque vous activez cette fonctionnalité, vous recevez deux champs supplémentaires dans la réponse avec la version du SDK Android et les anciennes évaluations.
Intégrations existantes après mai 2025:les améliorations seront mises en ligne pour toutes les intégrations, sans aucune intervention de la part des développeurs. Les applications qui s'activent avant mai 2025 ne recevront pas le champ temporaire contenant les anciens évaluations.
Quoi ? | Nouveautés | Impact estimé* | Quels appareils ? |
---|---|---|---|
Modifications qui affectent tous les développeurs qui envoient des requêtes à l'API Play Integrity | |||
Réponse de l'évaluation de l'appareil: meets-device-integrity | Démarrage validé positif, basé sur du matériel | Impact minimal, car l'API Play Integrity utilise déjà des signaux de sécurité intégrés au matériel sur les appareils Android 13 et versions ultérieures (~0,4%) | Android 13 ou version ultérieure |
Réponse concernant l'intégrité de l'application: évaluation de reconnaissance de l'application | Aucun changement | Impact minimal, qui reflètera le changement dans l'évaluation de l'appareil (~0,4%) | Android 13 ou version ultérieure |
Réponse concernant les détails du compte: évaluation de la licence Play | L'application à l'origine de la demande doit être installée ou mise à jour par Google Play | Baisse mineure des réponses sous licence (environ 2,5%) | Android 11 et versions ultérieures (ce changement sera déployé progressivement) |
Modifications qui ne concernent que les développeurs de la Play Console et de la Play SDK Console qui utilisent des fonctionnalités facultatives | |||
Réponse de l'évaluation de l'appareil: meets-basic-integrity | L'attestation de clé de la plate-forme Android est obligatoire, mais l'état de démarrage peut être validé ou non. | Diminution mineure des réponses de base (environ 0,4%) | Android 13 ou version ultérieure |
Réponse d'évaluation de l'appareil: meets-strong-integrity | Mise à jour de sécurité requise au cours de la dernière année | Baisse du nombre de réponses fortes (environ 14,5%) | Android 13 ou version ultérieure |
Tous les signaux facultatifs | L'application à l'origine de la demande doit être installée ou mise à jour par Google Play | Baisse du pourcentage de réponses incluant des signaux facultatifs (environ 7 %) | Android 13 ou version ultérieure |
*Tous les pourcentages d'impact estimés ci-dessus sont basés sur des moyennes. Les différentes applications peuvent subir des changements plus ou moins importants en fonction de leur base d'installations.
Questions fréquentes
Présentation
Qu'est-ce que l'API Play Integrity ?
L'API Play Integrity vous aide à évaluer la fiabilité de l'environnement de l'application de l'utilisateur en obtenant des informations sur l'appareil, l'application et l'utilisateur. Vous pouvez ainsi détecter et répondre aux abus et attaques potentiels.
Quels signaux l'API Play Integrity fournit-elle ?
L'API Play Integrity inclut l'identité de l'application à l'origine de la requête, si l'application à l'origine de la requête a été installée par Google Play et si l'appareil est un véritable appareil Android certifié Play Protect. Ces signaux sont fournis par défaut. Vous pouvez lire ces signaux sur le serveur backend de votre application et décider si votre application doit y répondre et comment. Les développeurs Google Play peuvent activer la réception de signaux supplémentaires dans leurs installations Play pour obtenir encore plus d'informations.
Qu'est-ce que l'attestation des clés de la plate-forme Android ?
L'attestation de clé de la plate-forme Android permet aux applications de vérifier l'état de l'appareil et d'obtenir un signal fort de l'intégrité du démarrage intégrée au matériel. Il dépend d'une clé provisionnée par Google dans le keystore matériel de l'appareil. L'API Play Integrity utilise déjà l'attestation de clé pour obtenir des signaux de sécurité intégrés au matériel sur certains appareils et les intégrera désormais plus profondément sur tous les appareils équipés d'Android 13 ou version ultérieure.
Modifications des évaluations
Quels changements sont apportés aux évaluations de l'API Play Integrity sur les appareils Android 13 ou version ultérieure ?
L'API Play Integrity va désormais requérir des signaux de sécurité intégrés au matériel pour toutes les évaluations de l'intégrité:
- L'évaluation de la reconnaissance de l'appareil
meets-device-integrity
indique que l'appareil sur lequel l'application s'exécute est un appareil Android authentique certifié par Play Protect. Pour que cette évaluation soit possible, le bootloader de l'appareil doit être verrouillé et l'OS Android chargé doit être une image du fabricant de l'appareil certifiée. - L'évaluation de reconnaissance d'appareil
meets-strong-integrity
indique qu'il s'agit d'un appareil Android authentique certifié par Play Protect avec une mise à jour de sécurité récente. Pour obtenir cette évaluation, vous devez disposer demeets-device-integrity
et l'appareil doit avoir reçu une mise à jour de sécurité au cours de la dernière année. Cette condition est susceptible d'évoluer à l'avenir. - L'évaluation de la reconnaissance de l'appareil
meets-basic-integrity
indique que la vérification s'est produite sur un appareil Android physique. Le bootloader de l'appareil peut être verrouillé ou déverrouillé, et l'état de démarrage peut être validé ou non. Il est possible qu'il ne soit pas certifié Play Protect, auquel cas Google ne peut fournir aucune garantie de sécurité, de confidentialité ni de compatibilité des applications, et ne peut pas garantir que l'appareil n'agit pas en tant que proxy, par exemple pour une instance virtuelle d'Android. Cela signifie également que les appareils en mode root peuvent renvoyermeets-basic-integrity
tant que l'attestation des clés est présente.
Ces modifications n'ont aucune incidence sur l'API Play Integrity sur Play Jeux pour PC, qui continuera de renvoyer meets-virtual-integrity
.
Pourquoi les évaluations de l'API Play Integrity sont-elles modifiées sur les appareils Android 13 ou versions ultérieures ?
L'API Play Integrity n'utilisait que partiellement les signaux de sécurité intégrés au matériel dans les versions du SDK Android. En augmentant leur intégration, les évaluations de l'API Play Integrity seront plus résilientes contre les pirates informatiques, plus performantes pour les applications et plus privées pour les utilisateurs. Une fois la transition terminée, nous prévoyons les améliorations suivantes sur les appareils équipés d'Android 13 ou version ultérieure:
- Réduction d'environ 90 % des signaux de l'appareil qui doivent être collectés et évalués pour générer l'évaluation par défaut sur les serveurs Google. Les signaux facultatifs continueront de nécessiter la collecte de signaux supplémentaires.
- Amélioration de la latence d'évaluation jusqu'à 80% pour les requêtes standards du pire des cas et jusqu'à 80% pour toutes les requêtes classiques afin d'obtenir l'évaluation par défaut. Les signaux facultatifs peuvent augmenter la latence.
- Niveau de fiabilité et de compatibilité cohérent pour tous les facteurs de forme Android avec attestation de clé, y compris les mobiles, les tablettes, les appareils pliables, la télévision, Android Auto, Wear OS et ChromeOS.
- Une différenciation plus importante entre chaque étiquette d'appareil dans le résultat de la reconnaissance de l'appareil:
meets-strong-integrity
,meets-device-integrity
etmeets-basic-integrity
.
Les performances ne devraient pas changer pendant la période d'activation, tandis que l'API Play Integrity génère de nouvelles et d'anciennes évaluations de l'intégrité. Toutefois, après le lancement des nouveaux évaluations pour tous les développeurs en mai 2025, nous nous attendons à ce que les performances s'améliorent progressivement, tandis que nous supprimons ou migrons les anciennes dépendances pour tous les signaux par défaut et facultatifs.
L'évaluation de l'API Play Integrity sur Play Jeux pour PC n'est pas modifiée et sera la même sur Android 12 et versions antérieures qu'elle ne l'est sur Android 13 et versions ultérieures.
Comment mettre à jour la logique backend de mon application pour les évaluations de l'intégrité afin de prendre en compte la version du SDK Android ?
Si vous souhaitez utiliser une logique différente sur le serveur backend de votre application en fonction de la version du SDK Android, vous pouvez utiliser le nouveau champ d'attributs de l'appareil dans l'évaluation. Voici un exemple:
Kotlin
val deviceIntegrity = JSONObject(payload).getJSONObject("deviceIntegrity") val sdkVersion = if (deviceIntegrity.has("deviceAttributes")) { deviceIntegrity.getJSONObject("deviceAttributes").getInt("sdkVersion") } else { 0 } if (sdkVersion >= 30) { // Provide Android R+ specific experience to the user. }
Java
JSONObject deviceIntegrity = new JSONObject(payload).getJSONObject("deviceIntegrity"); int sdkVersion = deviceIntegrity.has("deviceAttributes") ? deviceIntegrity.getJSONArray("deviceAttributes").getInt("sdkVersion") : 0; if (sdkVersion >= 30) { // Provide Android R+ specific experience to the user. }
Comment puis-je utiliser l'ancienne définition de libellé meets-strong-integrity
dans toutes les versions du SDK Android ?
Pour ce faire, mettez à jour la logique backend de votre application pour qu'elle utilise meets-strong-integrity
lorsqu'il s'agit d'un appareil antérieur à Android 13 et meets-device-integrity
lorsqu'il s'agit d'un appareil Android 13 ou version ultérieure à l'aide du nouveau champ d'attributs de l'appareil dans l'évaluation qui contient la version du SDK Android. Voici un exemple:
Kotlin
val deviceRecognitionVerdict = if (deviceIntegrity.has("deviceRecognitionVerdict")) { deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString() } else { "" } val deviceIntegrityToCheckFor = sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY"; if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) { // Looks good! }
Java
JSONObject deviceIntegrity = new JSONObject(payload).getJSONObject("deviceIntegrity"); String deviceRecognitionVerdict = deviceIntegrity.has("deviceRecognitionVerdict") ? deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString() : ""; String deviceIntegrityToCheckFor = sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY"; if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) { // Looks good! }
Étant donné qu'il s'agit également d'un signal basé sur le matériel, le champ des attributs de l'appareil est le plus fiable sur les appareils équipés d'Android 13 ou version ultérieure.
Quelles autres modifications de l'évaluation sont apportées par l'API Play Integrity ?
Nous investissons en permanence pour rendre les signaux existants de l'API Play Integrity plus fiables et lançons régulièrement de nouvelles fonctionnalités pour aider les développeurs à faire face aux menaces émergentes et aux nouveaux cas d'utilisation. Voici d'autres améliorations apportées aux évaluations:
- Réponse avec licence Play:pour renvoyer une réponse avec licence Play, l'API Play Integrity exige désormais toujours que l'application à l'origine de la demande soit installée ou mise à jour par Google Play. Cela corrige certains cas particuliers et facilite l'interprétation de la réponse pour les développeurs. Cette fonctionnalité est disponible sur Android 13 ou version ultérieure.
- Disponibilité des signaux facultatifs:tous les signaux facultatifs disponibles pour les développeurs qui utilisent la Google Play Console ou la Play SDK Console nécessiteront désormais que l'application à l'origine de la demande soit installée ou mise à jour par Google Play sur Android 13 ou version ultérieure. Cela inclut
meets-strong-integrity
,meets-basic-integrity
, l'activité récente de l'appareil, l'évaluation du risque d'accès de l'application et l'évaluation de Play Protect. Toutes les autres requêtes de l'API Play Integrity seront normalisées pour recevoir la vérification de l'appareil (avec le libellémeets-device-integrity
uniquement), la vérification du programme d'installation et la vérification de l'intégrité de l'application. - Modifications des évaluations pour des appareils spécifiques:l'API Play Integrity commencera également à modifier automatiquement les évaluations des appareils dans davantage de scénarios afin de protéger les applications plus tôt dans toutes les versions du SDK Android, par exemple en cas d'activité excessive ou de compromission de clés. Cela inclut la possibilité pour Play de recourir à d'autres signaux pour générer des évaluations temporaires de l'appareil pour les utilisateurs lorsque les signaux basés sur le matériel ne sont pas disponibles. Nous recommandons aux développeurs d'utiliser les boîtes de dialogue de correction Play intégrées à l'application ou de rediriger les utilisateurs vers l'application Play Store pour résoudre les problèmes d'évaluation de l'intégrité. À terme, ces boîtes de dialogue traiteront davantage de scénarios et incluront des conseils spécifiques pour indiquer aux utilisateurs ce qu'ils doivent corriger en fonction de leur appareil ou de leur compte.
Activer et désactiver la fonctionnalité
Comment activer l'évaluation améliorée sur les appareils Android 13 ou version ultérieure ?
Les développeurs qui utilisent la Play Console peuvent activer cette fonctionnalité sur la page des paramètres de l'API Play Integrity.
Que se passe-t-il avec ma réponse de l'API Play Integrity après l'activation ?
Voici ce qui se passe lorsque vous activez cette fonctionnalité:
- Les réponses du champ
deviceRecognitionVerdict
commenceront immédiatement à être générées et renvoyées en fonction des nouvelles exigences d'évaluation des évaluations sur les appareils Android 13 ou versions ultérieures. Sur les appareils équipés d'Android 12 ou version antérieure,deviceRecognitionVerdict
est généré à l'aide de l'évaluation de l'historique des évaluations. - Vous recevrez un nouveau champ,
deviceAttributes
, qui contient la version du SDK Android sur l'appareil. - Vous recevrez un nouveau champ,
legacyDeviceRecognitionVerdict
, qui contient les réponses sur l'intégrité de l'appareil en fonction des exigences d'évaluation de l'historique des évaluations, quelle que soit la version du SDK Android.
Lorsque les modifications de l'évaluation seront déployées pour toutes les intégrations en mai 2025, toutes les applications qui ont activé cette fonctionnalité ne recevront plus le champ legacyDeviceRecognitionVerdict
.
Comment signaler des problèmes liés aux évaluations de l'intégrité ?
Pour signaler des problèmes liés aux réponses de l'API Play Integrity, que le problème concerne les évaluations historiques ou les nouvelles, suivez les instructions de la page d'assistance.
Puis-je désactiver les liens de shopping après les avoir activés ?
Oui, vous pouvez désactiver l'API sur la page des paramètres de l'API Play Integrity.
Disponibilité
De quoi l'API Play Integrity a-t-elle besoin pour fonctionner ?
L'API Play Integrity nécessite que le Google Play Store et les services Google Play soient installés sur un appareil, y compris les appareils Android et Google Play Jeux pour PC. Les requêtes classiques nécessitent Android 4.4 (niveau d'API 19) ou version ultérieure, et les requêtes standards nécessitent Android 5.0 (niveau d'API 21) ou version ultérieure. Sur les appareils équipés d'Android 13 (niveau d'API 33) ou version ultérieure, l'API Play Integrity aura désormais le même niveau de fiabilité et de compatibilité sur tous les facteurs de forme Android avec attestation de clé, y compris les mobiles, les tablettes, les appareils pliables, la télévision, Android Auto, Wear OS et ChromeOS.
Pourquoi l'API Play Integrity affiche-t-elle des évaluations différentes pour différents appareils ?
L'API Play Integrity fournit plusieurs évaluations de l'appareil pour répondre aux différents cas d'utilisation et niveaux de tolérance aux risques des développeurs, et pour permettre d'avoir une stratégie d'application à plusieurs niveaux. Par exemple, lorsqu'une application et un appareil sont plus fiables, un développeur peut simplifier les étapes de validation de l'utilisateur. En revanche, lorsqu'un appareil est inconnu, le développeur peut exiger une validation supplémentaire de l'utilisateur avant d'effectuer des actions protégées ou sensibles. Cela peut être un moyen efficace de réduire les utilisations abusives et les attaques.
Qu'est-ce qu'un appareil Android certifié Play Protect ?
Un appareil Android certifié Play Protect (également appelé appareil Android GMS) est un appareil exécutant un logiciel prévisible qui a réussi des centaines de tests de compatibilité de Google, respecte le modèle de sécurité et d'autorisations Android et est fourni avec la suite de fonctionnalités anti-logiciels malveillants Google Play Protect. Lorsque l'API Play Integrity peut vérifier qu'un appareil est un appareil Android certifié Play Protect, elle renvoie la réponse meets-device-integrity
dans l'évaluation de la reconnaissance de l'appareil.
Qu'est-ce qu'un appareil meets-basic-integrity
?
L'API Play Integrity renvoie également une réponse facultative dans l'évaluation de l'appareil, meets-basic-integrity
. Si un appareil ne renvoie que l'évaluation meets-basic-integrity
sans meets-device-integrity
ni meets-strong-integrity
, cela signifie que l'OS Android ne peut pas être validé, mais que l'attestation de clé est présente. Cela indique que la vérification a eu lieu sur un appareil Android physique, mais Google ne peut pas garantir la sécurité, la confidentialité ou la compatibilité de l'appareil avec les applications, et ne peut pas garantir que l'appareil n'agit pas en tant que proxy, par exemple pour une instance virtuelle d'Android. En fonction des cas d'utilisation et de la tolérance au risque des développeurs, ils peuvent décider de la façon dont leur application doit s'exécuter sur ces appareils.
Tous les développeurs peuvent-ils utiliser l'API Play Integrity ?
Oui, tout développeur Android peut envoyer des requêtes à l'API Play Integrity pour recevoir les évaluations de l'intégrité par défaut. L'utilisation est limitée à 10 000 requêtes par jour, quel que soit le canal de distribution. Les développeurs qui publient leurs applications sur Google Play en plus de tout autre canal de distribution peuvent également demander à augmenter leur quota quotidien.
Tous les développeurs peuvent-ils utiliser l'attestation de clé de la plate-forme Android ?
Oui, tout développeur Android peut utiliser l'attestation de clé de la plate-forme Android pour obtenir un enregistrement d'attestation de clé, qu'il peut vérifier avec le certificat public de la clé racine d'attestation de Google. L'API Play Integrity offre aux développeurs les avantages de l'attestation de clé et des fonctionnalités supplémentaires sans avoir à intégrer eux-mêmes l'attestation de clé.
Mesures d'application
Comment les développeurs utilisent-ils les évaluations de l'API Play Integrity ?
C'est aux développeurs de décider d'utiliser ou non les évaluations de l'API Play Integrity, et de choisir de quelle manière procéder. Certains développeurs collectent les signaux pour une analyse interne de lutte contre les utilisations abusives, tandis que d'autres prennent des décisions sur le comportement de leur application en fonction du résultat. Par exemple, les développeurs peuvent décider d'exiger que les appareils moins fiables effectuent des étapes de validation utilisateur supplémentaires lors de la création d'un compte. Ils peuvent également décider que les appareils moins fiables doivent jouer ensemble sur le même serveur multijoueur.
L'API Play Integrity bloque-t-elle des utilisateurs ou des appareils ?
Non, l'API Play Integrity ne bloque pas l'accès à une fonctionnalité en elle-même. Il s'agit d'un service facultatif pour les développeurs qui fournit des signaux. Les développeurs choisissent comment réagir à ces signaux.
Que doivent faire les utilisateurs si leur appareil échoue aux vérifications de l'API Play Integrity ?
Pour y accéder, les utilisateurs peuvent ouvrir l'application Play Store sur leur appareil, accéder au menu "Paramètres", faire défiler la page jusqu'à "À propos", puis consulter la certification Play Protect. Si la certification Play Protect de l'appareil présente un problème, un bouton s'affiche pour que l'utilisateur puisse essayer de le résoudre. L'état de certification de l'appareil sera actualisé et des conseils spécifiques vous seront fournis sur ce qui doit être corrigé.