내용으로 건너뛰기

안드로이드 설정 및 백엔드 검증

GitHub

안드로이드 네이티브 시스템 사용

안드로이드에서 이 플러그인은

구글 플레이 인TEGRITY 표준 __CAPGO_KEEP_0__ Google Play Integrity Standard API:

  • prepareIntegrityToken during prepare()
  • requestStandardIntegrityToken for createAttestation() 및 createAssertion()
  • 장치에 Google Play 서비스가 사용 가능합니다.
  • Play Integrity __CAPGO_KEEP_0__가 앱에 활성화되어 있습니다.
  • 애플리케이션에 Play Integrity API 활성화
  • Google 설정
  1. Google 설정 Play Integrity API Google Cloud 프로젝트 내에서.
  2. Play Console을 열고 앱에 대한 Play Integrity 접근 권한을 구성하세요.
  3. 제공 cloudProjectNumber 플러그인에

Capacitor 설정

Capacitor 설정
capacitor.config.ts
plugins: {
AppAttest: {
cloudProjectNumber: '123456789012',
},
}

클립보드에 복사 cloudProjectNumber 메소드 옵션에서 호출당할 수 있는

클라이언트 흐름

클라이언트 흐름
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 Play Integrity 토큰이므로 서버측에서 디코딩해야 합니다.

Android 백엔드 워크플로우

Android 백엔드 워크플로우

Registration (createAttestation)

Android 백엔드가 일회용
  1. 앱이 호출합니다. challenge.
  2. App 호출 createAttestation({ keyId, challenge }).
  3. __CAPGO_KEEP_0__. decodeIntegrityToken API.
  4. Android 애플리케이션 ID와 일치합니다.
    • requestDetails.requestHash === base64url(SHA256(challenge))
    • appIntegrity.packageName __CAPGO_KEEP_0__.
    • appIntegrity.certificateSha256Digest release signing cert digest를 포함합니다.
    • 보안 정책에 따라서 integrity 판단이 일치합니다.

Request 보호 (createAssertion)createAssertion)

Request 보호 (createAssertion) 섹션
  1. 백엔드가 일회용 payload.
  2. 앱이 호출합니다. createAssertion({ keyId, payload }).
  3. 백엔드가 토큰을 해독하고 requestHash === base64url(SHA256(payload)).
  4. 재생 방지 (단일 사용 + TTL)와 integrity 판단 정책을 강제합니다.

Android 스키마

Android 스키마 섹션
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

등록:

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

보증:

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

Android 설정 및 백엔드 검증에서 계속

Section titled “Android 설정 및 백엔드 검증에서 계속”

Android 설정 및 백엔드 검증을 사용하여 보안 및 규정 준수 계획을 만드는 경우 이를 연결하여 @capgo/capacitor-인증 앱 Using @capgo/capacitor-app-attest 암호화 암호화 구현 세부 사항에 대해 준수 준수 구현 세부 사항에 대해 Capgo 보안 스캐너 Capgo 보안 스캐너의 제품 워크플로에 대해, 그리고 Capgo 보안 Capgo 보안의 제품 워크플로에 대해