KR101330210B1 - 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체 - Google Patents
어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 238000009434 installation Methods 0.000 claims abstract description 19
- 238000007639 printing Methods 0.000 claims abstract description 8
- 230000001502 supplementing effect Effects 0.000 claims abstract description 6
- 230000003362 replicative effect Effects 0.000 claims abstract description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003780 insertion Methods 0.000 description 2
- 230000037431 insertion Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/105—Arrangements for software license management or administration, e.g. for managing licenses at corporate level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/08—Payment architectures
- G06Q20/12—Payment architectures specially adapted for electronic shopping systems
- G06Q20/123—Shopping for digital content
- G06Q20/1235—Shopping for digital content with control of digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing 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/2117—User registration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/101—Additional 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개발자가 직접 삽입하여 사용자에게 제공함으로써 특정한 장치 없이 스마트폰에서 무단으로 복제된 어플리케이션을 자체적으로 실행차단 할 수 있다.
본 발명에 따르면, 스마트폰 어플리케이션에 사용자의 핑거 프린팅을 S/W개발자가 직접 삽입하여 사용자에게 제공함으로써 특정한 장치 없이 스마트폰에서 무단으로 복제된 어플리케이션을 자체적으로 실행차단 할 수 있다.
Description
본 발명은 어플리케이션 저작권 보호 장치, 방법 및 그 프로그램을 기록한 저장매체에 관한 것이다.
모바일 단말기를 사용하는 사용자들은 해킹이나 루팅이라 불리는 비정상적인 방법으로 자신의 단말기에 설치된 어플리케이션의 설치파일을 무단으로 복제하여 인터넷 상에 불법 배포하고 있다. 통신사의 어플리케이션 마켓 서버에서 결제하여 사용해야 하는 유료 어플리케이션을 다양한 사용자들이 인터넷에서 다운받아 자신의 단말기에 설치하여 사용되고 있고, 이것은 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는 다른 실시예에 따른 저작권 보호 프로세스를 나타내는 흐름도이다.
도 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 서버
20: 저작권 보호 프로그램 21: 제1 인스톨 수단
22: 다운로드 요청수단 23: 제2 인스톨 수단
24: 복제수단 25: 사용자정보 비교수단
100: 제1 서버 200: 제2 서버
Claims (19)
- 최초 실행시 일부 코드가 제외된 프로그램의 실행코드를 설치하는 제1 인스톨수단;
제1 서버에 사용자 정보를 전송하고, 상기 제1 서버로에 의하여 상기 사용자 정보가 삽입된 상기 일부 코드를 다운로드하도록 요청하는 다운로드 요청수단;
상기 제1 서버로부터 상기 사용자 정보를 포함하는 일부 코드를 다운로드 받아 상기 실행코드를 보완하는 제2 인스톨수단; 및
상기 실행코드의 보완 후 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 복제수단;를 포함하되,
상기 최초 실행시 제외된 일부 코드는 상기 실행코드로부터 호출되는 라이브러리인 저작권 보호 기능을 수행하는 프로그램을 기록한 저장매체. - 삭제
- 제1항에 있어서,
상기 사용자 정보는 핑거 프린팅 방식으로 상기 일부 코드에 삽입된 저작권 보호 기능을 수행하는 프로그램을 기록한 저장매체. - 제1항에 있어서,
보완된 어플리케이션의 실행 시 상기 어플리케이션에 분산 복제된 사용자 정보와 상기 어플리케이션이 실행되는 사용자 단말기의 사용자 정보를 비교하여 상기 어플리케이션의 계속 실행 및 종료를 결정하는 사용자 정보 비교수단을 포함하는 저작권 보호 기능을 수행하는 프로그램을 기록한 저장매체. - 사용자 단말기로부터 어플리케이션의 구매요청을 받아 일부 코드가 제외된 상태의 어플리케이션 실행코드를 포함하는 어플리케이션 저작권 보호 프로그램을 전송하는 제1 서버; 및
상기 사용자 단말기로부터 사용자 정보를 전송받고 상기 일부 코드에 대한 다운로드 요청을 받는 경우 상기 일부 코드에 상기 전송된 사용자 정보를 삽입하여 상기 사용자 단말기로 전송하는 제2 서버;를 포함하되,
상기 어플리케이션 저작권 보호 프로그램은 상기 제2 서버로부터 전송된 상기 일부 코드에 삽입되어 있는 사용자 정보를 상기 실행코드에 분산 저장하는 어플리케이션 저작권 보호 장치. - 제5항에 있어서,
상기 제1 서버 및 상기 제2 서버를 동일한 서버로 구축되는 어플리케이션 저작권 보호 장치. - 제5항에 있어서,
상기 제1 서버는 상기 사용자 단말기로부터 어플리케이션의 구매요청 시 상기 사용자 단말기로부터 사용자 정보를 더 전송 받아 구매내역으로 저장하는 어플리케이션 저작권 보호 장치. - 청구항 8은(는) 설정등록료 납부시 포기되었습니다.제7항에 있어서,
상기 제1 서버는 상기 사용자 단말기로부터 상기 어플리케이션의 업그레이드 요청이 있는 경우 상기 사용자 단말기로부터 전송되는 사용자 정보와 상기 구매내역을 비교하여 상기 업그레이드의 가부를 결정하는 어플리케이션 저작권 보호 장치. - 청구항 9은(는) 설정등록료 납부시 포기되었습니다.제7항에 있어서,
상기 제1 서버는 상기 사용자 단말기로부터 전송된 사용자 정보를 상기 제2 서버에 전송하고, 상기 제2 서버는 상기 제1 서버로부터 전송된 사용자 정보를 구매 내역으로 저장하는 어플리케이션 저작권 보호 장치. - 청구항 10은(는) 설정등록료 납부시 포기되었습니다.제9항에 있어서,
상기 제1 서버는 주기적으로 상기 사용자 정보를 상기 제2 서버에 전송하는 어플리케이션 저작권 보호 장치. - 청구항 11은(는) 설정등록료 납부시 포기되었습니다.제9항에 있어서,
상기 제2 서버는 상기 사용자 단말기로부터 상기 일부 코드의 다운로드 요청 시에 상기 사용자 단말기로부터 전송되는 사용자 정보와 상기 구매내역에 저장된 사용자 정보를 비교하여 상기 일부 코드의 다운로드 가부를 결정하는 어플리케이션 저작권 보호 장치. - 청구항 12은(는) 설정등록료 납부시 포기되었습니다.제9항에 있어서,
상기 제2 서버는 상기 사용자 단말기로부터 상기 어플리케이션의 업그레이드 요청이 있는 경우 상기 사용자 단말기로부터 전송된는 사용자 정보와 상기 구매내역에 저장된 사용자 정보를 비교하여 상기 업그레이드의 가부를 결정하는 어플리케이션 저작권 보호 장치. - 사용자 단말기가 제1 서버로부터 일부 코드가 제외된 프로그램의 실행코드를 다운로드 받는 제1 단계;
상기 사용자 단말기에서 상기 다운로드 된 실행코드를 실행 시 제2 서버에 사용자 정보를 전송하며 동시에 상기 제외된 일부 코드의 다운로드를 요청하는 제2 단계;
상기 제2 서버가 상기 제외된 일부 코드에 상기 전송된 사용자 정보를 삽입하여 상기 사용자 단말기로 전송하는 제3 단계;
상기 사용자 단말기가 상기 전송된 일부 코드를 이용하여 상기 실행코드를 보완하고, 상기 일부 코드에 삽입된 사용자 정보를 상기 실행코드에 분산 복제하는 제4 단계; 및
상기 보완된 실행코드가 실행되는 경우 상기 실행코드에 분산 복제된 사용자 정보와 상기 보완된 실행코드가 실행되는 사용자 단말기의 사용자 정보를 비교하여 상기 보완된 실행코드의 실행여부를 결정하는 제5 단계;를 포함하는 어플리케이션 저작권 보호 방법. - 제13항에 있어서,
상기 제1 단계 이전에 상기 사용자 단말기가 상기 제1 서버에 사용자 정보를 전송하고, 상기 실행코드의 구매를 요청하는 단계를 더 포함하는 어플리케이션 저작권 보호 방법. - 청구항 15은(는) 설정등록료 납부시 포기되었습니다.제14항에 있어서,
상기 제1 단계 이후에 상기 제1 서버가 상기 제2 서버에 상기 실행코드를 다운로드한 사용자 정보를 전송하는 제1a 단계를 더 포함하는 어플리케이션 저작권 보호 방법. - 청구항 16은(는) 설정등록료 납부시 포기되었습니다.제15항에 있어서,
상기 제2 서버는 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보와 상기 사용자 단말기로부터 상기 제외된 일부 코드의 다운로드 요청과 함께 전송된 사용자 정보를 비교하여 상기 제3 단계의 수행여부를 결정하는 어플리케이션 저작권 보호 방법. - 청구항 17은(는) 설정등록료 납부시 포기되었습니다.제14항에 있어서,
상기 제3 단계 이후에 상기 제1 서버가 상기 제2 서버에 상기 실행코드를 다운로드한 사용자 정보를 전송하는 제3a 단계를 더 포함하는 어플리케이션 저작권 보호 방법. - 청구항 18은(는) 설정등록료 납부시 포기되었습니다.제17항에 있어서,
상기 사용자 단말기는 상기 제2 서버에 사용자 정보를 전송하고, 동시에 상기 보완된 실행코드에 대한 업그레이드를 요청하는 제6 단계; 및
상기 제2 서버가 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보와 상기 사용자 단말기로부터 업그레이드 요청과 함께 전송된 사용자 정보를 비교하여 상기 업그레이드의 수행여부를 결정하는 제7 단계를 포함하는 어플리케이션 저작권 보호 방법. - 청구항 19은(는) 설정등록료 납부시 포기되었습니다.제17항에 있어서,
상기 제2 서버가 상기 제외된 일부 코드에 삽입되어 함께 전송된 상기 사용자 정보를 저장하는 제3-1 단계;
상기 사용자 단말기는 상기 제2 서버에 사용자 정보를 전송하고, 동시에 상기 보완된 실행코드에 대한 업그레이드를 요청하는 제6 단계; 및
상기 제2 서버가 상기 제2 서버로부터 일부 코드를 다운로드한 사용자 정보와 상기 제1 서버로부터 전송된 실행코드를 다운로드한 사용자 정보를 비교하여 정상적인 사용자 단말기인지의 여부를 판단하여 사용자 단말기로부터 요청된 상기 업그레이드의 수행여부를 결정하는 제7 단계를 포함하는 어플리케이션 저작권 보호 방법.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109583157A (zh) * | 2017-09-29 | 2019-04-05 | 卓望数码技术(深圳)有限公司 | 一种app远程追踪保护方法和系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040027826A (ko) * | 2004-03-08 | 2004-04-01 | 최철 | 컴퓨터 파일 변형을 이용한 소프트웨어 보호 방법 |
KR20100130840A (ko) * | 2009-06-04 | 2010-12-14 | 주식회사 쓰리디페이퍼 | 온라인 배포 프로그램의 보호방법 |
-
2012
- 2012-05-09 KR KR1020120049319A patent/KR101330210B1/ko active IP Right Grant
Patent Citations (2)
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 |