PC용 Google Play 게임즈는 Play를 통해 무결성 보호를 지원합니다. Integrity API 및 기타 여러 Google Play 기능을 활용해 게임이 조작되지 않았거나 신뢰할 수 없는 소스에서 설치되지 않은 것을 확인합니다.
Play Integrity API
Play Integrity API를 사용하면 잠재적으로 위험하고 허위일 가능성이 있는 상호작용으로부터 게임을 보호할 수 있습니다. 이 API를 사용하면 사기, 속임수, 무단 액세스와 같은 공격 및 악용을 줄일 수 있습니다. Play Integrity API는 SafetyNet Attestation API(SNAA)와 Play App Licencing API를 대체합니다. SNAA는 PC용 Google Play 게임즈에서 작동하지 않습니다.
기기 무결성 필드
deviceRecognitionVerdict
필드에는 기기가 앱 무결성을 얼마나 잘 시행할 수 있는지 나타내는 단일 값 deviceRecognitionVerdict
가 포함됩니다. 기본적으로 deviceRecognitionVerdict
는 다음 값 중 하나를 보유할 수 있습니다.
MEETS_DEVICE_INTEGRITY
: 앱이 Google Play 서비스가 설치된 Android 지원 기기에서 실행 중입니다. 기기는 시스템 무결성 검사를 통과하고 Android 호환성 요구사항을 충족합니다.MEETS_VIRTUAL_INTEGRITY
: 앱이 Google Play 서비스가 설치된 가상 Android 환경에서 실행 중이며 현재 PC용 Google Play 게임즈로 제한됩니다. 환경은 핵심 Android 호환성 요구사항을 충족하고 Google Play 무결성 검사를 통과합니다.- 없음(예: 빈 값): 앱이 공격(예: API 후킹)이나 시스템 손상(예: 루팅됨) 징후가 있는 기기에서 실행 중이거나 Google Play 무결성 검사를 통과하지 못한, 실제 기기가 아닌 기기(예: 에뮬레이터)에서 실행 중입니다.
Play Integrity API는 deviceRecognitionVerdict
값을 사용합니다.
MEETS_VIRTUAL_INTEGRITY
를 사용하여 게임이 PC용 Google Play 게임즈에서 실행 중임을 나타냅니다. 다음은 Play Integrity API의 통과 응답 예입니다.
deviceIntegrity: {
// "MEETS_VIRTUAL_INTEGRITY" indicates the game is running on Google Play Games on PC
deviceRecognitionVerdict: ["MEETS_VIRTUAL_INTEGRITY"]
}
모바일과
PC용 Google Play 게임즈를 사용하려면
유효성 검사 로직은 MEETS_VIRTUAL_INTEGRITY
및
MEETS_DEVICE_INTEGRITY
자동 무결성 보호
자동 무결성 보호는 게임이 실행될 때마다 Google Play에서 추가하는 런타임 검사입니다. 조작되었거나 Google Play를 통해 설치되지 않은 게임은 실행되지 않도록 자동 무결성 보호를 통해 차단할 수 있습니다. 자동 무결성 보호는 기기를 확인하지 않습니다. Play Integrity API를 사용하여 기기 무결성 상태를 가져와야 합니다.
자동 무결성 보호는 다음 기능을 사용하여 무결성 보호를 지원합니다.
- Google Play를 통한 설치 요구: 앱이 Google Play에서 설치되었는지 확인하는 검사를 추가합니다. 검사를 통과하지 못하면 사용자에게 Google Play에서 앱을 다운로드하라는 메시지가 표시됩니다. 이 기능은 기본적으로 사용 설정되어 있지만 사용 중지할 수도 있습니다. 이 기능을 사용 중지하면 유료 앱의 불법 복제 방지 기능이 사용 중지됩니다.
- 수정 제한: 앱이 수정되지 않았는지 확인하는 검사를 추가합니다. 검사를 통과하지 못하면 앱이 실행되지 않습니다. 이 기능은 항상 사용 설정되어 있으며 사용 중지할 수 없습니다.
- 리버스 엔지니어링 제한: 난독화와 함께 공격자가 런타임 검사를 삭제하기 어렵게 하는 기타 고급 기법을 추가합니다. 이 기능은 항상 사용 설정되어 있으며 사용 중지할 수 없습니다.
자동 무결성 보호는 개발자가 선택해야 사용할 수 있으며 별도의 코드 변경이나 개발자 작업이 필요하지 않습니다.
데이터 또는 인터넷 연결 여부와 관계없이 보호 기능이 실행됩니다. 서버 측 구성요소는 필요하지 않습니다. 기기의 Play 스토어 앱이 장시간 오프라인 상태인 경우 'Play에서 설치 필요'를 선택하면 데이터 연결 여부를 주기적으로 확인합니다.