메인 콘텐츠로 건너뛰기

iOS 설정 및 백엔드 확인

GitHub

iOS에서 사용하는 네이티브 시스템

iOS 네이티브 시스템 사용하는 부분

iOS에서 이 플러그인은 애플 앱 아타스 에서 DeviceCheck 프레임워크.

  • iOS 14+
  • 실제 검증 흐름을 위해 물리 장치가 권장됩니다.
  • App Attest 기능이 활성화된 Xcode 대상
  1. 다음으로 이동하세요.
  2. 인증 및 기능 클릭.
  3. 기능 추가 능력 그리고 추가 앱 증명.

iOS에서 사용할 수 있는 커스텀 권한이 없습니다. Info.plist 앱 증명 자체에 대해.

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',
});

보내기 attestation.token 그리고 assertion.token 서버로 전송. 앱에서 검증하지 마세요.

등록 (createAttestation)

제목 '등록 (createAttestation)'
  1. 백엔드가 일회용 challenge.
  2. 앱이 호출합니다. createAttestation({ keyId, challenge }).
  3. 백엔드가 앱 attestation (App Attest) 검증:
    • 인증서 체인은 유효하고 Apple App Attest에-anchor
    • 앱 식별 정보는 앱 (bundleId, 팀)과 일치합니다.
    • clientDataHash 일치 SHA256(challenge)
  4. 스토어 기기 키 상태 (keyId, 공개 키 및 검증자 메타데이터).

요청 보호 (createAssertion)

Request 보호 (createAssertion)
  1. 백엔드가 일회용 payload (또는 canonical request hash 입력).
  2. 앱이 호출 createAssertion({ keyId, payload }).
  3. 백엔드가 이전에 저장된 키 자료와 함께 확인 서명 확인.
  4. 재생보호 강제 및 nonce TTL 검사.
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

최소 백엔드 페이로드 계약

Section titled “Minimal backend payload contract”

등록:

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

주장:

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

iOS 설정 및 백엔드 확인에서 계속하기

iOS 설정 및 백엔드 확인에서 계속하기 제목

Capgo를 사용 중이라면 iOS 설정 및 백엔드 확인 보안 및 규정 준수 계획을 위해 연결하세요. @capgo/capacitor-app-attest를 사용하여 Capgo를 사용하여 @capgo/capacitor-app-attest를 사용하는 암호화 암호화 구현 세부 사항 [__CAPGO_KEEP_0__] 준수 __CAPGO_KEEP_0__ 준수 구현 세부 사항에 대해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에 대해 Capgo 보안 Capgo 보안의 제품 워크플로에 대해