Play Integrity API는 앱과 사용자를 보호하기 위한 악용 방지 전략의 일부로 사용할 수 있습니다. 기기 회상은 Play Integrity API의 새로운 기능으로, 앱에서 사용자 개인 정보를 보호하는 방식으로 특정 기기와 관련된 일부 맞춤 데이터를 저장하고 회상할 수 있습니다. 데이터가 Google 서버에 저장되므로 앱을 다시 설치하거나 기기를 초기화한 후에도 앱에서 기기별 데이터를 안정적으로 회상할 수 있습니다. 예를 들어 이 기능을 사용하여 심각한 악용의 증거가 확인된 기기나 이미 높은 가치의 항목(예: 무료 체험판)을 사용한 기기, 악용의 목적으로 새 계정을 만들기 위해 반복적으로 사용되는 기기를 회상할 수 있습니다. 기기 회상은 사용자 개인 정보를 보호합니다. 요청하는 앱이 기기 또는 사용자 식별자에는 액세스하지 않고 기기와 관련된 제한적인 데이터만 회상할 수 있기 때문입니다.
기기 회상 작동 방식
사전 체험 프로그램의 개발자는 Play Integrity API 응답에 기기 회상을 사용 설정할 수 있습니다. 기기 회상을 사용 설정하면 앱은 기기별로 최대 세 개의 맞춤 값 또는 '비트'를 읽고 수정할 수 있습니다. 이러한 값은 직접 정의할 수 있습니다. 예를 들어 값을 기기의 별도 on/off 플래그로 간주하거나 8개의 맞춤 라벨로 조합할 수도 있습니다. 값은 서버 측에 저장되므로 기기의 값을 수정하면 유지되며 앱을 제거한 후 재설치하거나 기기를 초기화하더라도 여전히 값을 회상할 수 있습니다. 즉, 앱에서 기기와 관련된 값을 수정할 수 있고(예: 기기에서 무료 체험판을 사용했다고 나타내기 위해) 향후 동일한 기기에 앱을 설치하면 수정된 값을 바로 읽고 또 다른 무료 체험판 제공을 거부할 수 있습니다. 기기 회상을 사용 설정하면 다음 작업을 할 수 있습니다.
- 기기별 데이터 읽기: 무결성 확인 결과를 얻을 때마다 세 개의 값을 모두 읽을 수 있습니다. 기기 회상은 Play Integrity API 기존 요청 및 표준 요청에서 모두 작동합니다. 표준 요청에서 기기 회상은 준비 호출에서 새로고침됩니다. 즉, 기기별 데이터를 수정한 후 업데이트된 값을 확인하려면 또 다른 준비 작업을 실행해야 합니다.
- 기기별 데이터 수정: 무결성 토큰을 획득하면 토큰을 사용하여 Google Play 서버에 대한 서버 측 호출을 실행해 값을 하나 이상 수정할 수 있습니다. 토큰의 사용 기간은 최대 14일입니다. 예를 들어 무결성 검사를 처음 실행한 후 2주 이내에 악용이 분명해지는 경우에만 값을 수정할 수 있습니다. 값을 수정하면 수정이 이뤄진 연월도 저장됩니다.
기기 회상 고려사항
기기 회상에는 다음 기본 요건과 고려사항이 있습니다.
- 기기 회상은 원격 키 프로비저닝을 지원하고 Android 12 이상으로 처음 출시된 칩셋이 있는 기기의 경우 Android 13(API 수준 33) 이상을 실행하는 기기에서 지원됩니다. 기기 회상을 사용할 수 없는 경우 기기별 값과 날짜는 비어 있습니다.
- 기기 회상은 휴대전화, 태블릿, 폴더블, TV, 자동차, Wear OS에서 사용할 수 있습니다. Wear에서 기기 회상은 Wear OS 5 이상으로 출시된 기기에서만 사용할 수 있습니다.
- 기기 회상을 사용하려면 최신 버전의 Google Play 스토어와 Google Play 서비스를 모두 기기에 설치하고 사용 설정해야 합니다.
- 기기 회상을 사용하려면 사용자 계정에 Play 라이선스가 있어야 하며 없으면 확인 결과가 평가되지 않습니다.
- Google Play 개발자 계정의 모든 앱에서 기기별 세 가지 값에 동일하게 액세스할 수 있습니다. 즉, 앱 하나가 한 가지 값을 수정하면 모든 앱이 동일한 기기에 설치될 때 수정된 값을 읽습니다.
- 앱이 한 개발자 계정에서 다른 개발자 계정으로 이전되면 기기 회상은 이전 개발자 계정의 기기별 데이터가 아닌 새로운 개발자 계정의 기기별 데이터를 반영합니다.
기기 회상 사용을 위한 권장사항
악용 방지 전략의 일환으로 기기 회상 사용
기기 회상은 단독 악용 방지 메커니즘이 아니라 전반적인 악용 방지 전략의 일부로 다른 신호와 함께 사용할 때 가장 효과적입니다. 이 신호 및 다른 Play Integrity API 신호를 앱의 다른 적절한 보안 권장사항과 함께 사용하세요.
기기 회상 데이터 사용 방식 결정
기기 회상 데이터를 구성하는 세 가지 값은 직접 정의할 수 있습니다.
- 별도의 최대 세 가지 플래그 또는 불리언으로 사용할 수 있습니다. 예를 들어 값은 기기에서 계정을 만들었는지 여부나 무료 체험판을 사용했는지 여부, 기기가 높은 심각도의 악용 수준으로 알려졌는지 여부를 나타낼 수 있습니다.
- 또는 값의 모든 상태를 최대 8개의 맞춤 라벨로 조합할 수 있습니다. 세 가지 값이 모두 수정되지 않은 경우의 기본 상태 라벨 하나와 맞춤 의미를 지닌 7개의 라벨을 예로 들 수 있습니다. 이를 통해 모든 기기를 정의된 동작이나 작업에 따라 최대 8개의 그룹으로 분류할 수 있습니다. 이 시나리오에서 세 가지
writeDates
중 가장 최근에 업데이트된 것은 라벨을 마지막으로 업데이트한 시점을 나타냅니다.
개발자 계정의 모든 앱은 기기별 세 가지 값을 동일하게 공유하므로 기기 회상을 사용할 앱 전반에 걸쳐 적절하게 데이터의 의미를 정의하세요.
기기의 주인이 바뀌는 경우 타임스탬프 고려
기기 회상에는 오래전에 수정된 데이터보다 최근 수정된 데이터를 높은 우선순위로 고려할 수 있도록 타임스탬프가 포함되어 있습니다. 기기의 주인이 바뀌거나 기기가 리퍼되어 재판매될 수 있음을 고려할 만큼 오랜 기간이 지난 후에는 데이터를 무시하거나 초기화하는 것이 좋습니다.
데이터 초기화 전략 고려
기기와 관련된 데이터를 모두 삭제해야 한다면 앱은 기기의 세 가지 값을 모두 false
로 재설정할 수 있습니다. 이렇게 하면 자동으로 타임스탬프가 재설정됩니다.
Play Integrity API 기존 권장사항 따르기
이전 권장사항 외에도 Play Integrity API 보안 고려사항을 읽어보세요.
기기 회상 사전 체험판 이용
다음 단계를 따라 기기 회상을 사용해 보세요.
1단계: 중요한 고려사항 검토
- 기기 회상을 사용하면 Google Play 개발자 배포 계약 및 Play Integrity API 서비스 약관의 약관에 동의하는 것으로 간주됩니다.
- 기기 회상은 앱 보안을 보호하고 악용과 사기, 무단 액세스를 완화하기 위해 정보를 저장하고 회상하는 데만 사용할 수 있습니다.
- 기기 회상을 사용하여 개별 사용자나 기기를 지문으로 식별하거나 추적할 수는 없습니다.
- 성별이나 연령, 위치 데이터와 같은 민감한 사용자 또는 기기 특성을 추적하는 데는 기기 회상을 사용할 수 없습니다.
- Google Play의 데이터 보안 섹션 요구사항을 충족하려면 Play Integrity API가 데이터를 처리하는 방법에 제공된 정보를 참고하면 됩니다.
- 사전 체험 프로그램에 참여하는 개발자는 기기 회상을 평가하고 평가 결과에 관한 의견과 정보를 Google Play에 제공해야 합니다.
- 사전 체험 프로그램 중에는 기기 회상이 변경될 수 있습니다.
2단계: 기기 회상 EAP 참여 요청
계정이 기기 회상 사전 체험판에 선택된 경우 Play Console의 Integrity API 페이지에 Play Integrity API 응답에 기기 회상을 포함하는 새로운 옵션이 표시됩니다(3단계 참고).
아직 기기 회상에 액세스할 수 없고 사전 체험 프로그램에 참여할 의사가 있다면 다음 정보를 포함하여 integrity-api-eap@google.com으로 이메일을 보내면 됩니다.
- 회사 또는 조직과 내 역할
- 개발자 계정 ID와 앱
- Play Integrity API 통합 여부 또는 통합 계획
- 기기 회상 사용 계획
사전 체험 프로그램에 참여가 승인된 개발자에게는 Google Play Console에서 기기 회상을 사용 설정할 수 있는 액세스 권한이 부여됩니다.
3단계: Google Play Console의 Integrity API 응답에서 기기 회상 사용 설정
사전 체험 프로그램 참여가 수락되면 Play Console의 Integrity API 페이지에는 Play Integrity API 응답에 기기 회상을 포함할 수 있는 새로운 옵션이 표시됩니다. 준비가 되면 다음과 같이 Play Console에서 기기 회상을 사용 설정합니다.
- Play Console에 로그인합니다.
- 기기 회상을 사용할 앱을 선택합니다.
- 왼쪽 메뉴의 출시 섹션에서 앱 무결성으로 이동합니다.
- Play Integrity API 옆에 있는 설정을 클릭합니다.
- 페이지의 응답 섹션에서 응답 변경을 클릭합니다.
- 기기 회상을 사용 설정합니다.
- 변경사항 저장을 클릭합니다.
기기 회상을 사용 설정 또는 사용 중지하면 Play Console에서 설정한 Play Integrity API 테스트 응답이 삭제되므로 다시 만들어야 합니다.
4단계: 앱 및 앱의 백엔드 서버에 Integrity API 통합
아직 통합하지 않았다면 문서에 따라 Play Integrity API 표준 요청 또는 기존 요청을 설정하고 앱 및 앱의 백엔드 서버에 통합하세요.
5단계: 기기 회상 사용
다음 단계를 따라 기기 회상 값을 읽고 수정하세요.
5a 단계. 기기 회상 값 읽기
사용 설정되면 Play Integrity API 페이로드의 deviceIntegrity
필드에 기기 회상 정보가 포함됩니다.
"deviceIntegrity": {
"deviceRecognitionVerdict": ["MEETS_DEVICE_INTEGRITY"],
"deviceRecall": {
"values": {
"bitFirst": true,
"bitSecond": false,
"bitThird": true
},
"writeDates": {
// Write time in YYYYMM format in UTC.
"yyyymmFirst": 202401,
// Note that yyyymmSecond is not set because bitSecond is false.
"yyyymmThird": 202310
}
}
}
deviceRecall
은 다음과 같은 두 필드로 나뉩니다.
values
: 서버 간 API를 통해 이전에 설정된 비트 값을 회상합니다(5b 단계 참고).writeDates
: 연도와 월까지 정확한 비트 쓰기 날짜(UTC)를 회상합니다. 회상 비트의 쓰기 날짜는 비트가true
로 설정될 때마다 업데이트되고 비트가false
로 설정되면 삭제됩니다.
기기 회상 정보를 사용할 수 없는 경우 기기 회상 값은 비어 있습니다.
"deviceIntegrity": {
"deviceRecognitionVerdict": ["MEETS_DEVICE_INTEGRITY"],
"deviceRecall": {
"values": {},
"writeDates": {}
}
}
5b 단계. 기기 회상 값 수정
무결성 확인 결과 디코딩과 유사하게 서버 간 API 호출을 실행하여 기기 회상 값을 수정할 수 있습니다. 비트를 true
로 설정하면 쓰기 날짜도 업데이트됩니다(이미 true
인 경우에도). 비트를 false
로 설정하면 쓰기 날짜가 빈 상태로 재설정됩니다. 요청에서 지정되지 않은 비트는 변경되지 않고 유지됩니다. 비트를 쓰는 것과 확인 결과에서 이를 다시 읽을 수 있는 것 사이에는 약간의 전파 지연이 있습니다. 이 지연은 최대 30초가 될 수 있지만 일반적으로 이보다 훨씬 짧습니다.
playintegrity.googleapis.com/v1/PACKAGE_NAME/deviceRecall:write -d \ '{ "integrityToken": "INTEGRITY_TOKEN", "newValues": { "bitFirst": true, "bitThird": false } }'
6단계: Google Play에 사전 체험판 의견 제공
사전 체험 프로그램 참여자는 문제를 신고하고 의견을 제공해야 합니다. 기기 회상 또는 무결성 확인 결과와 관련된 기술 문제를 신고하려면 요청된 정보를 모두 제공하는 문제를 생성합니다. integrity-api-eap@google.com으로 이메일을 보내 기기 회상에 관한 의견을 제공할 수도 있습니다.
관련 콘텐츠
개발자가 의도한 방식대로 사용자가 앱과 게임을 경험하게 하는 데 도움이 되는 Play 무결성 및 서명 서비스에 관해 자세히 알아보세요.