무결성 검사
런타임에 앱 무결성을 검증합니다.
개요
Unveily는 앱이 변조되지 않았는지, 공식 앱 스토어를 통해 설치되었는지를 런타임에 자동으로 검증합니다. Android는 Google Play Integrity API, iOS는 App Attest + DeviceCheck를 사용하며, 두 플랫폼 모두 라이선스 검증 과정에서 SDK 코어가 자동으로 수행합니다.
iOS 무결성 검증
iOS에서도 무결성 검증이 구현되어 있습니다. iOS는 Apple의 App Attest 및 DeviceCheck API를 통해 Android의 Play Integrity와 동등한 수준의 검증을 자동으로 수행합니다. 두 플랫폼 모두 검증은 SDK 코어 내부에서 실행되며, 무결성 토큰은 JavaScript에 노출되지 않습니다.
개발자가 별도로 코드를 작성할 필요 없습니다. 앱 실행 시 SDK가 자동으로 무결성 검증을 수행합니다.
| 검증 항목 | 설명 |
|---|---|
| 앱 변조 여부 | 앱 바이너리가 원본 빌드와 일치하는지 확인 |
| 설치 출처 | 공식 스토어(Google Play / App Store)를 통해 정상 설치되었는지 확인 |
| 디바이스 상태 | 디바이스의 기본 보안 상태 확인 |
고객이 설정할 것은 없습니다
무결성 검증은 SDK가 자동으로 수행하며 Unveily 라이선스 보호의 일부입니다. 고객사가 Unveily의 무결성 검증을 위해 Play Console이나 Google Cloud에서 별도로 설정할 것은 없습니다. (무결성 토큰은 SDK 내부에서만 다뤄지며 JavaScript에도 노출되지 않습니다.)
고객사 앱 자체의 Play Integrity는 완전히 별개입니다
고객사가 자사 앱 보안을 위해 Play Integrity(Android)나 App Attest(iOS)를 직접 사용하려면, 고객사 자신의 Google Cloud 프로젝트에서 독립적으로 설정하면 됩니다. 이는 Unveily SDK의 무결성 검증과 완전히 분리되어 있으며, SDK나 Unveily 서버를 거치지 않습니다. (Firebase를 사용한다면, 내부적으로 Play Integrity를 이용하는 Firebase App Check가 백엔드를 보호하는 가장 간단한 방법입니다.) Play Integrity는 한 앱에서 여러 Cloud 프로젝트를 동시에 사용하도록 설계되어 있어, 두 검증은 같은 기기에서 서로 간섭 없이 병행 동작합니다.
무결성 검증은 어떻게 처리되나요
무결성 검증은 SDK 코어와 Unveily 백엔드 사이에서 자동으로 처리됩니다. 라이선스 검증 과정에서 SDK가 무결성 토큰(Android는 Play Integrity, iOS는 App Attest + DeviceCheck)을 생성하여 Unveily 서버로 직접 전송하고, 서버가 이를 검증합니다.
무결성 토큰을 가져오는 JS API는 없습니다
무결성 토큰을 JavaScript로 가져오는 Bridge 메서드는 존재하지 않습니다. 토큰은 SDK 내부에서만 다루어지며 웹 코드에 노출되지 않습니다. 따라서 개발자가 직접 토큰을 받아 서버에서 디코딩하는 코드(예: Play Integrity API 직접 호출)를 작성할 필요가 없으며, 그런 방식은 지원되지 않습니다.
개발자가 별도로 코드를 작성할 필요가 없습니다. 무결성 검증은 전적으로 SDK와 Unveily 서버 사이에서 자동으로 이루어집니다.