KR101425315B1 - 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법 - Google Patents

자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법 Download PDF

Info

Publication number
KR101425315B1
KR101425315B1 KR1020130023391A KR20130023391A KR101425315B1 KR 101425315 B1 KR101425315 B1 KR 101425315B1 KR 1020130023391 A KR1020130023391 A KR 1020130023391A KR 20130023391 A KR20130023391 A KR 20130023391A KR 101425315 B1 KR101425315 B1 KR 101425315B1
Authority
KR
South Korea
Prior art keywords
java application
terminal device
address
native code
java
Prior art date
Application number
KR1020130023391A
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 숭실대학교산학협력단
Application granted granted Critical
Publication of KR101425315B1 publication Critical patent/KR101425315B1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

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

Abstract

자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법이 개시된다. 개시된 단말장치는 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하는 컴파일부; 상기 자바 애플리케이션 내의 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한지를 비교하는 비교부; 및 상기 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한 경우, 상기 자바 애플리케이션을 정상적으로 구매된 것으로 인증하는 제어부;를 포함한다.

Description

자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법{TERMINAL DEVICE AND SERVER HAVING JAVA VIRTURL MACHINE FOR PREVENTING ILLEGAL COPY OF JAVA APPLICATION, AND METHOD FOR AUTHENTIFICATION OF THE JAVA APPLICATION IN THE TERMINAL DEVICE}
본 발명의 실시예들은 자바 애플리케이션의 불법 복제를 효율적으로 방지할 수 있는 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법에 관한 것이다.
스마트폰, 태블릿 PC 등과 같은 스마트 기기에 설치되는 응용 소프트웨어(이하, "모바일 앱"이라 함)은 크기가 작고 변조가 용이하며 기존의 PC 응용 소프트웨어에 비해 보호 기술이 미비하다. 이로 인해, 모바일 앱은 비정상적인 스마트 기기로의 접근에 의해 쉽게 추출이 가능하고, 컴퓨터 시스템, 인터넷, 이동식 저장매체 등을 통해 쉽게 유포될 수 있다. 이에 따라 사용자는 앱 마켓(스토어)을 통하지 않고 비정상적 경로를 통해 유포된 모바일 앱을 설치하여 사용할 수 있다.
이와 같은 모바일 앱의 불법 복제는 모바일 앱 개발자의 개발 의욕을 저하시키며, 모바일 앱 시장의 성장을 방해하는 요소로 작용한다. 이에 따라 모바일 앱의 불법 복제를 방지하기 위한 다양한 방법들이 제안되고 있다.
모바일 앱의 불법 복제를 방지하기 위한 종래의 기술들로, 스마트 기기 내의 애플리케이션 실행파일의 복제 권한을 제한하는 방법(제1 종래기술), 인증서버를 통해 모바일 앱의 불법 복제 여부를 판단하여 정상적인 모바일 앱 만이 실행될 수 있도록 제한하는 방법(제2 종래기술), 모바일 앱에 애플리케이션 DRM(Digital Right Management)을 적용하는 방법(제3 종래기술) 및 공개키/개인키 기반의 암호화 기술을 이용하는 방법(제4 종래기술) 등이 제안되었다.
그러나, 상기한 제1 종래기술은 불법 복제 및 유포 목적이 아닌 백업 목적을 위한 모바일 앱의 복제까지 차단하며, 불법 복제된 모바일 앱이 다운로드될 때 경유하는 모든 지점을 차단하는 것이 실질적으로 불가능하다는 문제점이 있다.
그리고, 상기한 제2 종래기술은 인증서버를 통해 모바일 앱을 인증받는 경우에 발생하는 데이터 요금을 사용자가 부담하게 되고, 데이터 네트워크를 사용할 수 없는 환경에서는 불법 복제 여부의 인증이 불가능하다는 문제점이 있다.
또한, 상기한 제3 종래기술은 모바일 앱의 실행파일에 보안을 위한 라이브러리가 추가되었다는 사실이 실행파일을 통해 쉽게 노출되는 문제점이 있다.
그리고, 상기한 제4 종래기술은 공개키/개인키의 관리가 어렵고, 암호화/복호화를 위한 추가적인 모듈이 필요하다는 문제점이 있다.
상기한 바와 같은 종래기술의 문제점을 해결하기 위해, 본 발명에서는 자바 애플리케이션의 불법 복제를 효율적으로 방지할 수 있는 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법을 제안하고자 한다.
본 발명의 다른 목적들은 하기의 실시예를 통해 당업자에 의해 도출될 수 있을 것이다.
상기한 목적을 달성하기 위해 본 발명의 바람직한 일 실시예에 따르면, 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하는 컴파일부; 상기 자바 애플리케이션 내의 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한지를 비교하는 비교부; 및 상기 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한 경우, 상기 자바 애플리케이션을 정상적으로 구매된 것으로 인증하는 제어부;를 포함하는 것을 특징으로 하는 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치가 제공된다.
상기 단말장치는 상기 제1 베이직 블록의 식별정보 및 상기 제1 주소의 정보를 포함하는 메시지를 서버로 전송하는 전송부;를 더 포함하되, 상기 서버는 상기 제1 베이직 블록의 식별정보를 이용하여 원본 자바 애플리케이션 내에서 상기 제1 베이직 블록을 추출하고, 상기 추출된 제1 베이직 블록을 컴파일하여 상기 제1 네이티브 코드를 생성하며, 상기 제1 주소의 정보를 이용하여 상기 제1 네이티브 코드를 상기 원본 자바 애플리케이션 내의 상기 제1 주소에 저장하여 상기 자바 애플리케이션을 생성할 수 있다.
상기 단말장치는 상기 서버로부터 상기 자바 애플리케이션을 수신하는 수신부;를 더 포함하되, 상기 메시지를 상기 자바 애플리케이션의 구매요청 메시지이고, 상기 수신부는 상기 구매요청 메시지에 대응하여 구매가 완료된 상기 자바 애플리케이션을 상기 서버로부터 수신할 수 있다.
상기 제어부는 상기 자바 애플리케이션이 정상적으로 구매된 것으로 인증된 경우, 상기 애플리케이션의 실행을 허용할 수 있다.
또한, 본 발명의 다른 실시예에 따르면, 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록에 대한 식별정보 및 상기 자바 애플리케이션 내의 제1 주소의 정보를 포함하는 메시지를 단말장치로부터 수신하는 수신부; 및 상기 제1 베이직 블록의 식별정보를 이용하여 상기 자바 애플리케이션 내에서 상기 제1 베이직 블록을 추출하고, 상기 추출된 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하며, 상기 제1 주소의 정보를 이용하여 상기 제1 네이티브 코드를 상기 자바 애플리케이션 내의 상기 제1 주소에 저장하는 컴파일부;를 포함하되, 상기 제1 주소에 삽입된 상기 제1 네이티브 코드는 상기 자바 애플리케이션에 대한 불법 복제 방지용 식별정보로서 활용되는 것을 특징으로 하는 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 서버가 제공된다.
또한, 본 발명의 또 다른 실시예에 따르면, 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하는 단계; 상기 자바 애플리케이션 내의 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한지를 비교하는 단계; 및 상기 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한 경우, 상기 자바 애플리케이션을 정상적으로 구매된 것으로 인증하는 단계;를 포함하는 것을 특징으로 하는 자바 가상 머신이 탑재된 단말장치에서의 자바 애플리케이션의 인증 방법이 제공된다.
본 발명에 따르면, 자바 애플리케이션의 불법 복제를 효율적으로 방지할 수 있게 된다.
도 1은 본 발명의 일 실시예에 따른 자바 애플리케이션의 불법 복제 방지를 위한 시스템의 전체적인 구성을 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 자바 애플리케이션의 불법 복제 방지를 위한 방법의 전체적인 흐름을 도시한 순서도이다.
도 3 내지 도 6은 본 발명의 일 실시예에 따라서, 자바 애플리케이션의 불법 복제 방지를 위한 시스템을 구성하는 각 구성요소의 동작의 개념을 설명하기 위한 도면이다.
본 발명은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세한 설명에 상세하게 설명하고자 한다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였다.
이하에서, 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
도 1은 본 발명의 일 실시예에 따른 자바 애플리케이션의 불법 복제 방지를 위한 시스템의 전체적인 구성을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 시스템(100)은 서버(110) 및 단말장치(120)를 포함한다.
서버(110)는 자바 애플리케이션인 모바일 앱의 구매/판매를 관리하는 앱 마켓(스토어) 서버로서, 도 1에 도시된 바와 같이 수신부(111), 전송부(112) 및 컴파일부(113)를 포함한다. 상기 자바 애플리케이션은 자바 애플리케이션 실행파일일 수 있다.
단말장치(120)는 스마트폰, 태블릿 PC 등과 같이 자바 애플리케이션인 모바일 앱이 실행되는 모든 종류의 장치로서, 도 1에 도시된 바와 같이 수신부(121), 전송부(122), 컴파일부(123), 비교부(124) 및 제어부(125)를 포함한다.
도 2는 본 발명의 일 실시예에 따른 자바 애플리케이션의 불법 복제 방지를 위한 방법의 전체적인 흐름을 도시한 순서도이다.
이하, 도 1 및 도 2를 참조하여, 본 발명의 일 실시예에 따른 자바 애플리케이션의 불법 복제 방지를 위한 시스템(100)의 동작에 대해 상세하게 설명하기로 한다.
먼저, 단계(S202)에서 단말장치(120)는 전송부(122)를 통해 특정 자바 애플리케이션의 구매요청 메시지를 전송한다. 전송된 구매요청 메시지는 수신부(111)를 통해 서버(110)로 수신된다.
구매 요청된 자바 애플리케이션은 다수의 베이직 블록으로 구성되는데, 본 발명에 따르면, 구매요청 메시지는 구매하고자 하는 자바 애플리케이션을 구성하는 다수의 베이직 블록 중 특정 베이직 블록에 대한 식별정보(예를 들어, 번호) 및 자바 애플리케이션 내의 특정 주소에 대한 정보를 포함할 수 있다. 이하, 설명의 편의를 위해, 특정 베이직 블록을 "제1 베이직 블록"으로, 특정 주소를 "제1 주소"라 칭하기로 한다.
한편, 제1 베이직 블록 및 제1 주소의 선정은 단말장치(120)에 탑재된 자바 가상 머신에 의해 수행될 수 있다. 다시 말해, 제1 베이직 블록 및 제1 주소의 선택은 사용자의 관여 없이 자바 가상 머신에 의해 자동적으로 수행될 수 있다.
또한, 서버(110)는 서로 다른 단말장치(120)로부터 구매요청 메시지를 각각 수신할 수 있는데, 이 경우 서로 다른 단말장치(120)로부터 수신된 제1 베이직 블록의 식별번호 및 제1 주소는 서로 상이할 수 있다.
한편, 도 3에서는 상기한 구매요청 메시지의 전송 절차의 개념을 도시하고 있다.
다음으로, 단계(S204)에서 서버(110)는 제1 베이직 블록의 식별정보를 이용하여 구매 요청된 자바 애플리케이션(이하, "원본 자바 애플리케이션"이라고 함) 내에서 제1 베이직 블록을 추출한다.
그리고, 단계(S206)에서 서버(110)는 추출된 제1 베이직 블록을 컴파일하여 네이티브 코드(이하, "제1 네이티브 코드"라고 함)를 생성한다. 본 발명의 일 실시예에 따르면, 단계(S230)에서 서버(110)는 JIT(Just-In-Time) 컴파일러를 이용하여 제1 베이직 블록을 컴파일할 수 있다.
계속하여, 단계(S208)에서 서버(110)는 구매요청 메시지에 포함된 제1 주소의 정보를 이용하여 상기 생성된 제1 네이티브 코드를 원본 자바 애플리케이션 내의 제1 주소에 저장(삽입)한다.
이와 같이, 자바 애플리케이션 내의 제1 주소에 삽입된 제1 네이티브 코드는 해당 자바 애플리케이션에 대한 불법 복제 방지용 식별정보, 즉 지문/워터마크와 같이 활용된다. 이에 대한 보다 상세한 설명은 후술하기로 한다.
한편, 상기한 단계(S204) 내지 단계(S208)는 서버(110) 내의 컴파일부(113)를 통해 수행된다. 그리고, 이하에서는 설명의 편의를 위해, 제1 네이티브 코드가 삽입된 자바 애플리케이션을 "변형 자바 애플리케이션"이라 칭하기로 한다.
이외에도, 서버(110)는 구매요청 메시지의 수신에 대응하여 자바 애플리케이션의 판매/구매를 위한 일련의 동작들을 수행한다.
한편, 도 4에서는 상기한 서버(110)에서 수행되는 일련의 동작들의 개념을 도시하고 있다.
다음으로, 단계(S210)에서 서버(110)는 구매요청 메시지에 대응하여 구매가 완료된 변형 자바 애플리케이션(즉, 제1 네이티브 코드가 삽입된 자바 애플리케이션)을 전송부(112)를 통해 전송한다. 전송된 변형 자바 애플리케이션은 수신부(121)를 통해 단말장치(120)로 수신된다.
이 후, 단계(S212)에서 단말장치(120)는 컴파일부(123)를 통해 변형 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록을 추출하고, 변형 자바 애플리케이션 내의 제1 주소에 저장된 코드(즉, 제1 네이티브 코드)를 추출한다. 이 때, 단말장치(120)는 자신이 서버(110)로 전송하였던 제1 베이직 블록의 식별정보 및 제1 주소의 정보를 이미 알고 있으므로, 상기한 제1 베이직 블록의 추출 및 제1 주소에 저장된 코드의 추출이 가능하게 된다.
그리고, 단계(S214)에서 단말장치(120)는 컴파일부(123)를 통해 제1 베이직 블록을 컴파일하여 네이티브 코드를 생성한다. 이 경우에도 JIT 컴파일러가 이용될 수 있다.
다음으로, 단계(S216)에서 단말장치(120)는 비교부(124)를 통해 제1 주소에 저장된 코드와 컴파일을 통해 생성된 네이티브 코드가 동일한지를 비교한다.
만약, 단말장치(120)가 해당 자바 애플리케이션을 정상적으로 구매한 사용자의 단말장치라면, 제1 주소에 저장된 코드와 컴파일을 통해 생성된 네이티브 코드는 제1 네이티브 코드로 동일하다. 이는 앞서 설명한 바와 같이 서버(110)는 구매요청을 한 단말장치(120)에서 전송된 제1 베이직 블록의 식별정보 및 제1 주소의 정보를 이용하여 제1 주소에 제1 네이티브 코드를 삽입하였기 때문이다.
반대로, 단말장치(120)가 해당 자바 애플리케이션을 정상적으로 구매한 사용자의 단말장치가 아니고 불법 복제된 자바 애플리케이션을 획득한 단말장치라면, 단말장치(120)는 제1 베이직 코드 및 제1 주소에 대한 정보를 알지 못하며, 다른 베이직 코드 및 주소에 대한 정보를 이용하여 상기한 동작들을 수행하게 되므로 제1 주소에 저장된 코드와 컴파일을 통해 생성된 네이티브 코드는 서로 상이하게 된다.
따라서, 단계(S218)에서 단말장치(120)는 제1 주소에 저장된 코드와 컴파일을 통해 생성된 네이티브 코드가 동일한 경우, 해당 자바 애플리케이션을 정상적으로 구매된 것으로 인증하고, 제1 주소에 저장된 코드와 컴파일을 통해 생성된 네이티브 코드가 상이한 경우, 해당 자바 애플리케이션을 불법 복제된 것으로 인식한다. 이러한 인증 동작은 단말장치(120) 내의 제어부(125)를 통해 수행된다.
만약, 자바 애플리케이션이 정상적으로 구매된 것으로 인증된 경우, 단계(S220)에서 단말장치(120)의 제어부(125)는 해당 자바 애플리케이션의 실행을 허용한다. 반대로, 자바 애플리케이션이 불법 복제된 것으로 인식된 경우, 단말장치(120)의 제어부(125)는 해당 자바 애플리케이션의 실행을 차단한다(미도시).
한편, 도 5에서는 단말장치(120)에서 수행되는 자바 애플리케이션의 실행의 허용 동작의 개념을 도시하고 있고, 도 6에서는 단말장치(120)에서 수행되는 자바 애플리케이션의 실행의 차단 동작의 개념을 도시하고 있다.
이와 같이, 본 발명의 일 실시예에 따른 자바 애플리케이션의 불법 복제 방지를 위한 시스템(100)은 별도의 지문 내지 워터마크를 사용하지 않고서도 자바 애플리케이션이 정상 구매된 것인지 불법 복제된 것인지의 여부를 용이하게 인증하여 불법 복제된 자바 애플리케이션의 실행을 원천적으로 차단할 수 있는 효과를 가진다.
한편, 상기에서 설명한 본 발명의 실시예들은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 일 실시예들의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.

