Android 13 이상 기기에서 확인 결과가 개선됨

Google은 최근 Play Integrity API 확인 결과를 강화하여 다른 보안 개선사항과 함께 더 빠르고, 공격에 더 탄력적이며, 사용자에게 더 높은 수준의 비공개성을 제공할 것이라고 발표했습니다.

변경사항 요약

변경사항 및 예상되는 영향에 관한 자세한 요약은 이 문서의 뒷부분에서 확인할 수 있습니다. 새로운 확인 결과는 다음과 같이 사용할 수 있습니다.

  • 새로운 통합: 모든 새로운 통합에는 새로운 확인 결과가 자동으로 적용됩니다.

  • 2025년 5월까지 기존 통합: 기존 통합이 있는 개발자는 Play Console의 Play Integrity API 설정 페이지에서 기존 확인 결과와 함께 새 확인 결과를 수신하도록 선택할 수 있습니다. 이를 통해 앱 동작을 검토하고 변경하는 데 시간을 할애할 수 있습니다. 선택하기 전에 각 확인 결과를 반환하는 기기의 예상 변경 비율과 새 확인 결과의 JSON 샘플을 확인할 수 있습니다. 이 옵션을 선택하면 응답에 Android SDK 버전과 기존 확인 결과가 포함된 두 개의 필드가 추가로 표시됩니다.

  • 2025년 5월 이후 기존 통합: 개발자 작업 없이 모든 통합에 개선사항이 적용됩니다. 2025년 5월 이전에 선택한 앱에는 기존 확인 결과가 포함된 임시 필드가 수신되지 않습니다.

내용 변경되는 사항 예상 영향* 어떤 기기에서 사용 가능
Play Integrity API 요청을 실행하는 모든 개발자에게 영향을 미치는 변경사항
기기 확인 결과 응답: meets-device-integrity 하드웨어 지원의 긍정적인 자체 검사 부팅 확인 결과가 있어야 함 Play Integrity API가 이미 Android 13 이상 기기에서 하드웨어 지원 보안 처리 신호를 사용하고 있으므로 영향이 거의 없습니다 (~0.4%). Android 13 이상
앱 무결성 응답: 앱 인식 확인 결과 변경사항 없음 영향이 거의 없으며 기기 확인 결과의 변경사항을 반영합니다 (~0.4%). Android 13 이상
계정 세부정보 응답: Play 라이선스 확인 결과 요청하는 앱이 Google Play에서 설치 또는 업데이트되어야 함 라이선스 응답이 약간 감소함 (~2.5%) Android 11 이상 (이 변경사항은 점진적으로 적용될 예정)
선택적 기능을 사용하는 Play Console 개발자 및 Play SDK Console 개발자에게만 영향을 미치는 변경사항
기기 확인 결과 응답: meets-basic-integrity Android 플랫폼 키 증명이 필요하지만 부팅 상태는 인증되거나 인증되지 않은 상태여도 됩니다. 기본 응답이 약간 감소함 (0.4% 미만) Android 13 이상
기기 확인 결과 응답: meets-strong-integrity 지난 1년 이내에 보안 업데이트가 있어야 함 강한 반응 감소 (~14.5%) Android 13 이상
모든 선택적 신호 요청하는 앱이 Google Play에서 설치 또는 업데이트되어야 함 선택적 신호를 포함하는 응답의 비율 감소 (~7%) Android 13 이상

*위의 모든 예상 영향 비율은 평균을 기준으로 하며, 설치 기반에 따라 앱마다 더 크거나 작은 변화가 있을 수 있습니다.

자주 묻는 질문(FAQ)

개요

Play Integrity API란 무엇인가요?

Play Integrity API를 사용하면 기기, 앱, 사용자에 관한 정보를 얻어 사용자 앱 환경의 신뢰성을 평가할 수 있으므로 잠재적인 악용과 공격을 감지하고 이에 대응할 수 있습니다.

Play Integrity API는 어떤 신호를 제공하나요?

Play Integrity API에는 요청하는 앱의 ID, 요청하는 앱이 Google Play에서 설치되었는지 여부, 기기가 정품 Play 프로텍트 인증 Android 기기인지 여부가 포함됩니다. 이러한 신호는 기본적으로 제공됩니다. 앱의 백엔드 서버에서 이러한 신호를 읽고 앱이 응답해야 하는지 여부와 응답 방법을 결정할 수 있습니다. Google Play 개발자는 Play 설치에서 추가 신호를 수신하여 더 많은 정보를 확인하도록 선택할 수 있습니다.

