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 PDF

Info

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
Application number
KR20100030188A
Other languages
Korean (ko)
Other versions
KR20110013188A (en
Inventor
권오인
남기선
Original Assignee
에스케이플래닛 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이플래닛 주식회사 filed Critical 에스케이플래닛 주식회사
Publication of KR20110013188A publication Critical patent/KR20110013188A/en
Application granted granted Critical
Publication of KR101487175B1 publication Critical patent/KR101487175B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management 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/462Content 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/4627Rights 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

분리형 RO 관리를 위한 호스트 단말 및 저장 장치, 그의 분리형 RO 관리 방법 그리고, 이를 수행하는 프로그램을 기록한 기록매체{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}TECHNICAL FIELD [0001] The present invention relates to a host terminal and a storage device for managing a removable RO, a detachable RO management method thereof, and a storage medium storing a program for performing the same. executing separating RO management}

본 발명은 디지털 컨텐츠의 저작권 보호를 위한 디지털 저작권 관리 (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 system 10 to which the present invention is applied includes a content providing server 12 and a host terminal 13 connected via a network 11, a wired / wireless interface And an intermediately connected storage device 14.

상기 DRM 시스템(10)에는 디지털 저작권 관리를 위하여, 분리형 RO 관리 방법 및 디지털 컨텐츠의 분리 실행 방법이 적용될 수 있다. 여기서, 분리형 RO 관리는, 두 개의 서로 다른 장치, 더 구체적으로는, 호스트 단말(13)과 저장 장치(14)가 상호 연동을 통해 RO를 관리하는 것을 의미한다. 이에 의하면, 저장 장치(14)에서 RO 관리를 위한 일부 처리를 수행할 수 있도록 함으로써, 사용자가 저장 장치(14)를 이용하여 어느 곳에서든 구입한 디지털 컨텐츠를 재생하거나, 다른 사람에게 권리를 선물할 수 있게 된다. 또한, '분리 실행'은 디지털 컨텐츠가 두 개의 서로 다른 장치, 더 구체적으로는 호스트 단말(13)과 저장 장치(14)의 연동을 통해 실행되는 것을 의미한다. 이에 의하면, 디지털 컨텐츠에 대한 크래킹을 방지하여, 불법 복제를 원천적으로 차단할 수 있다.In the DRM system 10, a separate RO management method and a digital content separation / execution method may be applied for digital rights management. Here, the detached RO management means that two different devices, more specifically, the host terminal 13 and the storage device 14 manage the RO through interworking. In this way, by performing some processing for RO management in the storage device 14, the user can reproduce the purchased digital content from anywhere using the storage device 14, or present the right to another person . In addition, 'separate execution' means that the digital contents are executed through two different apparatuses, more concretely, the interlocking of the host terminal 13 and the storage device 14. According to this, cracking of digital contents can be prevented, and illegal copying can be fundamentally blocked.

먼저, 분리 실행을 구현하기 위해서, 호스트 단말(13)에는 코드 영역에서 선택된 코드 블록(이하 분리 실행 대상 코드 블록이라 함)이 제거된 실행형실행형 컨텐츠(15a)가 저장되고, 저장 장치(14)에는 분리 실행 대상 코드 블록이 저장 장치(14)에서 실행 가능하도록 변환된 저장 장치용 코드 블록(15b)이 저장된다. 상기 상태에서 분리 실행은, 호스트 단말(13)이 실행형실행형 컨텐츠(15a)에서 제거된 부분(분리 실행 대상 코드 블록)에 대한 결과값을 저장 장치(14)에 요청하여 반환 받는 형태로 이루어진다. 따라서, 분리 실행 기술이 적용되는 실행형 컨텐츠는, 실행 파일을 포함하는 컨텐츠를 의미하는 것으로서, 예를 들어, 게임 프로그램,응용 프로그램, 및 소프트웨어 등을 포함한다.First, in order to implement separate execution, executable executable content 15a from which a code block selected in the code area (hereinafter referred to as a separation execution object code block) is removed is stored in the host terminal 13, ) Stores a code block 15b for a storage device converted so as to be executable in the storage device 14 as a code block to be separated. In this state, the separation execution is performed in such a manner that the host terminal 13 requests the storage device 14 to return the result of the part (separation execution target code block) removed from the executable executable content 15a . Therefore, the executable content to which the separation execution technique is applied refers to content including an execution file, and includes, for example, a game program, an application program, and software.