Claims (7)

  1. 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하는 컴파일부;
    상기 자바 애플리케이션 내의 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한지를 비교하는 비교부; 및
    상기 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한 경우, 상기 자바 애플리케이션을 정상적으로 구매된 것으로 인증하고, 상기 애플리케이션의 실행을 허용하는 제어부;를 포함하는 것을 특징으로 하는 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치.
  2. 제1항에 있어서,
    상기 단말장치는 상기 제1 베이직 블록의 식별정보 및 상기 제1 주소의 정보를 포함하는 메시지를 서버로 전송하는 전송부;를 더 포함하되,
    상기 서버는 상기 제1 베이직 블록의 식별정보를 이용하여 원본 자바 애플리케이션 내에서 상기 제1 베이직 블록을 추출하고, 상기 추출된 제1 베이직 블록을 컴파일하여 상기 제1 네이티브 코드를 생성하며, 상기 제1 주소의 정보를 이용하여 상기 제1 네이티브 코드를 상기 원본 자바 애플리케이션 내의 상기 제1 주소에 저장하여 상기 자바 애플리케이션을 생성하는 것을 특징으로 하는 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치.
  3. 제2항에 있어서,
    상기 단말장치는 상기 서버로부터 상기 자바 애플리케이션을 수신하는 수신부;를 더 포함하되,
    상기 메시지를 상기 자바 애플리케이션의 구매요청 메시지이고, 상기 수신부는 상기 구매요청 메시지에 대응하여 구매가 완료된 상기 자바 애플리케이션을 상기 서버로부터 수신하는 것을 특징으로 하는 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치.
  4. 삭제
  5. 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록에 대한 식별정보 및 상기 자바 애플리케이션 내의 제1 주소의 정보를 포함하는 상기 자바 애플리케이션의 구매요청 메시지를 단말장치로부터 수신하는 수신부; 및
    상기 제1 베이직 블록의 식별정보를 이용하여 상기 자바 애플리케이션 내에서 상기 제1 베이직 블록을 추출하고, 상기 추출된 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하며, 상기 제1 주소의 정보를 이용하여 상기 제1 네이티브 코드를 상기 자바 애플리케이션 내의 상기 제1 주소에 저장하는 컴파일부; 및
    상기 구매요청 메시지에 대응하여 구매가 완료된 상기 제1 네이티브 코드가 삽입된 자바 애플리케이션을 상기 단말장치로 전송하는 전송부;를 포함하되,
    상기 제1 주소에 삽입된 상기 제1 네이티브 코드는 상기 자바 애플리케이션에 대한 불법 복제 방지용 식별정보로서 활용되는 것을 특징으로 하는 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 서버.
  6. 삭제
  7. 자바 애플리케이션을 구성하는 다수의 베이직 블록들 중 제1 베이직 블록을 컴파일하여 제1 네이티브 코드를 생성하는 단계;
    상기 자바 애플리케이션 내의 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한지를 비교하는 단계; 및
    상기 제1 주소에 저장된 코드와 상기 제1 네이티브 코드가 동일한 경우, 상기 자바 애플리케이션을 정상적으로 구매된 것으로 인증하고, 상기 애플리케이션의 실행을 허용하는 단계;를 포함하는 것을 특징으로 하는 자바 가상 머신이 탑재된 단말장치에서의 자바 애플리케이션의 인증 방법.
