Google 라이선스 서비스Google Licensing Services

Google Play 이전의 Android 애플리케이션은 Google Market에서 제공하는 레거시 복사 방지를 사용하여 권한이 있는 사용자만 디바이스에서 애플리케이션을 실행할 수 있게 했습니다.Prior to Google Play, Android applications relied on the legacy Copy Protection provided by Google Market to ensure that only authorized users could run applications on their devices. 복사 방지 메커니즘에는 제한이 있어 이상적인 애플리케이션 보호 솔루션이 되지 못했습니다.The limitations of the Copy Protection mechanism made it a less-than-ideal solution for application protection.

Google 라이선스는 레거시 복사 방지 메커니즘을 대체합니다.Google Licensing is a replacement for this legacy Copy Protection mechanism. Google 라이선스는 유연하고 안전한 네트워크 기반 서비스로, Android 애플리케이션이 쿼리를 통해 해당 애플리케이션이 특정 디바이스에서 실행할 수 있는 라이선스가 있는지 판단합니다.Google Licensing is a flexible, secure, network-based service that Android applications may query to determine if an application is licensed to run on a given device.

Google 라이선스는 Android 애플리케이션이 라이선스 검사 시점, 라이선스 검사 주기, 라이선스 서버 응답 처리 방법에 대해 완전히 제어한다는 점에서 유연합니다.Google Licensing is flexible in that Android applications have full control over when to check the license, how often to check the license, and how to handle the response from the licensing server.

Google 라이선스는 Google Play 서버와 애플리케이션 간에 독점적으로 공유되는 RSA 키 쌍을 사용하여 각 응답이 서명되므로 안전합니다.Google Licensing is secure in that each response is signed using an RSA key pair that is shared exclusively between the Google Play server and the application. Google Play는 개발자를 위한 공개 키를 제공하며 이 키는 Android 애플리케이션에 포함되어 응답을 인증하는 데 사용됩니다.Google Play provides a public key for developers that is embedded within the Android application and is used to authenticate the responses. Google Play 서버는 내부적으로 프라이빗 키를 유지합니다.The Google Play server keeps the private key internally.

Google 라이선스를 구현하는 애플리케이션은 디바이스에서 Google Play 애플리케이션이 호스트하는 서비스에 대한 요청을 수행합니다.An application that has implemented Google Licensing makes a request to a service hosted by the Google Play application on the device. 그러면 Google Play가 Google 라이선스 서버에 이 요청을 보내고 해당 서버가 라이선스 상태를 응답합니다.Google Play then sends this request on to the Google Licensing server, which responds with the license status:

라이선스 서버 워크플로 다이어그램Licensing server workflow diagram

위의 다이어그램은 이 워크플로 보여줍니다.The above diagram illustrates this workflow:

  • 애플리케이션은 패키지 이름 nonce(암호화 인증자)를 제공합니다. 이 이름은 서버 응답과, 응답을 비동기로 처리할 수 있는 콜백의 유효성 검사에 사용됩니다.The application provides the package name, a nonce (a cryptographic authenticator) that is used to validate server response, and a callback that can handle the response asynchronously.

  • Google Play는 Google 계정과 같은 정보와 IMSI 번호 같은 디바이스 자체 정보를 제공합니다.Google Play provides information such as the Google account and the device itself, such as the IMSI number.

Google 라이선스 서비스도 APK 확장 파일의 핵심 구성 요소입니다(이 문서의 후반부에서 논의).Google Licensing service is also a key component of APK expansion files (which are discussed later in this document). APK 확장 파일은 Google 라이선스 서비스를 사용하여 다운로드되는 확장 파일의 URL을 가져옵니다.APK expansion files utilize Google Licensing services to obtain the URLs of the expansion files that will be downloaded.

요구 사항Requirements

Google Play를 통해 구입하지 않은 애플리케이션은 Google 라이선스 서비스의 혜택을 받지 못합니다.Applications that are not purchased through Google Play will receive no benefit from the Google Licensing services. Google Play가 디바이스에 설치되지 않은 경우에도 라이선스 서비스를 사용하는 애플리케이션이 해당 디바이스에서 정상 작동합니다.If Google Play is not installed on a device, then applications that use Licensing Services will still operate normally on that device.

Google Play가 작동하려면 인터넷 액세스가 필요합니다.Google Play requires Internet access for functionality. 애플리케이션은 디바이스가 Google Play 라이선스 서버에 액세스할 수 없는 경우를 대비하여 라이선스를 캐시할 수 있습니다.An application can cache the license to accommodate scenarios where the device does not have access to the Google Play Licensing servers.

무료 애플리케이션은 애플리케이션이 APK 확장 파일을 사용할 때만 Google 라이선스가 필요합니다.Free applications only require Google Licensing when the application uses APK expansion files.