Panoramica dell'API Play Integrity

L'API Play Integrity ti aiuta a controllare che le azioni degli utenti e le richieste del server provengano dalla tua app originale, installata da Google Play ed eseguita su un dispositivo Android originale. Rilevando interazioni rischiose, come quelle provenienti da versioni di app manomesse, dispositivi non attendibili o ambienti emulati, il server di backend può rispondere con azioni appropriate per prevenire abusi e accessi non autorizzati, combattere le frodi, contrastare le truffe e proteggere gli utenti dagli attacchi.

Panoramica del flusso
dell'API Play Integrity

L'API restituisce esiti che ti aiutano a rilevare potenziali minacce, tra cui:

  • Accesso non autorizzato: il verdetto accountDetails ti aiuta a determinare se l'utente ha installato o pagato la tua app o il tuo gioco su Google Play.
  • Manomissione del codice: il verdetto appIntegrity ti aiuta a determinare se stai interagendo o meno con il tuo file binario non modificato riconosciuto da Google Play.
  • Dispositivi rischiosi e ambienti emulati: l'esito deviceIntegrity ti aiuta a determinare se la tua app è in esecuzione su un dispositivo Android con certificazione Play Protect originale o su un'istanza originale di Google Play Giochi per PC.

Gli sviluppatori di Google Play possono anche attivare la ricezione di verdetti aggiuntivi per rilevare una gamma più ampia di potenziali minacce, tra cui:

  • Dispositivi senza patch: la risposta MEETS_STRONG_INTEGRITY nell'esito deviceIntegrity ti aiuta a determinare se un dispositivo ha applicato aggiornamenti di sicurezza recenti (per i dispositivi con Android 13 e versioni successive).
  • Accesso rischioso da parte di altre app: appAccessRiskVerdict ti aiuta a determinare se sono in esecuzione app che potrebbero essere utilizzate per acquisire la schermata, mostrare overlay o controllare il dispositivo (ad esempio, utilizzando in modo improprio l'autorizzazione di accessibilità).
  • Malware noti: playProtectVerdict ti aiuta a determinare se Google Play Protect è attivo e se ha trovato app rischiose o pericolose installate sul dispositivo.
  • Iperattività:il livello recentDeviceActivity ti aiuta a determinare se un dispositivo ha effettuato un volume di richieste anomalo di recente, il che potrebbe indicare traffico automatizzato e potrebbe essere un segnale di attacco.
  • Abusi ripetuti e dispositivi riutilizzati:deviceRecall (beta) ti aiuta a determinare se stai interagendo con un dispositivo che hai segnalato in precedenza, anche se la tua app è stata reinstallata o il dispositivo è stato ripristinato.

L'API può essere utilizzata su tutti i fattori di forma Android, inclusi smartphone, tablet, pieghevoli, Android Auto, Android TV, Android XR, ChromeOS, Wear OS e su Google Play Giochi per PC.

Considerazioni sulla sicurezza

L'API Play Integrity fornisce il massimo valore per la tua app se segui queste pratiche consigliate:

Avere una strategia contro i comportamenti illeciti

L'API Play Integrity funziona in modo ottimale quando usata insieme ad altri indicatori in quanto parte della tua strategia generale contro i comportamenti illeciti e non come unico meccanismo anti-abuso. Utilizza questa API insieme ad altre best practice di sicurezza appropriate per la tua app. Per impostazione predefinita, la tua app può effettuare fino a 10.000 richieste totali al giorno in tutte le installazioni. Puoi richiedere di aumentare il massimo giornaliero.

Raccogliere la telemetria e comprendere il pubblico prima di intraprendere un'azione

Prima di modificare il comportamento della tua app in base agli esiti dell'API Play Integrity, puoi comprendere la situazione attuale del tuo pubblico esistente implementando l'API senza applicazione forzata. Una volta che sai quali verdetti restituisce la tua base installazioni attuale, puoi stimare l'impatto di qualsiasi applicazione che stai pianificando e adeguare di conseguenza la tua strategia anti-abuso.

Decidi come richiedere gli esiti relativi all'integrità

L'API Play Integrity offre due opzioni per richiedere e ricevere esiti relativi all'integrità. Indipendentemente dal fatto che tu effettui richieste standard, richieste classiche o una combinazione di entrambi i tipi di richiesta, la risposta dell'esito dell'integrità verrà restituita nello stesso formato.

Le richieste API standard sono adatte a qualsiasi app o gioco e possono essere effettuate su richiesta per verificare che qualsiasi azione dell'utente o richiesta del server sia autentica. Le richieste standard hanno la latenza più bassa (in media qualche centinaio di millisecondi) e un'alta affidabilità nell'ottenere un verdetto utilizzabile. Le richieste standard utilizzano la memorizzazione nella cache intelligente sul dispositivo, delegando la protezione da determinati tipi di attacco a Google Play.

Anche le richieste API classiche, il modo originale per richiedere esiti relativi all'integrità, continuano a essere disponibili. Le richieste classiche hanno una latenza maggiore (in media alcuni secondi) e sei responsabile della mitigazione del rischio di determinati tipi di attacchi. Le richieste classiche utilizzano più dati e batteria dell'utente rispetto alle richieste standard perché avviano una nuova valutazione, pertanto devono essere effettuate di rado come controllo una tantum per verificare l'autenticità di un'azione altamente sensibile o preziosa. Se stai valutando la possibilità di effettuare una richiesta classica e memorizzarla nella cache per utilizzarla in un secondo momento, ti consigliamo di effettuare una richiesta standard per ridurre il rischio di attacchi.

La seguente tabella evidenzia alcune differenze chiave tra i due tipi di richieste:

Richiesta API standard Richiesta API classica
Versione minima dell'SDK Android richiesta Android 5.0 (livello API 21) o versioni successive Android 4.4 (livello API 19) o versioni successive
È necessario il warm-up dell'API ✔️ (pochi secondi)
Latenza tipica delle richieste Pochi centesimi di secondo Pochi secondi
Frequenza potenziale delle richieste Frequente (controllo on demand per qualsiasi azione o richiesta) Infrequente (controllo una tantum per le azioni di valore più elevato o le richieste più sensibili)
Mitigare gli attacchi di replay e simili Mitigazione automatica da parte di Google Play Utilizzare il campo nonce con la logica lato server

Puoi visualizzare una tabella con ulteriori differenze nelle considerazioni sulle richieste classiche.

Richiedere un verdetto sull'integrità in un momento opportuno

Devi richiedere un verdetto sul rischio di accesso all'app il più vicino possibile al momento dell'azione o della richiesta del server che vuoi proteggere dall'accesso, per impedire ai truffatori di aggirare il controllo dell'integrità eseguito dalla tua app.

Rendere difficili da replicare le richieste API

Le richieste API standard hanno un campo denominato requestHash che viene utilizzato per proteggere da manomissioni e attacchi simili. In questo campo devi includere un riepilogo di tutti i valori pertinenti della richiesta della tua app. Segui le indicazioni su come utilizzare il binding dei contenuti per proteggere le richieste standard della tua app.

Le richieste API classiche hanno un campo denominato nonce (abbreviazione di "numero una volta"), che viene utilizzato per proteggere da determinati tipi di attacchi, come gli attacchi di replay e manomissione. Segui le indicazioni su come generare nonce per proteggere le richieste classiche della tua app.

Evita di memorizzare nella cache i risultati dell'integrità

La memorizzazione nella cache degli esiti di integrità aumenta il rischio di proxying, ovvero un attacco in cui un malintenzionato riutilizza un esito di un dispositivo valido per scopi illeciti in un altro ambiente. Anziché memorizzare nella cache le risposte, puoi effettuare una richiesta API standard per ottenere un esito su richiesta.

Avere una strategia di applicazione a più livelli

L'esito relativo all'integrità dell'API Play Integrity ha una gamma di possibili risposte che consentono di creare una strategia anti-abuso con più livelli di applicazioni forzate. Per farlo, configura il server di backend della tua app in modo che si comporti in modo diverso a seconda di ogni risposta o gruppo di risposte possibili.

È anche possibile classificare la strategia di applicazione in base all'affidabilità del dispositivo attivando la ricezione di etichette aggiuntive per i dispositivi nella risposta dell'API da Play Console. Ogni dispositivo restituirà tutte le etichette di cui soddisfa i criteri. Ad esempio, dopo aver attivato la ricezione di tutte le etichette dei dispositivi, potresti scegliere di considerare più attendibile un dispositivo che restituisce MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY e MEETS_BASIC_INTEGRITY rispetto a un dispositivo che restituisce solo MEETS_BASIC_INTEGRITY. Puoi rispondere in modo diverso dal server in ogni scenario.

Inviare una serie di risposte dal server alla tua app

Avere una gamma di risultati decisionali è più difficile da replicare rispetto all'invio di una risposta binaria Consenti/Nega dal server all'app per ogni risposta. Ad esempio, puoi utilizzare una serie di risposte correlate come Consenti, Consenti con limiti, Consenti con limiti dopo il completamento del CAPTCHA e Nega.

Rileva abusi ripetuti utilizzando il richiamo del dispositivo, preservando al contempo la privacy dell'utente

Il richiamo del dispositivo consente alle app di memorizzare e richiamare alcuni dati personalizzati associati a un dispositivo specifico in modo da preservare la privacy dell'utente. I dati vengono archiviati sui server di Google, consentendo all'app di richiamare in modo affidabile i dati su ogni dispositivo anche dopo la reinstallazione dell'app o il ripristino del dispositivo. In questo modo, puoi identificare nuovamente un dispositivo che hai trovato abusivo in passato, in modo da poter intervenire e impedire che venga nuovamente utilizzato per abusi. Puoi definire il tuo significato per i tre valori che compongono i dati di richiamo del dispositivo:

  • Puoi utilizzarli come tre flag o valori booleani separati. Ad esempio, i valori potrebbero indicare se un dispositivo ha creato o meno un account, se ha o meno usufruito di una prova senza costi oppure se è o meno noto per abusi di gravità elevata.
  • In alternativa, puoi combinare tutti gli stati dei valori in un massimo di otto etichette personalizzate, ad esempio un'etichetta per lo stato predefinito quando tutti e tre i valori non vengono modificati e sette etichette con significati personalizzati. In questo modo puoi segmentare tutti i dispositivi in un massimo di otto gruppi in base a comportamenti o azioni che definisci. In questo scenario, l'writeDates aggiornato più di recente tra i tre indica l'ultimo aggiornamento dell'etichetta.

Tieni presente anche i prerequisiti e altre considerazioni quando lavori con i dati di ritiro dei dispositivi.

Rilevare abusi su larga scala utilizzando l'attività recente del dispositivo

Utilizza la funzionalità Attività recente del dispositivo nell'API Play Integrity per trovare i dispositivi che richiedono un numero elevato di token di integrità. Gli autori di abusi di attività ad alto volume generano comunemente risultati di attestazione validi da dispositivi reali e li forniscono ai bot per automatizzare gli attacchi a dispositivi rooted ed emulatori. Puoi utilizzare il livello di attività recente del dispositivo per controllare quante attestazioni sono state generate dalla tua app su quel dispositivo nell'ultima ora.

Mostra messaggi di errore azionabili

Quando possibile, fornisci utili messaggi di errore all'utente e fagli sapere cosa può fare per risolvere il problema, ad esempio riprovare, attivare la connessione a internet o verificare che l'app Play Store sia aggiornata.

Avere un piano per problemi o interruzioni imprevisti

La dashboard dello stato di Play mostra informazioni sullo stato del servizio dell'API Play Integrity, nonché informazioni su eventuali interruzioni e problemi. Devi pianificare in anticipo il modo in cui vuoi che il server di backend funzioni nell'improbabile eventualità di un'interruzione su larga scala dell'API Play Integrity. Tieni presente che il tuo server di backend deve essere pronto a funzionare nel caso in cui le chiavi di attestazione della piattaforma Android specifiche per i dispositivi vengano revocate.

Valuta soluzioni aziendali antifrode end-to-end

I clienti aziendali che cercano una soluzione completa di gestione di frodi e bot possono acquistare reCAPTCHA Enterprise per il mobile, che include SDK per Android che forniscono agli sviluppatori punteggi di rischio di frode. reCAPTCHA Enterprise include automaticamente gli indicatori dell'API Play Integrity e li combina con gli indicatori di rete e delle applicazioni reCAPTCHA per i clienti, fornendo una soluzione di gestione delle frodi invisibile e senza problemi. Può anche fornire protezione per le app per Android in cui l'API Play Integrity non è disponibile.

Verifica del traffico rischioso quando si accede a funzionalità sensibili o di alto valore

Identifica le azioni sensibili o di alto valore nella tua app o nel tuo gioco da proteggere con l'API Play Integrity anziché negare l'accesso in modo assoluto. Se possibile, metti in discussione il traffico rischioso prima di consentire l'esecuzione di azioni di alto valore. Ad esempio, quando il rischio di accesso all'app indica che è in esecuzione un'app che potrebbe acquisire lo schermo, chiedi all'utente di disattivare o disinstallare le app che possono acquisire lo schermo prima di consentirgli di procedere alla funzionalità che vuoi proteggere.

Termini di servizio e sicurezza dei dati

Se accedi all'API Play Integrity o la utilizzi, accetti i Termini di servizio dell'API Play Integrity. Prima di accedere all'API, leggi e comprendi tutti i termini e le norme applicabili.

Google Play ha una sezione Sicurezza dei dati in cui gli sviluppatori possono comunicare le prassi di raccolta, condivisione e sicurezza dei dati delle loro app per tenere informati gli utenti. Per aiutarti a compilare il modulo dei dati, consulta queste informazioni su come l'API Play Integrity gestisce i dati.