다음으로, 분리형 RO 관리는, 호스트 단말(13)에 연결된 저장 장치(14)에서, RO의 설치, RO의 정보 반환, 및 RO의 삭제 기능을 포함하는 RO 관리 기능을 수행하도록 하는 것이며, 이에 의하면, 상기 저장 장치(14)를 이용하여 다른 장소에서도 RO에서 권한을 부여하는 디지털 컨텐츠의 사용이 가능해진다.Next, the separate RO management is performed in the storage device 14 connected to the host terminal 13 to perform an RO management function including RO installation, return RO information, and RO deletion function, , It becomes possible to use the digital contents for authorizing the RO in other places by using the storage device 14. [

분리형 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 code block 15b for the storage device for executing the detachment may be included in the RO 16.

도 1에서, 네트워크(11)는 컨텐츠 제공 서버(12)와 호스트 단말(13) 간의 데이터 전송 및 정보 교환을 위한 일련의 데이터 송수신을 수행한다. 이를 위하여, 네트워크(11)는 IP를 통하여 대용량 데이터의 송수신 서비스 및 끊김 없는 데이터 서비스를 제공하는 IP망으로, IP를 기반으로 서로 다른 망을 통합한 IP망 구조인 ALL-IP망일 수 있다. 또한 네트워크(11)는 유선통신망, 이동통신망, WiBro(Wireless Broadband)망, HSDPA(High-Speed Downlink Packet Access)망, 위성통신망 또는 기타 널리 공지되었거나 향후 개발될 유무선 또는 이들의 결합망을 포함한다.1, the network 11 performs a series of data transmission / reception for data transmission and information exchange between the content providing server 12 and the host terminal 13. [ For this purpose, the network 11 may be an IP network providing large capacity data transmission / reception service and seamless data service through IP, and may be an ALL-IP network having an IP network structure in which different networks are integrated based on IP. The network 11 includes a wired communication network, a mobile communication network, a wireless broadband (WiBro) network, a high-speed downlink packet access (HSDPA) network, a satellite communication network or other well-known or future wired or wireless networks or a combination thereof.

컨텐츠 제공 서버(12)는 분리 실행이 가능한 실행형 컨텐츠(15a) 및 저장 장치용 코드 블록(15b)을 저장하고 있으며, 더하여 디지털 컨텐츠에 대한 권한을 명시하는 RO를 생성하여 관리하며, 이들을 고객의 요청에 따라서 호스트 단말(13)로 제공한다. 여기서, 컨텐츠 제공 서버(12)는 디지털 컨텐츠를 분리 실행기반 실행형 컨텐츠(15a)와 저장 장치용 코드 블록(15b)으로 변환하는 기능을 더 수행할 수 있다. 더하여, 컨텐츠 제공 서버(12)는 DRM에 의해 보호되는 디지털 컨텐츠의 사용 권한을 명시하는 RO를 발급하고 관리하기 위한 RI(Right Issuer)를 포함할 수 있다. 여기서는, 컨텐츠 제공 서버(12)를 통해 모든 서비스가 이루어지는 것으로 표현 되어 있으나, 실제로는, 각각의 기능을 수행하는 복수의 서버로 이루어질 수 있다.The content providing server 12 stores the executable content 15a and the storage device code block 15b that are separately executable and further generates and manages an RO that specifies the authority for the digital content, And provides it to the host terminal 13 in response to the request. Here, the content providing server 12 may further perform a function of converting the digital content into the separation execution execution type content 15a and the storage device code block 15b. In addition, the content providing server 12 may include a right issuer (RI) for issuing and managing an RO specifying the usage right of the digital content protected by the DRM. Here, although it is shown that all the services are provided through the content providing server 12, in practice, it may be composed of a plurality of servers that perform respective functions.

호스트 단말(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 host terminal 13 collectively refers to a computing device having an independent CPU capable of executing digital contents, such as a PC, a notebook, a workstation, a PDA, and the like. The host terminal 13 includes a public computer which is accessible by a plurality of users. The host terminal 13 is provided with executable content 15a. When the storage device 14 is connected to the host terminal 13 via the wired / wireless interface, the host terminal 13 executes the executable content 15a in cooperation with the storage device 14. [ In addition, the host terminal 13 requests the contents providing server 12 to purchase the digital contents according to the request of the user, executes the payment procedure, and then stores the executable contents 15a and the storing contents 15a from the contents providing server 12 The code block 15b for the device is downloaded and the executable content 15a is stored in its own memory and the code block 15b for storage is transferred to the storage device 14. [ Here, the content providing server 12 provides the RO 16 together with the executable content 15a and the storage device code block 15b to the host terminal 13 of a legitimate user. The RO 16 is transferred to the storage device 14 via the host terminal 13 and is installed in the storage device 16. At this time, the storage unit code block 15b may be provided in the RO 16. In another example, the code block 15b for the storage device may be implemented as an applet.

호스트 단말(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 host terminal 13 and the storage device 14 can be realized by a wired communication method using USB, USB2, Serial / Parallel Port, Ethernet, TCP / IP, have. Bluetooth, Zigbee, Ruby, Infrared Data Association (IrDA), and Ultra Wide Broadband (UWB) may be used as the short-range wireless communication method. In addition, various technologies to be developed in the future can be applied.

저장 장치(14)는 유무선 인터페이스를 통해 호스트 단말(13)에 연결되며, 호스트 단말(13)을 통해 저장 장치용 코드 블록(15b) 및 RO(16)를 전달받아 저장하고 관리한다. 상기 저장 장치용 코드 블록(15b) 및 RO(16)를 안전하게 보관하기 위하여, 저장 장치(14)는 보안 기능을 구비하는 것이 바람직하다. 그리고 저장 장치(14)는 호스트 단말(13)과 연동하여 분리 실행 및 RO 관리를 수행하기 위하여, 프로세서를 구비하는 것이 바람직하다. 이에 의하여, 저장 장치(14)는 상기 호스트 단말(13)의 요청에 따라 저장 장치용 코드 블록(14)을 실행하여 그 결과값을 호스트 단말(13)로 반환하거나, RO의 정보를 반환하거나, RO의 설치 및 삭제를 수행하고, 그 결과를 반환한다.The storage device 14 is connected to the host terminal 13 via a wired or wireless interface and receives and stores and manages the storage device code block 15b and the RO 16 through the host terminal 13. [ In order to safely store the storage unit code block 15b and the RO 16, the storage device 14 preferably has a security function. In addition, the storage device 14 preferably includes a processor for performing separate execution and RO management in cooperation with the host terminal 13. [ The storage device 14 executes the storage device code block 14 at the request of the host terminal 13 and returns the resultant value to the host terminal 13 or returns the RO information, Performs installation and deletion of RO, and returns the result.

상술한 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 executable content 15a to the host terminal 13 of the legitimate user through the content providing server 12 and sends the executable content 15a to the storage device 14 via the RO 16). Thereafter, when a legitimate user instructs execution of the executable content 15a installed in the host terminal 13 with the storage device 14 connected to the host terminal 13, Information is provided to the host terminal 13, and the host terminal 13 confirms the information of the RO and executes the executable content 15a if authorized. At this time, separate execution of the executable content 15a and the storage device code block 15b is performed through interlocking of the host terminal 13 and the storage device 14, and execution of the executable content 15a, Is operating normally.

이러한 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 digital content 20 includes a plurality of files, for example, an executable file, an application program interface (API) provided by the operating system, , API provided by the developer or a dynamic linking library (DLL). Such a digital content 20 includes a code area 21 and a data area 23. Actually, the code area 21 and the data area 23 are mixed with each other. The code area 21 includes a plurality of basic block groups 27 made up of a plurality of basic blocks 25.

여기서, 베이식 블록(25)은 단일 입력(single input) 및 단일 출력(single output)의 속성을 갖는 명령어의 열(sequence of instruction)을 의미하는 것으로서, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 코드 블록으로 정의할 수 있다. 즉 베이식 블록(25)은 시작부터 끝까지 한번에 실행되는 연속적인 문장(코드의 모임)을 의미하며, 중간에 흐름 제어로 인해 실행이 중지되지 않는 문장 그룹이다.Here, the basic block 25 means a sequence of instructions having attributes of a single input and a single output, and is a property that does not allow entry from the outside to the inside As shown in Fig. That is, the basic block 25 is a continuous sentence (a group of codes) executed at a time from the beginning to the end, and is a group of sentences whose execution is not stopped due to the flow control in the middle.

도 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 executable content 30 and at least one separate execution object code block 37.

실행형 컨텐츠(30)는 하나 이상의 분리 실행 대상 코드 블록(37)을 대신하여 하나 이상의 스터브 코드(39)가 삽입된 코드 영역(31)과, 데이터 영역(33)을 포함한다. 이때 스터브 코드(39)는 추출된 분리 실행 대상 코드 블록(37)을 대신하여 삽입되는 코드로서, 실행형 컨텐츠(30)와, 분리 실행 대상 코드 블록(37)을 연결한다. 더 구체적으로, 스터브 코드(39)는 실행형 컨텐츠(30)에 대한 실행을 수행할 때, 분리 실행 대상 코드 블록(37)을 호출하고, 상기 분리 실행 대상 코드 블록(37)의 결과값을 반환 받는다.The executable content 30 includes a code area 31 and a data area 33 in which one or more stub codes 39 are inserted in place of one or more separate execution subject code blocks 37. [ At this time, the stub code 39 is a code to be inserted in place of the extracted separation execution object code block 37, and connects the execution contents 30 and the separation execution object code block 37. More specifically, the stub code 39 calls the separation execution object code block 37 and returns the result value of the separation execution object code block 37 when executing the executable content 30 Receive.

하나 이상의 분리 실행 대상 코드 블록(37)은, 도 2에서 설명한 바와 같이, 원래의 디지털 컨텐츠에 대한 동적 프로파일링 및 정적 분석을 통하여 코드 영역(21)에서 추출된 복수의 베이식 블록 그룹(27) 중의 하나로서, 복수의 베이식 블록(35)을 포함한다. 더 바람직하게, 상기 분리 실행 대상 코드 블록(37)은 시작점(entry point)을 통한 제어 신호의 진입 및 내부에 포함된 베이식 블록(35) 간의 제어 신호의 이동은 허용하지만, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(35)을 포함하는 베이식 블록 그룹이다.As shown in Fig. 2, the at least one separation execution object code block 37 is a block of a plurality of basic block groups 27 extracted from the code area 21 through dynamic profiling and static analysis of the original digital contents And includes a plurality of basic blocks 35 as one. More preferably, the detachment object code block 37 permits the entry of the control signal through the entry point and the movement of the control signal between the basic blocks 35 contained therein, 35, which are not related to each other.

이와 다르게, 시작점을 제외한 베이식 블록(35)으로의 제어 신호의 진입이 있는 베이식 블록 그룹을 분리 실행 대상 코드 블록(37)으로 선정할 경우, 해당 분리 실행 대상 코드 블록(37)을 추출한 후 삽입되는 스터브 코드(39)에 시작 부분이 아닌 중간으로 제어 신호가 진입할 수 있으며, 이 경우 스터브 코드(39)는 해당 제어 신호에 대한 처리를 수행하지 못하며, 결국, 서비스 컨텐츠(30)의 실행이 중지되거나 에러가 발생할 수 있다.Alternatively, when the basic block group in which the control signal enters the basic block 35 excluding the starting point is selected as the separation execution object code block 37, the separation execution object code block 37 is extracted and inserted The control signal can enter the stub code 39 in the middle of the stub code 39. In this case, the stub code 39 can not perform processing for the corresponding control signal, and eventually the execution of the service content 30 stops Or an error may occur.

분리 실행 대상 코드 블록(37)을 추출하는 방법은 다음과 같다.A method of extracting the separation execution object code block 37 is as follows.

먼저, 도 2에 도시된 분리 실행할 디지털 컨텐츠(20)의 코드 영역(21)에 대한 동적 프로파일링 및 정적 분석을 통하여 복수의 베이식 블록 그룹(27)을 선정한다. 상기 복수의 베이식 블록 그룹(27)의 선정은, 상기 분리 실행할 디지털 컨텐츠(20)를 실행하여, 런-타임 동안 코드 영역(21)에 대한 기초 정보를 수집하고, 수집한 기초 정보를 이용하여 분석 범위를 확장한 동적 프로파일링을 통해 상기 코드 영역(21)에 대한 정적 분석을 수행함에 의해 이루어진다. 상기 기초 정보는, 브랜치 어드레스, 점프 어드레스, 콜 어드레스 및 RET의 간접 주소 중에 적어도 하나의 간접 주소이다. 이러한 기초 정보 중에서 디지털 컨텐츠(20)의 공개된 API와 관련된 기초 정보를 제거하고, 공개된 API와 관련된 기초 정보가 제거된 기초 정보를 기반으로 디지털 컨텐츠(20)의 코드 영역(21)에 대한 정적 분석을 수행함으로써, 분석 범위를 확장할 수 있다. 상기 수집한 기초 정보 중 간접 주소를 컨트롤 플로우 상에 대입함으로써 분석 범위를 확장할 수 있으며, 그 결과 단독으로 동적 프로파일링 또는 정적 분석을 수행하는 것에 비하여 더 많은 베이식 블록 그룹(27)을 선정할 수 있다.First, a plurality of basic block groups 27 are selected through dynamic profiling and static analysis of the code area 21 of the digital content 20 to be separated and executed shown in Fig. The selection of the plurality of basic block groups 27 is performed by executing the digital contents 20 to be separated and collecting basic information about the code area 21 during the run time and analyzing By performing a static analysis on the code area 21 through dynamic profiling that extends the range. The basic information is at least one indirect address among a branch address, a jump address, a call address, and an indirect address of RET. The basic information related to the published API of the digital content 20 is removed from the basic information and the static information about the code area 21 of the digital content 20 is generated based on the basic information from which the basic information related to the disclosed API is removed By performing the analysis, the scope of the analysis can be extended. The analysis range can be extended by substituting the indirect address among the collected basic information on the control flow. As a result, more basic block groups 27 can be selected than performing dynamic profiling or static analysis alone have.

더하여, 선정된 복수의 베이식 블록 그룹(27) 중에서, 베이식 블록 그룹(27)의 내부로 진입하는 제어 신호가 발생하면, 제어 신호의 명령어 주소를 기준으로 해당 베이식 블록 그룹(27)을 분할하여 재정의한다. 이때 재정의 대상이 되는 베이식 블록 그룹(27)은 제어 신호의 명령어 주소를 기준으로 이전의 제1 베이식 블록 그룹과, 제어 신호의 명령어 주소를 포함하는 이후의 제2 베이식 블록 그룹으로 재정의한다.In addition, when a control signal for entering the inside of the basic block group 27 is generated among the selected plurality of basic block groups 27, the corresponding basic block group 27 is divided based on the command address of the control signal, do. At this time, the basic block group 27 to be redefined redefines the previous first basic block group and the subsequent second basic block group including the command address of the control signal based on the command address of the control signal.

이와 같은 재정의 과정을 반복함으로써, 최종적으로 단일 입력 및 단일 출력의 속성과, 외부에서 내부로의 진입을 허용하지 않는 속성을 갖는 복수의 베이식 블록(25)을 포함하는 베이식 블록 그룹(27)을 정확하게 정의할 수 있다.By repeating this redefinition process, a basic block group 27 including a plurality of basic blocks 25 having attributes of a single input and a single output and an attribute not allowing entry from the outside to the inside is finally obtained Can be defined precisely.

이어서 복수의 베이식 블록 그룹(27) 중에서 하나 이상의 분리 실행 대상 코드 블록(37)을 선정한다. 그리고 분리 실행 대상 코드 블록(37)을 코드 영역(31)에서 분리하고, 상기 분리 실행 대상 코드 블록(37) 대신에 스터브 코드(39)를 삽입하여, 도 3에 도시한 실행형 컨텐츠(30)를 생성한다.Subsequently, one or more code blocks 37 to be separated from among the plurality of basic block groups 27 are selected. 3 is executed by inserting the stub code 39 in place of the separation execution object code block 37 and separating the execution execution target code block 37 from the code area 31. [ .

이때 분리 실행 대상 코드 블록(37)은 복수의 베이식 블록 그룹(27) 중에서 디지털 컨텐츠(20)의 중요 경로(Critical path) 상에 있는 베이식 블록 그룹을 선택하는 것이 바람직하다. 또한, 복수의 베이식 블록 그룹(27) 중에서 콜 횟수, 크기 및 실행 시간을 함께 고려하여 분리 실행 대상 코드 블록(37)을 선출할 수 있다. 예컨대 콜 횟수가 많고, 크기가 작고, 실행 시간이 짧은 베이식 블록 그룹(27)을 분리 실행 대상 코드 블록(37)으로 선출한다.At this time, the separation execution target code block 37 preferably selects a basic block group on the critical path of the digital content 20 among the plurality of basic block groups 27. [ In addition, it is possible to select the code block 37 for separation execution in consideration of the number of calls, the size, and the execution time among the plurality of basic block groups 27. [ For example, the basic block group 27 having a large number of calls, a small size, and a short execution time is selected by the separation execution object code block 37.

이에 따르면, 디지털 컨텐츠에 있어서, 중요 경로 상에 존재하고, 콜 횟수가 많고 크기가 작고, 실행 시간이 짧은 베이식 블록 그룹을 보안을 위한 분리 실행 대상 코드 블록으로 선정함으로써, 분리 실행에 의한 디지털 컨텐츠의 복제 방지와 관련된 보안 성능을 향상시킬 수 있다.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 content providing server 12 selects the detachment object code block 37 according to the above-described method for providing the detachment-based digital contents, And converts it into a code block 15b for a storage device. Then, the executable content 15a is converted so that the storage device code block 15b can be executed in cooperation with each other. And generates an RO specifying the authority for the executable content 15a. When the user performs the payment processing and purchases the digital contents through the host terminal 13, the content providing server 12 transmits the RO content 16 including the executable content 15a and the storage device code block 15b, To the host terminal (13). The host terminal 13 stores or installs the service content 15a in the internal memory and transfers the RO 16 including the code block 15b for the storage device to the storage device 14. [ The storage device 14 installs the RO 16 and returns or deletes information of the RO according to a user's request through the host terminal 13. [ Particularly, during execution of the executable content 15a, when the storage device code block 15b is called, the storage device 14 checks the RO 16 and if it is authorized, the storage device code block 15b And then returns the resultant value to the host terminal 13. [ The host terminal 13 normally executes the executable content 15a using the returned result value.

도 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 host terminal 13 includes a ROAP agent 100 and a DRM agent 200 for a host terminal, and the storage device 14 includes a DRM agent 300 for a storage device And a file system 400.

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 ROAP agent 100 is a module that communicates with the content providing server 12 in order to install an RO, which is a right to use digital contents. More specifically, if an application such as a media player requests decryption from the host terminal DRM agent 200 to use the digital content but does not have the right to use it, the ROAP agent 100 requests RO. At this time, the ROAP agent 100 processes the Download Descriptor (DD) of the corresponding RO and exchanges ROAP messages between the DRM agent 200 for the host terminal and the content providing server 12 using the ROAP trigger. When the ROAP communication is normally performed or abnormally performed, the ROAP agent 100 generates an Install Notification message and transmits the result to the content providing server 12.

호스트 단말용 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 agent 200 for a host terminal supports arbitrary applications of the host terminal 13 to use the DRM package contents. The functions provided for this include rights related functions such as acquisition and installation and deletion of RO, and functions related to playback of contents such as acquisition of CEK, opening of DCF, reading, closing and moving. The DRM agent 200 for the host terminal exchanges ROAP messages with the content providing server 12 through the ROAP agent 100 and processes the ROAP message to install and install the RO through the DRM agent 300 for the storage device And decrypts the digital content by receiving the CEK from the DRM agent 300 for the storage device according to the request of the application and provides the DRM agent 300 for the storage device 300 (RPC) to the storage device 14 via the network.

저장 장치용 DRM 에이전트(300)는 호스트 단말(13)과 연동하여 디지털 컨텐츠의 RO(Rights Object)에 대한 실질적인 관리 기능을 수행한다. 여기서 실질적인 관리 기능은, RO의 설치, 정보 반환, 삭제를 포함한다.The DRM agent 300 for a storage device performs an actual management function for RO (Rights Object) of digital contents in cooperation with the host terminal 13. [ The actual management functions here include installation of RO, return of information, and deletion.

저장 장치(13)의 파일 시스템(400)은 저장 장치용 DRM 에이전트(300)에 의해 설치되는 복수의 RO를 저장한다. 더하여, 복수의 저장장치용 코드블록(15b)가 더 저장될 수 있다.The file system 400 of the storage device 13 stores a plurality of ROs installed by the DRM agent 300 for the storage device. In addition, a plurality of code blocks 15b for a storage device can be further stored.

도 5는 ROAP 에이전트(100)의 상세 구성을 보인 블록도이다.5 is a block diagram showing a detailed configuration of the ROAP agent 100. As shown in FIG.

도 5를 참조하면, 호스트 단말(13)에 구비된 ROAP 에이전트(100)는, 소켓(110)과, ROAP 프로세서(120)와, DD 파서(130)와, 트리거 DB(140)를 포함한다.5, the ROAP agent 100 included in the host terminal 13 includes a socket 110, a ROAP processor 120, a DD parser 130, and a trigger DB 140.

소켓(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 socket 110 performs ROAP communication with the content providing server 12. More specifically, the ROAP message is received from the content providing server 12 and transferred to the ROAP processor 120 and the DRM agent 200 for the host terminal, and the ROAP processor 120 and the DRM agent 200 for the host terminal, Message to the content providing server 12, and performs a function of a Parse HTTP Message, a Read HTTP Message, and a Send HTTP Message.

ROAP 프로세서(120)는 ROAP 에이전트(100)의 전체적인 수행을 관리하는 모듈로서, 호스트 단말(13)에 설치된 다른 어플리케이션으로부터 RO 획득을 요청 받고, DRM+ Lib를 사용하여 상기 요청에 따른 처리를 수행하고, 호스트 단말(13)의 화면으로 실행 상태를 알리는 UI(User Interface)를 표시한다. 이와 관련하여 ROAP 프로세서(120)는 Handle ROAP 기능을 포함한다.The ROAP processor 120 is a module that manages the overall performance of the ROAP agent 100. The ROAP processor 120 receives an RO acquisition request from another application installed in the host terminal 13 and performs processing according to the request using the DRM + Lib, A UI (User Interface) indicating the execution state is displayed on the screen of the host terminal 13. [ In this regard, the ROAP processor 120 includes a Handle ROAP function.

DD 파서(130)는 ROAP 트리거에 대한 DD를 해석한다. 더 구체적으로 DD 파서(130)는 별도의 XML 파서 Lib를 사용하여 DD를 파싱하여 CID(Content ID)나 Install Notification할 URI 등을 DD 구조체에 보관한다.The DD parser 130 interprets the DD for the ROAP trigger. More specifically, the DD parser 130 parses the DD using a separate XML parser Lib to store the CID (Content ID) or the URI to be installed in the DD structure.

트리거 DB(140)는 ROAP 통신이 실패했을 때의 ROAP 트리거를 보관한다. 더하여, 기 설정된 정책에 따라서 일정 기한 후에 저장된 ROAP 트리거를 정리한다.The trigger DB 140 holds the ROAP trigger when the ROAP communication fails. In addition, the ROAP triggers stored after a certain period of time are organized according to a preset policy.

상기 소켓(110)과, ROAP 프로세서(120)와, DD 파서(130)를 통하여, ROAP 에이전트(100)는 RO를 설치하기 위해 컨텐츠 제공 서버(12)와 ROAP 통신을 수행하여, RO 구매를 요청하고, 이에 따라 제공되는 RO의 DD를 처리하고 ROAP 트리거를 사용하여 호스트 단말용 DRM 에이전트와 컨텐츠 제공 서버(12) 간에 ROAP 메시지를 교환하도록 한다.The ROAP agent 100 performs ROAP communication with the content providing server 12 to install the RO through the socket 110, the ROAP processor 120 and the DD parser 130, And processes the DD of the RO provided thereby to exchange ROAP messages between the DRM agent for the host terminal and the content providing server 12 using the ROAP trigger.

다음으로 도 6은 호스트 단말(13)에 구비되는 호스트 단말용 DRM 에이전트(200)의 상세 구성을 나타낸 블록도이다.6 is a block diagram showing a detailed configuration of a DRM agent 200 for a host terminal provided in the host terminal 13. As shown in FIG.

도 6을 참조하면, 호스트 단말용 DRM 에이전트(200)는, DRM 에이전트 제어 모듈(210)과, ROAP 엔진(220)과, DCF 매니저(230)와, RO 매니저(240)와, 저장 장치 인터액션 매니저(250)를 포함한다.6, the DRM agent 200 for a host terminal includes a DRM agent control module 210, a ROAP engine 220, a DCF manager 230, an RO manager 240, a storage device interaction manager 220, (250).

DRM 에이전트 제어 모듈(210)은, 호스트 단말용 DRM 에이전트(200)의 모든 동작을 제어하고 관리한다. The DRM agent control module 210 controls and manages all operations of the DRM agent 200 for the host terminal.

ROAP 엔진(220)은 OMA DRM 규격서에 정의된 5가지 ROAP 프로토콜의 처리를 수행한다. ROAP 프로토콜은 RI 등록, 디바이스/도메인 RO 획득, 도메인 가입 및 탈퇴를 가능하게 해 준다. ROAP 엔진(220)은 3 개의 하위 모듈, 즉, ROAP 프로세서(221)와 ROAP 제너레이터(222)와 ROAP 파서(223)을 포함한다.The ROAP engine 220 performs processing of the five ROAP protocols defined in the OMA DRM specification. The ROAP protocol enables RI registration, device / domain RO acquisition, domain join and opt-out. The ROAP engine 220 includes three sub-modules: a ROAP processor 221, a ROAP generator 222, and a ROAP parser 223.

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 ROAP processor 221 performs an operation of the ROAP protocol specified in the OMA DRM specification, and performs exception and error processing that occurs during the operation of the ROAP protocol. The ROAP processor 221 has Initialize ROAP, Handle ROAP, and Finalize ROAP functions. The ROAP generator 222 uses the XML manager to control the ROAP PDU-Device Hello, Registration Request, RO Request, Join Domain Request, Leave Domain Request-to be transmitted to the content providing server 12 according to the control of the ROAP processor 221 . The ROAP parser parses an ROAP tree or an ROAP PDU - TriggerRI Hello, Registration Response, RO Response, Join Domain Response, Leave Domain Response - issued by the RI using the XML manager and provides the ROAP processor 221 with the parsed ROAP PDU.

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 DCF manager 230 manages the DCF conforming to the OMA DRM standard and includes a DCF Interpreter 231 and a DCF Renderer 232. The DCF interpreter 231 analyzes and analyzes the DCF according to the OMA DRM standard specification. At this time, analysis and analysis by the DCF interpreter 231 are performed on a box object basis, and a function of analyzing the entire DCF at a time and a function of selecting and analyzing only a specific box object are provided. The DCF interpreter 231 includes functions of a Parser Box, a Get Box, and a Find Box. In addition, the DCF interpreter 231 analyzes the DCF and analyzes the necessary information before providing it to the application through other modules. The DCF renderer 232 provides partial decryption and full decryption functions for the DCF.

RO 매니저(240)는 RO를 관리하는 기능을 제공하는데, 더 구체적으로, 단일 모듈로 구성되어 RO를 양도하기 위해 컨텐츠 제공 서버(12) 및 저장 장치(14)와 연동하여 동작하는 기능을 제공한다. 특히, RO 매니저(240)는 Upload RO, Delete RO 등의 RO 관리 기능이 포함된다. The RO manager 240 provides a function of managing the RO, and more specifically, a function of operating in conjunction with the content providing server 12 and the storage device 14 in order to transfer the RO composed of a single module . In particular, the RO manager 240 includes RO management functions such as Upload RO and Delete RO.

저장 장치 인터액션(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 device interaction manager 240 provides a function for interworking with the DRM agent 300 for the storage device in order to supplement the function of the DRM agent 200 for the host terminal. More specifically, the storage device interaction manager 240 is composed of a single module, and performs an interworking function related to the RO and the certificate. For example, the install interactions manager 240 may include, for example, Install RO, Set RICTX, Get RITCX, Get CEK, Get ROID List by CID, Get Signature, Get Rights Info, and Notify RO.

이상에서 설명한 DRM 에이전트 제어 모듈(210)과 ROAP 엔진(220)과 DCF 매니저(230)와 RO 매니저(240)와 저장 장치 인터액션 매니저(250)의 조합에 의하여, 본 발명에 의한 호스트 단말용 DRM 에이전트(200)는, 호스트 단말(13)의 임의 어플리케이션이 디지털 컨텐츠를 사용할 수 있도록 지원한다.By combining the DRM agent control module 210, the ROAP engine 220, the DCF manager 230, the RO manager 240, and the storage device interaction manager 250 described above, the DRM agent for the host terminal according to the present invention (200) supports arbitrary applications of the host terminal (13) to use digital contents.

다음으로, 저장 장치용 DRM 에이전트(300)에 대하여 설명한다.Next, the DRM agent 300 for the storage apparatus will be described.

도 7을 참조하여, 저장 장치용 DRM 에이전트(300)는 RO 매니저(310)와 RI 컨텍스트 매니저(320)와 PKI 매니저(330)를 포함한다.Referring to FIG. 7, DRM agent 300 for storage includes RO manager 310, RI context manager 320, and PKI manager 330.

저장 장치용 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 RO manager 310 of the DRM agent 300 for the storage device substantially manages the RO acquired by the DRM agent 200 for the host terminal. Therefore, in order for the RO acquired by the DRM agent 200 for the host terminal to be available, the RO manager 310 of the DRM agent 300 for the storage device must be present. More specifically, the RO manager 310 receives the RO acquired from the DRM agent 200 for the host terminal, interprets and installs the RO, and returns the information of the installed RO to the DRM agent 200 for the host terminal, And the like. The RO manager 310 includes an RO install function for installing an RO in the file system 400 of the storage device 14 or removing an installed RO, an RO parsing function for parsing an RO received through ROAP An RO information returning function (RO Info) for returning the information of the RO installed in the file system 400 to the DRM for the host terminal 200, an RO updating function (RO) for updating the consumed rights to the RO, Update.

다음으로, RI 컨텍스트 매니저(320)는, RO를 획득하는데 필요한 정보인 RI 컨텍스트(Right Issuer Context)를 관리하는 것으로서, RI 컨텍스트를 파일 시스템(400)의 소정 영역에 저장하여 보관하거나, 정보를 가져오거나, 삭제한다. 이를 위하여, RI 컨텍스트 매니저(320)는, RI 컨텍스트를 저장하는 기능(setRICTX)과 RI 컨텍스트를 가져오는 기능(getRICTX)을 포함한다.The RI context manager 320 manages an RI context (Right Issuer Context), which is information required to acquire an RO. The RI context manager 320 stores the RI context in a predetermined area of the file system 400, Come or delete it. To this end, the RI context manager 320 includes a function (setRICTX) for storing an RI context and a function (getRICTX) for obtaining an RI context.

마지막으로, 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 PKI manager 330 provides certificate-based authentication and related functions for mutual authentication between the RI (Right Issuer) issuing an RO and the DRM agent 300 for a storage device. And a function of extracting the CEK from the RO installed in the file system 400 through the PKI manager 330. The PKI manager 330 includes three sub-modules, a CEK manager 331, an authentication manager 332, and a signature manager 333. The CEK manager 331 decrypts the encrypted CEK included in the RO to extract the CEK. The authentication manager 332 provides a function of fetching and returning the device certificate stored in the file system 400 of the storage device 14. [ The signature manager 333 provides a function of signing a ROAP message to be delivered to the RI of the content providing server 12.

상술한 바와 같이 구성된 저장 장치용 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 agent 300 for a storage device configured as described above analyzes the RO obtained through the RO manager 310 and installs the RO in the file system 400. The DRM agent 300 for DRM agent control of the DRM agent 200 for the host terminal Stores the RI context transmitted from the DRM agent control module 210 in the file system 400 and fetches and returns the stored RI context according to the request of the DRM agent control module 210. In addition, the CEK is extracted from the RO through the PKI manager 330 and provided to the DRM agent 200 for the host terminal, and the ROAP message to be sent from the DRM agent 200 for the host terminal to the RI of the content providing server 12 Perform signature.

이상에 설명한 바에 따르면, 본 발명이 적용된 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 storage device 14, so that the security and mobility of the RO management that the user has legally purchased can be increased, As a result, the convenience of users who purchase and use DRM-protected digital contents can be improved.

다음으로 상술한 호스트 단말용 DRM 에이전트(300)와 저장 장치용 DRM 에이전트(400)에 의한 분리형 RO 관리 기반 DRM 서비스 방법을 설명한다.Next, a separate RO management DRM service method by the DRM agent 300 for a host terminal and the DRM agent 400 for a storage device will be described.

도 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 web browser 131 of the host terminal 13 and accesses the web site provided by the content providing server 12 and selects desired digital content, the web browser 131 Requests a download descriptor (DD) for downloading the digital content selected by the content providing server 12 (S81). Prior to the DD request, a payment procedure for digital content may be further performed.

상기 요청에 대한 응답으로 컨텐츠 제공 서버(12)로부터 선택한 디지털 컨텐츠에 대한 DD를 수신하면, 웹 브라우저(131)는 상기 DD를 다운로드 에이전트(132)로 전달하고(S82), 다운로드 에이전트(132)는 상기 DD를 이용하여 컨텐츠 제공 서버(12)에 선택한 디지털 컨텐츠의 DCF를 요청하여 다운로드 받아 호스트 단말(13)의 파일 시스템(133)에 저장한다(S83).Upon receiving the DD for the selected digital content from the content providing server 12 in response to the request, the web browser 131 delivers the DD to the download agent 132 (S82), and the download agent 132 The DCF of the digital content selected by the content providing server 12 using the DD is downloaded and stored in the file system 133 of the host terminal 13 at step S83.

한편, 상기 웹 브라우저(131)는 상기 선택한 디지털 컨텐츠에 대한 사용권한을 획득하는데 필요한 트리거를 컨텐츠 제공 서버(12)에 요청하고(S84), 상기 요청에 대한 응답으로 트리거가 수신되면, 수신한 트리거와 앞서 수신한 DD를 함께 ROAP 에이전트(100)로 전달한다(S85).Meanwhile, the web browser 131 requests the content providing server 12 to acquire a usage right for the selected digital content (S84). If the trigger is received in response to the request, To the ROAP agent 100 (S85).

이어서 ROAP 에이전트(100)가 전달받은 트리거를 이용하여 컨텐츠 제공 서버(12)로 선택한 디지털 컨텐츠에 대한 RO를 요청하고(S86), 이에 대한 응답이 수신되면, 수신된 RO를 호스트 단말용 DRM 에이전트(200)로 전달한다(S87).Then, the ROAP agent 100 requests the RO of the digital content selected by the content providing server 12 using the trigger received (S86). If a response to the RO is received, the received RO is transmitted to the DRM agent 200 (S87).

상기 호스트 단말용 DRM 에이전트(200)는 전달받은 RO에 대한 설치를 저장 장치용 DRM 에이전트(300)에 요구하고, 이에 의하여 저장 장치용 DRM 에이전트(300)가 상기 획득한 RO를 저장 장치(14)의 파일 시스템(400)에 저장한다.The DRM agent for the host terminal 200 requests the DRM agent 300 for the storage device to install the received RO so that the DRM agent 300 for the storage device stores the obtained RO in the storage device 14. [ In the file system 400 of FIG.

상기에 의하여, 선택한 디지털 컨텐츠에 대하여, 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 storage device 400. [

다음으로, 도 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 arbitrary application program 134 of the host terminal 13 wants to use the content protected by the DRM, the DRM agent 200 for the host terminal 13 requests the DRM agent 200 to read the content (S91 ). Here, the application program 134 is a program that performs an arbitrary function using digital contents, and may be, for example, an image viewer, a reproduction program of a moving picture or an audio file, or the like.

상기 요청을 수신한 호스트 단말용 DRM 에이전트(200)는 먼저, 해당 컨텐츠의 DCF 파일을 복호화하기 위한 CEK를 저장 장치용 DRM 에이전트(300)에 요청한다.Upon receiving the request, the DRM agent 200 for the host terminal first requests the DRM agent 300 for the storage device to decrypt the DCF file of the corresponding content.

이에 저장 장치용 DRM 에이전트(300)가 파일 시스템(400)에 저장된 RO를 로드하여, RO로부터 CEK를 추출한다(S93). 상기 CEK 추출 과정은 저장 장치(13)의 디바이스 인증서에 포함되는 개인키 등을 이용하여 CEK를 복호화하는 과정을 포함할 수 있다.Then, the DRM agent 300 for the storage device loads the RO stored in the file system 400 and extracts the CEK from the RO (S93). The CEK extraction process may include decrypting the CEK using the private key included in the device certificate of the storage device 13.

상기 저장 장치용 DRM 에이전트(300)은 추출한 CEK를 호스트 단말용 DRM 에이전트(200)로 전달하고(S94), 호스트 단말용 DRM 에이전트(200)는 전달받은 CEK를 이용하여 파일 시스템(133)에 저장된 해당 컨텐츠의 DCF 파일을 복호화하여 원래의 디지털 컨텐츠 파일을 획득한다(S95).The DRM agent 300 for storage transmits the extracted CEK to the DRM agent 200 for the host terminal in step S94 and the DRM agent for the host terminal 200 stores the CEK in the file system 133 using the received CEK The DCF file of the content is decrypted to acquire the original digital content file (S95).

그리고, 상기 호스트 단말용 DRM 에이전트(200)은 복호화에 의해 획득한 컨텐츠를 상기 응용 프로그램(134)으로 전달한다(S96).The DRM agent 200 for the host terminal transfers the content obtained by the decryption to the application program 134 (S96).

이에 의하면, 저장 장치(14)에 구비된 저장 장치용 DRM 에이전트(300)를 통해서 CEK가 획득되어야만 DRM으로 보호된 컨텐츠의 이용이 가능해진다. According to this, only when the CEK is acquired through the DRM agent 300 for the storage device provided in the storage device 14, the contents protected by the DRM can be used.

다음으로, 도 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 executive content 15a is digital content based on separation execution, in which some code blocks of the code area are encrypted by the CEK, some code blocks of the code area are separated and can be executed in the storage device 14 And is stored in the storage device 14 as the storage device code block 15b. In addition, an auxiliary execution code 158 for connection with the storage device code block 15b is additionally generated in the executable content 15a.

도 10을 참조하면, 호스트 단말(13)에 설치된 분리 실행 기반의 실행형 컨텐츠(15a)가 실행되는 중에, 암호화된 코드 블록에 진입하면, 상기 보조 실행 코드(158)를 통해 호스트 단말용 DRM 에이전트(200)로 해당 코드블록에 대한 복호화가 요청된다(S1001).Referring to FIG. 10, when an execution execution based content 15a installed in the host terminal 13 is being executed, when entering the encrypted code block, the DRM agent for a host terminal The decoding unit 200 requests decoding of the code block (S1001).

이에 상기 호스트 단말용 DRM 에이전트(200)는 상기 코드블록의 복호화에 필요한 CEK를 저장 장치용 DRM 에이전트(300)에 요청한다(S1002).The DRM agent 200 for the host terminal requests the DRM agent 300 for the storage device to decrypt the code block (S1002).

저장 장치용 DRM 에이전트(300)는 상기 요청에 의해 파일 시스템(400)에서 RO를 가져와 CEK를 추출하고, CEK가 복호화되어 있는 경우 이를 저장 장치(14)의 개인키로 복호화한다(S1003).The storage DRM agent 300 extracts the CEK from the RO in the file system 400 and decrypts the decrypted CEK with the private key of the storage device 14 (S1003).

그리고, 저장 장치용 DRM 에이전트(300)는 추출한 CEK를 호스트 단말용 DRM 에이전트(200)로 전달한다(S1004).Then, the DRM agent 300 for storage transmits the extracted CEK to the DRM agent 200 for the host terminal (S1004).

상기 호스트 단말용 DRM 에이전트(200)는 상기 전달받은 CEK로 해당 코드 블록을 복호화한 후 상기 보조 실행 코드(158)로 전달하며, 보조 실행 코드(158)는 상기 복호화된 코드블록을 메모리 상에서 런타임 실행시킨다. The DRM agent 200 for a host terminal decodes the corresponding code block into the received CEK and transfers the decoded code block to the auxiliary execution code 158. The auxiliary execution code 158 executes the decoded code block in a memory .

이후 계속하여 실행형 컨텐츠(15a)가 실행되는 중에, 분리된 코드 블록에 도달하면, 보조 실행 코드(158)에 의하여 호스트 단말용 DRM 에이전트(200)로 저장 장치용 코드 블록(15b)에 대한 분리 실행이 요청된다(S1006). 이는 RPC 호출에 의해 이루어질 수 있다.If the separated code block is reached during execution of the executable content 15a, the DRM agent 200 for a host terminal disconnects the storage device code block 15b by the auxiliary execution code 158 Execution is requested (S1006). This can be done by an RPC call.

이에 호스트 단말용 DRM 에이전트(200)는 저장 장치용 DRM 에이전트(300)와의 사이에 형성된 보안 채널을 통해 저장 장치용 코드 블록(15b)를 호출한다(S1007). 이는 애플릿 호출을 통해 이루어질 수 있다.The DRM agent 200 for the host terminal calls the storage device code block 15b through the secure channel formed between the DRM agent 200 for the storage device and the DRM agent 300 for the storage device (S1007). This can be done via an applet call.

이에 저장 장치(14)에서 저장 장치용 코드 블록(15b)가 실행되고(S1008), 실행이 완료되면, 그 결과값을 저장 장치용 DRM 에이전트(3000와 호스트 단말용 DRM 에이전트(200)를 통해서 보조 실행 코드(158)로 반환한다(S1009, S1010).The storage device code block 15b is executed (S1008). When the execution is completed, the resultant value is stored in the storage device DRM agent 3000 and the host terminal DRM agent 200 via the auxiliary And returns it to the execution code 158 (S1009, S1010).

상기 보조 실행 코드(158)은 반환된 결과값을 실행형 컨텐츠(15a)에 적용하고, 실행형 컨텐츠(15a)를 반환된 결과값을 이용하여 실행을 계속한다.The auxiliary execution code 158 applies the returned result value to the executable content 15a and continues execution using the returned result value in the executable content 15a.

상기에 의하면, 호스트 단말(13)과 저장 장치(14)에 각각 분리되어 형성된 호스트 DRM 에이전트(200)와 저장 장치용 DRM 에이전트(300)를 통하여, 실행형 컨텐츠(15a)가 정상적인 동작을 수행할 수 있게 된다.The execution content 15a performs a normal operation through the host DRM agent 200 and the DRM agent 300 for the storage device that are separately formed in the host terminal 13 and the storage device 14 .

마지막으로, 도 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 application program 134 installed in the host terminal 14 desires to play back digital contents protected by DRM, the DRM agent 200 for a host terminal requests an RO check for decoding a DCF (S1101).

이에 호스트 단말용 DRM 에이전트(200)는 상기 디지털 컨텐츠의 복호화를 위하여 저장 장치용 DRM 에이전트(300)로 CEK를 요청하고, 상기 요청을 수신한 저장 장치용 DRM 에이전트(300)는 파일 시스템(400)의 RO로부터 CEK를 추출하기 위하여 RO를 체크하는데, 이때 RO의 사용 권한이 소멸된 경우 저장 장치용 DRM 에이전트(300)는 호스트 단말용 DRM 에이전트(200)로 에러를 통보한다(S1103). The DRM agent 200 for the host terminal requests the DRM agent 300 for the storage device to decrypt the digital content and the DRM agent 300 for the DRM agent receiving the request transmits the file system 400, The DRM agent 300 for the storage device notifies the DRM agent 200 for the host terminal of the error when the use right of the RO is lost (S1103).

상기 호스트 단말용 DRM 에이전트(300)는 에러 코드를 응용 프로그램(134)에 전달하고, 응용 프로그램(134)는 상기 에러코드를 확인하여, 사용 권한이 만기된 것이면, 사용자 요청에 따라서 컨텐츠 제공 서버(12)로 재 구매 요청을 전달한다(S1104).The DRM agent 300 for a host terminal transmits an error code to the application program 134. The application program 134 checks the error code and if the usage right expires, 12) (S1104).

이에 컨텐츠 제공 서버(12)는 재 구매 절차(예를 들어, 지불 처리)를 수행한 후, RO의 획득을 위한 트리거와 DD 를 호스트 단말(131)로 전달한다(S1105).After the content providing server 12 performs the re-purchase procedure (e.g., payment processing), the content providing server 12 transmits the trigger and the DD for acquiring RO to the host terminal 131 (S1105).

상기 트리거와 DD는 웹 브라우저(131)를 통해 ROAP 에이전트(100)로 전달되며(S1106), 상기 ROAP 에이전트(100)는 전달받은 트리거를 이용하여 컨텐츠 제공 서버(12)에 RO를 요청하여 획득한다(S1107). 그리고 획득한 RO를 호스트 단말용 DRM 에이전트(200)로 전달한다.The trigger and the DD are transmitted to the ROAP agent 100 through the web browser 131 at step S1106 and the ROAP agent 100 requests and obtains an RO from the content providing server 12 using the received trigger (S1107). And transfers the obtained RO to the DRM agent 200 for the host terminal.

상기 호스트 단말용 DRM 에이전트(200)는 전달된 RO에 대한 설치를 저장 장치용 DRM 에이전트(300)에 지시한다(S1109). 이에 저장 장치용 DRM 에이전트(300)는 새롭게 갱신된 RO를 파일 시스템(400)에 저장하며, 그 결과 RO의 갱신이 이루어져, 해당 디지털 컨텐츠의 이용이 다시 가능하게 된다. The DRM agent 200 for the host terminal instructs the DRM agent 300 for the storage device to install the transferred RO (S1109). Accordingly, the DRM agent 300 for the storage device stores the newly updated RO in the file system 400, and as a result, the RO is updated, and the digital content can be used again.

본 발명에 따른 분리형 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)

DRM(Digital Right Management)에 의해 보호된 디지털 컨텐츠의 사용 권한을 명시한 RO(Right Object)를 발급하는 서버로부터 RO를 획득하는 ROAP(Rights Object Acquisition Protocol) 에이전트; 및
상기 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.
제1항에 있어서, 상기 호스트 단말용 DRM 에이전트는
상기 디지털 컨텐츠에 대한 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.
제1항에 있어서, 상기 호스트 단말용 DRM 에이전트는
상기 디지털 컨텐츠가 분리 실행 기반의 실행형 컨텐츠인 경우, 상기 저장 장치로 저장 장치용 코드블록의 호출을 전달하고, 상기 저장장치로부터 저장 장치용 코드 블록의 실행 결과값을 반환 받아 상기 디지털 컨텐츠로 제공하는 것을 특징으로 하는 분리형 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.
제1항에 있어서, 상기 ROAP 에이전트는
상기 서버와 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.
제1항에 있어서, 상기 호스트 단말용 DRM 에이전트는
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.
제5항에 있어서, 상기 ROAP 엔진은
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.
제5항에 있어서, 상기 DCF 매니저는
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.
제1항에 있어서,
상기 디지털 컨텐츠의 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.
제1항에 있어서, 상기 디지털 컨텐츠는
상기 분리 실행 대상 코드 블록이 상기 저장 장치에서 실행 가능하게 변환된 저장 장치용 코드 블록과 연동하도록 변환된 분리 실행 기반의 실행형 컨텐츠인 것을 특징으로 하는 분리형 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.
삭제delete 제1항에 있어서, 상기 베이식 블록 그룹은
시작점(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.
제11항에 있어서,
상기 베이식 블록은 단일 입력(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.
제13항에 있어서, 상기 저장 장치용 DRM 에이전트는
상기 호스트 단말에서 전달되는 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.
제14항에 있어서, 상기 PKI 매니저는
상기 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.
제13항에 있어서, 상기 파일 시스템은
상기 분리 실행 대상 코드 블록이 저장 장치에서 실행 가능하도록 변환된 저장 장치용 코드 블록을 더 포함하는 것을 특징으로 하는 분리형 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.
삭제delete 제13항에 있어서, 상기 베이식 블록 그룹은
시작점(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.
제18항에 있어서,
상기 베이식 블록은 단일 입력(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.
호스트 단말과 저장장치의 상호 연동을 통한 분리형 RO 관리 방법에 있어서, 상기 호스트 단말이,
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.
제20항에 있어서,
특정 응용 프로그램으로부터 상기 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.
제20항에 있어서,
분리 실행 기반의 실행형 컨텐츠가 실행되는 중에, 상기 분리 실행 대상 코드 블록이 저장 장치에 실행 가능한 형태로 변환된 저장 장치용 코드 블록의 호출을 수신하는 단계;
상기 저장 장치와 보안 채널을 연결하여, 상기 보안 채널을 통해 상기 호출을 저장 장치로 전달하는 단계;
상기 호출된 저장 장치용 코드 블록의 실행이 완료된 후 상기 저장 장치로부터 상기 보안 채널을 통해 실행 결과값을 수신하는 단계; 및
상기 실행 결과값을 상기 분리 실행 기반 컨텐츠로 반환하는 단계를 더 포함하는 분리형 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.
제20항에 있어서,
상기 저장 장치로부터 사용 권한의 소멸에 따른 에러 코드를 수신하는 단계;
상기 에러코드를 상기 응용 프로그램으로 전달하는 단계;
사용자의 요청에 따른 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.
제22항에 있어서, 상기 분리 실행 기반의 실행형 컨텐츠는
상기 분리 실행 대상 코드 블록이 상기 저장 장치에서 실행 가능하게 변환된 저장 장치용 코드 블록을 연결하도록 변환된 것임을 특징으로 하는 분리형 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.
삭제delete 제20항에 있어서, 상기 베이식 블록 그룹은
시작점(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.
제26항에 있어서,
상기 베이식 블록은 단일 입력(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.
제20항 내지 제24항, 제26항 및 제27항 중 어느 한 항에 기재된 분리형 RO 관리 방법을 실행하기 위한 프로그램이 기록되어 있는 것을 특징으로 하는 컴퓨터에서 판독 가능한 기록 매체.
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.
KR20100030188A 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 KR101487175B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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