Configuración de iOS y verificación de backend
Copie un prompt de configuración con los pasos de instalación y la guía de markdown completa para este plugin.
Sistema nativo de iOS utilizado
Sección titulada “Sistema nativo de iOS utilizado”En iOS, este plugin utiliza Apple App Attest desde el DeviceCheck framework
Requisitos
Sección titulada “Requisitos”- iOS 14+
- Se recomienda un dispositivo físico para flujos de validación reales
- Objetivo de Xcode con la capacidad de App Attest habilitada
Configuración de Xcode
Sección titulada “Configuración de Xcode”- Abra su objetivo de aplicación iOS en Xcode.
- Vaya a Configuración y firmas.
- Haga clic + Capacidad y agregar App Attest.
ninguna permiso de iOS personalizado es requerido en Info.plist para App Attest en sí.
Flujo del cliente
Sección titulada “Flujo del cliente”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',});Enviar attestation.token y assertion.token a su servidor backend. No los validen en la aplicación.
Flujo de trabajo de servidor (iOS)
Sección titulada “Flujo de trabajo de servidor (iOS)”Registro (createAttestation)
Sección titulada “Registro (createAttestation)”- El servidor crea una
challenge. - La aplicación llama a
createAttestation({ keyId, challenge }). - El servidor verifica la attestación de App Attest:
- La cadena de certificados es válida y está anclada a Apple App Attest
- La identidad de la aplicación coincide con su aplicación (
bundleIdequipo) clientDataHashcoincideSHA256(challenge)
- Estado de la clave del dispositivo en la tienda (
keyIdclave pública, y metadatos del verificador).
Solicitar protección (createAssertion)
Sección titulada “Solicitar protección (crear aserción)”- El servidor crea una solicitud de una sola vez
payload(o el hash de solicitud canónica de entrada). - La aplicación llama
createAssertion({ keyId, payload }). - El servidor verifica la firma de la aserción con el material de clave almacenado previamente.
- Aplicar protección contra retransmisiones y comprobaciones de TTL de nonce.
Esquema de iOS
Sección titulada “Esquema de iOS”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 policyContrato de contrato de backend mínimo
Sección titulada “Contrato de contrato de backend mínimo”Registro:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "challenge": "string", "token": "string"}Declaración:
{ "platform": "ios", "format": "apple-app-attest", "keyId": "string", "payload": "string", "token": "string"}Continuar desde Configuración de iOS y Verificación de Backend
Título de la sección “Continuar desde Configuración de iOS y Verificación de Backend”Si está utilizando Configuración de iOS y Verificación de Backend para planificar la seguridad y la conformidad, conecte con Usando @capgo/capacitor-app-attest para la capacidad nativa en Usando @capgo/capacitor-app-attest la cifrado para el detalle de implementación en la cifrado, Compliance para los detalles de implementación en Compliance 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.