Lompat ke konten

Setup Android & Verifikasi Backend

GitHub

Pada Android, plugin ini menggunakan Standar Integritas Google Play API:

  • prepareIntegrityToken selama prepare()
  • requestStandardIntegrityToken untuk createAttestation() dan createAssertion()
  • Aplikasi Android yang didistribusikan melalui ekosistem Google Play
  • Jasa Google Play tersedia di perangkat
  • Play Integrity API enabled for your app
  • Nomor proyek Google Cloud yang dikonfigurasi
  1. Aktifkan Play Integrity API di proyek Cloud Google Anda.
  2. Buka Console Bermain dan atur akses Integrity Play untuk aplikasi Anda.
  3. Sediakan cloudProjectNumber ke plugin.
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

Anda juga dapat melewati cloudProjectNumber per panggilan dalam opsi metode.

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 adalah token integritas Play dan harus di-dekode di sisi server.

  1. Backend membuat kode satu kali challenge.
  2. Aplikasi memanggil createAttestation({ keyId, challenge }).
  3. Backend memanggil Google decodeIntegrityToken API.
  4. Backend memverifikasi setidaknya:
    • requestDetails.requestHash === base64url(SHA256(challenge))
    • appIntegrity.packageName sama dengan ID aplikasi Android Anda
    • appIntegrity.certificateSha256Digest mengandung digest sertifikat tanda tangan rilis Anda
    • verifikasi integritas sesuai dengan kebijakan keamanan Anda

Perlindungan Permintaan (createAssertion)

Bab berjudul “Perlindungan Permintaan (createAssertion)”
  1. Backend membuat token satu kali payload.
  2. Aplikasi memanggil createAssertion({ keyId, payload }).
  3. Backend memecahkan token dan memeriksa requestHash === base64url(SHA256(payload)).
  4. Menggunakan kebijakan verifikasi integritas dan pencegahan ulang (single-use + TTL).
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

Pendaftaran:

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

Pernyataan:

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

Lanjutkan dari Pengaturan Android dan Verifikasi Backend

Judul Bagian “Lanjutkan dari Pengaturan Android dan Verifikasi Backend”

Jika Anda menggunakan Pengaturan Android dan Verifikasi Backend untuk merencanakan keamanan dan kinerja, hubungkannya dengan Menggunakan @capgo/capacitor-app-attest untuk kemampuan asli dalam Menggunakan @capgo/capacitor-app-attest, Enkripsi untuk detail implementasi di Pengamanan Enkripsi, Kemampuan Kompatibilitas untuk detail implementasi di Kemampuan Kompatibilitas, Capgo Scanner Keamanan untuk alur kerja produk di Capgo Scanner Keamanan, dan Capgo Keamanan for the product workflow in Capgo Security.