KR20110059363A - 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법 - Google Patents

어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법 Download PDF

Info

Publication number
KR20110059363A
KR20110059363A KR1020090116073A KR20090116073A KR20110059363A KR 20110059363 A KR20110059363 A KR 20110059363A KR 1020090116073 A KR1020090116073 A KR 1020090116073A KR 20090116073 A KR20090116073 A KR 20090116073A KR 20110059363 A KR20110059363 A KR 20110059363A
Authority
KR
South Korea
Prior art keywords
application
user terminal
information
terminal device
text
Prior art date
Application number
KR1020090116073A
Other languages
English (en)
Other versions
KR101733520B1 (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 KR1020090116073A priority Critical patent/KR101733520B1/ko
Priority to US13/512,527 priority patent/US8850602B2/en
Priority to PCT/KR2010/008410 priority patent/WO2011065768A2/en
Priority to CA2781966A priority patent/CA2781966C/en
Priority to GB1211380.9A priority patent/GB2488947B/en
Priority to AU2010325337A priority patent/AU2010325337B2/en
Publication of KR20110059363A publication Critical patent/KR20110059363A/ko
Application granted granted Critical
Publication of KR101733520B1 publication Critical patent/KR101733520B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61LMETHODS OR APPARATUS FOR STERILISING MATERIALS OR OBJECTS IN GENERAL; DISINFECTION, STERILISATION OR DEODORISATION OF AIR; CHEMICAL ASPECTS OF BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES; MATERIALS FOR BANDAGES, DRESSINGS, ABSORBENT PADS OR SURGICAL ARTICLES
    • A61L2/00Methods or apparatus for disinfecting or sterilising materials or objects other than foodstuffs or contact lenses; Accessories therefor
    • A61L2/02Methods or apparatus for disinfecting or sterilising materials or objects other than foodstuffs or contact lenses; Accessories therefor using physical phenomena
    • A61L2/08Radiation
    • A61L2/10Ultraviolet radiation
    • EFIXED CONSTRUCTIONS
    • E03WATER SUPPLY; SEWERAGE
    • E03CDOMESTIC PLUMBING INSTALLATIONS FOR FRESH WATER OR WASTE WATER; SINKS
    • E03C1/00Domestic plumbing installations for fresh water or waste water; Sinks
    • E03C1/02Plumbing installations for fresh water
    • E03C1/06Devices for suspending or supporting the supply pipe or supply hose of a shower-bath
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • 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
    • 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/56Financial cryptography, e.g. electronic payment or e-cash
    • 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)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Health & Medical Sciences (AREA)
  • Public Health (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Technology Law (AREA)
  • Hydrology & Water Resources (AREA)
  • Water Supply & Treatment (AREA)
  • Epidemiology (AREA)
  • Animal Behavior & Ethology (AREA)
  • General Health & Medical Sciences (AREA)
  • Veterinary Medicine (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Telephone Function (AREA)
  • Storage Device Security (AREA)

Abstract

어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법이 제공된다. 본 어플리케이션 보호방법은, 사용자 단말장치에 제공한 상기 어플리케이션을 실행하는데 필요한 키를, 사용자 단말장치에 대한 정보, 어플리케이션에 대한 정보 및 텍스트의 일부를 이용하여 생성하여 전송한다. 이에 의해, 어플리케이션에 대한 정당한 권리를 가지고 있는 장치에서만 어플리케이션이 실행되어, 어플리케이션이 불법적으로 사용되는 것을 방지할 수 있게 된다.
Figure P1020090116073
어플리케이션, DRM, 라이센스 키, 해쉬, 텍스트

Description

어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법{Method for protecting application and method for executing application thereof}
본 발명은 어플리케이션 보호 방법에 관한 것으로, 더욱 상세하게는 어플리케이션에 대해 정당한 권리가 없는 자가 불법으로 어플리케이션을 복제하여 사용하는 것을 방지하기 위한 어플리케이션 보호 방법에 관한 것이다.
어플리케이션은 프로그래머의 정신적 창작에 의한 소산이므로, 자산 가치가 있으며 보호되어져야 함이 마땅하다. 하지만, 불법적인 다운로드와 불법적인 어플리케이션 공유가 성행하고 있으며, 이에 대한 어플리케이션에 대한 보호 수단은 매우 미비한 실정이다.
이에 따라, 어플리케이션의 불법적인 사용에 의해 프로그래머의 금전적인 손해는 물론 창작 의지가 저하되는 것을 방지하기 위한 노력의 일환으로, 프로그래머의 자산이라 할 수 있는 어플리케이션에 대한 보호를 강화하기 위한 방안의 모색이 요청된다.
본 발명은 상기와 같은 문제점을 해결하기 위하여 안출된 것으로서, 본 발명 의 목적은, 어플리케이션을 구매한 장치 또는 어플리케이션에 대한 정당한 권리를 가지고 있는 장치에서만, 어플리케이션이 실행될 수 있도록 하기 위한 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법을 제공함에 있다.
상기 목적을 달성하기 위한 본 발명에 따른, 어플리케이션 보호방법은, 사용자 단말장치에 어플리케이션을 제공하는 단계; 상기 제공단계에서 제공한 상기 어플리케이션을 실행하는데 필요한 키를, 상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 이용하여 생성하는 단계; 및 상기 생성단계에서 생성한 키를 상기 사용자 단말장치로 전송하는 단계;를 포함한다.
상기 생성단계는, 상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 해쉬 연산하여, 상기 키를 생성하는 것이 바람직하다.
상기 텍스트의 일부는, 상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 기초로 결정되는 것이 바람직하다.
상기 텍스트의 일부는, 상기 텍스트의 m번째 문자부터 n번째 문자까지 구성되는 문자열이고, 상기 m과 상기 n은, 상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출할 수 있다.
상기 텍스트의 일부는, 상기 텍스트의 m번째 문자부터 n개의 문자들로 구성되는 문자열이고, 상기 m과 상기 n은, 상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출할 수 있다.
상기 텍스트는, 상기 어플리케이션에 포함된 텍스트와 동일한 것이 바람직하 다.
상기 사용자 단말장치에 대한 정보는, 상기 사용자 단말장치의 ID이고, 상기 어플리케이션에 대한 정보는, 상기 어플리케이션의 ID일 수 있다.
본 어플리케이션 보호방법은, 상기 사용자 단말장치가 상기 어플리케이션을 구매하였는지 여부를 판단하는 단계;를 더 포함하고, 상기 생성단계는, 상기 사용자 단말장치가 상기 어플리케이션을 구매한 것으로 판단된 경우에 수행되는 것이 바람직하다.
한편, 본 발명에 따른, 사용자 단말장치의 어플리케이션 실행 방법은, 상기 어플리케이션 실행을 위해 보유하고 있는 키가, 상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 이용하여 생성된 유효한 키인지 판단하는 단계; 및 상기 판단 단계에서, 보유하고 있는 키가 유효한 키로 판단되면, 상기 어플리케이션을 실행하는 단계;를 포함한다.
상기 판단단계 및 상기 실행단계는, 상기 어플리케이션에 패키징되어 있는 DRM 프로그램에 의해 수행되는 것이 바람직하다.
상기 유효한 키는, 상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 해쉬 연산한 키인 것이 바람직하다.
상기 텍스트의 일부는, 상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 기초로 결정되는 것이 바람직하다.
상기 텍스트의 일부는, 상기 텍스트의 m번째 문자부터 n번째 문자까지 구성되는 문자열이고, 상기 m과 상기 n은, 상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출할 수 있다.
상기 텍스트의 일부는, 상기 텍스트의 m번째 문자부터 n개의 문자들로 구성되는 문자열이고, 상기 m과 상기 n은, 상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출할 수 있다.
상기 사용자 단말장치에 대한 정보는, 상기 사용자 단말장치의 ID이고, 상기 어플리케이션에 대한 정보는, 상기 어플리케이션의 ID일 수 있다.
본 어플리케이션 실행방법은, 상기 어플리케이션 실행을 위해 필요한 키가 보유되어 있지 않은 것으로 판단되면, 상기 키를 요청하는 단계; 및 상기 요청에 대한 응답으로 상기 키를 수신하여 보유하는 단계;를 더 포함하는 것이 바람직하다.
상기 보유 단계에서, 상기 키는, 상기 사용자 단말장치가 상기 어플리케이션을 구매한 경우에 수신될 수 있다.
이상 설명한 바와 같이, 본 발명에 따르면, 어플리케이션을 구매한 장치 또는 어플리케이션에 대한 정당한 권리를 가지고 있는 장치에서만, 어플리케이션이 실행되어, 어플리케이션이 불법적으로 사용되는 것을 방지할 수 있게 된다.
이하에서는 도면을 참조하여 본 발명을 보다 상세하게 설명한다.
도 1은 본 발명이 적용가능한 어플리케이션 제공 시스템을 도시한 도면이다. 도 1에 도시된 바와 같이, 어플리케이션 제공 시스템은 사용자 단말장치(100)와 어플리케이션 제공 서버(200)가 인터넷(I)을 통해 상호 통신가능하도록 연결되어 구 축된다.
어플리케이션 제공 서버(200)는 인터넷(I) 상에서 어플리케이션을 판매하는 웹페이지를 운영하는 서버로, 이 웹페이지를 통해 접속하는 사용자 단말장치(100)에 어플리케이션을 판매한다. 즉, 어플리케이션 제공 서버(200)는 어플리케이션을 구매한 사용자 단말장치(100)에 어플리케이션을 전송하는 형태로, 어플리케이션을 제공한다.
또한, 어플리케이션 제공 서버(200)는 사용자 단말장치(100)에 라이센스 키를 발급한다. 라이센스 키는 어플리케이션을 실행하는데 필요하다. 즉, 라이센스 키가 없으면, 사용자 단말장치(100)는 인스톨된 어플리케이션을 실행시킬 수 없다.
사용자 단말장치(100)는 사용자가 보유하는 장치로, 구매한 어플리케이션을 어플리케이션 제공 서버(200)로부터 전송받아 인스톨하며, 인스톨된 어플리케이션을 실행시킨다.
어플리케이션을 실행하기 위해, 사용자 단말장치(100)는 유효한 라이센스 키를 보유하고 있어야 한다. 라이센스 키가 없는 경우 또는 라이센스 키가 있더라도 유효하지 않은 경우, 사용자 단말장치(100)는 어플리케이션을 실행시킬 수 없다.
도 2는, 도 1에 도시된 어플리케이션 제공 시스템을 구성하는 사용자 단말장치(100)와 어플리케이션 제공 서버(200)의 상세 블럭도이다.
도 2에 도시된 바와 같이, 사용자 단말장치(100)는, 기능 블럭(110), 사용자 인터페이스(120), 제어부(130), 저장부(140) 및 통신 인터페이스(150)를 포함한다.
기능 블럭(110)은 사용자 단말장치(100) 본연의 기능을 수행한다. 1) 만약 사용자 단말장치(100)가 모바일 폰이면, 기능 블럭(110)은 전화 통화 및 SMS 기능을 수행하고, 2) 만약 사용자 단말장치(100)가 MP3 플레이어이면, 기능 블럭(110)은 오디오 컨텐츠 재생 기능을 수행하며, 3) 만약 사용자 단말장치(100)가 TV이면, 기능 블럭(110)은 방송 프로그램을 수신하여 재생하는 기능을 수행한다.
사용자 인터페이스(120)는 기능 블럭(110)의 기능 수행 결과를 출력하는 출력 수단과, 사용자 명령을 입력받는 입력 수단으로서의 기능을 수행한다.
저장부(140)는 Dev ID(160) 및 어플리케이션(170)이 저장되는 저장 공간을 제공한다. Dev ID(160)는 사용자 단말장치(100)를 특정하는 정보의 일종이고, 어플리케이션(170)은 어플리케이션 제공 서버(200)로부터 구매하여 전송받은 것이다.
통신 인터페이스(150)는 어플리케이션 제공 서버(200)와 통신가능하도록 연결을 설정하고 유지한다.
제어부(130)는 사용자 인터페이스(120)를 통해 입력되는 사용자 명령에 따라 기능 블럭(110)의 동작을 제어한다. 그리고, 사용자 인터페이스(120)를 통해 사용자로부터 어플리케이션(170) 실행 명령이 입력되면, 제어부(130)는 인스톨된 어플리케이션(170)을 실행시킨다. 제어부(130)가 어플리케이션을 실행시키는 과정에 대한 상세한 설명은, 도 4를 참조하여 상세히 후술한다.
한편, 도 2에 도시된 바와 같이, 어플리케이션 제공 서버(200)는, 통신 인터페이스(210), 제어부(220) 및 저장부(230)를 구비한다.
통신 인터페이스(210)는 사용자 단말장치(100)와 통신가능하도록 연결을 설정하고 유지한다.
저장부(230)에는 사용자 단말장치(100)에 판매할 어플리케이션(240), DRM 서버(250) 및 구매 내역 DB(260)가 저장되어 있다. DRM 서버(250)는 어플리케이션의 DRM을 위한 프로그램으로, 구체적으로 판매된 어플리케이션을 실행시키는데 필요한 라이센스 키를 발급하는 프로그램이다. 그리고, 구매 내역 DB(260)는 사용자 단말장치(100)가 어플리케이션(240)을 구매한 내역이 저장되어 있는 DB이다.
제어부(220)는 사용자 단말장치(100)를 통해 사용자가 구매한 어플리케이션을 저장부(230)에서 인출하여, 통신 인터페이스(210)를 통해 사용자 단말장치(100)로 전송한다. 그리고, 제어부(220)는 사용자 단말장치(100)의 구매 내역을 구매 내역 DB(260)에 저장한다.
또한, 제어부(220)는 저장부(230)에 저장되어 있는 DRM 서버(250)를 실행시켜, 판매된 어플리케이션에 대한 DRM을 관리한다.
판매된 어플리케이션에 대한 DRM 관리를 위해, DRM 서버(250)는 사용자 단말장치(100)에 인스톨된 어플리케이션(170)의 DRM 클라이언트(미도시)와 통신가능하도록 연결하고, 연동하여 동작한다.
이하에서는, 사용자 단말장치(100) 측에 인스톨된 어플리케이션(170)과 어플리케이션 제공 서버(200) 측에 인스톨된 DRM 서버(250)의 구성에 대해, 도 3을 참조하여 상세히 설명한다. 도 3은 어플리케이션(170)과 DRM 서버(250)의 상세 구성의 설명에 제공되는 도면이다.
도 3에 도시된 바와 같이, 사용자 단말장치(100) 측에 인스톨된 어플리케이션(170)은 App ID(171) 및 DRM 클라이언트(172)를 포함한다. 즉, DRM 클라이언 트(172)는 어플리케이션(170)에 패키징되어 있다.
App ID(171)는 어플리케이션(170)을 특정하는 정보의 일종이다. DRM 클라이언트(172)는 사용자 단말장치(100) 측에서 어플리케이션(170)의 DRM을 위해 실행되는 프로그램으로, DRM 서버(250)에 대해 클라이언트로 동작한다.
한편, DRM 클라이언트(172)에는 라이센스 에이전트 모듈(173)이 포함되어 있고, 라이센스 에이전트 모듈(173)에는 유효성 검사 모듈(174)이 포함되어 있으며, 유효성 검사 모듈(174)에는 Code Book(175)이 포함되어 있다.
라이센스 에이전트 모듈(173)은 라이센스 키가 사용자 단말장치(100)의 저장부(140)에 존재하는지 판단하는 모듈이다. 또한, 라이센스 키 발급이 필요한 경우, 라이센스 에이전트 모듈(173)은 이를 DRM 서버(250)에 요청한다.
유효성 검사 모듈(174)은 저장부(140)에 존재하는 라이센스 키의 유효성을 검사하고, 검사 결과를 라이센스 에이전트 모듈(173)로 전달하는 모듈이다. 유효성 검사를 수행함에 있어, 유효성 검사 모듈(174)은 Code Book(175)을 참조한다.
Code Book(175)은 텍스트 파일이다. Code Book(175)에 수록된 텍스트 내용은 후술할 DRM 서버(254)에 포함된 Code Book(254)에 수록된 텍스트의 내용과 동일하다.
한편, DRM 서버(250)는 어플리케이션 제공 서버(200) 측에서 어플리케이션(170)의 DRM을 위해 실행되는 프로그램으로, DRM 클라이언트(172)에 대해 서버로 동작한다. DRM 서버(250)는 유효성 검사 모듈(251), 구매 확인 모듈(252) 및 라이센스 키 생성 모듈(253)을 포함한다.
유효성 검사 모듈(251)은 사용자 단말장치(100)로부터 수신한 라이센스 키 발급 요청에 대한 유효성을 판단한다. 즉, 유효성 검사 모듈(251)은 수신한 라이센스 키 발급 요청이 정당한 DRM 클라이언트(251)에 의해 생성된 것인지 판단한다.
구매 확인 모듈(252)은 어플리케이션(170)이 인스톨되어 있는 사용자 단말장치(100)가 어플리케이션(170)을 구매한 장치가 맞는지 여부를 판단한다. 이를 위해, 구매 확인 모듈(252)은 구매 내역 DB(260)를 참조한다.
라이센스 키 생성 모듈(253)은 라이센스 키를 생성하고, 생성한 라이센스 키를 라이센스 에이전트 모듈(173)로 전송한다. 라이센스 키를 생성함에 있어, 라이센스 키 생성 모듈(253)은 Code Book(254)을 참조한다.
Code Book(254)에 수록된 텍스트 내용은 전술한 DRM 클라이언트(172)에 포함된 Code Book(175)에 수록된 텍스트의 내용과 동일하다.
라이센스 키 생성 모듈(253)이 라이센스 키를 생성하는 방법에 대한 상세한 설명은, 도 6을 참조하여 상세히 후술한다.
이하에서는, 사용자 단말장치(100)에서, 어플리케이션(170)에 패키징되어 있는 DRM 클라이언트(172)가 유효한 라이센트 키의 보유 여부에 따라, 어플리케이션(170) 실행을 제한하는 과정에 대해, 도 4를 참조하여 상세히 설명한다.
여기서, 사용자 단말장치(100)에는 어플리케이션 제공 서버(200)로부터 구매한 어플리케이션(170)이 이미 설치되어 있는 것으로 가정한다.
도 4에 도시된 바와 같이, 사용자로부터 어플리케이션(170) 실행 명령이 입력되면(S410-Y), 제어부(130)에 의해 실행된 DRM 클라이언트(172)의 라이센스 에이 전트 모듈(173)은 사용자 단말장치(100)가 라이센스 키를 보유하고 있는지 판단한다(S420). S420단계에서의 판단은 라이센스 에이전트 모듈(173)이 사용자 단말장치(100)의 저장부(140)에 라이센스 키가 저장되어 있는지 여부를 판단하는 절차에 의해 수행된다.
S420단계에서 라이센스 키를 보유하고 있는 것으로 판단되면(S420-Y), 유효성 검사 모듈(174)은 사용자 단말장치(100)가 보유하고 있는 라이센스 키가 유효한지 여부를 판단한다(S430).
S430단계에서 유효성을 판단함에 있어, 유효성 검사 모듈(174)은 Dev ID(160), App ID(171) 및 Code Book(175)을 이용한다. Dev ID(160), App ID(171) 및 Code Book(175)을 이용하여, 라이센스 키의 유효성을 판단하는 방법에 대한 구체적인 설명은 후술한다.
S430단계에서 라이센스 키가 유효한 것으로 판단되면(S430-Y), DRM 클라이언트(172)는 어플리케이션(170)이 실행되는 것을 허용하여, 그 결과 제어부(130)는 어플리케이션(170)을 실행시킬 수 있게 된다(S440).
반면, S420단계에서 사용자 단말장치(100)에 라이센스 키가 보유되어 있지 않은 것으로 판단되거나(S420-N), 보유하고 있는 라이센스 키가 유효하지 않은 것으로 판단되면(S420-Y & S430-N), DRM 클라이언트(172)는 어플리케이션(170)이 실행되는 것을 허용하지 않아, 그 결과 제어부(130)는 어플리케이션(170)을 실행시킬 수 없게 된다(S450).
대신, 라이센스 에이전트 모듈(173)은 라이센스 키 발급요청 문의 메세지를 사용자 인터페이스(120)를 통해 표시한다(S460). 이는, 유효한 라이센스 키를 어플리케이션 제공 서버(200)로부터 발급받도록 사용자를 유도하기 위함이다. S460단계에서 표시된 메세지를 본 사용자는 사용자 인터페이스(120)를 이용하여 라이센스 키 발급요청을 명령할 수 있다.
라이센스 키 발급요청 명령이 입력되면(S470-Y), 라이센스 에이전트 모듈(173)은 어플리케이션 제공 서버(200)에 라이센스 키 발급을 요청한다(S480).
S480단계에서의 라이센스 키 발급 요청을 위한 메세지에는 Dev ID(160)와 App ID(171)가 포함된다. S480단계에서의 라이센스 키 발급 요청에 대한 응답으로, 어플리케이션 제공 서버(200)로부터 라이센스 키가 발급되면(S490-Y), 라이센스 에이전트 모듈(173)은 발급된 라이센스 키를 저장부(140)에 저장하며, 이후 S420단계부터 재수행한다.
하지만, S480단계에서 라이센스 키 발급을 요청했음에도 불구하고, 어플리케이션 제공 서버(200)로부터 라이센스 키가 발급되지 않으면(S490-N), 이후 절차가 수행되지 않는다.
이하에서는, 도 4의 S480단계에서 라이센스 에이전트 모듈(173)이 어플리케이션 제공 서버(200)에 라이센스 키 발급을 요청한 경우, 어플리케이션 제공 서버(200)가 라이센스 키를 사용자 단말장치(100)로 발급하는 과정에 대해, 도 5를 참조하여 상세히 설명한다.
도 5에 도시된 바와 같이, 라이센스 키 발급 요청을 수신하면(S510-Y), 어플리케이션 제공 서버(200)의 제어부(220)에 의해 실행된 DRM 서버(250)의 유효성 검 사 모듈(251)은 수신된 라이센스 키 발급 요청이 정당한지 여부를 판단한다(S520).
S520단계의 판단은, 라이센스 키 발급 요청이 정당한 모듈, 즉 어플리케이션(170)에 패키징된 DRM 클라이언트(172)의 라이센스 에이전트 모듈(173)에 의해 생성되었는지 여부를 판단하는 것이다.
S520단계에서 라이센스 키 발급 요청이 정당한 것으로 판단되면(S520-Y), DRM 서버(250)의 구매 확인 모듈(252)은 사용자 단말장치(100)가 어플리케이션(170)을 구매한 이력이 있는지 확인한다(S530).
S510단계에서 수신된 라이센스 키 발급 요청에는 Dev ID(160)와 App ID(171)가 포함되어 있다고 전술한 바 있다. 한편, 구매 내역 DB(260)에는 "어플리케이션을 구매한 사용자 단말장치의 Dev ID"와 "이 사용자 단말장치가 구매한 어플리케이션의 App ID"가 일대일로 매핑되어 있다.
이에 따라 S530단계에서, 구매 확인 모듈(252)은 S510단계에서 수신된 라이센스 키 발급 요청에 수록된 Dev ID(160)와 App ID(171)가 구매 내역 DB(260)에 일대일로 매핑되어 있는지 여부를 판단하는 절차에 의해, 구매 이력 여부를 확인할 수 있다.
S530단계에서, 사용자 단말장치(100)가 어플리케이션(170)을 구매한 이력이 있는 것으로 확인되면(S530-Y), 라이센스 키 생성 모듈(253)은 라이센스 키를 생성한다(S540). 그리고, 라이센스 키 생성 모듈(253)은 S540단계에서 생성된 라이센스 키를 DRM 클라이언트(172)의 라이센스 에이전트 모듈(173)로 전송한다(S550).
이하에서는, 라이센스 키 생성 모듈(253)이 라이센스 키를 생성하는 방법에 대해, 도 6을 참조하여 상세히 설명한다. 도 6은 라이센스 키를 생성하는 방법의 설명에 제공되는 도면이다.
도 6에 도시된 바와 같이, 라이센스 키 생성 모듈(253)은, 1) Dev ID(160), 2) App ID(171) 및 3) Code Book(254)에서 추출한 텍스트 스트림을 해쉬 연산하여, 라이센스 키를 생성한다.
여기서, "Code Book(254)에서 추출한 텍스트 스트림"은 Code Book(254)에 수록된 텍스트에서 일부가 추출되어 생성된 것이다.
도 7에는 텍스트 스트림 생성 방법을 예시한 도면이다. 도 7에서, 외부의 큰 박스 안에 수록된 텍스트가 Code Book(254)에 수록된 텍스트에 해당하며, 내부의 작은 박스 안에 수록된 텍스트가 추출된 텍스트이다. 도 7에 도시된 바와 같이, 텍스트 스트림은 Code Book(254)에 수록된 텍스트에서 일부가 추출된 것임을 알 수 있다.
한편, Code Book(254)에 수록된 텍스트에서 텍스트 스트림으로 추출될 부분은, Dev ID(160)와 App ID(171)에 의해 결정된다. 즉, 라이센스 키 생성 모듈(253)은 Dev ID(160)와 App ID(171)를 이용하여, Code Book(254)에서 텍스트 스트림으로 추출할 부분을 결정한다.
예를 들어, 라이센스 키 생성 모듈(253)은 Code Book(254)에 수록된 텍스트에서, m번째 문자부터 n번째 문자까지 구성되는 문자열을 텍스트 스트림으로 추출하되, m과 n은 아래와 같은 원칙에 의해 산출할 수 있다.
m: 'Dev ID(160)의 문자 수'와 'App ID(171)의 문자 수'의 곱에 1,000,000을 곱한 값을 777로 나눈 나머지
n: 'Dev ID(160)의 문자 수'와 'App ID(171)의 문자 수'의 곱에 1,000,000을 곱한 값을 999로 나눈 나머지
이와 달리, 라이센스 키 생성 모듈(253)은 Code Book(254)에 수록된 텍스트에서, m번째 문자부터 n개의 문자들로 구성되는 문자열을 텍스트 스트림으로 추출하되, m과 n은 위와 같은 원칙에 의해 산출할 수 있다. 이에 따르면, 텍스트 스트림의 길이를 "n"으로 일정하게 할 수 있다.
지금까지, 라이센스 키가 생성되는 과정에 대해 상세히 설명하였다. 생성된 라이센스 키는 사용자 단말장치(100)에 전송되어 저장부(140)에 저장된 상태로 보유된다.
이하에서는, 도 4의 S430단계에서 사용자 단말장치(100)에 보유되어 있는 라이센스 키가 유효한지 여부를 판단하는 과정에 대해 상세히 설명한다.
라이센스 키의 유효성 판단을 위해, 유효성 검사 모듈(174)은 Dev ID(160), App ID(171) 및 Code Book(175)을 이용하여, 라이센스 키를 생성한다. 여기서, 라이센스 키를 생성은, 도 6에 도시된 방법과 동일한 방법으로 수행된다.
이후, 유효성 검사 모듈(174)은 생성한 라이센스 키와 사용자 단말장치(100)에 보유되어 있는 라이센스 키가 동일한지 여부를 비교한다. 비교 결과 양자가 동일하다면, 유효성 검사 모듈(174)은 보유되어 있는 라이센스 키가 유효한 것으로 판단한다.
하지만, 비교 결과 양자가 동일하지 않다면, 유효성 검사 모듈(174)은 보유 되어 있는 라이센스 키가 유효하지 않은 것으로 판단한다. 양자가 동일하지 않은 경우는, 사용자 단말장치(100)에 보유되어 있는 라이센스 키를 정당하게 발급 받은 경우가 아니기 때문이다.
또한, 이상에서는 본 발명의 바람직한 실시예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.
도 1은 본 발명이 적용가능한 어플리케이션 제공 시스템을 도시한 도면,
도 2는, 도 1에 도시된 어플리케이션 제공 시스템을 구성하는 사용자 단말장치와 어플리케이션 제공 서버의 상세 블럭도,
도 3은 어플리케이션과 DRM 서버의 상세 구성의 설명에 제공되는 도면,
도 4는, 사용자 단말장치에서 DRM 클라이언트가 어플리케이션 실행을 제한하는 과정의 설명에 제공되는 흐름도,
도 5는 DRM 서버가 라이센스 키를 DRM 클라이언트로 발급하는 과정의 설명에 제공되는 흐름도,
도 6은 라이센스 키를 생성하는 방법의 설명에 제공되는 도면, 그리고,
도 7은 텍스트 스트림 생성 방법을 예시한 도면이다.

