KR20110013187A - System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof - Google Patents

System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof Download PDF

Info

Publication number
KR20110013187A
KR20110013187A KR1020100030172A KR20100030172A KR20110013187A KR 20110013187 A KR20110013187 A KR 20110013187A KR 1020100030172 A KR1020100030172 A KR 1020100030172A KR 20100030172 A KR20100030172 A KR 20100030172A KR 20110013187 A KR20110013187 A KR 20110013187A
Authority
KR
South Korea
Prior art keywords
content
storage device
server
host terminal
service
Prior art date
Application number
KR1020100030172A
Other languages
Korean (ko)
Inventor
권오인
남기선
Original Assignee
에스케이텔레콤 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 에스케이텔레콤 주식회사 filed Critical 에스케이텔레콤 주식회사
Publication of KR20110013187A publication Critical patent/KR20110013187A/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

PURPOSE: A contents using a storage unit or a service providing system, and a DRM server for unifying the use of a service or contents and payment are provided to use the contents or the service by using one storage by adding a storing function of an RO(Right Object) to the storage with an existing electronic money function. CONSTITUTION: A host terminal(50) requests the transmission of a rights object about the contents or service. A DRM server(40) transmits a subtraction requirement message. The subtraction requirement message is the message for requesting subtraction. If the subtraction history is received, the DRM server effects the validity of the received subtraction history. If the subtraction history is effective, the DRM server transmits the rights object.

Description

저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템 및 방법, 그 DRM서버 및 저장장치, 이를 위한 기록매체 {System and method for providing service or contents using storage device, DRM-server and storage device, and recording medium thereof} System and method for providing content or service using a storage device, a DDR server and a storage device thereof, and a recording medium for the same.

본 발명은 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 관한 것으로, 특히 전자화폐 기능이 들어있는 저장장치를 활용하여 서비스나 컨텐츠를 구매하고, DRM(Digital Rights Management)이 적용된 컨텐츠의 권리객체(RO: Rights Object) 또는 구매한 서비스의 서비스 이용권(권리객체)을 저장장치에 저장하며, 컨텐츠 또는 서비스를 이용할 때 저장장치에 저장된 권리객체를 통해 사용권한 여부를 확인하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템 및 방법, 그 DRM서버 및 저장장치에 관한 것이다.The present invention relates to a content or service providing method using a storage device. In particular, a service or content is purchased using a storage device that includes an electronic money function, and a rights object of a content to which DRM (Digital Rights Management) is applied. Rights Object) or service usage rights (rights objects) of purchased services in a storage device, and a content or service providing system using a storage device that checks whether the right is used through a rights object stored in the storage device when the content or service is used. And a method thereof, a DRM server and a storage device.

전자화폐(Electronic Money)란 은행 등 발행자가 IC칩이 내장된 카드나 공중정보통신망과 연결된 PC 등에 일정화폐가치를 전자기호로 저장하고 이의 지급을 보장함으로써 통신회선으로 자금결제가 이루어지도록 하는 화폐를 말한다. Electronic money is a currency that allows issuers, such as banks, to make a payment through the communication line by storing a fixed currency value as an electronic code and guaranteeing its payment to a card with an IC chip or a PC connected to a public information communication network. Say.

전자화폐의 장점으로는 기존의 지폐, 수표, 동전에 비하여 사용비용이 감소되고, 화폐 발행비용이 절감되는 비용절감 효과가 있고, 작은 단위의 자금결제를 쉽게 할 수 있고, 외국환 거래를 쉽게 할 수 있으며, 계산 정보를 보관하기 용이하다. 그리고, 시간 장소에 관계없이 대금결제가 가능하고, 사용자만이 아는 일련번호를 은행에 신고함으로써 분실한 전자화폐를 회수할 수 있으므로, 전자화폐의 도난이나 분실의 위험이 감소할 수 있다. 또한, 정부 입장에서는 전자화폐를 사용함으로써 조세 투명 효과도 거둘 수 있다. The advantages of electronic money are that the cost of use is reduced compared to existing bills, checks, and coins, and the cost of issuing money is reduced, making it easy to make small-scale payments, and to facilitate foreign exchange transactions. It is easy to keep the calculation information. In addition, payment is possible regardless of time and place, and since a lost electronic money can be recovered by reporting a serial number known only to a user, the risk of theft or loss of electronic money can be reduced. In addition, the government can also achieve tax transparency by using electronic money.

현재 전자화폐 기능을 내장하고 있는 스마트카드는 이미 T-Money, Hi-Pass 와 같은 형태로 실제 사용되고 있다.Currently, smart cards with electronic money functions are already used in the form of T-Money and Hi-Pass.

그러나, 기존 전자화폐 기능만 있는 스마트카드는 결제 기능만 가지고 있기 때문에 서비스를 받거나 또는 컨텐츠를 이용하기 위해서는 컨텐츠 또는 서비스를 이용할 수 있는 권리객체를 별도로 저장하는 안전한 저장소(Secure Storage)가 필요하여, 컨텐츠를 구매하는 수단과 컨텐츠 사용을 위해 권리객체를 저장하는 수단이 별개로 존재하는 불편함이 있었다.However, since existing smart card with only electronic money function has only payment function, in order to receive a service or to use the content, a secure storage for storing a content or a right object that can use the service is required. There was an inconvenience in that there is a separate means of purchasing a means and a means of storing a right object for use of content.

본 발명은 상술한 종래의 문제점을 해결하기 위해 제안된 것으로서, 기존 전자화폐 기능이 있는 저장장치에 컨텐츠 또는 서비스 이용을 위한 권리객체의 저장 기능이 추가되어, 저장장치 하나로 컨텐츠 또는 서비스의 구매와 사용을 동시에 할 수 있는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템 및 방법, 그 서버 및 저장장치를 제공하는데 그 목적이 있다.The present invention has been proposed to solve the above-mentioned conventional problems, and the storage function of the right object for using the content or the service is added to the existing storage device having the electronic money function, so that the purchase and use of the content or service with one storage device. It is an object of the present invention to provide a system and method for providing contents or services using a storage device capable of simultaneously storing the same, and a server and a storage device.

상술한 목적을 달성하기 위한 본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템은 컨텐츠 또는 서비스에 대한 권리객체(Right Object)의 전송을 요청하는 호스트 단말, 호스트 단말로부터 권리객체의 전송을 요청 받으면, 저장장치 내 전자화폐 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송하고, 저장장치 내 전자화폐 잔액의 차감내역을 수신하면 수신한 차감내역의 유효성을 검증하여, 차감내역이 유효함을 확인하면 권리객체를 전송하는 DRM(Digital Rights Management)서버 및 전자화폐를 저장하고, 호스트 단말을 이용해 DRM서버로부터 차감요청메시지를 수신하면, 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감하고, DRM서버로 호스트 단말을 이용해 차감내역을 전송하며, 호스트 단말을 이용해 DRM서버로부터 권리객체를 수신하면 저장하는 저장장치를 포함한다.When the content or service providing system using the storage device of the present invention for achieving the above object is requested to transmit the rights object from the host terminal, the host terminal requesting the transmission of the right object for the content or service, Deduction request is valid by sending a deduction request message requesting the deduction of the amount of content or service from the electronic money balance in the storage device, and receiving the deduction history of the electronic money balance in the storage device. If the DRM (Digital Rights Management) server and the electronic money for transmitting the rights object is stored, and the deduction request message is received from the DRM server using the host terminal, the amount of the content or service is deducted from the balance of the electronic money. , The deduction is transmitted to the DRM server using the host terminal, and the DRM It includes a storage device to store the rights object from the server.

상술한 목적을 달성하기 위한 본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버는, 데이터 송수신을 위한 서버송수신부, 컨텐츠 또는 서비스에 대한 권리객체를 저장하는 서버저장부, 서버송수신부를 통해 저장장치가 접속된 호스트 단말로부터 권리객체의 전송을 요청 받으면, 서버송수신부를 통해 호스트 단말로 저장장치 내 전자화폐 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송하고, 서버송수신부를 통해 호스트 단말로부터 저장장치 내 전자화폐 잔액의 차감내역을 수신하면 수신한 차감내역의 유효성을 검증하여, 차감내역이 유효함을 확인하면 서버송수신부를 통해 호스트 단말로 권리객체를 전송하는 서버제어부를 포함한다.DRM server in the content or service providing system using the storage device of the present invention for achieving the above object, the server transmission and reception unit for transmitting and receiving data, the server storage unit for storing the rights object for the content or service, server transmission and reception unit When the storage device is requested to transmit the rights object from the connected host terminal, the server sends and receives a request for subtraction requesting the amount of the content or service from the electronic money balance in the storage device to the host terminal through the server transmitting and receiving unit. Receiving the deduction of the balance of the electronic money in the storage device from the host terminal through the unit to verify the validity of the received deduction, if the deduction is valid, the server control unit for transmitting the rights object to the host terminal through the server transmission and reception unit Include.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 서버송수신부를 통해 호스트 단말로부터 저장장치의 장치정보를 수신하면, 수신한 장치정보를 참조하여 저장장치 내 전자화폐의 잔액과 컨텐츠 또는 서비스의 금액을 비교하고, 전자화폐의 잔액이 컨텐츠 또는 서비스의 금액 이상임을 확인하면 차감요청메시지를 전송하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, when the server control unit receives the device information of the storage device from the host terminal through the server transmission and reception unit, the electronic device in the storage device is referred to by referring to the received device information. Comparing the balance of the money and the amount of the content or service, and confirming that the balance of the electronic money is more than the amount of the content or service, characterized in that for transmitting a deduction request message.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 전자화폐의 잔액이 컨텐츠 또는 서비스의 금액 미만임을 확인하면 호스트 단말로 잔액부족메시지를 전송하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, the server controller, if it is confirmed that the balance of the electronic money is less than the amount of the content or service, characterized in that for transmitting a balance shortage message to the host terminal; .

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 수신한 장치정보를 참조하여 저장장치 내 권리객체가 부존재하거나 권리객체가 만료됨을 확인한 경우, 저장장치 내 전자화폐의 잔액과 컨텐츠 또는 서비스의 금액을 비교하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, the server control unit refers to the received device information, when it is confirmed that the right object in the storage device does not exist or the right object expires, It is characterized by comparing the balance of money and the amount of content or services.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 권리객체가 만료됨을 확인한 경우, 권리객체와 함께 만료된 권리객체의 삭제를 요청하는 삭제요청메시지를 전송하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, the server control unit transmits a deletion request message requesting the deletion of the expired rights object together with the rights object when it is confirmed that the rights object has expired. It is characterized by.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버저장부는 등록정보를 더 저장하고, 서버제어부는 서버송수신부를 통해 호스트 단말로부터 인증정보를 수신하면, 등록정보를 참조하여 인증을 수행하고 차감요청메시지를 전송하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, the server storage unit further stores the registration information, the server controller receives the authentication information from the host terminal through the server transmission and reception unit, by referring to the registration information It performs authentication and transmits a deduction request message.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 차감요청메시지를 암호화하여 전송하는 것을 특징으로 한다. In the DRM server in the content or service providing system using the storage device of the present invention, the server control unit is characterized in that for transmitting the encrypted request message.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 서버송수신부를 통해 권리객체의 저장완료메시지를 수신하면, 서버송수신부를 통해 호스트 단말로 저장완료메시지를 전송하여 출력하도록 하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, when the server control unit receives the storage completion message of the rights object through the server transmission and reception unit, and transmits the storage completion message to the host terminal through the server transmission and reception unit; Characterized in that the output.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 서버제어부는, 차감내역이 유효함을 확인하면 권리객체를 생성하여 서버송수신부를 통해 호스트 단말로 권리객체를 전송하는 것을 특징으로 한다.In the DRM server in the content or service providing system using the storage device of the present invention, the server controller generates a right object and transmits the right object to the host terminal through the server transmitter / receiver when the deduction is valid. It is done.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 한다.In a DRM server in a content or service providing system using a storage device of the present invention, the content includes an executable content and a data type content.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버에 있어서, 권리객체는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 한다.In a DRM server in a content or service providing system using a storage device of the present invention, the rights object includes a code block for executing execution of executable content.

상술한 같은 목적을 달성하기 위한 본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치는, 호스트 단말과 데이터 송수신을 위한 통신부, 전자화폐를 저장하는 저장부, 호스트 단말로부터 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 수신하면, 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감하고, 호스트 단말로 차감내역을 전송하며, 호스트 단말로부터 컨텐츠 또는 서비스에 대한 권리객체를 수신하면 저장부에 저장하는 제어부를 포함한다.The storage device in the content or service providing system using the storage device of the present invention for achieving the above object, the communication unit for transmitting and receiving data with the host terminal, the storage unit for storing electronic money, the balance of electronic money from the host terminal Receives a deduction request message requesting a deduction by the amount of the content or the service, deducts the amount of the content or the service from the balance of the electronic money, transmits the deduction to the host terminal, and the right to the content or the service from the host terminal. When receiving the object includes a control unit for storing in the storage.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치는, 암복호화 처리를 수행하는 암복호화부를 더 포함하고, 제어부는 암복호화부를 통해 차감내역을 암호화하여 전송하는 것을 특징으로 한다.The storage device in the content or service providing system using the storage device of the present invention further includes an encryption / decryption unit that performs an encryption / decryption process, and the control unit encrypts and transmits the deduction history through the encryption / decryption unit.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치에 있어서, 제어부는, 권리객체를 저장한 후, 호스트 단말로 저장완료메시지를 전송하는 것을 특징으로 한다.In the storage device in the content or service providing system using the storage device of the present invention, the control unit, after storing the rights object, characterized in that for transmitting a storage completion message to the host terminal.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치에 있어서, 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 한다.In the storage device in the content or service providing system using the storage device of the present invention, the content includes an executable content and a data type content.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치에 있어서, 권리객체는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 한다.In the storage device in the content or service providing system using the storage device of the present invention, the rights object is characterized in that it comprises a separate execution target code block of the executable content.

상술한 목적을 달성하기 위한 본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법은, DRM서버가, 저장장치가 접속된 호스트 단말로부터 컨텐츠 또는 서비스에 대한 권리객체의 전송을 요청 받으면, 호스트 단말로 저장장치 내 전자화폐 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송하는 메시지전송단계, DRM서버가 호스트 단말로부터 저장장치 내 전자화폐의 잔액을 차감내역을 수신하면 수신한 차감내역의 유효성을 검증하는 검증단계 및 DRM서버가 검증단계에서 차감내역이 유효함을 확인하면, 권리객체를 호스트 단말로 전송하는 권리객체전송단계를 포함한다. In order to achieve the above object, the content or service providing method using the storage device of the present invention, when the DRM server is requested to transmit the rights object for the content or service from the host terminal to which the storage device is connected, the storage device to the host terminal A message sending step for transmitting a deduction request message requesting a deduction of the amount of contents or services from the electronic money balance in the device, and when the DRM server receives the deduction of the balance of electronic money in the storage device from the host terminal, If the verification step for validating and the DRM server confirms that the deduction is valid in the verification step, and includes a rights object transmission step for transmitting the rights object to the host terminal.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 메시지전송단계는, DRM서버가 호스트 단말로부터 저장장치의 장치정보를 더 수신하면, 수신한 장치정보를 참조하여 저장장치 내 전자화폐의 잔액과 컨텐츠 또는 서비스의 금액을 비교하고, 전자화폐의 잔액이 컨텐츠의 금액 이상임을 확인하면 차감요청메시지를 전송하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, in the message transmitting step, when the DRM server further receives the device information of the storage device from the host terminal, the balance of the electronic money in the storage device is referred to with reference to the received device information. And compares the amount of the content or service, and confirms that the balance of the electronic money is equal to or greater than the amount of the content, and transmits a deduction request message.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법은, 메시지전송단계 이후에, DRM서버가, 메시지전송단계에서 전자화폐의 잔액이 컨텐츠 또는 서비스의 금액 미만임을 확인하면 호스트 단말로 잔액부족메시지를 전송하는 단계를 더 포함하는 것을 특징으로 한다.In the method of providing content or service using the storage device of the present invention, after the message transmission step, if the DRM server confirms that the balance of the electronic money is less than the amount of the content or service in the message transmission step, the balance shortage message is transmitted to the host terminal. Characterized in that it further comprises the step.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 메시지전송단계는, DRM서버가, 수신한 장치정보를 참조하여 저장장치 내 권리객체가 부존재하거나 권리객체가 만료됨을 확인한 경우, 저장장치 내 전자화폐의 잔액과 컨텐츠 또는 서비스의 금액을 비교하는 것을 특징으로 한다.In the method for providing content or service using the storage device of the present invention, the message transmitting step may include: when the DRM server determines that the right object in the storage device does not exist or the right object expires with reference to the received device information, Characterized in that the balance of the electronic money and the amount of the content or service.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 권리객체전송단계는, DRM서버가, 권리객체가 만료됨을 확인한 경우, 권리객체와 함께 만료된 권리객체의 삭제를 요청하는 삭제요청메시지를 전송하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, the rights object transmission step, when the DRM server confirms that the rights object has expired, a deletion request message requesting the deletion of the expired rights object together with the rights object. Characterized in that the transmission.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 메시지전송단계는, DRM서버가, 차감요청메시지를 암호화하여 전송하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, the message transmitting step is characterized in that the DRM server encrypts and sends the deduction request message.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 권리객체전송단계는, DRM서버가 검증단계에서 차감내역이 유효함을 확인하면, 컨텐츠 또는 서비스에 대한 권리객체를 생성하여 호스트 단말로 전송하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, in the rights object transmission step, if the DRM server confirms that the deduction is valid in the verifying step, the rights object is generated and transmitted to the host terminal. Characterized in that.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, the content includes an executable content and a data type content.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 권리객체는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 한다.In the method for providing content or a service using a storage device of the present invention, the rights object includes a code block for executing execution of executable content.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 메시지전송단계는, DRM서버가 호스트 단말로부터 인증정보를 수신하면, DRM서버 내 저장된 등록정보와 비교하여 저장장치가 등록된 저장장치임을 확인하고 차감요청메시지를 전송하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, in the message transmission step, when the DRM server receives authentication information from the host terminal, the storage device is registered as compared with the registered information stored in the DRM server. And it characterized in that for transmitting the deduction request message.

상술한 목적을 달성하기 위한 본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법은, 저장장치가 호스트 단말로부터 저장장치 내 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 수신하는 메시지수신단계, 저장장치가 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감하고 호스트 단말로 차감내역을 전송하는 내역전송단계 및 저장장치가 호스트 단말로부터 컨텐츠 또는 서비스에 대한 권리객체를 수신하면 내부에 저장하는 저장단계를 포함한다.In order to achieve the above object, a method of providing content or a service using a storage device of the present invention includes a request for a deduction request from a host terminal to request a deduction of a content or service amount from a balance of electronic money in a storage device. Message receiving step, the storage device subtracts the amount of the content or service from the balance of electronic money and transmits the subtraction details to the host terminal, and when the storage device receives the right object for the content or service from the host terminal, It includes a storage step for storing in.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법은, 저장단계 이후에, 저장장치가 호스트 단말로 권리객체에 대한 저장완료메시지를 전송하는 메시지전송단계를 더 포함하는 것을 특징으로 한다.The content or service providing method using the storage device of the present invention, after the storing step, characterized in that the storage device further comprises a message transmitting step of transmitting a storage completion message for the rights object to the host terminal.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 내역전송단계는, 저장장치가, 차감내역을 암호화하여 전송하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, the detail transmission step is characterized in that the storage device encrypts and transmits the deduction history.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 한다.In the content or service providing method using the storage device of the present invention, the content includes an executable content and a data type content.

본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법에 있어서, 권리객체는 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 한다.In the method for providing content or a service using a storage device of the present invention, the rights object includes a code block for executing execution of executable content.

본 발명은 또한, 전술된 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법을 구현하는 프로그램을 기록한 컴퓨터로 판독 가능한 기록매체를 제공한다.The present invention also provides a computer-readable recording medium having recorded thereon a program for implementing a method of providing contents or a service using the above-described storage device.

본 발명에 의하면, 컨텐츠 또는 서비스를 이용하기 위해서 컨텐츠 또는 서비스의 결제와 함께 구매한 컨텐츠 또는 서비스의 권리객체를 저장장치에 저장함으로써, 결제와 컨텐츠 또는 서비스의 이용이 일원화되기 때문에 절차가 간단해지고, 다양한 서비스에 접목할 수 있다.According to the present invention, by storing the rights object of the content or service purchased with the payment of the content or service in order to use the content or the service, the procedure is simplified because the payment and the use of the content or the service are unified. It can be applied to various services.

또한, 저장장치에 컨텐츠의 권리객체를 저장함으로써, 여러 디바이스(PC, 휴대폰, PMP 등)에서 동일한 컨텐츠를 사용할 수 있는 이점이 있다.In addition, by storing the rights object of the content in the storage device, there is an advantage that the same content can be used in multiple devices (PC, mobile phone, PMP, etc.).

