Panoramica dell'API Play Integrity

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

Se la tua app o il tuo gioco vengono usati 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 stabilire se stai interagendo con quanto segue:

  • File binario dell'app originale: consente di stabilire se stai interagendo o meno con il tuo codice binario non modificato riconosciuto da Google Play.
  • Installazione Play originale: consente di stabilire se l'account utente corrente è autorizzato a disporre della licenza, ossia se l'utente ha installato o pagato 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).

Puoi anche scegliere di ricevere informazioni sull'ambiente nella risposta dell'API Play Integrity, tra cui:

  • Rischio di accesso alle app: consente di stabilire se sono in esecuzione delle app che potrebbero essere utilizzate per acquisire lo schermo, visualizzare gli overlay o controllare il dispositivo.
  • Rischio derivante da malware noto:consente di stabilire se la funzionalità Google Play Protect è attiva 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 si sia verificata nel programma binario dell'app originale, installato da Google Play, in esecuzione su un dispositivo Android originale. Puoi anche attivare ulteriori informazioni nella risposta, tra cui il volume di richieste effettuate di recente da un dispositivo e gli indicatori sull'ambiente, tra cui il verdetto del rischio di accesso all'app e l'esito di Play Protect. Se ci sono problemi con l'esito, il server di backend dell'app può decidere cosa fare per difenderti da problemi quali abuso e attività fraudolenta, uso improprio, 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 pratiche consigliate:

Adottare una strategia anti-abuso

L'API Play Integrity funziona al meglio se utilizzata insieme ad altri indicatori nell'ambito della tua strategia anti-abuso generale e non come unico meccanismo anti-abuso. Usa questa API insieme ad altre best practice per la sicurezza appropriate per la tua app. Per impostazione predefinita, l'app può effettuare fino a 10.000 richieste totali al giorno per tutte le installazioni. Puoi richiedere di aumentare il tuo limite massimo giornaliero.

Raccogli dati di telemetria e comprendi il tuo pubblico prima di intraprendere qualsiasi azione

Prima di modificare il comportamento della tua app in base agli esiti dell'API Play Integrity, puoi comprendere la situazione attuale con il tuo pubblico esistente implementando l'API senza applicazione. Una volta identificati gli esiti delle installazioni attive attuali, puoi stimare l'impatto di qualsiasi applicazione che stai pianificando e modificare 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 i verdetti relativi all'integrità. Sia che tu effettui 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'ottenimento di un verdetto utilizzabile. Le richieste standard sfruttano la memorizzazione nella cache intelligente sul dispositivo e delegano la protezione da alcuni tipi di attacchi a Google Play.

Anche le richieste API classiche, il modo originale per richiedere esiti relativi all'integrità, continueranno a essere disponibili. Le richieste classiche hanno una latenza maggiore (pochi secondi in media) ed è tua responsabilità ridurre 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 quindi dovrebbero essere effettuate raramente come una tantum per verificare se un'azione molto sensibile o importante è autentica. Se stai considerando 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 fondamentali 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
Riscaldamento dell'API richiesto ✔️ (pochi secondi)
Latenza tipica delle richieste Poche centinaia di millisecondi Pochi secondi
Frequenza potenziale delle richieste Frequente (controllo su richiesta per qualsiasi azione o richiesta) Raro (controllo una tantum delle azioni di valore più elevato o della maggior parte delle richieste sensibili)
Mitigare contro le repliche e gli attacchi simili Mitigazione automatica di Google Play Utilizza il campo nonce con la logica lato server

Puoi visualizzare una tabella con più differenze nelle considerazioni relative alle richieste nella versione classica.

Richiedi un esito relativo all'integrità al momento opportuno

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

Rendere difficili le richieste API 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 un digest di tutti i valori pertinenti della richiesta della tua 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 denominato nonce (abbreviazione di numero una volta), utilizzato per proteggere da determinati tipi di attacchi, come quelli di ripetizione e manomissione. Segui le indicazioni su come generare criteri 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 proxying, un attacco in cui un utente malintenzionato riutilizza l'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 presenta una serie di possibili risposte, che consentono di creare una strategia anti-abuso con più livelli di applicazione. Puoi farlo configurando il server di backend dell'app in modo che si comporti in modo diverso a seconda di ogni possibile risposta o gruppo di risposte.

È inoltre possibile livelli la strategia di applicazione in base all'affidabilità dei dispositivi attivando la ricezione di etichette dei dispositivi 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 del dispositivo, 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 solo MEETS_BASIC_INTEGRITY. Puoi rispondere in modo diverso dal server in ogni scenario.

Invia una serie di risposte dal tuo server alla tua app

Avere una serie 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 di CAPTCHA e Nega.

Rileva abusi su larga scala utilizzando le attività recenti del dispositivo

Usa la funzionalità relativa alle attività recenti del dispositivo nell'API Play Integrity per trovare i dispositivi che richiedono un numero elevato di token di integrità. Gli autori di comportamenti illeciti che eseguono attività ad alto volume di solito generano risultati di attestazioni validi da dispositivi reali e li forniscono a bot per automatizzare gli attacchi su emulatori e dispositivi rooted. 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 strategici

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

Prepara un piano per problemi o interruzioni imprevisti

La dashboard dello stato di Google Play mostra informazioni sullo stato del servizio dell'API Play Integrity, oltre su eventuali interruzioni. Dovresti pianificare in anticipo il modo in cui vuoi che funzioni il tuo server di backend nell'improbabile caso di interruzione dell'API Play Integrity su larga scala.

Valuta le soluzioni antifrode aziendali end-to-end

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

Sfida il traffico rischioso quando si accede a funzionalità sensibili o di alto valore

Identifica azioni sensibili o di valore elevato nella tua app o nel tuo gioco da proteggere con l'API Play Integrity, anziché negare del tutto l'accesso. Se possibile, sfida il traffico pericoloso prima di consentire il completamento di azioni di alto valore. Ad esempio, se il rischio di accesso all'app indica che è in esecuzione un'app che potrebbe acquisire la schermata, chiedi all'utente di disattivare o disinstallare le app in grado di acquisire la schermata prima di consentire di passare alle 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. Leggi e comprendi tutti i termini e le norme applicabili prima di accedere all'API.

Google Play ha una sezione Sicurezza dei dati che consente agli sviluppatori di comunicare le prassi di raccolta, condivisione e sicurezza dei dati delle loro app al fine di 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.