Claims (17)

  1. 사용자 단말장치에 어플리케이션을 제공하는 단계;
    상기 제공단계에서 제공한 상기 어플리케이션을 실행하는데 필요한 키를, 상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 이용하여 생성하는 단계; 및
    상기 생성단계에서 생성한 키를 상기 사용자 단말장치로 전송하는 단계;를 포함하는 것을 특징으로 하는 어플리케이션 보호방법.
  2. 제 1항에 있어서,
    상기 생성단계는,
    상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 해쉬 연산하여, 상기 키를 생성하는 것을 특징으로 하는 어플리케이션 보호방법.
  3. 제 1항에 있어서,
    상기 텍스트의 일부는,
    상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 기초로 결정되는 것을 특징으로 하는 어플리케이션 보호방법.
  4. 제 3항에 있어서,
    상기 텍스트의 일부는,
    상기 텍스트의 m번째 문자부터 n번째 문자까지 구성되는 문자열이고,
    상기 m과 상기 n은,
    상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출하는 것을 특징으로 하는 어플리케이션 보호방법.
  5. 제 3항에 있어서,
    상기 텍스트의 일부는,
    상기 텍스트의 m번째 문자부터 n개의 문자들로 구성되는 문자열이고,
    상기 m과 상기 n은,
    상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출하는 것을 특징으로 하는 어플리케이션 보호방법.
  6. 제 1항에 있어서,
    상기 텍스트는,
    상기 어플리케이션에 포함된 텍스트와 동일한 것을 특징으로 하는 어플리케이션 보호방법.
  7. 제 1항에 있어서,
    상기 사용자 단말장치에 대한 정보는, 상기 사용자 단말장치의 ID이고,
    상기 어플리케이션에 대한 정보는, 상기 어플리케이션의 ID인 것을 특징으로 하는 어플리케이션 보호방법.
  8. 제 1항에 있어서,
    상기 사용자 단말장치가 상기 어플리케이션을 구매하였는지 여부를 판단하는 단계;를 더 포함하고,
    상기 생성단계는,
    상기 사용자 단말장치가 상기 어플리케이션을 구매한 것으로 판단된 경우에 수행되는 것을 특징으로 하는 어플리케이션 보호방법.
  9. 사용자 단말장치의 어플리케이션 실행 방법에 있어서,
    상기 어플리케이션 실행을 위해 보유하고 있는 키가, 상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 이용하여 생성된 유효한 키인지 판단하는 단계; 및
    상기 판단 단계에서, 보유하고 있는 키가 유효한 키로 판단되면, 상기 어플리케이션을 실행하는 단계;를 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
  10. 제 9항에 있어서,
    상기 판단단계 및 상기 실행단계는,
    상기 어플리케이션에 패키징되어 있는 DRM 프로그램에 의해 수행되는 것을 특징으로 하는 어플리케이션 실행 방법.
  11. 제 9항에 있어서,
    상기 유효한 키는,
    상기 사용자 단말장치에 대한 정보, 상기 어플리케이션에 대한 정보 및 텍스트의 일부를 해쉬 연산한 키인 것을 특징으로 하는 어플리케이션 실행 방법.
  12. 제 9항에 있어서,
    상기 텍스트의 일부는,
    상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 기초로 결정되는 것을 특징으로 하는 어플리케이션 실행 방법.
  13. 제 9항에 있어서,
    상기 텍스트의 일부는,
    상기 텍스트의 m번째 문자부터 n번째 문자까지 구성되는 문자열이고,
    상기 m과 상기 n은,
    상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출하는 것을 특징으로 하는 어플리케이션 실행 방법.
  14. 제 9항에 있어서,
    상기 텍스트의 일부는,
    상기 텍스트의 m번째 문자부터 n개의 문자들로 구성되는 문자열이고,
    상기 m과 상기 n은,
    상기 사용자 단말장치에 대한 정보 및 상기 어플리케이션에 대한 정보를 연산하여 산출하는 것을 특징으로 하는 어플리케이션 실행 방법.
  15. 제 9항에 있어서,
    상기 사용자 단말장치에 대한 정보는, 상기 사용자 단말장치의 ID이고,
    상기 어플리케이션에 대한 정보는, 상기 어플리케이션의 ID인 것을 특징으로 하는 어플리케이션 실행 방법.
  16. 제 9항에 있어서,
    상기 어플리케이션 실행을 위해 필요한 키가 보유되어 있지 않은 것으로 판단되면, 상기 키를 요청하는 단계; 및
    상기 요청에 대한 응답으로 상기 키를 수신하여 보유하는 단계;를 더 포함하는 것을 특징으로 하는 어플리케이션 실행 방법.
  17. 제 16항에 있어서,
    상기 보유 단계에서,
    상기 키는, 상기 사용자 단말장치가 상기 어플리케이션을 구매한 경우에 수신되는 것을 특징으로 하는 어플리케이션 실행 방법.