도 1은 본 발명이 적용되는 디지털 저작권 관리 시스템의 구성도이다.
도 2는 본 발명이 적용되는 디지털 저작권 관리 시스템에서 실행형 컨텐츠의 데이터 구조를 보여주는 구성도이다.
도 3은 본 발명이 적용되는 디지털 저작권 관리 시스템에서 분리 실행 기반 컨텐츠의 구조를 나타내는 구성도이다.
도 4는 본 발명이 적용되는 디지털 저작권 관리 시스템에서 분리 실행 기반 컨텐츠 구성 모듈을 나타내는 구성도이다.
도 5는 본 발명이 적용되는 디지털 저작권 관리 시스템에서 실행형 컨텐츠에 삽입될 스터브 코드를 예시한 도면이다.
도 6은 본 발명이 적용되는 디지털 저작권 관리 시스템의 분리 실행 기반 컨텐츠에서 보조 실행 코드의 구성 및 이를 통한 분리 실행 과정을 나타낸 도면이다.
도 7은 본 발명이 적용되는 디지털 저작권 관리 시스템에서 코드 복호화 기능부의 동작 흐름도이다.
도 8은 본 발명의 일 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버를 나타내는 구성도이다.
도 9는 본 발명의 일 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치를 나타내는 구성도이다.
도 10은 본 발명의 일 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법으로 나타내는 흐름도이다.
도 11는 본 발명의 다른 실시예에 따른 저장장치를 이용한 컨텐츠 제공 방법으로 나타내는 흐름도이다.
도 12는 본 발명의 또 다른 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법으로 나타내는 흐름도이다.
1 is a block diagram of a digital rights management system to which the present invention is applied.
2 is a block diagram showing a data structure of executable content in a digital rights management system to which the present invention is applied.
3 is a block diagram showing the structure of the separated execution based content in the digital rights management system to which the present invention is applied.
4 is a block diagram illustrating a separation execution based content composition module in a digital rights management system to which the present invention is applied.
5 is a diagram illustrating a stub code to be inserted into the executable content in the digital rights management system to which the present invention is applied.
FIG. 6 is a diagram illustrating a configuration of an auxiliary execution code in a separation execution based content of a digital rights management system to which the present invention is applied and a separation execution process through the same.
7 is an operation flowchart of a code decoding function unit in a digital rights management system to which the present invention is applied.
8 is a block diagram illustrating a DRM server in a content or service providing system using a storage device according to an embodiment of the present invention.
9 is a block diagram showing a storage device in a content or service providing system using the storage device according to an embodiment of the present invention.
10 is a flowchart illustrating a content or service providing method using a storage device according to an embodiment of the present invention.
11 is a flowchart illustrating a content providing method using a storage device according to another exemplary embodiment of the present invention.
12 is a flowchart illustrating a content or service providing method using a storage device according to another embodiment of the present invention.

이하, 첨부된 도면을 참조하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있는 바람직한 실시예를 상세히 설명한다. 다만, 본 발명의 바람직한 실시예에 대한 동작 원리를 상세하게 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략한다. 또한, 도면 전체에 걸쳐 유사한 기능 및 작용을 하는 부분에 대해서는 동일한 도면 부호를 사용한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art may easily implement the present invention. However, in describing in detail the operating principle of the preferred embodiment of the present invention, if it is determined that the detailed description of the related known functions or configurations may unnecessarily obscure the subject matter of the present invention, the detailed description thereof will be omitted. In addition, the same reference numerals are used for parts having similar functions and functions throughout the drawings.

본 명세서에 있어서 어느 하나의 구성요소가 다른 구성요소로 데이터 또는 신호를 '전송'하는 경우에는, 직접 데이터 또는 신호를 전송할 수 있으며 적어도 하나의 또 다른 구성요소를 통하여 데이터 또는 신호를 전송할 수 있음을 의미한다.
In the present specification, when one component 'transmits' data or a signal to another component, it may directly transmit data or a signal, and may transmit data or a signal through at least one other component. it means.

도 1은 본 발명이 적용되는 디지털 저작권 관리 시스템의 구성도이다. 1 is a block diagram of a digital rights management system to which the present invention is applied.

도 1을 참조하면, 본 발명의 적용되는 디지털 저작권 관리 시스템은 컨텐츠 제공 단말(10), 컨텐츠 등록 서버(30), DRM(Digital Rights Management) 서버(40), 호스트 단말(50) 및 호스트 단말(50)에 유무선 인터페이스를 매개로 연결된 저장장치(60)를 포함하여 구성된다. 본 발명의 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템은 DRM서버(40), 호스트 단말(50) 및 저장장치(60)를 포함하여 구성된다. Referring to FIG. 1, the digital rights management system to which the present invention is applied includes a content providing terminal 10, a content registration server 30, a digital rights management server 40, a host terminal 50, and a host terminal ( 50) is configured to include a storage device 60 connected via a wired or wireless interface. The content or service providing system using the storage device of the present invention includes a DRM server 40, a host terminal 50, and a storage device 60.

본 발명에 있어서, 컨텐츠(11)는 디지털 형태로 저장되고 유통되는 디지털 저작물로서, 소프트웨어, 응용프로그램 등과 같이 실행되는 장치로 하여금 어떠한 기능을 할 수 있도록 복수의 명령어들을 포함하는 실행형 컨텐츠(11a)와 멀티미디어, 음악, 이미지 파일 등과 같이 명령어가 포함되지 않은 데이터형 컨텐츠(11b)를 포함한다.In the present invention, the content 11 is a digital work that is stored and distributed in a digital form, the executable content 11a including a plurality of instructions to enable any device, such as software, application, or the like, to perform any function. And data type content 11b that does not include instructions such as multimedia, music, image files, and the like.

또한, '분리 실행'은 실행형 컨텐츠(11a)가 두 개의 서로 다른 장치, 더 구체적으로는 호스트 단말(50)과 저장장치(60)의 연동을 통해 실행되는 것을 의미한다. 이러한 분리 실행을 구현하기 위해서, 호스트 단말(50)에는 코드 영역에서 선택된 코드 블록(이하 분리 실행 대상 코드 블록이라 함)이 제거된 분리 실행 기반 컨텐츠(37)가 저장되고, 저장장치(60)에는 실행형 컨텐츠(11a)에서 제거되어 저장장치(60)에서 실행 가능하도록 변환한 분리 실행 대상 코드 블록(35)이 저장된 상태에서 호스트 단말(50)이 분리 실행 기반 컨텐츠(37)에서 제거된 부분(분리 실행 대상 코드 블록)에 대한 결과값을 저장장치(60)에 요청하여 반환 받는 형태로 이루어진다.In addition, "separate execution" means that the executable content 11a is executed through the interworking of two different devices, more specifically, the host terminal 50 and the storage device 60. In order to implement such separation execution, the host terminal 50 stores the separation execution base content 37 from which a selected code block (hereinafter referred to as a separation execution target code block) in the code area is removed, and the storage device 60 stores the separation execution base content 37. A portion of the host terminal 50 removed from the separated execution based content 37 in a state in which the separated execution target code block 35 removed from the executable content 11a and converted into executable in the storage device 60 is stored ( Request to the storage device 60 a result value for the separation execution target code block).

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

컨텐츠 제공 단말(10)은 컨텐츠 제공자가 운용하는 단말로서, 네트워크(70)를 통하여 컨텐츠 등록 서버(30)와 통신을 수행하고, 컨텐츠 제공자가 개발한 컨텐츠(11)를 저장하고 있으며, 컨텐츠 등록 서버(30)로 컨텐츠(11)를 전송한다.The content providing terminal 10 is a terminal operated by a content provider. The content providing terminal 10 communicates with the content registration server 30 through the network 70 and stores the content 11 developed by the content provider. The content 11 is transmitted to 30.

컨텐츠 제공 단말(10)은 실행형 컨텐츠(11a)의 경우, 컨텐츠 등록 서버(30)로부터 내려 받은 프로파일링 및 분석 툴(33)을 실행하여 등록할 실행형 컨텐츠(11a)에 대해 동적 프로파일링(dynamic profiling) 및 정적 분석(static analysis)(이하, '프로파일링 및 분석'함)을 통하여 분리 실행 될 실행형 컨텐츠(11a)에서 프로파일 데이터(Profile Data)를 생성하고, 코드 블록 선택 규칙을 입력 받으며, 생성한 프로파일 데이터, 입력 받은 코드 블록 선택 규칙 및 분리 실행 될 실행형 컨텐츠(11a)를 컨텐츠 등록 서버(30)로 전송한다. In the case of the executable content 11a, the content providing terminal 10 executes the profiling and analysis tool 33 downloaded from the content registration server 30 to dynamically profile the executable content 11a to be registered. Profile data is generated from the executable content 11a to be separated and executed through dynamic profiling and static analysis (hereinafter, 'profiling and analysis'), and code block selection rules are inputted. The generated profile data, the input code block selection rule, and the executable content 11a to be separated are transmitted to the content registration server 30.

더 구체적으로, 프로파일링 및 분석 툴(33)은 사용자 우선 (User Preference) 정보를 읽어와 어떠한 부분을 중심으로 프로파일링할 지를 결정한 후, 해당하는 PIN 툴을 로드한다. 그 후, 대상 실행형 컨텐츠(11a)를 메모리에 로드하고, PIN 툴을 삽입하여 실행시키고, 그 결과(프로파일 데이터)를 저장한다. More specifically, the profiling and analysis tool 33 reads user preference information, determines which part to profile, and loads the corresponding PIN tool. Thereafter, the target executable content 11a is loaded into the memory, the PIN tool is inserted and executed, and the result (profile data) is stored.

프로파일 데이터는, 필수적으로, 코드 블록 시작 주소, 코드 블록 종료 주소, 코드 블록 호출 회수(프로파일 중에 호출되는 횟수임), 코드 블록 크기, 및 플로팅 포인트 연산 유무를 포함한다. 이외에, 선택적으로, 코드 블록의 호스트 메모리 참조 회수, 코드 블록의 OS API를 호출하는 회수, 코드 블록의 실행 시간, 코드 블록에서 수행되는 전체 명령어(instruction) 개수, 코드 블록의 실행을 위해 전달되는 파라미터 개수 및 타입, 코드 블록의 실행 후에 반환되는 값의 종류가 포함될 수 있다.Profile data essentially includes a code block start address, a code block end address, a code block call count (which is the number of times called during a profile), a code block size, and the presence or absence of a floating point operation. In addition, optionally, the number of host memory references of a code block, the number of calls to an OS API of the code block, the execution time of the code block, the total number of instructions performed on the code block, the parameters passed for the execution of the code block. The number and type, and the type of the value returned after execution of the code block may be included.

코드 블록 선택 규칙은, 프로파일 데이터의 각 항목에 대해 부여되는 가중치를 설정하기 위한 것으로서, 가중치를 설정할 수 있는 사용자 우선 정보로는, 프로파일링에 의해 선택될 분리 실행 대상 코드 블록(35)에 대한 호출 빈도, 호출 위치, 호스트 메모리 참조 빈도, 및 OS API 참조 빈도 및 분리 실행 대상 코드 블록(35)이 저장될 저장장치(60)의 하드웨어 요소를 포함한다. The code block selection rule is for setting weights to be given for each item of profile data. The user priority information for which weights can be set is a call to the separated execution target code block 35 to be selected by profiling. Frequency, call location, host memory reference frequency, and OS API reference frequency, and the hardware element of storage 60 in which the separate execution target code block 35 is to be stored.

여기서, 호출 빈도는 실행형 컨텐츠(11a)의 실행 중에서 분리 실행 대상 코드 블록(35)이 선정될 코드 블록의 호출 빈도 정도를 나타내는 것으로서, 보통 호출 빈도가 높을 수록 보안 효과를 높일 수 있는 반면에 저장 장치(60)의 부하가 증가하여 실행형 컨텐츠(11a)의 전체 실행 속도를 저하시킬 수 있다. 따라서, 실행형 컨텐츠(11a)의 특성에 맞추어 적절한 호출 빈도를 설정하는 것이 바람직하다. 호출 위치는 분리 실행 대상 코드 블록(35)의 선택에 있어서 실행 초기에 호출되는 코드 블록을 선택할 것인지, 특정 기능 설정 시에 호출되는 코드 블록을 선택할 것인지를 나타낸다. 호스트 메모리 참조 빈도는 분리 실행 대상 코드 블록(35)으로 선택될 코드 블록이 호스트 단말(50)의 메모리를 참조하는 횟수를 나타내며, OS API 참조 빈도는 코드 블록에서 호스트 단말(50)의 OS API 참조 빈도를 나타낸다. 일반적으로, 메모리 참조 빈도 및 OS API 참조 빈도가 높을수록 호스트 단말(50)에 대한 의존성이 높다는 것을 의미하며, 메모리 참조 빈도 및 OS API 참조 빈도가 높은 코드 블록을 분리 실행 대상 코드 블록(35)으로 선정할 경우 보안 효율이 높아지지만, 그 반대로, 실행 속도는 저하되기 때문에, 원하는 보안 레벨에 따라서 메모리 참조 빈도 및 OS API 참조 빈도를 적절하게 설정하여야 한다. 저장장치(60)의 하드웨어 요소는, 예를 들어, 분리 실행 대상 코드 블록(35)이 저장되고 실행될, 저장장치(60)의 DRAM 양이나 NAND 플래쉬 크기, CPU 속도 등을 포함한다.Here, the calling frequency indicates the calling frequency of the code block to which the separated execution target code block 35 is to be selected among the executions of the executable content 11a. In general, the higher the calling frequency, the higher the security effect. The load on the device 60 may increase to decrease the overall execution speed of the executable content 11a. Therefore, it is desirable to set an appropriate call frequency in accordance with the characteristics of the executable content 11a. The call position indicates whether to select a code block to be called at the beginning of execution or to select a code block to be called at the time of setting a specific function in the selection of the separate execution target code block 35. The host memory reference frequency indicates the number of times the code block to be selected as the separated execution target code block 35 refers to the memory of the host terminal 50, and the OS API reference frequency refers to the OS API reference of the host terminal 50 in the code block. Frequency. In general, the higher the memory reference frequency and the OS API reference frequency, the higher the dependency on the host terminal 50. The code block having the high memory reference frequency and the OS API reference frequency is referred to as the separated execution code block 35. When selected, the security efficiency increases, but on the contrary, the execution speed decreases. Therefore, the memory reference frequency and the OS API reference frequency should be appropriately set according to the desired security level. The hardware elements of storage 60 include, for example, the amount of DRAM, NAND flash size, CPU speed, etc. of storage 60 in which separate execution target code block 35 is stored and executed.

이상과 같은 코드 블록 선택 규칙에 따라서 프로파일 데이터의 각 항목에 가중치를 달리 부여함으로써, 추출되는 분리 실행 대상 코드 블록(35)이 달라지며, 그에 따라서 보안 레벨이 달라진다. By differently weighting each item of the profile data according to the above code block selection rule, the extracted execution target code block 35 is different, and thus the security level is changed.

한편, 코드 블록 선택 규칙은 실행형 컨텐츠(11a)의 성격에 따라서 설정할 수 있다. 예를 들어, 실행형 컨텐츠(11a)가 게임 프로그램인 경우 실행 속도가 중요하므로, 호스트 메모리 참조 빈도 및 OS API 참조 빈도를 최소로 낮추는 것이 바람직하며, 이 경우, 호스트 메모리 및 OS API를 최소로 참조하는 베이식 코드 블록을 분리 실행 대상 코드 블록(35)으로 선택함으로써, 실행형 컨텐츠(11a)의 실행 속도 저하를 최소화시킬 수 있다. 또한, 분리 실행 기반 컨텐츠(37)의 판매에 있어서, 저장장치(60)의 가격을 최대한 낮추고 싶은 경우, 저장장치(60)의 하드웨어 요소에 대한 가중치를 낮게 지정하면 된다. 이에 의하면, 저장장치(60)의 가격은 낮출 수 있는 반면, 실행 속도가 다소 낮아질 수 있음을 감안하여야 한다.Meanwhile, the code block selection rule may be set according to the nature of the executable content 11a. For example, if the executable content 11a is a game program, execution speed is important, so it is desirable to reduce the host memory reference frequency and the OS API reference frequency to a minimum, in which case, the host memory and OS API are referred to as a minimum. By selecting the basic code block to be the separated execution target code block 35, the execution speed of the executable content 11a can be minimized. In addition, in the sale of the separated execution based content 37, if the price of the storage device 60 is to be lowered as much as possible, the weight of the hardware element of the storage device 60 may be specified as low. According to this, while the price of the storage device 60 can be lowered, it should be taken into account that the execution speed can be somewhat lowered.

상술한 코드 블록 선택 규칙은, 그 설정 가능한 항목을 더 다양화시킬 수 있음은 물론이다.Of course, the above-described code block selection rules can further diversify the settable items.

컨텐츠 등록 서버(30)는 컨텐츠 제공 단말(10)로부터 수신한 컨텐츠(11) 정보를 웹페이지를 통해 호스트 단말(50)로 제공하고, 데이터형 컨텐츠(11b)를 DRM서버(40)로 전송한다. 실행형 컨텐츠(11a)의 경우, 분리 실행 기반 컨텐츠(37) 및 분리 실행 대상 코드 블록(35)을 생성하여 DRM서버(40)로 전송한다. The content registration server 30 provides the content 11 information received from the content providing terminal 10 to the host terminal 50 through a web page, and transmits the data type content 11b to the DRM server 40. . In the case of the executable content 11a, the separated execution base content 37 and the separated execution target code block 35 are generated and transmitted to the DRM server 40.

한편, 컨텐츠(11)는 실행형 컨텐츠(11a) 및 데이터형 컨텐츠(11b)를 포함하고, 실행형 컨텐츠(11a)의 경우 분리 실행 기반 컨텐츠(37)로 변환되며, 후술하는 DRM서버(40)는 데이터형 컨텐츠(11b) 또는 분리 실행 기반 컨텐츠(37)를 암호화된 컨텐츠(41)로 패키징하여 호스트 단말(50)로 제공하므로, 사용자에게 제공되는 객체는 암호화된 컨텐츠(41)가 될 수 있으나, 이하 설명의 편의를 위해 사용자가 웹페이지를 통해 확인하고 구매 등을 결정하는 객체는 컨텐츠(11)라 한다.Meanwhile, the content 11 includes the executable content 11a and the data type content 11b, and in the case of the executable content 11a, the content 11a is converted into the separated execution based content 37 and the DRM server 40 described later. Since the data type 11b or the separated execution based content 37 is packaged as the encrypted content 41 and provided to the host terminal 50, the object provided to the user may be the encrypted content 41. For convenience of explanation, the object that the user checks through a web page and decides to purchase is referred to as the content 11.

컨텐츠 등록 서버(30)는 분리 실행 기반 컨텐츠 구성 모듈(31)을 통해, 실행형 컨텐츠(11a) 기반으로 분리 실행 기반 컨텐츠(37)와 분리 실행 대상 코드 블록(35)을 생성하며 상세한 과정은 후술한다. The content registration server 30 generates the separation execution base content 37 and the separation execution target code block 35 based on the execution content 11a through the separation execution based content configuration module 31, and a detailed process will be described later. do.

컨텐츠 등록 서버(30)는 사용자가 웹페이지를 통해 컨텐츠(11)를 구매할 수 있도록 컨텐츠(11) 리스트와 해당 컨텐츠(11)에 대한 상세 정보를 제공한다. The content registration server 30 provides a list of content 11 and detailed information about the corresponding content 11 so that a user can purchase the content 11 through a web page.

구체적으로, 호스트 단말(50)로부터 웹페이지 상에 나타난 컨텐츠(11)의 다운로드를 요청신호를 수신하면, 컨텐츠 등록 서버(30)는 해당 컨텐츠(11)의 DD(Download Descriptor)정보를 호스트 단말(50)로 전송한다. Specifically, when receiving a request signal for downloading the content 11 displayed on the web page from the host terminal 50, the content registration server 30 receives the Download Descriptor (DD) information of the corresponding content (11) 50).

DD정보는 컨텐츠(11) 또는 권리객체(43)에 대한 간략 정보 예컨대 파일명, 파일사이즈, 파일제공업체, 해당 컨텐츠(11) 또는 권리객체(43)의 URL정보 등을 말하며, 컨텐츠(11) 또는 권리객체(43)의 다운로드 이전에 수신하여 버퍼에 임시 저장되고, 해당 컨텐츠(11) 또는 권리객체(43) 다운로드 완료 시 자동으로 삭제된다. The DD information refers to brief information about the content 11 or the rights object 43 such as a file name, file size, file provider, URL information of the corresponding content 11 or the rights object 43, and the like. It is received before the download of the rights object 43 and is temporarily stored in a buffer, and is automatically deleted when the download of the corresponding content 11 or the rights object 43 is completed.