Android 플랫폼 키 증명이란 무엇인가요?

Android 플랫폼 키 증명을 사용하면 앱이 기기 상태를 확인하고 하드웨어 지원 부팅 무결성의 강력한 신호를 얻을 수 있습니다. 기기의 하드웨어 지원 키 저장소에 Google에서 프로비저닝한 키에 따라 다릅니다. Play Integrity API는 이미 키 증명을 사용하여 일부 기기에서 하드웨어 지원 보안 처리 신호를 가져오고 있으며, 이제 Android 13 이상을 실행하는 모든 기기에 이를 더 심층적으로 통합할 예정입니다.

확인 결과 변경사항

Android 13 이상 기기의 Play Integrity API 확인 결과는 어떻게 변경되나요?

이제 Play Integrity API는 모든 무결성 확인 결과에 하드웨어 지원 보안 처리 신호를 요구합니다.

  • meets-device-integrity 기기 인식 확인 결과는 앱이 실행 중인 기기가 정품 Play 프로텍트 인증 Android 기기임을 나타냅니다. 이 확인 결과를 얻으려면 기기 부트로더가 잠겨 있어야 하고 로드된 Android OS가 인증된 기기 제조업체 이미지여야 합니다.
  • meets-strong-integrity 기기 인식 확인 결과는 최신 보안 업데이트가 적용된 정품 Play 프로텍트 인증 Android 기기를 나타냅니다. 이 확인 결과를 얻으려면 meets-device-integrity가 필요하며 기기가 지난 1년 동안 보안 업데이트를 받았어야 합니다. 이 조건은 향후 변경될 수 있습니다.
  • meets-basic-integrity 기기 인식 확인 결과는 실제 Android 지원 기기에서 확인이 이루어졌음을 나타냅니다. 기기 부트로더는 잠겨 있거나 잠금 해제되어 있을 수 있으며 부팅 상태는 인증되거나 인증되지 않은 상태일 수 있습니다. Play 프로텍트 인증을 받지 않았을 수 있습니다. 이 경우 Google은 보안, 개인 정보 보호 또는 앱 호환성 보장을 제공할 수 없으며 기기가 Android의 가상 인스턴스와 같은 프록시로 작동하지 않는다고 보장할 수 없습니다. 또한 키 증명이 있는 한 루팅된 기기도 meets-basic-integrity를 반환할 수 있습니다.

이러한 변경사항은 PC용 Play 게임즈의 Play Integrity API에 영향을 미치지 않으며 계속해서 meets-virtual-integrity를 반환합니다.

Android 13 이상 기기에서 Play Integrity API 확인 결과가 변경되는 이유는 무엇인가요?

Play Integrity API는 Android SDK 버전에서 하드웨어 지원 보안 신호를 부분적으로만 사용해 왔습니다. 통합을 강화하면 Play Integrity API 확인 결과가 공격자에 대한 탄력성이 높아지고 앱의 성능이 개선되며 사용자의 개인 정보 보호가 강화됩니다. 전환이 완료되면 Android 13 이상을 실행하는 기기에서 다음과 같은 개선사항이 적용될 것으로 예상됩니다.

  • Google 서버에서 기본 확인 결과를 생성하기 위해 수집 및 평가해야 하는 기기 신호가 약 90% 감소했습니다. 선택적 신호의 경우 추가 신호를 계속 수집해야 합니다.
  • 최악의 표준 요청의 경우 확인 결과 지연 시간이 최대 80%, 기본 확인 결과를 가져오는 모든 기존 요청의 경우 최대 80% 개선되었습니다. 선택적 신호를 사용하면 지연 시간이 늘어날 수 있습니다.
  • 휴대전화, 태블릿, 폴더블, TV, Auto, Wear OS, ChromeOS를 비롯한 모든 Android 폼 팩터에 일관된 수준의 안정성과 지원을 제공하는 주요 증명
  • 기기 인식 확인 결과에서 각 기기 라벨(meets-strong-integrity, meets-device-integrity, meets-basic-integrity) 간의 구분을 개선했습니다.

