KR101487175B1 - 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 - Google Patents
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 Download PDFInfo
- Publication number
- KR101487175B1 KR101487175B1 KR20100030188A KR20100030188A KR101487175B1 KR 101487175 B1 KR101487175 B1 KR 101487175B1 KR 20100030188 A KR20100030188 A KR 20100030188A KR 20100030188 A KR20100030188 A KR 20100030188A KR 101487175 B1 KR101487175 B1 KR 101487175B1
- Authority
- KR
- South Korea
- Prior art keywords
- storage device
- roap
- host terminal
- content
- drm
- Prior art date
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
본 발명은 호스트 단말과 저장 장치의 상호 연동을 통해 권리 객체(RO: Right Object)를 관리하는 분리형 RO 관리를 위한 호스트 단말 및 저장 장치, 분리형 RO 관리 방법, 그리고 이를 수행하는 프로그램을 기록한 기록매체에 관한 것이다. 본 발명은 디지털 저작권 보호를 위한 DRM 에이전트를 호스트 단말용 DRM 에이전트와 저장 장치용 DRM 에이전트로 분리하여 호스트 단말과 저장 장치에 각각 구비하고, 호스트 단말용 DRM 에이전트는 서버에서 획득한 RO가 호스트 단말에 연결된 저장 장치에 설치되도록 상기 저장 장치로 전달하고, 상기 저장 장치와의 연동을 통해 상기 RO의 정보를 확인하여 상기 디지털 컨텐츠를 사용할 수 있도록 지원하고, 저장 장치용 DRM 에이전트는 DRM에 의해 보호되는 디지털 컨텐츠의 RO에 대한 관리 기능을 수행한다.The present invention relates to a host terminal and a storage device for a separate RO management for managing a right object (RO) through interoperation between a host terminal and a storage device, a separate RO management method, and a recording medium on which a program for performing the same is recorded . The present invention provides a DRM agent for digital copyright protection in a host terminal and a storage device separately from a DRM agent for a host terminal and a DRM agent for a storage device, The DRM agent for the storage device transmits the digital content protected by the digital rights management (DRM) to the storage device, And performs a management function for RO of contents.
Description
본 발명은 디지털 컨텐츠의 저작권 보호를 위한 디지털 저작권 관리 (DRM: Digital Right Management) 시스템에 있어서, 호스트 단말과 저장 장치의 상호 연동을 통해 권리 객체(RO: Right Object)를 관리하는 분리형 RO 관리를 위한 호스트 단말 및 저장 장치, 그의 분리형 RO 관리 방법, 그리고 이를 수행하는 프로그램을 기록한 기록매체에 관한 것이다.The present invention relates to a digital rights management (DRM) system for protecting the copyright of digital contents, and more particularly, to a system for managing a rights object (RO) A host terminal, a storage device, a separate RO management method thereof, and a recording medium recording a program for performing the same.
최근 PC(Personal Computer)나 PDA(Personal Digital Assistant)와 같은 다양한 호스트 단말의 사용이 증가하면서, 그에 맞추어 호스트 단말에서 이용되는 다양한 종류의 디지털 컨텐츠 들이 개발되고 있다.2. Description of the Related Art [0002] Recently, various types of digital contents used in a host terminal have been developed in accordance with the increasing use of various host terminals such as a personal computer (PC) and a personal digital assistant (PDA).
디지털 컨텐츠는 디지털 형식으로 만들어진 문자, 음성, 음향, 이미지 등을 의미하는 것으로서, 최근 디지털 기술이 발달하면서 게임 등과 같이 그 종류가 더욱 다양해지고 있다. 이러한 디지털 컨텐츠는 무료로 사용할 수 있는 프리웨어인 경우도 있지만, 대부분 상용으로 개발된 것으로, 소정의 가격을 지불하여 사용권이나 프로그램을 구매한 후 사용하도록 되어 있다. 그러나 일부 사용자들이 크래킹 등을 통해서 이들을 불법으로 복제하거나 사용하는 경우가 많이 있다.Digital contents mean letters, sounds, sounds, images, and the like, which are made in a digital format. Recently, with the development of digital technology, the types of digital contents have become more diversified such as games. These digital contents are freeware that can be freely used, but most of them are developed for commercial use, and they are used after purchasing a license or a program at a predetermined price. However, there are many cases in which some users illegally copy or use them through cracking.
따라서 개발자의 권익 보호를 위해 디지털 컨텐츠에 대한 저작권을 보호하는 DRM 기술에 대한 중요성이 커지고 있다.Therefore, to protect the rights of developers, DRM technology that protects copyright on digital contents is becoming more important.
DRM은 디지털 컨텐츠의 무단 사용을 막아, 디지털 컨텐츠 제공자의 권리와 이익을 보호하며 불법 복제를 막고 사용료 부과와 결제 대행 등 컨텐츠의 생성에서 유통 및 관리까지를 지원하는 기술 및 서비스를 통틀어 일컫는 것으로서, 여기에는 적법한 사용자만 컨텐츠를 사용하고 적절한 요금을 지불하도록 하는 디지털 저작권 관리기술, 저작권 승인과 집행을 위한 소프트웨어 및 보안기술, 지불/결제 기술이 모두 포함된다.DRM refers to technologies and services that prevent the unauthorized use of digital contents, protect the rights and interests of digital contents providers, prevent illegal copying, charge fees, settle and distribute contents, and support distribution and management. Include digital rights management technology that allows only legitimate users to use content and pay appropriate fees, software and security technology for copyright approval and enforcement, and payment / billing technology.
특히, 이러한 DRM 시스템에서는 디지털 컨텐츠의 불법적인 복제 및 사용을 방지하기 위하여, 다양한 방법들이 이용되고 있는데, 가장 보편적인 방법은 인증 키를 이용하는 것이다. 이 방법은 인증 키를 입력하는 경우에만 디지털 컨텐츠를 설치하거나 실행할 수 있도록 한 것이나, 사용자들이 인증 키를 공유하거나, 키 검증 알고리즘의 리버스 엔지니어링을 통한 불법 사용이나 불법 복제가 여전히 이루어지고 있다.Particularly, in such a DRM system, various methods are used to prevent illegal copying and use of digital contents. The most common method is to use an authentication key. This method allows digital content to be installed or executed only when an authentication key is input. However, illegal use or illegal copying is still performed by users sharing the authentication key or reverse engineering the key verification algorithm.
더 강력한 방법으로, 하드웨어 키 록을 제공하여, 프로그램 실행 시 제공된 키 록이 존재하는 경우에만 실행이 되도록 하는 방법이 있다. 그러나 이 방식 또한 키 록을 확인하는 부분만 바이패스(bypass)하도록 프로그램을 수정하는 방법으로 무력화될 수 있다.In a more powerful way, there is a way to provide a hardware key lock so that it is executed only when the provided key lock is present when the program is executed. However, this method can also be disabled by modifying the program to bypass only the portion of the key lock.
이로 인하여 디지털 컨텐츠의 불법 사용은 여전히 이루어지고 있으며, 디지털 컨텐츠의 무단 사용으로 인한 컨텐츠 개발사의 피해가 증가하고 있는 실정이다. 디지털 컨텐츠의 무단 사용은 컨텐츠 개발사의 응용프로그램의 개발 의욕을 떨어뜨리는 요인으로 작용하고, 또한 디지털 컨텐츠의 개발 시, 불법 복제 및 사용을 억제하기 위한 보안 기술에 더 집중해야 하기 때문에, 디지털 컨텐츠의 개발 비용을 증가시키며, 이러한 비용 증가는 컨텐츠 제공자에게 부담으로 작용한다.As a result, the illegal use of digital contents is still being performed, and the damage caused by content developers due to unauthorized use of digital contents is increasing. Unauthorized use of digital contents is a factor that deteriorates the development desire of the application program of the content developer. Further, when developing digital contents, it is necessary to concentrate more on security technology for suppressing illegal copying and use, Which increases the cost, which is a burden on the content provider.
더하여, 기존의 DRM 시스템에서는 RO에 대한 관리가 호스트 단말에 존재하는 DRM 에이전트를 통하여 이루어졌기 때문에, RO가 설치된 호스트 단말을 통해서만 DRM 서비스를 이용할 수 있다는 불편한 점이 있었다.In addition, since the management of the RO is performed through the DRM agent existing in the host terminal in the existing DRM system, it is inconvenient that the DRM service can be used only through the host terminal in which the RO is installed.
또한, 일부 DRM 시스템에서 스마트 카드와 같은 저장 장치를 이용하는 경우가 있으나, 이 경우에도 저장 장치에 RO나 인증서 등을 저장하도록 함으로써 RO에 대한 보안성을 강화한 것일 뿐이며, RO에 대한 관리는 여전히 호스트 단말에 설치된 DRM 에이전트를 통해서 이루어지기 때문에, DRM 에이전트가 설치된 호스트 단말을 통해서만 디지털 컨텐츠를 이용할 수 있다는 불편한 점이 있었다.Also, in some DRM systems, a storage device such as a smart card is used. In this case, however, the security for the RO is enhanced by storing the RO or the certificate in the storage device, It is inconvenient that the digital contents can be used only through the host terminal in which the DRM agent is installed.
본 발명은 종래의 문제점을 해결하기 위하여 제안된 것으로서, 디지털 컨텐츠의 저작권 보호를 위한 디지털 저작권 관리 시스템에 있어서, 호스트 단말과 저장 장치의 상호 연동을 통해 권리 객체를 관리함으로써, 저장 장치만을 가지고도 DRM 서비스를 이용할 수 있는 분리형 RO 관리를 위한 호스트 단말 및 저장 장치, 그의 분리형 RO 관리 방법, 그리고 이를 수행하는 프로그램을 기록한 기록매체를 제공하고자 한다.Disclosure of Invention Technical Problem [8] The present invention has been proposed in order to solve the conventional problems, and it is an object of the present invention to provide a digital rights management system for copyright protection of digital contents, The present invention provides a host terminal and a storage device for detachable RO management that can utilize a service, a detached RO management method thereof, and a recording medium on which a program for performing the detached RO management is recorded.
본 발명은 과제를 해결하기 위한 수단으로서, ROAP(Rights Object Acquisition Protocol) 에이전트와, 호스트 단말용 DRM 에이전트를 포함하는 호스트 단말을 제공한다. ROAP 에이전트는 DRM에 의해 보호된 디지털 컨텐츠의 사용 권한을 명시한 RO를 발급하는 서버로부터 RO를 획득한다. 호스트 단말용 DRM 에이전트는 ROAP 에이전트에서 획득한 RO가 호스트 단말에 연결된 저장 장치에 설치되도록 전달하고, 저장 장치와의 연동을 통해 RO의 정보를 확인하여 디지털 컨텐츠를 사용할 수 있도록 지원한다.The present invention provides a host terminal including a Rights Object Acquisition Protocol (ROAP) agent and a DRM agent for a host terminal as means for solving the problem. The ROAP agent acquires the RO from the server issuing the RO specifying the usage rights of the digital contents protected by the DRM. The DRM agent for the host terminal transfers the RO acquired from the ROAP agent to the storage device connected to the host terminal, and supports the use of the digital content by confirming the information of the RO through interworking with the storage device.
본 발명에 의한 호스트 단말에 있어서, 호스트 단말용 DRM 에이전트는, 디지털 컨텐츠에 대한 CEK(Content Encryption key)를 저장 장치로부터 제공받아, 디지털 컨텐츠의 전체 또는 일부 코드 블록에 대한 복호화를 수행한다.In the host terminal according to the present invention, the DRM agent for the host terminal receives the CEK (Content Encryption Key) for the digital contents from the storage device and decodes all or some code blocks of the digital contents.
본 발명에 의한 호스트 단말에 있어서, 호스트 단말용 DRM 에이전트는, 디지털 컨텐츠가 분리 실행 기반의 실행형 컨텐츠인 경우, 저장 장치로 저장 장치용 코드블록의 호출을 전달하고, 저장 장치용 코드 블록의 실행 결과값을 반환 받아 디지털 컨텐츠로 제공한다.In the host terminal according to the present invention, when the digital content is executable content based on separation execution, the DRM agent for the host terminal delivers the call of the code block for the storage device to the storage device, The result is returned and provided as digital contents.
본 발명에 의한 호스트 단말에 있어서, ROAP 에이전트는 소켓과 ROAP 프로세서와 DD(Download Descriptor) 파서와 트리거 DB를 포함하여 이루어진다. 여기서, 소켓은 서버와 ROAP 통신을 수행한다. ROAP 프로세서는 소켓을 통하여 서버와 통신하여 디지털 컨텐츠의 RO를 획득한다. DD 파서는 RO 획득을 위해 사용되는 트리거에 대한 DD를 해석한다. 트리거 DB는 ROAP 통신이 실패하였을 때의 ROAP 트리거를 저장한다.In the host terminal according to the present invention, the ROAP agent includes a socket, a ROAP processor, a DD (Download Descriptor) parser, and a trigger DB. Here, the socket performs ROAP communication with the server. The ROAP processor communicates with the server through the socket to obtain RO of the digital content. The DD parser interprets the DD for the trigger used for RO acquisition. The trigger DB stores the ROAP trigger when the ROAP communication fails.
본 발명에 의한 호스트 단말에 있어서, 호스트 단말용 DRM 에이전트는, ROAP 엔진, DCF(DRM protected Content Format) 매니저, RO 매니저, 저장 장치 인터액션 매니저 및 DRM 에이전트 제어 모듈을 포함하여 이루어진다. ROAP 엔진은 ROAP 프로토콜에 따른 처리를 수행한다. DCF 매니저는 DRM 표준에 따라서 디지털 컨텐츠의 DCF를 관리한다. RO 매니저는 서버 및 저장 장치와 연동하여 RO의 양도를 위한 절차를 수행한다. 저장 장치 인터액션 매니저는 분리형 RO 관리를 위하여 저장 장치의 연동 기능을 수행한다. DRM 에이전트 제어 모듈은 분리형 RO 관리 절차에 기반하여 ROAP 엔진, DCF 매니저, RO 매니저, 저장 장치 인터액션 매니저의 전체 동작을 제어한다.In the host terminal according to the present invention, the DRM agent for the host terminal includes an ROAP engine, a DRM protected content format (DCF) manager, an RO manager, a storage device interaction manager, and a DRM agent control module. The ROAP engine performs processing according to the ROAP protocol. The DCF manager manages the DCF of the digital content according to the DRM standard. The RO manager performs procedures for transferring the RO in conjunction with the server and the storage device. The storage device interaction manager performs the interlocking function of the storage device for separate RO management. The DRM agent control module controls the overall operation of the ROAP engine, the DCF manager, the RO manager, and the storage device interaction manager based on the separate RO management procedure.
본 발명에 의한 호스트 단말에 있어서, ROAP 엔진은, DRM 규격에 따라서 ROAP 프로토콜의 동작을 수행하고, ROAP 프로토콜의 동작 과정에서 발생하는 예외 및 오류 처리를 수행하는 ROAP 프로세서; ROAP 프로세서의 제어에 따라서 서버에게 전달할 ROAP 메시지를 생성하는 ROAP 제너레이터; 및 서버에서 수신한 ROAP 트리거나 ROAP 메시지를 파싱하여 ROAP프로세서로 제공하는 ROAP 파서를 포함하여 이루어진다.In the host terminal according to the present invention, the ROAP engine may include: a ROAP processor for performing an operation of the ROAP protocol according to the DRM standard and performing an exception and error processing occurring in the operation process of the ROAP protocol; A ROAP generator for generating a ROAP message to be delivered to the server in accordance with the control of the ROAP processor; And a ROAP parser that parses the ROAP message or the ROAP message received from the server and provides the ROAP parser to the ROAP processor.
본 발명에 의한 호스트 단말에 있어서, DCF 매니저는 DRM 규격에 따른 디지털 컨텐츠를 분석 및 해석하는 DCF 인터프리터; 및 상기 디지털 컨텐츠에 대한 복호화를 수행하는 DCF 렌더러를 포함하여 이루어진다.In the host terminal according to the present invention, the DCF manager may include a DCF interpreter for analyzing and analyzing digital content according to the DRM standard; And a DCF renderer for decoding the digital content.
본 발명에 의한 호스트 단말은 디지털 컨텐츠의 DCF(DRM protected Content Format) 파일을 저장하는 파일 시스템을 더 포함한다.The host terminal according to the present invention further includes a file system for storing a DCF (DRM protected content format) file of digital contents.
본 발명은 과제를 해결하기 위한 다른 수단으로서, 호스트 단말에 연결되는 것으로서, 저장 장치용 DRM 에이전트 및 파일 시스템을 포함하는 저장 장치를 제공한다. 여기서, 저장 장치용 DRM 에이전트는, 호스트 단말과 연동하여 DRM에 의해 보호되는 디지털 컨텐츠의 RO에 대한 관리 기능을 수행한다. 파일 시스템은 저장 장치용 DRM 에이전트에 의해 관리되는 RO가 저장된다.The present invention provides, as another means for solving the problems, a storage device which is connected to a host terminal and includes a DRM agent and a file system for a storage device. Here, the DRM agent for the storage device performs the management function for the RO of the digital contents protected by the DRM in cooperation with the host terminal. The file system stores the RO managed by the DRM agent for the storage device.
본 발명에 의한 저장 장치에 있어서, 저장 장치용 DRM 에이전트는, 호스트 단말에서 전달되는 RO의 설치 및 제거, RO의 정보를 호스트 단말로 반환, RO 갱신 기능 중에서 하나 이상을 포함하는 RO 관리 기능을 수행하는 RO 매니저; RO를 획득하는데 필요한 정보인 RI 컨텍스트(Right Issuer Context)를 관리하는 RI(Right Issuer) 컨텍스트 매니저; 및 RO를 발급하는 서버와 저장 장치의 상호 인증을 수행하고, RO에서 CEK를 복호화하는 PKI 매니저를 포함하는 것을 특징으로 한다.In the storage device according to the present invention, the DRM agent for the storage device performs an RO management function including at least one of installing and removing an RO transferred from a host terminal, returning RO information to a host terminal, and performing an RO updating function An RO manager; An RI (Right Issuer) context manager for managing an RI context (Right Issuer Context), which is information necessary for obtaining an RO; And a PKI manager for performing mutual authentication between the server and the storage device issuing the RO and decrypting the CEK in the RO.
본 발명에 의한 저장 장치에 있어서, PKI 매니저는, RO에 포함되어 있는 암호화 되어있는 CEK를 복호화하여 추출하는 CEK 매니저; 파일 시스템에 저장되는 디바이스 인증서를 가져와 호스트 단말로 제공하는 인증 매니저; 및 서버로 전달한 ROAP 메시지에 서명하는 시그니처 매니저를 포함하여 이루어진다.In the storage apparatus according to the present invention, the PKI manager includes: a CEK manager for decrypting and extracting the encrypted CEK included in the RO; An authentication manager for obtaining a device certificate stored in the file system and providing the device certificate to the host terminal; And a signature manager for signing the ROAP message delivered to the server.
본 발명에 의한 저장 장치에 있어서, 파일 시스템에는 디지털 컨텐츠의 코드 영역에서 분리된 분리 실행 대상 코드 블록이 저장 장치에서 실행 가능하도록 변환된 저장 장치용 코드 블록이 더 저장된다.In the storage apparatus according to the present invention, the file system further stores a code block for a storage device converted to be executable in the storage device, the code block to be detached from the code area of the digital content.
본 발명은 과제를 해결하기 위한 다른 수단으로서, 호스트 단말과 저장장치의 상호 연동을 통한 분리형 RO 관리 방법은, 호스트 단말이, DRM에 의해 보호된 디지털 컨텐츠에 대한 RO를 획득하는데 필요한 트리거를 획득하는 단계; 트리거를 이용하여 RO를 발급하는 서버에 접속하여 상기 RO를 요청하여, RO를 획득하는 단계; 및 획득한 RO를 저장 장치에 전달하여, 저장 장치에 설치되도록 하는 단계를 포함하여 이루어진다.As another means for solving the problem, the present invention provides a detachable RO management method for interlocking a host terminal and a storage device, wherein the host terminal acquires a trigger necessary for acquiring an RO for digital contents protected by DRM step; Accessing a server that issues an RO using a trigger, requesting the RO to obtain an RO; And transferring the acquired RO to a storage device so as to be installed in the storage device.
본 발명에 의한 분리형 RO 관리 방법은, 특정 응용 프로그램으로부터 DRM에 의해 보호된 컨텐츠에 대한 요청을 수신하면, 저장 장치로 컨텐츠를 복호화하기 위한 CEK를 요청하는 단계; 저장 장치에 의해 RO로부터 추출되어 복호화된 CEK를 수신하는 단계; 및 CEK를 이용하여 컨텐츠를 복호화한 후 응용 프로그램으로 전달하는 단계를 더 포함한다.A separate RO management method according to the present invention includes the steps of: requesting a CEK for decrypting content to a storage device upon receiving a request for content protected by DRM from a specific application program; Receiving the decoded CEK extracted from the RO by the storage device; And decrypting the content using the CEK and transmitting the decrypted content to the application program.
본 발명에 의한 분리형 RO 관리 방법은, 분리 실행 기반의 컨텐츠가 실행되는 중에, 컨텐츠에서 분리되어 저장 장치에 실행 가능한 형태로 변환된 저장 장치용 코드 블록의 호출을 수신하는 단계; 저장 장치와 보안 채널을 연결하여, 보안 채널을 통해 호출을 저장 장치로 전달하는 단계; 호출된 저장 장치용 코드 블록의 실행이 완료된 후 저장 장치로부터 상기 보안 채널을 통해 실행 결과값을 수신하는 단계; 및 실행 결과값을 분리 실행 기반 컨텐츠로 반환하는 단계를 더 포함할 수 있다.A method of managing a detached RO according to the present invention includes: receiving a call of a code block for a storage device, which is separated from content and converted into a form executable on a storage device, during execution of content based on separation; Connecting a storage device with a secure channel, and passing the call over a secure channel to a storage device; Receiving an execution result value from the storage device via the secure channel after the execution of the code block for the called storage device is completed; And returning the execution result value to the separation execution-based content.
본 발명에 의한 분리형 RO 관리 방법은, 저장 장치로부터 사용 권한의 소멸에 따른 에러 코드를 수신하는 단계; 에러코드를 응용 프로그램으로 전달하는 단계; 사용자의 요청에 따른 RO의 재 구매를 위한 트리거를 획득하는 단계; 트리거를 이용하여 상기 서버로부터 RO를 다시 획득하는 단계; 및 획득한 RO를 저장 장치로 전달하여, 저장 장치에서 RO가 갱신되도록 하는 단계를 더 포함할 수 있다.A separate RO management method according to the present invention comprises the steps of: receiving an error code according to disappearance of a usage right from a storage; Transmitting an error code to an application program; Acquiring a trigger for re-purchasing an RO according to a user's request; Acquiring an RO from the server using a trigger; And transferring the obtained RO to a storage device so that the RO is updated in the storage device.
본 발명에 의한 분리형 RO 관리 기반의 호스트 단말 및 저장 장치와, 그의 분리형 RO 관리 방법에 있어서, 디지털 컨텐츠는, 코드 영역에서 선정된 하나 이상의 분리 실행 대상 코드 블록이 분리되고, 상기 분리 실행 대상 코드 블록이 상기 저장 장치에서 실행 가능하도록 변환된 저장 장치용 코드 블록을 연결하도록 변환된 분리 실행 기반의 실행형실행형 컨텐츠이다.In accordance with the present invention, there is provided a host terminal and a storage device based on a detachable RO management, and a detachable RO management method therefor, wherein the digital content is divided into at least one detachment object code block selected in the code area, Is executable executable content based on detached execution converted to connect a code block for a storage device converted to be executable in the storage device.
여기서, 분리 실행 대상 코드 블록은, 실행형 컨텐츠의 코드 영역에 존재하는 복수의 베이식 블록으로 이루어진 복수의 베이식 블록 그룹 중에서 디지털 컨텐츠의 중요 경로(critical path) 상에 있는 베이식 블록 그룹이며, 베이식 블록 그룹은 시작점(entry point)을 통한 제어 신호의 진입 및 상기 복수의 베이식 블록 간의 제어 신호의 이동은 허용하고, 상기 시작점을 제외한 상기 복수의 베이식 블록 내부로의 제어 신호의 진입이 없는 서로 관련된 상기 복수의 베이식 블록의 모임이고, 베이식 블록은 단일 입력(single input) 및 단일 출력(single output)의 속성과, 외부에서 내부로의 제어 신호의 진입을 허용하지 않는 속성을 갖는 코드 블록이다.Here, the detachment object code block is a basic block group on a critical path of digital contents among a plurality of basic block groups composed of a plurality of basic blocks existing in the code area of the executable contents, Blocks of the plurality of basic blocks which are not related to each other and which do not allow control signals to enter into the plurality of basic blocks except for the start point, Basic block is a block of code that has attributes of single input and single output and attributes that do not allow entry of control signals from outside to inside.
더하여, 본 발명은 상술한 분리형 RO 관리 방법을 수행하는 프로그램을 기록한 컴퓨터 판독 가능한 기록매체를 제공한다.In addition, the present invention provides a computer-readable recording medium on which a program for performing the above-described detached RO management method is recorded.
본 발명에 따르면 DRM 시스템에 있어서 RO에 대한 관리 기능의 일부가 저장 장치에 구비된 저장 장치용 DRM 에이전트에서 분리되므로, 사용자가 합법적으로 구매한 RO 관리의 보안성과 이동성을 증가시킬 수 있으며, 그 결과 사용자가 저장 장치용 DRM 에이전트를 구비한 저장 장치만을 구비함으로써, DRM 시스템에 접속이 어려운 어떠한 상황에서도 사용 권한을 갖는 디지털 컨텐츠나 서비스를 이용할 수 있다. 그 결과, 사용자에게 종래보다 높은 편의성을 제공할 수 있다.According to the present invention, since a part of the management function for the RO in the DRM system is separated from the DRM agent for the storage device provided in the storage device, security and mobility of the RO management that the user has legally purchased can be increased, By providing only the storage device having the DRM agent for the storage device, the user can use the digital contents or service having the usage right in any situation where access to the DRM system is difficult. As a result, it is possible to provide the user with higher convenience than the conventional one.
더하여, 본 발명은 RO를 통해 디지털 컨텐츠의 코드 영역에서 분리된 분리 실행 대상 코드 블록을 제공하고, 호스트 단말이 저장 장치와의 연동을 통해 상기 RO에 포함된 분리 실행 대상 코드 블록을 분리 실행하도록 함으로써, 디지털 컨텐츠의 불법 복제 및 사용을 원천적으로 차단할 수 있는 우수한 효과가 있다.In addition, the present invention provides a separation execution object code block separated from the code area of the digital contents through the RO, and allows the host terminal to separately execute the separation execution object code block included in the RO through interworking with the storage device , There is an excellent effect that it can prevent illegal copying and use of digital contents fundamentally.
도 1은 본 발명이 적용되는 분리형 RO 관리 기반 디지털 저작권 관리 시스템의 개략적인 구조를 보인 도면이다.
도 2는 본 발명이 적용되는 디지털 컨텐츠의 구조를 개략적으로 나타낸 도면이다.
도 3은 본 발명이 적용되는 디지털 저작권 관리 시스템에 있어서, 분리 실행 기반 디지털 컨텐츠의 구조를 개략적으로 나타낸 도면이다.
도 4는 본 발명이 적용되는 디지털 저작권 관리 시스템에 있어서, 분리형 RO 관리를 위한 호스트 단말 및 저장 장치의 구성을 나타낸 블록도이다.
도 5는 본 발명에 따른 ROAP 에이전트의 상세 구성을 나타낸 블록도이다.
도 6은 본 발명에 따른 호스트 단말용 DRM 에이전트의 상세 구성을 나타낸 블록도이다.
도 7은 본 발명에 따른 저장 장치용 DRM 에이전트의 상세 구성을 나타낸 블록도이다.
도 8은 본 발명의 분리형 RO 관리 방법에 있어서, 디지털 컨텐츠의 구매 과정을 나타낸 흐름도이다.
도 9는 본 발명의 분리형 RO 관리 방법에 있어서, 디지털 컨텐츠의 실행 과정을 나타낸 흐름도이다.
도 10은 본 발명의 분리형 RO 관리 방법에 있어서, 디지털 컨텐츠의 다른 실행 과정을 나타낸 흐름도이다.
도 11은 본 발명에 따른 분리형 RO 관리 방법에 있어서, 재 구매 과정을 설명하는 흐름도이다. FIG. 1 is a diagram showing a schematic structure of a separate type RO management-based digital rights management system to which the present invention is applied.
2 is a diagram schematically showing the structure of digital contents to which the present invention is applied.
FIG. 3 is a diagram schematically illustrating the structure of digital content based on separation execution in a digital rights management system to which the present invention is applied.
FIG. 4 is a block diagram illustrating a configuration of a host terminal and a storage device for separate RO management in a digital rights management system to which the present invention is applied.
5 is a block diagram showing a detailed configuration of a ROAP agent according to the present invention.
6 is a block diagram illustrating a detailed configuration of a DRM agent for a host terminal according to the present invention.
7 is a block diagram illustrating a detailed configuration of a DRM agent for a storage device according to the present invention.
8 is a flowchart illustrating a process of purchasing digital contents in the separate RO management method of the present invention.
9 is a flowchart illustrating a process of executing digital content in the separate RO management method of the present invention.
FIG. 10 is a flowchart illustrating another execution process of digital contents in the separate RO management method of the present invention.
11 is a flowchart illustrating a re-purchase process in the separate RO management method according to the present invention.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings. In the following description and the accompanying drawings, detailed description of well-known functions or constructions that may obscure the subject matter of the present invention will be omitted. It should be noted that the same constituent elements are denoted by the same reference numerals as possible throughout the drawings.
도 1은 본 발명이 적용되는 DRM 시스템의 전체 구조를 나타낸 블록도이다.1 is a block diagram showing the entire structure of a DRM system to which the present invention is applied.
도 1을 참조하면, 본 발명이 적용되는 DRM 시스템(10)은, 네트워크(11)를 매개로 연결된 컨텐츠 제공 서버(12) 및 호스트 단말(13)과, 상기 호스트 단말(13)에 유무선 인터페이스를 매개로 연결된 저장 장치(14)를 포함하여 구성된다.1, the
상기 DRM 시스템(10)에는 디지털 저작권 관리를 위하여, 분리형 RO 관리 방법 및 디지털 컨텐츠의 분리 실행 방법이 적용될 수 있다. 여기서, 분리형 RO 관리는, 두 개의 서로 다른 장치, 더 구체적으로는, 호스트 단말(13)과 저장 장치(14)가 상호 연동을 통해 RO를 관리하는 것을 의미한다. 이에 의하면, 저장 장치(14)에서 RO 관리를 위한 일부 처리를 수행할 수 있도록 함으로써, 사용자가 저장 장치(14)를 이용하여 어느 곳에서든 구입한 디지털 컨텐츠를 재생하거나, 다른 사람에게 권리를 선물할 수 있게 된다. 또한, '분리 실행'은 디지털 컨텐츠가 두 개의 서로 다른 장치, 더 구체적으로는 호스트 단말(13)과 저장 장치(14)의 연동을 통해 실행되는 것을 의미한다. 이에 의하면, 디지털 컨텐츠에 대한 크래킹을 방지하여, 불법 복제를 원천적으로 차단할 수 있다.In the
먼저, 분리 실행을 구현하기 위해서, 호스트 단말(13)에는 코드 영역에서 선택된 코드 블록(이하 분리 실행 대상 코드 블록이라 함)이 제거된 실행형실행형 컨텐츠(15a)가 저장되고, 저장 장치(14)에는 분리 실행 대상 코드 블록이 저장 장치(14)에서 실행 가능하도록 변환된 저장 장치용 코드 블록(15b)이 저장된다. 상기 상태에서 분리 실행은, 호스트 단말(13)이 실행형실행형 컨텐츠(15a)에서 제거된 부분(분리 실행 대상 코드 블록)에 대한 결과값을 저장 장치(14)에 요청하여 반환 받는 형태로 이루어진다. 따라서, 분리 실행 기술이 적용되는 실행형 컨텐츠는, 실행 파일을 포함하는 컨텐츠를 의미하는 것으로서, 예를 들어, 게임 프로그램,응용 프로그램, 및 소프트웨어 등을 포함한다.First, in order to implement separate execution, executable
다음으로, 분리형 RO 관리는, 호스트 단말(13)에 연결된 저장 장치(14)에서, RO의 설치, RO의 정보 반환, 및 RO의 삭제 기능을 포함하는 RO 관리 기능을 수행하도록 하는 것이며, 이에 의하면, 상기 저장 장치(14)를 이용하여 다른 장소에서도 RO에서 권한을 부여하는 디지털 컨텐츠의 사용이 가능해진다.Next, the separate RO management is performed in the
분리형 RO 관리 방법은, 실행형 컨텐츠 이외에도, 문서나, 이미지 파일, 오디오 파일 등을 포함하는 어떠한 형태의 디지털 컨턴츠에도 적용할 수 있다. 이하에서, 분리 실행 기반의 디지털 컨텐츠를 예로 들어 설명한다.The detachable RO management method can be applied to any type of digital contents including documents, image files, audio files and the like in addition to executable contents. Hereinafter, digital content based on separation execution will be described as an example.
상기에서, 분리 실행을 위한 저장 장치용 코드 블록(15b)는 RO(16)에 포함될 수 있다.In the above, the
도 1에서, 네트워크(11)는 컨텐츠 제공 서버(12)와 호스트 단말(13) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신을 수행한다. 이를 위하여, 네트워크(11)는 IP를 통하여 대용량 데이터의 송수신 서비스 및 끊김 없는 데이터 서비스를 제공하는 IP망으로, IP를 기반으로 서로 다른 망을 통합한 IP망 구조인 ALL-IP망일 수 있다. 또한 네트워크(11)는 유선통신망, 이동통신망, WiBro(Wireless Broadband)망, HSDPA(High-Speed Downlink Packet Access)망, 위성통신망 또는 기타 널리 공지되었거나 향후 개발될 유무선 또는 이들의 결합망을 포함한다.1, the
컨텐츠 제공 서버(12)는 분리 실행이 가능한 실행형 컨텐츠(15a) 및 저장 장치용 코드 블록(15b)을 저장하고 있으며, 더하여 디지털 컨텐츠에 대한 권한을 명시하는 RO를 생성하여 관리하며, 이들을 고객의 요청에 따라서 호스트 단말(13)로 제공한다. 여기서, 컨텐츠 제공 서버(12)는 디지털 컨텐츠를 분리 실행기반 실행형 컨텐츠(15a)와 저장 장치용 코드 블록(15b)으로 변환하는 기능을 더 수행할 수 있다. 더하여, 컨텐츠 제공 서버(12)는 DRM에 의해 보호되는 디지털 컨텐츠의 사용 권한을 명시하는 RO를 발급하고 관리하기 위한 RI(Right Issuer)를 포함할 수 있다. 여기서는, 컨텐츠 제공 서버(12)를 통해 모든 서비스가 이루어지는 것으로 표현 되어 있으나, 실제로는, 각각의 기능을 수행하는 복수의 서버로 이루어질 수 있다.The
호스트 단말(13)은 디지털 컨텐츠를 실행할 수 있는 독립된 CPU를 가진 컴퓨팅 장치, 예컨대 PC, 노트북, 워크스테이션, PDA 등을 통칭한다. 호스트 단말(13)은 다수의 사용자에 의해 접근이 자유로운 공용 컴퓨터를 포함한다. 호스트 단말(13)에는 실행형 컨텐츠(15a)가 설치된다. 그리고, 호스트 단말(13)에 유무선 인터페이스를 통해 저장 장치(14)가 연결되면, 호스트 단말(13)은 저장 장치(14)와 연동하여 실행형 컨텐츠(15a)를 실행한다. 더하여, 호스트 단말(13)은 사용자의 요청에 따라서 컨텐츠 제공 서버(12)로 디지털 컨텐츠의 구매를 요청하고, 지불 절차를 수행한 후, 컨텐츠 제공 서버(12)로부터 실행형 컨텐츠(15a)와 저장 장치용 코드 블록(15b)을 다운받아, 실행형 컨텐츠(15a)는 자신의 메모리에 저장하고, 저장 장치용 코드 블록(15b)은 저장 장치(14)로 전달한다. 여기서, 컨텐츠 제공 서버(12)는 적법한 사용자의 호스트 단말(13)로 실행형 컨텐츠(15a) 및 저장 장치용 코드 블록(15b)과 함께 RO(16)를 제공한다. RO(16)는 호스트 단말(13)을 통해 저장 장치(14)로 전달되어, 저장 장치(16)에 설치된다. 이때, 저장 장치용 코드 블록(15b)는 RO(16)에 포함되어 제공될 수 있다. 다른 예에서, 저장 장치용 코드 블록(15b)은 애플릿으로 구현될 수 도 있다.The
호스트 단말(13)과 저장 장치(14)를 연결하는 유무선 인터페이스는 USB, USB2, Serial/Parallel Port, Ethernet, TCP/IP, 통신 케이블 등을 이용한 유선 통신 방식과, 근거리 무선통신방식으로 구현될 수 있다. 근거리 무선 통신 방식으로는 블루투스(Bluetooth), 지그비(zigbee), 루비(Rubee), 적외선데이터통신(IrDA; Infrared Data Association), 초광대역방식(UWB; Ultra Wide Broadband) 등이 사용될 수 있다. 이외에도 향후 개발될 다양한 기술이 적용될 수 있다.The wired / wireless interface connecting the
저장 장치(14)는 유무선 인터페이스를 통해 호스트 단말(13)에 연결되며, 호스트 단말(13)을 통해 저장 장치용 코드 블록(15b) 및 RO(16)를 전달받아 저장하고 관리한다. 상기 저장 장치용 코드 블록(15b) 및 RO(16)를 안전하게 보관하기 위하여, 저장 장치(14)는 보안 기능을 구비하는 것이 바람직하다. 그리고 저장 장치(14)는 호스트 단말(13)과 연동하여 분리 실행 및 RO 관리를 수행하기 위하여, 프로세서를 구비하는 것이 바람직하다. 이에 의하여, 저장 장치(14)는 상기 호스트 단말(13)의 요청에 따라 저장 장치용 코드 블록(14)을 실행하여 그 결과값을 호스트 단말(13)로 반환하거나, RO의 정보를 반환하거나, RO의 설치 및 삭제를 수행하고, 그 결과를 반환한다.The
상술한 DRM 시스템은 다음과 같이 동작할 수 있다. 컨텐츠 제공자는 컨텐츠 제공 서버(12)를 통하여, 적법한 사용자의 호스트 단말(13)에 실행형 컨텐츠(15a)를 제공하고, 저장 장치(14)에 저장 장치용 코드 블록(15b)를 포함하는 RO(16)를 설치한다. 이후, 적법한 사용자가, 저장 장치(14)를 호스트 단말(13)에 연결한 상태에서, 호스트 단말(13)에 설치된 실행형 컨텐츠(15a)의 실행을 지시하면, 저장 장치(14)로부터 RO의 정보가 호스트 단말(13)로 제공되고, 호스트 단말(13)은 RO의 정보를 확인하여 권한이 있으면 실행형 컨텐츠(15a)를 실행시킨다. 이때, 호스트 단말(13)과 저장 장치(14)의 연동을 통해 실행형 컨텐츠(15a) 및 저장 장치용 코드블록(15b)의 분리실행이 수행되고, 이러한 분리 실행에 의하여 실행형 컨텐츠(15a)가 정상적으로 동작한다.The DRM system described above can operate as follows. The content provider provides the
이러한 DRM 시스템에 적용되는 디지털 컨텐츠의 분리 실행 방법을 도 2 및 도 3을 참조하여 설명한다.A method of separating and executing digital contents applied to the DRM system will be described with reference to FIGS. 2 and 3. FIG.
도 2는 본 발명이 적용되는 디지털 컨텐츠의 데이터 구조를 개략적으로 나타낸 도면으로서, 이를 참조하면, 디지털 컨텐츠(20)는, 복수 개의 파일, 예컨대, 실행 파일, 운영체제에서 제공하는 API(application program interface), 개발사에서 제공하는 API 또는 DLL(dynamic linking library)과 같은 파일을 포함한다. 이와 같은 디지털 컨텐츠(20)는, 코드 영역(21)과 데이터 영역(23)을 포함한다. 실제로 코드 영역(21)과 데이터 영역(23)은 서로 섞여 있다. 코드 영역(21)은 복수의 베이식 블록(25; basic block)으로 이루어진 복수의 베이식 블록 그룹(27)을 포함한다.Referring to FIG. 2, the
여기서, 베이식 블록(25)은 단일 입력(single input) 및 단일 출력(single output)의 속성을 갖는 명령어의 열(sequence of instruction)을 의미하는 것으로서, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 코드 블록으로 정의할 수 있다. 즉 베이식 블록(25)은 시작부터 끝까지 한번에 실행되는 연속적인 문장(코드의 모임)을 의미하며, 중간에 흐름 제어로 인해 실행이 중지되지 않는 문장 그룹이다.Here, the
도 3은 본 발명에 따른 분리 실행 기반 디지털 컨텐츠의 구조를 개략적으로 나타낸 도면이다.FIG. 3 is a diagram schematically illustrating the structure of digital content based on separation execution according to the present invention.
도 3을 참조하면, 본 발명에 따른 분리 실행 기반 디지털 컨텐츠는, 실행형 컨텐츠(30)와, 하나 이상의 분리 실행 대상 코드 블록(37)으로 이루어진다.Referring to FIG. 3, the separation-based digital contents according to the present invention includes an
실행형 컨텐츠(30)는 하나 이상의 분리 실행 대상 코드 블록(37)을 대신하여 하나 이상의 스터브 코드(39)가 삽입된 코드 영역(31)과, 데이터 영역(33)을 포함한다. 이때 스터브 코드(39)는 추출된 분리 실행 대상 코드 블록(37)을 대신하여 삽입되는 코드로서, 실행형 컨텐츠(30)와, 분리 실행 대상 코드 블록(37)을 연결한다. 더 구체적으로, 스터브 코드(39)는 실행형 컨텐츠(30)에 대한 실행을 수행할 때, 분리 실행 대상 코드 블록(37)을 호출하고, 상기 분리 실행 대상 코드 블록(37)의 결과값을 반환 받는다.The
하나 이상의 분리 실행 대상 코드 블록(37)은, 도 2에서 설명한 바와 같이, 원래의 디지털 컨텐츠에 대한 동적 프로파일링 및 정적 분석을 통하여 코드 영역(21)에서 추출된 복수의 베이식 블록 그룹(27) 중의 하나로서, 복수의 베이식 블록(35)을 포함한다. 더 바람직하게, 상기 분리 실행 대상 코드 블록(37)은 시작점(entry point)을 통한 제어 신호의 진입 및 내부에 포함된 베이식 블록(35) 간의 제어 신호의 이동은 허용하지만, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹이다.As shown in Fig. 2, the at least one separation execution
이와 다르게, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹을 분리 실행 대상 코드 블록(37)으로 선정할 경우, 해당 분리 실행 대상 코드 블록(37)을 추출한 후 삽입되는 스터브 코드(39)에 시작 부분이 아닌 중간으로 제어 신호가 진입할 수 있으며, 이 경우 스터브 코드(39)는 해당 제어 신호에 대한 처리를 수행하지 못하며, 결국, 서비스 컨텐츠(30)의 실행이 중지되거나 에러가 발생할 수 있다.Alternatively, when the basic block group in which the control signal enters the
분리 실행 대상 코드 블록(37)을 추출하는 방법은 다음과 같다.A method of extracting the separation execution
먼저, 도 2에 도시된 분리 실행할 디지털 컨텐츠(20)의 코드 영역(21)에 대한 동적 프로파일링 및 정적 분석을 통하여 복수의 베이식 블록 그룹(27)을 선정한다. 상기 복수의 베이식 블록 그룹(27)의 선정은, 상기 분리 실행할 디지털 컨텐츠(20)를 실행하여, 런-타임 동안 코드 영역(21)에 대한 기초 정보를 수집하고, 수집한 기초 정보를 이용하여 분석 범위를 확장한 동적 프로파일링을 통해 상기 코드 영역(21)에 대한 정적 분석을 수행함에 의해 이루어진다. 상기 기초 정보는, 브랜치 어드레스, 점프 어드레스, 콜 어드레스 및 RET의 간접 주소 중에 적어도 하나의 간접 주소이다. 이러한 기초 정보 중에서 디지털 컨텐츠(20)의 공개된 API와 관련된 기초 정보를 제거하고, 공개된 API와 관련된 기초 정보가 제거된 기초 정보를 기반으로 디지털 컨텐츠(20)의 코드 영역(21)에 대한 정적 분석을 수행함으로써, 분석 범위를 확장할 수 있다. 상기 수집한 기초 정보 중 간접 주소를 컨트롤 플로우 상에 대입함으로써 분석 범위를 확장할 수 있으며, 그 결과 단독으로 동적 프로파일링 또는 정적 분석을 수행하는 것에 비하여 더 많은 베이식 블록 그룹(27)을 선정할 수 있다.First, a plurality of
더하여, 선정된 복수의 베이식 블록 그룹(27) 중에서, 베이식 블록 그룹(27)의 내부로 진입하는 제어 신호가 발생하면, 제어 신호의 명령어 주소를 기준으로 해당 베이식 블록 그룹(27)을 분할하여 재정의한다. 이때 재정의 대상이 되는 베이식 블록 그룹(27)은 제어 신호의 명령어 주소를 기준으로 이전의 제1 베이식 블록 그룹과, 제어 신호의 명령어 주소를 포함하는 이후의 제2 베이식 블록 그룹으로 재정의한다.In addition, when a control signal for entering the inside of the
이와 같은 재정의 과정을 반복함으로써, 최종적으로 단일 입력 및 단일 출력의 속성과, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 복수의 베이식 블록(25)을 포함하는 베이식 블록 그룹(27)을 정확하게 정의할 수 있다.By repeating this redefinition process, a
이어서 복수의 베이식 블록 그룹(27) 중에서 하나 이상의 분리 실행 대상 코드 블록(37)을 선정한다. 그리고 분리 실행 대상 코드 블록(37)을 코드 영역(31)에서 분리하고, 상기 분리 실행 대상 코드 블록(37) 대신에 스터브 코드(39)를 삽입하여, 도 3에 도시한 실행형 컨텐츠(30)를 생성한다.Subsequently, one or more code blocks 37 to be separated from among the plurality of
이때 분리 실행 대상 코드 블록(37)은 복수의 베이식 블록 그룹(27) 중에서 디지털 컨텐츠(20)의 중요 경로(Critical path) 상에 있는 베이식 블록 그룹을 선택하는 것이 바람직하다. 또한, 복수의 베이식 블록 그룹(27) 중에서 콜 횟수, 크기 및 실행 시간을 함께 고려하여 분리 실행 대상 코드 블록(37)을 선출할 수 있다. 예컨대 콜 횟수가 많고, 크기가 작고, 실행 시간이 짧은 베이식 블록 그룹(27)을 분리 실행 대상 코드 블록(37)으로 선출한다.At this time, the separation execution
이에 따르면, 디지털 컨텐츠에 있어서, 중요 경로 상에 존재하고, 콜 횟수가 많고 크기가 작고, 실행 시간이 짧은 베이식 블록 그룹을 보안을 위한 분리 실행 대상 코드 블록으로 선정함으로써, 분리 실행에 의한 디지털 컨텐츠의 복제 방지와 관련된 보안 성능을 향상시킬 수 있다.According to this, in the digital content, a basic block group existing on an important path and having a large number of calls, a small size, and a short execution time is selected as a code block to be separated for security, The security performance associated with copy protection can be improved.
또한, 동적 프로파일링(dynamic profiling)을 통하여 수집한 코드 영역의 기초 정보를 이용한 정적 분석(static analysis)을 수행하여 베이식 블록 그룹을 추출함으로써, 디지털 컨텐츠의 코드 영역의 분석 범위를 확장하여 베이식 블록 그룹의 추출율을 향상시킬 수 있다.Further, by performing static analysis using the basic information of the code area collected through dynamic profiling to extract the basic block group, the analysis range of the code area of the digital contents is extended, Can be improved.
또한, 한 번 정의된 베이식 블록 그룹에 대해서 재정의할 수 있는 유연성을 제공함으로써, 분리 실행 대상 코드 블록의 후보가 될 수 있는 단일 입력(single input) 및 단일 출력(single output)을 갖는 베이식 블록 그룹을 생성할 수 있고, 시작점(entry point)을 제외한 내부로의 제어 신호의 진입이 있는 부적합한 베이식 블록 그룹이 분리 실행 대상 코드 블록으로 선출되는 것을 억제할 수 있으며, 그 결과, 분리 실행 대상 코드 블록을 분리하여 실행하는 중의 오류 발생을 억제할 수 있다.In addition, by providing flexibility to redefine a once-defined basic block group, a basic block group having a single input and a single output, which can be candidate candidates for a separate code block, It is possible to inhibit selection of an unsuitable basic block group having an entry of the control signal into the inside thereof excluding the entry point as a code block to be detached. As a result, It is possible to suppress the occurrence of an error during execution.
다시 도 1을 참조하면, 컨텐츠 제공 서버(12)는 분리 실행 기반 디지털 컨텐츠를 제공하는데 있어서, 상술한 방법에 의하여 분리 실행 대상 코드 블록(37)을 선택하여, 상기 분리 실행 대상 코드 블록(37)을 분리하여, 저장 장치용 코드 블록(15b)으로 변환한다. 그리고, 저장 장치용 코드 블록(15b)이 상호 연동하여 실행될 수 있도록, 실행형 컨텐츠(15a)를 변환한다. 또한 실행형 컨텐츠(15a)에 대한 권한을 명시한 RO를 생성한다. 호스트 단말(13)을 통해 사용자가 지불 처리를 수행하고 디지털 컨텐츠를 구매하면, 상기 컨텐츠 제공 서버(12)는 실행형 컨텐츠(15a)와 저장 장치용 코드블록(15b)을 포함하는 RO(16)를 호스트 단말(13)로 제공한다. 호스트 단말(13)은 서비스 컨텐츠(15a)를 내부 메모리에 저장하거나 설치하고, 저장 장치용 코드 블록(15b)을 포함하는 RO(16)을 저장 장치(14)로 전달한다. 저장 장치(14)는 RO(16)를 설치하고, 호스트 단말(13)을 통한 사용자의 요청에 따라서 RO의 정보를 반환하거나 삭제한다. 특히, 실행형 컨텐츠(15a)의 실행 중에는 저장 장치용 코드블록(15b)를 호출하면, 저장 장치(14)에서 RO(16)를 확인하여 권한이 있는 경우, 저장 장치용 코드블록(15b)을 로딩하여 실행한 후, 그 결과값을 호스트 단말(13)로 반환한다. 호스트 단말(13)은 반환된 결과값을 이용하여 실행형 컨텐츠(15a)를 정상적으로 실행시킨다.1, the
도 4는 상술한 DRM 시스템에 있어서, 본 발명에 따른 분리형 RO 관리를 위한 호스트 단말과 저장 장치의 구성을 나타낸 블록도이다. FIG. 4 is a block diagram illustrating a configuration of a host terminal and a storage device for the separate RO management according to the present invention in the DRM system described above.
도 4를 참조하면, 분리형 RO 관리를 위하여, 호스트 단말(13)은 ROAP 에이전트(100)와, 호스트 단말용 DRM 에이전트(200)를 포함하고, 저장 장치(14)는 저장 장치용 DRM 에이전트(300)와 파일 시스템(400)을 포함한다.4, the
ROAP 에이전트(100)는 디지털 컨텐츠의 사용 권한인 RO를 설치하기 위하여 컨텐츠 제공 서버(12)와 통신을 수행하는 모듈이다. 더 구체적으로, 미디어 플레이어와 같은 어플리케이션이 디지털 컨텐츠를 사용하고자 호스트 단말용 DRM 에이전트(200)에 복호화를 요청하였으나 사용 권한이 없는 경우, ROAP 에이전트(100)로 RO를 요청하게 된다. 이때, ROAP 에이전트(100)는 해당 RO의 Download Descriptor(DD)를 처리하고, ROAP 트리거를 사용하여 호스트 단말용 DRM 에이전트(200)와 컨텐츠 제공 서버(12) 간에 ROAP 메시지를 교환하도록 해준다. 그리고, ROAP 에이전트(100)는 ROAP 통신이 정상적으로 수행되거나 비정상적으로 수행되면 Install Notification 메시지를 만들어 그 수행 결과를 컨텐츠 제공 서버(12)로 전송한다.The
호스트 단말용 DRM 에이전트(200)는 호스트 단말(13)의 임의의 어플리케이션이 DRM 패키지 컨텐츠를 사용할 수 있도록 지원한다. 이를 위해 제공되는 기능으로는 RO의 획득 및 설치, 삭제 등과 같이 권한과 관련된 기능과, CEK 획득, DCF 열기, 읽기, 닫기, 이동 등과 같은 컨텐츠 재생과 관련된 기능이 포함된다. 그리고 호스트 단말용 DRM 에이전트(200)는, ROAP 에이전트(100)를 통해 컨텐츠 제공 서버(12)와 ROAP 메시지를 교환하고, ROAP 메시지를 처리하여 저장 장치용 DRM 에이전트(300)를 통해 RO를 설치 및 삭제하거나, 권한 정보를 제공하고, 어플리케이션의 요청에 따라서, 저장 장치용 DRM 에이전트(300)로부터 CEK를 제공받아 디지털 컨텐츠의 복호화를 수행하고, 디지털 컨텐츠의 분리 실행을 위하여 저장 장치용 DRM 에이전트(300)를 통해 저장 장치(14)로 보안 RPC(Remote Procedure Call)을 요청한다.The
저장 장치용 DRM 에이전트(300)는 호스트 단말(13)과 연동하여 디지털 컨텐츠의 RO(Rights Object)에 대한 실질적인 관리 기능을 수행한다. 여기서 실질적인 관리 기능은, RO의 설치, 정보 반환, 삭제를 포함한다.The
저장 장치(13)의 파일 시스템(400)은 저장 장치용 DRM 에이전트(300)에 의해 설치되는 복수의 RO를 저장한다. 더하여, 복수의 저장장치용 코드블록(15b)가 더 저장될 수 있다.The
도 5는 ROAP 에이전트(100)의 상세 구성을 보인 블록도이다.5 is a block diagram showing a detailed configuration of the
도 5를 참조하면, 호스트 단말(13)에 구비된 ROAP 에이전트(100)는, 소켓(110)과, ROAP 프로세서(120)와, DD 파서(130)와, 트리거 DB(140)를 포함한다.5, the
소켓(110)은 컨텐츠 제공 서버(12)와의 ROAP 통신을 수행한다. 더 구체적으로, 컨텐츠 제공 서버(12)로부터 ROAP 메시지를 수신하여 ROAP 프로세서(120) 및 호스트 단말용 DRM 에이전트(200)로 전달하고, ROAP 프로세서(120) 및 호스트 단말용 DRM 에이전트(200)로부터 ROAP 메시지를 수신하여 컨텐츠 제공 서버(12)로 전달하며, Parse HTTP Message, Read HTTP Message, Send HTTP Message의 기능을 수행한다.The
ROAP 프로세서(120)는 ROAP 에이전트(100)의 전체적인 수행을 관리하는 모듈로서, 호스트 단말(13)에 설치된 다른 어플리케이션으로부터 RO 획득을 요청 받고, DRM+ Lib를 사용하여 상기 요청에 따른 처리를 수행하고, 호스트 단말(13)의 화면으로 실행 상태를 알리는 UI(User Interface)를 표시한다. 이와 관련하여 ROAP 프로세서(120)는 Handle ROAP 기능을 포함한다.The
DD 파서(130)는 ROAP 트리거에 대한 DD를 해석한다. 더 구체적으로 DD 파서(130)는 별도의 XML 파서 Lib를 사용하여 DD를 파싱하여 CID(Content ID)나 Install Notification할 URI 등을 DD 구조체에 보관한다.The
트리거 DB(140)는 ROAP 통신이 실패했을 때의 ROAP 트리거를 보관한다. 더하여, 기 설정된 정책에 따라서 일정 기한 후에 저장된 ROAP 트리거를 정리한다.The
상기 소켓(110)과, ROAP 프로세서(120)와, DD 파서(130)를 통하여, ROAP 에이전트(100)는 RO를 설치하기 위해 컨텐츠 제공 서버(12)와 ROAP 통신을 수행하여, RO 구매를 요청하고, 이에 따라 제공되는 RO의 DD를 처리하고 ROAP 트리거를 사용하여 호스트 단말용 DRM 에이전트와 컨텐츠 제공 서버(12) 간에 ROAP 메시지를 교환하도록 한다.The
다음으로 도 6은 호스트 단말(13)에 구비되는 호스트 단말용 DRM 에이전트(200)의 상세 구성을 나타낸 블록도이다.6 is a block diagram showing a detailed configuration of a
도 6을 참조하면, 호스트 단말용 DRM 에이전트(200)는, DRM 에이전트 제어 모듈(210)과, ROAP 엔진(220)과, DCF 매니저(230)와, RO 매니저(240)와, 저장 장치 인터액션 매니저(250)를 포함한다.6, the
DRM 에이전트 제어 모듈(210)은, 호스트 단말용 DRM 에이전트(200)의 모든 동작을 제어하고 관리한다. The DRM
ROAP 엔진(220)은 OMA DRM 규격서에 정의된 5가지 ROAP 프로토콜의 처리를 수행한다. ROAP 프로토콜은 RI 등록, 디바이스/도메인 RO 획득, 도메인 가입 및 탈퇴를 가능하게 해 준다. ROAP 엔진(220)은 3 개의 하위 모듈, 즉, ROAP 프로세서(221)와 ROAP 제너레이터(222)와 ROAP 파서(223)을 포함한다.The
ROAP 프로세서(221)는 OMA DRM 규격서에 명시된 ROAP 프로토콜의 동작을 수행하고, ROAP 프로토콜의 동작 과정에서 발생하는 예외 및 오류 처리를 수행한다. ROAP 프로세서(221)는 Initialize ROAP, Handle ROAP, Finalize ROAP 기능을 구비한다. ROAP 제너레이터(222)는 ROAP 프로세서(221)의 제어에 따라서 XML 매니저를 이용하여, 컨텐츠 제공 서버(12)에게 전달할 ROAP PDU - Device Hello, Registration Request, RO Request, Join Domain Request, Leave Domain Request - 를 생성한다. ROAP 파서는 XML 매니저를 이용하여 ROAP 트리거나 RI가 발급한 ROAP PDU - TriggerRI Hello, Registration Response, RO Response, Join Domain Response, Leave Domain Response - 를 파싱하여 ROAP 프로세서(221)에 제공한다.The
DCF 매니저(230)는 OMA DRM 표준에 부합되는 DCF를 관리하는 것으로서, DCF 인터프리터(Interpreter)(231)와 DCF 렌더러(Renderer)(232)를 포함한다. DCF 인터프리터(231)는 OMA의 DRM 표준 규격을 따른 DCF을 분석 및 해석한다. 이때, DCF 인터프리터(231)에 의해 분석 및 해석은 박스(Box) 객체 단위로 이루어지는데, 일괄적으로 전체 DCF를 해석하는 기능과 특정 Box 객체만을 선택하여 해석하는 기능이 제공된다. DCF 인터프리터(231)는, Parser Box, Get Box, Find Box의 기능을 포함한다. 또한, DCF 인터프리터(231)는 DCF를 분석 및 해석하여 어플리케이션에게 제공하기에 앞서 필요한 사항을 다른 모듈을 통하여 검사한다. DCF 렌더러(232)는 DCF에 대한 부분 복호화와 전체 복호화 기능을 제공한다.The
RO 매니저(240)는 RO를 관리하는 기능을 제공하는데, 더 구체적으로, 단일 모듈로 구성되어 RO를 양도하기 위해 컨텐츠 제공 서버(12) 및 저장 장치(14)와 연동하여 동작하는 기능을 제공한다. 특히, RO 매니저(240)는 Upload RO, Delete RO 등의 RO 관리 기능이 포함된다. The
저장 장치 인터액션(Interaction) 매니저(240)는 호스트 단말용 DRM 에이전트(200)의 기능 보완을 위하여, 저장 장치용 DRM 에이전트(300)와 연동하는 기능을 제공한다. 더 구체적으로, 저장 장치 인터액션 매니저(240)는 단일 모듈로 구성되어 있으며, RO 및 인증서에 관련한 연동 기능을 수행하는데, 예를 들어, Install RO, Set RICTX, Get RITCX, Get CEK, Get ROID List, Get ROID List by CID, Get Signature, Get Rights Info, Notify RO를 수행한다.The storage
이상에서 설명한 DRM 에이전트 제어 모듈(210)과 ROAP 엔진(220)과 DCF 매니저(230)와 RO 매니저(240)와 저장 장치 인터액션 매니저(250)의 조합에 의하여, 본 발명에 의한 호스트 단말용 DRM 에이전트(200)는, 호스트 단말(13)의 임의 어플리케이션이 디지털 컨텐츠를 사용할 수 있도록 지원한다.By combining the DRM
다음으로, 저장 장치용 DRM 에이전트(300)에 대하여 설명한다.Next, the
도 7을 참조하여, 저장 장치용 DRM 에이전트(300)는 RO 매니저(310)와 RI 컨텍스트 매니저(320)와 PKI 매니저(330)를 포함한다.Referring to FIG. 7,
저장 장치용 DRM 에이전트(300)의 RO 매니저(310)는 호스트 단말용 DRM 에이전트(200)가 획득한 RO를 실질적으로 관리한다. 따라서, 호스트 단말용 DRM 에이전트(200)가 획득한 RO가 이용 가능한 상태가 되기 위해서는 반드시 저장 장치용 DRM 에이전트(300)의 RO 매니저(310)가 있어야 한다. 더 구체적으로, RO 매니저(310)는 호스트 단말용 DRM 에이전트(200)로부터 획득한 RO를 전달받아, RO를 해석하여 설치하고, 설치된 RO의 정보를 호스트 단말용 DRM 에이전트(200)로 반환하거나 삭제하는 등의 관리 기능을 수행한다. 이러한 RO 매니저(310)는, 저장 장치(14)의 파일 시스템(400)에 RO를 설치하거나 설치된 RO를 제거하는 RO 인스톨 기능(RO Install), ROAP를 통해 전달받은 RO를 파싱하는 RO 파싱 기능(RO Parser), 파일 시스템(400)에 설치된 RO의 정보를 호스트 단말용 DRM 에이전틀(200)로 반환하는 RO 정보 반환 기능(RO Info), 소모된 권한을 RO에 갱신시키는 RO 갱신 기능(RO Update)을 포함한다.The
다음으로, RI 컨텍스트 매니저(320)는, RO를 획득하는데 필요한 정보인 RI 컨텍스트(Right Issuer Context)를 관리하는 것으로서, RI 컨텍스트를 파일 시스템(400)의 소정 영역에 저장하여 보관하거나, 정보를 가져오거나, 삭제한다. 이를 위하여, RI 컨텍스트 매니저(320)는, RI 컨텍스트를 저장하는 기능(setRICTX)과 RI 컨텍스트를 가져오는 기능(getRICTX)을 포함한다.The
마지막으로, PKI 매니저(330)는 RO를 발급하는 RI(Right Issuer)와 저장 장치용 DRM 에이전트(300) 사이의 상호 인증을 위해서 인증서 기반의 인증 및 관련 기능을 제공한다. 이러한 PKI 매니저(330)를 통해 파일 시스템(400)에 설치된 RO에서 CEK를 추출하는 기능 등을 수행할 수 있다. PKI 매니저(330)는 3개의 하위 모듈, CEK 매니저(331)와, 인증 매니저(332)와, 시그니처 매니저(333)를 포함한다. CEK 매니저(331)는 RO에 포함되어 있는 암호화 되어있는 CEK를 복호화하여 CEK를 추출한다. 인증 매니저(332)는 저장 장치(14)의 파일 시스템(400)에 저장되어 있는 디바이스 인증서를 가져와 반환하는 기능을 제공한다. 시그니처 매니저(333)는 컨텐츠 제공 서버(12)의 RI에 전달할 ROAP 메시지에 서명하는 기능을 제공한다.Finally, the
상술한 바와 같이 구성된 저장 장치용 DRM 에이전트(300)는, RO 매니저(310)를 통해서 획득한 RO를 해석하여 파일 시스템(400)에 설치하고, 호스트 단말용 DRM 에이전트(200)의 DRM 에이전트 제어 모듈(210)로부터 전달되는 RI 컨텍스트를 파일 시스템(400)에 저장하고, 상기 DRM 에이전트 제어모듈(210)의 요청에 따라서 저장된 RI 컨텍스트를 가져와 반환한다. 더하여, PKI 매니저(330)를 통해서, RO에서 CEK를 추출하여 호스트 단말용 DRM 에이전트(200)에게 제공하고, 호스트 단말용 DRM 에이전트(200)에서 컨텐츠 제공 서버(12)의 RI에게 보낼 ROAP 메시지에 서명을 수행한다.The
이상에 설명한 바에 따르면, 본 발명이 적용된 DRM 시스템에서는, RO의 관리 기능이 저장 장치(14)로 일부 분리되어 이루어짐으로써, 사용자가 합법적으로 구매한 RO 관리의 보안성과 이동성을 증가시킬 수 있으며, 그 결과 DRM으로 보호된 디지털 컨텐츠를 구매하여 사용하는 사용자의 편의성을 향상시킬 수 있다.As described above, in the DRM system according to the present invention, the management function of the RO is partly separated into the
다음으로 상술한 호스트 단말용 DRM 에이전트(300)와 저장 장치용 DRM 에이전트(400)에 의한 분리형 RO 관리 기반 DRM 서비스 방법을 설명한다.Next, a separate RO management DRM service method by the
도 8은 분리형 RO 관리 방법에 있어서, 디지털 컨텐츠의 전달 과정을 나타낸 도면이다.FIG. 8 is a diagram illustrating a process of delivering digital contents in a separate RO management method.
도 8을 참조하면, 사용자가 호스트 단말(13)의 웹 브라우저(131)를 실행시켜 컨텐츠 제공 서버(12)에서 제공하는 웹사이트에 접속한 후, 원하는 디지털 컨텐츠를 선택하면, 상기 웹 브라우저(131)는 컨텐츠 제공 서버(12)로 선택한 디지털 컨텐츠의 다운로드를 위한 DD(Download Descriptor)를 요청한다(S81). 상기 DD 요청에 앞서, 디지털 컨텐츠에 대한 지불 절차가 더 이루어질 수 있다.8, when the user executes the
상기 요청에 대한 응답으로 컨텐츠 제공 서버(12)로부터 선택한 디지털 컨텐츠에 대한 DD를 수신하면, 웹 브라우저(131)는 상기 DD를 다운로드 에이전트(132)로 전달하고(S82), 다운로드 에이전트(132)는 상기 DD를 이용하여 컨텐츠 제공 서버(12)에 선택한 디지털 컨텐츠의 DCF를 요청하여 다운로드 받아 호스트 단말(13)의 파일 시스템(133)에 저장한다(S83).Upon receiving the DD for the selected digital content from the
한편, 상기 웹 브라우저(131)는 상기 선택한 디지털 컨텐츠에 대한 사용권한을 획득하는데 필요한 트리거를 컨텐츠 제공 서버(12)에 요청하고(S84), 상기 요청에 대한 응답으로 트리거가 수신되면, 수신한 트리거와 앞서 수신한 DD를 함께 ROAP 에이전트(100)로 전달한다(S85).Meanwhile, the
이어서 ROAP 에이전트(100)가 전달받은 트리거를 이용하여 컨텐츠 제공 서버(12)로 선택한 디지털 컨텐츠에 대한 RO를 요청하고(S86), 이에 대한 응답이 수신되면, 수신된 RO를 호스트 단말용 DRM 에이전트(200)로 전달한다(S87).Then, the
상기 호스트 단말용 DRM 에이전트(200)는 전달받은 RO에 대한 설치를 저장 장치용 DRM 에이전트(300)에 요구하고, 이에 의하여 저장 장치용 DRM 에이전트(300)가 상기 획득한 RO를 저장 장치(14)의 파일 시스템(400)에 저장한다.The DRM agent for the
상기에 의하여, 선택한 디지털 컨텐츠에 대하여, DRM에 의해 보호된 DCF 파일과, 상기 디지털 컨텐츠를 이용하는데 필요한 RO를 획득할 수 있으며, 획득한 RO는 저장 장치(400)에서 관리되게 된다.Thus, a DCF file protected by the DRM and an RO required to use the digital content can be acquired for the selected digital contents, and the acquired RO is managed in the
다음으로, 도 9는 본 발명에 따른 분리형 RO 관리 방법에 있어서, 디지털 컨텐츠의 재생 과정을 나타낸 블록도이다.Next, FIG. 9 is a block diagram illustrating a digital content playback process in the separate RO management method according to the present invention.
도 9를 참조하면, 호스트 단말(13)의 임의 응용 프로그램(134)에서 DRM에 의해 보호된 컨텐츠를 사용하고자 하는 경우, 상기 컨텐츠에 대한 판독을 호스트 단말용 DRM 에이전트(200)로 요청한다(S91). 여기서, 응용 프로그램(134)은 디지털 컨텐츠를 이용하여 임의의 기능을 수행하는 프로그램으로서, 예를 들어, 이미지 뷰어, 동영상이나 오디오 파일의 재생 프로그램 등이 될 수 있다.Referring to FIG. 9, when the
상기 요청을 수신한 호스트 단말용 DRM 에이전트(200)는 먼저, 해당 컨텐츠의 DCF 파일을 복호화하기 위한 CEK를 저장 장치용 DRM 에이전트(300)에 요청한다.Upon receiving the request, the
이에 저장 장치용 DRM 에이전트(300)가 파일 시스템(400)에 저장된 RO를 로드하여, RO로부터 CEK를 추출한다(S93). 상기 CEK 추출 과정은 저장 장치(13)의 디바이스 인증서에 포함되는 개인키 등을 이용하여 CEK를 복호화하는 과정을 포함할 수 있다.Then, the
상기 저장 장치용 DRM 에이전트(300)은 추출한 CEK를 호스트 단말용 DRM 에이전트(200)로 전달하고(S94), 호스트 단말용 DRM 에이전트(200)는 전달받은 CEK를 이용하여 파일 시스템(133)에 저장된 해당 컨텐츠의 DCF 파일을 복호화하여 원래의 디지털 컨텐츠 파일을 획득한다(S95).The
그리고, 상기 호스트 단말용 DRM 에이전트(200)은 복호화에 의해 획득한 컨텐츠를 상기 응용 프로그램(134)으로 전달한다(S96).The
이에 의하면, 저장 장치(14)에 구비된 저장 장치용 DRM 에이전트(300)를 통해서 CEK가 획득되어야만 DRM으로 보호된 컨텐츠의 이용이 가능해진다. According to this, only when the CEK is acquired through the
다음으로, 도 10은 본 발명에 의한 분리형 RO 방법에 있어서, 디지털 컨텐츠의 다른 재생 과정을 나타낸 블록도이다.Next, FIG. 10 is a block diagram illustrating another playback process of digital contents in the separate RO method according to the present invention.
도 10에서 실행형 컨텐츠(15a)는 분리 실행 기반의 디지털 컨텐츠로서, 코드 영역의 일부 코드 블록이 CEK에 의해 암호화되어 있으며, 코드 영역의 일부 코드 블록이 분리되어 저장 장치(14)에서 실행 가능한 형태로 변환된 후, 저장 장치(14)에 저장 장치용 코드 블록(15b)로 저장되어 있는 것이다. 더하여, 상기 실행형 컨텐츠(15a)에는 저장 장치용 코드블록(15b)와의 연결을 위한 보조 실행 코드(158)이 추가로 생성되어 있다.In FIG. 10, the
도 10을 참조하면, 호스트 단말(13)에 설치된 분리 실행 기반의 실행형 컨텐츠(15a)가 실행되는 중에, 암호화된 코드 블록에 진입하면, 상기 보조 실행 코드(158)를 통해 호스트 단말용 DRM 에이전트(200)로 해당 코드블록에 대한 복호화가 요청된다(S1001).Referring to FIG. 10, when an execution execution based
이에 상기 호스트 단말용 DRM 에이전트(200)는 상기 코드블록의 복호화에 필요한 CEK를 저장 장치용 DRM 에이전트(300)에 요청한다(S1002).The
저장 장치용 DRM 에이전트(300)는 상기 요청에 의해 파일 시스템(400)에서 RO를 가져와 CEK를 추출하고, CEK가 복호화되어 있는 경우 이를 저장 장치(14)의 개인키로 복호화한다(S1003).The
그리고, 저장 장치용 DRM 에이전트(300)는 추출한 CEK를 호스트 단말용 DRM 에이전트(200)로 전달한다(S1004).Then, the
상기 호스트 단말용 DRM 에이전트(200)는 상기 전달받은 CEK로 해당 코드 블록을 복호화한 후 상기 보조 실행 코드(158)로 전달하며, 보조 실행 코드(158)는 상기 복호화된 코드블록을 메모리 상에서 런타임 실행시킨다. The
이후 계속하여 실행형 컨텐츠(15a)가 실행되는 중에, 분리된 코드 블록에 도달하면, 보조 실행 코드(158)에 의하여 호스트 단말용 DRM 에이전트(200)로 저장 장치용 코드 블록(15b)에 대한 분리 실행이 요청된다(S1006). 이는 RPC 호출에 의해 이루어질 수 있다.If the separated code block is reached during execution of the
이에 호스트 단말용 DRM 에이전트(200)는 저장 장치용 DRM 에이전트(300)와의 사이에 형성된 보안 채널을 통해 저장 장치용 코드 블록(15b)를 호출한다(S1007). 이는 애플릿 호출을 통해 이루어질 수 있다.The
이에 저장 장치(14)에서 저장 장치용 코드 블록(15b)가 실행되고(S1008), 실행이 완료되면, 그 결과값을 저장 장치용 DRM 에이전트(3000와 호스트 단말용 DRM 에이전트(200)를 통해서 보조 실행 코드(158)로 반환한다(S1009, S1010).The storage
상기 보조 실행 코드(158)은 반환된 결과값을 실행형 컨텐츠(15a)에 적용하고, 실행형 컨텐츠(15a)를 반환된 결과값을 이용하여 실행을 계속한다.The
상기에 의하면, 호스트 단말(13)과 저장 장치(14)에 각각 분리되어 형성된 호스트 DRM 에이전트(200)와 저장 장치용 DRM 에이전트(300)를 통하여, 실행형 컨텐츠(15a)가 정상적인 동작을 수행할 수 있게 된다.The
마지막으로, 도 11은 본 발명에 의한 분리형 RO 방법에 있어서, 디지털 컨텐츠를 재 구매하는 과정을 나타낸 블록도이다. Lastly, FIG. 11 is a block diagram illustrating a process of re-purchasing digital contents in the separate RO method according to the present invention.
도 11을 참조하면, 호스트 단말(14)에 설치된 응용 프로그램(134)이 DRM에 의해 보호된 디지털 컨텐츠를 재생하고자 하는 경우, 호스트 단말용 DRM 에이전트(200)로 DCF의 복호화를 위한 RO 체크를 요청한다(S1101). 11, when an
이에 호스트 단말용 DRM 에이전트(200)는 상기 디지털 컨텐츠의 복호화를 위하여 저장 장치용 DRM 에이전트(300)로 CEK를 요청하고, 상기 요청을 수신한 저장 장치용 DRM 에이전트(300)는 파일 시스템(400)의 RO로부터 CEK를 추출하기 위하여 RO를 체크하는데, 이때 RO의 사용 권한이 소멸된 경우 저장 장치용 DRM 에이전트(300)는 호스트 단말용 DRM 에이전트(200)로 에러를 통보한다(S1103). The
상기 호스트 단말용 DRM 에이전트(300)는 에러 코드를 응용 프로그램(134)에 전달하고, 응용 프로그램(134)는 상기 에러코드를 확인하여, 사용 권한이 만기된 것이면, 사용자 요청에 따라서 컨텐츠 제공 서버(12)로 재 구매 요청을 전달한다(S1104).The
이에 컨텐츠 제공 서버(12)는 재 구매 절차(예를 들어, 지불 처리)를 수행한 후, RO의 획득을 위한 트리거와 DD 를 호스트 단말(131)로 전달한다(S1105).After the
상기 트리거와 DD는 웹 브라우저(131)를 통해 ROAP 에이전트(100)로 전달되며(S1106), 상기 ROAP 에이전트(100)는 전달받은 트리거를 이용하여 컨텐츠 제공 서버(12)에 RO를 요청하여 획득한다(S1107). 그리고 획득한 RO를 호스트 단말용 DRM 에이전트(200)로 전달한다.The trigger and the DD are transmitted to the
상기 호스트 단말용 DRM 에이전트(200)는 전달된 RO에 대한 설치를 저장 장치용 DRM 에이전트(300)에 지시한다(S1109). 이에 저장 장치용 DRM 에이전트(300)는 새롭게 갱신된 RO를 파일 시스템(400)에 저장하며, 그 결과 RO의 갱신이 이루어져, 해당 디지털 컨텐츠의 이용이 다시 가능하게 된다. The
본 발명에 따른 분리형 RO 관리 기반 DRM 서비스 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 소프트웨어 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광 기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The separate RO management based DRM service method according to the present invention can be implemented in the form of software readable by various computer means and recorded in a computer readable recording medium. Here, 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.
이상과 같이, 본 명세서와 도면에는 본 발명의 바람직한 실시 예에 대하여 개시하였으나, 여기에 개시된 실시 예외에도 본 발명의 기술적 사상에 바탕을 둔 다른 변형 예들이 실시 가능하다는 것은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 자명한 것이다. 또한, 본 명세서와 도면에서 특정 용어들이 사용되었으나, 이는 단지 본 발명의 기술 내용을 쉽게 설명하고 발명의 이해를 돕기 위한 일반적인 의미에서 사용된 것이지, 본 발명의 범위를 한정하고자 하는 것은 아니다.While the present invention has been described in connection with what is presently considered to be practical exemplary embodiments, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, It will be apparent to those skilled in the art. Furthermore, although specific terms are used in this specification and the drawings, they are used in a generic sense only to facilitate the description of the invention and to facilitate understanding of the invention, and are not intended to limit the scope of the invention.
본 발명은 DRM 시스템에 있어서, RO에 대한 관리가 실질적으로 저장 장치에 구비된 저장 장치용 DRM 에이전트에서 이루어지도록 함으로써, 사용자가 합법적으로 구매한 RO 관리의 보안성과 이동성을 증가시킬 수 있으며, 그 결과 사용자가 저장 장치용 DRM 에이전트를 구비한 저장 장치만을 구비함으로써, DRM 시스템에 접속이 어려운 어떠한 상황에서도 사용 권한을 갖는 디지털 컨텐츠나 서비스를 이용할 수 있다. 그 결과, 사용자에게 종래보다 높은 편의성을 제공할 수 있다.In the DRM system according to the present invention, the management of the RO is performed in the DRM agent for the storage device provided in the storage device, so that the security and mobility of the RO management that the user has legally purchased can be increased, By providing only the storage device having the DRM agent for the storage device, the user can use the digital contents or the service having the usage right in any situation where access to the DRM system is difficult. As a result, it is possible to provide the user with higher convenience than the conventional one.
더하여, 본 발명은 RO를 통해 디지털 컨텐츠의 코드 영역에서 분리된 분리 실행 대상 코드 블록을 제공하고, 호스트 단말이 저장 장치와의 연동을 통해 상기 RO에 포함된 분리 실행 대상 코드 블록을 분리 실행하도록 함으로써, 디지털 컨텐츠의 불법 복제 및 사용을 원천적으로 차단할 수 있는 우수한 효과가 있다.In addition, the present invention provides a separation execution object code block separated from the code area of the digital contents through the RO, and allows the host terminal to separately execute the separation execution object code block included in the RO through interworking with the storage device , There is an excellent effect that it can prevent illegal copying and use of digital contents fundamentally.
10: 디지털 저작권 관리(Digital Right Management) 시스템
11: 네트워크
12: DRM 서버
13: 호스트 단말
14: 저장 장치
15a: 실행형 컨텐츠
15b: 저장 장치용 코드 블록
16: 권리 객체(RO: Rights Object)
100: ROAP 에이전트
200: 호스트 단말용 DRM 에이전트
300: 저장 장치용 DRM 에이전트
400: 파일 시스템10: Digital Rights Management System
11: Network
12: DRM server
13: Host terminal
14: Storage device
15a: Executable content
15b: code block for storage device
16: Rights Object (RO)
100: ROAP agent
200: DRM agent for host terminal
300: DRM agent for storage
400: File system
Claims (28)
상기 ROAP 에이전트에서 획득한 RO가 호스트 단말에 연결된 저장 장치에 설치되도록 상기 저장 장치로 전달하고, 상기 저장 장치와의 연동을 통해 상기 RO의 정보를 확인하여 상기 디지털 컨텐츠를 사용할 수 있도록 지원하는 호스트 단말용 DRM 에이전트를 포함하며,
상기 디지털 컨텐츠는
코드 영역에서 선정된 하나 이상의 분리 실행 대상 코드 블록이 분리되며,
상기 분리 실행 대상 코드 블록은
상기 디지털 컨텐츠의 코드 영역에 존재하는 복수의 베이식 블록으로 이루어진 복수의 베이식 블록 그룹 중에서 상기 디지털 컨텐츠의 중요 경로(critical path) 상에 있는 베이식 블록 그룹인 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.A Rights Object Acquisition Protocol (ROAP) agent for acquiring an RO from a server issuing an RO (Right Object) specifying usage rights of digital contents protected by DRM (Digital Right Management); And
A RO terminal that receives the RO from the ROAP agent and transmits the RO to the storage device connected to the host terminal and confirms the information of the RO through the interworking with the storage device to use the digital content, Lt; RTI ID = 0.0 > DRM &
The digital content
One or more separate execution target code blocks selected in the code area are separated,
The separation execution object code block
Wherein the basic block group is a basic block group on a critical path of the digital contents among a plurality of basic block groups composed of a plurality of basic blocks existing in a code region of the digital contents.
상기 디지털 컨텐츠에 대한 CEK(Content Encryption key)를 상기 저장 장치로부터 제공받아, 상기 디지털 컨텐츠의 전체 또는 일부 코드 블록에 대한 복호화를 수행하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method of claim 1, wherein the DRM agent for the host terminal
Wherein a content encryption key (CEK) for the digital content is received from the storage device, and decryption of all or a part of the code block of the digital content is performed.
상기 디지털 컨텐츠가 분리 실행 기반의 실행형 컨텐츠인 경우, 상기 저장 장치로 저장 장치용 코드블록의 호출을 전달하고, 상기 저장장치로부터 저장 장치용 코드 블록의 실행 결과값을 반환 받아 상기 디지털 컨텐츠로 제공하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method of claim 1, wherein the DRM agent for the host terminal
And if the digital content is executable content based on separation execution, transfers a call of a code block for a storage device to the storage device, returns an execution result value of the storage device code block from the storage device, And a host terminal for detachable RO management.
상기 서버와 ROAP 통신을 수행하는 소켓;
상기 소켓을 통하여 상기 서버와 통신하여 상기 디지털 컨텐츠의 RO를 획득하는 ROAP 프로세서;
상기 RO 획득을 위해 사용되는 트리거에 대한 DD(Download Descriptor)를 해석하는 DD 파서; 및
ROAP 통신이 실패하였을 때의 ROAP 트리거를 저장하는 트리거 DB를 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method of claim 1, wherein the ROAP agent
A socket for performing ROAP communication with the server;
A ROAP processor communicating with the server through the socket to obtain an RO of the digital content;
A DD parser for analyzing a download descriptor (DD) for a trigger used for obtaining the RO; And
And a trigger DB for storing a ROAP trigger when the ROAP communication fails.
ROAP 프로토콜에 따른 처리를 수행하는 ROAP 엔진;
DRM 표준에 따라서 상기 디지털 컨텐츠의 DCF(DRM protected Content Format)를 관리하는 DCF 매니저;
상기 서버 및 저장 장치와 연동하여 RO의 양도를 위한 절차를 수행하는 RO 매니저;
분리형 RO 관리를 위하여 저장 장치의 연동을 수행하는 저장 장치 인터액션 매니저; 및
분리형 RO 관리 절차에 기반하여 상기 ROAP 엔진, DCF 매니저, RO 매니저, 저장 장치 인터액션 매니저의 동작을 제어하는 DRM 에이전트 제어 모듈을 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method of claim 1, wherein the DRM agent for the host terminal
A ROAP engine that performs processing according to the ROAP protocol;
A DCF manager for managing a DRM protected content format (DCF) of the digital content according to a DRM standard;
An RO manager for performing a procedure for transferring an RO in cooperation with the server and the storage device;
A storage device interaction manager for performing interworking of storage devices for separate RO management; And
And a DRM agent control module for controlling operations of the ROAP engine, the DCF manager, the RO manager, and the storage device interaction manager based on the separate RO management procedure.
DRM 규격에 따라서 ROAP 프로토콜의 동작을 수행하고, ROAP 프로토콜의 동작 과정에서 발생하는 예외 및 오류 처리를 수행하는 ROAP 프로세서;
상기 ROAP 프로세서의 제어에 따라서 상기 서버에게 전달할 ROAP 메시지를 생성하는 ROAP 제너레이터; 및
상기 서버에서 수신한 ROAP 트리거나 ROAP 메시지를 파싱하여 상기 ROAP프로세서로 제공하는 ROAP 파서를 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.6. The system according to claim 5, wherein the ROAP engine
A ROAP processor for performing an operation of the ROAP protocol according to the DRM standard and performing an exception and an error process occurring in an operation process of the ROAP protocol;
A ROAP generator for generating a ROAP message to be delivered to the server under the control of the ROAP processor; And
And a ROAP parser for parsing the ROAP message or the ROAP message received from the server and providing the parsed ROAP message to the ROAP processor.
DRM 규격에 따른 DCF를 분석 및 해석하는 DCF 인터프리터; 및
상기 DCF에 대한 복호화를 수행하는 DCF 렌더러를 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.6. The system according to claim 5, wherein the DCF manager
A DCF interpreter for analyzing and analyzing the DCF according to the DRM standard; And
And a DCF renderer for performing decoding on the DCF.
상기 디지털 컨텐츠의 DCF(DRM protected Content Format) 파일을 저장하는 파일 시스템을 더 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method according to claim 1,
Further comprising a file system for storing a DRM protected content format (DCF) file of the digital content.
상기 분리 실행 대상 코드 블록이 상기 저장 장치에서 실행 가능하게 변환된 저장 장치용 코드 블록과 연동하도록 변환된 분리 실행 기반의 실행형 컨텐츠인 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method of claim 1, wherein the digital content
Wherein the detachment execution object code block is a detachment-based executable content converted to be interlocked with a code block for a storage device executable in the storage device.
시작점(entry point)을 통한 제어 신호의 진입 및 상기 복수의 베이식 블록 간의 제어 신호의 이동은 허용하고, 상기 시작점을 제외한 상기 복수의 베이식 블록 내부로의 제어 신호의 진입이 없는 서로 관련된 상기 복수의 베이식 블록의 모임인 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.The method of claim 1, wherein the basic block group
A plurality of basic blocks which are associated with each other and which do not allow control signals to enter into the plurality of basic blocks except for the start point, And a host terminal for the detachable RO management.
상기 베이식 블록은 단일 입력(single input) 및 단일 출력(single output)의 속성과, 외부에서 내부로의 제어 신호의 진입을 허용하지 않는 속성을 갖는 코드 블록인 것을 특징으로 하는 분리형 RO 관리를 위한 호스트 단말.12. The method of claim 11,
Wherein the basic block is a code block having attributes of a single input and a single output and an attribute of not allowing entry of an external control signal into the host. Terminal.
상기 호스트 단말과 연동하여 DRM에 의해 보호되는 디지털 컨텐츠의 RO에 대한 관리 기능을 수행하는 저장 장치용 DRM 에이전트; 및
상기 저장 장치용 DRM 에이전트에 의해 관리되는 RO가 저장되는 파일 시스템을 포함하며,
상기 디지털 컨텐츠는
코드 영역에서 선정된 하나 이상의 분리 실행 대상 코드 블록이 분리되며,
상기 분리 실행 대상 코드 블록은
상기 디지털 컨텐츠의 코드 영역에 존재하는 복수의 베이식 블록으로 이루어진 복수의 베이식 블록 그룹 중에서 상기 디지털 컨텐츠의 중요 경로(critical path) 상에 있는 베이식 블록 그룹인 것을 특징으로 하는 분리형 RO 관리를 위한 저장 장치.A storage device connected to a host terminal,
A DRM agent for a storage device that performs a management function for an RO of digital contents protected by DRM in cooperation with the host terminal; And
And a file system in which an RO managed by the DRM agent for the storage device is stored,
The digital content
One or more separate execution target code blocks selected in the code area are separated,
The separation execution object code block
Wherein the basic block group is a basic block group on a critical path of the digital contents among a plurality of basic block groups formed of a plurality of basic blocks existing in a code region of the digital contents.
상기 호스트 단말에서 전달되는 RO의 설치 및 제거, RO의 정보를 호스트 단말로 반환, RO 갱신 기능 중에서 하나 이상을 포함하는 RO 관리 기능을 수행하는 RO 매니저;
상기 RO를 획득하는데 필요한 정보인 RI 컨텍스트(Right Issuer Context)를 관리하는 RI(Right Issuer) 컨텍스트 매니저; 및
상기 RO를 발급하는 서버와 저장 장치의 상호 인증을 수행하고, 상기 RO에서 CEK를 복호화하는 PKI 매니저를 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 저장 장치.14. The method of claim 13, wherein the DRM agent for the storage device
An RO manager for performing an RO management function including at least one of installation and removal of an RO transmitted from the host terminal, returning RO information to a host terminal, and updating an RO;
An RI (Right Issuer) context manager for managing a RI context (Right Issuer Context), which is information necessary to acquire the RO; And
And a PKI manager for performing mutual authentication between the server issuing the RO and the storage device and for decrypting the CEK in the RO.
상기 RO에 포함되어 있는 암호화 되어있는 CEK를 복호화하여 추출하는 CEK 매니저;
상기 파일 시스템에 저장되는 디바이스 인증서를 가져와 호스트 단말로 제공하는 인증 매니저; 및
상기 서버로 전달한 ROAP 메시지에 서명하는 시그니처 매니저를 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 저장 장치.15. The system according to claim 14, wherein the PKI manager
A CEK manager for decrypting and extracting the encrypted CEK included in the RO;
An authentication manager for obtaining a device certificate stored in the file system and providing the device certificate to a host terminal; And
And a signature manager for signing the ROAP message delivered to the server.
상기 분리 실행 대상 코드 블록이 저장 장치에서 실행 가능하도록 변환된 저장 장치용 코드 블록을 더 포함하는 것을 특징으로 하는 분리형 RO 관리를 위한 저장 장치.14. The system of claim 13, wherein the file system
Further comprising a code block for the storage device, the code block for storage being converted so that the code block to be separated for execution is executable in the storage device.
시작점(entry point)을 통한 제어 신호의 진입 및 상기 복수의 베이식 블록 간의 제어 신호의 이동은 허용하고, 상기 시작점을 제외한 상기 복수의 베이식 블록 내부로의 제어 신호의 진입이 없는 서로 관련된 상기 복수의 베이식 블록의 모임인 것을 특징으로 하는 분리형 RO 관리를 위한 저장 장치.14. The method of claim 13, wherein the basic block group
A plurality of basic blocks which are associated with each other and which do not allow control signals to enter into the plurality of basic blocks except for the start point, Wherein the storage unit is a group of blocks.
상기 베이식 블록은 단일 입력(single input) 및 단일 출력(single output)의 속성과, 외부에서 내부로의 제어 신호의 진입을 허용하지 않는 속성을 갖는 코드 블록인 것을 특징으로 하는 분리형 RO 관리를 위한 저장 장치.19. The method of claim 18,
Characterized in that the basic block is a code block having attributes of a single input and a single output and an attribute of not allowing entry of control signals from the outside to the inside. Device.
DRM에 의해 보호된 디지털 컨텐츠(DCF)에 대한 RO를 획득하는데 필요한 트리거를 획득하는 단계;
상기 트리거를 이용하여 RO를 발급하는 서버에 접속하여 상기 RO를 획득하는 단계; 및
상기 획득한 RO가 저장 장치에 설치되도록, 상기 저장 장치로 전달하는 단계를 포함하며,
상기 디지털 컨텐츠는
코드 영역에서 선정된 하나 이상의 분리 실행 대상 코드 블록이 분리되며,
상기 분리 실행 대상 코드 블록은
상기 디지털 컨텐츠의 코드 영역에 존재하는 복수의 베이식 블록으로 이루어진 복수의 베이식 블록 그룹 중에서 상기 디지털 컨텐츠의 중요 경로(critical path) 상에 있는 베이식 블록 그룹인 것을 특징으로 하는 분리형 RO 관리 방법.A separate RO management method for interworking between a host terminal and a storage device, the method comprising:
Obtaining a trigger needed to acquire an RO for digital content (DCF) protected by DRM;
Accessing a server issuing an RO using the trigger to obtain the RO; And
And delivering the acquired RO to the storage device so that it is installed in the storage device,
The digital content
One or more separate execution target code blocks selected in the code area are separated,
The separation execution object code block
Wherein the basic block group is a basic block group on a critical path of the digital content among a plurality of basic block groups composed of a plurality of basic blocks existing in a code region of the digital contents.
특정 응용 프로그램으로부터 상기 DRM에 의해 보호된 컨텐츠에 대한 요청을 수신하면, 상기 저장 장치로 상기 컨텐츠를 복호화하기 위한 CEK를 요청하는 단계;
상기 저장 장치에 의해 RO로부터 추출되어 복호화된 CEK를 수신하는 단계; 및
상기 CEK를 이용하여 상기 컨텐츠를 복호화한 후 상기 응용 프로그램으로 전달하는 단계를 더 포함하는 분리형 RO 관리 방법.21. The method of claim 20,
Requesting a CEK for decrypting the content to the storage device upon receiving a request for content protected by the DRM from a specific application program;
Receiving a decoded CEK extracted from the RO by the storage device; And
And decrypting the content using the CEK and transferring the decrypted content to the application program.
분리 실행 기반의 실행형 컨텐츠가 실행되는 중에, 상기 분리 실행 대상 코드 블록이 저장 장치에 실행 가능한 형태로 변환된 저장 장치용 코드 블록의 호출을 수신하는 단계;
상기 저장 장치와 보안 채널을 연결하여, 상기 보안 채널을 통해 상기 호출을 저장 장치로 전달하는 단계;
상기 호출된 저장 장치용 코드 블록의 실행이 완료된 후 상기 저장 장치로부터 상기 보안 채널을 통해 실행 결과값을 수신하는 단계; 및
상기 실행 결과값을 상기 분리 실행 기반 컨텐츠로 반환하는 단계를 더 포함하는 분리형 RO 관리 방법.21. The method of claim 20,
Receiving a call of a code block for a storage device in which the detachment object code block is converted into an executable form in a storage device while executing executable content based on detachment execution;
Connecting a secure channel with the storage device, and forwarding the call to the storage device over the secure channel;
Receiving an execution result value from the storage device over the secure channel after the execution of the called code block for the storage device is completed; And
And returning the execution result value to the separation execution-based content.
상기 저장 장치로부터 사용 권한의 소멸에 따른 에러 코드를 수신하는 단계;
상기 에러코드를 상기 응용 프로그램으로 전달하는 단계;
사용자의 요청에 따른 RO의 재 구매를 위한 트리거를 획득하는 단계;
상기 트리거를 이용하여 상기 서버로부터 RO를 다시 획득하는 단계; 및
상기 획득한 RO를 저장 장치로 전달하여, 저장 장치에서 RO가 갱신되도록 하는 단계를 더 포함하는 분리형 RO 관리 방법.21. The method of claim 20,
Receiving an error code corresponding to the expiration of the usage right from the storage device;
Transferring the error code to the application program;
Acquiring a trigger for re-purchasing an RO according to a user's request;
Acquiring an RO from the server using the trigger; And
And transferring the obtained RO to a storage device so that the RO is updated in the storage device.
상기 분리 실행 대상 코드 블록이 상기 저장 장치에서 실행 가능하게 변환된 저장 장치용 코드 블록을 연결하도록 변환된 것임을 특징으로 하는 분리형 RO 관리 방법.23. The method of claim 22, wherein the execution-based execution content
Wherein the code block to be separated is converted so as to connect a code block for a storage device executable in the storage device.
시작점(entry point)을 통한 제어 신호의 진입 및 상기 복수의 베이식 블록 간의 제어 신호의 이동은 허용하고, 상기 시작점을 제외한 상기 복수의 베이식 블록 내부로의 제어 신호의 진입이 없는 서로 관련된 상기 복수의 베이식 블록의 모임인 것을 특징으로 하는 분리형 RO 관리 방법..21. The method of claim 20, wherein the basic block group
A plurality of basic blocks which are associated with each other and which do not allow control signals to enter into the plurality of basic blocks except for the start point, Wherein the RO is a collection of blocks.
상기 베이식 블록은 단일 입력(single input) 및 단일 출력(single output)의 속성과, 외부에서 내부로의 제어 신호의 진입을 허용하지 않는 속성을 갖는 코드 블록인 것을 특징으로 하는 분리형 RO 관리 방법.27. The method of claim 26,
Wherein the basic block is a code block having attributes of a single input and a single output and an attribute of not allowing entry of control signals from the outside to the inside.
A computer-readable recording medium having recorded thereon a program for executing the detached RO management method according to any one of claims 20 to 24, 26, and 27.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020090070231 | 2009-07-30 | ||
KR1020090070229 | 2009-07-30 | ||
KR20090070231 | 2009-07-30 | ||
KR20090070229 | 2009-07-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110013188A KR20110013188A (en) | 2011-02-09 |
KR101487175B1 true KR101487175B1 (en) | 2015-02-02 |
Family
ID=43772986
Family Applications (8)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20100029978A 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 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 |
KR1020100030172A KR20110013187A (en) | 2009-07-30 | 2010-04-02 | System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof |
KR20100030188A 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 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 |
KR1020100030784A 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 |
KR1020100031120A 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 |
KR1020100031065A 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 Before (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR20100029978A 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 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 |
KR1020100030172A KR20110013187A (en) | 2009-07-30 | 2010-04-02 | System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof |
Family Applications After (4)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100030189A 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 |
KR1020100030784A 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 |
KR1020100031120A 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 |
KR1020100031065A 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 | 삼성전자주식회사 | Deveice and method for executing 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 content expiration date management by use of removable medium |
KR20080009951A (en) * | 2006-07-25 | 2008-01-30 | 엘지전자 주식회사 | Digital rights management method and system thereof |
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, method and system for providing encryption contents and rights object to electronic communication device by using delegation schemes of rights issuer server |
KR101346734B1 (en) * | 2006-05-12 | 2014-01-03 | 삼성전자주식회사 | Multi certificate revocation list support method and apparatus for digital rights management |
KR101354759B1 (en) | 2007-01-03 | 2014-01-22 | 엘지전자 주식회사 | Digital rights management method for terminal |
KR100783811B1 (en) | 2007-08-28 | 2007-12-10 | 주식회사 파수닷컴 | Method of digital rights management about a compressed file |
US8516251B2 (en) | 2007-12-20 | 2013-08-20 | Koninklijke Philips N.V. | Device and method for digital right management |
-
2010
- 2010-04-01 KR KR20100029978A patent/KR101487176B1/en not_active IP Right Cessation
- 2010-04-01 KR KR1020100029969A patent/KR101432989B1/en active IP Right Grant
- 2010-04-02 KR KR1020100030172A patent/KR20110013187A/en active Search and Examination
- 2010-04-02 KR KR20100030188A patent/KR101487175B1/en active IP Right Grant
- 2010-04-02 KR KR1020100030189A patent/KR101504087B1/en active IP Right Grant
- 2010-04-05 KR KR1020100030784A patent/KR101525402B1/en active IP Right Grant
- 2010-04-05 KR KR1020100031120A patent/KR101374159B1/en active IP Right Grant
- 2010-04-05 KR KR1020100031065A patent/KR101544731B1/en active IP Right Grant
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 content expiration date management by use of removable medium |
KR20080009951A (en) * | 2006-07-25 | 2008-01-30 | 엘지전자 주식회사 | Digital rights management method and system thereof |
Also Published As
Publication number | Publication date |
---|---|
KR101432989B1 (en) | 2014-08-27 |
KR101544731B1 (en) | 2015-08-17 |
KR20110013185A (en) | 2011-02-09 |
KR101487176B1 (en) | 2015-02-02 |
KR101525402B1 (en) | 2015-06-08 |
KR20110013193A (en) | 2011-02-09 |
KR20110013189A (en) | 2011-02-09 |
KR20110013188A (en) | 2011-02-09 |
KR101504087B1 (en) | 2015-03-24 |
KR101374159B1 (en) | 2014-03-13 |
KR20110013184A (en) | 2011-02-09 |
KR20110013192A (en) | 2011-02-09 |
KR20110013187A (en) | 2011-02-09 |
KR20110013191A (en) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101487175B1 (en) | 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 | |
JP4039489B2 (en) | Information protection method and system for multimedia contents | |
JP4790021B2 (en) | SRM digital copyright management method and apparatus | |
RU2260918C2 (en) | System and method for safe and comfortable control of digital electronic content | |
US20070271446A1 (en) | Application Execution Device and Application Execution Device Application Execution Method | |
US20060059105A1 (en) | Move component, program, and move method | |
US8510854B2 (en) | Method and system for digital rights management among apparatuses | |
US20060059102A1 (en) | License source component, license destination component, and method thereof | |
JP5248505B2 (en) | Control device, playback device, and authorization server | |
US20080154778A1 (en) | Method and apparatus for decoding right object and method and apparatus for sharing contents using the same | |
US20060059103A1 (en) | Return component, program, and return component method | |
KR100710005B1 (en) | Method and Apparatus for handing over the right of using on using DRM | |
KR100739474B1 (en) | Method and Apparatus for presenting contents service using DRM | |
KR20080081631A (en) | Apparatus and method for digital rights management loaded on mobile terminal | |
US20080114772A1 (en) | Method for connecting to a network location associated with content | |
KR20090058184A (en) | Virtual machine based mobile application protecting system, and method for the same | |
JP2005258927A (en) | Dynamic value control drm system, license issuing server, content reproduction device, cooperation method of dynamic value control and drm, and program | |
WO2004055651A1 (en) | A simple digital right management language | |
JP5345989B2 (en) | File data deletion program and file data deletion system | |
KR100738911B1 (en) | Method and System for Managing Dynamic Digital Content Right | |
WO2008003222A1 (en) | A method and an apparatus for operating right | |
KR101659082B1 (en) | Method and system for controlling execution of application installed mobile terminal | |
KR20140116985A (en) | Multimedia Contents Distribution And Payment System and Contents Distribution And Payment Method Of Using the Same | |
Maroñas et al. | Implementing mobile applications with the MIPAMS content management platform | |
KR20070062706A (en) | Drm interoperability system and computer readable medium suitable for the same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
FPAY | Annual fee payment |
Payment date: 20180122 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20191220 Year of fee payment: 6 |