또한, 컨텐츠 등록 서버(30)는 호스트 단말(50)로부터 선택한 컨텐츠(11)에 대한 권리객체(43)의 구매, 재구매 요청신호를 수신하면, DRM서버(40)로 구매 또는 재구매 트리거(Trigger)를 요청하고, DRM서버(40)로부터 해당 권리객체(43)에 대한 트리거 및 DD정보를 수신하면 호스트 단말(50)로 전송한다. 또한, 컨텐츠 등록 서버(30)는 호스트 단말(50)로부터 선택한 컨텐츠(11)에 대한 권리객체(43)의 환불 또는 양도 요청신호를 수신하면, DRM서버(40)로 환불 또는 양도 트리거를 요청하고 DRM서버(40)로부터 해당 트리거를 수신하면 호스트 단말(50)로 전송한다.In addition, when the content registration server 30 receives a purchase or repurchase request signal of the rights object 43 for the selected content 11 from the host terminal 50, the content registration server 30 triggers a purchase or repurchase to the DRM server 40. Request, and receives the trigger and DD information for the rights object 43 from the DRM server 40 and transmits to the host terminal 50. In addition, when the content registration server 30 receives a refund or transfer request signal of the rights object 43 for the selected content 11 from the host terminal 50, requests the refund or transfer trigger from the DRM server 40. When the trigger is received from the DRM server 40, the trigger is transmitted to the host terminal 50.

트리거(Trigger)는 DRM서버(40)와 호스트 단말(50) 간의 권리객체(43)의 구매 또는 재구매, 환불 또는 양도, 저장장치(60)의 등록 등을 위한 프로토콜 수행을 시작 시키는 메시지이다. The trigger is a message for starting the protocol execution for the purchase or repurchase, refund or transfer of the rights object 43 between the DRM server 40 and the host terminal 50, and the registration of the storage device 60.

DRM서버(40)는 컨텐츠 등록 서버(30)로부터 수신한 데이터형 컨텐츠(11b) 또는 분리 실행 기반 컨텐츠(37)를 패키징하며, 권리객체(43)를 생성, 관리, 발행하고 발행한 권리객체(43)에 대한 내역을 저장하는 서버이다. The DRM server 40 packages the data type content 11b or the separated execution based content 37 received from the content registration server 30, and generates, manages, issues and issues the rights object 43. 43) A server that stores details about the server.

여기서, 권리객체(43)는 사용자가 구매한 컨텐츠(11)에 대해 컨텐츠(11)와 사용자 사이 구매 관계 및 사용 권한을 명시하고 있다. Here, the rights object 43 specifies the purchase relationship and the usage right between the content 11 and the user with respect to the content 11 purchased by the user.

구체적으로, DRM서버(40)는 CEK(Contents Encryption key)를 생성하고, 컨텐츠 등록 서버(30)로부터 수신한 데이터형 컨텐츠(11b) 또는 분리 실행 기반 컨텐츠(37)를 OMA(Open Mobile Alliance), DMP(Digital Media Project), MPEG(Moving Picture Experts Group)-21, ISMA(Internet Streaming Media Alliance) 등 DRM 표준화 단체에서 제시된 기술규격에 따라 암호화된 컨텐츠(41)로 패키징한다. 이때, DRM서버(40)는 패키징 시 사용되는 CEK와 같이 암호화된 컨텐츠(41)를 복호화할 수 있는 복호화키를 권리객체(43)에 포함시켜 생성한다. 이때, 컨텐츠 등록 서버(30)로부터 수신한 분리 실행 대상 코드 블록(35)을 권리객체(43)에 포함시켜 생성할 수 있다. Specifically, the DRM server 40 generates a Contents Encryption Key (CEK), and stores the data type content 11b or the separated execution based content 37 received from the content registration server 30 in an OMA (Open Mobile Alliance), The package is packaged into encrypted content 41 according to technical standards set forth by DRM standardization organizations such as Digital Media Project (DMP), Moving Picture Experts Group (MPEG) -21, and Internet Streaming Media Alliance (ISMA). At this time, the DRM server 40 generates the decryption key included in the rights object 43 for decrypting the encrypted content 41, such as CEK used during packaging. In this case, the separation execution target code block 35 received from the content registration server 30 may be included in the rights object 43 and generated.

즉, 암호화된 컨텐츠(41)는 원본인 데이터형 컨텐츠(11b)를 패키징하거나 또는 실행형 컨텐츠(11a)에서 분리 실행 대상 코드 블록(35)을 스터브 코드로 대체한 분리 실행 기반 컨텐츠(37)를 패키징한 결과물이다. That is, the encrypted content 41 may package the data type content 11b as an original or replace the separated execution base content 37 in which the separated execution target code block 35 is replaced with stub code in the executable content 11a. Packaged output.

여기서, CEK를 생성하여 암호화된 컨텐츠(41)로 패키징할 때, AES(Advanced Encryption Standard), RSA(Rivest-Shamir-Adelman), ECC(Elliptic Curve Cryptosystem), 시드(SEED) 블록 암호 알고리즘, DES(Data Encryption Standard) 등 암호화 알고리즘이 사용될 수 있으나, 이에 한정되는 것은 아니다. Here, when generating and packaging the CEK into the encrypted content 41, Advanced Encryption Standard (AES), Rivet-Shamir-Adelman (RSA), Elliptic Curve Cryptosystem (ECC), SEED block encryption algorithm, and DES (DES) Encryption algorithms such as Data Encryption Standard) may be used, but are not limited thereto.

또한, DRM서버(40)는 컨텐츠 등록 서버(30)로부터 사용자가 구매, 재구매 하고자 하는 권리객체(43)에 대한 구매 또는 트리거를 요청 받으면, 해당 권리객체(43)에 대한 트리거 및 DD정보를 생성하여 컨텐츠 등록 서버(30)로 전송하고, 컨텐츠 등록 서버(30)로부터 사용자가 환불 또는 양도 하고자 하는 권리객체(43)에 대한 환불 또는 양도 트리거를 요청 받으면, 해당 권리객체(43)에 대한 트리거를 생성하여 컨텐츠 등록 서버(30)로 전송한다.In addition, the DRM server 40 generates a trigger and DD information for the rights object 43 when the user requests a purchase or trigger for the rights object 43 to be purchased or repurchased from the content registration server 30. When a request is made to the content registration server 30 and a refund or transfer trigger for the rights object 43 to be refunded or transferred from the content registration server 30 is requested, the trigger for the rights object 43 is triggered. It generates and transmits to the content registration server 30.

이어, 호스트 단말(50)로부터 컨텐츠 다운로드를 요청 받으면 해당 암호화된 컨텐츠(41)를 전송하고, 권리객체(43)의 구매 또는 재구매 요청을 받으면 해당 권리객체(43)를 전송하며, 권리객체(43)의 환불 또는 양도 요청을 받으면 저장장치(60)에 저장된 권리객체(43)의 삭제를 요청한다. Subsequently, when the content download request is received from the host terminal 50, the corresponding encrypted content 41 is transmitted. When the request for purchase or repurchase of the rights object 43 is received, the rights object 43 is transmitted, and the rights object 43 is transmitted. When request for a refund or transfer of) is requested to delete the rights object 43 stored in the storage device (60).

호스트 단말(50)은 컨텐츠(11)의 실행이 가능한 독립된 CPU(Central Processing Unit)를 가진 컴퓨팅 장치, 예컨대 PC, 노트북, 워크스테이션, 키오스크(Kiosk), ATM(Automated Teller Machine), PDA(Personal Digital Assistants) 등을 통칭하며, 다수의 사용자들에 의해 접근이 자유로운 공용 컴퓨터를 포함한다. 호스트 단말(50)은 네트워크(70)를 통하여 컨텐츠 등록 서버(30) 및 DRM서버(40)와 통신을 수행하고, 유무선 인터페이스를 매개로 연결된 저장장치(60)와 통신을 수행한다. The host terminal 50 may be a computing device having an independent central processing unit (CPU) capable of executing the content 11, such as a PC, a laptop, a workstation, a kiosk, an automated teller machine, and a personal digital assistant. Assistants), and the like, include public computers that are accessible by multiple users. The host terminal 50 communicates with the content registration server 30 and the DRM server 40 through the network 70, and communicates with the storage device 60 connected via a wired or wireless interface.

여기서 유무선 인터페이스는 USB, USB2, Serial/Parallel Port, Ethernet, TCP/IP, 통신 케이블 등을 이용한 유선 통신 방식과 블루투스(Bluetooth), 지그비(zigbee), 루비(Rubee), 적외선데이터통신(IrDA; Infrared Data Association), 초광대역방식(UWB; Ultra Wide Broadband), NFC(Near Field Communication), 와이브로(Wibro) 등을 이용한 근거리 무선통신 방식이 사용될 수 있다.Here, the wired / wireless interface is a wired communication method using USB, USB2, Serial / Parallel Port, Ethernet, TCP / IP, communication cable, Bluetooth, Zigbee, Rubee, Infrared; A short range wireless communication method using Data Association, Ultra Wide Broadband (UWB), Near Field Communication (NFC), Wibro, or the like may be used.

구체적으로, 호스트 단말(50)은 컨텐츠 등록 서버(30)가 제공하는 웹페이지에 접속하여, 웹페이지 상에 나타난 컨텐츠(11)를 선택하고 컨텐츠 등록 서버(30)로 다운로드를 요청한다. 이어, 컨텐츠 등록 서버(30)로부터 해당 컨텐츠(11)의 DD정보를 수신하면, 이를 이용하여 DRM서버(40)에 접속하여 해당 컨텐츠(11)에 대한 암호화된 컨텐츠(41)를 수신한다.Specifically, the host terminal 50 accesses a web page provided by the content registration server 30, selects the content 11 displayed on the web page, and requests a download from the content registration server 30. Subsequently, when the DD information of the corresponding content 11 is received from the content registration server 30, the DD information is used to access the DRM server 40 to receive the encrypted content 41 for the corresponding content 11.

또한, 사용자가 권리객체(43)를 구매, 재구매 하고자 할 때, 호스트 단말(50)은 컨텐츠 등록 서버(30)로 컨텐츠(11)에 대한 권리객체(43)의 구매 또는 재구매 요청신호를 전송한다. 이어서, 컨텐츠 등록 서버(30)로부터 해당 권리객체(43)에 대한 트리거(Trigger) 및 DD정보를 수신하면, 이를 이용하여 DRM서버(40)에 접속하여 해당 권리객체(43)를 요청한다. 이후, 수신한 권리객체(43)를 유무선 인터페이스를 매개로 연결된 저장장치(60)로 전달한다. 덧붙여, 사용자가 권리객체(43)를 구매, 재구매 하고자 할 때, 호스트 단말(50)은 컨텐츠 등록 서버(30)로 권리객체(43)에 대한 환불 또는 양도 요청신호를 전송한다. 이어서, 컨텐츠 등록 서버(30)로부터 해당 권리객체(43)에 대한 트리거(Trigger)를 수신하면, 이를 이용하여 DRM서버(40)에 접속하여 환불 또는 양도를 요청한다. In addition, when the user wants to purchase and repurchase the rights object 43, the host terminal 50 transmits a purchase or repurchase request signal of the rights object 43 to the content 11 to the content registration server 30. . Subsequently, when the trigger and DD information for the rights object 43 are received from the content registration server 30, the rights object 43 is requested by accessing the DRM server 40 using the trigger. Thereafter, the received right object 43 is transmitted to the storage device 60 connected through the wired / wireless interface. In addition, when the user wants to purchase and repurchase the rights object 43, the host terminal 50 transmits a refund or transfer request signal for the rights object 43 to the content registration server 30. Subsequently, when a trigger for the rights object 43 is received from the content registration server 30, the trigger is connected to the DRM server 40 to request a refund or transfer.

예를 들어, 호스트 단말(50)의 사용자는 사용하고자 하는 컨텐츠(11)에 대한 권리객체(43)를 이미 보유하고 있어 해당 컨텐츠(11)에 대한 암호화된 컨텐츠(41)만을 필요로 할 수 있으며, 처음 컨텐츠(11)를 구매하는 경우나 권리객체(43)가 만료되어 재구매하는 경우와 같이 해당 컨텐츠(11)에 대한 권리객체(43)만을 필요로 할 수 있고, 또한 암호화된 컨텐츠(41) 및 권리객체(43) 모두를 필요로 할 수 있다.For example, the user of the host terminal 50 already has a rights object 43 for the content 11 to be used and may only need the encrypted content 41 for the corresponding content 11. For example, when purchasing the content 11 for the first time or when the rights object 43 expires and repurchases, only the rights object 43 for the content 11 may be needed, and the encrypted content 41 may be needed. And the rights object 43 may be required.

또한, 호스트 단말(50)은 암호화된 컨텐츠(41) 실행을 시작하면, 저장장치(60)에 권리객체(43)의 저장 여부를 확인한다. 저장장치(60)에 권리객체(43)가 저장되어 있는 경우, 저장장치(60)로부터 권리객체(43)에 포함된 복호화키를 요청하여 암호화된 컨텐츠(41)를 복호화하게 된다. 반면, 저장장치(60)에 권리객체(43)가 저장되어 있지 않은 경우 컨텐츠 등록 서버(30)로 구매 또는 재구매 요청신호를 전송할 수 있다. 또한, 저장장치(60)에 분리 실행 대상 코드 블록(35)이 저장되어 있는 경우, 호스트 단말(50)은 복호화키를 이용하여 암호화된 컨텐츠(41)를 분리 실행 기반 컨텐츠(37)로 복호화한 후, 유무선 인터페이스를 통해 연결된 저장 장치(60)와 연동하여 암호화된 컨텐츠(41)에 대한 분리 실행을 수행할 수 있다. In addition, when the host terminal 50 starts to execute the encrypted content 41, the host terminal 50 checks whether the right object 43 is stored in the storage device 60. When the rights object 43 is stored in the storage device 60, the decryption key included in the rights object 43 is requested from the storage device 60 to decrypt the encrypted content 41. On the other hand, if the rights object 43 is not stored in the storage device 60, the content registration server 30 may transmit a purchase or repurchase request signal. In addition, when the separation execution target code block 35 is stored in the storage device 60, the host terminal 50 decrypts the encrypted content 41 using the decryption key as the separation execution based content 37. Thereafter, in association with the storage device 60 connected through the wired / wireless interface, separation of the encrypted content 41 may be performed.

저장장치(60)는 프로세서를 내장하고 있는 각종 휴대식 장치, 예컨대 USB 메모리, 플래시 메모리 카드, 이에 상응하는 각종 이동식, 휴대식 저장매체(예컨대, SD(Secure Digital) 메모리 카드, microSD 메모리 카드, ISO 7816 표준의 휴대형 저장장치 등)를 통칭한다. 저장장치(60)는 유무선 인터페이스를 매개로 호스트 단말(50)과 연결되며, 호스트 단말(50)에 설치된 암호화된 컨텐츠(41)에 대한 권리객체(43)를 저장한다. The storage device 60 may be any of a variety of portable devices incorporating a processor, such as a USB memory, a flash memory card, and various portable and portable storage media (e.g., a Secure Digital (SD) memory card, a microSD memory card, an ISO 7816 standard). Portable storage devices). The storage device 60 is connected to the host terminal 50 through a wired or wireless interface, and stores the rights object 43 for the encrypted content 41 installed in the host terminal 50.

상술한 바와 같이, 권리객체(43)에는 암호화된 컨텐츠(41)를 복호화 할 수 있는 복호화키를 포함하며, 이때 분리 실행 기반 컨텐츠(37)에 대한 분리 실행 대상 코드 블록(35)을 포함할 수 있다. 이때, 저장장치(60)는 호스트 단말(50)의 요청에 따라 분리 실행 대상 코드 블록(35)에 대한 연산을 수행하여 결과값을 호스트 단말(50)로 반환한다.
As described above, the rights object 43 may include a decryption key for decrypting the encrypted content 41, and may include a separate execution target code block 35 for the separated execution based content 37. have. At this time, the storage device 60 performs an operation on the separation execution target code block 35 at the request of the host terminal 50 and returns a result value to the host terminal 50.

상술한 분리 실행 기반 컨텐츠(37)에 대한 기본 개념을 도 2 및 도 3을 참조하여 설명한다.The basic concept of the above-described separation execution based content 37 will be described with reference to FIGS. 2 and 3.

도 2는 본 발명이 적용되는 디지털 저작권 관리 시스템에서 실행형 컨텐츠의 데이터 구조를 보여주는 구성도이다. 2 is a block diagram showing a data structure of executable content in a digital rights management system to which the present invention is applied.

도 2을 참조하면, 본 발명이 적용되는 실행형 컨텐츠(11a)는 복수 개의 파일, 예컨대 운영체제에서 제공하는 API(application program interface), 개발사에서 제공하는 API 또는 DLL(dynamic linking library)과 같은 파일을 포함한다. 이와 같은 복수의 파일을 포함하는 실행형 컨텐츠(11a)는 코드 영역(21)과 데이터 영역(23)으로 나눌 수 있으며, 실제 실행형 컨텐츠(11a)는 코드 영역(21)과 데이터 영역(23)이 서로 섞여 있다. 코드 영역(21)은 복수의 베이식 블록(25; basic block)을 포함하며, 분리 실행 대상 코드 블록(35)의 추출을 위하여 선정되는 복수의 베이식 블록 그룹(27)을 포함한다.Referring to FIG. 2, the executable content 11a to which the present invention is applied may include a plurality of files, for example, a file such as an API provided by an operating system, an API provided by a developer, or a dynamic linking library (DLL). Include. The executable content 11a including a plurality of such files may be divided into a code region 21 and a data region 23, and the actual executable content 11a may be divided into a code region 21 and a data region 23. Are mixed with each other. The code area 21 includes a plurality of basic blocks 25, and includes a plurality of basic block groups 27 selected for extraction of the separated execution target code block 35.

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

도 3은 본 발명이 적용되는 디지털 저작권 관리 시스템에서 분리 실행 기반 컨텐츠의 구조를 나타내는 구성도이다. 3 is a block diagram showing the structure of the separated execution based content in the digital rights management system to which the present invention is applied.

도 1 및 도 3을 참조하면, 본 발명이 적용되는 분리 실행 기반 컨텐츠(37)는 하나 이상의 분리 실행 대상 코드 블록(35)을 대신하여 스터브 코드(26; stub code)가 삽입된 코드 영역(21a)과, 데이터 영역(23)을 포함한다. 이때 스터브 코드(26)는 분리 실행을 위해 추출된 분리 실행 대상 코드 블록(35)을 대신하여 삽입된 코드로서, 분리 실행 기반 컨텐츠(37)와 분리 실행 대상 코드 블록(35)을 연결한다. 구체적으로 스터브 코드(26)는 실행형 컨텐츠(11a)에 대한 분리 실행을 수행할 때, 분리 실행 대상 코드 블록(37)을 호출하고, 분리 실행 대상 코드 블록(37)에 대한 연산을 수행하여 산출된 결과값을 반환 받는다. 1 and 3, the detached execution based content 37 to which the present invention is applied includes a code region 21a in which stub codes are inserted in place of one or more detached execution target code blocks 35. ) And a data area 23. In this case, the stub code 26 is inserted in place of the separated execution target code block 35 extracted for the separation execution and connects the separation execution based content 37 and the separation execution target code block 35. Specifically, when the stub code 26 performs the separation execution on the executable content 11a, the stub code 26 calls the separation execution target code block 37 and calculates by performing an operation on the separation execution target code block 37. Return the result.

분리 실행 대상 코드 블록(35)은 실행형 컨텐츠(11a)에 대한 프로파일링 및 분석을 통하여 실행형 컨텐츠(11a)의 코드 영역(21)에서 추출된 복수의 베이식 블록 그룹(27)을 포함한다. 바람직하게, 분리 실행 대상 코드 블록(35)은 분리 실행 대상 코드 블록(35)의 시작점(entry point)을 통한 제어 신호의 진입 및 베이식 블록(25) 간의 제어 신호의 이동은 허용하지만, 분리 실행 대상 코드 블록(35)의 시작점을 제외한 베이식 블록(25)으로의 제어 신호의 진입이 없는 서로 관련된 복수의 베이식 블록(25)을 포함하는 베이식 블록 그룹(27)이다. The separated execution target code block 35 includes a plurality of basic block groups 27 extracted from the code area 21 of the executable content 11a through profiling and analysis of the executable content 11a. Preferably, the separate execution target code block 35 allows the entry of the control signal through the entry point of the separation execution target code block 35 and the movement of the control signal between the basic block 25, but the separation execution target. The basic block group 27 includes a plurality of basic blocks 25 associated with each other without entry of a control signal to the basic block 25 except for the start point of the code block 35.