KR1020090116073A 2009-11-27 2009-11-27 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법 KR101733520B1 (ko)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020090116073A KR101733520B1 (ko) 2009-11-27 2009-11-27 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법
US13/512,527 US8850602B2 (en) 2009-11-27 2010-11-25 Method for protecting application and method for executing application using the same
PCT/KR2010/008410 WO2011065768A2 (en) 2009-11-27 2010-11-25 Method for protecting application and method for executing application using the same
CA2781966A CA2781966C (en) 2009-11-27 2010-11-25 Method for protecting application and method for executing application using the same
GB1211380.9A GB2488947B (en) 2009-11-27 2010-11-25 Method for protecting application and method for executing application using the same
AU2010325337A AU2010325337B2 (en) 2009-11-27 2010-11-25 Method for protecting application and method for executing application using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020090116073A KR101733520B1 (ko) 2009-11-27 2009-11-27 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법

Publications (2)

Publication Number Publication Date
KR20110059363A true KR20110059363A (ko) 2011-06-02
KR101733520B1 KR101733520B1 (ko) 2017-05-11

Family

ID=44067112

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090116073A KR101733520B1 (ko) 2009-11-27 2009-11-27 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법

Country Status (6)

Country Link
US (1) US8850602B2 (ko)
KR (1) KR101733520B1 (ko)
AU (1) AU2010325337B2 (ko)
CA (1) CA2781966C (ko)
GB (1) GB2488947B (ko)
WO (1) WO2011065768A2 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9202039B2 (en) * 2012-10-05 2015-12-01 Microsoft Technology Licensing, Llc Secure identification of computing device and secure identification methods
JP6561436B2 (ja) * 2014-07-17 2019-08-21 セイコーエプソン株式会社 情報処理装置、情報処理装置を制御する方法、コンピュータープログラム
US9893887B2 (en) 2015-01-30 2018-02-13 Ciena Corporation Dynamic licensing for applications and plugin framework for virtual network systems
US10122728B2 (en) * 2016-02-18 2018-11-06 Verizon Patent And Licensing, Inc. Delegated resource authorization for replicated applications
CN112307443B (zh) * 2020-12-29 2021-03-19 畅捷通信息技术股份有限公司 产品激活方法、装置、系统、存储介质及计算设备

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0582122B1 (en) * 1992-07-21 1999-03-24 Matsushita Electric Industrial Co., Ltd. Scramble apparatus and descramble apparatus
US5438622A (en) * 1994-01-21 1995-08-01 Apple Computer, Inc. Method and apparatus for improving the security of an electronic codebook encryption scheme utilizing an offset in the pseudorandom sequence
AUPP752398A0 (en) * 1998-12-04 1999-01-07 Collins, Lyal Sidney Secure multi-point data transfer system
JP2004046708A (ja) * 2002-07-15 2004-02-12 Sony Corp ソフトウェア提供システム、ソフトウェア提供サーバ、端末、制御プログラム、ソフトウェア提供方法、ソフトウェア利用方法、ソフトウェア提供プログラム、及びソフトウェア利用プログラム
KR100573740B1 (ko) * 2003-06-25 2006-04-25 주식회사 코어트러스트 디알엠 기법을 적용한 소프트웨어 불법복제 및 불법사용방지방법 및 시스템
US7450723B2 (en) * 2004-11-12 2008-11-11 International Business Machines Corporation Method and system for providing for security in communication
JP2007043389A (ja) * 2005-08-02 2007-02-15 Ricoh Co Ltd 情報管理方法、情報管理システム、情報管理用サーバ装置及び記録媒体
US8050405B2 (en) * 2005-09-30 2011-11-01 Sony Ericsson Mobile Communications Ab Shared key encryption using long keypads
KR100951866B1 (ko) 2007-12-04 2010-04-12 주식회사 텔레칩스 가상머신 기반의 모바일 어플리케이션 보호 시스템 및 방법
US20100250968A1 (en) * 2009-03-25 2010-09-30 Lsi Corporation Device for data security using user selectable one-time pad
US8578473B2 (en) * 2009-03-25 2013-11-05 Lsi Corporation Systems and methods for information security using one-time pad
US8572684B1 (en) * 2011-01-07 2013-10-29 Ca, Inc. Authentication using one-time passwords and associated indicia for plural sequences