Play Integrity API가 이전 및 새 무결성 확인 결과를 생성하는 선택 기간에는 성능이 변경되지 않을 것으로 예상됩니다. 하지만 2025년 5월에 모든 개발자를 대상으로 새로운 확인 결과가 출시되면 모든 기본 및 선택적 신호의 기존 종속 항목을 삭제하거나 전환하는 동안 실적이 점진적으로 개선될 것으로 예상됩니다.

PC용 Play 게임즈의 Play Integrity API 확인 결과는 변경되지 않으며 Android 12 이하에서는 Android 13 이상과 동일합니다.

Android SDK 버전을 고려하도록 무결성 확인 결과에 관한 앱의 백엔드 로직을 업데이트하려면 어떻게 해야 하나요?

Android SDK 버전에 따라 앱의 백엔드 서버에서 다른 로직을 사용하려면 확인 결과에서 새 기기 속성 필드를 사용하면 됩니다. 다음은 이 작업을 수행하는 예입니다.

Kotlin

val deviceIntegrity =
  JSONObject(payload).getJSONObject("deviceIntegrity")
val sdkVersion =
  if (deviceIntegrity.has("deviceAttributes")) {
    deviceIntegrity.getJSONObject("deviceAttributes").getInt("sdkVersion")
  } else {
    0
  }

if (sdkVersion >= 30) {
  // Provide Android R+ specific experience to the user.
}

자바

JSONObject deviceIntegrity =
  new JSONObject(payload).getJSONObject("deviceIntegrity");
int sdkVersion =
  deviceIntegrity.has("deviceAttributes")
    ? deviceIntegrity.getJSONArray("deviceAttributes").getInt("sdkVersion")
    : 0;

if (sdkVersion >= 30) {
  // Provide Android R+ specific experience to the user.
}

모든 Android SDK 버전에서 이전 meets-strong-integrity 라벨 정의를 사용하려면 어떻게 해야 하나요?

Android 13 이전 기기인 경우 meets-strong-integrity을 사용하도록 앱의 백엔드 로직을 업데이트하고 Android 13 이상 기기인 경우 Android SDK 버전이 포함된 확인 결과의 새 기기 속성 필드를 사용하여 meets-device-integrity을 사용하도록 업데이트하면 됩니다. 다음은 이 작업을 실행하는 예입니다.

Kotlin

val deviceRecognitionVerdict =
  if (deviceIntegrity.has("deviceRecognitionVerdict")) {
    deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString()
  } else {
    ""
  }

val deviceIntegrityToCheckFor =
  sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY";

if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) {
  // Looks good!
}

자바

JSONObject deviceIntegrity =
  new JSONObject(payload).getJSONObject("deviceIntegrity");
String deviceRecognitionVerdict =
  deviceIntegrity.has("deviceRecognitionVerdict")
    ? deviceIntegrity.getJSONArray("deviceRecognitionVerdict").toString()
    : "";

String deviceIntegrityToCheckFor =
  sdkVersion < 33 ? "MEETS_STRONG_INTEGRITY" : "MEETS_DEVICE_INTEGRITY";

if (deviceRecognitionVerdict.contains(deviceIntegrityToCheckFor)) {
  // Looks good!
}

기기 속성 필드는 하드웨어 지원 신호이기도 하므로 Android 13 이상을 실행하는 기기에서 가장 안정적입니다.

Play Integrity API에서 어떤 다른 확인 결과가 변경되나요?