이와 달리 시작점을 제외한 베이식 블록(25)으로의 제어 신호의 진입이 있는 베이식 블록 그룹(27)을 분리 실행 대상 코드 블록(35)으로 선정할 경우, 해당 분리 실행 대상 코드 블록(35)을 추출한 후 삽입되는 스터브 코드(26)에 시작 부분이 아닌 중간으로 제어 신호가 진입할 수 있으며, 이 경우 스터브 코드(26)는 해당 제어 신호에 대한 처리를 수행하지 못하여 결국 실행형 컨텐츠(11a)의 실행이 중지되거나 에러가 발생될 수 있다. On the contrary, when the basic block group 27 in which the control signal enters the basic block 25 except for the starting point is selected as the separate execution target code block 35, the corresponding separation execution code block 35 is extracted. The control signal may enter the middle of the inserted stub code 26 instead of the beginning. In this case, the stub code 26 may not process the control signal, and thus execution of the executable content 11a may not be performed. It may be stopped or an error may occur.

상술한 분리 실행 대상 코드 블록은 다음과 같이 추출될 수 있다.The above-described separated execution target code block may be extracted as follows.

먼저, 분리 실행할 실행형 컨텐츠(11a)의 코드 영역(21)에 대한 동적 프로파일링 및 정적 분석을 통하여 복수의 베이식 블록 그룹(27)을 선정한다. 복수의 베이식 블록 그룹(27)의 선정은, 분리 실행할 실행형 컨텐츠(11a)의 실행을 시작하여, 런-타임 동안 코드 영역(21)에 대한 기초 정보를 수집하고, 수집한 기초 정보를 이용하여 분석 범위를 확장한 동적 프로파일링을 통해 코드 영역(21)에 대한 정적 분석을 수행함에 의해 이루어진다. 기초 정보는, 브랜치 어드레스, 점프 어드레스, 콜 어드레스 및 RET의 간접 주소 중에 적어도 하나의 간접 주소이다. 이러한 기초 정보 중에서 실행형 컨텐츠(11a)의 공개된 API와 관련된 기초 정보를 제거하고, 공개된 API와 관련된 기초 정보가 제거된 기초 정보를 기반으로 실행형 컨텐츠(11a)의 코드 영역(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 executable content 11a to be separated. The selection of the plurality of basic block groups 27 starts execution of the executable content 11a to be separated, collects basic information about the code area 21 during run-time, and uses the collected basic information. This is accomplished by performing a static analysis of the code region 21 through dynamic profiling that extends the scope of analysis. The basic information is at least one indirect address among a branch address, a jump address, a call address, and an indirect address of the RET. From the basic information, the basic information related to the published API of the executable content 11a is removed, and the code area 21 of the executable content 11a is based on the basic information from which the basic information related to the published API has been removed. By performing a static analysis of the analysis, the scope of analysis can be extended. By substituting indirect addresses from among the collected basic information on the control flow, more basic block groups 27 can be selected as compared to performing dynamic profiling or static analysis by extending the analysis range alone.

더하여, 선정된 복수의 베이식 블록 그룹(27) 중에서, 베이식 블록 그룹(27)의 내부로 진입하는 제어 신호가 발생하면, 제어 신호의 명령어 주소를 기준으로 해당 베이식 블록 그룹(27)을 분할하여 재정의한다. 이때 재정의 대상이 되는 베이식 블록 그룹(27)은 제어 신호의 명령어 주소를 기준으로 이전의 제1 베이식 블록 그룹과, 제어 신호의 명령어 주소를 포함하는 이후의 제2 베이식 블록 그룹으로 재정의한다.In addition, when a control signal entering the basic block group 27 is generated among the plurality of selected basic block groups 27, the basic block group 27 is divided and redefined based on the instruction address of the control signal. do. At this time, the basic block group 27 to be redefined is redefined as a first basic block group before and a second basic block group after 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 properties of a single input and a single output and an attribute which does not allow entry from outside to inside is finally obtained. define.

이어서 복수의 베이식 블록 그룹(27) 중에서 분리 실행 대상 코드 블록(35)을 선정하여, 분리 실행 대상 코드 블록(35)을 코드 영역(21)에서 분리하고, 분리 실행 대상 코드 블록(35) 대신에 스터브 코드(26)를 삽입한다. Subsequently, the separation execution target code block 35 is selected from the plurality of basic block groups 27, and the separation execution target code block 35 is separated from the code area 21, instead of the separation execution target code block 35. Insert the stub cord 26.

이때 분리 실행 대상 코드 블록(35)은 복수의 베이식 블록 그룹(27) 중에서 실행형 컨텐츠(11a)의 중요 경로(Critical path) 상에 있는 베이식 블록 그룹(27)을 선택하는 것이 바람직하다. 또한, 복수의 베이식 블록 그룹(27) 중에서 콜 횟수, 크기 및 실행 시간을 함께 고려하여 분리 실행 대상 코드 블록(35)을 선출할 수 있다. 예컨대 콜 횟수가 많고, 크기가 작고, 실행 시간이 짧은 베이식 블록 그룹(27)을 분리 실행 대상 코드 블록(35)으로 선출한다.In this case, it is preferable that the separated execution target code block 35 select a basic block group 27 on a critical path of the executable content 11a among the plurality of basic block groups 27. In addition, the separate execution target code block 35 may be selected from the plurality of basic block groups 27 in consideration of the number of calls, the size, and the execution time. For example, a basic block group 27 having a large number of calls, a small size, and a short execution time is selected as the separate execution target code block 35.

이에 따르면, 실행형 컨텐츠(11a)에 있어서, 중요 경로 상에 존재하고, 콜 횟수가 많고 크기가 작고, 실행 시간이 짧은 베이식 블록 그룹(27)을 보안을 위한 분리 실행 대상 코드 블록(35)으로 선정하여, 분리 실행 대상 코드 블록(35)이 실행형 컨텐츠(11a)에서 분리 실행되도록 함으로써, 실행형 컨텐츠(11a)의 복제 방지와 관련된 보안 성능을 향상시킬 수 있다.According to this, in the executable content 11a, the basic block group 27 which exists on the critical path, has a large number of calls, has a small number, and has a short execution time is separated into the target execution code block 35 for security. By selecting and separating the execution target code block 35 from the executable content 11a, security performance related to copy protection of the executable content 11a can be improved.

또한, 동적 프로파일링(dynamic profiling)을 통하여 수집한 코드 영역(21)의 기초 정보를 이용한 정적 분석(static analysis)을 수행하여 베이식 블록 그룹(27)을 추출함으로써, 실행형 컨텐츠(11a)의 코드 영역(21)의 분석 범위를 확장하여 베이식 블록 그룹(27)의 추출율을 향상시킬 수 있다.In addition, by performing a static analysis using the basic information of the code area 21 collected through dynamic profiling, and extracting the basic block group 27, the code of the executable content 11a The extraction range of the basic block group 27 may be improved by extending the analysis range of the region 21.

또한, 한 번 정의된 베이식 블록 그룹(27)에 대해서 재정의할 수 있는 유연성을 제공함으로써, 분리 실행 대상 코드 블록(35)의 후보가 될 수 있는 단일 입력(single input) 및 단일 출력(single output)을 갖는 베이식 블록 그룹(27)을 생성할 수 있고, 시작점(entry point)을 제외한 내부로의 제어 신호의 진입이 있는 부적합한 베이식 블록 그룹(27)이 분리 실행 대상 코드 블록(35)으로 선출되는 것을 억제할 수 있으며, 그 결과, 분리 실행 대상 코드 블록(35)을 분리하여 실행하는 중의 오류 발생을 억제할 수 있다.
In addition, by providing the flexibility to redefine the once defined basic block group 27, a single input and a single output that can be candidates for the separate execution target code block 35 It is possible to generate a basic block group 27 having an inadequate basic block group 27 with the entry of the control signal to the inside except for the entry point (entry point) is selected as a separate execution target code block 35 As a result, it is possible to suppress the occurrence of an error while separating and executing the separated execution target code block 35.

도 4는 본 발명이 적용되는 디지털 저작권 관리 시스템에서 분리 실행 기반 컨텐츠 구성 모듈을 나타내는 구성도이다. 도 5는 본 발명이 적용되는 디지털 저작권 관리 시스템에서 실행형 컨텐츠에 삽입될 스터브 코드를 예시한 도면이다. 4 is a block diagram illustrating a separation execution based content composition module in a digital rights management system to which the present invention is applied. 5 is a diagram illustrating a stub code to be inserted into the executable content in the digital rights management system to which the present invention is applied.

이하에서 설명할 분리 실행 기반 컨텐츠 구성 모듈(31)는, 도 1에 보인 DRM 시스템에 있어서, 호스트 단말(50)과 저장 장치(50)에 각각 저장될 분리 실행 기반 컨텐츠(37)와 분리 실행 대상 코드 블록(35)를 생성하기 위한 모듈이다. In the DRM system illustrated in FIG. 1, the separation execution based content configuration module 31 to be described below includes a separation execution based content 37 and a separation execution target to be stored in the host terminal 50 and the storage device 50, respectively. The module for generating the code block 35.

도 1, 도 4 및 도 5를 참조하면, 분리 실행 기반 컨텐츠 구성 모듈(31)은, 모듈제어부(311)와, 코드 분석부(313)와, 코드 조작부(315)와, 코드 변환부(317) 및 코드 암호화부(319)를 포함한다. 1, 4, and 5, the separation execution based content composition module 31 includes a module controller 311, a code analyzer 313, a code operator 315, and a code converter 317. And a code encryption unit 319.

모듈제어부(311)는 분리 실행 기반 컨텐츠(37)의 생성을 위한 전체적인 과정을 제어한다. 즉, 입력된 분리 실행될 실행형 컨텐츠(11a)에서 분리 실행 대상 코드 블록(35)을 선택하여, 선택한 분리 실행 대상 코드 블록(35)을 실행형 컨텐츠(11a)에서 분리하고, 분리 실행 대상 코드 블록(35)의 분리 실행이 가능하도록 실행형 컨텐츠(11a)를 변환하며, 분리된 분리 실행 대상 코드 블록(35)을 저장장치(60)에서 처리 가능한 형태로 변환하고, 실행형 컨텐츠(11a)의 코드 영역에서 초기 코드 블록을 추출해 초기 코드 블록을 암호화하여 실행형 컨텐츠(11a)의 실행시 암호화된 초기 코드 블록을 복호화하여 실행하도록 코드 분석부(313)와 코드 조작부(315)와 코드 변환부(317) 및 코드 암호화부(319)를 제어한다.The module controller 311 controls the overall process for generating the separated execution based content 37. That is, the separated execution target code block 35 is selected from the inputted executable content 11a to be separated, and the selected separation execution target code block 35 is separated from the executable content 11a, and the separation execution target code block is executed. Converts the executable content 11a to enable separate execution of the 35; converts the separated executable execution code block 35 into a form that can be processed by the storage device 60; The code analyzing unit 313, the code manipulating unit 315, and the code converting unit extract the initial code block from the code area and encrypt the initial code block to decrypt and execute the encrypted initial code block when the executable content 11a is executed. 317 and the code encryption unit 319 is controlled.

코드 분석부(313)는, 실행형 컨텐츠(11a)의 코드 영역을 분석하여, 코드 영역으로부터 하나 이상의 분리 실행 대상 코드 블록(35)을 선택한다. 더 구체적으로, 코드 분석부(313)는 컨텐츠 제공 단말(10)로부터 수신한 분리 실행될 컨텐츠, 컨텐츠에 대한 프로파일 데이터(Profile Data) 및 코드 블록 선택 규칙을 입력 받아, 프로파일 데이터 및 코드 블록 선택 규칙을 기반으로 컨텐츠의 코드 영역에서 분리 실행 대상 코드 블록(35)을 결정한다.The code analyzer 313 analyzes a code region of the executable content 11a and selects one or more separated execution target code blocks 35 from the code region. More specifically, the code analyzing unit 313 receives the content to be separated, the profile data for the content, and the code block selection rule received from the content providing terminal 10 to receive the profile data and the code block selection rule. Based on the determination, the code block 35 to be separated is executed in the code area of the content.

구체적으로, 코드 분석부는 프로파일 데이터 및 분리 실행 대상 코드 블록(35)의 선택 규칙을 내부 데이터 포맷으로 변환한다. 예를 들어, 프로파일 데이터 및 규칙은 XML 형태로 구현될 수 있는데, 이 경우, 프로파일 데이터 및 분리 실행 대상 코드 블록의 선택 규칙은 XML 형태에서 내부 데이터 포맷으로 변환하는 것으로서, XML 파서가 된다. 이어, 프로파일 데이터 및 코드 블록 선택 규칙을 로드하며, 로드된 프로파일 데이터 및 코드 블록 선택 규칙에 근거하여, 실행형 컨텐츠(11a)의 코드 영역에서 하나 이상의 분리 실행 대상 코드 블록(35)을 선택한다.Specifically, the code analyzer converts the selection rule of the profile data and the separation target code block 35 into an internal data format. For example, the profile data and rules may be implemented in XML form, in which case the selection rule of the profile data and the separated execution code block is an XML parser that converts the XML data into an internal data format. Then, the profile data and code block selection rules are loaded, and one or more separate execution target code blocks 35 are selected in the code area of the executable content 11a based on the loaded profile data and code block selection rules.

또한, 코드 분석부(313)는 분리 실행 대상 코드 블록(35)의 선택 시 기준이 될 코드 블록 선택 규칙을 갱신한다. 코드 블록 선택 규칙은 프로파일 데이터의 정보 중에서 어느 항목에 가장 큰 비중을 두어 분리 실행 대상 코드 블록을 선택할 것인지를 의미하는 것으로서, 앞서 설명한 바와 같이, 프로파일 데이터의 각 항목 별 가중치로 나타낼 수 있다. 그런데, 이러한 코드 블록 선택 규칙은, 컨텐츠의 종류, 크기 등에 따라서 변경될 가능성이 크기 때문에 선택된 분리 실행 대상 코드 블록(35)에 대한 검증 결과를 피드백 받아 분리 실행 대상 코드 블록의 선택 규칙을 지속적으로 갱신한다. 예를 들어, 선택된 분리 실행 대상 코드 블록(35)에 대한 테스트를 진행하여 실행 속도 등의 이슈가 발생하면, 이를 기준으로 분리 실행 대상 코드 블록(35)의 선택 규칙의 세부적인 가중치를 변경한다. In addition, the code analyzing unit 313 updates a code block selection rule, which becomes a reference when the separation target code block 35 is selected. The code block selection rule means to select a code block to be separated with the largest weight among the information of the profile data. As described above, the code block selection rule may be represented by a weight for each item of the profile data. However, since the code block selection rule is highly likely to change according to the type, size, etc. of the content, the rule for selecting the code block to be separated is continuously updated by receiving a verification result of the selected code to be separated. do. For example, if an issue such as execution speed occurs by performing a test on the selected separated execution target code block 35, the detailed weight of the selection rule of the separated execution target code block 35 is changed based on this.

코드 조작부(315)는, 코드 분석부(313)에서 선택된 분리 실행 대상 코드 블록(35)과 분리 실행 대상 코드 블록이 분리된 분리 실행 기반 컨텐츠(37)를 연결하도록 실행형 컨텐츠(11a)를 변환한다. The code manipulation unit 315 converts the executable content 11a to connect the separated execution target code block 35 selected by the code analysis unit 313 and the separated execution based content 37 in which the separated execution target code block is separated. do.

더 구체적으로 코드 조작부(315)는, 분리된 분리 실행 대상 코드 블록(35)과의 상호 연동을 위한 보조 실행 코드를 생성하고, 분리 실행 대상 코드 블록(35)이 맨 앞에서 보조 실행 코드로 점프한 후 보조 실행 코드의 실행이 완료되면 분리 실행 대상 코드 블록(35) 다음으로 실행되어야 할 위치로 점프하는 스터브 코드를 생성하여 분리 실행 대상 코드 블록(35)의 위치에 삽입한다. More specifically, the code operation unit 315 generates auxiliary execution code for interworking with the separated separated execution target code block 35, and the separated execution target code block 35 jumps to the auxiliary execution code from the front. After the execution of the auxiliary execution code is completed, the stub code that jumps to the position to be executed next to the separation execution code block 35 is generated and inserted into the location of the separation execution code block 35.

여기서, 보조 실행 코드는 스터브 코드로부터 전달되는 파라미터, 즉, 스택과 레지스터의 정보를 패킹하여 분리 실행 대상 코드 블록(35)을 호출하고, 호출이 종료되면 분리 실행 대상 코드 블록(35)의 결과값으로 스택과 레지스터의 정보를 리스토어한다.Here, the auxiliary execution code calls the separate execution target code block 35 by packing the parameters passed from the stub code, that is, the information of the stack and the register, and when the call is completed, the result value of the separate execution target code block 35. Restore the stack and register information.

예를 들어, 저장 장치(60)에 저장되는 분리 실행 대상 코드 블록(35)은 저장 장치(60)의 플랫폼에 기반한 Java 바이트코드, 더 구체적으로는 Java 애플릿 및 ARM 인스트럭션을 내장한 Java 애플릿으로 구현되는데, 이때 보조 실행 코드는 상술한 Java 애플릿을 실행하는 Native launcher로 구현된다. 더하여, 보조 실행 코드는 필요 시에만 로딩되어 실행될 수 있도록 DLL(Dynamic Link Library) 파일로 구현된다. 이러한 보조 실행 코드에 대해서는 다음에 더 구체적으로 설명하기로 한다.For example, the separate executable code block 35 stored in the storage device 60 is implemented as Java bytecode based on the platform of the storage device 60, more specifically, a Java applet embedded with a Java applet and ARM instructions. In this case, the auxiliary execution code is implemented as a native launcher for executing the above-described Java applet. In addition, the auxiliary executable code is implemented as a DLL (Dynamic Link Library) file so that it can be loaded and executed only when needed. This auxiliary execution code will be described in more detail later.

도 5를 참조하면, (a)는 스터브 코드의 삽입 전의 실행형 컨텐츠(11a), 즉, 분리 실행 대상 코드 블록(35)을 나타내며, (b)는 분리 실행 대상 코드 블록(35) 위치에 삽입된 스터브 코드를 나타낸 것이다.Referring to Fig. 5, (a) shows the executable content 11a, i.e., the separate execution target code block 35, before the insertion of the stub code, and (b) the insertion at the position of the separate execution target code block 35. Shows the stub code.

도 5의 (a)와 (b)를 비교하면, 스터브 코드는 분리 실행 대상 코드 블록(35)의 맨 앞 위치에서 보조 실행 코드의 특정 함수로 점프하고(jmp NativeLauncher), 보조 실행 코드의 함수 호출 이후에는 함수 값을 반환할 엔드 포인트로 점프하도록 생성되어, 분리 실행 대상 코드 블록(35)의 위치에 삽입된다. 이에 의하면, caller code의 변경 없이 코드 변환이 가능하다.When comparing (a) and (b) of FIG. 5, the stub code jumps to a specific function of the auxiliary execution code (jmp NativeLauncher) at the front position of the separated execution target code block 35, and calls the function of the auxiliary execution code. After that, it is generated to jump to the endpoint to return a function value, and is inserted at the position of the separated execution code block 35. According to this, code conversion is possible without changing the caller code.

코드 조작부(315)는, 스터브 코드의 삽입과 더불어, 보조 실행 코드의 로딩을 위하여 임포트 영역(idata section)의 임포트 테이블(import table) 내에 보조 실행 코드(Native Launcher DLL)을 삽입한다. 임포트 테이블에 대한 보조 실행 코드의 삽입은, 호스트 단말(50)에서 분리 실행 기반 컨텐츠(37)가 구동될 때, OS의 로더(loader)에 의하여 보조 실행 코드가 로딩되도록 하기 위한 것이다.The code manipulator 315 inserts a native launcher code (Native Launcher DLL) into an import table of an idata section to insert the stub code and to load the auxiliary executable code. The insertion of the auxiliary execution code into the import table is for causing the auxiliary execution code to be loaded by the loader of the OS when the separate execution base content 37 is driven in the host terminal 50.

이러한 방식을 통하여, 분리 실행 기반 컨텐츠(37)의 소스 코드 수정 없이, 분리된 분리 실행 대상 코드 블록(35)과의 상호 작용이 가능해진다.In this way, the interaction with the separated separate execution target code block 35 is possible without modifying the source code of the separated execution based content 37.

코드 변환부(317)는 분리 실행 기반 컨텐츠(37)에서 분리된 분리 실행 대상 코드 블록(35)을 저장장치(60)에서 실행 가능한 형태로 변환한다. 이때, 분리 실행 대상 코드 블록(35)은, 분리 실행 속도의 향상을 위하여, 저장장치(60)에 구비된 프로세서의 명령어로 변환되는 것이 바람직하다. 예를 들면, 저장 장치(60)가 Java 기반 스마트 카드인 경우, 분리 실행 대상 코드 블록(35)은, Java 바이트 코드로 변환되는데, 특히, ARM 명령어를 내장한 Java 바이트 코드로 변환된다. 즉, 호스트 단말(50)이 X86 계열의 프로세서 구조를 가지며, 저장장치(60)가 ARM 구조의 프로세서로 이루어진 경우, 코드 변환부(317)는, 분리 실행 대상 코드 블록(35)의 X86 명령어를 Java 바이트코드 및 ARM 명령어를 내장한 Java 바이트코드로 변환한다.The code conversion unit 317 converts the separation execution target code block 35 separated from the separation execution base content 37 into an executable form in the storage device 60. In this case, the separation execution target code block 35 may be converted into instructions of a processor included in the storage device 60 in order to improve the separation execution speed. For example, when the storage device 60 is a Java-based smart card, the separate execution target code block 35 is converted to Java byte code, in particular, to Java byte code containing an ARM instruction. That is, when the host terminal 50 has an X86 series processor structure and the storage device 60 is an ARM structured processor, the code conversion unit 317 may execute the X86 instruction of the separate execution target code block 35. Convert Java bytecode and ARM instructions to embedded Java bytecode.

이때, 코드 변환부(317)는, 실행형 컨텐츠(11a)의 분리 실행을 다양한 프로세서 환경에 적용할 수 있도록, 분리 실행 대상 코드 블록(35)을 복수의 머신 코드로 변환하는 것이 바람직하다. 이를 위하여, 코드 변환부(317)는 compiler infrastructure, 특히 LLVM(Low Level Virtual Machine)를 이용하여 구현될 수 있다. LLVM을 이용할 경우, 검증된 다양한 오픈 소스 솔루션을 이용할 수 있으며, 타겟, 즉, 저장장치(60)의 프로세서와는 독립적으로 코드 최적화가 가능하고, 코드 재사용성이 높아, 다양한 소스를 다양한 머신 코드로 변환할 수 있다.In this case, the code conversion unit 317 preferably converts the separation execution target code block 35 into a plurality of machine codes so that the separation execution of the executable content 11a can be applied to various processor environments. To this end, the code conversion unit 317 may be implemented using a compiler infrastructure, in particular, a low level virtual machine (LLVM). With LLVM, you can use a variety of proven open source solutions, code optimization independent of the target, i.e., the processor of the storage device 60, high code reusability, and a variety of source code I can convert it.

구체적으로 코드 변환부(317)는 소스, 즉, 호스트 단말(50)의 플랫폼에 기반한 언어로 구성된 분리 실행 대상 코드 블록을 중간 단계 언어(LLVM IR: LLVM Intermediate Representation)로 변환하고, 이어 중간 단계 언어로 변환된 분리 실행 대상 코드 블록(35)을 최적화하며, 마지막으로 최적화된 중간 단계 언어의 분리 실행 대상 코드 블록(35)을 저장 장치(140)의 프로세서에 기반한 복수의 머신 코드, 예를 들어, Java 바이트 코드, ARM 명령어로 변환한다.In detail, the code conversion unit 317 converts a separate execution target code block formed of a source, that is, a language based on the platform of the host terminal 50, into an intermediate level language (LLVM IR), and then the intermediate level language. Optimizes the separate execution target code block 35 converted into a second, and finally separates the optimized execution target code block 35 of the intermediate language into a plurality of machine codes based on the processor of the storage device 140, for example, Java bytecode, converted to ARM instructions.

코드 암호화부(319)는, 모듈제어부(311)의 제어에 따라서 선정된 초기 코드 블록을 특정 키로 암호화하여, 해당 실행형 컨텐츠(11a)의 실행시 특정 키를 통해 초기 코드 블록을 복호화하여 실행하도록 실행형 컨텐츠(11a)를 변환한다. The code encryptor 319 encrypts the initial code block selected under the control of the module controller 311 with a specific key, and decrypts and executes the initial code block through the specific key when executing the executable content 11a. The executable content 11a is converted.

구체적으로 코드 암호화부(319)는, 선정된 초기 코드 블록을 지정된 키로 암호화한 후, 암호화된 초기 코드 블록을 실행형 컨텐츠(11a)에 추가 생성된 보안 영역에 삽입하고, 초기 코드 블록의 위치에는 키를 획득하여 암호화된 초기 코드 블록을 복호화한 후 실행시키는 보조 실행 코드를 로드하게 하는 시동 스터브 코드를 삽입한다.Specifically, the code encryptor 319 encrypts the selected initial code block with a specified key, and then inserts the encrypted initial code block into the generated security area additionally in the executable content 11a. A start stub code is inserted to load a secondary executable code that obtains the key, decrypts the encrypted initial code block, and executes it.

보다 구체적으로, 코드 암호화부(319)는, 암호화되어 이동될 초기 코드 블록 대신에 암호화된 초기 코드 블록의 복호화한 후 실행시키는 보조 실행 코드의 함수를 호출하는 시동 스터브 코드를 생성하여, 초기 코드 블록의 위치에 삽입한다. 코드 암호화부(319)는, 실행형 컨텐츠(11a)에 보안 영역(secure section)을 새로 생성하고, 선정된 초기 블록 코드를 지정된 키로 암호화한 후, 생성된 보안 영역에 암호화된 초기 코드 블록을 적재한다. More specifically, the code encryptor 319 generates a start stub code that calls a function of an auxiliary execution code to decrypt and execute the encrypted initial code block instead of the initial code block to be encrypted and moved. Insert it in the position of. The code encryptor 319 creates a new secure section in the executable content 11a, encrypts the selected initial block code with a specified key, and loads the encrypted initial code block in the generated secure area. do.

이때 암호화에 사용되는 키는 실행형 컨텐츠(11a)의 실행시에 복호화를 위하여 필요하므로, 권리객체(43)의 CEK(Contents Encryption key) 형태로 관리되어, 저장장치(60)에 저장될 수 있다.In this case, since the key used for encryption is necessary for decryption at the time of execution of the executable content 11a, it is managed in the form of a Contents Encryption Key (CEK) of the rights object 43 and stored in the storage device 60. .

이와 같이 코드 암호화부(319)를 통하여 암호화된 초기 코드 블록은 이후, 분리 실행 대상 코드 블록(35)의 경우와 마찬가지로, 보조 실행 코드에 의하여 복호화되고, 온 메모리(On-Memory) 상태에서 구동(Running)된다. 이에 의하면, 실행형 컨텐츠(11a)에 대하여, 초기 구동 시 1단계 보안 기술을 적용하고, 분리 실행을 통해 2단계 보안 기술을 적용함으로써, 실행형 컨텐츠(11a)의 불법 사용 및 복제를 더 강력하게 차단할 수 있게 된다.
The initial code block encrypted through the code encryption unit 319 is then decrypted by the auxiliary execution code as in the case of the separate execution target code block 35 and driven in an on-memory state ( Running). According to this, the first-level security technology is applied to the executable content 11a at the time of initial driving, and the two-level security technology is applied through separate execution, thereby making illegal use and duplication of the executable content 11a more robust. You can block.

도 6은 본 발명이 적용되는 디지털 저작권 관리 시스템의 분리 실행 기반 컨텐츠에서 보조 실행 코드의 구성 및 이를 통한 분리 실행 과정을 나타낸 도면이다.FIG. 6 is a diagram illustrating a configuration of an auxiliary execution code in a separation execution based content of a digital rights management system to which the present invention is applied and a separation execution process through the same.

도 4 및 도 6을 참조하면, 본 발명에 따른 호스트 단말(50)에 저장된 분리 실행 기반 디지털 컨텐츠(37)와, 저장 장치(60)에 저장되며 저장 장치(60)에서 실행 가능한 형태로 변환된 분리 실행 대상 코드 블록(35)은, 보조 실행 코드(300)를 통해 상호 연동한다. 4 and 6, the separated execution based digital content 37 stored in the host terminal 50 and the storage device 60 and converted into an executable form in the storage device 60 according to the present invention. The separated execution target code block 35 interoperates with each other via the auxiliary execution code 300.

분리 실행 기반 컨텐츠(37)는 PE(Portable Executable) 포맷의 컨텐츠를 예로 들어 나타내었으며, DOS 헤더(210), PE 헤더(220), 코드 영역(220), 데이터 영역(240), 임포트 영역(import section)(250), 익스포트 영역(export section)(260)을 포함한다. 코드 영역(220)에는, 실제 실행되는 프로그램 코드들이 있고, 데이터 영역(240)에는 초기화된 프로그램 데이터들이 존재하고, 임포트 영역(250)에는 PE 파일이 실행될 때 외부에서 가져와 사용하는 함수들의 목록이 들어있고, 익스포트 영역(260)에는 다른 모듈이 사용할 수 있는 함수들이 노출된다. The separated execution based content 37 shows the contents of the Portable Executable (PE) format as an example, and includes a DOS header 210, a PE header 220, a code region 220, a data region 240, and an import region. section 250, export section 260. In the code area 220, there are program codes that are actually executed. In the data area 240, initialized program data exists. The import area 250 includes a list of functions that are externally taken and used when the PE file is executed. The export area 260 exposes functions that other modules can use.

분리 실행 기반 컨텐츠 구성 모듈의 코드 분석부(120)를 통해, 분리 실행 대상 코드 블록(35) 및 암호화할 코드로서 코드 영역(230)에서 초기에 실행되는 코드 블록으로 초기 코드 블록을 선정한다. 코드 조작부(130)에 의하여, 분리 실행 대상 코드 블록(35)를 대신하여 스터브 코드(234)가 삽입되고, 분리 실행기반 컨텐츠가 구동될 때 분리 실행 대상 코드 블록(35)과 상호 작용하기 위한 보조 실행 코드를 로딩하도록 임포트 영역(250)의 임포트 테이블을 수정한다. 또한, 코드 암호화부(150)에 의하여, 보안 영역(270)이 새로 생성되고, 초기 코드 블록을 특정 키로 암호화한 암호화된 초기 코드 블록(271)이 보안 영역(270)에 삽입되며, 초기 코드 블록을 대신하여 시동 스터브 코드(233)가 삽입된다. 시동 스터브 코드(233)는 암호화된 초기 코드 블록(271)을 복호화하기 위한 함수를 호출하도록 구현된 것으로서, 복호화하는 함수는 보조 실행 코드에 구비될 수 있다.Through the code analysis unit 120 of the separation execution based content composition module, the initial code block is selected as the separation execution target code block 35 and the code block initially executed in the code region 230 as the code to be encrypted. By the code manipulation unit 130, the stub code 234 is inserted in place of the separate execution target code block 35, and assists to interact with the separation execution target code block 35 when the separation execution based content is driven. Modify the import table of import area 250 to load executable code. In addition, by the code encryption unit 150, a security area 270 is newly generated, and an encrypted initial code block 271 that encrypts the initial code block with a specific key is inserted into the security area 270, and the initial code block. In place of the start stub code 233 is inserted. The start stub code 233 is implemented to call a function for decrypting the encrypted initial code block 271. The function for decrypting may be provided in the auxiliary execution code.

보조 실행 코드(300)는, 이종 프로세서로 구현된 호스트 단말(50)과 저장 장치(60)가 연동하여 분리 실행을 구현할 수 있도록 한다.The auxiliary execution code 300 allows the host terminal 50 implemented as a heterogeneous processor and the storage device 60 to implement separate execution.

이를 위하여 보조 실행 코드(300)는, 인터페이스 기능부(310)와, 패킹(packing) 기능부(320)와, 언패킹(unpacking) 기능부(330)와, 메모리 매핑 기능부(340)와, OS API 매핑 기능부(350)를 포함하고, 더하여, 코드 복호화 기능부(360)를 더 포함할 수 있다. To this end, the auxiliary execution code 300 may include an interface function unit 310, a packing function unit 320, an unpacking function unit 330, a memory mapping function unit 340, The OS API mapping function 350 may be included, and in addition, the code decoding function 360 may be further included.

인터페이스 기능부(310)는, 분리 실행 대상 코드 블록(35)과의 통신 채널을 제공하여, 저장 장치(60)에 저장된 분리 실행 대상 코드 블록(35)과 데이터를 교환한다. 예를 들어, 인터페이스 기능부(310)는 ISO-7816에 정의된 APDU(Application Protocol Data Unit)을 통해 분리 실행 대상 코드 블록(35)과의 통신 채널을 제공할 수 있다. 인터페이스 기능부(310)는, 향후 TCP/IP Over USB와 같은 다른 종류의 인터페이스가 적용되더라도, 보조 실행 코드(300)의 다른 기능부가 변경되지 않도록, Network bearer transparent한 인터페이스를 제공하는 것이 바람직하다. 인터페이스 기능부(310)는 일반적인 I/O 함수들과 동일한 형태의 함수를 갖는다.The interface function unit 310 provides a communication channel with the separation execution target code block 35 to exchange data with the separation execution target code block 35 stored in the storage device 60. For example, the interface function unit 310 may provide a communication channel with the separate execution target code block 35 through an application protocol data unit (APDU) defined in ISO-7816. The interface function unit 310 may provide a network bearer transparent interface so that other functional units of the auxiliary execution code 300 are not changed even if another type of interface such as TCP / IP Over USB is applied in the future. The interface function 310 has a function of the same type as general I / O functions.

패킹 기능부(320)는 스터브 코드(234)로부터 스택과 레지스터의 정보를 전달받아 패킹하여, 인터페이스 기능부(310)를 통해 분리 실행 대상 코드 블록(35)으로 전달한다. 여기서, 스택 정보는, SP 레지스터에 의해 지정된 스택 포지션에서부터 시작하여 파라미터로 이용되는 스택 값들의 모임이고, 레지스터 정보는, 스터브 코드(234)에서 분리 실행 대상 코드 블록(35)를 호출할 때 전달되는 레지스터 정보이다.The packing function unit 320 receives the stack and register information from the stub code 234 and packs it, and transmits the packing function unit 320 to the separate execution target code block 35 through the interface function unit 310. Here, the stack information is a collection of stack values used as parameters starting from the stack position designated by the SP register, and the register information is transmitted when the separate execution target code block 35 is called in the stub code 234. Register information.

언패킹 기능부(330)는, 인터페이스 기능부(310)를 통해 분리 실행 대상 코드 블록(35)으로부터 전달된 패킹된 데이터를 언패킹하여, 스터브 코드(234)로 반환한다. 언패킹 기능부(330)는, 분리 실행 대상 코드 블록(35)의 반환 값이 Primitive Data Type인 경우에는 단순히 해당 레지스터의 값에 반환 값을 설정하고, 반환 값이 메모리 주소인 경우, 해당 주소에 해당하는 값들을 반환 값에 따라서 변경한다.The unpacking function unit 330 unpacks the packed data transferred from the separate execution target code block 35 through the interface function unit 310 and returns the packed data to the stub code 234. The unpacking function unit 330 simply sets a return value to a value of a corresponding register if the return value of the separated execution target code block 35 is a Primitive Data Type, and if the return value is a memory address, Change the corresponding values according to the return value.

메모리 매핑 기능부(340)는, 인터페이스 기능부(310)를 통해 분리 실행 대상 코드 블록(35)에서 전달된 데이터를 호스트 단말(50)의 메모리에 기록하거나, 호스트 단말(50)의 메모리에서 데이터를 디스패치하여 분리 실행 대상 코드 블록(35)으로 전달한다. 이때, 메모리 매핑 기능부(340)는 호스트 단말(50) 메모리에서 데이터를 디스패치할 때, 메모리 주소 정보 및 실제 데이터값을 패킹하여 전달할 수 있다. 매핑 기능부(340)를 통해 저장 장치(60)의 분리 실행 대상 코드 블록(35)이 호스트 단말(50)의 메모리를 참조하여 실행될 수 있다.The memory mapping function unit 340 records the data transmitted from the separate execution target code block 35 through the interface function unit 310 in the memory of the host terminal 50, or the data in the memory of the host terminal 50. And dispatch to the separate execution target code block 35. In this case, when the data is dispatched from the host terminal 50 memory, the memory mapping function unit 340 may pack and transfer the memory address information and the actual data value. The separate execution target code block 35 of the storage device 60 may be executed with reference to the memory of the host terminal 50 through the mapping function 340.

OS API 매핑 기능부(350)는, 인터페이스 기능부(310)를 통해 분리 실행 대상 코드 블록(35)으로부터 API 명 및 파라미터 값을 전달받아, 호스트 단말(50)의 OS API를 호출하고, 그 결과를 반환 받아 분리 실행 대상 코드 블록(35)으로 전달한다. 이에 의하여, 저장 장치(60)에 저장된 분리 실행 대상 코드 블록(35)이 호스트 단말(50)의 OS API를 호출하여 그 결과를 반환 받을 수 있다.The OS API mapping function unit 350 receives the API name and parameter values from the separate execution target code block 35 through the interface function unit 310, calls the OS API of the host terminal 50, and as a result, Received is returned to the code execution target block 35 to be separated. As a result, the separated execution target code block 35 stored in the storage device 60 may call the OS API of the host terminal 50 to receive the result.

그리고, 코드 복호화 기능부(360)는, 저장장치(60)로부터 특정 키를 획득하여 보안 영역(270)에 적재된 암호화된 초기 코드 블록(271)을 복호화하고, 복호화된 초기 코드 블록을 실행시킨다.
The code decryption function 360 obtains a specific key from the storage device 60, decrypts the encrypted initial code block 271 loaded in the security area 270, and executes the decrypted initial code block. .

도 7은 본 발명이 적용되는 디지털 저작권 관리 시스템에서 코드 복호화 기능부의 동작 흐름도이다. 도 7을 참조하면, 코드 복호화 기능부(360)는, 암호화된 초기 코드 블록과 암호화에 사용된 키(CEK)를 입력 받아, 키로 초기 코드 블록을 복호화한다(S361). 그리고, 복호화된 초기 코드 블록을 런타임 코드 실행자(Runtime code executioner)가 메모리 상에서 바로 실행시킨다(S362). 더 구체적으로, 런타임 코드 실행자가 복호화된 초기 코드 블록으로 인스트럭션 포인터(Instruction Pointer)를 매핑하여 점프시켜, 복호화된 초기 코드 블록을 실행한다. 이에 의하면, 초기 코드 블록의 실행 시에만, 복호화된 초기 코드 블록이 메모리에 존재하고, 실행이 후에는 바로 소멸되며, 이를 통해 보안 효과를 더 높일 수 있다.7 is an operation flowchart of a code decoding function unit in a digital rights management system to which the present invention is applied. Referring to FIG. 7, the code decryption function unit 360 receives an encrypted initial code block and a key CEK used for encryption, and decrypts an initial code block with a key (S361). The runtime code executioner directly executes the decoded initial code block on the memory (S362). More specifically, the runtime code executor maps an instruction pointer to the decoded initial code block and jumps to execute the decoded initial code block. According to this, only when the initial code block is executed, the decrypted initial code block exists in the memory, and after execution, it is immediately destroyed, thereby increasing the security effect.

도 6 및 도 7을 참조하여, 보조 실행 코드(300)를 이용한 분리 실행 동작을 설명하면 다음과 같다.Referring to FIGS. 6 and 7, the separation execution operation using the auxiliary execution code 300 is as follows.

먼저, 분리 실행 기반 컨텐츠(37)가 구동되기 시작하면, 코드 영역(230)의 초기에 위치한 시동 스터브 코드(233)에 의하여 보조 실행 코드(300)가 로딩되고(①), 코드 복호화 기능부(360)가 호출되어, 보안 영역(270)에 적재된 암호화된 초기 코드 블록(271)을 가져오고(②), 복호화에 필요한 키(CEK)를 획득하여(③), 초기 코드 블록(271)을 복호화한 후 실행한다(④). 이후 이어서 코드 영역의 다음 프로그램 코드가 순서대로 실행되다가, 스터브 코드(234)에 진입하면, 스터브 코드(234)에 의하여 패킹 기능부(320)가 호출되고, 호출된 패킹 기능부(320)가 스터브 코드(234)에서 전달된 스택 및 레지스터 정보를 패킹하여 인터페이스 기능부(310)를 통해 저장 장치(60)의 분리 실행 대상 코드 블록(35)으로 전달한다(⑤). 이에 분리 실행 대상 코드 블록(35)이 실행되는데, 이때, 분리 실행 대상 코드 블록(35)은 메모리 매핑 기능부(340) 및 OS API 매핑 기능부(350)를 통해 호스트 단말(50)의 메모리 및 OS API에 접근할 수 있다(⑥). 분리 실행 대상 코드 블록(35)의 실행이 완료되면, 그 결과값이 인터페이스 기능부(330)를 통해 보조 실행 코드(300)로 전달되고, 언패킹 기능부(330)가 결과값을 다시 언패킹하여 스터브 코드(234)로 반환한다(⑦).First, when the separated execution based content 37 starts to be driven, the auxiliary execution code 300 is loaded by the start stub code 233 located at the beginning of the code region 230 (①), and the code decoding function unit ( 360 is called to retrieve an encrypted initial code block 271 loaded in the secure area 270 (2), obtain a key (CEK) necessary for decryption (3), and retrieve the initial code block 271. Decrypt and execute (④). Subsequently, the next program code of the code area is executed in order, and when the stub code 234 is entered, the packing function 320 is called by the stub code 234, and the called packing function 320 is stubbed. The stack and register information delivered from the code 234 is packed and transferred to the separate execution target code block 35 of the storage device 60 through the interface function unit 310 (⑤). In this case, the separate execution target code block 35 is executed. In this case, the separate execution target code block 35 is executed by the memory of the host terminal 50 through the memory mapping function 340 and the OS API mapping function 350. You can access the OS API (⑥). When the execution of the separate execution target code block 35 is completed, the result value is transmitted to the auxiliary execution code 300 through the interface function unit 330, and the unpacking function unit 330 unpacks the result value again. To the stub code 234 (⑦).

이에 의하면, 분리 실행 기반 컨텐츠(37) 및 분리 실행 대상 코드 블록(35)이 호스트 단말(50)과 저장 장치(60)의 연동을 통해 정상적으로 동작할 수 있게 된다.
According to this, the separation execution based content 37 and the separation execution target code block 35 may operate normally through interworking between the host terminal 50 and the storage device 60.

도 8은 본 발명의 일 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버를 나타내는 구성도이다.8 is a block diagram illustrating a DRM server in a content or service providing system using a storage device according to an embodiment of the present invention.

도 1 및 도 8을 참조하면, 서버송수신부(45)는 네트워크(70)를 매개로 컨텐츠 등록 서버(30), 호스트 단말(50)과 데이터 송수신을 수행하기 위한 인터페이스를 가진다. 본 실시예의 서버송수신부(45)는 호스트 단말(50)를 이용하여 저장장치(60)와 데이터 송수신을 수행하기 위한 인터페이스를 가진다.1 and 8, the server transmitter / receiver 45 has an interface for performing data transmission / reception with the content registration server 30 and the host terminal 50 via the network 70. The server transmitter / receiver 45 of the present embodiment has an interface for performing data transmission / reception with the storage device 60 using the host terminal 50.

서버저장부(47)는 컨텐츠(11) 또는 서비스에 대한 권리객체(43)를 저장한다. 이때, 등록정보를 더 저장할 수 있다.The server storage unit 47 stores the rights object 43 for the content 11 or service. At this time, the registration information may be further stored.

본 발명의 서비스는 일반적으로 통칭되는 서비스 및 오프라인 상에서 사용자가 이용 가능한 재화를 포함한다.The services of the present invention include generally known services and goods available to users on offline.

서버제어부(49)는 서버송수신부(45), 서버저장부(47)의 동작을 전반적으로 제어하는 역할을 한다.The server controller 49 controls overall operations of the server transmitter / receiver 45 and the server storage 47.

서버제어부(49)는 서버송수신부(45)를 통해 호스트 단말(50)로부터 컨텐츠 또는 서비스에 대한 권리객체(43)의 전송을 요청 받으면, 서버송수신부(45)를 통해 호스트 단말(50)로 저장장치(60) 내 전자화폐 잔액에서 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송한다. 이후 호스트 단말(50)은 차감요청메시지를 저장장치(60)로 전송한다.When the server controller 49 receives a request for transmission of the rights object 43 for content or service from the host terminal 50 through the server transmitter / receiver 45, the server controller 49 passes to the host terminal 50 through the server transmitter / receiver 45. In the electronic money balance in the storage device 60, a deduction request message for requesting a deduction by the amount of the content 11 or service to be purchased by the user is transmitted. Thereafter, the host terminal 50 transmits a subtraction request message to the storage device 60.

본 발명의 다른 실시예에서, 서버제어부(49)는 서버송수신부(45)를 통해 호스트 단말(50)로부터 권리객체(43)의 전송을 요청 받으며, 호스트 단말(50)이 저장장치(60)로부터 독출한 장치정보를 수신할 수 있다. 서버제어부(49)는 장치정보를 수신하면, 장치정보를 참조하여 전자화폐의 잔액과 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액을 비교하고, 저장장치(60) 내 전자화폐의 잔액이 컨텐츠(11) 또는 서비스의 금액 이상임을 확인하면 차감요청메시지를 전송할 수 있다. 반면, 저장장치(60) 내 전자화폐의 잔액이 컨텐츠(11) 또는 서비스의 금액 미만인 경우 서버제어부(49)는 호스트 단말(50)로 잔액부족메시지를 전송할 수 있다.In another embodiment of the present invention, the server controller 49 receives a request for the transmission of the rights object 43 from the host terminal 50 through the server transmitter / receiver 45, and the host terminal 50 stores the storage device 60. The device information read from the device can be received. When the server controller 49 receives the device information, the server controller 49 compares the balance of the electronic money with the amount of the content 11 or service to be purchased by the user with reference to the device information, and the balance of the electronic money in the storage device 60 is increased. If it is determined that the amount of the content 11 or service is more than the amount can be sent a deduction request message. On the other hand, when the balance of the electronic money in the storage device 60 is less than the amount of the content 11 or the service, the server controller 49 may transmit a balance shortage message to the host terminal 50.

장치정보는 저장장치(60) 내 전자화폐의 잔액정보, 저장장치(60) 내 권리객체(43)의 저장 여부, 권리객체(43)가 저장된 경우 권리객체(43)의 만료일자, 생성일자 등 권리객체(43)에 대한 간략정보를 포함하는 정보이다. Device information is the balance information of the electronic money in the storage device 60, whether or not the storage of the rights object 43 in the storage device 60, the expiration date of the rights object 43, when the rights object 43 is stored, the creation date, etc. Information including brief information about the rights object 43.

이때, 서버제어부(49)는 호스트 단말(50)로부터 수신한 장치정보를 참조하여 저장장치(60) 내 권리객체(43)가 저장되어 있는지 여부를 인식하고, 저장장치(60) 내 권리객체(43)가 저장되어 있는 경우 권리객체(43)가 유효한지 확인할 수 있다. 서버제어부(49)는 저장장치(60) 내 권리객체(43)가 저장되어 있지 않거나, 권리객체(43)가 만료되어 더 이상 유효하지 않음을 확인한 경우에만 전자화폐의 잔액과 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액을 비교하며 이후 프로세스를 진행하게 된다.In this case, the server controller 49 recognizes whether the right object 43 in the storage device 60 is stored with reference to the device information received from the host terminal 50, and recognizes the right object in the storage device 60 ( If 43) is stored, it is possible to check whether the rights object 43 is valid. The server controller 49 checks the balance of electronic money and the user wants to purchase only when the right object 43 in the storage device 60 is not stored or when the right object 43 expires and is no longer valid. The amount of content 11 or service is compared and then the process proceeds.

본 발명의 다른 실시예에서 서버제어부(49)는 서버송수신부(45)를 통해 호스트 단말(50)로부터 인증정보를 수신하면, 서버저장부(47)에 저장된 등록정보를 참조하여 사용자 인증 또는 저장장치(60) 인증을 수행하고, 인증에 성공하면 차감요청메시지를 전송할 수 있다. 반면, 저장장치(60) 또는 사용자 인증에 실패한 경우 서버제어부(49)는 호스트 단말(50)로 인증실패메시지를 전송할 수 있다.In another embodiment of the present invention, when the server controller 49 receives the authentication information from the host terminal 50 through the server transmitter / receiver 45, the user controller refers to the registered information stored in the server storage 47, or the user is authenticated or stored. The device 60 may perform authentication, and if the authentication is successful, the deduction request message may be transmitted. On the other hand, when the storage device 60 or user authentication fails, the server controller 49 may transmit an authentication failure message to the host terminal 50.

등록정보는 저장장치(60) 또는 사용자의 인증을 위해 DRM서버(40)에 등록한 정보를 말하며, 인증정보는 저장장치(60) 또는 사용자의 인증을 위해 필요한 정보를 말한다. 저장장치(60)의 인증정보로 일련번호와 같이 저장장치(60)의 고유 식별 번호, MAC 주소 등이 이용될 수 있으며, 사용자 인증을 위해 아이디 패스워드 방식, PKI(Public Key Infrastructure) 방식 등이 이용될 수 있다. 또한 인증방식에 따라 저장장치(60)의 인증 및 사용자 인증을 함께 이용할 수도 있다. The registration information refers to information registered to the DRM server 40 for authentication of the storage device 60 or a user, and the authentication information refers to information necessary for authentication of the storage device 60 or a user. As the authentication information of the storage device 60, a unique identification number, a MAC address, etc. of the storage device 60 may be used, such as a serial number, and an ID password method, a public key infrastructure (PKI) method, etc., may be used for user authentication. Can be. In addition, depending on the authentication method, authentication of the storage device 60 and user authentication may be used together.

서버제어부(49)는 서버송수신부(45)를 통해 호스트 단말(50)로부터 컨텐츠(11) 또는 서비스의 금액만큼 저장장치(60) 내 전자화폐의 잔액을 차감한 차감내역을 수신하면, 컨텐츠(11) 또는 서비스의 금액을 참조하여 저장장치(60) 내 전자화폐의 잔액의 차감이 정확히 수행되었는지 검증한다. When the server controller 49 receives the deduction from the host terminal 50 through the server transmitter / receiver 45, the deduction of the balance of the electronic money in the storage device 60 by the amount of the content 11 or the service, the content ( 11) or by referring to the amount of service, it is verified whether the deduction of the balance of electronic money in the storage device 60 has been performed correctly.

차감내역은 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액을 차감한 내역을 말하며, 차감하고 남은 잔액정보를 포함한다.Deduction history refers to the details of subtracting the content or service amount from the balance of electronic money, and includes remaining balance information.

이때, 서버제어부(49)가 호스트 단말(50)을 이용해 저장장치(60)로 전송하는 차감요청메시지와 호스트 단말(50)을 이용해 저장장치(60)로부터 수신하는 차감내역은 암호화 알고리즘을 이용해 암호화하여 송수신 될 수 있으며, 암호화 알고리즘은 상술한 RSA(Rivest-Shamir-Adelman), ECC(Elliptic Curve Cryptosystem), 시드(SEED) 블록 암호 알고리즘, DES(Data Encryption Standard) 등이 이용될 수 있으나, 이에 한정되는 것은 아니다. 서버제어부(49)는 암호화된 차감내역을 수신하면 차감내역을 복호화한 후 차감이 정확히 수행되었는지 검증하게 된다.At this time, the subtraction request message transmitted by the server controller 49 to the storage device 60 using the host terminal 50 and the deduction history received from the storage device 60 using the host terminal 50 are encrypted using an encryption algorithm. The encryption algorithm may be a RSA (Rivest-Shamir-Adelman), an ECC (Elliptic Curve Cryptosystem), a seed block encryption algorithm, a DES (Data Encryption Standard), or the like. It doesn't happen. When the server controller 49 receives the encrypted subtraction, the server controller 49 decrypts the subtraction and then verifies whether the subtraction is performed correctly.

서버제어부(49)는 저장장치(60) 내 전자화폐의 잔액의 차감이 유효하다고 확인하면, 해당 컨텐츠(11) 또는 서비스에 대한 권리객체(43)를 서버송수신부(45)를 통해 호스트 단말(50)로 전송한다. 이후 호스트 단말(50)은 수신한 권리객체(43)를 저장장치(60)로 전송한다.When the server controller 49 confirms that the deduction of the balance of the electronic money in the storage device 60 is effective, the server 110 receives the rights object 43 for the corresponding content 11 or service through the server transmitter / receiver 45. 50). Thereafter, the host terminal 50 transmits the received rights object 43 to the storage device 60.

이때, 서버제어부(49)는 차감이 유효하다고 확인하면, 해당 컨텐츠(11) 또는 서비스에 대한 권리객체(43)를 생성하여 호스트 단말(50)로 전송할 수 있다.At this time, when the server controller 49 confirms that the deduction is effective, the server controller 49 may generate the right object 43 for the corresponding content 11 or the service and transmit the generated rights object 43 to the host terminal 50.

서버제어부(49)는 서버송수신부(45)를 통해 호스트 단말(50)로부터 권리객체(43)의 저장을 완료하였음을 확인하는 저장완료메시지를 수신할 수 있으며, 저장완료메시지를 수신하면 서버송수신부(45)를 통해 호스트 단말(50)로 저장완료메시지를 전송하여 출력하도록 할 수 있다. 사용자는 저장완료메시지를 인지하여 저장장치(60) 내 권리객체(43)가 저장이 완료됨을 확인할 수 있게 되며, 서버제어부(49)가 저장장치(60)로부터 저장완료메시지를 수신함으로써 부당한 결제를 방지할 수 있다.The server control unit 49 may receive a storage completion message confirming that the storage of the rights object 43 is completed from the host terminal 50 through the server transmission / reception unit 45. When the storage completion message is received, the server transmission / reception may be performed. The storage completion message may be transmitted and output to the host terminal 50 through the unit 45. The user can confirm the storage completion message to confirm that the right object 43 in the storage device 60 is completed, and the server controller 49 makes an unfair payment by receiving the storage completion message from the storage device 60. It can prevent.

본 발명의 다른 실시예에서, 서버제어부(49)는 저장장치(60) 내 권리객체(43)가 유효하지 않고 만료됨을 확인한 경우, 호스트 단말(50)로 권리객체(43)를 전송하면서 함께 저장장치(60) 내 만료된 권리객체(43)의 삭제를 요청하는 삭제메시지를 전송할 수 있다. 이후 호스트 단말(50)은 삭제메시지를 저장장치(60)로 전송한다.In another embodiment of the present invention, when the server controller 49 determines that the rights object 43 in the storage device 60 is not valid and expires, the server controller 49 stores the rights object 43 together with the host terminal 50 and stores them together. A deletion message may be sent requesting the deletion of the expired rights object 43 in the device 60. Thereafter, the host terminal 50 transmits the deletion message to the storage device 60.

저장장치(60)에 권리객체(43)를 저장한 후 컨텐츠 또는 서비스를 이용하는 구체적인 예를 들면, 사용자는 온라인에서 MP3 음악을 구매할 경우 저장장치(60)의 전자화폐로 결제를 하고 MP3 음악파일을 다운로드 받을 때 음악 파일의 권리객체(43)를 저장장치(60)에 저장한 후, 저장장치(60)에 저장된 권리객체(43)를 이용하여 다운로드한 MP3 음악파일을 재생할 수 있다. 또한, 오프라인에서 이용하는 경우 사용자는 극장티켓 또는 학원 수강권(권리객체; 43)을 구매할 때 저장장치(60)로 결제하고 극장티켓 또는 학원 수강권(권리객체; 43)을 저장장치(60)에 저장한 후, 저장장치(60)에 저장된 극장티켓, 학원 수강권(권리객체; 43)으로 영화를 보거나, 학원에서 출석체크를 할 수 있다.
For example, when a user purchases MP3 music online after storing the rights object 43 in the storage device 60, the user pays the electronic money of the storage device 60 and purchases the MP3 music file. When downloading, after storing the rights object 43 of the music file in the storage device 60, the downloaded MP3 music file can be played using the rights object 43 stored in the storage device 60. In addition, when using offline, when the user purchases a theater ticket or a course ticket (right object; 43), the user pays with the storage device 60 and stores the theater ticket or a course ticket (right object; 43) in the storage device 60. After that, the theater ticket stored in the storage device 60, the right to attend the school (right object; 43) to watch a movie, you can check attendance at the school.

도 9는 본 발명의 일 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치를 나타내는 구성도이다. 9 is a block diagram showing a storage device in a content or service providing system using the storage device according to an embodiment of the present invention.

도 1 및 도 9를 참조하면, 본 실시예의 저장장치(60)는 통신부(61), 암복호화부(63), 저장부(65), 제어부(67)를 포함하여 구성된다. 1 and 9, the storage device 60 of this embodiment includes a communication unit 61, an encryption / decryption unit 63, a storage unit 65, and a control unit 67.

통신부(61)는 접촉 또는 비접촉하여 호스트 단말(50)와 데이터 송수신을 수행하기 위한 인터페이스를 가진다. 본 실시예의 통신부(61)는 호스트 단말(50)를 이용하여 DRM서버(40)와 데이터 송수신을 수행하기 위한 인터페이스를 가진다. The communication unit 61 has an interface for performing data transmission / reception with the host terminal 50 in contact or non-contact. The communication unit 61 of the present embodiment has an interface for performing data transmission / reception with the DRM server 40 using the host terminal 50.

암복호화부(63)는 암호 알고리즘을 포함한 암호 로직 및 처리를 수행한다. 본 실시예의 암복호화부(63)는 차감요청메시지를 복호화하며, 차감내역을 암호화한다.The encryption / decryption unit 63 performs encryption logic and processing including an encryption algorithm. The encryption / decryption unit 63 of the present embodiment decrypts the deduction request message and encrypts the deduction history.

저장부(65)는 전자화폐 및 DRM서버(40)로부터 수신한 컨텐츠(11) 또는 서비스에 대한 권리객체(43)를 저장하는 저장소이다. 또한 장치정보를 더 저장할 수 있다. The storage unit 65 is a storage that stores the electronic money and the rights object 43 for the content 11 or service received from the DRM server 40. In addition, the device information can be further stored.

제어부(67)는 통신부(61), 암복호화부(63), 저장부(65)의 동작을 전반적으로 제어하는 역할을 한다.The controller 67 controls overall operations of the communication unit 61, the encryption / decryption unit 63, and the storage unit 65.

제어부(67)는 호스트 단말(50)로부터 차감요청메시지를 수신하면, 차감요청메시지에 대응하여 기 저장된 전자화폐의 잔액에서 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액만큼 차감한다. When the control unit 67 receives the deduction request message from the host terminal 50, the controller 67 subtracts the amount of the content 11 or service that the user intends to purchase from the balance of electronic money stored in advance in response to the deduction request message.

이때, 호스트 단말(50)을 이용해 DRM서버(40)로부터 수신하는 차감요청메시지가 암호화된 경우 암복호화부(63)를 이용하여 차감요청메시지를 복호화하고 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감할 수 있다. At this time, when the deduction request message received from the DRM server 40 using the host terminal 50 is encrypted, the decode request message is decrypted using the encryption / decryption unit 63 and the amount of the content or service in the balance of the electronic money. I can deduct it.

제어부(67)는 호스트 단말(50)로 저장장치(60) 내 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감한 차감내역을 전송한다. 이후 호스트 단말(50)은 차감내역을 DRM서버(40)로 전송한다.The controller 67 transmits the deduction of the amount of the content or the service from the balance of the electronic money in the storage device 60 to the host terminal 50. Thereafter, the host terminal 50 transmits the deduction to the DRM server 40.

이때, 제어부(67)는 암복호화부(63)를 이용하여 차감내역을 암호화하여 전송할 수 있다. In this case, the controller 67 may encrypt and transmit the deduction history using the encryption / decryption unit 63.

제어부(67)는 호스트 단말(50)로부터 사용자가 구매하고자 하는 컨텐츠 또는 서비스에 대한 권리객체(43)를 수신하면 저장부(65)에 저장한다.When the control unit 67 receives the rights object 43 for the content or service that the user wants to purchase from the host terminal 50, the control unit 67 stores the rights object 43 in the storage unit 65.

이때, 제어부(67)는 저장부(65)에 권리객체(43)를 저장하고, 호스트 단말(50)로 저장완료메시지를 전송할 수 있다. 이후 호스트 단말(50)은 저장완료메시지를 DRM서버(40)로 전송한다.At this time, the control unit 67 may store the rights object 43 in the storage unit 65, and transmit a storage completion message to the host terminal 50. Thereafter, the host terminal 50 transmits a storage completion message to the DRM server 40.

이후, 호스트 단말(50)이 컨텐츠를 실행할 때, 수신한 권리객체(43)에 포함된 복호화키를 요청 받으면, 권리객체(43)에서 복호화키를 추출하여 호스트 단말(50)로 전송한다.Then, when the host terminal 50 executes the content, if the decryption key included in the received right object 43 is requested, the host object 50 extracts the decryption key and transmits the decryption key to the host terminal 50.

본 발명의 다른 실시예에서, 저장부(65)는 이미 만료하여 더 이상 유효하지 않은 권리객체(43)를 저장하고 있어 호스트 단말(50)로부터 만료된 권리객체(43)의 삭제를 요청하는 삭제메시지를 수신하면, 제어부(67)는 만료된 권리객체(43)를 삭제하고 수신한 권리객체(43)를 내부에 저장함으로써 권리객체(43)를 갱신할 수 있다.In another embodiment of the present invention, the storage unit 65 has already expired and stores a rights object 43 that is no longer valid, and requests deletion of the expired rights object 43 from the host terminal 50. Upon receiving the message, the controller 67 may update the rights object 43 by deleting the expired rights object 43 and storing the received rights object 43 therein.

본 발명에 따라 컨텐츠(11) 또는 서비스를 결제하고 권리객체(43)를 저장하는 과정에 대해서는 도 10 내지 도 12을 참조하여 좀 더 상세하게 설명하기로 한다.
A process of paying the content 11 or the service and storing the rights object 43 according to the present invention will be described in more detail with reference to FIGS. 10 to 12.

도 10은 본 발명의 일 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법으로 나타내는 흐름도이다. 설명의 편의를 위해 전술한 도 1 내지 도 19에 도시된 구성은 해당 참조번호를 언급하여 설명한다. 도 10을 참조하면, 호스트 단말(50)은 사용자가 웹페이지(31) 상에서 선택된 컨텐츠(11) 또는 오프라인 상에서 서비스를 구매 결정한 후, DRM서버(40)로 접속하여 구매한 컨텐츠(11) 또는 서비스에 대한 권리객체(43)의 전송을 요청한다(S71).10 is a flowchart illustrating a content or service providing method using a storage device according to an embodiment of the present invention. For convenience of description, the configuration shown in FIGS. 1 to 19 will be described with reference to the corresponding reference numerals. Referring to FIG. 10, the host terminal 50 connects to the DRM server 40 and purchases the content 11 or service after the user decides to purchase the service on the selected content 11 or offline on the web page 31. Request the transmission of the rights object 43 for (S71).

단계(S71)에서 권리객체(43)의 전송을 요청 받은 DRM서버(40)는 호스트 단말(50)을 이용하여 저장장치(60)로 저장장치(60) 내 전자화폐 잔액에서 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송한다(S73)In step S71, the DRM server 40, which has been requested to transmit the rights object 43, to the storage device 60 using the host terminal 50, the user wants to purchase from the balance of electronic money in the storage device 60. The deduction request message requesting the deduction by the amount of the content 11 or the service is transmitted (S73).

이때, DRM서버(40)는 차감요청메시지를 암호화하여 전송할 수 있다.At this time, the DRM server 40 may transmit the encrypted request message.

단계(S73)에서 차감요청메시지를 수신한 저장장치(60)는 차감요청메시지에 대응하여 기 저장된 전자화폐의 잔액에서 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액만큼 차감하고(S75), 차감내역을 호스트 단말(50)을 이용하여 DRM서버(40)로 전송한다(S77).In operation S73, the storage device 60 receiving the deduction request message subtracts the amount of the content 11 or service to be purchased by the user from the balance of electronic money stored in advance in response to the deduction request message (S75). The deduction is transmitted to the DRM server 40 using the host terminal 50 (S77).

이때, 저장장치(60)는 암호화된 차감요청메시지를 수신한 경우 차감요청메시지를 복호화한 후 전자화폐의 잔액을 차감할 수 있으며, 또한 차감내역을 암호화하여 전송할 수 있다.At this time, if the storage device 60 receives the encrypted deduction request message, the storage device 60 may decode the balance request and deduct the balance of the electronic money, and may also encrypt and transmit the deduction history.

단계(S77)에서 차감내역을 수신한 DRM서버(40)는 컨텐츠(11) 또는 서비스의 금액을 참조하여 저장장치(60) 내 전자화폐의 잔액의 차감이 정확히 수행되었는지 검증한다(S79). The DRM server 40 receiving the deduction in step S77 verifies whether the deduction of the balance of the electronic money in the storage device 60 is correctly performed by referring to the amount of the content 11 or the service (S79).

이때, 서버(10)는 암호화된 차감내역을 수신한 경우 차감내역을 복호화한 후 차감이 정확히 수행되었는지 검증할 수 있다.In this case, when receiving the encrypted deduction history, the server 10 may verify that the deduction is correctly performed after decrypting the deduction history.

단계(S79)에서 차감이 유효한지 검증한 DRM서버(40)는 차감이 유효하다고 확인하면, 권리객체(43)를 호스트 단말(50)을 이용하여 저장장치(60)로 전송한다(S83).In step S79, if the deduction is verified that the deduction is valid, the DRM server 40 transmits the right object 43 to the storage device 60 using the host terminal 50 (S83).

이때, DRM서버(40)는 차감이 유효하다고 확인하면, 권리객체(43)를 생성하여 호스트 단말(50)을 이용하여 저장장치(60)로 전송할 수 있다. At this time, when the DRM server 40 confirms that the deduction is effective, the DRM server 40 may generate the rights object 43 and transmit the generated rights object 43 to the storage device 60 using the host terminal 50.

단계(S83)에서 권리객체(43)를 수신한 저장장치(60)는 저장부(65)에 저장하고(S85), 호스트 단말(50)을 이용하여 DRM서버(40)로 저장완료메시지를 전송한다(S87).The storage device 60 receiving the rights object 43 in step S83 is stored in the storage unit 65 (S85), and transmits a storage completion message to the DRM server 40 by using the host terminal 50. (S87).

이때, 저장완료메시지를 수신한 DRM서버(40)는 저장완료메시지를 호스트 단말(50)로 전송하여, 출력하도록 할 수 있다.
In this case, the DRM server 40 receiving the storage completion message may transmit the storage completion message to the host terminal 50 to output the storage completion message.

도 11은 본 발명의 다른 실시예에 따른 저장장치를 이용한 컨텐츠 제공 방법으로 나타내는 흐름도이다. 설명의 편의를 위해 전술한 도 1 내지 도 9에 도시된 구성은 해당 참조번호를 언급하여 설명한다. 도 10 및 도 11을 참조하면, 단계(S91)는 도 10의 단계(S71)와 동일한 단계이므로 설명을 생략한다.11 is a flowchart illustrating a content providing method using a storage device according to another exemplary embodiment of the present invention. For convenience of description, the configuration shown in FIGS. 1 to 9 described above will be described with reference to the corresponding reference numerals. 10 and 11, step S91 is the same as step S71 of FIG. 10, and thus description thereof is omitted.

단계(S91)에서 권리객체(43)의 전송을 요청한 호스트 단말(50)은 유선 또는 무선으로 접속된 저장장치(60)의 장치정보를 독출하고(S93), 독출한 장치정보를 DRM서버(40)로 전송한다(S95).The host terminal 50 requesting the transmission of the rights object 43 in step S91 reads the device information of the storage device 60 connected by wire or wirelessly (S93), and reads the read device information into the DRM server 40. (S95).

단계(S95)에서 장치정보를 수신한 DRM서버(40)는 호스트 단말(50)로부터 수신한 장치정보를 참조하여 저장장치(60) 내 권리객체(43)의 저장 여부 및 저장되어 있는 경우 권리객체(43)가 유효한지 여부를 확인한다(S97).The DRM server 40 having received the device information in step S95 refers to the device information received from the host terminal 50, and whether the right object 43 in the storage device 60 is stored and, if stored, the rights object. It is checked whether 43 is valid (S97).

단계(S96)에서 저장장치(60) 내 권리객체(43)가 저장되어 있지 않거나, 권리객체(43)가 만료되어 더 이상 유효하지 않음을 확인한 경우에만, DRM서버(40)는 장치정보를 참조하여 저장장치(60) 내 전자화폐의 잔액과 사용자가 구매하고자 하는 컨텐츠(11) 또는 서비스의 금액을 비교한다(S97).Only when it is confirmed in step S96 that the rights object 43 in the storage device 60 is not stored or the rights object 43 has expired and is no longer valid, the DRM server 40 refers to the device information. The balance of the electronic money in the storage device 60 is compared with the amount of the content 11 or service that the user wants to purchase (S97).

단계(S97)에서 저장장치(60) 내 전자화폐의 잔액이 컨텐츠 또는 서비스의 금액 미만인 경우, DRM서버(40)는 잔액부족메시지를 호스트 단말(50)로 전송하고(S99), 호스트 단말(50)은 사용자가 인지할 수 있도록 잔액부족메시지를 출력한다(S101). If the balance of the electronic money in the storage device 60 is less than the amount of the content or the service in step S97, the DRM server 40 transmits a balance shortage message to the host terminal 50 (S99), and the host terminal 50. ) Outputs a balance shortage message so that the user can recognize it (S101).

