Saltare al contenuto

Installazione di Android e verifica del backend

GitHub

Sul sistema Android, questo plugin utilizza Google Play Integrity Standard API:

  • prepareIntegrityToken Durante prepare()
  • requestStandardIntegrityToken Per createAttestation() E createAssertion()
  • App Android distribuita attraverso l'ecosistema Google Play
  • Servizi Google Play disponibili sul dispositivo
  • Integrità Play API abilitata per l'app
  • Numero del progetto Google Cloud configurato
  1. Abilita Integrità di Gioco API Inserisci il tuo progetto Cloud Google.
  2. Apre il Console di Gioco e configura l'accesso all'integrità di Gioco per la tua app.
  3. Offri cloudProjectNumber ai plugin.
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

Puoi anche passare cloudProjectNumber per chiamata in opzioni di metodo.

Ciclo del client

Flusso del clienti
import { AppAttest } from '@capgo/capacitor-app-attest';
const { keyId } = await AppAttest.prepare({
cloudProjectNumber: '123456789012',
});
const attestation = await AppAttest.createAttestation({
keyId,
challenge: 'backend-registration-challenge',
});
const assertion = await AppAttest.createAssertion({
keyId,
payload: 'backend-request-payload',
});

token è un token di integrità Play e deve essere decodificato sul lato server.

Flusso di lavoro del backend (Android)

Flusso di lavoro del backend (Android)

Registrazione (createAttestation)

Flusso di lavoro del backend crea un token unico
  1. L'app chiama challenge.
  2. L'app chiama Google createAttestation({ keyId, challenge }).
  3. __CAPGO_KEEP_0__. decodeIntegrityToken API.
  4. Backend verifica almeno:
    • requestDetails.requestHash === base64url(SHA256(challenge))
    • appIntegrity.packageName è uguale all'ID dell'applicazione Android
    • appIntegrity.certificateSha256Digest contiene il digest del certificato di firma di rilascio
    • i verificativi di integrità corrispondono alla tua politica di sicurezza

Richiedi protezione (createAssertion)createAssertion)

Sottosezione intitolata “Richiedi protezione (createAssertion)”
  1. Backend crea un token di una sola volta payload.
  2. L'app chiama createAssertion({ keyId, payload }).
  3. Backend decodifica il token e controlla requestHash === base64url(SHA256(payload)).
  4. Applica la prevenzione della riproposta (uso singolo + TTL) e la politica dei verificativi di integrità.
sequenceDiagram
participant App as Android App
participant Plugin as AppAttest plugin
participant PlaySDK as Play Integrity SDK
participant BE as Backend
participant Google as decodeIntegrityToken API
App->>Plugin: prepare(cloudProjectNumber)
Plugin->>PlaySDK: prepareIntegrityToken()
PlaySDK-->>Plugin: provider handle (keyId)
BE->>App: one-time challenge
App->>Plugin: createAttestation(keyId, challenge)
Plugin->>PlaySDK: requestStandardIntegrityToken(requestHash)
PlaySDK-->>Plugin: integrity token
Plugin-->>App: token + platform + format + keyId
App->>BE: token + challenge + keyId
BE->>Google: decodeIntegrityToken(token)
Google-->>BE: decoded payload
BE->>BE: verify requestHash + app identity + verdicts
BE->>App: one-time payload
App->>Plugin: createAssertion(keyId, payload)
Plugin->>PlaySDK: requestStandardIntegrityToken(requestHash)
PlaySDK-->>Plugin: integrity token
App->>BE: token + payload + keyId
BE->>Google: decodeIntegrityToken(token)
Google-->>BE: decoded payload
BE->>BE: verify requestHash + replay policy

Iscrizione:

{
"platform": "android",
"format": "google-play-integrity-standard",
"keyId": "string",
"challenge": "string",
"token": "string"
}

Affermazione:

{
"platform": "android",
"format": "google-play-integrity-standard",
"keyId": "string",
"payload": "string",
"token": "string"
}

Se stai utilizzando Setup Android & Verifica Backend per pianificare la sicurezza e la conformità, connettilo con Utilizzando @capgo/capacitor-app-attest per la capacità nativa in Utilizzo di @capgo/capacitor-app-attest, Crittografia per il dettaglio di implementazione in Crittografia, Conformità per il dettaglio di implementazione in Conformità, Capgo Scanner di Sicurezza per il workflow del prodotto in Capgo Scanner di Sicurezza, e Capgo Sicurezza per il workflow del prodotto in Capgo Sicurezza.