Google은 Play Integrity API의 기존 신호를 더욱 안정적으로 만드는 데 지속적으로 투자하고 있으며, 개발자가 신규 위협과 새로운 사용 사례를 처리하는 데 도움이 되는 새로운 기능을 주기적으로 출시하고 있습니다. Google에서 진행 중인 다른 확인 결과 개선사항은 다음과 같습니다.

  • Play 라이선스 응답: Play 라이선스 응답을 반환하려면 이제 Play Integrity API에서 요청하는 앱이 항상 Google Play를 통해 설치되거나 업데이트되어야 합니다. 이렇게 하면 일부 특이 사례가 수정되고 개발자가 응답을 더 쉽게 해석할 수 있습니다. 이 기능은 Android 13 이상 버전에서 사용 가능합니다.
  • 선택적 신호 사용 가능 여부: 이제 Google Play Console 또는 Play SDK Console을 사용하는 개발자가 사용할 수 있는 모든 선택적 신호를 사용하려면 요청하는 앱이 Android 13 이상에서 Google Play에 의해 설치 또는 업데이트되어야 합니다. 여기에는 meets-strong-integrity, meets-basic-integrity, 최근 기기 활동, 앱 액세스 위험 확인 결과, Play 프로텍트 확인 결과가 포함됩니다. 다른 모든 Play Integrity API 요청은 기기 확인 (meets-device-integrity 라벨만 포함), 설치 프로그램 확인, 앱 무결성 확인을 수신하도록 표준화됩니다.
  • 특정 기기의 확인 결과 변경: Play Integrity API는 과도한 활동 또는 키 손상의 증거가 있는 경우와 같이 모든 Android SDK 버전에서 앱을 더 일찍 보호하기 위해 더 많은 시나리오에서 기기 확인 결과를 자동으로 변경하기 시작합니다. 여기에는 하드웨어 지원 신호를 사용할 수 없는 경우 Play에서 다른 신호로 대체하여 사용자에게 임시 기기 확인 결과를 생성하는 기능이 포함됩니다. 개발자는 인앱 Play 해결 대화상자를 사용하거나 사용자를 Play 스토어 앱으로 안내하여 무결성 확인 결과 문제를 해결하는 것이 좋습니다. 향후 이러한 대화상자는 더 많은 시나리오를 처리하고 사용자에게 특정 기기 또는 계정에 따라 수정해야 할 사항을 알려주는 구체적인 안내를 포함하게 될 것입니다.

선택 및 선택 해제

Android 13 이상 기기에서 개선된 확인 결과를 선택하려면 어떻게 해야 하나요?

Play Console을 사용하는 개발자는 Play Integrity API 설정 페이지에서 선택할 수 있습니다.

선택한 후 Play Integrity API 응답은 어떻게 되나요?

선택하면 다음 세 가지 작업이 실행됩니다.

  • deviceRecognitionVerdict 필드의 응답은 Android 13 이상 기기의 새로운 확인 평가 요구사항에 따라 즉시 생성되고 반환됩니다. Android 12 이하를 실행하는 기기에서는 이전 확인 결과 평가를 사용하여 deviceRecognitionVerdict가 생성됩니다.
  • 기기의 Android SDK 버전이 포함된 새 필드 deviceAttributes가 표시됩니다.
  • Android SDK 버전에 관계없이 이전 확인 결과 평가 요구사항에 따라 기기 무결성 응답을 포함하는 새 필드 legacyDeviceRecognitionVerdict가 제공됩니다.

2025년 5월에 모든 통합에 확인 결과 변경사항이 적용되면 선택한 앱은 legacyDeviceRecognitionVerdict 필드를 더 이상 수신하지 않습니다.

무결성 확인 결과 관련 문제를 신고하려면 어떻게 해야 하나요?

Play Integrity API의 응답과 관련된 문제를 신고하려면 지원 페이지의 안내에 따라 이전 확인 결과와 관련된 문제인지 또는 새 확인 결과와 관련된 문제인지 확인하세요.

사용 설정한 후 선택 해제할 수 있나요?

예. Play Integrity API 설정 페이지에서 선택 해제할 수 있습니다.

가용성

Play Integrity API가 작동하려면 무엇이 필요한가요?

Play Integrity API를 사용하려면 기기에 Google Play 스토어와 Google Play 서비스가 설치되어 있어야 합니다. 여기에는 Android 기기와 PC용 Google Play 게임즈가 포함됩니다. 기존 요청에는 Android 4.4 (API 수준 19) 이상이 필요하고 표준 요청에는 Android 5.0 (API 수준 21) 이상이 필요합니다. Android 13 (API 수준 33) 이상을 실행하는 기기에서 이제 Play Integrity API는 휴대전화, 태블릿, 폴더블, TV, Auto, Wear OS, ChromeOS를 비롯한 모든 Android 폼 팩터에서 키 증명과 함께 동일한 수준의 안정성과 지원을 제공합니다.

Play Integrity API의 확인 결과가 기기마다 다른 이유는 무엇인가요?

Play Integrity API는 다양한 사용 사례와 위험 허용 범위가 있는 개발자를 수용하고 단계별 시정 조치 전략을 수립할 수 있도록 여러 기기 확인 결과를 제공합니다. 예를 들어 앱과 기기가 더 신뢰할 수 있는 경우 개발자는 사용자 인증 단계를 간소화할 수 있습니다. 반면 기기가 알 수 없는 경우 개발자는 보호되거나 민감한 작업을 실행하기 전에 추가 사용자 인증을 요구할 수 있습니다. 이는 악용과 공격을 줄이는 효과적인 방법이 될 수 있습니다.