단계(S97)에서 저장장치(60) 내 전자화폐의 잔액이 컨텐츠 또는 서비스의 금액 이상인 경우, DRM서버(40)는 호스트 단말(50)을 이용하여 저장장치(60)로 전자화폐의 잔액에서 컨텐츠 또는 서비스 금액만큼 차감을 요청하는 차감요청메시지를 전송한다(S103).If the balance of the electronic money in the storage device 60 is greater than the amount of the content or the service in step S97, the DRM server 40 uses the host terminal 50 to store the content in the balance of the electronic money to the storage device 60. Or transmits a deduction request message requesting a deduction for the amount of service (S103).

이때, DRM서버(40)는 차감요청메시지를 암호화하여 전송할 수 있다.At this time, the DRM server 40 may transmit the encrypted request message.

이하 단계(S105) 내지 단계(S109)는 도 10의 단계(S75) 내지 단계(S79)와 동일한 단계이므로 설명을 생략한다.Since the steps S105 to S109 are the same as the steps S75 to S79 of FIG. 10, description thereof is omitted.

단계(S109)에서 차감이 유효한지 검증한 DRM서버(40)는 차감이 유효하다고 확인하면, 권리객체(43)를 호스트 단말(50)을 이용하여 저장장치(60)로 전송한다(S113).In step S109, if the deduction is valid, the DRM server 40 verifies that the deduction is valid, and transmits the rights object 43 to the storage device 60 using the host terminal 50 (S113).

