Saltar al contenido

Configuración de Android y verificación del servidor

GitHub

En Android, este plugin utiliza El estándar de integridad de Google Play API:

  • prepareIntegrityToken durante prepare()
  • requestStandardIntegrityToken para createAttestation() y createAssertion()

Requisitos

Requisitos
  • Aplicación de Android distribuida a través del ecosistema de Google Play
  • Los servicios de Google Play están disponibles en el dispositivo
  • Play Integrity API enabled for your app
  • Se ha configurado el número de proyecto de Google Cloud

Configuración de Google

Habilitar
  1. y Integridad de Play API en su proyecto de Cloud de Google.
  2. Abra la consola de Play y configure el acceso a la integridad de Play para su aplicación.
  3. Proporcionar cloudProjectNumber a la extensión.
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

También puede pasar cloudProjectNumber por llamada en opciones de método.

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 es un token de integridad de Play y debe ser descodificado en el lado del servidor.

  1. El servidor crea un token de una sola vez challenge.
  2. La aplicación llama createAttestation({ keyId, challenge }).
  3. El servidor llama a Google decodeIntegrityToken API.
  4. El servidor verifica al menos:
    • requestDetails.requestHash === base64url(SHA256(challenge))
    • appIntegrity.packageName iguala su identificador de aplicación Android
    • appIntegrity.certificateSha256Digest contiene el digest de certificado de firma de liberación de su aplicación
    • los veredictos de integridad coinciden con su política de seguridad

Solicitar protección (createAssertion)createAssertion)

Sección titulada “Solicitar protección (createAssertion)”
  1. El servidor crea un token de una sola vez payload.
  2. La aplicación llama createAssertion({ keyId, payload }).
  3. El servidor descifra el token y verifica requestHash === base64url(SHA256(payload)).
  4. Aplicar la prevención de retransmisiones (uso único + TTL) y la política de veredictos de integridad.
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

Registro:

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

Declaración:

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

Continuar desde Configuración de Android y Verificación de Backend

Sección titulada “Continuar desde Configuración de Android y Verificación de Backend”

Si estás utilizando Configuración de Android y Verificación de Backend para planificar la seguridad y la conformidad, conecta con Usando @capgo/capacitor-app-attest para la capacidad nativa en Usando @capgo/capacitor-app-attest, Cifrado para el detalle de implementación en Cifrado, Cumplimiento para el detalle de implementación en Cumplimiento, Capgo Escáner de Seguridad para el flujo de trabajo del producto en Capgo Escáner de Seguridad, y Capgo Seguridad para el flujo de trabajo del producto en Capgo Seguridad.