KR1020130023391A 2013-01-28 2013-03-05 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법 KR101425315B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20130009180 2013-01-28
KR1020130009180 2013-01-28

Publications (1)

Publication Number Publication Date
KR101425315B1 true KR101425315B1 (ko) 2014-08-04

Family

ID=51749164

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130023391A KR101425315B1 (ko) 2013-01-28 2013-03-05 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법

Country Status (1)

Country Link
KR (1) KR101425315B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030038995A (ko) * 2001-11-09 2003-05-17 임민상 소프트웨어 불법복제 방지 시스템 및 방법
JP2007213490A (ja) 2006-02-13 2007-08-23 Fujitsu Ltd アプリケーションサーバシステムおよび仮想マシンプログラム
KR20090062437A (ko) * 2007-12-13 2009-06-17 한국전자통신연구원 콘텐츠 불법 복제 방지 방법 및 콘텐츠 불법 복제 방지시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030038995A (ko) * 2001-11-09 2003-05-17 임민상 소프트웨어 불법복제 방지 시스템 및 방법
JP2007213490A (ja) 2006-02-13 2007-08-23 Fujitsu Ltd アプリケーションサーバシステムおよび仮想マシンプログラム
KR20090062437A (ko) * 2007-12-13 2009-06-17 한국전자통신연구원 콘텐츠 불법 복제 방지 방법 및 콘텐츠 불법 복제 방지시스템