이때, DRM서버(40)는 차감이 유효하다고 확인하면, 권리객체(43)를 생성하여 호스트 단말(50)을 이용하여 저장장치(60)로 전송할 수 있다. At this time, when the DRM server 40 confirms that the deduction is effective, the DRM server 40 may generate the rights object 43 and transmit the generated rights object 43 to the storage device 60 using the host terminal 50.

또한, 단계(S96)에서 저장장치(60) 내 권리객체(43)가 저장되어 있으나 유효하지 않고 만료됨을 확인한 경우, 호스트 단말(50)을 이용하여 저장장치(60)로 저장장치(60) 내 만료된 권리객체(43)의 삭제를 요청하는 삭제메시지를 함께 전송할 수 있다. In addition, if it is confirmed in step S96 that the right object 43 in the storage device 60 is stored but is invalid and expires, the storage device 60 is stored in the storage device 60 using the host terminal 50. The deletion message requesting the deletion of the expired rights object 43 may be transmitted together.

단계(S113)에서 권리객체(43)를 수신한 저장장치(60)는 저장부(65)에 저장한다(S115)The storage device 60 that receives the rights object 43 in step S113 stores the data in the storage unit 65 (S115).

이때, 저장장치(60) 내 만료된 권리객체(43)의 삭제를 요청하는 삭제메시지를 수신하면, 저장장치(60)는 만료된 권리객체(43)를 삭제하고, 수신한 권리객체(43)를 내부에 저장함으로써 권리객체(43)를 갱신할 수 있다.At this time, upon receiving the deletion message requesting the deletion of the expired rights object 43 in the storage device 60, the storage device 60 deletes the expired rights object 43 and receives the received rights object 43. The rights object 43 can be updated by storing the data therein.

