Panoramica dell'API Play Integrity

L'API Play Integrity ti aiuta a controllare che le interazioni e le richieste del server provengano dal programma binario dell'app originale in esecuzione su un dispositivo Android originale. Individuando le interazioni potenzialmente rischiose e fraudolente, ad esempio da versioni dell'app manomesse e ambienti non attendibili, il server di backend dell'app può rispondere con azioni appropriate per prevenire gli attacchi e ridurre gli abusi.

Quando la tua app o il tuo gioco vengono utilizzati su un dispositivo Android con il Google Play Store e con Google Play Services, l'API Play Integrity fornisce una risposta che ti aiuta a determinare se stai interagendo con quanto segue:

  • File binario dell'app originale: consente di stabilire se stai interagendo o meno con il tuo file binario non modificato riconosciuto da Google Play.
  • Installazione Play originale: consente di stabilire se l'account utente corrente dispone di una licenza, ovvero se l'utente ha installato o acquistato l'app o il gioco su Google Play.
  • Dispositivo Android originale: consente di stabilire se la tua app è installata o meno su un dispositivo Android originale con Google Play Services (o un'istanza originale di Google Play Giochi per PC).
  • Senza malware noto: consente di stabilire se Google Play Protect è attivo e se ha trovato app rischiose o pericolose installate sul dispositivo.

Panoramica

Quando un utente esegue un'azione nella tua app, puoi chiamare l'API Play Integrity per verificare che l'azione sia avvenuta nel programma binario dell'app originale, installato da Google Play e in esecuzione su un dispositivo Android originale. Puoi anche attivare gli indicatori relativi all'ambiente, ad esempio se Google Play Protect è attivo e ha rilevato malware noto installato sul dispositivo. Se si verificano problemi con i verdetto, il server di backend dell'app può decidere cosa fare per difenderti da problemi quali abusi e attività fraudolente, uso improprio e imbrogli, accesso non autorizzato e attacchi.

Flusso di panoramica dell'API
Play Integrity

Considerazioni sulla sicurezza

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

Adotta una strategia anti-abuso

L'API Play Integrity funziona al meglio se utilizzata insieme ad altri indicatori nell'ambito della strategia anti-abuso generale e non come unico meccanismo anti-abuso. Utilizza questa API in combinazione con 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 per tutte le installazioni. Puoi richiedere di aumentare il numero massimo giornaliero.

Decidi come richiedere gli esiti relativi all'integrità

L'API Play Integrity offre due opzioni per richiedere e ricevere i test di integrità. A prescindere dal fatto che si effettuino richieste standard, richieste classiche o una combinazione di entrambi i tipi di richieste, la risposta sull'esito relativo all'integrità verrà restituita nello stesso formato.

Le richieste API standard sono adatte a qualsiasi app o gioco e possono essere effettuate on demand per verificare che qualsiasi azione dell'utente o richiesta del server sia autentica. Le richieste standard hanno la latenza più bassa (alcune centinaia di millisecondi in media) e un'elevata affidabilità nell'ottenere un esito utilizzabile. Le richieste standard utilizzano la memorizzazione nella cache intelligente sul dispositivo e delegano la protezione da determinati tipi di attacchi 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 (alcuni secondi in media) ed è tua responsabilità mitigare il rischio di alcuni tipi di attacchi. Le richieste classiche utilizzano più dati e batteria dell'utente rispetto alle richieste standard perché avviano una nuova valutazione e, pertanto, dovrebbero essere eseguite raramente come una tantum per verificare se un'azione molto sensibile o importante sia autentica. Se stai considerando la possibilità di effettuare una richiesta classica e di memorizzarla nella cache per utilizzarla in seguito, dovresti effettuare una richiesta standard per ridurre il rischio di attacchi.

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

Richiesta API standard Richiesta API classica
Versione minima dell'SDK Android obbligatoria Android 5.0 (livello API 21) o versioni successive Android 4.4 (livello API 19) o versioni successive
Preparazione dell'API obbligatoria ✔️ (pochi secondi)
Latenza tipica delle richieste Alcune centinaia di millisecondi Alcuni secondi
Frequenza potenziale delle richieste Frequente (controllo on demand di qualsiasi azione o richiesta) Non frequente (controllo una tantum delle azioni di maggior valore o delle richieste più sensibili)
Mitigare contro attacchi di ripetizione e simili Mitigazione automatica da parte di Google Play Utilizza il campo nonce con la logica lato server

Puoi visualizzare una tabella con più differenze nelle considerazioni delle richieste classiche.

Rendere le richieste API difficili da replicare

Le richieste API standard hanno un campo denominato requestHash che viene utilizzato per proteggere da manomissioni e attacchi simili. In questo campo, devi includere una sintesi di tutti i valori pertinenti della richiesta dell'app. Segui le indicazioni su come utilizzare l'associazione di contenuti per proteggere le richieste standard della tua app.

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

Evita gli esiti relativi all'integrità della memorizzazione nella cache

Gli esiti relativi all'integrità nella cache aumentano il rischio di proxy, ovvero un attacco in cui un utente malintenzionato riutilizza un esito di un dispositivo valido per scopi illeciti in un altro ambiente. Invece di memorizzare le risposte nella cache, puoi effettuare una richiesta API standard per ottenere un esito on demand.

Avere una strategia di applicazione a più livelli

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

È anche possibile creare un livello di strategia di applicazione forzata in base all'affidabilità dei dispositivi attivando la ricezione di etichette dispositivo aggiuntive nella risposta 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, puoi scegliere di considerare attendibile un dispositivo che restituisce MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY e MEETS_BASIC_INTEGRITY più di un dispositivo che restituisce soltanto MEETS_BASIC_INTEGRITY. In ogni scenario puoi rispondere in modo diverso dal server.

Invia una serie di risposte dal server all'app

Avere un intervallo di risultati decisionali è più difficile da replicare rispetto all'invio di una risposta binaria Consenti/negata 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 Rifiuta.

Rilevare comportamenti illeciti su larga scala

Usa la funzionalità Attività recente del dispositivo nell'API Play Integrity per trovare i dispositivi che richiedono un numero elevato di attestazioni. Gli autori di abusi su volumi elevati di solito generano risultati di attestazione validi da dispositivi reali e li forniscono a bot per automatizzare gli attacchi su emulatori e dispositivi rooted. Puoi utilizzare i risultati recenti relativi all'attività del dispositivo per determinare il numero di attestazioni generate dalla tua app su un dispositivo nell'ultima ora.

Mostra messaggi di errore strategici

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

Prepara un piano per interruzioni o problemi imprevisti

La dashboard dello stato di Google Play mostra le informazioni sullo stato del servizio dell'API Play Integrity e su eventuali interruzioni e interruzioni. Puoi configurare in anticipo il funzionamento del server di backend nell'improbabile caso di un'interruzione dell'API Play Integrity su larga scala.

Valutare soluzioni end-to-end antifrode aziendali

I clienti aziendali alla ricerca di una soluzione completa per la gestione di attività fraudolente e bot possono acquistare reCAPTCHA Enterprise per dispositivi mobili, che include SDK per Android che forniscono punteggi del rischio di attività fraudolenta agli sviluppatori. reCAPTCHA Enterprise include automaticamente indicatori dell'API Play Integrity e li combina con indicatori di rete e delle applicazioni per i clienti, fornendo una soluzione preconfigurata e invisibile per la gestione delle frodi. Può anche fornire protezione per le app Android in cui l'API Play Integrity non è disponibile.

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 relativo ai dati, consulta queste informazioni su come l'API Play Integrity gestisce i dati.