Also Published As

Publication number Publication date
GB201211380D0 (en) 2012-08-08
GB2488947B (en) 2016-06-01
KR101733520B1 (ko) 2017-05-11
US20120311720A1 (en) 2012-12-06
AU2010325337A1 (en) 2012-02-16
US8850602B2 (en) 2014-09-30
AU2010325337B2 (en) 2015-01-15
GB2488947A (en) 2012-09-12
CA2781966C (en) 2019-03-19
WO2011065768A3 (en) 2011-10-27
CA2781966A1 (en) 2011-06-03
WO2011065768A2 (en) 2011-06-03

Similar Documents

Publication Publication Date Title
CN105760716B (zh) 电子证书管理
JP5572209B2 (ja) 電子チケット処理の方法及び装置
CN103744686B (zh) 智能终端中应用安装的控制方法和系统
JP4818664B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
WO2014201830A1 (en) Method and device for detecting software-tampering
CN107404382A (zh) 使用访问令牌控制软件的可获许可的特征
US20170155627A1 (en) Passing content securely from web browsers to computer applications
US11057219B2 (en) Timestamped license data structure
KR101523309B1 (ko) 어플리케이션 배포 시스템 및 방법
US11113366B2 (en) Cryptographic mechanisms for software setup using token-based two-factor authentication
KR20110059363A (ko) 어플리케이션 보호 방법 및 이를 이용한 어플리케이션 실행 방법
US9858061B2 (en) Tamperproof installation of building control software in approved runtime environments
US20200302035A1 (en) Source-based authentication for a license of a license data structure
US11244031B2 (en) License data structure including license aggregation
CN109117605A (zh) 一种鉴权方法及其装置、设备和存储介质
US20140230068A1 (en) System and method for packaging and authenticating a software product
JP5278495B2 (ja) 機器情報送信方法、機器情報送信装置、機器情報送信プログラム
KR101502944B1 (ko) 휴대단말을 이용한 전자서명 시스템
US20180260541A1 (en) License data structure including location-based application features
JPWO2007089045A1 (ja) 認証システム
CN113709138B (zh) 多媒体文件的获取方法、娱乐方法、系统及电子设备
CN111008367B (zh) 用于变频驱动器的许可密钥的区块链
KR20100007670A (ko) 실시간 컨텐츠 유통 방법 및 시스템
US20120297015A1 (en) System and method for building data relevant applications
KR100973334B1 (ko) 난수의 암호화를 이용한 저작물 불법 복제 방지 시스템 및방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
AMND Amendment
E90F Notification of reason for final refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)