단계(S115)에서 권리객체(43)를 저장한 저장장치(60)는 호스트 단말(50)을 이용하여 DRM서버(40)로 저장완료메시지를 전송한다(S117).The storage device 60 storing the rights object 43 in step S115 transmits a storage completion message to the DRM server 40 using the host terminal 50 in step S117.

이때, 저장완료메시지를 수신한 DRM서버(40)는 저장완료메시지를 호스트 단말(50)로 전송하여, 출력하도록 할 수 있다.
In this case, the DRM server 40 receiving the storage completion message may transmit the storage completion message to the host terminal 50 to output the storage completion message.

도 12는 본 발명의 또 다른 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법으로 나타내는 흐름도이다. 설명의 편의를 위해 전술한 도 1 내지 도 9에 도시된 구성은 해당 참조번호를 언급하여 설명한다. 도 10 및 도 12를 참조하면, 단계(S121)는 도 10의 단계(S71)와 동일한 단계이므로 설명을 생략한다.12 is a flowchart illustrating a content or service providing method using a storage device according to another embodiment of the present invention. For convenience of description, the configuration shown in FIGS. 1 to 9 described above will be described with reference to the corresponding reference numerals. 10 and 12, step S121 is the same as step S71 of FIG. 10, and thus description thereof is omitted.

단계(S91)에서 권리객체(43)의 전송을 요청한 호스트 단말(50)은 유선 또는 무선으로 접속된 저장장치(60)의 인증을 위해 필요한 정보를 독출하거나, 호스트 단말(50)의 입력장치(도시되지 않음)를 통해 사용자로부터 입력을 받아 인증정보를 생성하고(S123), DRM서버(40)로 전송한다(S125).The host terminal 50 requesting the transmission of the rights object 43 in step S91 reads out information necessary for authentication of the storage device 60 connected by wire or wirelessly, or inputs an input device of the host terminal 50 ( Not shown) receives the input from the user to generate the authentication information (S123), and transmits to the DRM server (40) (S125).

예컨대, 저장장치(60)의 일련번호로 인증을 수행하는 경우 호스트 단말(50)은 저장장치(60)의 일련번호를 독출하여 인증정보를 생성하며, 패스워드 방식으로 사용자 인증을 수행하는 경우 호스트 단말(50)의 입력장치를 통해 사용자로부터 ID 및 패스워드를 입력 받아 인증정보를 생성할 수 있다. For example, when performing authentication with the serial number of the storage device 60, the host terminal 50 generates authentication information by reading the serial number of the storage device 60, and when performing user authentication by a password method, the host terminal. Authentication information may be generated by receiving an ID and password from a user through the input device of 50.

단계(S125)에서 인증정보를 수신한 DRM서버(40)는 DRM서버(40)에 기 등록된 등록정보와 인증정보를 비교하여 저장장치(60) 또는 사용자 인증을 수행한다(S127). The DRM server 40 receiving the authentication information in step S125 compares the registration information and the authentication information previously registered in the DRM server 40 to perform the storage device 60 or user authentication (S127).

이때, 저장장치(60) 인증과 사용자 인증을 함께 이용할 수도 있음은 물론이다.At this time, of course, the storage device 60 authentication and user authentication may be used together.

단계(S127)에서 저장장치(60) 또는 사용자 인증에 실패한 경우, DRM서버(40)는 인증실패메시지를 호스트 단말(50)로 전송하고(S129), 호스트 단말(50)은 사용자가 인지할 수 있도록 인증실패메시지를 출력한다(S131).When the storage device 60 or user authentication fails in step S127, the DRM server 40 transmits an authentication failure message to the host terminal 50 (S129), and the host terminal 50 may recognize the user. The authentication failure message is outputted so as to (S131).

단계(S127)에서 저장장치(60) 또는 사용자 인증에 성공한 경우, DRM서버(40)는 호스트 단말(50)을 이용하여 저장장치(60)로 전자화폐의 잔액에서 컨텐츠 또는 서비스 금액만큼 차감을 요청하는 차감요청메시지를 전송한다(S133).If the storage device 60 or user authentication is successful in step S127, the DRM server 40 requests the storage device 60 to deduct the content or service amount from the balance of the electronic money using the host terminal 50. The deduction request message is transmitted (S133).

이때, DRM서버(40)는 차감요청메시지를 암호화하여 전송할 수 있다.At this time, the DRM server 40 may transmit the encrypted request message.

이하 단계(S135) 내지 단계(S147)는 도 10의 단계(S75) 내지 단계(S87)와 동일한 단계이므로 설명을 생략한다.Since steps S135 to S147 are the same as those of steps S75 to S87 of FIG. 10, description thereof will be omitted.

한편, 도 8 내지 도 12에서 상술한 권리객체(43)가 실행형 컨텐츠(11a)에 대한 권리객체(43)인 경우, 실행형 컨텐츠(11a)에서 분리 실행 대상 코드 블록(35)을 스터브 코드(26)로 대체한 분리 실행 기반 컨텐츠(37)와 분리 실행을 수행하기 위한 분리 실행 대상 코드 블록(35)을 포함할 수 있다. 이에 대한 상세한 설명은 도 1 내지 도 7에 상술하였으므로 설명을 생략한다.Meanwhile, when the rights object 43 described above with reference to FIGS. 8 to 12 is the rights object 43 with respect to the executable content 11a, the stub code may be separated from the executable content code 11 by the executable content 11a. The separation execution base content 37 replaced with (26) and the separation execution target code block 35 for performing the separation execution may be included. Detailed description thereof has been described above with reference to FIGS. 1 to 7, and thus description thereof will be omitted.

한편, 본 실시예에 따른 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 기록매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 기록매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 예컨대 기록매체는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치를 포함한다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.On the other hand, the content or service providing method using the storage device according to the present embodiment may be implemented in the form of program instructions that can be executed by various computer means may be recorded on a computer-readable recording medium. The recording medium may include program instructions, data files, data structures, etc. alone or in combination. Program instructions recorded on the recording medium may be those specially designed and constructed for the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts. For example, the recording medium may be magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs, DVDs, or magnetic-optical media such as floptical disks. magneto-optical media, and hardware devices specifically configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine code generated by a compiler, but also high-level language code that can be executed by a computer using an interpreter or the like. Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.

이상으로 본 발명의 기술적 사상을 예시하기 위한 바람직한 실시예와 관련하여 설명하고 도시하였지만, 본 발명은 이와 같이 도시되고 설명된 그대로의 구성 및 작용에만 국한되는 것은 아니며, 기술적 사상의 범주를 일탈함 없이 본 발명에 대해 다수의 변경 및 수정이 가능함을 당업자들은 잘 이해할 수 있을 것이다. 따라서 그러한 모든 적절한 변경 및 수정과 균등물들도 본 발명의 범위에 속하는 것으로 간주되어야 할 것이다.As described above and described with reference to a preferred embodiment for illustrating the technical idea of the present invention, the present invention is not limited to the configuration and operation as shown and described as such, without departing from the scope of the technical idea It will be understood by those skilled in the art that many changes and modifications to the present invention are possible. And all such modifications and changes as fall within the scope of the present invention are therefore to be regarded as being within the scope of the present invention.

본 발명에 의하면 기존의 전자화폐 기능이 있는 저장장치에 결제와 함께 컨텐츠 또는 서비스의 권리객체를 저장함으로써 별도의 장치를 필요로 하지 않아 추가적인 비용 발생을 최소화한다. 특히, 저장장치의 보급이 활성화 되고, 개인마다 복수의 디바이스를 소지하는 추세를 감안하면, 본 발명의 저장장치에 권리객체를 저장하고 저장장치를 이용하여 컨텐츠 또는 서비스를 사용하는 방안은 그 활용도가 적지 않을 것이다.According to the present invention, by storing the right object of the content or the service together with the payment in the storage device with the existing electronic money function, it does not require a separate device, thereby minimizing additional costs. In particular, in view of the spread of storage devices and the tendency of having a plurality of devices for each individual, a method of storing rights objects in a storage device of the present invention and using contents or services using the storage device is useful. Not a lot.

10: 컨텐츠 제공 단말 11: 컨텐츠
11a: 실행형 컨텐츠 11b: 데이터형 컨텐츠
21: 코드 영역 23: 데이터 영역
25: 베이식 블록 26: 스터브 코드
27: 베이식 블록 그룹 30: 컨텐츠 등록 서버
31: 분리 실행 기반 컨텐츠 구성 모듈 33: 프로파일링 및 분석 툴
35: 분리 실행 대상 코드 블록 37: 분리 실행 기반 컨텐츠
40: DRM서버 41: 암호화된 컨텐츠
43: 권리객체 45: 서버송수신부
47: 서버저장부 49: 서버제어부
50: 호스트 단말 60: 저장장치
61: 통신부 63: 암복호화부
65: 저장부 67: 제어부
70: 네트워크 210: DOS 헤더
220: PE 헤더 233: 시동스터브 코드
230: 코드 영역 234: 스터브 코드
240: 데이터 영역 250: 임포트 영역
251: 시동 DLL 260: 익스포트 영역
270: 보안 영역 271: 암호화된 초기 코드 블록
300: 보조 실행 코드 310: 인터페이싱 기능부
311: 모듈 제어부 313: 코드 분석부
315: 코드 조작부 317: 코드 변환부
319: 코드 암호화부 320: 패킹 기능부
330: 언패킹 기능부 340: 메모리 맵핑 기능부
350: OS API 매핑 기능부 360: 코드 복호화 기능부
10: content providing terminal 11: content
11a: executable content 11b: data type content
21: code area 23: data area
25: basic block 26: stub cord
27: basic block group 30: content registration server
31: Separation run based content configuration module 33: Profiling and analysis tool
35: Detach Execution Target Code Block 37: Detach Execution Based Content
40: DRM server 41: encrypted content
43: right object 45: server transmitter and receiver
47: server storage 49: server control
50: host terminal 60: storage device
61: communication unit 63: encryption and decryption unit
65: storage unit 67: control unit
70: Network 210: DOS Header
220: PE header 233: start stub cord
230: code area 234: stub code
240: data area 250: import area
251: Startup DLL 260: Export Area
270: security zone 271: encrypted initial code block
300: auxiliary execution code 310: interfacing function
311: module control unit 313: code analysis unit
315: code operation unit 317: code conversion unit
319: code encryption unit 320: packing function unit
330: unpacking function unit 340: memory mapping function unit
350: OS API mapping function 360: code decoding function

