Lompat ke konten

__CAPGO_KEEP_0__

Pada iOS, plugin ini menggunakan Apple App Attest dari DeviceCheck framework.

  • iOS 14+
  • Perangkat fisik direkomendasikan untuk aliran validasi nyata
  • Target Xcode dengan kemampuan App Attest diaktifkan
  1. Buka target aplikasi iOS Anda di Xcode.
  2. Pergi ke Tanda Tangan dan Kemampuan.
  3. Klik Kemampuan dan tambahkan Attest Aplikasi.

Tidak ada izin iOS khusus yang diperlukan di Info.plist untuk Attest Aplikasi itu sendiri.

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

Kirim attestation.token dan assertion.token ke backend Anda. Tidak validasi mereka di aplikasi.

  1. Backend membuat kode unik challenge.
  2. Aplikasi memanggil createAttestation({ keyId, challenge }).
  3. Backend memverifikasi Attest aplikasi:
    • rantai sertifikat valid dan teranak ke Apple App Attest
    • identitas aplikasi sesuai dengan aplikasi Anda (bundleId, tim
    • clientDataHash matches SHA256(challenge)
  4. Simpan status kunci perangkat (keyId, kunci publik, dan metadata verifikasi).
  1. Backend membuat satu-satunya payload (atau input hash permintaan kanonik).
  2. Aplikasi memanggil createAssertion({ keyId, payload }).
  3. Backend memverifikasi tanda tangan asertasi dengan bahan kunci yang disimpan sebelumnya.
  4. Tetapkan perlindungan ulang dan periksa TTL nonce.
sequenceDiagram
participant App as iOS App
participant Plugin as AppAttest plugin
participant Apple as Apple App Attest
participant BE as Backend
BE->>App: one-time challenge
App->>Plugin: prepare()
Plugin->>Apple: generateKey()
Apple-->>Plugin: keyId
App->>Plugin: createAttestation(keyId, challenge)
Plugin->>Apple: attestKey(keyId, SHA256(challenge))
Apple-->>Plugin: attestation token
Plugin-->>App: token + platform + format + keyId
App->>BE: token + challenge + keyId
BE->>BE: verify Apple attestation rules
BE->>App: one-time payload
App->>Plugin: createAssertion(keyId, payload)
Plugin->>Apple: generateAssertion(keyId, SHA256(payload))
Apple-->>Plugin: assertion token
Plugin-->>App: token + platform + format + keyId
App->>BE: token + payload + keyId
BE->>BE: verify signature + replay policy

Pendaftaran:

{
"platform": "ios",
"format": "apple-app-attest",
"keyId": "string",
"challenge": "string",
"token": "string"
}

Pernyataan:

{
"platform": "ios",
"format": "apple-app-attest",
"keyId": "string",
"payload": "string",
"token": "string"
}

Lanjutkan dari Setup iOS & Verifikasi Backend

Bagian berjudul “Lanjutkan dari Setup iOS & Verifikasi Backend”

Jika Anda menggunakan Setup iOS & 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 dalam Enkripsi, Kinerja untuk detail implementasi dalam Kinerja, Capgo Scanner Keamanan untuk alur kerja produk dalam Capgo Scanner Keamanan, dan Capgo Keamanan untuk alur kerja produk dalam Capgo Keamanan.