KR20080111888A - Method and apparatus for contents security - Google Patents
Method and apparatus for contents security Download PDFInfo
- Publication number
- KR20080111888A KR20080111888A KR1020070060408A KR20070060408A KR20080111888A KR 20080111888 A KR20080111888 A KR 20080111888A KR 1020070060408 A KR1020070060408 A KR 1020070060408A KR 20070060408 A KR20070060408 A KR 20070060408A KR 20080111888 A KR20080111888 A KR 20080111888A
- Authority
- KR
- South Korea
- Prior art keywords
- hooking
- virtual drive
- signal
- drive access
- access signal
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/10—Program control for peripheral devices
- G06F13/102—Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/82—Protecting input, output or interconnection devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/468—Specific access rights for resources, e.g. using capability register
Abstract
Description
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.BRIEF DESCRIPTION OF THE DRAWINGS In order to better understand the drawings cited in the detailed description of the invention, a brief description of each drawing is provided.
도 1은 종래의 가상 드라이브를 이용한 컨텐츠 접근 방법을 설명하기 위한 개략적인 기능 블록도를 나타낸다.1 is a schematic functional block diagram illustrating a conventional content access method using a virtual drive.
도 2는 본 발명의 실시 예에 따른 컨텐츠 보안 장치의 개략적인 기능 블록도를 나타낸다.2 is a schematic functional block diagram of a content security device according to an embodiment of the present invention.
도 3은 본 발명의 실시 예에 따른 컨텐츠 보안 방법을 설명하기 위한 플로우 챠트를 나타낸다.3 is a flowchart illustrating a content security method according to an embodiment of the present invention.
본 발명은 컨텐츠 보안 방법에 관한 것으로, 보다 상세하게는 가상 드라이브를 이용하면서 상기 가상 드라이브에 저장된 컨텐츠를 무단으로 복제하거나 불법적인 사용을 방지할 수 있으며 또한, 인증된 프로세스만 상기 가상 드라이브에 접근할 수 있도록 하는 컨텐츠 보안 방법 및 그 장치에 관한 것이다.The present invention relates to a content security method, and more particularly, to prevent unauthorized copying or illegal use of content stored in the virtual drive while using a virtual drive, and only an authorized process can access the virtual drive. It relates to a content security method and apparatus therefor.
가상 드라이브는 OS(Operating System)으로 하여금 논리적인 데이터 유닛을 실제로 존재하지 않는 가상의 물리적 장치로 인식하도록 함으로써, 사용자 또는 OS에게 편의를 제공할 수 있는 기술을 의미한다.A virtual drive refers to a technology capable of providing convenience to a user or an OS by causing an operating system (OS) to recognize a logical data unit as a virtual physical device that does not actually exist.
도 1은 종래의 가상 드라이브를 이용한 컨텐츠 접근 방법을 설명하기 위한 개략적인 기능 블록도를 나타낸다.1 is a schematic functional block diagram illustrating a conventional content access method using a virtual drive.
도 1을 참조하면, 사용자 프로세스(예컨대, 응용 프로그램 또는 OS에서 제공하는 함수의 일부, 10)는 가상 드라이브(Virtual drive, 이하 'VD', 50)에 접근하기 위해 소정의 메시지를 OS에 구비된 커널(kernel)로 출력할 수 있다. 상기 메시지를 수신한 상기 커널은 상기 가상 드라이브(50)를 가상의 물리적 장치로 OS가 인식하도록 하고, 상기 가상 드라이브(50)에 접근하기 위한 장치인 가상 디바이스 드라이버(Virtual Device Driver, 이하 ‘VDD', 30)로 출력할 수 있다. 즉, 상기 사용자 프로세스(10)는 상기 VDD(30)를 통해 상기 가상 드라이브(50)로 접근할 수 있다.Referring to FIG. 1, a user process (eg, a part of a function provided by an application or an OS, 10) is provided with a predetermined message in the OS to access a virtual drive (hereinafter, 'VD', 50). You can output it to the kernel. The kernel receiving the message causes the OS to recognize the
상기 VD(50)에는 다양한 형태의 컨텐츠(예컨대, MP3, 영화, 이미지, 문서 등)가 저장될 수 있다. 또한, 상기 VD(50)는 경우에 따라서는 상기 다양한 형태의 컨텐츠가 소정의 파일 형태(예컨대, 이미지 파일)로 저장된 경우 상기 컨텐츠 자체를 의미할 수도 있다. 상기 컨텐츠는 암호화되어 있을 수 있으며, 이때에는 상기 VDD(30) 또는 상기 사용자 프로세스(10) 중 적어도 하나에 암호화된 컨텐츠를 복호화하기 위한 복호화 모듈이 포함되는 것이 바람직하다. The VD 50 may store various types of content (eg, MP3, movie, image, document, etc.). In addition, the VD 50 may refer to the content itself when the various types of content are stored in a predetermined file form (eg, an image file). The content may be encrypted, and in this case, at least one of the VDD 30 or the
상기 VDD(30)는 상기 VD(50)를 OS에 마운트 함으로써, 사용자 또는 OS가 상기 VD(50)에 저장되어 있는 소정의 컨텐츠(예컨대, 이미지 파일로 저장된)를 별도 의 독립적인 드라이브에서 사용하는 것과 같은 효과를 제공할 수 있다. 상기 VD(50)에 저장되는 컨텐츠는 상기 VDD(30)에서 지원하는 모든 파일 시스템의 포맷(예컨대, CDFS(CD-ROM File System), NFS(Network File System), FAT12, FAT16, FAT32, 또는 NTFS 등)의 형태로 저장될 수 있다.The VDD 30 mounts the VD 50 to an OS so that a user or OS may use predetermined contents (for example, stored as an image file) stored in the VD 50 in a separate drive. It can provide the same effect. The content stored in the VD 50 may be formatted in all file systems supported by the VDD 30 (eg, CD-ROM File System (CDFS), Network File System (NFS), FAT12, FAT16, FAT32, or NTFS). And the like).
기본적으로 상기 VDD(30)는 상기 VD(50)에 저장된 모든 컨텐츠 또는 파일에 접근 권한을 가지고 있다. 예컨대, 상기 사용자 프로세스(10)는 상기 VDD(30)를 통해 상기 VD(50)에 저장된 컨텐츠의 리퀘스트(예컨대, 파일 I/O 함수들)를 요청할 수 있으며, 상기 VDD(30)는 요청된 리퀘스트에 상응하는 동작을 수행한 후 그 결과 값을 상기 사용자 프로세스(10)로 리턴할 수 있다. 상기 리퀘스트에는 파일을 다른 디바이스(예컨대, 하드 디스크 드라이브)로 복제하거나, 다른 프로세스(예컨대, 응용 프로그램)로 복제하는 경우를 포함할 수도 있다.Basically, the VDD 30 has access to all content or files stored in the VD 50. For example, the
따라서, 컨텐츠를 가상 드라이브 형태로 제공하고자 하는 컨텐츠 제공자는 이러한 무단 복제를 방지할 수 있는 컨텐츠 보안 방법을 필요로 하게 된다. 또한, 컨텐츠 제공자는 인증된 사용자 프로세스만 상기 VD(50)에 접근할 수 있도록 제어함으로써 악성코드(예컨대, 크랙(crack) 파일, 바이러스, 또는 말웨어(mal-ware) 등)로부터 컨텐츠를 보호할 필요를 느끼게 된다.Therefore, a content provider who wants to provide content in the form of a virtual drive needs a content security method that can prevent such unauthorized duplication. In addition, the content provider needs to protect the content from malicious code (eg, crack files, viruses, or malware) by controlling only authorized user processes to access the VD 50. Will feel.
따라서, 가상 드라이브를 통하여 컨텐츠를 이용하면서, 불법적인 컨텐츠의 복제를 막을 수 있으며, 인증된 사용자 프로세스만 가상 드라이브에 접근할 수 있도록 제어할 수 있는 컨텐츠 보안 방법 및 그 장치가 절실히 요구된다.Accordingly, there is an urgent need for a content security method and apparatus capable of preventing illegal copying of content while using content through a virtual drive and controlling only authorized user processes to access the virtual drive.
따라서 본 발명이 이루고자 하는 기술적인 과제는 가상 드라이브를 통하여 컨텐츠를 이용하면서, 불법적인 컨텐츠의 복제를 막음으로써 컨텐츠를 무단으로 사용하는 것을 방지할 수 있는 컨텐츠 보안 방법 및 그 장치를 제공하는 것이다.Accordingly, a technical problem of the present invention is to provide a content security method and apparatus capable of preventing unauthorized use of content by preventing illegal copying of content while using the content through a virtual drive.
본 발명이 이루고자 하는 다른 기술적인 과제는 인증된 사용자 프로세스만 가상 드라이브에 접근할 수 있도록 제어함으로써, 정당한 사용만을 권장하며 악성코드로부터 컨텐츠를 보호할 수 있는 컨텐츠 보안 방법 및 그 장치를 제공하는 것이다.Another technical problem to be achieved by the present invention is to provide a content security method and apparatus capable of protecting the content from malicious code by only allowing proper use by controlling only an authorized user process to access a virtual drive.
상기 기술적 과제를 달성하기 위한 컨텐츠 보안 방법은 컨텐츠 보안 장치가 사용자 프로세스로부터 출력되는 가상 드라이브 접근 신호를 수신하는 단계 및 후킹 설정 상태에 따라 수신된 상기 가상 드라이브 접근 신호가 후킹 신호인 경우, 상기 컨텐츠 보안 장치가 상기 가상 드라이브 접근 신호를 후킹하고, 상기 사용자 프로세스로 널 리턴 신호를 출력하는 단계를 구비하고, 수신된 상기 가상 드라이브 접근 신호가 후킹 신호가 아닌 경우, 상기 컨텐츠 보안장치는 상기 가상 드라이브 접근 신호를 커널로 출력하는 단계를 구비한다.According to an aspect of the present invention, there is provided a content security method in which a content security device receives a virtual drive access signal output from a user process and the received virtual drive access signal is a hooking signal according to a hooking setting state. And a device hooking the virtual drive access signal and outputting a null return signal to the user process, and if the received virtual drive access signal is not a hooking signal, the content security device provides the virtual drive access signal. Outputting the kernel to the kernel.
상기 후킹 신호는 파일 I/O 함수, 클립보드 함수, 그래픽 디바이스 인터페이스 함수, 또는 네트워크 I/O 함수 중 적어도 하나를 포함하는 신호일 수 있다.The hooking signal may be a signal including at least one of a file I / O function, a clipboard function, a graphic device interface function, or a network I / O function.
상기 후킹 설정 상태는 후킹 이네이블 상태일 수 있다.The hooking setting state may be a hooking enable state.
상기 컨텐츠 보안 방법은 수신된 상기 가상 드라이브 접근 신호가 후킹 신호가 아닌 경우, 상기 커널로 출력되는 상기 가상 드라이브 접근 신호를 VDD(Virtual Device Driver)가 수신하는 단계 및 프로세스 인증 상태에 따라 상기 사용자 프로세스가 인증된 프로세스가 아닌 경우 상기 VDD가 상기 사용자 프로세스로 널 리턴 신호를 출력하는 단계를 더 구비하고, 상기 사용자 프로스세가 인증된 프로세스인 경우 상기 VDD는 상기 가상 드라이브 접근 신호를 VD(Virtual Drvie)로 출력하는 단계를 더 구비할 수 있다.In the content security method, when the received virtual drive access signal is not a hooking signal, the user process according to a process authentication state and a virtual device driver (VDD) receiving the virtual drive access signal output to the kernel. And if the VDD outputs a null return signal to the user process if the process is not an authenticated process, and if the user process is an authenticated process, the VDD outputs the virtual drive access signal to a virtual drvie (VD). It may further comprise a step.
상기 프로세스 인증 상태는 프로세스 인증 이네이블 상태일 수 있다.The process authentication state may be a process authentication enable state.
상기 VD는 암호화된 이미지 파일을 포함하고 상기 VDD는 암호화된 상기 이미지 파일을 복호화하기 위한 복호화 모듈을 포함할 수 있다.The VD may include an encrypted image file and the VDD may include a decryption module for decrypting the encrypted image file.
상기 기술적 과제를 달성하기 위한 컨텐츠 보안 방법은 사용자 프로세스로부터 커널로 출력되는 가상 드라이브 접근 신호를 VDD(Virtual Device Driver)가 수신하는 단계 및 프로세스 인증 상태에 따라 상기 사용자 프로세스가 인증된 프로세스가 아닌 경우, 상기 VDD가 상기 사용자 프로세스로 널 리턴 신호를 출력하는 단계를 구비하고, 상기 사용자 프로스세가 인증된 프로세스인 경우, 상기 VDD는 상기 가상 드라이브 접근 신호를 VD(Virtual Drvie)로 출력하는 단계를 구비한다.Content security method for achieving the technical problem is when the user process is not an authenticated process according to the step of receiving a virtual drive access signal output from the user process to the kernel (VDD) and process authentication status, The VDD includes outputting a null return signal to the user process. When the user process is an authenticated process, the VDD includes outputting the virtual drive access signal to a virtual drvie (VD).
상기 컨텐츠 보안 방법은 컨텐츠 보안 장치가 상기 사용자 프로세스로부터 출력되는 상기 가상 드라이브 접근 신호를 수신하는 단계 및 후킹 설정 상태에 따라 수신된 상기 가상 드라이브 접근 신호가 후킹 신호인 경우, 상기 컨텐츠 보안 장치가 상기 가상 드라이브 접근 신호를 후킹하고, 상기 사용자 프로세스로 널 리턴 신호를 출력하는 단계를 더 구비하고, 수신된 상기 가상 드라이브 접근 신호가 후킹 신호가 아닌 경우, 상기 컨텐츠 보안장치는 상기 가상 드라이브 접근 신호를 상기 커널로 출력하는 단계를 더 구비할 수 있다.The content security method includes the step of receiving, by the content security device, the virtual drive access signal outputted from the user process, and when the received virtual drive access signal is a hooking signal according to a hooking setting state, the content security device is set to the virtual device. Hooking a drive access signal and outputting a null return signal to the user process, and if the received virtual drive access signal is not a hooking signal, the content security device sends the virtual drive access signal to the kernel. It may further comprise the step of outputting.
상기 컨텐츠 보안 장치는 상기 후킹 설정 상태 또는 상기 프로세스 인증 상태 중 적어도 하나를 변경할 수 있다. 상기 컨텐츠 보안 방법은 컴퓨터가 읽을 수 있는 프로그램을 기록한 기록매체에 저장될 수 있다.The content security device may change at least one of the hooking setting state or the process authentication state. The content security method may be stored in a recording medium recording a computer readable program.
상기 기술적 과제를 달성하기 위한 컨텐츠 보안 장치는 후킹 설정 상태를 설정하는 컨트롤러 및 상기 컨트롤러의 제어하에 사용자 프로세스로부터 출력되는 가상 드라이브 접근 신호를 수신하고, 상기 후킹 설정 상태에 따라 수신된 상기 가상 드라이브 접근 신호가 후킹 신호인 경우, 상기 가상 드라이브 접근 신호를 후킹하고, 상기 사용자 프로세스로 널 리턴 신호를 출력하며, 수신된 상기 가상 드라이브 접근 신호가 후킹 신호가 아닌 경우, 상기 가상 드라이브 접근 신호를 커널로 출력하는 API 후킹부를 구비한다.The content security device for achieving the technical problem receives a virtual drive access signal output from a controller for setting a hooking setting state and a user process under the control of the controller, the virtual drive access signal received according to the hooking setting state Hooking the virtual drive access signal, outputting a null return signal to the user process, and outputting the virtual drive access signal to a kernel if the received virtual drive access signal is not a hooking signal. An API hooking part is provided.
상기 컨트롤러는 상기 커널로 출력되는 상기 가상 드라이브 접근 신호를 VDD(Virtual Device Driver)가 수신하도록 제어하고, 프로세스 인증 상태에 따라 상기 사용자 프로세스가 인증된 프로세스가 아닌 경우 상기 VDD가 상기 사용자 프로세스로 널 리턴 신호를 출력하며, 상기 사용자 프로스세가 인증된 프로세스인 경우 상기 VDD는 상기 가상 드라이브 접근 신호를 VD(Virtual Drvie)로 출력하도록 제어할 수 있다.The controller controls the virtual device driver (VDD) to receive the virtual drive access signal output to the kernel, and if the user process is not an authenticated process according to a process authentication state, the VDD returns null to the user process. If the user process is an authenticated process, the VDD may control to output the virtual drive access signal to a virtual drvie (VD).
상기 컨트롤러는 상기 프로세스 인증 상태를 더 설정할 수 있다.The controller may further set the process authentication state.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도 면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.In order to fully understand the present invention, the operational advantages of the present invention, and the objects achieved by the practice of the present invention, reference should be made to the accompanying drawings which illustrate preferred embodiments of the present invention and the contents described in the accompanying drawings.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다. In addition, in the present specification, when one component 'transmits' data to another component, the component may directly transmit the data to the other component, or through at least one other component. Means that the data may be transmitted to the other component.
반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.On the contrary, when one component 'directly transmits' data to another component, it means that the data is transmitted from the component to the other component without passing through the other component.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Like reference numerals in the drawings denote like elements.
도 2는 본 발명의 실시 예에 따른 컨텐츠 보안 장치의 개략적인 기능 블록도를 나타낸다.2 is a schematic functional block diagram of a content security device according to an embodiment of the present invention.
도 2를 참조하면, 본 발명의 실시 예에 따른 컨텐츠 보안 장치(100)는 API 후킹부(110) 및 컨트롤러(130)를 구비할 수 있다. 상기 컨텐츠 보안 장치(100)는 VDD(150)를 더 구비할 수 있으며, 상기 VDD(150)는 상기 컨트롤러(130)를 통해 제어할 수 있는 VDD로써, 사용자 단말기(예컨대, 컴퓨터)에 미리 설치되어 있는 VDD일수도 있고, 본 발명의 실시 예에 따른 컨텐츠 보안장치(100)를 사용자 단말기(예컨대, 컴퓨터)에 설치할 때 새롭게 설치되는 VDD일 수도 있다.Referring to FIG. 2, the
상기 API 후킹부(110)는 사용자 프로세스(10)로부터 출력되며 VD(50)를 접근 하기 위해 출력되는 다양한 리퀘스트(또는 가상 디스크 접근신호, 예컨대 메시지 또는 함수 호출 등) 중에서, 컨텐츠의 보안 정책에 따라 허용되지 않는 리퀘스트를 차단하는 역할을 수행할 수 있다.The
상기 API 후킹부(110)는 허용되지 않는 리퀘스트를 API 후킹(hooking)을 함으로써 OS의 커널(kernel) 레벨에 구비되는 VDD(150)로 상기 허용되지 않는 리퀘스트가 요청되는 것 자체를 차단할 수 있다. 여기서 후킹이라 함은 상기 사용자 프로세스에서 호출되는 함수의 함수 위치를 변경하는 기술을 의미하며, 본 발명의 기술 분야의 평균적 전문가들에게는 API 후킹의 동작원리는 용이하게 이해될 수 있으므로 상세한 설명은 생략한다. The
상기 허용되지 않는 리퀘스트는 파일 I/O UI(또는 함수) 또는 클립보드(ClipBoard) 함수 중 적어도 일부분일 수 있으며, 상기 허용되지 않는 리퀘스트의 종류는 보안정책에 따라 다양할 수 있음은 물론이다. The unsolicited request may be at least a portion of a file I / O UI (or function) or a clipboard function, and the kind of the unsolicited request may vary according to a security policy.
예컨대, 상기 파일 I/O UI 중 상기 API 후킹부(110)가 후킹을 하는 함수로는 GetSaveFileName, GetOpenFileName 등이 포함될 수 있으며, 이에 한정되지는 않고 무단복제를 하기위해 상기 사용자 프로세스(10)로부터 호출되는 모든 함수를 포함할 수 있다.For example, a function for hooking the
또한, 상기 API 후킹부(110)가 상기 클립보드 함수 중 후킹을 하는 함수로는 OpenClipboard, SetClipboard, GetClipboard, 또는 CloseClipboard 함수 등과 이들의 하위 멤버함수들이 포함될 수 있다. 즉, OS에서 제공되는 클립보드를 통해 상기 VD(50)에 저장된 컨텐츠의 다른 디바이스 또는 다른 주소로의 복제를 방지하기 위 해 상기 API 후킹부(110)는 클립보드 함수를 후킹할 수 있다. 물론, 보안정책에 따라 상기 클립보드 함수 중 일부는 허용될 수 있으며(즉, 후킹하지 않을 수 있으며), 본 발명의 권리범위가 상술한 예에 한정되지는 않는다.In addition, the
이밖에도, 상기 API 후킹부(110)는 그래픽 디바이스 인터페이스 함수 또는 네트워크 I/O 함수 등을 후킹함으로써 화면 이미지 또는 동영상의 캡처링(capturing)을 통한 컨텐츠의 무단 복제 또는 인증되지 않은 네트워크 입출력을 통한 컨텐츠의 무단 복제를 방지할 수 있다.In addition, the
상기 API 후킹부(110)가 후킹함으로써 무단 복제를 방지하기 위한 리퀘스트의 종류는 보안정책에 따라 달라질 수 있음은 전술한 바와 같으며, 상기 API 후킹부(110)가 후킹하는 리퀘스트의 종류는 상기 컨트롤러(130)를 통해 제어 및/또는 변경될 수 있다. 이를 위해, 상기 컨트롤러(130)는 상기 API 후킹부(110)가 후킹할 리퀘스트의 종류를 소정의 저장장치(미도시)에 저장하고 있을 수 있다.As described above, the type of request for preventing unauthorized duplication by hooking the
한편 상기 API 후킹부(110)가 상기 사용자 프로세스(10)로부터 출력되는 리퀘스트를 후킹하는 경우, 상기 API 후킹부(110)는 상기 사용자 프로세스(10)로 소정의 널 신호를 출력함으로써 상기 사용자 프로세스(10)가 비정상적인 오류를 일으키는 것을 방지할 수 있다. 여기서 상기 널(Null) 신호라 함은, 상기 사용자 프로세스(10)로부터 출력되는 리퀘스트에 응답하여 상기 컨텐츠 보안 장치(100)가 상기 사용자 프로세스(10)로 출력하는 응답신호로써, 상기 사용자 프로세스(10)가 정상적으로 리퀘스트 요청을 마칠수 있도록 하는 함수로 정의될 수 있다. 상기 널 신호는 후킹된 리퀘스트에 대응되도록 상기 컨텐츠 보안 장치(100)의 제공자가 자체적 으로 만든 함수일 수도 있으며, 아무런 동작을 수행하지 않는 널 함수일 수도 있다.Meanwhile, when the
상기 컨트롤러(130)는 후킹 설정 상태를 제어함으로써 상기 API 후킹부(110)의 기능을 완전히 디스에이블(disable) 시키거나 이네이블(enable)시킬 수도 있다. 즉, 사용자의 요구 또는 컨텐츠의 종류에 따라 전술한 바와 같은 API 후킹을 통한 무단 복제기능을 수행할 수도 있고, 수행하지 않을 수도 있는 것이다.The
상기 컨트롤러(130)는 상기 API 후킹부(130)가 후킹할 리퀘스트들의 제어, 후킹 설정 상태의 제어 뿐만아니라, 컨텐츠의 사용 정책(policy) 또는 DRM의 제어를 수행할 수도 있다. 예컨대, 상기 VD(50)에 저장된 컨텐츠가 DRM으로 보호되고 있는 컨텐츠인 경우, 상기 컨트롤러(130)는 상기 컨텐츠의 사용, 배포, 및/또는 공급을 제어하기 위한 DRM 제어 모듈의 역할을 수행할 수 있다. 이를 위해, 상기 컨트롤러(130) 소정의 DRM 서버(미도시)와 유무선통신을 통하여 DRM 키 등의 DRM 제어를 위한 소정의 정보를 얻을 수도 있다.The
또한, 본 발명의 실시 예에 따른 컨텐츠 보안 장치(100)는 본 출원인이 2006. 7. 20일에 출원한 특허발명 “가상디스크 구동방법 및 이를 위한 기록매체”(특허등록번호 10-0692964)의 명세서에 기재된 바와 같이 상기 VDD(150), 상기 VD(50), 상기 API 후킹부(110), 및 상기 컨트롤러(130)가 같이 하나의 패키지 파일 형태로 저장된 상태에서 상기 패키지 파일이 실행되면 자동으로 상기 VD(50)가 마운트되면서 상기 컨텐츠 보안장치(100) 역시 자동으로 설치되도록 구현될 수도 있다. 이를 위해 상기 컨트롤러(130)는 상기 패키지 파일의 구성에 필요한 정보 및/ 또는 상기 패키지 파일의 실행시에 자동을 상기 VD(50)를 마운트 시키기 위한 소정의 정보를 더 저장할 수도 있다. 상기 등록특허 “가상디스크 구동방법 및 이를 위한 기록매체”(등록번호 10-0692964)의 명세서 및 명세서에 기재된 내용은 본 출원의 레퍼런스로 포함된다.In addition, the
한편, 본 발명의 실시 예에 따른 컨텐츠 보안 장치(100)는 상기 API 후킹부(110)를 통해 무단 복제를 방지하는 동시에, 인증된 사용자 프로세스만을 상기 VD(50)로 접근하도록 제어하기 위한 프로세스 인증 절차를 거칠 수 있다. 이러한 프로세스 인증 절차는 상기 VDD(150)를 통해 수행될 수 있다.Meanwhile, the
상기 API 후킹부(110)를 통해 후킹되지 않은 정상적인 리퀘스트는 커널을 통해 상기 VDD(150)로 입력될 수 있다. 상기 VDD(150)는 전술한 바와 같이, 상기 사용자 프로세스(10)가 상기 VD(50)로 접근을 할 수 있도록 하며, 상기 VD(50)를 마운트(mount) 시키는 역할을 수행할 수 있다.Normal requests that are not hooked through the
이와 더불어, 상기 VDD(150)는 상기 VDD(150)에 포함된 소정의 프로세스 인증 모듈(미도시)을 통해 인증된 사용자 프로세스만을 상기 VD(50)에 접근할 수 있도록 제어할 수 있다. 예컨대, 상기 VDD(150)는 입력되는 리퀘스트에 포함된 상기 사용자 프로세스(10)의 식별자(예컨대, ID 또는 프로세스 이름 등)를 이용해 인증 절차를 수행할 수 있다. 인증되는 사용자 프로세스(10)의 식별자 리스트(즉, 허용되는 프로세스 리스트) 또는 인증되지 않는 사용자 프로세스(10)의 식별자 리스트(즉, 차단될 프로세스의 리스트)는 상기 컨트롤러(130) 또는 상기 VDD(150) 중 적어도 하나에 저장될 수 있다.In addition, the
인증 결과 상기 사용자 프로세스(10)가 인증되지 않은 프로세스인 경우 상기 VDD(150) 또는 상기 컨트롤러(130) 중 어느 하나는 상기 사용자 프로세스(10)로 널 신호를 출력함으로써 상기 사용자 프로세스(10)의 오동작을 방지하고 정상적으로 상기 VD(50)로의 리퀘스트 절차를 종료할 수 있다. 상기 널 신호는 상기 API 후킹 동작시에 상기 사용자 프로세스(10)로 출력되는 널 신호와 동일할 수도 있으며, 동일하지 않을 수도 있다.When the
인증 결과 상기 사용자 프로세스(10)가 인증되는 프로세스인 경우에는, 상기 리퀘스트는 정상적으로 상기 VD(50)에 접근할 수 있으며, 그 결과 상기 컨텐츠 보안 장치(100)는 커널에서 온 리턴 값을 상기 사용자 프로세스(10)로 전달함으로써, 상기 리퀘스트에 상응하는 동작이 정상적으로 수행될 수 있다.In the case where the
또한, 상기 컨트롤러(130)는 상기 VDD(150)의 프로세스 인증 상태를 디스에이블 또는 이네이블 상태로 설정함으로써, 상기 VDD(150)가 프로세스 인증 절차를 수행할지 여부를 제어할 수 있다.In addition, the
한편, 상기 VD(50)에 저장된 컨텐츠가 암호화된 파일인 경우에는 상기 VDD(150)는 소정의 복호화모듈(미도시)를 더 구비할 수 있다. 또한, DRM에 의해 보호되는 컨텐츠인 경우 상기 VDD(150)에 구비되는 상기 소정의 복호화 모듈(미도시)은 상기 컨트롤러(130)에 구비되는 DRM 제어모듈(미도시)에 의해 제어될 수 있음은 전술한 바와 같다.Meanwhile, when the content stored in the
도 3은 본 발명의 실시 예에 따른 컨텐츠 보안 방법을 설명하기 위한 플로우 챠트를 나타낸다.3 is a flowchart illustrating a content security method according to an embodiment of the present invention.
도 2와 도 3을 참조하면, 본 발명의 실시 예에 따른 컨텐츠 보안 방법은 후킹 설정 상태가 이네이블 상태인 경우(S100), 상기 사용자 프로세스(10)로부터 출력되는 리퀘스트(또는 가상드라이브 접근 신호)를 보안 정책에 따라 후킹할지 여부를 판단한다(S110). 상기 후킹 설정 상태가 디스에이블 상태인 경우에는(S100), 바로 프로세스 인증 절차(S120)를 수행하게 된다.2 and 3, in the content security method according to an embodiment of the present invention, when a hooking setting state is enabled (S100), a request (or a virtual drive access signal) output from the
상기 API 후킹부(110)가 후킹을 하는 경우 상기 컨텐츠 보안장치(100)는 상기 사용자 프로세스(10)로 널 신호를 출력하고(S150), 리퀘스트 절차를 종료한다.When the
후킹을 하지 않는 경우에는 상기 컨텐츠 보안 장치(100)는 프로세스 인증 절차를 거칠 수 있다.When not hooking, the
상기 프로세스 인증 절차는 프로세스 인증 상태가 이네이블인 경우(S120)이고, 상기 사용자 프로세스(10)가 인증된 프로세스인 경우(S130) 상기 사용자 프로세스(10)는 정상적으로 상기 VD(50)에 접근할 수 있으며, 상기 리퀘스트에 상응하는 동작을 수행한 후에 커널에서 리턴되는 값을 수신할 수 있다(S140).The process authentication procedure is when the process authentication state is enabled (S120), and when the
상기 사용자 프로세스(10)가 인증되지 않은 프로세스인 경우(S130), 상기 컨텐츠 보안장치(100)는 상기 사용자 프로세스(10)로 널 신호를 출력하고(S150), 리퀘스트 절차를 종료한다.If the
프로세스 인증 상태가 디스에이블인 경우(S120)에는, 인증된 프로세스인지 여부와 상관없이 상기 사용자 프로세스는 정상적으로 상기 VD(50)에 접근할 수 있으며, 상기 리퀘스트에 상응하는 동작을 수행한 후에 커널에서 리턴되는 값을 수신할 수 있다(S140).If the process authentication state is disabled (S120), regardless of whether the process is an authenticated process, the user process may normally access the
물론, 전술한 바와 같이 상기 VD(50)에 저장된 컨텐츠의 암호화 여부 및/또는 DRM 컨텐츠인지 여부에 따라 본 발명의 실시 예에 따른 컨텐츠 보안 방법은 복호화 과정 및/또는 DRM 제어 과정이 더 포함될 수 있다.Of course, the content security method according to an embodiment of the present invention may further include a decryption process and / or a DRM control process according to whether the content stored in the
또한, 본 발명의 실시예에 따른 컨텐츠 보안 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.In addition, the content security method according to an embodiment of the present invention can be embodied as computer readable code on a computer readable recording medium. The computer-readable recording medium includes all kinds of recording devices in which data that can be read by a computer system is stored. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, hard disks, floppy disks, optical data storage devices, and the like. Computer-readable recording media may be used in networked computer systems. Distributed, computer readable code may be stored and executed in a distributed fashion. And functional programs, codes and code segments for implementing the present invention can be easily inferred by programmers in the art to which the present invention belongs.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.Although the present invention has been described with reference to one embodiment shown in the drawings, this is merely exemplary, and those skilled in the art will understand that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.
상술한 바와 같이 본 발명에 따른 DRM 컨텐츠 보안 방법 및 그 장치는 가상 드라이브를 통하여 컨텐츠를 이용하면서, 불법적인 컨텐츠의 복제를 막음으로써 컨텐츠를 무단으로 사용하는 것을 방지할 수 있는 효과가 있다.As described above, the DRM content security method and apparatus according to the present invention can prevent unauthorized use of the content by preventing illegal copying of the content while using the content through the virtual drive.
또한, 인증된 사용자 프로세스만 가상 드라이브에 접근할 수 있도록 제어함으로써, 정당한 사용만을 권장하며 악성코드로부터 컨텐츠를 보호할 수 있는 효과가 있다.In addition, by controlling only the authorized user process to access the virtual drive, it is recommended to just use and protect the contents from malicious code.
Claims (13)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070060408A KR100911345B1 (en) | 2007-06-20 | 2007-06-20 | Method and apparatus for contents security |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020070060408A KR100911345B1 (en) | 2007-06-20 | 2007-06-20 | Method and apparatus for contents security |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20080111888A true KR20080111888A (en) | 2008-12-24 |
KR100911345B1 KR100911345B1 (en) | 2009-08-07 |
Family
ID=40369944
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020070060408A KR100911345B1 (en) | 2007-06-20 | 2007-06-20 | Method and apparatus for contents security |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100911345B1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102821094A (en) * | 2012-07-09 | 2012-12-12 | 深圳市深信服电子科技有限公司 | Method and system for secure data processing in virtual desktop |
US8549580B2 (en) | 2007-08-20 | 2013-10-01 | Teruten, Inc. | Method and apparatus for providing software security |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101098382B1 (en) * | 2009-12-14 | 2011-12-23 | 주식회사 크레블 | System for network duplication and method thereof |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20010071560A (en) | 1998-06-22 | 2001-07-28 | 콜린 콘스터블 | Virtual data storage (vds) system |
KR100596135B1 (en) * | 2004-02-24 | 2006-07-03 | 소프트캠프(주) | Control system for access classified by application in virtual disk and Controling method thereof |
JP2006031196A (en) | 2004-07-14 | 2006-02-02 | Ricoh Co Ltd | Accessing method, information processing device, program, and recording medium |
-
2007
- 2007-06-20 KR KR1020070060408A patent/KR100911345B1/en active IP Right Grant
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8549580B2 (en) | 2007-08-20 | 2013-10-01 | Teruten, Inc. | Method and apparatus for providing software security |
CN102821094A (en) * | 2012-07-09 | 2012-12-12 | 深圳市深信服电子科技有限公司 | Method and system for secure data processing in virtual desktop |
CN102821094B (en) * | 2012-07-09 | 2016-05-04 | 深圳市深信服电子科技有限公司 | Data safety processing method in virtual desktop and system |
Also Published As
Publication number | Publication date |
---|---|
KR100911345B1 (en) | 2009-08-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8752201B2 (en) | Apparatus and method for managing digital rights through hooking a kernel native API | |
JP5427182B2 (en) | Computer storage device having removable read-only area and read / write area, removable media component, system management interface, and network interface | |
JP4089171B2 (en) | Computer system | |
US20080295174A1 (en) | Method and System for Preventing Unauthorized Access and Distribution of Digital Data | |
JP5719244B2 (en) | Method, program, and computer apparatus for constructing a safely managed virtual machine execution environment | |
US20110167260A1 (en) | Computer system lock-down | |
JP6785967B2 (en) | Methods and systems to block phishing or ransomware attacks | |
WO2010061801A1 (en) | Client computer for protecting confidential file, server computer therefor, method therefor, and computer program | |
EP3074907B1 (en) | Controlled storage device access | |
US20030221115A1 (en) | Data protection system | |
WO2009110275A1 (en) | Classified information leakage prevention system and classified information leakage prevention method | |
WO2006017774A2 (en) | Method for preventing virus infection in a computer | |
US20070294530A1 (en) | Verification System and Method for Accessing Resources in a Computing Environment | |
US7894092B2 (en) | Computer-readable recording medium storing print image generating program and print image generating method | |
US20130014252A1 (en) | Portable computer accounts | |
JP2001256014A (en) | Output system, output method to be used for the same and recording medium in which program to be executed in output system is recorded | |
KR100911345B1 (en) | Method and apparatus for contents security | |
JP2008084081A (en) | Leakage prevention system for secret information, leakage prevention method for secret information, recording medium and program | |
US7694154B2 (en) | Method and apparatus for securely executing a background process | |
KR102227558B1 (en) | Data security method based on program protection | |
KR100959638B1 (en) | Method for preventing key input from hacking, computer-readable storage medium recorded with program for preventing key input from hacking | |
KR101349807B1 (en) | Security system for mobile storage and method thereof | |
JP2009169868A (en) | Storage area access device and method for accessing storage area | |
WO2022066775A1 (en) | Encrypted file control | |
JP2022021473A (en) | Information processing apparatus, method for controlling information processing apparatus, information processing system, and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20120803 Year of fee payment: 4 |
|
FPAY | Annual fee payment |
Payment date: 20130628 Year of fee payment: 5 |
|
FPAY | Annual fee payment |
Payment date: 20140801 Year of fee payment: 6 |
|
FPAY | Annual fee payment |
Payment date: 20160803 Year of fee payment: 8 |
|
FPAY | Annual fee payment |
Payment date: 20190731 Year of fee payment: 11 |