KR100951866B1 - 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법 - Google Patents

가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법 Download PDF

Info

Publication number
KR100951866B1
KR100951866B1 KR1020070124858A KR20070124858A KR100951866B1 KR 100951866 B1 KR100951866 B1 KR 100951866B1 KR 1020070124858 A KR1020070124858 A KR 1020070124858A KR 20070124858 A KR20070124858 A KR 20070124858A KR 100951866 B1 KR100951866 B1 KR 100951866B1
Authority
KR
South Korea
Prior art keywords
mobile application
media device
mobile
installation program
virtual machine
Prior art date
Application number
KR1020070124858A
Other languages
English (en)
Other versions
KR20090058184A (ko
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 KR1020070124858A priority Critical patent/KR100951866B1/ko
Publication of KR20090058184A publication Critical patent/KR20090058184A/ko
Application granted granted Critical
Publication of KR100951866B1 publication Critical patent/KR100951866B1/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
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q2220/00Business processing using cryptography
    • G06Q2220/10Usage protection of distributed data files
    • G06Q2220/16Copy protection or prevention

Landscapes

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

Abstract

본 발명은 가상머신 기반의 모바일 어플리케이션 보호 기술에 관한 것으로, 특히 모바일 미디어 장치에 구비된 가상머신을 수정할 필요없이 가상머신 기반의 컨텐츠와 컨텐츠 설치 과정에서 생성되는 파일들을 모바일 미디어 장치 고유 번호를 이용해 암호화함으로써 컨텐츠의 저작권을 보호할 수 있는 모바일 어플리케이션 보호 기술에 관한 것이다. 본 발명에 따르면 모바일 미디어 장치용 가상머신 기반 컨텐츠의 무단 복제 및 배포를 원천적으로 방지할 수 있으며, 각 모바일 미디어 장치의 제조업체와 컨텐츠 제공 업체에서 자체 개발한 툴과 알고리즘을 이용하여 펌웨어 수준에서 컨텐츠 보호를 구현할 수 있으므로 가상머신을 수정할 필요없이 간단하게 컨텐츠를 보호할 수 있는 효과가 있다.
자바, JVM, midlet, 모바일 게임, 암호, DRM

Description

가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법{Virtual machine based mobile application protecting system, and method for the same}
본 발명은 가상머신 기반의 모바일 어플리케이션 보호 기술에 관한 것으로, 특히 모바일 미디어 장치에 구비된 가상머신을 수정할 필요없이 가상머신 기반의 컨텐츠와 컨텐츠 설치 과정에서 생성되는 파일들을 모바일 미디어 장치 고유 번호를 이용해 암호화함으로써 컨텐츠의 저작권을 보호할 수 있는 모바일 어플리케이션 보호 기술에 관한 것이다.
최근 출시되는 휴대용 모바일 장치들은 그동안 많은 발전을 거듭해 휴대 전화뿐만 아니라 음악, 영상, 게임 등 다양한 멀티미디어 기능을 갖추고 있다. 특히, 여러 운영체제(OS)에 대한 이식성이 뛰어나고 파일의 크기 또한 작은 자바(JAVA) 프로그램을 이용한 어플리케이션이 주목받고 있다.
자바 프로그램을 이용한 어플리케이션에 있어서, 무선 전화 및 쌍방향 무선 호출기 등이 소프트웨어 어플리케이션과 상호 교류하는 방법을 정의한 API를 MIDP(mobile information device profile) 표준이라 하는데, 이러한 MIDP 표준에 의해 작성된 어플리케이션들을 미들릿(midlet)이라 지칭한다.
따라서, 이러한 미들릿은 이동장비에서 작동하도록 설계되었으며, 자바 가상머신(JAVA VM) 어플리케이션 관리자에 의해 실행되고 제어되도록 만들어진다.
미들릿을 배포하고 설치 및 실행하기 위해서는 JAR 파일과 JAD 파일이 필요하다. JAR 파일은 미들릿의 모든 클래스 파일들과 리소스(그림, 소리)들을 포함하고 있는 파일이며, JAD 파일은 미들릿의 설치 여부와 설치 시 필요한 정보들을 포함하고 있는 파일이다.
휴대용 장치에서 자바를 지원하기 위해서는 자바 가상머신이 구비된 휴대용 장치로 자바 미들릿 파일을 다운로드하고, 자바 가상머신을 실행시켜 미들릿 파일을 설치 및 실행하게 된다. 이때, 미들릿 파일을 다운로드하여 설치 및 실행하는 과정에서 컨텐츠의 저작권 보호를 위해 DRM(digital rights management)이 필요하다.
현재 여러 음악 컨텐츠 제공업체에서는 제공되는 컨텐츠의 불법복제 유통을 막기 위해 저작권 보호를 위한 DRM을 각 업체별로 사용하고 있다. 음악 파일과 마찬가지로 휴대용 장치 사용자는 웹 상에서 미들릿 컨텐츠를 다운로드하여 USB 라인을 통해 휴대용 장치로 복사하여 실행할 수 있으며, 무선 인터넷은 무선 전화 환경과 다르므로 불법복제로부터 컨텐츠의 저작권 보호가 어렵다는 문제점이 있다.
또한, 정당한 권리를 가진 사용자가 인증을 통해 미들릿 컨텐츠를 정당하게 다운로드하였더라도 일단 다운로드한 이후 관리가 소홀할 경우에는 제 3자의 손에 컨텐츠가 손쉽게 넘어가 유포될 수 있다는 문제점이 있다. 또한, 기존의 DRM 방식을 통해 컨텐츠를 보호하기 위해서는 자바 가상머신을 수정해야 하므로 컨텐츠 공급자 입장에서 접근하기에는 구현이 쉽지 않다는 문제점이 있다.
본 발명의 목적은 모바일 미디어 장치에 구비된 가상머신을 수정할 필요없이 간단한 방법으로 가상머신 기반의 컨텐츠를 보호할 수 있으며, 설치된 컨텐츠 파일이 외부 유포되더라도 컨텐츠의 사용을 원천적으로 방지할 수 있는 모바일 어플리케이션 보호 기술을 제공하는 데 있다.
본 발명에 따른 모바일 어플리케이션 보호 시스템은, 가상머신 기반의 모바일 어플리케이션 설치 프로그램을 암호화하여 네트워크를 통해 제공하는 컨텐츠 제공서버; 및 어플리케이션을 실행하는 가상머신을 구비하며, 상기 컨텐츠 제공서버로부터 상기 설치 프로그램을 다운로드하여 복호화하고, 상기 설치 프로그램을 실행하여 가상머신 기반의 모바일 어플리케이션을 설치하고, 상기 모바일 어플리케이션 설치시 생성되는 프리-인스톨 파일을 암호화하는 모바일 미디어 장치를 포함하여 구성된다.
또한, 본 발명에 따른 모바일 어플리케이션 보호 방법은, 네트워크를 통해 컨텐츠 제공서버로부터 암호화된 가상머신 기반의 모바일 어플리케이션 설치 프로그램을 다운로드하는 단계; 상기 다운로드한 설치 프로그램을 복호화하는 단계; 상기 설치 프로그램을 실행하여 가상머신 기반의 모바일 어플리케이션을 모바일 미디어 장치에 설치하는 단계; 상기 모바일 어플리케이션의 설치 과정 중 상기 모바일 미디어 장치 내에 생성되는 프리-인스톨 파일을 암호화하는 단계; 및 상기 모바일 어플리케이션 실행시 상기 프리-인스톨 파일을 복호화한 후 상기 모바일 어플리케이션을 실행하는 단계를 포함하여 구성된다.
본 발명에 따르면 모바일 미디어 장치용 가상머신 기반 컨텐츠의 무단 복제 및 배포를 원천적으로 방지할 수 있으며, 각 모바일 미디어 장치의 제조업체와 컨텐츠 제공 업체에서 자체 개발한 툴과 알고리즘을 이용하여 펌웨어 수준에서 컨텐츠 보호를 구현할 수 있으므로 가상머신을 수정할 필요없이 간단하게 컨텐츠를 보호할 수 있는 효과가 있다.
이하, 본 발명의 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명에 따른 모바일 어플리케이션 보호 시스템의 전체 구성을 나타낸 도면이다.
전체 시스템은 컨텐츠 제공서버(20), 네트워크(30), 모바일 미디어 장치(50)로 크게 구성되며, 컨텐츠 제공자(10)와 개인 컴퓨터(40)를 추가로 포함하여 구성될 수 있다.
컨텐츠 제공자(10)는 컨텐츠를 직접 제작하거나 전달받아 컨텐츠 제공서버(20)에 공급해준다. 이때, 컨텐츠는 게임, 음악, 모바일용 유틸리티 등 모바일 장치를 통해 구동 가능한 컨텐츠를 모두 포함한 개념이다.
컨텐츠 제공서버(20)는 보관된 컨텐츠를 가상머신 기반의 모바일 어플리케이션 설치 프로그램의 형태로 외부에 제공하는데, 이때, 모바일 어플리케이션 설치 프로그램을 암호화(encryption)하여 네트워크(30)를 통해 개인 컴퓨터(40)나 기타 네트워크 접속 가능한 기기로 제공한다.
모바일 어플리케이션은 설치되는 모바일 미디어 장치(50)의 하드웨어나 OS에 구애받지 않고 동작하도록 가상머신 기반으로 실행되는 응용 프로그램으로서, 예컨대 자바 언어를 사용하여 작성된 자바 가상머신(JAVA VM) 기반으로 동작하도록 MIDP 표준에 따라 작성된 미들릿을 포함하여 구성된다.
자바 가상머신 기반의 미들릿을 설치하는 모바일 어플리케이션 설치 프로그램은 미들릿의 모든 클래스와 리소스를 포함하는 JAR 파일과, 미들릿의 설치 여부와 설치시 필요한 정보를 포함하는 JAD 파일을 포함하여 구성된다.
설치 프로그램의 암호화 시 컨텐츠 제공서버(20)에서는 특정 코드를 이용하여 설치 프로그램을 암호화하며, 암호화된 설치 프로그램은 암호화에 쓰인 특정 코드를 지니고 있어야 복호화가 가능하다.
이때, 특정 코드를 이용하여 암호화하는 방식으로 다양한 DRM 기법이 사용될 수 있으며, 간단한 예로서 XOR 연산 등을 이용하여 설치 프로그램의 암호화가 가능하다.
네트워크(30)는 인터넷, LAN 등 유무선 데이터 전송망을 모두 포함한 개념으로서, 서로 원격지에 위치한 컨텐츠 제공자와 컨텐츠 수신자 간을 연결하여 데이터 전송을 가능케 한다.
개인 컴퓨터(40)는 네트워크(30)를 통해 컨텐츠 제공서버(20)로부터 암호화된 설치 프로그램을 다운로드하고, 외부 라인을 통해 모바일 미디어 장치(50)와 연결됨으로써 다운로드한 암호화된 설치 프로그램을 모바일 미디어 장치(50)로 제공한다.
모바일 미디어 장치(50)는 어플리케이션을 실행하는 가상머신을 구비하며, 자바 가상머신이 탑재된 경우에는 JAR과 JAD 형태의 모바일 어플리케이션 설치 프로그램을 실행하여 모바일 어플리케이션을 설치하는 펌웨어를 구비한다.
모바일 미디어 장치(50)는 개인 컴퓨터(40)와 연결하여 개인 컴퓨터(40)에 저장된 암호화된 설치 프로그램을 제공받는다. 또는, 모바일 미디어 장치(50)에 네트워크 접속 기능이 구비되었다면 네트워크(30)에 직접 접속하여 컨텐츠 제공서버(20)로부터 암호화된 설치 프로그램을 직접 다운로드하여 저장한다.
그리고, 모바일 미디어 장치(50)는 제공받은 설치 프로그램을 복호화(decryption)하고 설치 프로그램을 실행하여 가상머신 기반의 모바일 어플리케이션을 모바일 미디어 장치(50) 내부에 설치한다. 이때, 설치 프로그램을 복호화하기 위한 고유 코드가 모바일 미디어 장치(50) 내부에 출고 시점부터 미리 저장되어 있으며, 모바일 미디어 장치(50)는 내부 저장된 고유 코드를 이용하여 암호화된 설치 프로그램을 복호화한다.
모바일 미디어 장치(50)의 모바일 어플리케이션 설치 과정에서 컨텐츠의 모든 실행 데이터가 포함된 파일들이 생성되는데 이를 프리-인스톨 파일(pre-install file)이라 부르도록 한다. 모바일 미디어 장치(50)는 모바일 어플리케이션 설치시 생성되는 프리-인스톨 파일을 암호화하여 저장해둠으로써 프리-인스톨 파일이 외부로 유포되더라도 컨텐츠가 보호되도록 한다.
이때, 프리-인스톨 파일의 암호화는 모바일 미디어 장치(50)의 내부 칩에 기록된 고유값을 이용하여 진행되며, 모바일 미디어 장치(50)에서 내부 설치된 모바일 어플리케이션을 실행하기 위해서는 암호화된 프리-인스톨 파일을 복호화한 후 모바일 어플리케이션을 실행한다.
도 2는 암호화된 컨텐츠가 PC로 전달되기까지의 시스템의 구성을 나타낸 구성도이다.
모바일 어플리케이션의 1차 보호 시스템은 컨텐츠 서버(20)에서 모바일 어플리케이션 설치 프로그램이 암호화되어 네트워크를 통해 개인 컴퓨터(40)에 다운로드된 후 모바일 미디어 장치(50)로 전달되어 복호화되기까지의 구성에 해당되며, 이후의 모바일 어플리케이션 설치 및 프리-인스톨 파일 암호화는 2차 보호 시스템에 해당된다. 도 2에서는 1차 보호 시스템 중 암호화된 설치 프로그램이 모바일 미디어 장치(50)로 전달되기 이전까지 필요한 구성을 도시하였으며, 이후 과정을 위해 필요한 2차 보호 시스템에 대해서는 도 6에서 설명한다.
먼저, Contents Provider로 표기된 컨텐츠 제공자(10)로부터 모바일 컨텐츠가 생성되어 MIDLET SERVER로 표기된 컨텐츠 제공서버(20)로 전달된다.
그러면, 컨텐츠 제공서버(20)에서는 모바일 컨텐츠를 가상머신 기반의 모바 일 미디어 장치에 설치할 수 있는 모바일 어플리케이션 설치 프로그램을 생성하고, 이를 DRM 암호화(DRM encryption)을 통해 개인 컴퓨터(PC)(40)로 제공한다. 개인 컴퓨터(40)로 다운로드되는 과정에서 WEB SERVER 등을 거쳐 데이터가 전달될 수 있다.
도 3은 특정 코드를 이용한 미들릿 파일 암호화 툴을 나타낸 예시도이다.
도시된 암호화 툴은 16바이트 암호화 툴이다. 컨텐츠 파일을 암호화하기 위해 자바 게임 파일인 JAD 파일을 선택하여 32자리의 시리얼 번호를 입력하고 "Start Encryption" 버튼을 누르면 선택된 게임 파일인 JAD와 JAR 파일의 데이터가 동시에 시리얼 번호와 XOR 연산을 수행함으로써 선택된 게임 파일이 암호화된다. 암호화된 컨텐츠 파일은 32자리 시리얼 번호를 알고 있어야만 컨텐츠 정보를 알 수 있으며 컨텐츠를 설치하여 게임을 실행할 수 있다.
도 4는 도 3의 암호화 툴을 사용하여 암호화되기 전의 JAD 파일의 내용이고, 도 5는 도 3의 암호화 툴을 통해 암호화된 JAD 파일의 내용이다.
암호화가 진행된 이후의 JAD 파일을 통해서는 암호화되기 이전의 JAD 파일에 포함된 미들릿 데이터 정보를 파악할 수 없다. 또한, JAR 파일의 경우에도 마찬가지의 결과를 얻을 수 있다.
즉, 고유 시리얼 번호를 알지 못하면 XOR 연산을 통해 파일을 원상복구할 수 없으며, 모바일 미디어 장치에서 파일을 읽을 수 없기 때문에 모바일 어플리케이션 의 설치 또한 불가능하다. 따라서 미들릿을 실행할 수 없으므로 컨텐츠 저작권 보호 기능을 수행하게 된다.
고유 시리얼 번호가 모바일 미디어 장치 내에 저장되어 있으면, 모바일 미디어 장치에서는 암호화된 JAD, JAR 파일을 복호화해낼 수 있으며, 원상복구된 파일을 이용하여 모바일 어플리케이션을 모바일 미디어 장치 내에 설치할 수 있다.
도 6은 암호화된 컨텐츠가 모바일 미디어 장치에 설치되기까지의 시스템의 구성을 나타낸 구성도이다.
모바일 미디어 장치(50)가 개인 컴퓨터(40)로부터 암호화된 설치 프로그램을 제공받아 복호화하여 모바일 어플리케이션을 설치하기 위한 시스템 구성과, 모바일 어플리케이션 설치시에 생성되는 프리-인스톨 파일을 다시 암호화하여 파일을 보호하기 위한 2차 보호 시스템을 위한 시스템 구성을 도시하였다. 또한, 모바일 어플리케이션 내에 암호화되어 저장된 프리-인스톨 파일을 제 2의 개인 컴퓨터(60)로 제공하더라도 컨텐츠 보호가 이루어짐을 도시하였다.
모바일 미디어 장치(50)가 암호화된 모바일 어플리케이션 설치 프로그램을 정상적으로 복호화하여 모바일 어플리케이션을 설치하고 나면 모바일 미디어 장치(50)의 SDK 내에서는 모바일 어플리케이션의 모든 실행 데이터를 담은 파일들을 생성하는데 이를 편의상 프리-인스톨 파일이라 명명한다.
게임 컨텐츠를 예로 들면, 생성된 프리-인스톨 파일들은 *ii, *ap, *ss, *tmp를 확장자로 갖는 모든 게임 파일의 경로, 이미지 등 게임 파일에 대한 데이터 를 갖고 있으며, 이러한 프리-인스톨 파일들은 모바일 미디어 장치(50)에 연결된 개인 컴퓨터(60)를 통해 내려받을 수 있다.
즉, 개인 컴퓨터(60)를 통해 내려받은 프리-인스톨 파일들은 암호화되어 있지 않으므로 그대로 복사하여 다른 장치에 설치가 가능하며, 인터넷 상에 유포되어 불특정 다수의 장치에 설치된 후 실행이 가능하므로 컨텐츠 보호에 문제가 발생한다.
따라서, 모바일 미디어 장치(50)에서는 모바일 어플리케이션의 설치 과정 중에 생성된 파일에 대하여 다시 한번 암호화 과정을 거치게 된다.
이러한 과정들은 모바일 미디어 장치(50) 내의 펌웨어(F/W)에서 이루어지며, 암호화 및 복호화 알고리즘은 주로 언급된 XOR 알고리즘 이외에 복잡한 DRM 알고리즘을 적용하는 것도 가능하다. 또한, 프리-인스톨 파일의 암호화는 컨텐츠 제공서버(10)에서 적용된 1차 암호화 방법과 동일할 필요도 없으므로, 모바일 미디어 장치(50) 내에서는 전혀 다른 별개의 DRM 알고리즘을 통해 프리-인스톨 파일을 암호화하여 불법복제 제한이 이루어진다.
이때, 모바일 미디어 장치(50) 내에서 사용되는 DRM 알고리즘은 모바일 미디어 장치별로 고유한 값을 사용할 수 있으며, 예컨대 내부 칩에 마스킹된 값을 사용할 수 있다.
도 7은 본 발명에 따른 모바일 어플리케이션 보호 방법의 전체 동작과정을 나타낸 순서도이다.
먼저, 네트워크를 통해 암호화된 설치 프로그램을 다운로드한다(ST10). 여기서, 설치 프로그램은 컨텐츠 제공서버에서 특정 코드를 이용하여 암호화된 가상머신 기반의 모바일 어플리케이션 설치 프로그램이다.
이때, 설치 프로그램의 다운로드는 네트워크에 접속된 개인 컴퓨터 등을 거쳐 모바일 미디어 장치에 전달됨으로써 진행되거나, 또는 모바일 미디어 장치가 네트워크에 직접 접속하여 컨텐츠 제공서버로부터 암호화된 설치 프로그램을 다운로드할 수도 있다.
그 다음으로, 모바일 미디어 장치 내에 고유 코드가 갖추어져 있는지를 체크하고(ST20), 설치 프로그램을 복호화할 수 있는 고유 코드가 존재하면 다운로드한 설치 프로그램을 복호화한다(ST30). 이때, 고유 코드는 컨텐츠 제공서버에서 암호화에 쓰인 특정 코드와 대응되거나 동일하도록 미리 설정되어 모바일 미디어 장치에 제공된 코드이다. 일반적으로, 모바일 미디어 장치의 출시 시점부터 내부에 저장된다.
그리고, 복호화된 설치 프로그램을 실행하여 가상머신 기반의 모바일 어플리케이션을 모바일 미디어 장치에 설치하기 시작한다(ST40).
이때, 모바일 어플리케이션을 설치하는 과정에서 모든 실행 데이터가 포함된 프리-인스톨 파일이 생성되는데, 프리-인스톨 파일이 모바일 미디어 장치 외부로 유포되더라도 컨텐츠 보호가 유지되도록 프리-인스톨 파일을 암호화한다(ST50). 프리-인스톨 파일 암호화는 컨텐츠 제공서버에서 채택한 암호화 방식과는 별개의 방식으로 진행될 수 있으며, 모바일 미디어 장치의 내부 칩에 기록된 고유값을 이용 하여 이루어진다.
그 다음으로, 사용자의 외부 조작 등에 의해 모바일 어플리케이션 실행 명령이 내려지면(ST60), 프리-인스톨 파일을 복호화할 수 있는 코드가 존재하는지 여부를 체크하고(ST70), 코드가 존재하면 프리-인스톨 파일을 복호화한 후 모바일 어플리케이션을 실행한다(ST80).
이를 통해, 프리-인스톨 파일이 제 2의 모바일 미디어 장치로 복사됐을 경우에 제 2의 모바일 미디어 장치 내에 복호화 코드가 존재하여 정당한 사용자 권리가 인증된 장치라면 모바일 어플리케이션을 실행할 수 있지만, 그렇지 않은 경우에는 프리-인스톨 파일을 복사했다 하더라도 모바일 어플리케이션의 실행이 불가능해진다.
도 8은 컨텐츠 1차 보호를 위한 동작과정을 나타낸 순서도이다.
JAVA MIDLET 파일이 공급자에 의해 제공되면, 공급자는 JAVA MIDLET 파일을 공급자 고유 번호를 이용하여 XOR 연산을 통해 암호화한다. 이는 앞서 언급한 바와 같이 컨텐츠 제공서버(20)에서 설치 프로그램의 암호화가 이루어지는 과정과 동일하다.
그리고, 암호화된 JAVA MIDLET 파일은 대용량 기억 방식의 사용자 장치로 복사된다. 이는 앞서 언급한 대로 암호화된 설치 프로그램이 개인 컴퓨터를 통하거나 직접 네트워크를 통해 모바일 미디어 장치로 다운로드되는 과정에 해당된다.
그 다음으로, 장치 내에 고유 시리얼 번호의 유무를 확인하고, 해당 번호가 존재하면 다운로드한 DMP(digital media player) 내에 구비된 SDK(software development kit)에서 해당 번호를 이용하여 XOR 연산을 통해 JAVA MIDLET 파일을 복호화한다. 따라서, 복호화된 JAVA MIDLET 파일을 실행하기만 하면 JAVA MIDLET 컨텐츠를 사용자 장치 내에 설치할 수 있는 상태가 준비되었다.
그런데, 만약 고유 시리얼 번호가 존재하지 않는다면, JAVA MIDLET 파일의 복호화는 진행될 수 없으며 컨텐츠의 설치도 이루어질 수 없다.
도 9는 컨텐츠 2차 보호를 위한 동작과정을 나타낸 순서도이다.
앞서 도 8까지의 과정을 통해 JAVA MIDLET 파일을 복호화함으로써 JAVA MIDLET 컨텐츠를 설치할 수 있는 상태가 준비되었다.
장치 내의 SDK는 JAVA MIDLET 파일을 실행시킴으로써 JAVA MIDLET 컨텐츠를 설치하며, 설치 과정에서 프리-인스톨 파일들이 생성된다.
이때, SDK는 장치 고유의 시리얼 코드를 이용하여 XOR 연산을 통해 프리-인스톨 파일들을 암호화한다. 따라서, JAVA MIDLET 컨텐츠를 실행하기 위해서는 프리-인스톨 파일들을 복호화해야 하며, 이는 암호화를 진행한 장치에 국한된 고유 시리얼 코드가 있어야 가능하다.
도시된 순서도에 의하면, 암호화된 프리-인스톨 파일이 복사되어 다른 장치로 다운로드되는 경우의 처리 과정이 나타나 있다.
일단, 암호화된 프리-인스톨 파일이 다른 장치로 복사된 후, 다른 장치에서는 JAVA MIDLET 컨텐츠 실행을 위해 실행 명령을 내리고, 이에 따라 암호화에 쓰인 장치 고유 번호 유무를 체크한다.
장치 고유 번호가 존재하면 프리-인스톨 파일을 다운로드 받은 장치의 SDK가 장치 고유 번호를 이용하여 프리-인스톨 파일을 XOR 연산을 통해 복호화한 후 JAVA MIDLET 컨텐츠를 실행한다.
그러나, 장치 고유 번호가 존재하지 않는다면 프리-인스톨 파일을 다운로드 받은 장치에서는 프리-인스톨 파일의 복호화가 불가능하므로, JAVA MIDLET 컨텐츠를 실행할 수 없게 된다.
이상에서 실시예를 들어 본 발명을 더욱 상세하게 설명하였으나, 본 발명은 반드시 이러한 실시예로 국한되는 것은 아니고, 본 발명의 기술사상을 벗어나지 않는 범위 내에서 다양하게 변형실시될 수 있다. 따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
도 1은 본 발명에 따른 모바일 어플리케이션 보호 시스템의 전체 구성을 나타낸 도면,
도 2는 암호화된 컨텐츠가 PC로 전달되기까지의 시스템의 구성을 나타낸 구성도,
도 3은 특정 코드를 이용한 미들릿 파일 암호화 툴을 나타낸 예시도,
도 4는 도 3의 암호화 툴을 사용하여 암호화되기 전의 JAD 파일의 내용,
도 5는 도 3의 암호화 툴을 통해 암호화된 JAD 파일의 내용,
도 6은 암호화된 컨텐츠가 모바일 미디어 장치에 설치되기까지의 시스템의 구성을 나타낸 구성도,
도 7은 본 발명에 따른 모바일 어플리케이션 보호 방법의 전체 동작과정을 나타낸 순서도,
도 8은 컨텐츠 1차 보호를 위한 동작과정을 나타낸 순서도,
도 9는 컨텐츠 2차 보호를 위한 동작과정을 나타낸 순서도이다.

Claims (8)

  1. 삭제
  2. 자바 가상머신 기반으로 동작하도록 MIDP 표준에 따라 작성된 미들릿을 포함하고 설치시에 컨텐츠의 실행 데이터를 담은 하나 이상의 파일(이하, '프리-인스톨 파일'이라 함)을 생성하는 모바일 어플리케이션을 구비하고, 실행시 상기 모바일 어플리케이션을 설치하는 JAR와 JAD 형태의 설치 프로그램을 암호화하여 네트워크를 통해 제공하는 컨텐츠 제공서버; 및
    어플리케이션을 실행하는 자바 가상머신을 구비하고, 상기 컨텐츠 제공서버로부터 상기 설치 프로그램을 다운로드하여 복호화하고, 상기 설치 프로그램을 실행하여 상기 모바일 어플리케이션을 설치하고, 상기 모바일 어플리케이션 설치시 생성되는 프리-인스톨 파일을 암호화하고, 상기 모바일 어플리케이션 실행시 상기 프리-인스톨 파일을 복호화한 후 상기 자바 가상머신을 통해 상기 모바일 어플리케이션을 실행하는 펌웨어를 구비하는 모바일 미디어 장치;
    를 포함하여 구성되는 모바일 어플리케이션 보호 시스템.
  3. 청구항 2에 있어서,
    상기 모바일 미디어 장치는 상기 모바일 미디어 장치에 저장된 고유 코드를 이용하여 상기 암호화된 설치 프로그램을 복호화하는 것을 특징으로 하는 모바일 어플리케이션 보호 시스템.
  4. 청구항 2 또는 청구항 3에 있어서,
    상기 모바일 미디어 장치는 상기 모바일 미디어 장치의 내부 칩에 기록된 고유값을 이용하여 상기 프리-인스톨 파일을 암호화하는 것을 특징으로 하는 모바일 어플리케이션 보호 시스템.
  5. 삭제
  6. 자바 가상머신 기반으로 동작하도록 MIDP 표준에 따라 작성된 미들릿을 포함하고 설치시에 컨텐츠의 실행 데이터를 담은 하나 이상의 파일(이하, '프리-인스톨 파일'이라 함)을 생성하는 모바일 어플리케이션을 컨텐츠 제공서버에서 구비하는 단계;
    상기 컨텐츠 제공 서버가 상기 모바일 어플리케이션을 설치하는 JAR와 JAD 형태의 설치 프로그램을 암호화하여 네트워크를 통해 제공하고, 모바일 미디어 장치가 네트워크를 통해 상기 컨텐츠 제공서버로부터 상기 설치 프로그램을 다운로드하는 단계;
    상기 모바일 미디어 장치가 상기 다운로드한 설치 프로그램을 복호화하는 단계;
    상기 모바일 미디어 장치가 상기 설치 프로그램을 실행하여 가상머신 기반의 모바일 어플리케이션을 설치하는 단계;
    상기 모바일 어플리케이션의 설치 과정 중 상기 모바일 미디어 장치 내에 생성되는 프리-인스톨 파일을 암호화하는 단계; 및
    상기 모바일 어플리케이션 실행시 상기 프리-인스톨 파일을 복호화한 후 상기 모바일 어플리케이션을 실행하는 단계;
    를 포함하여 구성되는 모바일 어플리케이션 보호 방법.
  7. 청구항 6에 있어서,
    상기 설치 프로그램 다운로드 단계는 상기 컨텐츠 제공서버가 특정 코드를 이용하여 상기 설치 프로그램을 암호화하는 단계와, 네트워크를 통해 상기 암호화된 설치 프로그램을 다운로드하는 단계를 포함하여 구성되고,
    상기 설치 프로그램 복호화 단계는 상기 모바일 미디어 장치에 저장된 고유 코드를 이용하여 상기 암호화된 설치 프로그램을 복호화하는 단계를 포함하여 구성된 것을 특징으로 하는 모바일 어플리케이션 보호 방법.
  8. 청구항 6 또는 청구항 7에 있어서,
    상기 프리-인스톨 파일 암호화 단계는 상기 모바일 미디어 장치의 내부 칩에 기록된 고유값을 이용하여 상기 프리-인스톨 파일을 암호화하는 단계를 포함하여 구성된 것을 특징으로 하는 모바일 어플리케이션 보호 방법.
KR1020070124858A 2007-12-04 2007-12-04 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법 KR100951866B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070124858A KR100951866B1 (ko) 2007-12-04 2007-12-04 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070124858A KR100951866B1 (ko) 2007-12-04 2007-12-04 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20090058184A KR20090058184A (ko) 2009-06-09
KR100951866B1 true KR100951866B1 (ko) 2010-04-12

Family

ID=40988704

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070124858A KR100951866B1 (ko) 2007-12-04 2007-12-04 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR100951866B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101284676B1 (ko) * 2012-02-28 2013-08-23 건국대학교 산학협력단 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법
KR101611104B1 (ko) 2014-12-31 2016-04-08 한양대학교 산학협력단 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101733520B1 (ko) * 2009-11-27 2017-05-11 삼성전자주식회사 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법
US8850593B2 (en) 2011-05-12 2014-09-30 Hewlett-Packard Development Company, L.P. Data management using a virtual machine-data image
KR101299099B1 (ko) * 2011-09-07 2013-09-16 주식회사 팬택 임베디드 시스템에서 최적화된 가상화 모듈을 관리하는 장치 및 방법
CN109040133A (zh) * 2018-09-27 2018-12-18 上海点融信息科技有限责任公司 在区块链网络中安装智能合约的方法、装置及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040102997A (ko) * 2003-05-30 2004-12-08 이노에이스(주) 가상머신 및 플레이어를 탑재하는 플랫폼시스템
KR100730708B1 (ko) * 2005-08-02 2007-06-21 노키아 코포레이션 암호화된 어플리케이션 설치를 위한 구조

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040102997A (ko) * 2003-05-30 2004-12-08 이노에이스(주) 가상머신 및 플레이어를 탑재하는 플랫폼시스템
KR100730708B1 (ko) * 2005-08-02 2007-06-21 노키아 코포레이션 암호화된 어플리케이션 설치를 위한 구조

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101284676B1 (ko) * 2012-02-28 2013-08-23 건국대학교 산학협력단 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법
KR101611104B1 (ko) 2014-12-31 2016-04-08 한양대학교 산학협력단 인터넷 인증 및 2차 생성 파일 암호화를 이용한 소프트웨어 부정 사용 방지 방법

Also Published As

Publication number Publication date
KR20090058184A (ko) 2009-06-09

Similar Documents

Publication Publication Date Title
US10108821B2 (en) Program execution device
US8452988B2 (en) Secure data storage for protecting digital content
EP1325411B1 (en) Methods of providing java tamperproofing
JP4916512B2 (ja) コンテンツ保護システム間のデジタルコンテンツの複写
US7827613B2 (en) System and method for supporting digital rights management in an enhanced Java™ 2 runtime environment
US7313824B1 (en) Method for protecting digital content from unauthorized use by automatically and dynamically integrating a content-protection agent
KR100946042B1 (ko) 탬퍼-레지스턴트 애플리케이션 구동 방법 및 시스템과 컴퓨터 판독 가능 저장 매체
KR101881303B1 (ko) 애플리케이션 데이터 보호를 위한 휴대용 단말기의 장치 및 방법
US20020116632A1 (en) Tamper-resistant computer system
US20060149683A1 (en) User terminal for receiving license
KR101284676B1 (ko) 암호화 기반 사용자 인증 및 안드로이드 앱 불법복제 방지시스템 및 그 방법
KR20060089632A (ko) 컴퓨팅 장치상에서 다수의 특성을 포함하는 어플리케이션을사용하기 위한 사용 라이센스를 획득하는 방법 및 그러한어플리케이션과 사용 라이센스
KR20140077539A (ko) 애플리케이션 프로그램 보호 방법 및 장치
KR20130080046A (ko) 다중 사용자 감응 코드 및 데이터를 보호하는 아키텍처를 포함하는 방법 및 장치
KR100951866B1 (ko) 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법
WO2005098570A1 (ja) 実行装置
US20080071690A1 (en) Contents decryption method using DRM card
KR101447194B1 (ko) Drm 에이전트의 공유장치 및 방법
KR20080081631A (ko) 이동 단말에 탑재되는 디지털 권한 관리 장치 및 이를이용한 디지털 권한 관리 방법
Jeong et al. An anti-piracy mechanism based on class separation and dynamic loading for android applications
KR101604892B1 (ko) 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
JP2008040853A (ja) アプリケーション実行方法およびアプリケーション実行装置
US20060224894A1 (en) Methods, devices and computer programs for creating ciphertext, plaintext and a cryptographic key
KR102326100B1 (ko) 안전한 안드로이드 앱 생성 및 안드로이드 플랫폼에서의 앱 설치/실행을 위한 시스템 및 방법
Santos et al. A generic DRM framework for J2ME applications

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: 20130312

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20140310

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20150302

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20160303

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20170317

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180402

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190305

Year of fee payment: 10