Skip to content

ARM Developer Guide

powerji2001 edited this page Apr 21, 2020 · 17 revisions

해당 기능은 더 이상 지원하지 않습니다.
ALC 가이드 문서를 참고하세요.

개요

본 문서는 원스토어에서 제공하는 Application에 대한 불법 복제 방지 솔루션인 Application DRM(이하 ARM)에 대한 가이드 문서입니다.

주의 사항

원스토어 ARM은 멀티 DEX 구조의 apk는 지원하지 않습니다.


Application DRM

원스토어 2세대 ARM 은 원스토어를 통해 유통되는 Application 들에 대해서, 불법 복제 및 변조를 방지하는 원스토어 개발자센터의 전용 Application DRM 솔루션이다.

사용자가 원스토어 개발자센터를 통해 2세대 ARM 이 적용된 Application 을 구매한 후 해당 Application 을 실행할 경우, 해당 사용자가 실행하려는 Application을 구매했는지, 적절한 사용 권한을 가지고 있는지를 확인한 다음 암호화된 코드를 해제하여 실행한다.

불법 유통된 Application 이나 권한을 부여 받지 못한 사용자는 해당 Application 을 실행할 수 없고, 코드가 암호화된 상태로 존재하기 때문에 이에 대한 불법 변조가 불가능하다.


ARM 동작방식

아래 그림은 원스토어 개발자센터 2세대 ARM 이 Application 개발자가 상품 등록 시 어떻게 적용되며, 사용자가 Application 을 구매/실행하는 과정에서 어떻게 동작하는지를 간략하게 설명한다.

원스토어 2세대 ARM 동작 방식

  1. 우선 Application 개발자는 판매하고자 하는 상품을 원스토어 개발자센터의 보안 센터에서 제공되는 ARM 적용 버튼을 통해 ARM을 적용할 수 있다. 이 때 개발자는 Signing 여부를 선택할 수 있는데 선택하지 않은 경우는 S-APK(Secure-APK), 선택한 경우는 SS-APK(Signed Secure- APK)가 생성되어 다운 받을 수 있다.

  2. ARM 적용 버튼을 선택하는 시점에 Application 내 코드 암호화가 이루어지며, 코드 복호화 및 실행을 위한 ARM Client Loader 가 탑재된다.

  3. 이 후 상품 판매를 위해 개발자가 최종 Signing 된 SS-APK 를 원스토어 개발자센터 상품 등록 과정에 따라 최종 Binary 로 등록 한다.

  4. 원스토어 고객이 2세대 ARM 이 적용된 상품을 구매하여 설치/실행 시 해당 상품에 적용된 ARM Client Loader 가 ARM Service 와 연동하여 코드를 복호화하고 권한에 따른 실행을 제어한다.

  5. 2세대 ARM 이 적용된 상품을 실행할 때 정상 구매 여부를 확인하기 위하여 최초 1회 네트워크 연결이 필요하며, 정상적인 구매 이력이 확인된 경우 단말 내 라이선스를 저장한다. 이 후 단말 내 라이선스가 없는 경우에만 네트워크 연결을 통해 정상 구매 여부를 확인한다.


ARM 적용 절차

개발자센터 > Apps > 보안센터

보안센터 페이지에 접속한다.

개발자 사이트 – 보안 센터 접속

시스템 자동 적용 방식 선택(2세대 ARM)

시스템 자동 적용 방식 선택 > 확인 버튼을 클릭한다.

보안 센터 – 시스템 자동 적용 방식 선택 후 확인

APK 등록 및 서명 요청

암호화할 APK 파일을 업로드 한다.

보안 센터 –APK 파일 등록

ARM 적용중

SS-APK(Signed Secure APK) 또는 S-APK 다운로드

ARM 적용이 완료되면 암호화 및 서명이 적용된 SS-APK 를 다운로드 받을 수 있다. 단, 서명 정보를 입력하지 않았다면 서명이 적용되지 않은 S-APK 를 다운로드 받을 수 있다.

  • 서명을 위해서 업로드한 Keystore 는 서명 후 서버에서 삭제되며 보관되지 않는다.
  • 만약 Keystore 파일을 등록하지 않으면 서명되지 않으며 개발자가 직접 서명 작업을 해야 한다.

보안 센터 – ARM 적용된 SS-APK 다운로드

앱 서명은 아래의 가이드를 참고하시기 바랍니다. https://developer.android.com/studio/publish/app-signing

Clone this wiki locally