Claims (33)

컨텐츠 또는 서비스에 대한 권리객체(Right Object)의 전송을 요청하는 호스트 단말;
상기 호스트 단말로부터 상기 권리객체의 전송을 요청 받으면, 저장장치 내 전자화폐 잔액에서 상기 컨텐츠 또는 상기 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송하고, 상기 저장장치 내 전자화폐 잔액의 차감내역을 수신하면 상기 수신한 차감내역의 유효성을 검증하여, 상기 차감내역이 유효함을 확인하면 상기 권리객체를 전송하는 DRM(Digital Rights Management)서버;
상기 전자화폐를 저장하고, 상기 호스트 단말을 이용해 상기 DRM서버로부터 상기 차감요청메시지를 수신하면, 상기 전자화폐의 잔액에서 상기 컨텐츠 또는 상기 서비스의 금액만큼 차감하고, 상기 DRM서버로 상기 호스트 단말을 이용해 차감내역을 전송하며, 상기 호스트 단말을 이용해 상기 DRM서버로부터 상기 권리객체를 수신하면 저장하는 저장장치;
를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템.
A host terminal requesting transmission of a right object for content or a service;
Upon receiving the request for transmission of the rights object from the host terminal, a deduction request message requesting a deduction of the amount of the content or the service from the electronic money balance in the storage device is transmitted, and the deduction of the electronic money balance in the storage device is performed. A digital rights management server (DRM) which transmits the rights object upon verifying the validity of the received deductions when the received deductions are valid;
When the electronic money is stored and the deduction request message is received from the DRM server using the host terminal, the balance of the electronic money is subtracted by the amount of the content or the service, and the host terminal is used as the DRM server. A storage device for transmitting a deduction and storing the right object from the DRM server using the host terminal;
Content or service providing system using a storage device, characterized in that it comprises a.
데이터 송수신을 위한 서버송수신부;
컨텐츠 또는 서비스에 대한 권리객체(Right Object)를 저장하는 서버저장부;
상기 서버송수신부를 통해 저장장치가 접속된 호스트 단말로부터 상기 권리객체(Right Object)의 전송을 요청 받으면, 상기 서버송수신부를 통해 상기 호스트 단말로 상기 저장장치 내 전자화폐 잔액에서 상기 컨텐츠 또는 상기 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송하고, 상기 서버송수신부를 통해 상기 호스트 단말로부터 상기 저장장치 내 전자화폐 잔액의 차감내역을 수신하면 상기 수신한 차감내역의 유효성을 검증하여, 상기 차감내역이 유효함을 확인하면 상기 서버송수신부를 통해 상기 호스트 단말로 상기 권리객체를 전송하는 서버제어부;
를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM(Digital Rights Management)서버.
Server transmitting and receiving unit for transmitting and receiving data;
Server storage unit for storing the right object (Right Object) for the content or service;
When the storage device is requested to transmit the right object from the host terminal to which the storage device is connected through the server transmitter / receiver, the amount of the content or the service from the electronic money balance in the storage device to the host terminal through the server transmitter / receiver. Sending a deduction request message requesting a deduction, and receiving the deduction of the electronic money balance in the storage device from the host terminal through the server transmission and reception unit verifies the validity of the received deduction, the deduction is valid A server control unit for transmitting the rights object to the host terminal through the server transmitter and receiver;
Digital Rights Management (DRM) server in a content or service providing system using a storage device comprising a.
제2항에 있어서, 상기 서버제어부는,
상기 서버송수신부를 통해 상기 호스트 단말로부터 상기 저장장치의 장치정보를 수신하면, 상기 수신한 장치정보를 참조하여 상기 저장장치 내 전자화폐의 잔액과 상기 컨텐츠 또는 상기 서비스의 금액을 비교하고, 상기 전자화폐의 잔액이 상기 컨텐츠 또는 상기 서비스의 금액 이상임을 확인하면 상기 차감요청메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 2, wherein the server control unit,
When the device information of the storage device is received from the host terminal through the server transmitting / receiving unit, the balance of the electronic money in the storage device and the amount of the content or the service are compared with reference to the received device information. The DRM server in a content or service providing system using a storage device, characterized in that to transmit the deduction request message if it is determined that the balance of the content or more than the amount of the service.
제3항에 있어서, 상기 서버제어부는,
상기 전자화폐의 잔액이 상기 컨텐츠 또는 상기 서비스의 금액 미만임을 확인하면 상기 호스트 단말로 잔액부족메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 3, wherein the server control unit,
If the balance of the electronic money is less than the amount of the content or the service, the DRM server in the content or service providing system using a storage device, characterized in that for transmitting a balance shortage message to the host terminal.
제3항에 있어서, 상기 서버제어부는,
상기 수신한 장치정보를 참조하여 상기 저장장치 내 상기 권리객체가 부존재하거나 상기 권리객체가 만료됨을 확인한 경우, 상기 저장장치 내 전자화폐의 잔액과 상기 컨텐츠 또는 상기 서비스의 금액을 비교하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 3, wherein the server control unit,
When it is confirmed that the right object in the storage device does not exist or the right object expires with reference to the received device information, the balance of the electronic money in the storage device and the amount of the content or the service are compared. DRM server in the content or service providing system using a storage device.
제5항에 있어서, 상기 서버제어부는,
상기 권리객체가 만료됨을 확인한 경우, 상기 권리객체와 함께 상기 만료된 권리객체의 삭제를 요청하는 삭제요청메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 5, wherein the server control unit,
If it is confirmed that the rights object has expired, the DRM server in the content or service providing system using a storage device characterized in that for transmitting the deletion request message requesting the deletion of the expired rights object with the rights object.
제2항에 있어서, 상기 서버저장부는 등록정보를 더 저장하고,
상기 서버제어부는 상기 서버송수신부를 통해 상기 호스트 단말로부터 인증정보를 수신하면, 상기 등록정보를 참조하여 인증을 수행하고 상기 차감요청메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 2, wherein the server storage unit further stores the registration information,
When the server controller receives authentication information from the host terminal through the server transmitter and receiver, the server controller performs authentication by referring to the registration information and transmits the deduction request message. DRM server.
제2항에 있어서, 상기 서버제어부는,
상기 차감요청메시지를 암호화하여 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 2, wherein the server control unit,
The DRM server in the content or service providing system using a storage device, characterized in that for transmitting the deduction request message encrypted.
제2항에 있어서, 상기 서버제어부는,
상기 서버송수신부를 통해 상기 권리객체의 저장완료메시지를 수신하면, 상기 서버송수신부를 통해 상기 호스트 단말로 상기 저장완료메시지를 전송하여 출력하도록 하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 2, wherein the server control unit,
When the storage completion message of the rights object is received through the server transmitter and receiver, the storage completion message to the host terminal via the server transmitter and receiver to output the content or service providing system using a storage device DRM server.
제2항에 있어서, 상기 서버제어부는
상기 차감내역이 유효함을 확인하면 상기 권리객체를 생성하여 상기 서버송수신부를 통해 상기 호스트 단말로 상기 권리객체를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 2, wherein the server control unit
And confirming that the deduction is valid, generating the rights object, and transmitting the rights object to the host terminal through the server transmitter / receiver.
제2항에 있어서,
상기 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 2,
The content is a DRM server in a content or service providing system using a storage device, characterized in that the executable content and data type content.
제11항에 있어서,
상기 권리객체는 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 DRM서버.
The method of claim 11,
The rights object is a DRM server in a content or service providing system using a storage device, characterized in that it comprises a separate execution target code block of the executable content.
호스트 단말과 데이터 송수신을 위한 통신부;
전자화폐를 저장하는 저장부;
상기 호스트 단말로부터 상기 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 수신하면, 상기 전자화폐의 잔액에서 상기 컨텐츠 또는 상기 서비스의 금액만큼 차감하고, 상기 호스트 단말로 차감내역을 전송하며, 상기 호스트 단말로부터 상기 컨텐츠 또는 상기 서비스에 대한 권리객체(Right Object)를 수신하면 상기 저장부에 저장하는 제어부;
를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치.
Communication unit for transmitting and receiving data with the host terminal;
A storage unit for storing electronic money;
When receiving the deduction request message requesting the deduction of the amount of content or service from the balance of the electronic money from the host terminal, the deduction of the amount of the content or the service from the balance of the electronic money, the deduction to the host terminal A control unit which transmits the data, and stores the content object or a right object for the service from the host terminal and stores the rights object in the storage unit;
Storage device in a content or service providing system using a storage device comprising a.
제13항에 있어서, 암복호화 처리를 수행하는 암복호화부;를 더 포함하고,
상기 제어부는 상기 암복호화부를 통해 상기 차감내역을 암호화하여 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치.
The apparatus of claim 13, further comprising an encryption / decryption unit configured to perform an encryption / decryption process.
The control unit is a storage device in a content or service providing system using a storage device, characterized in that for transmitting the encrypted by the encryption and decryption through the encryption and decryption unit.
제13항에 있어서, 상기 제어부는,
상기 권리객체를 저장한 후, 상기 호스트 단말로 저장완료메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치.
The method of claim 13, wherein the control unit,
Storage device in a content or service providing system using a storage device, characterized in that for storing the rights object, and transmitting a storage completion message to the host terminal.
제13항에 있어서,
상기 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치.
The method of claim 13,
The content storage device in a content or service providing system using a storage device, characterized in that the executable content and data type content.
제16항에 있어서,
상기 권리객체는 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템에서의 저장장치.
The method of claim 16,
The rights object is a storage device in a content or service providing system using a storage device characterized in that it comprises a separate execution target code block of the executable content.
DRM(Digital Rights Management)서버가, 저장장치가 접속된 호스트 단말로부터 컨텐츠 또는 서비스에 대한 권리객체(Right Object)의 전송을 요청 받으면, 상기 호스트 단말로 상기 저장장치 내 전자화폐 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 전송하는 메시지전송단계;
상기 DRM서버가 상기 호스트 단말로부터 상기 저장장치 내 전자화폐의 잔액을 차감내역을 수신하면 상기 수신한 차감내역의 유효성을 검증하는 검증단계;
상기 DRM서버가 상기 검증단계에서 상기 차감내역이 유효함을 확인하면, 상기 권리객체를 상기 호스트 단말로 전송하는 권리객체전송단계;
를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
When the Digital Rights Management (DRM) server receives a request for the transmission of a right object for content or a service from a host terminal to which a storage device is connected, the digital rights management management (DRM) server transmits the content or service from the balance of electronic money in the storage device to the host terminal. A message transmitting step of transmitting a deduction request message requesting a deduction by an amount;
A verification step of verifying the validity of the received deduction when the DRM server receives a deduction of the balance of the electronic money in the storage device from the host terminal;
A rights object transmission step of transmitting the rights object to the host terminal when the DRM server confirms that the deduction is valid in the verification step;
Content or service providing method using a storage device comprising a.
제18항에 있어서, 상기 메시지전송단계는,
상기 DRM서버가 상기 호스트 단말로부터 상기 저장장치의 장치정보를 더 수신하면, 상기 수신한 장치정보를 참조하여 상기 저장장치 내 전자화폐의 잔액과 상기 컨텐츠 또는 상기 서비스의 금액을 비교하고, 상기 전자화폐의 잔액이 상기 컨텐츠의 금액 이상임을 확인하면 상기 차감요청메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 18, wherein the message transmission step,
When the DRM server further receives the device information of the storage device from the host terminal, the balance of the electronic money in the storage device and the amount of the content or the service are compared with reference to the received device information, and the electronic money And transmitting the deduction request message when it is confirmed that the balance of the content is equal to or greater than the amount of the content.
제19항에 있어서, 상기 메시지전송단계 이후에,
상기 DRM서버가, 상기 메시지전송단계에서 상기 전자화폐의 잔액이 상기 컨텐츠 또는 상기 서비스의 금액 미만임을 확인하면 상기 호스트 단말로 잔액부족메시지를 전송하는 단계;
를 더 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 19, wherein after the message transmission step,
Transmitting, by the DRM server, a balance shortage message to the host terminal when the message transmission step confirms that the balance of the electronic money is less than the amount of the content or the service;
Content or service providing method using a storage device characterized in that it further comprises.
제19항에 있어서, 상기 메시지전송단계는,
상기 DRM서버가, 상기 수신한 장치정보를 참조하여 상기 저장장치 내 상기 권리객체가 부존재하거나 상기 권리객체가 만료됨을 확인한 경우, 상기 저장장치 내 전자화폐의 잔액과 상기 컨텐츠 또는 상기 서비스의 금액을 비교하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 19, wherein the message transmission step,
When the DRM server determines that the rights object in the storage device does not exist or the rights object expires with reference to the received device information, the balance of the electronic money in the storage device and the amount of the content or the service are compared. Content or service providing method using a storage device, characterized in that.
제21항에 있어서, 상기 권리객체전송단계는,
상기 DRM서버가, 상기 권리객체가 만료됨을 확인한 경우, 상기 권리객체와 함께 상기 만료된 권리객체의 삭제를 요청하는 삭제요청메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 21, wherein the transmitting the rights object,
And when the DRM server confirms that the rights object has expired, transmits a deletion request message requesting deletion of the expired rights object together with the rights object.
제18항에 있어서, 상기 메시지전송단계는,
상기 DRM서버가, 상기 차감요청메시지를 암호화하여 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 18, wherein the message transmission step,
The DRM server, the content or service providing method using a storage device, characterized in that for transmitting the encrypted request message.
제18항에 있어서, 상기 권리객체전송단계는,
상기 DRM서버가 상기 검증단계에서 상기 차감내역이 유효함을 확인하면, 상기 컨텐츠 또는 상기 서비스에 대한 권리객체를 생성하여 상기 호스트 단말로 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method according to claim 18, wherein the rights object transmission step,
If the DRM server confirms that the deduction is valid in the verification step, the content or service providing method using the storage device, characterized in that for generating the rights object for the content or the service to the host terminal.
제18항에 있어서,
상기 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 18,
The content is a content or service providing method using a storage device, characterized in that the executable content and data type content.
제25항에 있어서,
상기 권리객체는 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 25,
And the rights object comprises a code block for executing execution of the executable content.
제18항에 있어서, 상기 메시지전송단계는,
상기 DRM서버가 상기 호스트 단말로부터 인증정보를 수신하면, 상기 DRM서버 내 저장된 등록정보와 비교하여 상기 저장장치가 등록된 저장장치임을 확인하고 상기 차감요청메시지를 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 18, wherein the message transmission step,
When the DRM server receives the authentication information from the host terminal, the storage device is compared with the registration information stored in the DRM server, and confirms that the storage device is a registered storage device, and transmits the deduction request message. How to Provide Content or Services.
저장장치가 호스트 단말로부터 상기 저장장치 내 전자화폐의 잔액에서 컨텐츠 또는 서비스의 금액만큼 차감을 요청하는 차감요청메시지를 수신하는 메시지수신단계;
상기 저장장치가 상기 전자화폐의 잔액에서 상기 컨텐츠 또는 상기 서비스의 금액만큼 차감하고 상기 호스트 단말로 차감내역을 전송하는 내역전송단계;
상기 저장장치가 상기 호스트 단말로부터 상기 컨텐츠 또는 상기 서비스에 대한 권리객체(Right Object)를 수신하면 내부에 저장하는 저장단계;
를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
A message receiving step of receiving, by a storage device, a deduction request message requesting a subtraction of a content or a service amount from a balance of electronic money in the storage device from a host terminal;
A history transmission step of the storage device subtracting the amount of the content or the service from the balance of the electronic money and transmitting the deduction to the host terminal;
A storage step of storing, when the storage device receives a right object for the content or the service from the host terminal;
Content or service providing method using a storage device comprising a.
제28항에 있어서, 상기 저장단계 이후에,
상기 저장장치가 상기 호스트 단말로 상기 권리객체에 대한 저장완료메시지를 전송하는 메시지전송단계;
를 더 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 28, wherein after the storing step,
A message transmitting step of transmitting, by the storage device, a storage completion message for the rights object to the host terminal;
Content or service providing method using a storage device characterized in that it further comprises.
제28항에 있어서, 상기 내역전송단계는
상기 저장장치가, 상기 차감내역을 암호화하여 전송하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
29. The method of claim 28, wherein the detail transmission step
The storage device, the content or service providing method using the storage device, characterized in that for transmitting the encrypted details.
제28항에 있어서,
상기 컨텐츠는 실행형 컨텐츠와 데이터형 컨텐츠를 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 28,
The content is a content or service providing method using a storage device, characterized in that the executable content and data type content.
제31항에 있어서,
상기 권리객체는 상기 실행형 컨텐츠의 분리 실행 대상 코드 블록을 포함하는 것을 특징으로 하는 저장장치를 이용한 컨텐츠 또는 서비스 제공 방법.
The method of claim 31, wherein
And the rights object comprises a code block for executing execution of the executable content.
제28항 내지 제32항 중 어느 하나의 항에 기재된 방법을 실행하기 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체.A computer-readable recording medium having recorded thereon a program for executing the method according to any one of claims 28 to 32.
KR1020100030172A 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 KR20110013187A (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 (1)

Publication Number Publication Date
KR20110013187A true KR20110013187A (en) 2011-02-09

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 (2)

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

Family Applications After (5)

Application Number Title Priority Date Filing Date
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

Country Status (1)

Country Link
KR (8) KR101487176B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014030873A1 (en) * 2012-08-20 2014-02-27 주식회사 네오위즈인터넷 Method, mobile terminal, recording medium and system for providing mobile payment service

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Family Cites Families (12)

* 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
JP2006172351A (en) 2004-12-20 2006-06-29 Hitachi Ltd Method and system for content expiration date management by use of removable medium
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
KR101314271B1 (en) * 2006-07-25 2013-10-02 엘지전자 주식회사 Digital rights management method and system thereof
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014030873A1 (en) * 2012-08-20 2014-02-27 주식회사 네오위즈인터넷 Method, mobile terminal, recording medium and system for providing mobile payment service
KR101447282B1 (en) * 2012-08-20 2014-10-16 주식회사 네오위즈인터넷 Method, mobile terminal, recording medium, and system for providing mobile payment service

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
KR101487175B1 (en) 2015-02-02
KR20110013191A (en) 2011-02-09

Similar Documents

Publication Publication Date Title
KR20110013187A (en) System and method for providing service or contents using storage device, drm-server and storage device, and recording medium thereof
US7140549B2 (en) Method and apparatus for selecting a desired application on a smart card
US7165727B2 (en) Method and apparatus for installing an application onto a smart card
US7191288B2 (en) Method and apparatus for providing an application on a smart card
US20050184163A1 (en) Method and apparatus for processing an application identifier from a smart card
JP2005512205A (en) Smart card system
Roland Applying recent secure element relay attack scenarios to the real world: Google Wallet Relay Attack
US20090119516A1 (en) Secure device and reader-writer
KR101498919B1 (en) System and method for digital rights management based on storage device, and recording medium thereof
Markantonakis et al. Multi-application smart card platforms and operating systems
KR100971125B1 (en) Method for Network Card Based on Magnetic Stripe
KR101013162B1 (en) System for Relaying Application and Service Code for Card with ICC and MS
KR20080042780A (en) Method for operating intelligent smart card
Karlíková Komunikace bezkontaktních karet v Androidu
KR100971126B1 (en) System for Operating Card
KR20040087537A (en) Intelligent Smart Card and System and Method for Operating Intelligent Smart Card
KR100971128B1 (en) Method for Network Card Based on Magnetic Stripe
Zhao et al. Multi-Applications Secure Mobile Platform
KR20080042779A (en) System for operating intelligent smart card
KR20080042781A (en) Card terminal
Jang Secure Object Sharing on Java Card
KR20080014913A (en) Card terminal device
KR20080014914A (en) Ic chip
KR20050007619A (en) Method for Creating and Relaying Application and Service Code for Card with ICC and MS
KR20040066393A (en) Network Card of Smart Card Type, System and Method for Operating Network Card by It

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment