KR101284676B1 - 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법 - Google Patents

암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법 Download PDF

Info

Publication number
KR101284676B1
KR101284676B1 KR1020120020519A KR20120020519A KR101284676B1 KR 101284676 B1 KR101284676 B1 KR 101284676B1 KR 1020120020519 A KR1020120020519 A KR 1020120020519A KR 20120020519 A KR20120020519 A KR 20120020519A KR 101284676 B1 KR101284676 B1 KR 101284676B1
Authority
KR
South Korea
Prior art keywords
file
encryption
odex
app
dalvik
Prior art date
Application number
KR1020120020519A
Other languages
English (en)
Inventor
김성열
Original Assignee
건국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 건국대학교 산학협력단 filed Critical 건국대학교 산학협력단
Priority to KR1020120020519A priority Critical patent/KR101284676B1/ko
Application granted granted Critical
Publication of KR101284676B1 publication Critical patent/KR101284676B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법에 대한 것으로서, 보다 상세하게는 암호기술을 사용하여 앱을 암호화된 상태로 배포하고, 실행시에 합법 사용자만이 암호화된 앱을 복호화하여 실행이 가능하도록 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법에 관한 것이다.
본 발명은 달빅가상머신(Dalvik VM)에서 Apk 파일로부터 암호화된 classes.dex을 추출하여 상기 달빅가상머신에 추가한 복호화 모듈을 통해 odex 파일을 생성하는 단계와, 상기 odex 파일을 저장하기 이전에 삽입한 암호화 모듈을 통해 암호화를 수행한 후 모바일 디바이스에 저장하는 단계와, 비용을 지불한 정당한 사용자만이 앱을 실행하면 복호화 모듈을 통해서 상기 odex 파일을 복호화하는 단계를 포함하여 구성되는 것을 특징으로 한다.

Description

암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법{Cryptography-based Copy Protection System and method for Android Apps}
본 발명은 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법에 대한 것으로서, 보다 상세하게는 암호기술을 사용하여 앱을 암호화된 상태로 배포하고, 실행시에 합법 사용자만이 암호화된 앱을 복호화하여 실행이 가능하도록 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법에 관한 것이다.
본 발명은 문화체육관광부 및 한국저작권위원회의 2011년도 저작권기술개발사업의 연구결과로 수행되었다.
최근 스마트폰의 보급이 급속히 확대되면서 “앱”이라 불리는 스마트폰의 응용프로그램 또한 급격히 증가하고 있는 추세이다.
미국방언협회(American Dialect Society)가 2010년 올해의 단어로 “앱(app)”을 선정하였고 2011년 3월 기준 애플 아이폰(Apple's iPhone) 앱의 개수는 35만개 이상이며, 구글 안드로이드(Google's Android) 앱의 개수 또한 25만개가 넘었다.특히 안드로이드의 경우 증가폭이 더욱 급속하게 늘어나는 추세이다.
앱과 같은 디지털 정보의 경우 정보의 손실 없이 원본과 동일한 복제본을 무제한적으로 생성하는 것이 가능하여 적절한 앱 불법 복제 방지 기술의 부재로 인해 현재 앱 불법 복제가 성행하고 있다.
2010년 하반기에 적발된 불법 스마트폰 앱의 개수는 2만 2661점에 달하며, 게임의 경우도 3741점이 넘었다. 대부분의 경우가 저작권이 있는 콘텐츠를 허가 없이 사용하거나 불법으로 유통시킨 사례이다.안드로이드에서는 라이선스 관리를 위한 모듈을 제공하고 있기는 하지만 이를 우회할 수 있는 기법이 나온 상태이며, 온라인 기반 유통환경에서 저작권자가 불법 복제 또는 저작권 침해 사실을 확인하더라도 이에 대한 법적 대응이 쉽지 않다.
현재는 기존의 앱 불법 복제 방지 기술들은 DRM(Digital Rights Management)을 기반으로 하는 경우가 대부분이다.
그러나 DRM은 기술간 호환성이 결여된 폐쇄성을 특성으로 하고 있어 일부 사업자에 의한 독점시장구축 수단으로도 악용되고 있다.
한편 안드로이드 마켓의 경우 현재 유료 앱의 비율은 전체 앱의 약 40%를 차지하고 있다.
그러나 유료 앱을 정당한 지불없이 받을 수 있는 앱이 존재하며 웹상에서도 블로그나 웹페이지를 통해서도 받을 수 있는 경로는 굉장히 많다.
구글에서는 안드로이드 유료 앱의 라이센스 관리를 위하여 LVL(License Verification library)를 제공하고 있으나 이를 우회할 수 있는 기법이 나온 상태이며, 온라인 기반 유통환경에서 저작권자가 불법복제 또는 저작권 침해 사실은 확인하더라도 이에 대한 법적대응이 쉽지 않다.
이외에도 다른 종래 기술로서 한국공개특허 제2011-0038152호는 소스 자료로부터 포렌식 마킹 이미지 데이터를 생성하는 시스템 및 방법에 관한 것으로, 생성된 포렌식 마크는 소스 이미지 데이터의 복사물마다 변경되는 포렌식 마킹 파라미터와 선택된 포렌식 마킹 기술을 사용하여 복사물과 복사물 사이에서 변경되는 것에 대하여 기재되어 있다.
따라서 저작권 보호 기술 개발을 통하여 앱의 보안성을 향상시키고 올바른 유통문화를 형성할 수 있는 새로운 시스템 및 방법의 개발이 필요하게 되었다.
상술한 문제점을 해결하기 위하여, 본 발명은 안드로이드 앱 복제 방지 시스템은 루팅이 쉽고 비교적 불법 앱 다운로드를 쉽게 할 수 있는 안드로이드 환경에서 불법 다운로드를 막을 수 있는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법을 제공하는 데 목적이 있다.
본 발명은 달빅가상머신(Dalvik VM)에서 Apk 파일로부터 암호화된 classes.dex을 추출하여 상기 달빅가상머신에 추가한 복호화 모듈을 통해 odex 파일을 생성하는 단계와, 상기 odex 파일을 저장하기 이전에 삽입한 암호화 모듈을 통해 암호화를 수행한 후 모바일 디바이스에 저장하는 단계와, 정당한 사용자만이 앱을 실행하면 복호화 모듈을 통해서 상기 odex 파일을 복호화하는 단계를 포함하여 구성된다.
본 발명은 상기 달빅가상머신 내 암호화/복호화 모듈이 optimization과 verifycation 이전과 이후에 암호화와 복호화를 수행하기 위해, ‘classes.dex- 복호화- Optimaiztion/Verifycation - odex - 암호화’의 실행 순서를 거쳐 dex 파일과 odex 파일의 checksum 검사와 offset 수정하는 단계를 더 포함하여 구성된다.
본 발명은 상기 안드로이드 소스내의 dalvik 디렉토리에서 암호화/복호화 모듈을 사용하기 위해 dalvik/dexopt/Optmain.c에서 호출되는 dexZipExtractEntrytoFile() 함수가 Apk 파일로부터 classes.dex 파일을 얻게되는 단계를 더 포함하여 구성된다.
본 발명은 상기 복호화된 classes.dex 파일을 dalvik/vm/dexprepare.c의 dexContinueoptimization() 이라는 함수에서 odex 파일로 변환하여 생성하는 단계를 더 포함하여 구성된다.
본 발명은 상기 생성된 odex 파일을 암호화된 상태로 저장하기 위해 optimaze와 verify, offset조정, dexoptHeader가 쓰여져 odex 파일이 생성된 이후 암호화 모듈을 삽입하여 odex파일을 암호화 하는 단계를 더 포함하여 구성된다.
본 발명은 상기 사용자가 App을 실행하기 위해 해당 App의 아이콘을 클릭하게 되면 /data/dalvik-cache 내에 있는 classes.dex 파일을 이용하여 App을 실행하는 단계를 더 포함하여 구성된다.
본 발명은 Apk 파일로부터 암호화된 classes.dex을 추출하여 복호화 모듈을 통해 odex 파일을 생성하는 달빅가상머신(Dalvik VM)과, 상기 odex 파일을 저장하고, 암호화를 수행한 후 모바일 디바이스에 저장하는 암호화 모듈과, 정당한 사용자만이 앱을 실행하면 상기 odex 파일을 복호화하는 복호화 모듈을 포함하여 구성된다.
상기 달빅가상머신 내 암호화/복호화 모듈은 optimization과 verifycation 이전과 이후에 암호화와 복호화를 수행하기 위해, ‘classes.dex- 복호화 - Optimaiztion/Verifycation - odex - 암호화’의 실행 순서를 거쳐 dex 파일과 odex 파일의 checksum 검사와 offset 수정한다.
상기 안드로이드 소스내의 dalvik 디렉토리에서 암호화/복호화 모듈을 사용하기 위해 dalvik/dexopt/Optmain.c에서 호출되는 dexZipExtractEntrytoFile() 함수가 Apk 파일로부터 classes.dex 파일을 얻게된다.
상기 복호화된 classes.dex 파일은 dalvik/vm/dexprepare.c의 dexContinueoptimization() 이라는 함수에서 odex 파일로 변환하여 생성한다.
상기 생성된 odex 파일을 암호화된 상태로 저장하기 위해 optimaze와 verify, offset조정, dexoptHeader가 쓰여져 odex 파일이 생성된 이후 암호화 모듈을 삽입하여 odex파일을 암호화 하고, 상기 생성된 odex 파일은 /data/dalvik-cache에 data@app@[filename]@classes.dex라는 형태로 저장한다.
상기 사용자가 App을 실행하기 위해 해당 App의 아이콘을 클릭하게 되면 /data/dalvik-cache 내에 있는 classes.dex 파일을 이용하여 App을 실행하고, 상기 dex 파일을 호출하는 부분은 dalvik/analysis/vm/dexprepare.c 내의 dvmOpenCachedDexFile() 함수이며, 상기 odex파일은 암호화된 상태로 저장되어 있기 때문에 이 부분에 추가되어 있는 복호화 모듈을 통해 복호화를 수행한 후 odex 파일을 리턴하여 App 실행에 사용된다.
본 발명에 따르면 암호화된 앱은 일반 앱과 달리 odex 파일로 저장시 암호화된 상태로 저장하게 되기 때문에 비용을 지불한 정당한 사용자만이 실행이 가능하다.
본 발명에 따르면 저작권 보호 기술 개발을 통하여 앱의 보안성을 향상시키고 올바른 유통문화를 형성할 수 있다.
도1은 본 발명에 따른 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템의 전체 흐름을 나타내는 도면.
도2는 본 발명에 따른 (a), (c)는 암호화된 Apk File 설치 흐름도,
(b) odex File Format을 나타내는 도면.
도3은 본 발명에 따른 암호화된 Apk File 설치 과정을 보여주는 도면.
도4는 본 발명에 따른 수정된 Dalvik VM 디렉토리 및 메소드를 보여주는 도면.
도5는 본 발명에 따른 암호화된 Odex File을 통한 App 실행 과정을 보여주는 도면.
이하 본 발명의 실시를 위한 구체적인 내용을 도면을 참고하여 자세히 설명한다.
도1에서 보는 바와 같이 서버(100)에는 가입 서비스모듈(12)과 인증 서비스 모듈(14)을 포함하는 가입/인증 서비스 모듈(10)과 RSA, AES 키를 사용하는 모듈(20)이 포함되고, 인증 및 다운로드 모듈(30)과 암호화 모듈(40)을 포함하는 디바이스(200)가 더 포함된다.
여기에서 AES(Advanced Encryption Standard)는 미 연방 표준 128비트 블록 암호로, 128/192/256비트의 비밀키를 사용하며, 각각의 키에 따라 10/12/14라운드를 사용한다.
AES는 지금까지 알려진 블록 암호 알고리즘에 대한 공격 방법들에 대해 안전하도록 설계되었고, 구현시 속도와 구현의 편의성 면에서 효율적이므로 본 발명에서는 어플리케이션 암호화에 AES 알고리즘을 사용하도록 한다.
그리고 해당 어플리케이션을 암호화한 AES 비밀키의 보안을 위해 공개키 암호화 알고리즘인 RSA를 사용한다. RSA는 1024비트 이상의 큰 정수를 기반으로 한 모
듈로 연산에 의해 수행되며, 큰 정수 계수의 소인수 분해가 매우 어렵기 때문에 높은 보안성을 유지한다. 따라서 RSA로 AES 비밀키를 암호화 한다면, 상대적으로 낮은 보안성을 가지는 AES의 단점을 보완할 수 있다.
또한 상기 인증 및 다운로드 모듈(30)은 가입요청모듈(32)과 인증요청모듈(34)과 다운로드모듈(36)을 더 포함할 수도 있다.
즉 본 발명의 일실시예에 따른 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템은 Apk 파일로부터 암호화된 classes.dex을 추출하여 상기 달빅가상머신에 추가한 복호화 모듈을 통해 odex 파일을 생성하는 달빅가상머신(Dalvik VM)과, 상기 odex 파일을 저장하고, 암호화를 수행한 후 모바일 디바이스에 저장하는 암호화 모듈과, 정당한 사용자만이 앱을 실행하면 상기 odex 파일을 복호화하는 복호화 모듈로 크게 나뉘어 구성된다.
구체적으로 살펴보면, 도2(a)는 서버로부터 암호화된 Apk 파일을 다운로드 받아 설치하는 과정이다.
일반 Apk 파일은 달빅가상머신(Dalvik VM)에서 Apk 파일로부터 classes.dex 파일을 추출하여 optimize 와 verifiy 수행후 odex 파일을 생성하여 모바일 디바이
스에 저장하는 것으로 설치과정이 종료된다.
도2(b)는 Apk 파일로부터 암호화된 classes.dex을 추출하여 복호화하는 과정을 나타낸 흐름도이다.
암호화된 부분은 Apk 파일 내의 classes.dex 파일이며, classes.dex 파일 중에서도 헤더부분을 제외한 나머지 부분이 실질적으로 암호화 되어 있다.
Dalvik VM에 추가한 복호화 모듈을 통해 이 부분을 복호화하며 복호화된 classes.dex 파일은 optimize와 verify후 일련의 과정을 거쳐 odex 파일을 생성한다.
도2(c)에서 보는 바와 같이 생성된 odex 파일을 저장하기 이전에 삽입한 암호화 모듈을 통해 암호화를 수행한 후 모바일 디바이스에 저장되며, 저장이 끝나면 모든 설치과정이 종료된다.
암호화된 앱은 일반 앱과 달리 odex 파일로 저장시 암호화된 상태로 저장하게 되기 때문에 비용을 지불한 정당한 사용자만이 실행이 가능하다.
사용자가 앱을 실행하기 위해 해당 아이콘을 클릭하면 odex 파일이 복호화되는 과정을 거쳐 앱을 사용할 수 있게 된다.
도3에서 보는 바와 같이 암호화된 App을 설치하기 위해서는 Dalvik VM 내 암호화/복호화 모듈이 추가 되어야 한다.
여기서 가장 중요한 부분은 optimization과 verifycation 이전과 이후에 암호화와 복호화를 수행해야 한다는 점이다. ‘classes.dex- 복호화 - Optimaiztion/Verifycation - odex - 암호화’의 실행순서를 거쳐야만 dex 파일과 odex 파일의 checksum 검사와 offset 수정과정을 에러없이 통과할
수 있게 된다.
도3은 실제로 안드로이드 소스내의 dalvik 디렉토리에서 암호화/복호화 모듈을 사용하기 위해 수정된 부분을 나타낸다.
도4는 본 발명에 따른 수정된 Dalvik VM 디렉토리 및 메소드를 보여준다.
본 발명에 따른 dalvik/dexopt/Optmain.c에서 호출되는 dexZipExtractEntrytoFile() 함수는 Apk 파일로부터 classes.dex 파일을 얻게되는 부분이다.
상기 함수는 dalvik/libdex/ZipArchive.c 에 존재하며, 얻게된 classes.dex 파일을 복호화하기 위하여 복호화 모듈을 이곳에 삽입한다.
또한 본 발명에 따라 복호화된 classes.dex 파일은 dalvik/vm/dexprepare.c의 dexContinueoptimization() 이라는 함수에서 odex 파일로 변환하여 생성하게 된다.
생성된 odex 파일을 암호화된 상태로 저장하기 위해 optimaze와 verify, offset조정, dexoptHeader가 쓰여져 완전한 odex 파일이 생성된 이후 암호화 모듈을 삽입하여 odex파일을 암호화 한다.
본 발명에 따라 생성된 odex 파일은 /data/dalvik-cache에data@app@[filename]@classes.dex라는 형태로 저장된다.
도5에서 보는 바와 같이 사용자가 App을 실행하기 위해 해당 App의 아이콘을 클릭하게 되면 /data/dalvik-cache 내에 있는 classes.dex 파일을 이용하여 App을 실행하게 된다.
본 발명에 따라 dex 파일을 호출하는 부분은 dalvik/analysis/vm/dexprepare.c 내의 dvmOpenCachedDexFile() 함수이며, odex파일은 암호화된 상태로 저장되어 있기 때문에 이 부분에 추가되어 있는 복호화 모듈을 통해 복호화를 수행한 후 odex 파일을 리턴하여 App 실행에 사용된다.
이하 본 발명의 일실시예에 따른 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법에 대하여 자세히 설명한다.
먼저 달빅가상머신(Dalvik VM)에서 Apk 파일로부터 암호화된 classes.dex을 추출하여 상기 달빅가상머신에 추가한 복호화 모듈을 통해 odex 파일을 생성한다.
그리고 상기 odex 파일을 저장하기 이전에 삽입한 암호화 모듈을 통해 암호화를 수행한 후 모바일 디바이스에 저장한다.
계속하여 정당한 사용자만이 앱을 실행하면 복호화 모듈을 통해서 상기 odex 파일을 복호화한다.
또한 상기 달빅가상머신 내 암호화/복호화 모듈이 optimization과 verifycation 이전과 이후에 암호화와 복호화를 수행하기 위해, ‘classes.dex- 복호화 - Optimaiztion/Verifycation - odex - 암호화’의 실행 순서를 거쳐 dex 파일과 odex 파일의 checksum 검사와 offset 수정한다.
또한 상기 안드로이드 소스내의 dalvik 디렉토리에서 암호화/복호화 모듈을 사용하기 위해 dalvik/dexopt/Optmain.c에서 호출되는 dexZipExtractEntrytoFile() 함수가 Apk 파일로부터 classes.dex 파일을 얻게된다.
여기에서 상기 복호화된 classes.dex 파일을 dalvik/vm/dexprepare.c의 dexContinueoptimization() 이라는 함수에서 odex 파일로 변환하여 생성한다.
그리고 상기 생성된 odex 파일을 암호화된 상태로 저장하기 위해 optimaze와 verify, offset조정, dexoptHeader가 쓰여져 odex 파일이 생성된 이후 암호화 모듈을 삽입하여 odex파일을 암호화하고, 상기 사용자가 App을 실행하기 위해 해당 App의 아이콘을 클릭하게 되면 /data/dalvik-cache 내에 있는 classes.dex 파일을 이용하여 App을 실행한다.
100 : 서버
10 : 가입/인증 서비스 모듈
12 : 가입 서비스모듈
14 : 인증 서비스 모듈
20 : RSA, AES 키를 사용하는 모듈
30 : 인증 및 다운로드 모듈
40 : 암호화 모듈
200 : 디바이스