Similar Documents

Publication Publication Date Title
US11100546B2 (en) Method and system for provenance tracking in software ecosystems
US10547604B2 (en) Information recording apparatus with shadow boot program for authentication with a server
US8230222B2 (en) Method, system and computer program for deploying software packages with increased security
EP1630998A1 (en) User terminal for receiving license
CN111143869B (zh) 应用程序包处理方法、装置、电子设备及存储介质
US11093587B2 (en) Software wrapper and installer using timestamp validation and system identification validation
JP4619046B2 (ja) オリジナルコンテンツ生成装置及び派生コンテンツ生成装置
KR101447194B1 (ko) Drm 에이전트의 공유장치 및 방법
JP2010040044A (ja) ネットワーク化されたコンピュータ環境にあるターゲットコンピュータにソフトウェアをプッシュインストールする間にライセンスを実行するためのシステム(計算デバイス、コンピュータサーバー)、方法、および記録媒体
US8656182B2 (en) Security mechanism for developmental operating systems
US8385554B2 (en) Preventing execution of pirated software
CN108256351B (zh) 文件处理方法和装置、存储介质及终端
GB2381087A (en) Method for the secure distribution and use of electronic media
CN112528239B (zh) 软件自动授权的方法和装置
KR101711024B1 (ko) 부정조작방지 장치 접근 방법 및 그 방법을 채용한 단말 장치
KR101604892B1 (ko) 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
KR101425315B1 (ko) 자바 애플리케이션의 불법 복제를 방지하기 위한 자바 가상 머신이 탑재된 단말장치 및 서버와, 상기 단말장치에서의 자바 애플리케이션의 인증 방법
KR20110080121A (ko) 컴퓨터 파일이 복사되었는지를 검출하는 방법 및 디바이스와, 이러한 검출을 가능하게 하는 방법 및 디바이스
KR20140011021A (ko) 안드로이드 플랫폼 기반의 어플리케이션의 무단복제 방지 및 최초 복제 추적을 위한 디지털 워터마킹 삽입 방법
KR101415786B1 (ko) 온라인 실행 코드 기술과 암호화 기반 불법 복제 방지 시스템 및 그 방법
CN111611551A (zh) 一种基于国密算法的动态链接库保护方法及其系统
KR20130094153A (ko) 컴퓨터 및 휴대용 전자기기의 프로그램 관리 장치 및 방법
US9792417B2 (en) Methods for controlling software usage
KR102326100B1 (ko) 안전한 안드로이드 앱 생성 및 안드로이드 플랫폼에서의 앱 설치/실행을 위한 시스템 및 방법
US20160085946A1 (en) Technique for enabling nominal flow of an executable file

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20170703

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190624

Year of fee payment: 6