Play 프로텍트 인증을 받은 Android 기기란 무엇인가요?

Play 프로텍트 인증 Android 기기 (GMS Android 기기라고도 함)는 수백 개의 Google 호환성 테스트를 통과하고, Android 보안 및 권한 모델을 준수하며, Google Play 프로텍트 멀웨어 방지 기능 모음과 함께 제공되는 예측 가능한 소프트웨어를 실행하는 기기입니다. Play Integrity API가 기기가 Play 프로텍트 인증 Android 기반 기기인지 확인할 수 있으면 기기 인식 확인 결과에 meets-device-integrity 응답을 반환합니다.

meets-basic-integrity 기기란 무엇인가요?

Play Integrity API는 기기 확인 결과 meets-basic-integrity에서 선택적 응답도 반환합니다. 기기가 meets-device-integrity 또는 meets-strong-integrity 없이 meets-basic-integrity 확인 결과만 반환하면 Android OS를 확인할 수 없지만 키 증명이 있음을 의미합니다. 이는 실제 Android 지원 기기에서 검사가 이루어졌음을 나타내지만 Google은 기기의 보안, 개인 정보 보호 또는 앱 호환성을 보장할 수 없으며 기기가 Android의 가상 인스턴스와 같은 프록시로 작동하지 않는다고 보장할 수 없습니다. 개발자는 사용 사례와 위험 허용 범위에 따라 이러한 기기에서 앱이 실행되는 방식을 결정할 수 있습니다.

모든 개발자가 Play Integrity API를 사용할 수 있나요?

예. 모든 Android 개발자는 Play Integrity API를 요청하여 기본 무결성 확인 결과를 받을 수 있습니다. 사용량은 배포 채널과 관계없이 일일 10,000개 요청으로 제한됩니다. 다른 배포 채널 외에 Google Play에도 앱을 게시하는 개발자는 일일 할당량 증액을 요청할 수도 있습니다.

모든 개발자가 Android 플랫폼 키 증명을 사용할 수 있나요?

예. 모든 Android 개발자는 Android 플랫폼 키 증명을 사용하여 키 증명 레코드를 가져올 수 있으며, 이 레코드는 Google의 증명 루트 키 공개 인증서로 확인할 수 있습니다. Play Integrity API는 개발자가 키 증명과 직접 통합해야 하는 복잡성 없이 키 증명 및 추가 기능의 이점을 누릴 수 있도록 지원합니다.

정책 시행

개발자는 Play Integrity API 확인 결과를 어떻게 사용하나요?

Play Integrity API 확인 결과를 사용하고 사용하는 방법은 개발자가 결정합니다. 일부 개발자는 내부 악용 방지 분석을 위해 신호를 수집하는 반면, 다른 개발자는 확인 결과에 따라 앱의 동작 방식을 결정합니다. 예를 들어 개발자는 신뢰도가 낮은 기기가 계정을 만들 때 추가 사용자 인증 단계를 수행하도록 요구할 수 있습니다. 또는 신뢰도가 낮은 기기가 동일한 멀티플레이어 서버에서 함께 플레이하도록 결정할 수도 있습니다.

Play Integrity API는 사용자 또는 기기를 차단하나요?

아니요. Play Integrity API는 자체적으로 기능에 대한 액세스를 차단하지 않습니다. 이는 신호를 제공하는 선택적 개발자 서비스이며 개발자가 이러한 신호에 따라 취할 조치를 선택합니다.

기기가 Play Integrity API 기기 검사를 통과하지 못하는 경우 사용자는 어떻게 해야 하나요?

사용자는 기기에서 Play 스토어 앱으로 이동하여 설정 메뉴를 열고 정보로 아래로 스크롤한 다음 Play 프로텍트 인증을 확인할 수 있습니다. 기기의 Play 프로텍트 인증에 문제가 있는 경우 사용자가 눌러 문제를 해결할 수 있는 버튼이 표시됩니다. 이렇게 하면 기기의 인증 상태가 새로고침되고 수정해야 할 사항에 관한 구체적인 안내가 제공됩니다.