Claims (12)

  1. 달빅가상머신(Dalvik VM)에서 Apk 파일로부터 암호화된 classes.dex을 추출하여 상기 달빅가상머신에 추가한 복호화 모듈을 통해 odex 파일을 생성하는 단계와;
    상기 odex 파일을 저장하기 이전에 삽입한 암호화 모듈을 통해 암호화를 수행한 후 모바일 디바이스에 저장하는 단계와;
    비용을 지불한 정당한 사용자만이 앱을 실행하면 복호화 모듈을 통해서 상기 odex 파일을 복호화하는 단계;
    를 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법.
  2. 제1항에 있어서,
    상기 달빅가상머신 내 암호화/복호화 모듈이 optimization과 verifycation 이전과 이후에 암호화와 복호화를 수행하기 위해, ‘classes.dex- 복호화 - Optimaiztion/Verifycation - odex - 암호화’의 실행 순서를 거쳐 dex 파일과 odex 파일의 checksum 검사와 offset 수정하는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법.
  3. 제1항에 있어서,
    상기 안드로이드 소스내의 dalvik 디렉토리에서 암호화/복호화 모듈을 사용하기 위해 dalvik/dexopt/Optmain.c에서 호출되는 dexZipExtractEntrytoFile() 함수가 Apk 파일로부터 classes.dex 파일을 얻게되는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법.
  4. 제2항에 있어서,
    상기 복호화된 classes.dex 파일을 dalvik/vm/dexprepare.c의 dexContinueoptimization() 이라는 함수에서 odex 파일로 변환하여 생성하는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법.
  5. 제4항에 있어서,
    상기 생성된 odex 파일을 암호화된 상태로 저장하기 위해 optimaze와 verify, offset조정, dexoptHeader가 쓰여져 odex 파일이 생성된 이후 암호화 모듈을 삽입하여 odex파일을 암호화 하는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법.
  6. 제1항에 있어서,
    상기 사용자가 App을 실행하기 위해 해당 App의 아이콘을 클릭하게 되면 /data/dalvik-cache 내에 있는 classes.dex 파일을 이용하여 App을 실행하는 단계;
    를 더 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지 방법.
  7. Apk 파일로부터 암호화된 classes.dex을 추출하여, 복호화 모듈을 통해 odex 파일을 생성하는 달빅가상머신(Dalvik VM)과;
    상기 odex 파일을 저장하고, 암호화를 수행한 후 모바일 디바이스에 저장하는 암호화 모듈과;
    비용을 지불한 정당한 사용자만이 앱을 실행하면 상기 odex 파일을 복호화하는 복호화 모듈;
    을 포함하여 구성되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템.
  8. 제7항에 있어서,
    상기 달빅가상머신 내 암호화/복호화 모듈은,
    optimization과 verifycation 이전과 이후에 암호화와 복호화를 수행하기 위해, ‘classes.dex- 복호화 - Optimaiztion/Verifycation - odex - 암호화’의 실행 순서를 거쳐 dex 파일과 odex 파일의 checksum 검사와 offset 수정하는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템.
  9. 제7항에 있어서,
    상기 안드로이드 소스내의 dalvik 디렉토리에서 암호화/복호화 모듈을 사용하기 위해 dalvik/dexopt/Optmain.c에서 호출되는 dexZipExtractEntrytoFile() 함수가 Apk 파일로부터 classes.dex 파일을 얻게되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템.
  10. 제8항에 있어서,
    상기 복호화된 classes.dex 파일은 dalvik/vm/dexprepare.c의 dexContinueoptimization() 이라는 함수에서 odex 파일로 변환하여 생성하는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템.
  11. 제10항에 있어서,
    상기 생성된 odex 파일을 암호화된 상태로 저장하기 위해 optimaze와 verify, offset조정, dexoptHeader가 쓰여져 odex 파일이 생성된 이후 암호화 모듈을 삽입하여 odex파일을 암호화 하고, 상기 생성된 odex 파일은 /data/dalvik-cache에 data@app@[filename]@classes.dex라는 형태로 저장하는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템.
  12. 제7항에 있어서,
    상기 사용자가 App을 실행하기 위해 해당 App의 아이콘을 클릭하게 되면 /data/dalvik-cache 내에 있는 classes.dex 파일을 이용하여 App을 실행하고, 상기 dex 파일을 호출하는 부분은 dalvik/analysis/vm/dexprepare.c 내의 dvmOpenCachedDexFile() 함수이며, 상기 odex파일은 암호화된 상태로 저장되어 있기 때문에 이 부분에 추가되어 있는 복호화 모듈을 통해 복호화를 수행한 후 odex 파일을 리턴하여 App 실행에 사용되는 것을 특징으로 하는 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템.
