KR101487176B1 - System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method - Google Patents
System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method Download PDFInfo
- Publication number
- KR101487176B1 KR101487176B1 KR20100029978A KR20100029978A KR101487176B1 KR 101487176 B1 KR101487176 B1 KR 101487176B1 KR 20100029978 A KR20100029978 A KR 20100029978A KR 20100029978 A KR20100029978 A KR 20100029978A KR 101487176 B1 KR101487176 B1 KR 101487176B1
- Authority
- KR
- South Korea
- Prior art keywords
- code block
- content
- execution
- storage device
- host terminal
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/45—Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
- H04N21/462—Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
- H04N21/4627—Rights management associated to the content
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Transfer Between Computers (AREA)
Abstract
본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말(host terminal)과 저장장치 간의 분리 실행에 필요한 분리 실행 대상 코드 블록을 저장장치에 안정적으로 제공하기 위한 것이다. 본 발명에 따르면, 실행형 컨텐츠의 분리 실행 대상 코드 블록은 권리 객체에 포함된 형태로 저장장치에 선발급 또는 후발급 형태로 제공된다. 저장장치가 접속한 호스트 단말로부터 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신한다. 저장장치가 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출한다. 그리고 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장한다.[0001] The present invention relates to a system and method for providing a code block for contents based on separation execution, a computer-readable recording medium on which the method is recorded, And to stably provide necessary storage blocks to the storage device. According to the present invention, the code block to be executed separately from the executable content is provided in a form of being included in the rights object in the form of a start-up class or a post-release form in the storage device. From the host terminal connected to the storage device, an installation request of the rights object including the detachment object code block. In the process of installing the right object by the storage device, the separation object code block is extracted from the right object. Then, the separation execution target code block extracted by the storage device is stored in an execution form in the memory.
Description
본 발명은 컨텐츠의 복제 방지 기술에 관한 것으로, 더욱 상세하게는 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행에 필요한 분리 실행 대상 코드 블록을 권리 객체(Right Object; RO)에 포함시켜 저장장치에 제공하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것이다.The present invention relates to a technique for preventing copying of content, and more particularly, to a technology for preventing copying of content by including a separate execution object code block necessary for separation execution between a host terminal and a storage device for execution content into a right object (RO) And a computer-readable recording medium on which the method is recorded.
일반적으로 호스트 단말은 운영체제 위에 복수의 컨텐츠가 설치된다. 컨텐츠는 디지털 형태로 저장되고 유통되는 디지털 저작물로서, 소프트웨어, 응용프로그램, 멀티미디어 데이터 등을 포함한다. 예컨대 사용자는 호스트 단말에 설치된 각종 컨텐츠를 이용하여 문서편집, 영상편집, 게임 등을 수행할 수 있다.Generally, a plurality of contents are installed on an operating system of a host terminal. Content is a digital work that is stored and distributed in digital form and includes software, application programs, multimedia data, and the like. For example, the user can perform document editing, image editing, game, and the like using various contents installed in the host terminal.
이와 같은 컨텐츠는, 무료로 사용할 수 있는 컨텐츠도 있지만, 온오프라인에서 유료로 판매되고 있다. 사용자는 필요한 컨텐츠를 구매하고, 구매한 컨텐츠를 호스트 단말에 설치함으로써 사용하게 된다. 컨텐츠는 인증번호를 통한 인증을 통과하게 되면, 호스트 단말에 설치된다. 통상적으로 인증번호는 구매한 컨텐츠와 함께 제공된다.Some of these contents are available for free, but they are sold on-line and off-line for a fee. The user purchases necessary contents and installs the purchased contents in the host terminal. The content is installed in the host terminal when it passes the authentication through the authentication number. The authentication number is usually provided with the purchased content.
이와 같은 인증번호를 이용한 인증 방식의 컨텐츠는 해킹에 쉽게 노출되는 문제점을 안고 있다. 즉 해당 프로그램의 인증번호가 해킹되거나, 인증을 우회할 수 있는 코드가 해당 컨텐츠에 추가될 경우, 해당 컨텐츠를 구매하지 않은 사람들도 복제된 컨텐츠를 호스트 단말에 설치하여 무단으로 사용할 수 있다.The contents of the authentication method using the authentication number have a problem that they are easily exposed to hacking. That is, when a code capable of hacking the authentication number of the program or bypassing the authentication is added to the content, persons who have not purchased the content can install the copied content in the host terminal and use the content without permission.
이와 같은 컨텐츠의 무단 사용으로 인한 컨텐츠 제공자(content provider; CP)의 피해가 증가하고 있는 실정이다. 컨텐츠의 무단 사용은 컨텐츠 제공자의 컨텐츠의 개발 의욕을 떨어뜨리는 요인으로 작용하고 있다.The content provider (CP) is increasingly damaged by unauthorized use of such contents. The unauthorized use of the content is a factor that deteriorates the development intention of the contents provider.
또한 컨텐츠 제공자는 개발한 컨텐츠의 무단 복제를 억제하기 위한 보안 방법에도 주의를 기울어야 하기 때문에, 컨텐츠 개발에 많은 비용이 소요되어 컨텐츠 제공자에게 부담으로 작용하고 있는 실정이다.In addition, since the content provider must pay attention to the security method for suppressing the unauthorized copying of the developed content, it takes a lot of cost to develop the content, which is a burden on the content provider.
따라서 본 발명의 목적은 컨텐츠의 복제를 억제하기 위해서, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 저장장치로 제공할 수 있는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.It is therefore an object of the present invention to provide a method and system for separating executable content, which can provide a stable execution environment for executing execution of separation between a host terminal and a storage device, An execution-based content code block providing system, a method thereof, and a computer-readable recording medium on which the method is recorded.
본 발명의 다른 목적은 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 것을 억제할 수 있는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.It is another object of the present invention to provide a system for providing a code block for content based on separation execution that can suppress a delay in signal processing speed between a host terminal and a storage device in a process of providing a code block to be separated, And a computer-readable recording medium on which the method is recorded.
본 발명의 또 다른 목적은 저장장치에 권리 객체를 설치하는 과정에서 분리 실행 대상 코드 블록을 저장장치로 제공할 수 있도록 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공하기 위한 것이다.It is still another object of the present invention to provide a method and apparatus for providing a separation object code block to a storage device by providing a separation object code block in a right object and providing the separation object code block to a storage device, A code block providing system for contents, a method thereof, and a computer readable recording medium on which the method is recorded.
상기 목적을 달성하기 위하여, 본 발명은 호스트 단말 및 저장장치를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템을 제공한다. 호스트 단말은 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체(Right Object; RO)를 통신인터페이스로 연결된 저장장치로 전송한다. 그리고 저장장치는 호스트 단말로부터 권리객체를 수신하고, 수신한 권리객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출하고, 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장한다.According to an aspect of the present invention, there is provided a system for providing a code block for content based on separation execution including a host terminal and a storage device. The host terminal transmits a right object (RO object) including a code block to be executed for executing executable content to a storage device connected via a communication interface. The storage device receives the right object from the host terminal, extracts the separation execution object code block from the right object in the process of installing the received right object, and stores the extracted separation execution object code block in the execution form.
본 발명은 또한, 데이터베이스부, 송수신부 및 서버제어부를 포함하는 분리 실행 기반의 DRM 서버를 제공한다. 데이터베이스부는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 저장한다. 송수신부는 컨텐츠 분배 서버와 통신을 수행한다. 그리고 서버제어부는 송수신부를 통하여 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하면, 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하고, 생성한 권리 객체를 컨텐츠 분배 서버로 전송한다.The present invention also provides a DRM-based DRM server including a database unit, a transmission / reception unit, and a server control unit. The database unit stores a code block to be executed for executing executable content. The transmission / reception unit communicates with the content distribution server. When the server control unit receives the purchase request for specific executable content from the content distribution server through the transmission / reception unit, the server control unit creates a rights object including a code block to be separated for execution of executable content and transmits the created rights object to the content distribution server send.
본 발명은 또한, 저장부, 통신인터페이스부, DRM 처리부 및 분리 실행 대상 코드 블록 처리부를 포함하는 분리 실행 기반의 저장장치를 제공한다. 통신인터페이스부는 호스트 단말과 통신을 수행하며, 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신한다. DRM 처리부는 통신인터페이스부로부터 설치 요청을 전달받아 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출한다. 그리고 분리 실행 대상 코드 블록은 DRM 처리부로부터 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 저장부에 저장한다.The present invention also provides a separate execution-based storage device including a storage unit, a communication interface unit, a DRM processing unit, and a separation execution target code block processing unit. The communication interface unit communicates with the host terminal and receives an installation request of the right object including the execution object code block for executing executable content from the host terminal. The DRM processing unit receives the installation request from the communication interface unit and extracts the separation execution object code block from the right object in the process of installing the right object including the separation execution object code block of execution content. The separation execution object code block receives the separation execution object code block extracted from the DRM processing unit and stores it in the storage unit in an execution form.
본 발명에 따른 분리 실행 기반의 저장장치에 있어서, 통신인터페이스부는 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하여 DRM 처리부로 전달한다.In the separation-based storage apparatus according to the present invention, the communication interface unit receives a rights object including a code block to be executed for executing executable content from the host terminal, and transfers the rights object to the DRM processing unit.
본 발명은 또한, DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록을 수신하여 저장하는 저장 단계, DRM 서버가 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하는 수신 단계, DRM 서버가 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하는 생성 단계. DRM 서버가 생성한 권리 객체를 컨텐츠 분배 서버로 전송하는 전송 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.The present invention also provides a DRM server comprising: a storing step of receiving and storing a code block for execution execution of executable content from a content registration server; a receiving step of receiving a purchase request for specific executive content from the DRM server; The creation step of the DRM server creating a rights object including a code block to be executed separately for specific executable content. And a transmitting step of transmitting the rights object generated by the DRM server to the content distribution server.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장 단계는, DRM 서버가 컨텐츠 등록 서버로부터 실행형 컨텐츠의 서비스용 컨텐츠를 수신하는 단계, DRM 서버가 수신한 서비스용 컨텐츠를 CEK(Contents Encryption Key)로 암호화한 후 DCF(DRM protected Contents Format)로 포맷팅하여 저장하는 단계를 더 포함할 수 있다.In the method of providing a code block for content based on separation execution according to the present invention, the storing step may include: receiving a content for execution of executable content from a content registration server; (Contents Encryption Key), and then formatting and storing the content in a DRM protected contents format (DCF).
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 생성 단계는, DRM 서버가 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록과 CEK을 구매 요청한 사용자의 개인키(private key)로 암호화하여 권리 객체를 생성할 수 있다.In the method of providing a code block for contents based on separation execution according to the present invention, in the generating step, the DRM server encrypts the code block to be separated for execution of specific executive content and the CEK with the private key of the user who has requested to purchase the CEK You can create a rights object.
본 발명은 또한, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 수신 단계, 저장장치가 권리 객체를 설치하는 과정에서 권리 객체에서 분리 실행 대상 코드 블록을 추출하는 추출 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계를 포함하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 제공한다.The present invention also relates to a receiving step of receiving an installation request of a right object including a code block to be separated from executable content from a host terminal to which the storage device is connected, An extraction step of extracting a code block to be executed, and a storing step of storing a code block to be separated for execution extracted by the storage device in an execution form.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 수신 단계에서, 저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신할 수 있다.In the method of providing a code block for content based on separation execution according to the present invention, in a receiving step, a right object including a code block to be separated for execution of executable content may be received from a host terminal connected to the storage device.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장 단계는, 저장장치가 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계, 확인 결과 충분한 경우, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장하는 단계를 포함할 수 있다.In the method of providing a code block for content based on separation execution according to the present invention, the storing step may include: checking whether the capacity of the remaining memory is sufficient to store the code block to be separated, extracted by the storage device; And storing the detachment execution target code block extracted by the device in an execution form in a memory.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 확인 결과 부족한 경우, 저장장치가 메모리 부족 메시지를 호스트 단말로 전송하는 단계, 저장장치가 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계, 저장장치가 추출한 분리 실행 대상 코드 블록을 실행 형태로 메모리에 저장하는 단계를 더 포함할 수 있다.In the method of providing a code block for contents based on separation execution according to the present invention, when the storage device receives an insufficient memory message from the host terminal, A step of securing a memory capacity, and a step of storing a code block to be separated for execution extracted by the storage device in an execution form in a memory.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 메모리 확보 요청 메시지는 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함할 수 있다.In the method of providing a code block for contents based on separation execution according to the present invention, the memory reservation request message may include a deletion request message for information stored in the storage device.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 메모리 확보 요청 메시지는 설치할 권리 객체에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지를 포함할 수 있다.In the method of providing a code block for contents based on separation execution according to the present invention, the memory reservation request message may include a delete request message of a previously stored right object corresponding to a right object to be installed.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 분리 실행 대상 코드 블록은 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되어 있다.In the method of providing a code block for content based on separation execution according to the present invention, the code block to be separated is converted into a code block for a storage device executable in the storage device.
본 발명에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 있어서, 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다.In the method of providing a code block for content based on separation according to the present invention, when the storage device is based on a Java Card Platform (Java Card Platform), the code block to be separated is a Java Byte code block or an ARM code block Has been converted.
그리고 본 발명은 또한, 전술된 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법이 기록된 컴퓨터로 판독 가능한 기록매체를 제공한다.The present invention also provides a computer-readable recording medium having recorded thereon a method for providing code blocks for contents based on the above-described separation execution.
따라서 본 발명에 따르면, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공할 수 있다.Therefore, according to the present invention, it is possible to provide a separation object code block capable of providing a stable execution environment in execution of separation between the host terminal and the storage device for the executable contents, into the right object and provide the same to the storage device.
그리고 권리 객체에 포함되어 제공된 분리 실행 대상 코드 블록은 해당 권리 객체를 설치하는 과정에서 분리되어 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다. 즉 권리 객체에 포함되어 제공되는 분리 실행 대상 코드 블록은 프로그램 형태가 아닌 바이너리 코드 형태로 저장장치에 제공되기 때문에, 분리 실행 대상 코드 블록을 메모리에 저장하는 과정에서 속도 지연이나 부하가 발생되는 것을 억제할 수 있다.Since the separation execution target code block included in the right object can be stored separately in the memory in the process of installing the corresponding right object, the process of providing the separation execution target code block to the storage device, The problem of delaying the signal processing speed between the devices can be suppressed. That is, since the separation execution target code block included in the right object is provided to the storage device in the form of a binary code rather than a program type, it is possible to suppress the occurrence of a speed delay or a load in the process of storing the separation execution object code block in the memory can do.
도 1은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템을 포함하는 디지털 저작권 관리(digital rights management; DRM) 시스템을 보여주는 블록도이다.
도 2는 실행형 컨텐츠의 데이터 구조를 보여주는 블록도이다.
도 3은 실행형 컨텐츠에서 분할된 분리 실행 대상 코드 블록과, 서비스용 컨텐츠의 구성을 보여주는 블록도이다.
도 4는 도 1의 DRM 서버의 구성을 보여주는 블록도이다.
도 5는 도 1의 컨텐츠 분배 서버의 구성을 보여주는 블록도이다.
도 6은 도 1의 호스트 단말의 구성을 보여주는 블록도이다.
도 7은 도 1의 저장장치의 구성을 보여주는 블록도이다.
도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 따른 흐름도이다.
도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.1 is a block diagram illustrating a digital rights management (DRM) system including a system for providing code blocks for content based on a separation execution according to an embodiment of the present invention.
2 is a block diagram showing the data structure of executable content.
Fig. 3 is a block diagram showing a configuration of a code block for separation execution and a content for service divided in execution-type content; Fig.
4 is a block diagram illustrating a configuration of the DRM server of FIG.
5 is a block diagram illustrating the configuration of the content distribution server of FIG.
6 is a block diagram showing the configuration of the host terminal of FIG.
FIG. 7 is a block diagram showing the configuration of the storage device of FIG. 1; FIG.
FIG. 8 is a flowchart illustrating a method of providing a code block for content based on separation according to an embodiment of the present invention.
FIG. 9 is a detailed flowchart according to the step of storing the code block for separation execution in FIG.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 보다 상세하게 설명하자고 한다. 여기서 실행형 컨텐츠는 프로세서를 구비한 호스트 단말 또는 저장장치에서 실행할 수 있는 컨텐츠로서, 예컨대 응용프로그램, 게임 프로그램, 각종 소프트웨어를 포함할 수 있다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings. Here, the executable content may be content that can be executed by a host terminal or a storage device having a processor, for example, an application program, a game program, and various software.
본 발명의 실시예에 따른 분리 실행 기반의 디지털 저작권 관리(digital rights management; DRM) 시스템(100)은, 도 1 내지 도 3에 도시된 바와 같이, 네트워크(60)를 매개로 연결된 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(20), DRM 서버(40), 컨텐츠 분배 서버(50), 호스트 단말(70)과, 호스트 단말(70)에 통신인터페이스(90)를 매개로 연결된 저장장치(80)를 포함하여 구성된다. 특히 분리 실행 기반의 DRM 시스템(100)은 분리 실행 대상 코드 블록(34)을 권리 객체(42)를 이용하여 저장장치(80)에 제공하는 코드 블록 제공 시스템을 포함한다. 코드 블록 제공 시스템은 호스트 단말(70) 및 저장장치(80)를 포함하여 구성된다.The digital rights management (DRM)
여기서 '분리 실행'은 실행형 컨텐츠(30)를 실행하는 데 있어서 호스트 단말(70)과 저장장치(80)가 서로 연동되어 실행하는 것을 의미한다. 특히 분리 실행을 구현하기 위해서, 원본 실행형 컨텐츠(30)의 코드 영역(31)에서 분리된 일부 코드 블록(이하 '분리 실행 대상 코드 블록(34)'이라 함)은 저장장치(80)에 설치되고, 분리 실행 대상 코드 블록(34)이 제거된 컨텐츠(이하 '서비스용 컨텐츠(32)'라 함)는 호스트 단말(70)에 설치된다. 따라서 분리 실행 기반의 실행형 컨텐츠(30)를 실행하고자 할 경우에, 호스트 단말(70)은 서비스용 컨텐츠(32) 실행 중 분리 실행 대상 코드 블록(34)이 제거된 부분에 대한 출력값을 저장장치(80)에 요청하여 반환받는 형태로 해당 실행형 컨텐츠(30)를 실행한다. 이때 분리 실행 대상 코드 블록(34)은 저장장치(80)에서 사용되는 코드 블록으로 변환되어 저장장치(80)에 제공될 수 있다.Here, 'separate execution' means that the
네트워크(60)는 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(20), DRM 서버(40), 컨텐츠 분배 서버(50) 및 호스트 단말(70) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 네트워크(60)는 IP를 통하여 대용량 데이터의 송수신 서비스 및 끊김없는 데이터 서비스를 제공하는 IP망으로, IP를 기반으로 서로 다른 망을 통합한 IP망 구조인 ALL-IP망일 수 있다. 또한 네트워크(60)는 유선통신망, 이동통신망, WiBro(Wireless Broadband)망, HSDPA(High-Speed Downlink Packet Access)망, 위성통신망 또는 기타 널리 공지되었거나 향후 개발될 유무선 또는 이들의 결합망을 포함한다.The
컨텐츠 제공 단말(10)은 컨텐츠 제공자가 운용하는 단말로서, 네트워크(60)를 통하여 컨텐츠 등록 서버(20)와 통신을 수행하고, 컨텐츠 제공자가 개발한 실행형 컨텐츠(30)를 저장한다.The
컨텐츠 등록 서버(20)는 네트워크(60)를 매개로 컨텐츠 제공 단말(10) 및 DRM 서버(40)와 통신을 수행한다. 컨텐츠 등록 서버(20)는 네트워크(60)를 통한 컨텐츠 제공자의 요청에 따라 컨텐츠 제공 단말(10)로부터 실행형 컨텐츠(30)를 수신하여 등록한다. 이때 컨텐츠 등록 서버(20)는 실행형 컨텐츠(30)를 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)으로 분리하여 등록한다. 이때 실행형 컨텐츠(30)의 분리는 컨텐츠 제공 단말(10)에서 수행될 수도 있고, 컨텐츠 등록 서버(20)에서 수행될 수도 있다.The
DRM 서버(40)는 네트워크(60)를 통하여 컨텐츠 등록 서버(20) 및 컨텐츠 분배 서버(50)와 통신을 수행한다. DRM 서버(40)는 컨텐츠 등록 서버(20)로부터 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. DRM 서버(40)는 컨텐츠 분배 서버(50)를 통한 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청에 따라 필요한 정보, 예컨대 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송한다. 즉 DRM 서버(40)는 서비스용 컨텐츠(32)를 CEK(Contents Encryption Key)로 암호화하고, DCF(DRM protected Contents Format)로 포맷팅하여 저장한다. 사용자의 구매 요청이 있는 경우, DRM 서버(40)는 해당 실행형 컨텐츠(30)의 DCF를 컨텐츠 분배 서버(50)로 전송하고, 사용자 개인키(private key)로 CEK를 암호화하여 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 특히 DRM 서버(40)는 분리 실행 대상 코드 블록(34)을 포함하는 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)에 제공할 수 있다. 즉 DRM 서버(40)는 분리 실행 대상 코드 블록(34)과 CEK를 구매 요청한 사용자의 개인키로 암호화하여 권리 객체(42)를 생성한다.The
컨텐츠 분배 서버(50)는 네트워크(60)를 통하여 DRM 서버(40) 및 호스트 단말(70)과 통신을 수행한다. 컨텐츠 분배 서버(50)는 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청을 DRM 서버(40)로 전달하고, 해당 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 DRM 서버(40)로부터 수신한다. 이때 분리 실행 대상 코드 블록(34)은 권리 객체(42)에 포함된 형태로 제공될 수 있다.The
통신인터페이스(90)는 서로 근접한 호스트 단말(70)과 저장장치(80) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신 동작을 수행한다. 통신인터페이스(90)는 USB, USB2, Serial/Parallel Port, Ethernet, TCP/IP, 통신 케이블 등을 이용한 유선 통신망과, 근거리 무선통신망을 포함할 수 있다. 근거리 무선통신 방식으로는 블루투스(Bluetooth), 지그비(zigbee), 루비(Rubee), 적외선데이터통신(IrDA; Infrared Data Association), 초광대역방식(UWB; Ultra Wide Broadband) 등이 사용될 수 있다.The
호스트 단말(70)은 네트워크(60)를 매개로 컨텐츠 분배 서버(50)와 통신을 수행하고, 통신인터페이스(90)를 매개로 저장장치(80)와 통신을 수행한다. 호스트 단말(70)은 사용자의 선택 신호에 따른 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 컨텐츠 분배 서버(50)로 전달한다. 호스트 단말(70)은 컨텐츠 분배 서버(50)로부터 구매한 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)을 수신한다. 호스트 단말(70)은 수신한 정보 중 서비스용 컨텐츠(32)를 자신에게 설치한다. 호스트 단말(70)은 수신한 정보 중 권리 객체(42)는 저장장치(80)로 전달한다. 이때 호스트 단말(70)은 실행형 컨텐츠(30)의 실행이 가능한 독립된 CPU를 가진 컴퓨팅 장치, 예컨대 PC, 노트북, 워크스테이션 등을 통칭한다. 호스트 단말(70)은 다수의 사용자들에 의해 접근이 자유로운 공용 컴퓨터를 포함할 수 있다.The
그리고 저장장치(80)는 통신인터페이스(90)를 매개로 호스트 단말(70)에 연결되며, 저장장치(80)의 구동에 필요한 저장장치용 프로그램(52)과, 호스트 단말(70)에 설치된 서비스용 컨텐츠(32)에 대한 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 저장한다. 저장장치(80)는 실행형 컨텐츠(30) 실행시 호스트 단말(70)의 요청에 따라 분리 실행 대상 코드 블록(34)에 대한 연산을 수행하여 출력값을 호스트 단말(70)로 반환한다. 특히 저장장치(80)는 분리 실행 대상 코드 블록(34)을 권리 객체(42)에 포함된 형태로 제공받는 경우, 권리 객체(42)를 설치할 때 해당 분리 실행 대상 코드 블록(34)을 추출하여 메모리에 저장한다. 이때 저장장치(80)는 프로세서를 구비한 저장장치로서, USB 메모리, 플래시 메모리 카드, 이에 상응하는 각종 이동식, 휴대식 저장매체(예컨대, SD(Secure Digital) 메모리 카드, microSD 메모리 카드, ISO 7816 표준의 저장장치 등)를 통칭한다.The
이와 같이 호스트 단말(70)에 통신인터페이스(90)를 매개로 저장장치(80)가 연결된 상태에서, 사용자가 호스트 단말(70)의 입력부, 예컨대 키보드, 마우스, 터치패드 등을 통하여 실행형 컨텐츠(30)의 실행을 요청하면, 호스트 단말(70)은 서비스용 컨텐츠(32)에 대한 실행을 시작한다. 호스트 단말(70)은 서비스용 컨텐츠(32)에 없는 코드에 대한 실행 요청을 저장장치(80)로 전달한다. 그리고 저장장치(80)는 실행 요청에 대응하는 분리 실행 대상 코드 블록(34)을 실행한 후 출력값을 호스트 단말(70)로 전달한다.In this way, when the
특히 본 발명에 따른 코드 블록 제공 시스템은 통신인터페이스(90)를 매개로 연결된 호스트 단말(70) 및 저장장치(80)를 포함하여 구성되며, 컨텐츠 분배 서버(50)를 더 포함하여 구성될 수 있다.In particular, the code block providing system according to the present invention includes a
컨텐츠 분배 서버(50)는 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 DRM 서버(40)로부터 수신하여 호스트 단말(70)로 전달한다.The
호스트 단말(70)은 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 컨텐츠 분배 서버(50)로부터 수신한다. 호스트 단말(70)은 해당 권리 객체(52)를 통신인터페이스(90)로 연결된 저장장치(80)로 전송한다.The
그리고 저장장치(80)는 호스트 단말(70)로부터 권리 객체(42)를 수신한다. 저장장치(80)는 수신한 권리 객체(42)를 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출한다. 그리고 저장장치(80)는 추출된 분리 실행 대상 코드 블록(34)을 메모리에 저장한다. 이때 저장장치(80)는 추출된 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장할 수 있다.And the
이와 같이 본 실시예에 따른 코드 블록 제공 시스템은 실행형 컨텐츠(30)에 대한 호스트 단말(70)과 저장장치(80) 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록(34)을 권리 객체(42)에 포함시켜 저장장치(80)로 제공할 수 있다.As described above, the code block providing system according to the present embodiment includes a code block 34 (which is capable of providing a stable execution environment when executing separation between the
그리고 권리 객체(42)에 포함되어 제공된 분리 실행 대상 코드 블록(34)은 해당 권리 객체(42)를 설치하는 과정에서 추출하여 메모리에 실행 형태로 저장할 수 있기 때문에, 분리 실행 대상 코드 블록(34)을 저장장치(80)로 제공하는 과정에서 호스트 단말(70) 및 저장장치(80) 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.Since the separation execution
이와 같은 본 실시예에 따른 코드 블록 제공 시스템에 대해서 구체적으로 설명하기에 앞서 분리 실행 기반의 실행형 컨텐츠(30)에 대해서 도 1 내지 도 3을 참조하여 설명하면 다음과 같다.Before describing the code block providing system according to the present embodiment as such, the execution-based
실행형 컨텐츠(30)는 복수 개의 파일, 예컨대 운영체제에서 제공하는 API(application program interface), 개발사에서 제공하는 API 또는 DLL(dynamic linking library)과 같은 파일을 포함한다. 이와 같은 복수의 파일을 포함하는 실행형 컨텐츠(30)는, 도 2에 도시된 바와 같이, 코드 영역(31)과 데이터 영역(33)으로 구분할 수 있다. 코드 영역(31)은 복수의 코드 블록을 포함하며, 분리 실행 대상 코드 블록(34)은 코드 영역(31)에서 추출된 복수의 코드 블록을 포함한다. 예컨대 분리 실행 대상 코드 블록(34)은 복수의 베이식 블록 그룹(37; basic block group)을 포함하며, 베이식 블록 그룹(37)은 복수의 베이식 블록(35; basic block)의 모임이다.The
이때 베이식 블록(35)은 단일 입력(single input) 및 단일 출력(single output)의 속성을 갖는 명령어의 열(sequence of instruction)로서, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 코드 블록으로 정의할 수 있다. 즉 베이식 블록(35)은 항상 시작부터 끝까지 한번에 실행되는 연속적인 문장(코드의 모임)을 의미하며, 중간에 흐름 제어로 인해 실행이 중지되지 않는 문장 그룹이다.At this time, the
서비스용 컨텐츠(32)는 분리 실행 대상 코드 블록(34)으로 추출된 베이식 블록 그룹(37)의 코드 영역에 스터브 코드(36)가 삽입된 코드 영역(31a)과, 데이터 영역(33)을 포함한다. 이때 스터브 코드(36)는 호스트 단말(70)과 저장장치(80) 간에 실행형 컨텐츠(30)에 대한 분리 실행을 수행할 때, 서비스 컨텐츠(32)에서 추출된 코드 영역과, 추출된 코드 영역에 해당하는 분리 실행 대상 코드 블록(34)을 연결한다. 즉 스터브 코드(36)는 실행형 컨텐츠(30)에 대한 분리 실행을 수행할 때, 추출된 코드 영역에서 저장장치(80)로 제어 신호를 전달한다. 제어 신호를 수신한 저장장치(80)는 제어 신호에 해당하는 분리 실행 대상 코드 블록(34)에 대한 연산을 수행하여 산출한 출력값을 호스트 단말(70)로 반환한다.The
분리 실행 대상 코드 블록(34)은 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(30)의 코드 영역(31)에서 추출된 복수의 베이식 블록 그룹(37)을 포함한다. 즉 분리 실행 대상 코드 블록(34)은 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(30)의 코드 영역(31)에서 선정된 베이식 블록 그룹(37)으로, 선정된 베이식 블록 그룹(37)들 중에서 적어도 하나가 분리 실행 대상 코드 블록(34)으로 추출될 수 있다. 분리 실행 대상 코드 블록(34)이 추출된 부분에는 스터브 코드(36)가 삽입된다. 후술되겠지만 실행형 컨텐츠(30)에 대한 프로파일링 및 분석을 통하여, 실행형 컨텐츠(30)는 분리 실행 대상 코드 블록(34)과, 분리 실행 대상 코드 블록(34)이 추출된 서비스용 컨텐츠(32)로 분할된다.The separation execution
분리 실행 대상 코드 블록(34)은 저장장치용 코드 블록으로 변환되어 저장장치(80)에 저장된 형태로 제공되거나 다운로드 형태로 저장장치(80)에 제공될 수 있다. 분리 실행 대상 코드 블록(34)은 전술된 바와 같이 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)이다. 분리 실행 대상 코드 블록(34)은 분리 실행 대상 코드 블록(34)의 시작점(entry point)을 통한 제어 신호의 진입 및 베이식 블록(35) 간의 제어 신호의 이동은 허용하지만, 분리 실행 대상 코드 블록(34)의 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹(37)으로 선택하는 것이 바람직하다.The detachment
이유는 베이식 블록 그룹(37) 중에서 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(37)을 분리 실행 대상 코드 블록(34)으로 추출할 경우, 해당 분리 실행 대상 코드 블록(34)을 추출한 후 삽입되는 스터브 코드(36)에 시작 부분이 아닌 중간으로 제어 신호가 진입할 수 있다. 이 경우 스터브 코드(36)는 해당 제어 신호에 대한 처리를 수행하지 못하여 해당 실행형 컨텐츠(30)의 실행이 중지되거나 에러가 발생될 수 있기 때문이다. 즉 스터브 코드(36)은 첫 5Byte를 제외한 나머지 영역에는 NOP(no-operation instruction)와 같은 쓰레기 값이 들어 있기 때문에, 쓰레기 값이 들어 있는 영역으로 제어 신호가 진입할 경우 에러가 발생될 수 있다. 바꾸어 말하면, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(37)은 분리 실행을 수행할 때, 오류를 발생시킬 수 있는 확률이 높기 때문에, 분리 실행 대상 코드 블록(34)으로는 적합하지 않다.When extracting the
본 실시예에 따른 코드 블록 제공 시스템의 DRM 서버(40)는, 도 1 내지 도 4에 도시된 바와 같이, 제1 송수신부(41), 제1 데이터베이스부(43) 및 제1 서버제어부(45)를 포함하여 구성된다.1 to 4, the
제1 송수신부(41)는 네트워크(60)를 통하여 컨텐츠 등록 서버(20) 및 컨텐츠 분배 서버(50)와 통신을 수행한다. 제1 송수신부(41)는 컨텐츠 등록 서버(20)로부터 분리 실행 대상 코드 블록(34) 및 서비스용 컨텐츠(32)를 수신한다. 제1 송수신부(41)는 컨텐츠 분배 서버(50)로 DRM이 적용된 서비스용 컨텐츠(32) 및 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 전송한다.The first transmission /
제1 데이터베이스부(43)는 서비스용 컨텐츠(32) 및 분리 실행 대상 코드 블록(34)을 저장한다. 이때 서비스용 컨텐츠(32)는 DCF 형태로 변환되어 제1 데이터베이스부(43)에 저장될 수 있다.The
분리 실행 대상 코드 블록(34)은 호스트 단말(70)에서 실행되는 실행형 컨텐츠(30)에서 추출된 코드 블록이다. 예컨대 분리 실행 대상 코드 블록(34)은 x86 또는 x64용 실행형 컨텐츠(30)의 코드 영역(31)에서 추출된 코드 블록일 수 있다. 따라서 분리 실행 대상 코드 블록(34)은 저장장치(80)에 사용될 수 있는 코드 형식으로 변환된다. 예컨대 저장장치(80)가 스마트카드인 경우, 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환된다. 분리 실행 대상 코드 블록(34)은 권리 객체 또는 애플릿(applet)에 포함되어 스마트카드에 제공될 수 있다. 본 실시예에서는 분리 실행 대상 코드 블록(34)이 권리 객체(42)에 포함되어 제공되는 예를 개시하였다.The separation execution
그리고 제1 서버제어부(45)는 DRM 서버(40)의 전반적인 제어 동작을 수행한다. 즉 제1 서버제어부(45)는 컨텐츠 등록 서버(20)로부터 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. 제1 서버제어부(45)는 서비스용 컨텐츠(32)를 CEK로 암호화하고, DCF로 포맷팅하여 제1 데이터베이스부(43)에 저장할 수 있다. 제1 서버제어부(45)는 컨텐츠 분배 서버(50)를 통한 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청에 따라 DRM이 적용된 서비스용 컨텐츠(32), 분리 실행 대상 코드 블록(34) 및 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송할 수 있다. 이때 DRM 서버(40)는 사용자 개인키로 CEK를 암호화하여 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 특히 제1 서버제어부(45)는 분리 실행 대상 코드 블록(34)을 포함하는 권리 객체(42)를 생성하여 컨텐츠 분배 서버(50)로 전송한다. 즉 제1 서버제어부(45)는 분리 실행 대상 코드 블록(34)과 CEK를 구매 요청한 사용자의 개인키로 암호화하여 권리 객체(42)를 생성한다. 이때 생성된 권리 객체(42)는 인스톨(install) 또는 갱신(update)용 권리 객체이다.The first
본 실시예에 따른 코드 블록 제공 시스템의 컨텐츠 분배 서버(50)는, 도 1 내지 도 3, 도 5에 도시된 바와 같이, 제2 송수신부(51), 제2 데이터베이스부(53) 및 제2 서버제어부(55)를 포함하여 구성된다.1 to 3 and 5, the
제2 송수신부(51)는 네트워크(60)를 통하여 DRM 서버(40) 및 호스트 단말(70)과 통신을 수행한다. 제2 송수신부(51)는 제2 서버제어부(55)의 제어에 따라 호스트 단말(70)로부터 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 DRM 서버(40)로 전달한다. 제2 송수신부(51)는 제2 서버제어부(55)의 제어에 따라 DRM 서버(40)로부터 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 수신하여 호스트 단말(70)로 전달한다. 특히 제2 송수신부(51)는 DRM 서버(40)로부터 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)을 수신하여 호스트 단말(70)로 전달한다.The
제2 데이터베이스부(53)는 호스트 단말(70)로 전달하기 위한 서비스용 컨텐츠(32) 및 권리 객체(42)를 저장할 수 있다.The
그리고 제2 서버제어부(55)는 컨텐츠 분배 서버(50)의 전반적인 제어 동작을 수행한다. 즉 제2 서버제어부(55)는 제2 송수신부(51)를 통하여 호스트 단말(70)로부터 사용자의 특정 실행형 컨텐츠(30)에 대한 구매 요청을 수신하여 DRM 서버(40)로 전달한다. 그리고 제2 서버제어부(55)는 제2 송수신부(51)를 통하여 해당 실행형 컨텐츠(30)에 대한 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 수신하여 호스트 단말(70)로 전달한다.The second
본 실시예에 따른 코드 블록 제공 시스템의 호스트 단말(70)은, 도 1 내지 도 3, 도 6에 도시된 바와 같이, 통신부(71), 입력부(73), 제1 저장부(75), 제1 통신인터페이스부(77), 표시부(78) 및 제1 제어부(79)를 포함하여 구성된다.1 to 3 and 6, the
통신부(71)는 네트워크(60)를 통하여 컨텐츠 분배 서버(50)와 통신을 수행한다. 통신부(71)는 제1 제어부(79)의 제어에 따라 특정 실행형 컨텐츠(30)의 구매 요청을 컨텐츠 분배 서버(50)로 전송한다. 통신부(71)는 컨텐츠 분배 서버(50)로부터 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 수신하여 제1 제어부(79)로 전달한다.The
입력부(73)는 호스트 단말(70)의 조작을 위한 복수의 키를 제공하며, 사용자의 키선택에 따른 선택 신호를 발생하여 제1 제어부(79)로 전달한다. 사용자는 입력부(73)를 통해 실행형 컨텐츠(30)의 구매를 요청하고, 구매한 실행형 컨텐츠(30)의 권리 객체(42) 및 분리 실행 대상 코드 블록(34)을 저장장치(80)에 설치할 것을 요청하는 선택 신호를 입력할 수 있다. 이때 입력부(73)로는 키패드, 터치패드와 같은 포인팅 장치, 터치스크린(touch screen) 등의 입력장치가 사용될 수 있다.The
제1 저장부(75)는 호스트 단말(70)의 동작 제어시 필요한 프로그램과, 그 프로그램 수행 중에 발생되는 정보를 저장한다. 제1 저장부(75)는 분리 실행 기반의 실행형 컨텐츠(30)를 설치하기 위한 실행프로그램을 저장한다. 특히 제1 저장부(75)는 컨텐츠 분배 서버(50)로부터 수신한 서비스용 컨텐츠(32)를 저장한다.The
제1 통신인터페이스부(77)는 통신인터페이스(90)를 통한 저장장치(80)와 통신을 수행한다. 제1 통신인터페이스부(77)는 제1 제어부(79)의 제어에 따라 권리 객체(42를 저장장치(80)로 전송한다. 제1 통신인터페이스부(77)는 제1 제어부(79)의 제어에 따라 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하기 위한 CEK를 저장장치(80)로 요청하여 수신한다. 그리고 제1 통신인터페이스부(77)는 분리 실행 기반의 컨텐츠 실행 시 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)의 연결을 매개한다.The
표시부(78)는 호스트 단말(70)에서 실행되는 각종 기능 메뉴를 비롯하여 제1 저장부(75)에 저장된 정보를 표시할 수 있다. 표시부(78)는 분리 실행 기반의 실행형 컨텐츠(30) 설치에 필요한 정보를 표시할 수 있다. 예컨대 표시부(78)는 권리 객체(42)의 설치 여부를 질의하는 메시지를 표시할 수 있다. 표시부(78)는 권리 객체(42) 설치 중 저장장치(80)로부터 수신한 메모리 부족 메시지를 표시할 수 있다. 이때 표시부(78)로는 LCD(Liquid Crystal Display)나 터치 스크린이 사용될 수 있다. 터치 스크린은 표시 장치와 입력 장치로서의 역할을 동시에 수행한다.The
그리고 제1 제어부(79)는 호스트 단말(70)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 특히 제1 제어부(79)는 분리 실행 기반의 실행형 컨텐츠(30) 설치를 제어한다. 즉 제1 제어부(79)는 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하여 설치한다. 제1 제어부(79)는 권리 객체(42)를 저장장치(80)에 설치한다. 그리고 제1 제어부(79)는 저장장치(80)와 함께 분리 실행 기반의 실행형 컨텐츠(30) 실행을 수행한다.The
특히 제1 제어부(79)는 사용자가 컨텐츠 분배 서버(50)를 통하여 실행형 컨텐츠(30)를 구매하는 경우, 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 컨텐츠 분배 서버(50)로부터 수신하여 저장장치(80)로 전달한다.In particular, when the user purchases the
본 실시예에 따른 코드 블록 제공 시스템의 저장장치(80)는, 도 1 내지 도 3, 도 7에 도시된 바와 같이, 제2 통신인터페이스부(81), 제2 저장부(83) 및 제2 제어부(85)를 포함하여 구성된다.1 to 3 and 7, the
제2 통신인터페이스부(81)는 통신인터페이스(90)를 매개로 호스트 단말(70)에 접속되어 호스트 단말(70)과 통신을 수행한다. 제2 통신인터페이스부(81)는 호스트 단말(70)로부터 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)의 설치 요청을 수신하여 제2 제어부(85)로 전달한다. 제2 통신인터페이스부(81)는 호스트 단말(70)로부터 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 수신하여 제2 제어부(85)로 전달한다.The second
제2 저장부(83)는 저장장치(80)의 동작 제어시 필요한 프로그램과, 그 프로그램 수행 중에 발생되는 정보를 저장한다. 제2 저장부(83)는 수신한 권리 객체(42)를 설치하고, 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출하여 실행 형태로 저장하는 실행프로그램을 저장한다. 제2 저장부(83)는 저장장치용 프로그램(52)을 저장장치(80)에 설치하는 실행프로그램을 저장한다. 제2 저장부(83)는 권리 객체(42), 저장장치용 프로그램(52) 및 분리 실행 대상 코드 블록(34)을 저장한다. 이때 분리 실행 대상 코드 블록(34)은 실행 형태로 노아(NOR) 메모리에 저장되고, 권리 객체(42)는 낸드(NAND) 메모리에 저장될 수 있다.The
그리고 제2 제어부(85)는 저장장치(80)의 전반적인 제어 동작을 수행하는 마이크로프로세서이다. 제2 제어부(85)는 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출하여 실행 형태로 제2 저장부(83)에 저장하는 것을 제어한다.The
제2 제어부(83)는 DRM 처리부(82), 저장장치용 프로그램 처리부(84) 및 분리 실행 대상 코드 블록 처리부(86)를 포함하여 구성된다.The
DRM 처리부(82)는 호스트 단말(70)로부터 권리 객체(42)를 전달받아 제2 저장부(83)에 저장한다. DRM 처리부(82)는 호스트 단말(70)의 요청에 따라 DRM이 적용된 서비스용 컨텐츠(32)를 복호화하기 위한 권리 객체(42)에서 CEK를 복호화하여 호스트 단말(70)에 전달한다. 또한 DRM 처리부(82)는 사용자의 개인키를 설치하는 역할도 수행한다. 개인키의 설치는 저장장치(80) 구입 후 최초에만 수행되며, 이후 개인키가 갱신될 경우 저장장치(80)에 저장된 모든 권리 객체(42)는 무효화될 수 있다. 특히 DRM 처리부(82)는 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다.The
저장장치용 프로그램 처리부(84)는 저장장치용 프로그램(52)의 설치를 제어한다. 예컨대, 저장장치(80)가 스마트 카드인 경우, 저장장치용 프로그램 처리부(84)는 자바 카드 플랫폼(Java Card Platform)을 기반으로 구축될 수 있다. 저장장치용 프로그램(52)은 자바 카드 플랫폼에서 사용되는 애플릿이다. 분리 실행 대상 코드 블록(34)은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있다. The
그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 저장하고, 분리 실행 대상 코드 블록(34)의 실행을 통해 산출한 결과값을 호스트 단말(70)로 반환한다. 즉 DRM 처리부(82)로부터 추출된 분리 실행 대상 코드 블록(34)을 전달받아 실행 형태로 제2 저장부(83)에 저장한다. 이때 분리 실행 대상 코드 블록 처리부(86)는 호스트 단말(70)로부터 특정 분리 실행 대상 코드 블록(34)의 결과값 요청을 수신하면, 해당 분리 실행 대상 코드 블록(34)을 런타임(runtime)에 링크한 후 시작 번지로 점프하여 실행시켜 산출한 결과값을 호스트 단말(70)로 반환한다.The separation execution object code block processing section 86 stores the separation execution
한편 제2 제어부(85)는 다음과 같이 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 수 있다. 저장장치(80)가 호스트 단말(70)에 접속되면, DRM 처리부(82)는 호스트 단말(70)로부터 구매한 실행형 컨텐츠(30)의 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 제2 통신인터페이스부(81)를 통하여 수신한다. DRM 처리부(82)는 수신한 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(52)를 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출하여 분리 실행 대상 코드 블록 처리부(86)로 전달한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 전달받은 분리 실행 대상 코드 블록(34)을 실행 형태로 제2 저장부(83)에 저장한다.Meanwhile, the
이때 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 제2 저장부(83)에 저장할 때, 분리 실행 대상 코드 블록(34)을 저장할 만큼 남은 메모리의 용량이 충분한 지의 여부를 확인한다. 확인 결과 충분한 경우, 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.At this time, when the separation execution
하지만 확인 결과 부족한 경우, 분리 실행 대상 코드 블록 처리부(86)는 메모리 부족 메시지를 제2 통신인터페이스부(81)를 통하여 호스트 단말(70)로 전송한다. 호스트 단말(70)로부터 메모리 확보 요청 메시지를 수신하면, 저장장치용 프로그램 처리부(84)는 부족한 메모리 용량을 확보한다. 그리고 분리 실행 대상 코드 블록 처리부(86)는 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다. 이때 메모리 확보 요청 메시지는 제2 저장부(83)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 권리 객체(42)에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지일 수 있다.However, if the verification result is insufficient, the separation execution object code block processing unit 86 transmits a memory short message to the
본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법을 도 1 내지 도 9를 참조하여 설명하면 다음과 같다. 여기서 도 8은 본 발명의 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법에 따른 흐름도이다. 그리고 도 9는 도 8의 분리 실행 대상 코드 블록을 저장하는 단계에 따른 상세흐름도이다.A method of providing a code block for content based on separation execution according to an embodiment of the present invention will now be described with reference to FIGS. 1 to 9. FIG. 8 is a flowchart illustrating a method of providing a code block for content based on separation according to an embodiment of the present invention. And FIG. 9 is a detailed flowchart according to the step of storing the separation execution object code block of FIG.
먼저 S101단계에서 컨텐츠 등록 서버(20)는 등록된 실행형 컨텐츠(30)의 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)을 DRM 서버(40)로 전송한다. DRM 서버(40)는 수신한 서비스용 컨텐츠(32)와 분리 실행 대상 코드 블록(34)에 DRM을 적용한다. 예컨대 DRM 서버(40)는 서비스용 컨텐츠(32)를 CEK로 암호화하고, DCF로 포맷팅하여 저장한다.First, in step S101, the
한편 S103단계에서 저장장치(80)가 통신인터페이스(90)를 매개로 호스트 단말(70)에 접속된 상태에서, S105단계에서 호스트 단말(70)이 컨텐츠 분배 서버(50)로 특정 실행형 컨텐츠(30)의 구매를 요청한다. 즉 호스트 단말(70)이 네트워크(60)을 통하여 컨텐츠 분배 서버(50)에 접속하면, 컨텐츠 분배 서버(50)는 구매할 수 있는 실행형 컨텐츠(30)의 목록을 호스트 단말(70)로 제공한다. 호스트 단말(70)은 수신한 실행형 컨텐츠(30)의 목록을 화면에 표시하고, 특정 실행형 컨텐츠(30)에 대한 구매 요청이 입력되면, 이를 컨텐츠 분배 서버(50)로 전송한다.In step S103, the
다음으로 S107단계에서 컨텐츠 분배 서버(50)는 특정 실행형 컨텐츠(30)의 구매 요청을 DRM 서버(40)로 전달한다.Next, in step S107, the
이어서 S109단계에서 DRM 서버(40)는 구매 요청한 실행형 컨텐츠(30)의 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)를 생성한다. 이어서 S111단계에서 DRM 서버(40)는 생성한 권리 객체(42)를 컨텐츠 분배 서버(50)로 전송한다. 이때 S109단계에서 DRM 서버(40)는 DRM 서버(40)는 분리 실행 대상 코드 블록(34)과 CEK를 구매 요청한 사용자의 개인키로 암호화하여 권리 객체(42)를 생성한다. S111단계에서 DRM 서버(40)는 생성한 권리 객체(42)과 함께 DRM이 적용된 서비스용 컨텐츠(32)를 컨텐츠 분배 서버(50)로 전송한다Then, in step S109, the
다음으로 S113단계에서 컨텐츠 분배 서버(50)는 수신한 DRM이 적용된 서비스용 컨텐츠(32) 및 권리 객체(42)를 호스트 단말(70)로 전송한다.Next, in step S113, the
다음으로 S115단계에서 호스트 단말(70)은 수신한 권리 객체(42)를 저장장치(80)로 전송한다. 한편 호스트 단말(70)은 분리 실행 대상 코드 블록(34)이 포함된 권리 객체(42)에 대한 설치를 함께 요청할 수 있다.Next, in step S115, the
이어서 S117단계에서 저장장치(80)는 수신한 권리 객체(42)를 설치하고, 설치하는 과정에서 권리 객체(42)에서 분리 실행 대상 코드 블록(34)을 추출한다(S119). 이때 저장장치(80)는 분리 실행 대상 코드 블록(34)이 분리된 권리 객체(42)를 메모리, 예컨대 낸드 메모리에 저장할 수 있다.In step S117, the
그리고 S121단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 메모리, 예컨대 노아 메모리에 저장할 수 있다. 이때 S121단계를 도 9를 참조하여 설명하면 다음과 같다.In step S121, the
먼저 S123단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 저장할 만큼 남은 메모리의 용량이 충분한 지의 여부를 확인한다.First, in step S123, the
S123단계의 확인 결과 충분한 경우, S131단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.If the result of the check in step S123 is sufficient, in step S131, the
하지만 S123단계의 확인 결과 부족한 경우, S125단계에서 저장장치(80)는 메모리 부족 메시지를 호스트 단말(70)로 전송한다. 다음으로 S127단계에서 호스트 단말(70)은 메모리 부족 메시지에 응답으로 메모리 확보 요청 메시지를 저장장치(80)로 전송한다. 이때 메모리 확보 요청 메시지는 저장장치(80)에 저장된 정보 중 사용자의 선택 신호에 따른 특정 정보의 삭제 요청 메시지일 수 있다. 또는 메모리 확보 요청 메시지는 설치할 권리 객체(42)에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지일 수 있다.However, if the result of step S123 is insufficient, the
다음으로 S129단계에서 저장장치(80)는 수신한 메모리 확보 요청 메시지에 따라 부족한 메모리 용량을 확보한다.Next, in step S129, the
그리고 S129단계에서 추출한 분리 실행 대상 코드 블록(34)을 저장할 정도로 메모리 용량이 확보되면, S131단계에서 저장장치(80)는 추출한 분리 실행 대상 코드 블록(34)을 실행 형태로 메모리에 저장한다.In step S131, the
한편 본 실시예에서는 S103단계에 따른 호스트 단말(70)이 저장장치(80)에 접속된 상태에서 S105단계 내지 S113단계를 수행하는 예를 개시하였지만 이것에 한정되는 것은 아니다. 예컨대 호스트 단말(70)은 저장장치(80)가 접속되지 않은 상태에서, S105단계 내지 S113단계를 수행할 수 있다. 그리고 S113단계 이후에 호스트 단말(70)에 저장장치(80)가 접속되면, 호스트 단말(70)과 저장장치(80)는 연동하여 S115단계 내지 S121단계를 수행할 수 있다.On the other hand, in the present embodiment, the example in which the
본 실시예에 따른 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드 뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method of providing a code block for content based on the separation execution according to the present embodiment may be implemented in the form of a program command that can be executed through various computer means and recorded in a computer readable recording medium. The recording medium may include program commands, data files, data structures, and the like, alone or in combination. Program instructions to be recorded on a recording medium may be those specially designed and constructed for the present invention or may be available to those skilled in the art of computer software. For example, the recording medium may be a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical medium such as a CD-ROM or a DVD, a magneto-optical medium such as a floppy disk magneto-optical media, and hardware devices that are specially configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions may include machine language code such as those generated by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like. Such a hardware device may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
한편, 본 명세서와 도면에 개시된 실시예들은 이해를 돕기 위해 특정 예를 제시한 것에 지나지 않으며, 본 발명의 범위를 한정하고자 하는 것은 아니다. 여기에 개시된 실시예들 이외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형예들이 실시 가능하다는 것은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게는 자명한 것이다.It should be noted that the embodiments disclosed in the present specification and drawings are only illustrative of specific examples for the purpose of understanding, and are not intended to limit the scope of the present invention. It will be apparent to those skilled in the art that other modifications based on the technical idea of the present invention are possible in addition to the embodiments disclosed herein.
본 발명은 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템, 그 방법 및 그 방법이 기록된 컴퓨터로 판독 가능한 기록매체에 관한 것으로, 실행형 컨텐츠에 대한 호스트 단말과 저장장치 간의 분리 실행 시 안정적인 실행 환경을 제공할 수 있는 분리 실행 대상 코드 블록을 권리 객체에 포함시켜 저장장치로 제공하고, 이를 통하여 분리 실행 대상 코드 블록을 저장장치로 제공하는 과정에서 호스트 단말 및 저장장치 간의 신호 처리 속도가 지연되는 문제를 억제할 수 있다.The present invention relates to a system for providing a code block for content based on separation, a method thereof, and a computer-readable recording medium on which the method is recorded. In the process of providing a separation execution object code block to a storage device, the signal processing speed between the host terminal and the storage device is delayed. .
10 : 컨텐츠 제공 단말 20 : 컨텐츠 등록 서버
30 : 실행형 컨텐츠 32 : 서비스용 컨텐츠
34 : 분리 실행 대상 코드 블록 40 : DRM 서버
42 : 권리 객체 50 : 컨텐츠 분배 서버
52 : 저장장치용 프로그램 60 : 네트워크
70 : 호스트 단말 80 : 저장장치
100 : 분리 실행 기반의 디지털 저작권 관리 시스템10: Content providing terminal 20: Content registration server
30: Executable content 32: Content for service
34: separation execution target code block 40: DRM server
42: right object 50: content distribution server
52: program for storage device 60: network
70: Host terminal 80: Storage device
100: Digital rights management system based on separation execution
Claims (16)
상기 호스트 단말로부터 상기 권리객체를 수신하고, 상기 수신한 권리객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하고, 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장장치;
를 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 상기 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되며,
상기 저장장치는,
상기 실행형 컨텐츠의 분리 실행을 수행 시, 상기 호스트 단말에서 요청한 분리 실행 대상 코드 블록에 대한 연산을 수행하여 산출한 결과값을 상기 호스트 단말로 반환하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 시스템.A host terminal for transmitting a right object (RO Object) including an execution target code block of executable content to a storage device connected via a communication interface;
A storage device for receiving the right object from the host terminal, extracting the separation execution object code block from the right object in the process of installing the received right object, and storing the extracted separation execution object code block in an execution form ;
/ RTI >
The separation execution object code block includes:
A basic block group selected in a code area of the executable content through profiling and analysis of the executable content and converted into a code block for a storage device executable in the storage device,
The storage device comprising:
And performing a computation on a detachment object code block requested by the host terminal and returning the calculated result value to the host terminal when performing the detachment execution of the executable content. Delivery system.
컨텐츠 분배 서버와 통신을 수행하는 송수신부;
상기 송수신부를 통하여 상기 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하면, 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하고, 상기 생성한 권리 객체를 상기 컨텐츠 분배 서버로 전송하는 서버제어부;
를 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되는 것을 특징으로 하는 분리 실행 기반의 DRM 서버.A database unit for storing separate execution target code blocks of executable contents;
A transmission / reception unit for communicating with the content distribution server;
Receiving a purchase request for specific executable content from the content distribution server through the transceiver unit, generating a rights object including a code block to be separated from the executable content, and transmitting the generated rights object to the content distribution server To a server;
/ RTI >
The separation execution object code block includes:
Wherein the execution block is a basic block group selected from a code area of the executable content through profiling and analysis of the executable content and is converted into a code block for a storage device executable in a storage device, server.
호스트 단말과 통신을 수행하며, 상기 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 통신인터페이스부;
상기 통신인터페이스부로부터 상기 설치 요청을 전달받아 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하는 DRM 처리부;
상기 DRM 처리부로부터 상기 추출된 분리 실행 대상 코드 블록을 전달받아 실행 형태로 상기 저장부에 저장하는 분리 실행 대상 코드 블록 처리부;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 저장장치.A storage unit;
A communication interface for communicating with a host terminal and receiving a request for installing a right object including a code block to be executed for execution of execution content from the host terminal;
A DRM processing unit for receiving the installation request from the communication interface unit and extracting the detachment object code block from the right object in the process of installing the right object including the execution object code block of execution content;
A separation execution object code block processing unit for receiving the extracted separation execution object code block from the DRM processing unit and storing the separated separation execution object code block in the storage unit in an execution form;
And a storage unit that stores the execution information.
상기 통신인터페이스부는 상기 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하여 상기 DRM 처리부로 전달하는 것을 특징으로 하는 분리 실행 기반의 저장장치.The method of claim 3,
Wherein the communication interface unit receives the rights object including the code block to be separated from the executable content from the host terminal and delivers the rights object to the DRM processor.
상기 DRM 서버가 컨텐츠 분배 서버로부터 특정 실행형 컨텐츠에 대한 구매 요청을 수신하는 수신 단계;
상기 DRM 서버가 상기 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 권리 객체를 생성하는 생성 단계;
상기 DRM 서버가 상기 생성한 권리 객체를 상기 컨텐츠 분배 서버로 전송하는 전송 단계;
를 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.A DRM server receiving and executing an execution target code block of executable content from a content registration server;
A receiving step of the DRM server receiving a purchase request for specific executive content from a content distribution server;
A generating step of the DRM server generating a rights object including a code block to be separated for execution of the specific executive content;
A DRM server for transmitting the generated rights object to the content distribution server;
/ RTI >
The separation execution object code block includes:
Wherein the execution block is a basic block group selected from a code area of the executable content through profiling and analysis of the executable content and is converted into a code block for a storage device executable in a storage device. A method for providing a code block.
상기 DRM 서버가 상기 컨텐츠 등록 서버로부터 상기 실행형 컨텐츠의 서비스용 컨텐츠를 수신하는 단계;
상기 DRM 서버가 상기 수신한 서비스용 컨텐츠를 CEK(Contents Encryption Key)로 암호화한 후 DCF(DRM protected Contents Format)로 포맷팅하여 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.6. The method according to claim 5,
Receiving, by the DRM server, service content of the executable content from the content registration server;
The DRM server encrypts the received service content with a content encryption key (CEK), formats and stores the content in a DRM protected content format (DCF)
The method of claim 1, further comprising:
상기 DRM 서버가 상기 특정 실행형 컨텐츠의 분리 실행 대상 코드 블록과 CEK을 상기 구매 요청한 사용자의 개인키(private key)로 암호화하여 권리 객체를 생성하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.6. The method according to claim 5,
Wherein the DRM server generates a rights object by encrypting the code block and the CEK of the specific execution content of the specific executive content with a private key of the purchasing requesting user Way.
저장장치가 접속한 호스트 단말로부터 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체의 설치 요청을 수신하는 수신 단계;
상기 저장장치가 상기 권리 객체를 설치하는 과정에서 상기 권리 객체에서 상기 분리 실행 대상 코드 블록을 추출하는 추출 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 저장하는 저장 단계;
를 포함하며,
상기 실행형 컨텐츠의 분리 실행을 수행 시, 상기 호스트 단말에서 요청한 분리 실행 대상 코드 블록에 대한 연산을 수행하여 산출한 결과값을 상기 호스트 단말로 반환하는 단계;
를 더 포함하며,
상기 분리 실행 대상 코드 블록은,
상기 실행형 컨텐츠에 대한 프로파일링 및 분석을 통하여 상기 실행형 컨텐츠의 코드 영역에서 선정된 베이식 블록 그룹이며, 상기 저장장치에서 실행할 수 있는 저장장치용 코드 블록으로 변환되는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.A method for providing a code block for content based on separation execution,
A receiving step of receiving from the host terminal connected to the storage device a request for installing a rights object including an execution object code block for execution content;
An extraction step of extracting the separation execution object code block from the right object in the process of installing the right object by the storage device;
A storage step of storing the extraction execution target code block extracted by the storage device in an execution form;
/ RTI >
Performing an operation on a separate execution object code block requested by the host terminal and returning the calculated result value to the host terminal when performing the separate execution of the executable contents;
Further comprising:
The separation execution object code block includes:
Wherein the execution block is a basic block group selected in a code area of the executable content through profiling and analysis of the executable content and is converted into a code block for a storage device executable in the storage device. A method for providing a code block for content.
상기 저장장치가 접속한 호스트 단말로부터 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록이 포함된 권리 객체를 수신하는 것을 특징으로 하는 분리 실행 기반의 코드 블록 제공 방법.9. The method according to claim 8,
And a right object including a code block to be separated from the executable content is received from a host terminal connected to the storage device.
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 저장할 만큼 남은 메모리의 용량이 충분한 지를 확인하는 단계;
상기 확인 결과 충분한 경우, 상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.9. The method according to claim 8,
Confirming that the storage device has a sufficient capacity of the remaining memory to store the extracted execution execution target code block;
Storing the extracted execution object code block in an execution form in the memory when the verification result is satisfactory;
And generating a code block for a content based on the extracted execution code.
상기 확인 결과 부족한 경우, 상기 저장장치가 메모리 부족 메시지를 상기 호스트 단말로 전송하는 단계;
상기 저장장치가 상기 호스트 단말로부터 메모리 확보 요청 메시지를 수신하여 부족한 메모리 용량을 확보하는 단계;
상기 저장장치가 상기 추출한 분리 실행 대상 코드 블록을 실행 형태로 상기 메모리에 저장하는 단계;
를 더 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.11. The method of claim 10,
If the result of the check is insufficient, the storage device transmits an out-of-memory message to the host terminal;
The storage device receiving a memory reservation request message from the host terminal to secure a memory capacity insufficient;
Storing the extracted execution object code block in an execution form in the memory by the storage device;
The method of claim 1, further comprising:
상기 메모리 확보 요청 메시지는 상기 저장장치에 저장된 정보에 대한 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.12. The method of claim 11,
Wherein the memory reservation request message includes a deletion request message for information stored in the storage device.
상기 메모리 확보 요청 메시지는 설치할 권리 객체에 대응하는 기 저장된 권리 객체의 삭제 요청 메시지를 포함하는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.12. The method of claim 11,
Wherein the memory reservation request message includes a delete request message of a previously stored right object corresponding to a right object to be installed.
상기 저장장치가 자바 카드 플랫폼(Java Card Platform)을 기반으로 하는 경우, 상기 분리 실행 대상 코드 블록은 Java Byte 코드 블록 또는 ARM용 코드 블록으로 변환되어 있는 것을 특징으로 하는 분리 실행 기반의 컨텐츠용 코드 블록 제공 방법.9. The method of claim 8,
Wherein the separation execution object code block is converted into a Java Byte code block or an ARM code block when the storage device is based on a Java Card Platform (Java Card Platform) Delivery method.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20090070231 | 2009-07-30 | ||
KR20090070229 | 2009-07-30 | ||
KR1020090070229 | 2009-07-30 | ||
KR1020090070231 | 2009-07-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110013185A KR20110013185A (en) | 2011-02-09 |
KR101487176B1 true KR101487176B1 (en) | 2015-02-02 |
Family
ID=43772986
Family Applications (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20100029978A Expired - Fee Related KR101487176B1 (en) | 2009-07-30 | 2010-04-01 | System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method |
KR1020100029969A Active KR101432989B1 (en) | 2009-07-30 | 2010-04-01 | System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method |
KR20100030188A Expired - Fee Related KR101487175B1 (en) | 2009-07-30 | 2010-04-02 | Host device and Storage device for separating management of RO, method for separating management of RO, and storage media recorded program executing separating RO management |
KR1020100030189A Active KR101504087B1 (en) | 2009-07-30 | 2010-04-02 | Web service system and method based on storage device, and storage media recorded program executing web service method |
KR1020100030172A Ceased KR20110013187A (en) | 2009-07-30 | 2010-04-02 | System and method for providing content or service using storage device, DDR server and storage device thereof, recording medium therefor |
KR1020100031120A Active KR101374159B1 (en) | 2009-07-30 | 2010-04-05 | System and method for managing rights object using storage device, DRM-server and terminal, and recording medium thereof |
KR1020100030784A Expired - Fee Related KR101525402B1 (en) | 2009-07-30 | 2010-04-05 | Separating execution method of executable contents, device for forming separating execution based executable contents, and storage media recorded separating execution based executable contents |
KR1020100031065A Active KR101544731B1 (en) | 2009-07-30 | 2010-04-05 | Storage device capable of separating execution of executable content, and device for configuring native execution environment in storage device |
Family Applications After (7)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100029969A Active KR101432989B1 (en) | 2009-07-30 | 2010-04-01 | System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method |
KR20100030188A Expired - Fee Related KR101487175B1 (en) | 2009-07-30 | 2010-04-02 | Host device and Storage device for separating management of RO, method for separating management of RO, and storage media recorded program executing separating RO management |
KR1020100030189A Active KR101504087B1 (en) | 2009-07-30 | 2010-04-02 | Web service system and method based on storage device, and storage media recorded program executing web service method |
KR1020100030172A Ceased KR20110013187A (en) | 2009-07-30 | 2010-04-02 | System and method for providing content or service using storage device, DDR server and storage device thereof, recording medium therefor |
KR1020100031120A Active KR101374159B1 (en) | 2009-07-30 | 2010-04-05 | System and method for managing rights object using storage device, DRM-server and terminal, and recording medium thereof |
KR1020100030784A Expired - Fee Related KR101525402B1 (en) | 2009-07-30 | 2010-04-05 | Separating execution method of executable contents, device for forming separating execution based executable contents, and storage media recorded separating execution based executable contents |
KR1020100031065A Active KR101544731B1 (en) | 2009-07-30 | 2010-04-05 | Storage device capable of separating execution of executable content, and device for configuring native execution environment in storage device |
Country Status (1)
Country | Link |
---|---|
KR (8) | KR101487176B1 (en) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101447282B1 (en) * | 2012-08-20 | 2014-10-16 | 주식회사 네오위즈인터넷 | Method, mobile terminal, recording medium, and system for providing mobile payment service |
WO2014178618A1 (en) * | 2013-04-29 | 2014-11-06 | 케이피커뮤니케이션 주식회사 | Bidirectional advertisement motion picture matching system and method for operating same |
KR102156371B1 (en) | 2013-11-27 | 2020-09-15 | 한국전자통신연구원 | Method for providing embedded software development tools for supporting embedded software development environment based on native building and apparatus thereof |
KR102204654B1 (en) * | 2014-01-24 | 2021-01-19 | 주식회사 넥슨코리아 | Method and apparatus for providing content purchased from offline store |
KR101671336B1 (en) * | 2014-02-27 | 2016-11-16 | (주)스마일게이트엔터테인먼트 | Method of unpacking protection with code separation and apparatus thereof |
KR102443069B1 (en) | 2015-08-12 | 2022-09-14 | 삼성전자주식회사 | Apparatus and method for running an application |
CA2993857A1 (en) | 2018-02-02 | 2019-08-02 | Ferguson Technologies Inc. | Systems and methods for generating electrical energy |
KR102441167B1 (en) * | 2018-12-05 | 2022-09-08 | 한국전자통신연구원 | Apparatus and method for executing function |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172351A (en) | 2004-12-20 | 2006-06-29 | Hitachi Ltd | Method and system for managing expiration date of contents using removable media |
KR101354759B1 (en) | 2007-01-03 | 2014-01-22 | 엘지전자 주식회사 | How to manage digital rights of terminal |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002215828A (en) * | 2000-11-16 | 2002-08-02 | Yoshinobu Inada | Management system and management method of digital literary work |
KR100407389B1 (en) * | 2001-11-19 | 2003-11-28 | 에스케이텔레텍주식회사 | Method and Device for providing Resource Alone of Contents Application for Mobile Communication terminal |
KR101254209B1 (en) * | 2004-03-22 | 2013-04-23 | 삼성전자주식회사 | Apparatus and method for moving and copying right objects between device and portable storage device |
KR101043336B1 (en) * | 2004-03-29 | 2011-06-22 | 삼성전자주식회사 | Method and apparatus for acquiring and removing informations of digital right objects |
JP4664055B2 (en) | 2004-12-10 | 2011-04-06 | 株式会社エヌ・ティ・ティ・ドコモ | Program dividing device, program executing device, program dividing method, and program executing method |
KR100738917B1 (en) | 2006-02-14 | 2007-07-12 | 에스케이 텔레콤주식회사 | Server, system, and method for providing encrypted content and authorization object to electronic communication device using delegation method of authorization issuing server |
KR101346734B1 (en) * | 2006-05-12 | 2014-01-03 | 삼성전자주식회사 | Multi certificate revocation list support method and apparatus for digital rights management |
KR101314271B1 (en) * | 2006-07-25 | 2013-10-02 | 엘지전자 주식회사 | Digital rights management method and system thereof |
KR100783811B1 (en) | 2007-08-28 | 2007-12-10 | 주식회사 파수닷컴 | How to manage digital rights for compressed files |
KR101689351B1 (en) | 2007-12-20 | 2016-12-23 | 코닌클리케 필립스 엔.브이. | Device and method for digital right management |
-
2010
- 2010-04-01 KR KR20100029978A patent/KR101487176B1/en not_active Expired - Fee Related
- 2010-04-01 KR KR1020100029969A patent/KR101432989B1/en active Active
- 2010-04-02 KR KR20100030188A patent/KR101487175B1/en not_active Expired - Fee Related
- 2010-04-02 KR KR1020100030189A patent/KR101504087B1/en active Active
- 2010-04-02 KR KR1020100030172A patent/KR20110013187A/en not_active Ceased
- 2010-04-05 KR KR1020100031120A patent/KR101374159B1/en active Active
- 2010-04-05 KR KR1020100030784A patent/KR101525402B1/en not_active Expired - Fee Related
- 2010-04-05 KR KR1020100031065A patent/KR101544731B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006172351A (en) | 2004-12-20 | 2006-06-29 | Hitachi Ltd | Method and system for managing expiration date of contents using removable media |
KR101354759B1 (en) | 2007-01-03 | 2014-01-22 | 엘지전자 주식회사 | How to manage digital rights of terminal |
Also Published As
Publication number | Publication date |
---|---|
KR101487175B1 (en) | 2015-02-02 |
KR101374159B1 (en) | 2014-03-13 |
KR101432989B1 (en) | 2014-08-27 |
KR20110013191A (en) | 2011-02-09 |
KR101504087B1 (en) | 2015-03-24 |
KR101544731B1 (en) | 2015-08-17 |
KR20110013189A (en) | 2011-02-09 |
KR20110013188A (en) | 2011-02-09 |
KR20110013184A (en) | 2011-02-09 |
KR20110013185A (en) | 2011-02-09 |
KR101525402B1 (en) | 2015-06-08 |
KR20110013187A (en) | 2011-02-09 |
KR20110013193A (en) | 2011-02-09 |
KR20110013192A (en) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101487176B1 (en) | System for providing code block for separating execution based contents, method thereof and computer recordable medium storing the method | |
AU2006200154B2 (en) | Flexible licensing architecture for licensing digital application | |
KR100796583B1 (en) | Systems, methods and recording media for license management | |
US20120089733A1 (en) | Managing Access to an Application | |
EP2628125B1 (en) | Method and apparatus for downloading drm module | |
KR100546742B1 (en) | Target system based source program development device and method | |
US9392051B2 (en) | Application distribution supplying a dedicated application to a terminal from an application deposited by the developer | |
US20020055910A1 (en) | Program component distribution | |
CN105976177A (en) | NFC (near field communication)-oriented cloud payment method | |
US8418169B2 (en) | Management method for managing software module and information processor | |
KR101442000B1 (en) | Server for registering separating execution based contents, method thereof and computer recordable medium storing program performing the method | |
KR101498919B1 (en) | System and method for digital rights management based on storage device, and recording medium thereof | |
US20080301654A1 (en) | Program processing apparatus, program processing method and computer readable information recording medium | |
KR20060117769A (en) | DRM-based usage right transfer service method and device | |
KR20120002079A (en) | Application copyright protection system, application copyright protection device and method, and terminal device and application copyright protection method of the terminal device | |
US20060212513A1 (en) | Managing apparatus, managing method and computer-readable storage medium | |
KR100611119B1 (en) | DRM-based WIP Content Service Method and Apparatus | |
Maroñas et al. | Implementing mobile applications with the MIPAMS content management platform | |
KR20060117771A (en) | DRM based content playback service method and device | |
JP2003337705A (en) | Software delivery system and method using internet | |
KR20060117778A (en) | DRM based video content service method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20100401 |
|
PG1501 | Laying open of application | ||
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20111021 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20130201 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20100401 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20140725 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20150120 |
|
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20150122 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20150123 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20180122 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20180122 Start annual number: 4 End annual number: 4 |
|
LAPS | Lapse due to unpaid annual fee | ||
PC1903 | Unpaid annual fee |