KR101330210B1 - 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체 - Google Patents

어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체 Download PDF

Info

Publication number
KR101330210B1
KR101330210B1 KR1020120049319A KR20120049319A KR101330210B1 KR 101330210 B1 KR101330210 B1 KR 101330210B1 KR 1020120049319 A KR1020120049319 A KR 1020120049319A KR 20120049319 A KR20120049319 A KR 20120049319A KR 101330210 B1 KR101330210 B1 KR 101330210B1
Authority
KR
South Korea
Prior art keywords
server
user information
code
user terminal
application
Prior art date
Application number
KR1020120049319A
Other languages
English (en)
Other versions
KR20130101957A (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 숭실대학교산학협력단
Publication of KR20130101957A publication Critical patent/KR20130101957A/ko
Application granted granted Critical
Publication of KR101330210B1 publication Critical patent/KR101330210B1/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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • 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/44Program or device authentication
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/12Payment architectures specially adapted for electronic shopping systems
    • G06Q20/123Shopping for digital content
    • G06Q20/1235Shopping for digital content with control of digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2117User registration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/101Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measures for digital rights management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Accounting & Taxation (AREA)
  • Technology Law (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체에 관한 것으로서, 구체적으로 본 발명에 따른 컴퓨터로 읽을 수 있는 저장매체에 기록된 저작권 보호 기능을 수행하는 프로그램은 최초 실행시 일부 코드가 제외된 프로그램의 실행코드를 설치하는 제1 인스톨수단; 제1 서버에 사용자 정보를 전송하고, 상기 제1 서버로에 의하여 상기 사용자 정보가 삽입된 상기 일부 코드를 다운로드하도록 요청하는 다운로드 요청수단; 상기 제1 서버로부터 상기 사용자 정보를 포함하는 일부 코드를 다운로드 받아 상기 실행코드를 보완하는 제2 인스톨수단; 및 상기 실행코드의 보완 후 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 복제수단;을 포함한다.
본 발명에 따르면, 스마트폰 어플리케이션에 사용자의 핑거 프린팅을 S/W개발자가 직접 삽입하여 사용자에게 제공함으로써 특정한 장치 없이 스마트폰에서 무단으로 복제된 어플리케이션을 자체적으로 실행차단 할 수 있다.

Description

어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체 {Method for copyright protection of application, apparatus and the computer readable mediim storing the program thereof}
본 발명은 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체에 관한 것이다.
모바일 단말기를 사용하는 사용자들은 해킹이나 루팅이라 불리는 비정상적인 방법으로 자신의 단말기에 설치된 어플리케이션의 설치파일을 무단으로 복제하여 인터넷 상에 불법 배포하고 있다. 통신사의 어플리케이션 마켓 서버에서 결제하여 사용해야 하는 유료 어플리케이션을 다양한 사용자들이 인터넷에서 다운받아 자신의 단말기에 설치하여 사용되고 있고, 이것은 S/W개발자들에게 엄청난 피해를 주고 있다.
이를 막기 위해서 사용자 자신이 구매하지 않은 어플리케이션 설치파일 일 경우 단말기에 설치를 방지할 수 있는 기술이 필요하다. 하지만, 이를 위해 결제하여 다운받은 설치파일을 일일이 추적(tracking)하는 것은 현실적으로 불가능하다는 문제점이 존재한다.
종래 기술들은 불법 복제된 파일들을 실행차단 하기 위해서 추가적인 장치가 필요하다. 하지만 이것을 위해서는 단말기의 소프트웨어를 수정하거나 추가적인 장치를 추가하는 것은 효율적이지 않다.
본 발명은 어플리케이션의 설치 파일을 복제하여도 어플리케이션 실행을 불가능하게 할 수 있는 방법, 시스템 및 소프트웨어를 제공한다.
또한, 본 발명은 소프트웨어 개발자가 통신 서비스를 제공하는 통신사에 국한되지 않고 자유롭게 배포된 소프트웨어의 복제를 방지하는 방법, 시스템 및 소프트웨어를 제공한다.
본 발명에 따른 컴퓨터로 읽을 수 있는 저장매체에 기록된 저작권 보호 기능을 수행하는 프로그램은 최초 실행시 일부 코드가 제외된 프로그램의 실행코드를 설치하는 제1 인스톨수단; 제1 서버에 사용자 정보를 전송하고, 상기 제1 서버로에 의하여 상기 사용자 정보가 삽입된 상기 일부 코드를 다운로드하도록 요청하는 다운로드 요청수단; 상기 제1 서버로부터 상기 사용자 정보를 포함하는 일부 코드를 다운로드 받아 상기 실행코드를 보완하는 제2 인스톨수단; 및 상기 실행코드의 보완 후 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 복제수단;을 포함한다.
또한 상기 최초 실행시 제외된 일부 코드는 상기 실행코드로부터 호출되는 라이브러리일 수 있다.
또한 상기 사용자 정보는 핑거 프린팅 방식으로 상기 일부 코드에 삽입될 수 있다.
또한 보완된 상기 어플리케이션의 실행 시 상기 어플리케이션에 분산 복제된 사용자 정보와 상기 어플리케이션이 실행되는 사용자 단말기의 사용자 정보를 비교하여 상기 어플리케이션의 계속 실행 및 종료를 결정하는 사용자 정보 비교수단을 더 포함할 수 있다.
한편, 본 발명에 따른 어플리케이션 저작권 보호 장치는 사용자 단말기로부터 어플리케이션의 구매요청을 받아 일부 코드가 제외된 상태의 어플리케이션 실행코드를 포함하는 어플리케이션 저작권 보호 프로그램을 전송하는 제1 서버; 및
상기 사용자 단말기로부터 사용자 정보를 전송받고 상기 일부 코드에 대한 다운로드 요청을 받는 경우 상기 일부 코드에 상기 전송된 사용자 정보를 삽입하여 상기 사용자 단말기로 전송하는 제2 서버;를 포함하되,
상기 어플리케이션 저작권 보호 프로그램은 상기 제2 서버로부터 전송된 상기 일부 코드에 삽입되어 있는 사용자 정보를 상기 실행코드에 분산 저장한다.
또한 상기 제1 서버 및 상기 제2 서버를 동일한 서버로 구축될 수 있다.
또한 상기 제1 서버는 상기 사용자 단말기로부터 어플리케이션의 구매요청 시 상기 사용자 단말기로부터 사용자 정보를 더 전송 받아 구매내역으로 저장할 수 있다.
나아가 상기 제1 서버는 상기 사용자 단말기로부터 상기 어플리케이션의 업그레이드 요청이 있는 경우 상기 사용자 단말기로부터 전송되는 사용자 정보와 상기 구매내역을 비교하여 상기 업그레이드의 가부를 결정할 수 있다.
또한 상기 제1 서버는 상기 사용자 단말기로부터 전송된 사용자 정보를 상기 제2 서버에 전송하고, 상기 제2 서버는 상기 제1 서버로부터 전송된 사용자 정보를 구매 내역으로 저장할 수 있다.
나아가 상기 제1 서버는 주기적으로 상기 사용자 정보를 상기 제2 서버에 전송할 수 있다.
또한 상기 제2 서버는 상기 사용자 단말기로부터 상기 일부 코드의 다운로드 요청 시에 상기 사용자 단말기로부터 전송되는 사용자 정보와 상기 구매내역에 저장된 사용자 정보를 비교하여 상기 일부 코드의 다운로드 가부를 결정할 수 있다.
또한 상기 제2 서버는 상기 사용자 단말기로부터 상기 어플리케이션의 업그레이드 요청이 있는 경우 상기 사용자 단말기로부터 전송된는 사용자 정보와 상기 구매내역에 저장된 사용자 정보를 비교하여 상기 업그레이드의 가부를 결정할 수 있다.
한편, 본 발명에 따른 어플리케이션 저작권 보호 방법은 사용자 단말기가 제1 서버로부터 일부 코드가 제외된 프로그램의 실행코드를 다운로드 받는 제1 단계; 상기 사용자 단말기에서 상기 다운로드 된 실행코드를 실행 시 제2 서버에 사용자 정보를 전송하며 동시에 상기 제외된 일부 코드의 다운로드를 요청하는 제2 단계; 상기 제2 서버가 상기 제외된 일부 코드에 상기 전송된 사용자 정보를 삽입하여 상기 사용자 단말기로 전송하는 제3 단계; 상기 사용자 단말기가 상기 전송된 일부 코드를 이용하여 상기 실행코드를 보완하고, 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 제4 단계; 및 상기 보완된 실행코드가 실행되는 경우 상기 실행코드에 분산 복제된 사용자 정보와 상기 보완된 실행코드가 실행되는 사용자 단말기의 사용자 정보를 비교하여 상기 보완된 실행코드의 실행여부를 결정하는 제5 단계;를 포함한다.
또한 상기 제1 단계 이전에 상기 사용자 단말기가 상기 제1 서버에 사용자 정보를 전송하고, 상기 실행코드의 구매를 요청하는 단계를 더 포함할 수 있다.
나아가 상기 제1 단계 이후에 상기 제1 서버가 상기 제2 서버에 상기 실행코드를 다운로드한 사용자 정보를 전송하는 제1a 단계를 더 포함할 수 있다.
더 나아가 상기 제2 서버는 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보와 상기 사용자 단말기로부터 상기 제외된 일부 코드의 다운로드 요청과 함께 전송된 사용자 정보를 비교하여 상기 제3 단계의 수행여부를 결정할 수 있다.
또한 상기 제3 단계 이후에 상기 제1 서버가 상기 제2 서버에 상기 실행코드를 다운로드한 사용자 정보를 전송하는 제3a 단계를 더 포함할 수 있다.
또한 상기 사용자 단말기는 상기 제2 서버에 사용자 정보를 전송하고, 동시에 상기 보완된 실행코드에 대한 업그레이드를 요청하는 제6 단계; 및 상기 제2 서버가 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보와 상기 사용자 단말기로부터 업그레이드 요청과 함께 전송된 사용자 정보를 비교하여 상기 업그레이드의 수행여부를 결정하는 제7 단계를 더 포함할 수 있다.
또한 상기 제2 서버가 상기 제외된 일부 코드에 삽입되어 함께 전송된 상기 사용자 정보를 저장하는 제3-1 단계; 상기 사용자 단말기는 상기 제2 서버에 사용자 정보를 전송하고, 동시에 상기 보완된 실행코드에 대한 업그레이드를 요청하는 제6 단계; 및 상기 제2 서버가 상기 제2 서버로부터 일부 코드를 다운로드한 사용자 정보와 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보를 비교하여 정상적인 사용자 단말기인지의 여부를 판단하여 사용자 단말기로부터 요청된 상기 업그레이드의 수행여부를 결정하는 제7 단계를 포함할 수 있다.
본 발명에 따르면, 스마트폰 어플리케이션에 사용자의 핑거 프린팅을 S/W개발자가 직접 삽입하여 사용자에게 제공함으로써 특정한 장치 없이 스마트폰에서 무단으로 복제된 어플리케이션을 자체적으로 실행차단 할 수 있다.
또한, 본 발명에 따르면 스마트폰 어플리케이션의 정상적인 실행이나 라이브러리의 제공 또는 업데이트의 제공을 통신사가 아닌 소프트웨어 개발자 또는 소프트웨어 개발사가 직접 관리 할 수 있다.
또한 본 발명에 따르면 핑거 프린팅 방식으로 어플리케이션을 구매한 사용자 정보(Subscriber ID)를 해당 어플리케이션에 삽입함으로써 어플리케이션을 불법 배포한 사용자를 추적할 수 있다.
도 1은 본 발명의 일 실시예에 따른 시스템 구성을 나타내는 블록도이다.
도 2는 일 실시예에 따른 저작권 보호 프로그램을 포함한 시스템 구성을 나타내는 블록도이다.
도 3은 일 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이다.
도 4는 사용자 정보 비교 프로세스를 나타내는 순서도이다.
도 5는 다른 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이다.
도 6는 다른 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이다.
이하 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다. 특별한 정의나 언급이 없는 경우에 본 설명에 사용하는 방향을 표시하는 용어는 도면에 표시된 상태를 기준으로 한다. 또한 각 실시예를 통하여 동일한 도면부호는 동일한 부재를 가리킨다.
도 1을 참조하여 본 실시예에 따른 저작권 보호 장치에 포함되는 각 시스템 구성부들을 설명한다. 도 1은 본 발명의 일 실시예에 따른 시스템 구성을 나타내는 블록도이다.
본 실시예에 따른 저작권 보호 시스템은 도 1에 도시된 바와 같이 제1 서버(100), 제2 서버(200) 및 사용자 단말기들(10a, 10b)을 포함한다. 제2 서버(200)는 각 사용자 단말기들(10a, 10b)의 요청에 따라 어플리케이션의 다운로드를 제공하는 서버이다. 예를 들어 각종 스마트폰에 제공하는 어플리케이션 마켓 서버가 이에 해당할 수 있다. 제1 서버(100)는 소프트웨어 개발자 서버와 같이 각 사용자 단말기들(10a, 10b)에게 제공되는 어플리케이션을 보완할 수 있는 라이브러리 등 일부 코드를 제공하는 기능을 한다. 제1 서버(100)와 제2 서버(200)는 기능 상의 구분을 위한 것으로서, 반드시 독립적인 서버로 구현되어야 한다는 것을 의미하는 것은 아니다. 즉, 제1 서버(100)와 제2 서버(200)는 하나의 서버로 구현될 수 있을 뿐 아니라 세부적인 기능으로 구분되어 둘 이상의 서버로 구현되는 것도 가능하다. 이하에서는 각 구성부들에 대하여 상세하게 설명한다.
도 2를 참조하여 저작권 보호 소프트웨어 및 각 구성부의 기능을 설명한다. 도 2는 일 실시예에 따른 저작권 보호 프로그램을 포함한 시스템 구성을 나타내는 블록도이다.
저작권 보호 프로그램(20)은 사용자 단말기(10)로부터의 요청에 따라 제2 서버(200)로부터 사용자 단말기(10)로 다운로드 된다. 저작권 보호 프로그램(20)은 제1 인스톨 수단(21), 다운로드 요청수단(22), 제2 인스톨수단(23), 복제수단(24) 및 사용자정보 비교수단(25)을 포함한다.
제1 인스톨수단(21)은 어플리케이션의 일부 코드가 제외된 상태의 실행코드를 포함하고 있으며, 일부 코드가 제외된 상태의 실행코드는 사용자 단말기(10)의 오퍼레이팅 시스템 등에 의하여 사용자 단말기(10)에 설치된다. 이 때 제외된 일부 코드는 실행코드 중 임의의 일부분이 될 수 있으나, 이 후의 다운로드 및 업데이트의 용이성에 비추어 실행코드 중 특정 기능의 단위를 나타내는 라이브러리를 단위로 할 수 있다. 즉, 실행코드 중 하나 또는 둘 이상의 라이브러리를 실행코드로부터 제외시키고 사용자 단말기(10)로 다운로드 될 수 있다. 이하에서는 편의를 위하여 일부 코드의 단위로서 라이브러리를 이용하여 설명한다.
특정 라이브러리가 제외된 상태의 실행코드가 설치된 상태로는 정상적인 어플리케이션의 수행이 불가능하다. 특정 라이브러리가 제외된 상태의 실행코드가 최초로 실행되면, 다운로드 요청수단(22)이 제1 서버(100)에 실행코드에서 제외된 특정 라이브러리의 다운로드를 요청한다. 구체적으로 다운로드 요청수단(22)은 사용자 단말기(10)로부터 사용자 정보를 획득하고, 라이브러리의 다운로드 요청 시에 사용자 정보를 함께 제1 서버(100)로 전송한다. 제2 인스톨수단(23)은 다운로드 요청수단(22)이 요청하여 제1 서버(100)로부터 전송된 라이브러리를 이용하여 상술한 실행코드를 보완하여 온전한 어플리케이션이 설치되도록 하는 기능을 수행한다. 이 때 제2 인스톨수단(23)은 저작권 보호 프로그램(20)에 포함되는 것으로 기재되었으나, 사용자 단말기(10)의 오퍼레이팅 시스템에 의하여 수행되는 것도 가능하다. 즉, 제2 인스톨수단(23)이 수행하는 기능은 사용자 단말기 자신이 어플리케이션을 수정하는 자가수정 코드(Self-Modifying Code)에 의하여 달성될 수 있다. 자가수정 코드란 코드가 실행되는 도중에 자신의 명령어를 변경함으로써 특정 기능을 수행하거나 유사한 코드를 줄이고 성능을 향상시켜주는 기법이다. 본 발명에서는 자가수정 기법을 이용하여 어플리케이션 실행파일 전체에 핑거프린팅 형태로 되어있는 사용자 정보를 간단하게 복사 및 삽입할 수 있다.
복제수단(24)은 다운로드된 라이브러리로 실행코드를 보완한 후에 라이브러리에 삽입되어 있던 사용자 정보를 실행코드에 전체에 분산 복제한다. 복제수단(24)에 의하여 사용자 정보가 실행코드 전체에 분산 저장됨으로써 일부가 파손되는 경우라도 삽입 당시의 사용자 정보를 용이하게 추출할 수 있다.
사용자 정보 비교수단(25)은 실행코드의 보완 후 어플리케이션이 실행되는 경우 어플리케이션에 분산 복제된 사용자 정보와 어플리케이션이 실행되는 사용자 단말기(10)로부터 획득한 사용자 정보를 비교한 후 어플리케이션의 계속 실행 및 종료를 결정한다. 예를들어, 어플리케이션에 분산 복제된 사용자 정보와 어플리케이션이 실행되는 사용자 단말기(10)로부터 획득된 사용자 정보가 동일한 경우에는 어플리케이션이 정상적으로 실행되도록 하고, 동일하지 않은 경우에는 어플리케이션을 비정상적인 것으로 판단하여 종료시킬 수 있다.
제2 서버(200)는 사용자 단말기(10)로부터 어플리케이션의 구매요청을 받아 라이브러리 등 일부 코드가 제외된 상태의 어플리케이션 실행코드를 포함하는 어플리케이션 저작권 보호 프로그램(20)을 사용자 단말기(10)에 전송한다. 또한 제2 서버(200)는 사용자 단말기(10)로부터 어플리케이션의 구매요청을 받는 경우 해당 사용자 단말기(10)의 사용자 정보를 함께 전송받아 구매내역으로서 저장할 수 있으며, 저장된 구매내역을 주기적으로 또는 특정 시기에 제1 서버(100)에 전송할 수 있다. 다만, 제2 서버(200)와 제1 서버(100)가 동일 서버로 구축되는 경우에는 제2 서버(200)가 저장한 구매 내역에 제1 서버(100)가 접근 가능하도록 개방시키는 것으로 충분하다.
제1 서버(100)는 사용자 단말기(10)로부터 사용자 정보를 전송 받으면서 실행코드에서 제외된 라이브러리에 대한 다운로드 요청을 받는 경우 이에 대응하여 해당 라이브러리를 사용자 단말기(10)로 전송한다. 구체적으로 제1 서버(100)는 라이브러리의 다운로드 요청 시 함께 전송된 사용자 정보를 해당 라이브러리에 삽입하여 사용자 단말기(10)로 전송한다. 이 때 사용자 정보는 핑거 프린팅 방식으로 해당 라이브러리에 삽입될 수 있다. 한편, 사용자 단말기(10)에서 라이브러리를 다운로드 받은 이후에 핑거프린팅을 삽입하는 것도 가능하나, 핑거 프린팅을 암호화 하는 과정은 계산량이 많아 시간이 오래 걸리고 파워의 소비가 심하므로 서버에서 담당하는 것이 바람직하다. 한편, 핑거프린팅의 삽입은 통신사 마켓 서버와 소프트웨어 개발자 서버가 제공해 줄 수 있다. 하지만, 어플리케이션 마켓 서버에서 이를 제공하는 않는 경우에도 소프트웨어 개발자 서버에서 핑거프린팅을 삽입할 수 있는 기술을 제공함으로 자유롭게 본 발명을 실시할 수 있도록 한다.
또한 제1 서버(100)는 사용자 단말기(10)로부터 업그레이드 요청이 있는 경우 해당 업그레이드 요청에 대응하는 업데이트용 어플리케이션이나 라이브러리를 전송할 수 있다. 이 때 제1 서버(100)는 업그레이드 요청 시 사용자 단말기(10)로부터 사용자 정보를 전달받아 업그레이드의 가부를 결정할 수 있다. 이 때 사용자 단말기(10)로부터 전송된 사용자 정보와 비교하는 데이터로는 두 가지가 이용될 수 있다. 먼저, 제2 서버(200)가 저장한 구매 내역과 사용자 단말기(10)로부터 전송된 사용자 정보를 비교하여 정상적인 사용자 또는 어플리케이션인지의 여부를 판단할 수 있다. 다음으로는 제2 서버(200)가 저장한 구매 내역과 제1 서버(10)로부터 라이브러리 등을 다운로드 한 사용자의 사용자 정보를 비교하여 정상적인지 여부, 즉 해당 어플리케이션을 구매하여 사용할 정당한 권리가 있는지 여부를 먼저 판단할 수 있다. 이 후 사용자 단말기(10)로부터 업데이트의 요청이 있는 경우 함께 전송된 사용자 정보가 비정상적인 사용자로서 판단되어 있는지를 조회한 후 업데이트의 가부를 결정할 수 있다.
도 3 및 도 4를 참조하여 일 실시예에 따른 저작권 보호 프로세스를 설명한다. 도 3은 일 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이고, 도 4는 사용자 정보 비교 프로세스를 나타내는 순서도이다.
먼저, 제1 사용자 단말기가 제2 서버에 사용자 정보를 전송하고, 어플리케이션의 구매를 요청한다. 다음으로 제1 사용자 단말기가 제2 서버에서 제공하는 어플리케이션 중 특정 라이브러리가 제외된 실행코드를 포함하는 저작권 보호 프로그램을 다운로드 한다. 앞서 설명한 바와 같이 특정 라이브러리가 제외된 실행코드를 설치하고 실행하는 경우 제1 사용자 단말기로부터 제1 서버로 사용자 정보를 전송하고 동시에 제외된 특정 라이브러리를 다운로드 하도록 요청한다. 제1 서버는 전송된 사용자 정보를 핑커 프린팅 형태로 삽입한 라이브러리를 제1 사용자 단말기가 다운로드 하도록 제공한다. 라이브러리가 다운로드 되면 이를 이용하여 온전하게 실행가능한 어플리케이션으로 보완 설치하고, 라이브러리에 포함된 사용자 정보를 어플리케이션 전체에 분산 복제한다.
한편, 제2 사용자 단말기가 제1 사용자 단말기가 정상적으로 구입한 어플리케이션을 불법으로 복제하는 경우를 가정한다. 이 때 불법 복제의 시기는 둘로 나눌 수 있다. 일부 라이브러리가 제외된 상태로 실행코드가 다운로드된 이후(T1) 불법 복제하는 경우와 라이브러리가 보완되고, 정상적인 사용자 정보가 어플리케이션 전체에 분산 복제된 이후(T2)에 불법복제하는 경우를 가정할 수 있다.
먼저 T2 시기에 불법복제가 이루어지고 이를 제2 사용자 단말기에서 실행하는 경우에는 도 3에 도시된 바와 같이 사용자 정보를 비교 프로세스를 수행하게 된다. 도 4를 참조하여 설명하면, 먼저 사용자 단말기의 사용자 정보를 취득(S10)하고, 이를 어플리케이션 내에 분산 복제되어 있는 사용자 정보와 비교한다(S20). 이 때 두 사용자 정보가 일치하면 어플리케이션이 정상적으로 실행되나, 일치하지 않으면 어플리케이션의 실행을 차단하고 종료시키게 된다. 제2 사용자 단말기의 경우 어플리케이션 내에 분산 복제되어 있는 사용자 정보는 제1 사용자 단말기의 사용자 정보가 되므로 어플리케이션의 실행이 차단 및 종료된다.
다만, 첫 번째 경우와 같이 T1의 시기에 어플리케이션이 복제되는 경우에는 아직 제2 사용자 단말기가 제2 사용자 단말기의 사용자 정보를 이용하여 라이브러리를 다운로드 받아 정상적으로 이용할 수 있으므로 이에 대한 추가적인 대책이 필요하다.
도 5 및 도 6을 참조하여 다른 실시예에 따른 저작권 보호 프로세스를 설명한다. 도 5는 다른 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이고, 도 6는 다른 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이다.
본 실시예에서는 도 3의 실시예에서 설명한 바와 같이 T1 시기에 불법복제가 이루어지는 경우에 대한 추가적인 보호 프로세스에 관한 것이다. 도 5에 도시된 바와 같이 제2 서버가 제1 사용자 단말기가 구매요청한 일부 어플리케이션 코드를 포함하는 저작권 보호 프로그램을 제공한 경우에 이를 구매내역으로 저장하고, 제1 서버로 해당 구매내역, 즉 정상적으로 구매한 사용자의 정보를 제1 서버에 제공한다. 이 경우 정상적으로 어플리케이션을 구매한 제1 사용자 단말기의 경우에는 라이브러리 요청시 전송하는 사용자 정보(5)와 제2 서버로부터 제1 서버에 제공된 사용자 정보(3)가 일치하게 되므로 정상적으로 라이브러리를 다운로드 받을 수 있다(7). 그러나 불법적으로 T1의 시기에 어플리케이션을 다운로드한 제2 사용자 단말기의 경우 최초 실행시(9) 제1 서버에 라이브러리의 다운로드를 위하여 사용자 정보를 전송하나, 전송된 사용자 정보(10)와 제2 서버로부터 제1 서버에 전송된 사용자 정보(3)가 상이하게 되므로 정상적으로 라이브러리를 제공받지 못한다.
한편, 제2 서버로부터 제1 서버로 구매내역의 제공이 늦어지는 경우가 발생할 수 있다. 즉 도 6에 도시된 바와 같이 제2 서버로부터 제1 서버로의 구매내역의 전송(13)이 제2 사용자 단말기가 라이브러리를 제공(11)받고 난 이후에 이루어 질 수 있다. 이 경우에는 1차적으로 제2 사용자 단말기에서 해당 어플리케이션의 정상적인 동작이 가능하나, 사용자 정보(구매 내역)가 제2 서버로부터 제1 서버로 제공된 이후에는 어플리케이션 자체 또는 일부 라이브러리에 대한 업데이트 요청 시 사용자 정보를 비교(15)함으로써 업데이트를 제공하지 않을 수 있다.
또한 앞서 설명한 바와 같이 제2 서버로부터 제1 서버로 구매 내역이 전송된 이후에 제1 서버가 미리 불법적인 다운로드로 의심될 수 있는 라이브러리의 다운로드(11)를 확인한 후 제2 사용자 단말기가 업데이트를 요청할 경우 이를 거절할 수 있다.
이상 본 발명의 바람직한 실시예에 대하여 설명하였으나, 본 발명의 기술적 사상이 상술한 바람직한 실시예에 한정되는 것은 아니며, 특허청구범위에 구체화된 본 발명의 기술적 사상을 벗어나지 않는 범주에서 다양한 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체로 구현될 수 있다.
10, 10a, 10b: 사용자 단말기
20: 저작권 보호 프로그램 21: 제1 인스톨 수단
22: 다운로드 요청수단 23: 제2 인스톨 수단
24: 복제수단 25: 사용자정보 비교수단
100: 제1 서버 200: 제2 서버

Claims (19)

  1. 최초 실행시 일부 코드가 제외된 프로그램의 실행코드를 설치하는 제1 인스톨수단;
    제1 서버에 사용자 정보를 전송하고, 상기 제1 서버로에 의하여 상기 사용자 정보가 삽입된 상기 일부 코드를 다운로드하도록 요청하는 다운로드 요청수단;
    상기 제1 서버로부터 상기 사용자 정보를 포함하는 일부 코드를 다운로드 받아 상기 실행코드를 보완하는 제2 인스톨수단; 및
    상기 실행코드의 보완 후 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 복제수단;를 포함하되,
    상기 최초 실행시 제외된 일부 코드는 상기 실행코드로부터 호출되는 라이브러리인 저작권 보호 기능을 수행하는 프로그램을 기록한 저장매체.
  2. 삭제
  3. 제1항에 있어서,
    상기 사용자 정보는 핑거 프린팅 방식으로 상기 일부 코드에 삽입된 저작권 보호 기능을 수행하는 프로그램을 기록한 저장매체.
  4. 제1항에 있어서,
    보완된 어플리케이션의 실행 시 상기 어플리케이션에 분산 복제된 사용자 정보와 상기 어플리케이션이 실행되는 사용자 단말기의 사용자 정보를 비교하여 상기 어플리케이션의 계속 실행 및 종료를 결정하는 사용자 정보 비교수단을 포함하는 저작권 보호 기능을 수행하는 프로그램을 기록한 저장매체.
  5. 사용자 단말기로부터 어플리케이션의 구매요청을 받아 일부 코드가 제외된 상태의 어플리케이션 실행코드를 포함하는 어플리케이션 저작권 보호 프로그램을 전송하는 제1 서버; 및
    상기 사용자 단말기로부터 사용자 정보를 전송받고 상기 일부 코드에 대한 다운로드 요청을 받는 경우 상기 일부 코드에 상기 전송된 사용자 정보를 삽입하여 상기 사용자 단말기로 전송하는 제2 서버;를 포함하되,
    상기 어플리케이션 저작권 보호 프로그램은 상기 제2 서버로부터 전송된 상기 일부 코드에 삽입되어 있는 사용자 정보를 상기 실행코드에 분산 저장하는 어플리케이션 저작권 보호 장치.
  6. 제5항에 있어서,
    상기 제1 서버 및 상기 제2 서버를 동일한 서버로 구축되는 어플리케이션 저작권 보호 장치.
  7. 제5항에 있어서,
    상기 제1 서버는 상기 사용자 단말기로부터 어플리케이션의 구매요청 시 상기 사용자 단말기로부터 사용자 정보를 더 전송 받아 구매내역으로 저장하는 어플리케이션 저작권 보호 장치.
  8. 청구항 8은(는) 설정등록료 납부시 포기되었습니다.
    제7항에 있어서,
    상기 제1 서버는 상기 사용자 단말기로부터 상기 어플리케이션의 업그레이드 요청이 있는 경우 상기 사용자 단말기로부터 전송되는 사용자 정보와 상기 구매내역을 비교하여 상기 업그레이드의 가부를 결정하는 어플리케이션 저작권 보호 장치.
  9. 청구항 9은(는) 설정등록료 납부시 포기되었습니다.
    제7항에 있어서,
    상기 제1 서버는 상기 사용자 단말기로부터 전송된 사용자 정보를 상기 제2 서버에 전송하고, 상기 제2 서버는 상기 제1 서버로부터 전송된 사용자 정보를 구매 내역으로 저장하는 어플리케이션 저작권 보호 장치.
  10. 청구항 10은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서,
    상기 제1 서버는 주기적으로 상기 사용자 정보를 상기 제2 서버에 전송하는 어플리케이션 저작권 보호 장치.
  11. 청구항 11은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서,
    상기 제2 서버는 상기 사용자 단말기로부터 상기 일부 코드의 다운로드 요청 시에 상기 사용자 단말기로부터 전송되는 사용자 정보와 상기 구매내역에 저장된 사용자 정보를 비교하여 상기 일부 코드의 다운로드 가부를 결정하는 어플리케이션 저작권 보호 장치.
  12. 청구항 12은(는) 설정등록료 납부시 포기되었습니다.
    제9항에 있어서,
    상기 제2 서버는 상기 사용자 단말기로부터 상기 어플리케이션의 업그레이드 요청이 있는 경우 상기 사용자 단말기로부터 전송된는 사용자 정보와 상기 구매내역에 저장된 사용자 정보를 비교하여 상기 업그레이드의 가부를 결정하는 어플리케이션 저작권 보호 장치.
  13. 사용자 단말기가 제1 서버로부터 일부 코드가 제외된 프로그램의 실행코드를 다운로드 받는 제1 단계;
    상기 사용자 단말기에서 상기 다운로드 된 실행코드를 실행 시 제2 서버에 사용자 정보를 전송하며 동시에 상기 제외된 일부 코드의 다운로드를 요청하는 제2 단계;
    상기 제2 서버가 상기 제외된 일부 코드에 상기 전송된 사용자 정보를 삽입하여 상기 사용자 단말기로 전송하는 제3 단계;
    상기 사용자 단말기가 상기 전송된 일부 코드를 이용하여 상기 실행코드를 보완하고, 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 제4 단계; 및
    상기 보완된 실행코드가 실행되는 경우 상기 실행코드에 분산 복제된 사용자 정보와 상기 보완된 실행코드가 실행되는 사용자 단말기의 사용자 정보를 비교하여 상기 보완된 실행코드의 실행여부를 결정하는 제5 단계;를 포함하는 어플리케이션 저작권 보호 방법.
  14. 제13항에 있어서,
    상기 제1 단계 이전에 상기 사용자 단말기가 상기 제1 서버에 사용자 정보를 전송하고, 상기 실행코드의 구매를 요청하는 단계를 더 포함하는 어플리케이션 저작권 보호 방법.
  15. 청구항 15은(는) 설정등록료 납부시 포기되었습니다.
    제14항에 있어서,
    상기 제1 단계 이후에 상기 제1 서버가 상기 제2 서버에 상기 실행코드를 다운로드한 사용자 정보를 전송하는 제1a 단계를 더 포함하는 어플리케이션 저작권 보호 방법.
  16. 청구항 16은(는) 설정등록료 납부시 포기되었습니다.
    제15항에 있어서,
    상기 제2 서버는 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보와 상기 사용자 단말기로부터 상기 제외된 일부 코드의 다운로드 요청과 함께 전송된 사용자 정보를 비교하여 상기 제3 단계의 수행여부를 결정하는 어플리케이션 저작권 보호 방법.
  17. 청구항 17은(는) 설정등록료 납부시 포기되었습니다.
    제14항에 있어서,
    상기 제3 단계 이후에 상기 제1 서버가 상기 제2 서버에 상기 실행코드를 다운로드한 사용자 정보를 전송하는 제3a 단계를 더 포함하는 어플리케이션 저작권 보호 방법.
  18. 청구항 18은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서,
    상기 사용자 단말기는 상기 제2 서버에 사용자 정보를 전송하고, 동시에 상기 보완된 실행코드에 대한 업그레이드를 요청하는 제6 단계; 및
    상기 제2 서버가 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보와 상기 사용자 단말기로부터 업그레이드 요청과 함께 전송된 사용자 정보를 비교하여 상기 업그레이드의 수행여부를 결정하는 제7 단계를 포함하는 어플리케이션 저작권 보호 방법.
  19. 청구항 19은(는) 설정등록료 납부시 포기되었습니다.
    제17항에 있어서,
    상기 제2 서버가 상기 제외된 일부 코드에 삽입되어 함께 전송된 상기 사용자 정보를 저장하는 제3-1 단계;
    상기 사용자 단말기는 상기 제2 서버에 사용자 정보를 전송하고, 동시에 상기 보완된 실행코드에 대한 업그레이드를 요청하는 제6 단계; 및
    상기 제2 서버가 상기 제2 서버로부터 일부 코드를 다운로드한 사용자 정보와 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보를 비교하여 정상적인 사용자 단말기인지의 여부를 판단하여 사용자 단말기로부터 요청된 상기 업그레이드의 수행여부를 결정하는 제7 단계를 포함하는 어플리케이션 저작권 보호 방법.


KR1020120049319A 2012-02-22 2012-05-09 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체 KR101330210B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020120017893 2012-02-22
KR20120017893 2012-02-22

Publications (2)

Publication Number Publication Date
KR20130101957A KR20130101957A (ko) 2013-09-16
KR101330210B1 true KR101330210B1 (ko) 2013-11-20

Family

ID=49451925

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120049319A KR101330210B1 (ko) 2012-02-22 2012-05-09 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체

Country Status (1)

Country Link
KR (1) KR101330210B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109583157A (zh) * 2017-09-29 2019-04-05 卓望数码技术(深圳)有限公司 一种app远程追踪保护方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040027826A (ko) * 2004-03-08 2004-04-01 최철 컴퓨터 파일 변형을 이용한 소프트웨어 보호 방법
KR20100130840A (ko) * 2009-06-04 2010-12-14 주식회사 쓰리디페이퍼 온라인 배포 프로그램의 보호방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040027826A (ko) * 2004-03-08 2004-04-01 최철 컴퓨터 파일 변형을 이용한 소프트웨어 보호 방법
KR20100130840A (ko) * 2009-06-04 2010-12-14 주식회사 쓰리디페이퍼 온라인 배포 프로그램의 보호방법

Also Published As

Publication number Publication date
KR20130101957A (ko) 2013-09-16

Similar Documents

Publication Publication Date Title
US10140672B2 (en) Apparatus and method of managing a licensable item
CN108111331B (zh) 更新数据包的获取方法、装置、存储介质、处理器及系统
US7146645B1 (en) Dedicated applications for user stations and methods for downloading dedicated applications to user stations
US10339575B2 (en) Method and system for provenance tracking in software ecosystems
US8321352B1 (en) Fingerprinting for software license inventory management
US20170068531A1 (en) Method of deploying a set of software application(s)
CN102982258A (zh) 一种对移动应用程序进行原版校验的系统
EP2413257B1 (en) Method for replacing an illegitimate copy of a software program with legitimate copy and corresponding system
JP5674063B2 (ja) デジタル著作権管理のための装置および方法
CN102034058B (zh) 应用软件安全控制方法及终端
CN103995723B (zh) 一种基于移动存储设备升级ivi系统固件的方法和装置
JP2007535054A (ja) コンピュータデバイスにおいてデータをバックアップ、および復元(リストア)する方法
US20120311724A1 (en) Apparatus and method of in-application licensing
US20110187511A1 (en) Method and apparatus for managing content, configuration and credential information among devices
US9465924B2 (en) Apparatus for preventing replay attack and method for preventing replay attack
CN114398686A (zh) 基于区块链的文件存储方法、装置、设备和存储介质
KR101330210B1 (ko) 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체
KR101604892B1 (ko) 안드로이드 기반 어플리케이션의 부정사용 방지 방법 및 장치
KR20140011021A (ko) 안드로이드 플랫폼 기반의 어플리케이션의 무단복제 방지 및 최초 복제 추적을 위한 디지털 워터마킹 삽입 방법
US20140157438A1 (en) User device and method for receiving drm function corresponding to specific contents
CA2335298A1 (en) Bait software
WO2007093949A1 (en) Distributed license tracking using license trail and shadow
CN104731665A (zh) 一种信息处理方法及电子设备
KR20130101643A (ko) 저작권 키 관리 서버를 이용한 모바일 응용 불법복제 및 실행차단 방법
KR20000061393A (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: 20161024

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181022

Year of fee payment: 6