KR1020120020519A 2012-02-28 2012-02-28 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법 KR101284676B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020120020519A KR101284676B1 (ko) 2012-02-28 2012-02-28 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120020519A KR101284676B1 (ko) 2012-02-28 2012-02-28 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법

Publications (1)

Publication Number Publication Date
KR101284676B1 true KR101284676B1 (ko) 2013-08-23

Family

ID=49219499

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120020519A KR101284676B1 (ko) 2012-02-28 2012-02-28 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법

Country Status (1)

Country Link
KR (1) KR101284676B1 (ko)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103886230A (zh) * 2014-02-24 2014-06-25 四川长虹电器股份有限公司 android***的软件版权保护方法及其***
CN104408337A (zh) * 2014-11-18 2015-03-11 刘鹏 一种apk文件防逆向的加固方法
CN104462883A (zh) * 2014-11-09 2015-03-25 刘鹏 一种apk文件加固的方法
CN104462879A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 应用程序免Root运行控制方法与装置
CN104484585A (zh) * 2014-11-26 2015-04-01 北京奇虎科技有限公司 一种应用程序安装包的处理方法、装置及移动设备
KR101532763B1 (ko) * 2013-12-26 2015-07-02 주식회사 엔젠소프트 어플리케이션 불법복제 방지 시스템 및 방법
KR101604892B1 (ko) 2013-11-05 2016-03-25 단국대학교 산학협력단 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
KR101614189B1 (ko) * 2013-12-11 2016-04-20 단국대학교 산학협력단 어플리케이션 불법 유포를 방지하는 방법과 이를 위한 장치
CN106681736A (zh) * 2016-12-30 2017-05-17 深圳Tcl数字技术有限公司 Linux***业务在Android***实现的方法及装置
CN107391223A (zh) * 2017-03-30 2017-11-24 阿里巴巴集团控股有限公司 一种文件处理方法及装置
KR20180051618A (ko) * 2015-10-16 2018-05-16 제말토 에스에이 애플리케이션을 관리하는 방법
KR20180100779A (ko) 2017-03-02 2018-09-12 브이피 주식회사 안드로이드용 어플리케이션의 멀티 실행 파일을 위한 암호화 방법
CN109145619A (zh) * 2018-08-13 2019-01-04 中金金融认证中心有限公司 一种Android应用程序资源加固方法及***

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951866B1 (ko) * 2007-12-04 2010-04-12 주식회사 텔레칩스 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법
KR20120006664A (ko) * 2010-07-13 2012-01-19 (주)앵글스톤테크놀러지 달빅(Dalvik) 가상머신(Virtual Machine: VM)이 탑재된 단말기에서 자바 클래스 로딩 방법
KR20120120686A (ko) * 2011-04-25 2012-11-02 삼성전자주식회사 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100951866B1 (ko) * 2007-12-04 2010-04-12 주식회사 텔레칩스 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법
KR20120006664A (ko) * 2010-07-13 2012-01-19 (주)앵글스톤테크놀러지 달빅(Dalvik) 가상머신(Virtual Machine: VM)이 탑재된 단말기에서 자바 클래스 로딩 방법
KR20120120686A (ko) * 2011-04-25 2012-11-02 삼성전자주식회사 휴대용 단말기에서 어플리케이션 패키지를 처리하기 위한 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문(2009.11) *

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101604892B1 (ko) 2013-11-05 2016-03-25 단국대학교 산학협력단 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
KR101614189B1 (ko) * 2013-12-11 2016-04-20 단국대학교 산학협력단 어플리케이션 불법 유포를 방지하는 방법과 이를 위한 장치
KR101532763B1 (ko) * 2013-12-26 2015-07-02 주식회사 엔젠소프트 어플리케이션 불법복제 방지 시스템 및 방법
CN103886230A (zh) * 2014-02-24 2014-06-25 四川长虹电器股份有限公司 android***的软件版权保护方法及其***
CN104462883A (zh) * 2014-11-09 2015-03-25 刘鹏 一种apk文件加固的方法
CN104408337A (zh) * 2014-11-18 2015-03-11 刘鹏 一种apk文件防逆向的加固方法
CN104484585A (zh) * 2014-11-26 2015-04-01 北京奇虎科技有限公司 一种应用程序安装包的处理方法、装置及移动设备
CN104462879A (zh) * 2014-11-28 2015-03-25 北京奇虎科技有限公司 应用程序免Root运行控制方法与装置
KR20180051618A (ko) * 2015-10-16 2018-05-16 제말토 에스에이 애플리케이션을 관리하는 방법
KR102026279B1 (ko) 2015-10-16 2019-09-27 제말토 에스에이 애플리케이션을 관리하는 방법
CN106681736A (zh) * 2016-12-30 2017-05-17 深圳Tcl数字技术有限公司 Linux***业务在Android***实现的方法及装置
KR20180100779A (ko) 2017-03-02 2018-09-12 브이피 주식회사 안드로이드용 어플리케이션의 멀티 실행 파일을 위한 암호화 방법
CN107391223A (zh) * 2017-03-30 2017-11-24 阿里巴巴集团控股有限公司 一种文件处理方法及装置
CN107391223B (zh) * 2017-03-30 2021-03-19 创新先进技术有限公司 一种文件处理方法及装置
CN109145619A (zh) * 2018-08-13 2019-01-04 中金金融认证中心有限公司 一种Android应用程序资源加固方法及***

Similar Documents

Publication Publication Date Title
KR101284676B1 (ko) 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법
JP4916512B2 (ja) コンテンツ保護システム間のデジタルコンテンツの複写
JP5237375B2 (ja) 著作権オブジェクトのバックアップのための装置および方法
US7480802B2 (en) License-based cryptographic technique, particularly suited for use in a digital rights management system, for controlling access and use of bore resistant software objects in a client computer
US6801999B1 (en) Passive and active software objects containing bore resistant watermarking
JP4304220B2 (ja) 自己保護文書が記録されたコンピュータ読み取り可能な記録媒体及び自己保護文書を使用する方法
CN101872404B (zh) 一种保护Java软件程序的方法
US20040039932A1 (en) Apparatus, system and method for securing digital documents in a digital appliance
US20080005033A1 (en) Secure device licensing
EP2065828B1 (en) Media storage structures for storing content, devices for using such structures, systems for distributing such structures
CN102236757A (zh) 一种适用于Android***的软件保护方法及***
CN102087605A (zh) 一种基于android平台应用安装控制方法及***
JP2005284525A (ja) コンテンツ流通システム、暗号化装置、コンテンツ提供装置、コンテンツ再生装置、ライセンス情報提供装置、暗号化方法、コンテンツ提供方法、コンテンツ再生方法、ライセンス情報提供方法、情報処理プログラム、及び記憶媒体
JP2009075720A (ja) 情報処理装置及び情報処理プログラム
CN101923616A (zh) 版权保护中的服务提供装置、用户终端及版权保护方法
KR20090014575A (ko) Drm 에이전트의 공유장치 및 방법
KR101579696B1 (ko) 암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법
Bahaa-Eldin et al. A comprehensive software copy protection and digital rights management platform
CN103532712A (zh) 数字媒体文件保护方法、***及客户端
KR101415786B1 (ko) 온라인 실행 코드 기술과 암호화 기반 불법 복제 방지 시스템 및 그 방법
KR100973333B1 (ko) 시간에 기반한 저작물 불법 사용 방지 시스템 및 방법
Lau et al. PlaySafe: a digital rights management system for media content consumption
KR20060096404A (ko) 멀티미디어 전송시스템의 저작권 보호 방법

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20160701

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20180702

Year of fee payment: 6