KR100523843B1 - 디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치 - Google Patents

디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치 Download PDF

Info

Publication number
KR100523843B1
KR100523843B1 KR10-2003-0093141A KR20030093141A KR100523843B1 KR 100523843 B1 KR100523843 B1 KR 100523843B1 KR 20030093141 A KR20030093141 A KR 20030093141A KR 100523843 B1 KR100523843 B1 KR 100523843B1
Authority
KR
South Korea
Prior art keywords
access
data
unit
acl
information data
Prior art date
Application number
KR10-2003-0093141A
Other languages
English (en)
Other versions
KR20050062829A (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 한국전자통신연구원
Priority to KR10-2003-0093141A priority Critical patent/KR100523843B1/ko
Publication of KR20050062829A publication Critical patent/KR20050062829A/ko
Application granted granted Critical
Publication of KR100523843B1 publication Critical patent/KR100523843B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/603Digital right managament [DRM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 관한 것으로, 특히 디지털 저작권 관리(DRM) 기술에 의해 보호받는 암호화된 컨텐츠와 이를 사용하기 위해 필요한 라이센스가 사용자에게 전달된 상태에서 허가된 소프트웨어 모듈에서만 암호화된 정보데이터를 이용하여 컨텐츠를 복호화할 수 있도록 한 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 관한 것이다.
본 발명의 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치는, 어플리케이션 소프트웨어가 라이센스를 비롯한 기타 중요한 정보데이터에 접근하는 것을 통제하고 제어하기 위한 장치에 있어서, 상기 어플리케이션 소프트웨어에서 운영체제로 전송되는 파일 입출력 요청을 수신 받아 보호할 대상인 파일에 대한 접근만을 추출하기 위한 제어코드 처리모듈; 상기 입출력 요청한 프로세스의 인증 여부를 확인하기 위한 프로세스 인증모듈; 상기 인증받은 각 프로세스의 접근권한을 조회하고, 해당 입출력 요청이 프로세스가 보유한 권한의 범위내에 존재하는가를 판단하기 위한 접근권한 제어모듈; 암호화된 정보데이터를 복호화하고, 보호되어야 할 정보데이터를 암호화하기 위한 암호화 라이브러리모듈; 및 상기 라이센스를 비롯한 기타 중요 정보데이터를 분산하여 저장하기 위한 데이터 저장모듈을 포함하여 이루어진 것을 특징으로 한다.

Description

디지털 저작권 관리 클라이언트에서의 접근권한 제어를 위한 접근 제어 목록 기반의 제어 장치{Apparatus for ACL-based control mechanism for access control in DRM client software}
본 발명은 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 관한 것으로, 특히 디지털 저작권 관리(DRM) 기술에 의해 보호받는 암호화된 컨텐츠와 이를 사용하기 위해 필요한 라이센스가 사용자에게 전달된 상태에서 허가된 소프트웨어 모듈에서만 암호화된 정보데이터를 이용하여 컨텐츠를 복호화할 수 있도록 한 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 관한 것이다.
일반적으로, 인터넷 사용자가 기하급수적으로 늘어나고, 컨텐츠의 디지털화가 진행되어 감에 따라 디지털 컨텐츠의 상업적 이용이 크게 늘어나고 있다.
이렇게 디지털로 제작된 컨텐츠는 복제가 용이하고 복제에 따른 품질 저하가 없기 때문에, 지정된 사용자가 정해진 권한의 범위 안에서만 이용할 수 있도록 특별한 제한을 가하게 된다.
즉, 컨텐츠를 정해진 권한의 범위 내에서만 사용하도록 하기 위한 기존의 제어 장치는 일반적으로 다음과 같이 크게 두 가지로 구분된다.
첫 번째는 보호할 대상인 컨텐츠를 사용자의 하드웨어의 고유 정보를 이용하여 암호화하는 방법으로, 컨텐츠가 복제되어 다른 사용자에게 전달되었을 때 하드웨어 고유 정보가 달라져 컨텐츠를 복호화하지 못하도록 하는 방법이다.
이러한 방법은 사용자의 하드웨어 고유 정보를 이용한다는 측면에서 아주 강력한 방법이 될 수 있으나, 하드웨어 고장이나 교체로 인한 환경 변화에 대응하지 못하고, 매번 컨텐츠가 사용자에게 전송될 때마다 사용자의 하드웨어 정보를 검색하여 암호화를 수행해야 한다는 측면이 큰 단점으로 지적된다. 또한, 사용자는 컨텐츠를 복호화하여 이용하는 것 이외의 사용 권한을 설정 받지 못하며 일률적인 사용 권한 부여만이 가능하게 된다.
두 번째는 컨텐츠를 어떤 특정한 키 값으로 암호화하고, 이 키 값을 사용자의 고유 정보를 이용하여 암호화하는 방법이다. 이 경우 사용자의 고유 정보나 환경이 변하더라도 컨텐츠를 다시 암호화할 필요 없이 키 값만 암호화하여 재발급하면 된다는 장점이 있다. 또한, 키 값을 암호화할 때 사용자가 해당 컨텐츠에 대해 가지는 사용 권한을 추가하여 함께 암호화할 수 있으며, 복호화를 위한 키 값과 사용 권한 등의 정보를 결합하여 라이센스의 형태로 구성하여 다양한 비즈니스 모델에 적용이 가능하기 때문에, 현재 가장 선호되는 방법이다.
그러나, 종래의 제어 장치의 경우, 상기 전술한 첫 번째 방법에서는 컨텐츠의 복호화를 수행하는 소프트웨어에서 하드웨어 장치의 고유 정보를 추출하여 복호화 및 재생을 담당하게 되므로 안전한 복호화와 재생을 위해 제조업체에서 제작한 전용 소프트웨어를 이용하게 된다. 또한, 소프트웨어를 일부 수정, 변조하여 복호화된 컨텐츠가 유출되는 것을 막기 위해 소프트웨어 모듈의 파일 크기, 날짜, 해쉬값 등을 이용하여 인증과정을 거치는 경우도 있다.
두 번째 방법에서는 복호화를 위한 키 값과 사용 권한 등의 정보가 라이센스의 형태로 전송되어 오기 때문에, 이를 저장해 두었다가 컨텐츠의 이용시에 참조하게 되는데, 이 경우 라이센스가 외부의 공격으로부터 안전하게 보관되고 관리될 수 있도록 하기 위한 별도의 보호 장치를 필요로 한다. 일반적으로 라이센스를 암호화하여 저장하고, 라이센스의 내용을 참조할 때 복호화하여 이용하는 형태를 취한다.
즉, 일반적으로 암호화되어 저장된 라이센스는 악의적 소프트웨어에 의해서 접근되더라도 그 내용을 알아보거나 위조, 변조가 불가능하다는 전제를 달고 있으나, 실제로는 하드웨어 정보를 추출하는 방법을 알아내어 암호화에 사용된 키 값을 그대로 재생성한다거나, 라이센스를 다른 장소에 복사하여 두었다가 재사용하는 식의 공격에 대해서는 상당한 취약점을 가지게 되는 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위하여 안출된 것으로서, 본 발명의 목적은 라이센스에 대한 접근을 통제하여 허락받지 않은 프로세스가 암호화된 라이센스에 접근하는 것을 통제하고, 상기 암호화된 라이센스를 일반 파일이 아닌 데이터 분산을 통한 가상 파일의 형태로 저장하여 인증과정을 수행하는 디바이스 드라이버를 통하지 않고는 접근할 수 없도록 한 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치를 제공하는데 있다.
전술한 목적을 달성하기 위한 본 발명의 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치는, 어플리케이션 소프트웨어가 라이센스를 비롯한 기타 중요한 정보데이터에 접근하는 것을 통제하고 제어하기 위한 장치에 있어서, 상기 어플리케이션 소프트웨어에서 운영체제로 전송되는 파일 입출력 요청을 수신 받아 보호할 대상인 파일에 대한 접근만을 추출하기 위한 제어코드 처리모듈; 상기 입출력 요청한 프로세스의 인증 여부를 확인하기 위한 프로세스 인증모듈; 상기 인증받은 각 프로세스의 접근권한을 조회하고, 해당 입출력 요청이 프로세스가 보유한 권한의 범위내에 존재하는가를 판단하기 위한 접근권한 제어모듈; 암호화된 정보데이터를 복호화하고, 보호되어야 할 정보데이터를 암호화하기 위한 암호화 라이브러리모듈; 및 상기 라이센스를 비롯한 기타 중요 정보데이터를 분산하여 저장하기 위한 데이터 저장모듈을 포함하여 이루어진 것을 특징으로 한다.
전술한 구성에서, 상기 중요한 정보데이터는 복호화 키, 접근 제어 목록 및 인증정보를 포함하여 이루어짐이 바람직하다.
바람직하게는, 상기 제어코드 처리모듈은, 상기 어플리케이션 소프트웨어에서 운영체제로 전송되는 파일 입출력 요청을 수신하기 위한 제어코드 수신부; 상기 수신 받은 입출력 요청 중에서 상기 데이터 저장모듈에 저장된 정보데이터에 대한 접근 제어가 필요한 입출력 요청과 제어가 필요하지 않는 입출력 요청으로 분류하기 위한 제어코드 분류부; 및 상기 제어가 필요한 입출력 요청에 대해 인증과정, 권한 확인 및 암호화/복호화를 수행하여 입출력 서비스를 제공해주기 위한 제어코드 서비스 루틴부를 포함하여 이루어진다.
바람직하게는, 상기 프로세스 인증모듈은, DRM 클라이언트에 의해서만 등록/삭제/수정이 가능한 접근 허용 목록을 기반으로 상기 입출력 요청한 소프트웨어의 프로세스 ID 값의 등록 여부를 확인하기 위한 프로세스 검사부; 및 상기 데이터 저장모듈에 저장된 DRM 클라이언트로부터 안전하다고 인정된 실행 파일의 해쉬코드와 현재 입출력 요청된 실행 파일의 해쉬코드를 비교하여 악의적 사용자에 의해 임의로 변경, 수정 및 위조 여부를 검사하기 위한 해쉬코드 검사부를 포함하여 이루어진다.
바람직하게는, 상기 접근권한 제어모듈은, DRM 클라이언트에 의해서만 등록/삭제/수정이 가능하도록 ACL을 관리하고, 상기 요청된 ACL을 상기 데이터 저장모듈에서 읽어오기 위한 ACL 관리부; 및 상기 ACL 관리부로부터 전달받은 ACL 정보를 해석하여 정보를 요청한 프로세스의 접근권한을 분석하고, 상기 분석된 권한목록을 상기 제어코드 처리모듈로 전달하기 위한 권한 해석부를 포함하여 이루어진다.
이하 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 본 실시예는 본 발명의 권리범위를 한정하는 것은 아니고, 단지 예시로 제시된 것이다.
먼저, 본 발명의 실시예를 설명하기에 앞서 본 발명의 제어 장치에 대한 이해를 돕고자 다음과 같이 용어들을 정의한다.
컨텐츠(Contents)는 MP3, 동영상 및 워드문서 등과 같이 사용자가 실제로 이용하고자 하는 디지털화된 자료를 의미한다.
라이센스(License)는 상기 컨텐츠를 사용할 수 있는 사용권한과 복호화 키, 기타 메타 정보를 포함한 인가정보를 의미한다.
시큐어 데이터베이스(Secure Database)는 상기 라이센스나 모듈 인증을 위한 해쉬(Hash)값, 인증서(Certificate)와 같이 유출되지 않아야 할 중요한 정보데이터를 저장하기 위한 안전한 데이터 저장모듈을 의미한다.
여기서, 상기 중요한 정보데이터는 복호화 키, 접근 제어 목록(Access Control List, ACL) 및 인증정보 등을 포함하여 이루어진다.
DRM 클라이언트(DRM client)는 사용자의 PC에 설치되어 동작하는 소프트웨어로 암호화된 컨텐츠를 라이센스를 이용하여 복호화 하고, 사용권한에 명시된 범위 내에서 사용자가 이용할 수 있도록 제어하는 소프트웨어(Software)를 말한다.
도 1은 본 발명의 일 실시예에 따른 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치를 전체적으로 나타낸 블록 구성도이고, 도 2는 도 1의 제어코드 처리모듈을 구체적으로 나타낸 블록 구성도이고, 도 3은 도 1의 프로세서 인증모듈을 구체적으로 나타낸 블록 구성도이고, 도 4는 도 1의 접근권한 제어모듈을 구체적으로 나타낸 블록 구성도이고, 도 5는 도 1의 암호화 라이브러리 모듈을 구체적으로 나타낸 블록 구성도이고, 도 6은 도 1의 데이터 저장모듈을 구체적으로 나타낸 블록 구성도이다.
도 1 내지 도 6에 도시한 바와 같이, 본 발명의 일 실시예에 따른 디지털 저작권 관리(Digital Rights Management, DRM) 클라이언트에서의 접근권한 제어를 위한 접근 제어 목록(ACL) 기반의 제어장치는, 어플리케이션 소프트웨어(Application Software)에서 운영체제로 전송되는 파일 입출력 요청을 수신 받아 보호할 대상인 파일에 대한 접근만을 추출하기 위한 제어코드 처리모듈(100)과; 상기 입출력 요청한 프로세스의 인증 여부를 확인하기 위한 프로세스 인증모듈(200)과; 상기 인증받은 각 프로세스의 접근권한을 조회하고, 해당 입출력 요청이 프로세스가 보유한 권한의 범위내에 존재하는가를 판단하기 위한 접근권한 제어모듈(300); 암호화된 정보데이터를 복호화하고, 보호되어야 할 정보데이터를 암호화하기 위한 암호화 라이브러리모듈(400)과; 상기 라이센스를 비롯한 기타 중요한 정보데이터를 분산하여 저장하기 위한 데이터 저장모듈(500)을 포함하여 이루어진다.
전술한 구성에서, 제어코드 처리모듈(100)에서는 프로세스 인증모듈(200), 접근권한 제어모듈(300) 및 암호화 라이브러리모듈(400)을 이용하여 데이터 저장모듈(500)에 접근하는 바, 제어코드 수신부(110), 제어코드 분류부(120) 및 제어코드 서비스 루틴부(130)로 구성되어 있다.
여기서, 제어코드 수신부(110)는 상기 어플리케이션 소프트웨어에서 운영체제로 전송되는 파일 입출력 요청을 수신하는 바, 상기 운영체제의 입출력 요구 패킷(I/O Request Packet, IRP)을 가로채는 I/O 필터의 형태로 동작하며, 상기 입출력 요구 패킷(IRP) 내에 명시된 제어코드를 기반으로 어떠한 입출력 요구인지 구분하고 판별한다.
제어코드 분류부(120)는 제어코드 수신부(110)로부터 수신 받은 입출력 요청 중에서 데이터 저장모듈(500)에 저장된 정보데이터에 대한 접근 제어가 필요한 입출력 요청과 제어가 필요하지 않는 입출력 요청으로 분류하는 역할을 수행한다.
즉, 제어코드 수신부(110)로부터 수신받은 입출력 요구 패킷(IRP)을 분석하여, 데이터 저장모듈(500) 내에 기록되어 있는 라이센스나 암호화/복호화 키 값, 권한 정보 등과 같이 접근 제어가 필요한 정보데이터에 대한 입출력 요구인지, 접근 제어가 필요치 않은 일반 파일에 대한 입출력 요구인지를 구분해 낸다.
이때, 상기 접근 제어가 필요치 않은 일반 파일에 대한 입출력 요구는 상기 운영체제로 그대로 전달되어 서비스 받도록 하고, 상기 접근 제어가 필요한 입출력 요청에 대해서는 제어코드 서비스 루틴부(130)를 통해 서비스 받도록 해 준다.
제어코드 서비스 루틴부(130)는 상기 제어가 필요한 입출력 요청에 대해 인증과정, 권한 확인 및 암호화/복호화를 수행하여 입출력 서비스를 제공해준다.
즉, 제어코드 분류부(120)로부터 전달된 입출력 요청에 대해 입출력 요구를 한 프로세스의 ID 값과 실행 파일의 해쉬값이 데이터 저장모듈(500)에 기록된 접근 허용 목록에 있는지를 프로세스 인증모듈(200)을 통해 확인하고, 상기 입출력 요청된 정보데이터에 대해 해당 프로세스가 접근 권한을 가지고 있는지를 접근권한 제어모듈(300)을 통해 확인하며, 모든 조건을 만족시킨 입출력 요청에 대해서만 데이터 저장모듈(500)의 정보를 읽어 암호화 라이브러리모듈(400)을 통해 복호화한 후에 상기 어플리케이션 소프트웨어에 요청된 정보데이터를 전달한다.
그리고, 프로세스 인증모듈(200)에서는 상기 입출력 요청을 한 어플리케이션 소프트웨어의 프로세스 ID 값과 실행 모듈의 해쉬값을 계산하고 데이터 저장모듈(500)에 기록된 값과 비교하여 수정 및 변조 여부를 판단하는 역할을 수행하는 바, 프로세스 인증은 데이터 저장모듈(500)에 기록된 정보를 바탕으로 프로세스 ID를 인증하고, 실행 파일의 해쉬값을 계산하여 임의의 수정, 위조 및 변조가 발생하지 않았는지를 확인하는 과정으로 이루어진다.
이러한 프로세스 인증모듈(200)은 DRM 클라이언트에 의해서만 등록/삭제/수정이 가능한 접근 허용 목록을 기반으로 상기 입출력 요청한 소프트웨어의 프로세스 ID 값의 등록 여부를 확인하기 위한 프로세스 검사부(210)와; 데이터 저장모듈(500)에 저장된 DRM 클라이언트로부터 안전하다고 인정된 실행 파일의 해쉬코드와 현재 입출력 요청된 실행 파일의 해쉬코드를 비교하여 악의적 사용자에 의해 임의로 변경, 수정 및 위조 여부를 검사하기 위한 해쉬코드 검사부(220)로 구성되어 있다.
여기서, 프로세스 검사부(210)는 상기 입출력 요청을 한 소프트웨어의 프로세스 ID 값이 데이터 저장모듈(500)에 기록되어 있는 접근 허용 목록에 포함되어 있는지를 검사한다. 이때, 데이터 저장모듈(500)의 접근 허용 목록에는 기본적으로 DRM 클라이언트 소프트웨어만 등록되어 있으며, DRM 클라이언트가 뷰어 소프트웨어나 플러그인을 실행해 주면서 데이터 저장모듈(500)의 접근 허용 목록에 해당 프로세스를 추가/삭제해 주는 방식으로 접근 허용 목록이 관리된다.
해쉬코드 검사부(220)는 프로세스 검사부(210)를 통해 확인된 프로세스에 대해 실행 파일의 해쉬코드를 계산하고, 데이터 저장모듈(500)의 접근 허용 목록에 등록된 해쉬코드와 비교하여 악의적인 사용자에 의해 임의로 변경, 수정되지 않았는지 확인한다. 또한, DRM 클라이언트 실행 파일의 해쉬코드도 미리 등록되어 있어 위조, 변조 여부도 검사한다.
그리고, 접근권한 제어모듈(300)은 데이터 저장모듈(500)에 기록된 접근 제어 목록(ACL) 정보를 이용하여 인증받은 프로세스가 요청한 정보에 대해 가지는 이용 권한을 결정하는 바, 프로세스 인증모듈(200)에서 인증된 모든 프로세스는 데이터 저장모듈(500)의 접근 허용 목록에 포함되어 있고, 또한 데이터 저장모듈(500)의 접근 제어 목록(ACL)에서 해당 프로세스가 접근 가능한 정보의 종류와 권한이 명시되어 있다.
이러한 접근권한 제어모듈(300)은 DRM 클라이언트에 의해서만 등록/삭제/수정이 가능하도록 접근 제어 목록(ACL)을 관리하고, 상기 요청된 접근 제어 목록(ACL)을 데이터 저장모듈(500)에서 읽어오기 위한 ACL 관리부(310)와; ACL 관리부(310)로부터 전달받은 접근 제어 목록(ACL) 정보를 해석하여 정보를 요청한 프로세스의 접근권한을 분석하고, 상기 분석된 권한목록을 제어코드 처리모듈(100)의 제어코드 서비스 루틴부(130)로 전달하기 위한 권한 해석부(320)로 구성되어 있다.
여기서, ACL 관리기(310)는 제어코드 서비스 루틴부(130)가 지정한 프로세스의 접근 제어 목록(ACL) 정보를 데이터 저장모듈(500)에서 읽어와 권한 해석부(320)에 전달하는 역할을 수행한다.
이때, 상기 접근 제어 목록(ACL) 정보에는 초기에 DRM 클라이언트에 대한 권한만이 명시되어 있으며, DRM 클라이언트만이 접근 제어 목록(ACL) 정보를 추가/변경/삭제 할 수 있다. DRM 클라이언트가 뷰어 소프트웨어나 플러그인을 로딩하게 되면, 라이센스의 범위내에서 해당 프로세스의 정보 접근 권한을 접근 제어 목록(ACL)의 형태로 세팅해 주게 되고, 그 이후 뷰어나 플러그인 프로세스는 세팅된 권한의 범위내에서 데이터 저장모듈(500)의 정보데이터에 접근하게 된다.
권한 해석부(320)는 ACL 관리부(310)가 전달해 준 접근 제어 목록(ACL) 정보를 해석하여 해당 프로세스가 요청한 정보에 대해 가지는 접근 권한을 분석하고, 권한의 목록을 제어코드 서비스 루틴부(130)에게 알려준다.
그리고, 암호화 라이브러리모듈(400)은 정보데이터의 암호화, 복호화 및 해쉬값 계산에 필요한 함수를 제공하는 라이브러리 계층인 바, 데이터 저장모듈(500)의 암호화된 정보데이터를 복호화 하거나 새로운 정보데이터를 데이터 저장모듈(500)에 저장하기 전에 암호화하는데 필요한 키 정보를 관리하기 위한 키 관리부(410)와; 실제 암호화/복호화를 수행하기 위한 라이브러리 루틴인 블록 암호화 라이브러리부(420) 및 공개키 라이브러리부(430)와; 프로세스 인증모듈(200)의 해쉬코드 검사부(220)가 실행 파일의 해쉬 값을 계산할 때 이용하는 해쉬 함수 라이브러리부(440)로 구성되어 있다.
여기서, 키 관리부(410)는 보안을 위해 모든 정보데이터의 암호화/복호화에 단일한 키를 사용하지 않고 서로 다른 키를 이용할 수 있으며, 상기 암호화/복호화는 여러 단계를 거칠 수 있다.
블록 암호화 라이브러리부(420)는 상기 정보데이터의 일부분만을 암호화/복호화 할 수 있기 때문에, 주로 용량이 큰 정보데이터에 이용되고, 공개키 라이브러리부(430)는 사용자의 공개키로 암호화되어 전송된 라이센스를 복호화 하는데 이용된다.
또한, 블록 암호화 라이브러리부(420)와 해쉬 함수 라이브러리부(440)에서 복호화된 정보데이터는 제어코드 서비스 루틴부(130)로 넘겨져 입출력 요청을 한 프로세스에게 전달된다.
그리고, 데이터 저장모듈(500)은 분산 관리되는 암호화된 정보데이터를 가상의 파일 형태로 다른 모듈에 제공하는 바, 데이터 접근 API부(510), 데이터 관리부(520), 데이터 분산부(530) 및 데이터 파일부(540)로 구성되어 있다.
여기서, 데이터 접근 API부(510)는 데이터 저장모듈(500) 즉, 데이터 파일부(540)에 저장된 정보데이터에 접근하기 위한 정형화된 인터페이스를 제공하며, 외부 프로세스는 데이터 접근 API부(510)를 통하지 않고는 데이터 파일부(540)에 저장된 정보데이터에 접근할 수 없도록 한다.
즉, 실제의 데이터 파일은 데이터 분산부(530)에 의해 시스템 곳곳에 분산되어 있고, 외부 프로세스에게는 가상의 파일 형태로 보여지기 때문에 실제로 데이터 접근 API부(510)를 통하지 않고는 실제 파일에 접근하지 못한다.
데이터 관리부(520)는 데이터 접근 API부(510)를 통해 전달된 파일 입출력 요청을 수행하기 위해 데이터 분산부(530)를 통해 데이터 파일부(540)에 접근하고, 새로운 정보데이터를 기록할 때 암호화를 수행하며, 데이터 파일부(540)에 저장된 정보데이터를 실제의 파일명이나 저장 위치와 관계없이 외부 프로세스에게 가상의 파일로 보여주는 가상화 작업을 수행한다.
즉, 데이터 관리부(520)는 데이터 접근 API부(510)를 통해 전달된 파일 입출력 요청을 실제로 수행하는 부분으로, 데이터 분산부(530)를 통해 요청된 정보데이터가 실제로 저장된 데이터 파일부(540)에 접근한다. 데이터 접근 API부(510)를 통해 전달된 정보데이터의 암호화 유무와 관계없이 데이터 관리부(520) 수준에서의 암호화가 한 번 더 일어나며, 이렇게 암호화된 정보데이터가 데이터 파일부(540)로 저장된다.
또한, 데이터 파일부(540)에 저장된 정보데이터는 실제의 파일명이나 저장 위치와 관계없이 외부 프로세스에게 가상의 파일로 보여지게 되는데, 이러한 가상화 작업도 데이터 관리부(520)에서 수행한다.
데이터 분산부(530)는 악의적인 사용자가 파일 시스템에 직접 접근해서 중요한 정보데이터를 추출하지 못하도록 하기 위해 저장될 정보데이터를 시스템 곳곳의 숨겨진 공간에 분산하여 나누어 저장한다.
즉, 사용자와 어플리케이션 소프트웨어는 데이터 관리부(520)에 의해 생성된 가상의 파일만 보기 때문에, 상기 분산 저장된 데이터 파일부(540)에 직접 접근하지 못한다. 이때, 시스템의 숨겨진 공간은 파일 시스템에서 사용하지 않는 디스크의 물리적 영역, 사용하지 않는 섹터로 마킹된 특정 디스크 영역 등을 비롯하여 사용자가 쉽게 접근하지 못하는 시스템 영역을 이용한다.
데이터 파일부(540)는 데이터 분산부(530)에 의해 생성된 저장단위로 사용자에게 보이지 않도록 숨겨진 상태로 분산되어 실제의 암호화된 정보데이터를 저장하는 바, 하나의 정보데이터는 여러 개의 데이터 파일부로 나뉘어 저장된다.
즉, 데이터 파일부(540)는 사용자에게 보이지 않도록 숨겨지며, 상기 숨겨진 다수의 데이터 파일부에 의해 저장된 정보데이터가 복원된다.
상기와 같이 구성된 데이터 저장모듈(500)에서 실제로 정보데이터를 담고 있는 데이터 파일부(540)는 데이터 분산부(530)에 의해 파일 시스템을 비롯한 시스템 곳곳에 숨겨진 채로 분산되어 저장되고, 데이터 접근 API부(510)를 통해 전달된 파일 입출력 요청은 데이터 관리부(520)에 의해 처리하게 된다.
이하에는 전술한 구성을 가지는 본 발명의 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치의 동작에 대해서 상세하게 설명한다.
도 7은 본 발명의 일 실시예에 적용된 어플리케이션 소프트웨어가 암호화된 정보데이터를 이용하기 위해 파일 입출력 요청을 한 시점부터 암호화된 정보데이터가 복호화되어 어플리케이션 소프트웨어에 전달되기까지의 과정을 설명하기 위한 흐름도이다.
도 7에 도시한 바와 같이, 상기 어플리케이션 소프트웨어가 데이터 관리부(520)에 의해 보여지는 가상의 데이터 파일부(540)에 대해 입출력 요청을 운영체제에 보내는 시점부터 상기 요청된 입출력이 처리되어 정보데이터가 전달되는 시점까지의 과정은, 먼저 상기 어플리케이션 소프트웨어에 의해 파일 입출력 요청이 발생하면(S100), 단계S101로 진행하여 입출력 요구 패킷(IRP)의 형태로 운영체제에게 전달되고, 이는 필터 드라이버의 형태로 동작하는 제어코드 수신부(110)에 의해 수신된다.
상기 입출력 요청이 수신되면, 단계S102로 진행하여 해당 입출력 요청이 본 발명의 제어 장치에서 보호하고 있는 데이터 파일에 대한 것인지 즉, 처리 대상인지를 판단하여 처리 대상이 아닐 경우에는 단계S103으로 진행하여 운영체제에 해당 입출력 요청을 그대로 전달하여 처리될 수 있도록 한다.
한편, 상기 단계S102에서의 판단 결과, 처리 대상일 경우에는 단계S104로 진행하여 요청을 보낸 프로세스의 ID를 데이터 파일부(540)에 담긴 접근 허용 목록에 등록 즉, 인증되어 있는지를 판단한다.
상기 단계S104에서의 판단 결과, 인증되지 않은 프로세스의 입출력 요청일 경우에는 단계S105로 진행하여 거부하고, 상기 프로세스 ID가 인증될 경우에는 단계S106으로 진행하여 해당 프로세스의 실행파일의 해쉬 값을 계산하여 이를 접근 허용 목록에 등록된 해쉬 값과 비교한 후, 실행 파일이 바뀌거나 수정되지 않았는지 판단 즉, 해쉬코드가 인정되어 있는지를 판단하여 해쉬 값이 다를 경우 즉, 상기 해쉬코드가 인정되지 않을 경우에는 상기 단계S105로 리턴되어 입출력 요청을 거부한다.
한편, 상기 단계S106에서의 판단 결과, 상기 프로세스 ID와 해쉬 코드가 인증될 경우에는 단계S107로 진행하여 데이터 저장모듈(500)의 접근 제어 목록(ACL)에서 해당 프로세스의 정보데이터를 읽어온 다음, 단계S108로 진행하여 상기 정보데이터의 접근권한을 해석한다.
다음, 단계S109에서는 상기 프로세스가 보낸 입출력 요구가 권한의 범위내에 있는지 판단하여 접근 제어 목록(ACL)에 명시된 권한의 범위를 벗어나는 입출력 요구에 대해서는 단계S105로 리턴되어 입출력 요청을 거부한다.
한편, 상기 단계S109에서의 판단 결과, 상기 프로세스가 보낸 입출력 요구의 권한이 확인되어 유효한 입출력 요구로 판명되면, 단계S110으로 진행하여 암호화되어 저장된 정보데이터를 복호화하기 위한 키를 읽어 오고, 단계S111로 진행하여 상기 키를 이용하여 복호화를 수행한 후, 단계S112로 진행하여 상기 복호화된 데이터를 요청한 프로세스에 전달하여 입출력 요구를 수행한다.
전술한 본 발명에 따른 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러 가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.
이상에서 설명한 바와 같은 본 발명의 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 따르면, 데이터 저장모듈이 암호화된 정보데이터를 분산 저장하고, 가상의 파일로 보여줌으로써, 라이센스 정보의 복제 후 재사용 등의 공격으로부터 매우 안전하며, 파일에 대한 모든 접근은 프로세스 인증과 접근권한 제어를 통해 이루어짐에 따라 허가받지 않은 프로세스의 정보데이터 이용을 차단할 수 있기 때문에, 악의적인 사용자의 공격으로부터 좀 더 강인하고 안전하게 정보를 보호할 수 있는 이점이 있다.
또한, 본 발명에 따른 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치에 의해 라이센스와 같은 중요한 정보데이터가 보호될 경우에는, 미리 정의된 프로세스에 의해서만 정보데이터의 입출력이 가능한 것이 아니라 접근 제어 목록(ACL)에 등록된 권한에 기반하여 프로세스의 입출력 권한이 결정되므로 유연한 동작 환경을 구축할 수 있는 이점이 있다.
도 1은 본 발명의 일 실시예에 따른 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치를 전체적으로 나타낸 블록 구성도,
도 2는 도 1의 제어코드 처리모듈을 구체적으로 나타낸 블록 구성도,
도 3은 도 1의 프로세서 인증모듈을 구체적으로 나타낸 블록 구성도,
도 4는 도 1의 접근권한 제어모듈을 구체적으로 나타낸 블록 구성도,
도 5는 도 1의 암호화 라이브러리 모듈을 구체적으로 나타낸 블록 구성도,
도 6은 도 1의 데이터 저장모듈을 구체적으로 나타낸 블록 구성도,
도 7은 본 발명의 일 실시예에 적용된 어플리케이션 소프트웨어가 암호화된 정보데이터를 이용하기 위해 파일 입출력 요청을 한 시점부터 암호화된 정보데이터가 복호화되어 어플리케이션 소프트웨어에 전달되기까지의 과정을 설명하기 위한 흐름도이다.
<도면의 주요 부분에 대한 부호의 설명>
100 : 제어코드 처리모듈, 110 : 제어코드 수신부,
120 : 제어코드 분류부, 130 : 제어코드 서비스 루틴부,
200 : 프로세스 인증모듈, 210 : 프로세스 검사부,
220 : 해쉬코드 검사부, 300 : 접근권한 제어모듈,
310 : ACL 관리부, 320 : 권한 해석부,
400 : 암호화 라이브러리 모듈, 410 : 키 관리부,
420 : 블록 암호화 라이브러리부, 430 : 공개키 라이브러리부,
440 : 해쉬 함수 라이브러리부, 500 : 데이터 저장모듈,
510 : 데이터 접근 API부, 520 : 데이터 관리부,
530 : 데이터 분산부, 540 : 데이터 파일부,
600 : 어플리케이션 소프트웨어

Claims (7)

  1. 어플리케이션 소프트웨어가 라이센스를 비롯한 기타 중요한 정보데이터에 접근하는 것을 통제하고 제어하기 위한 장치에 있어서,
    상기 어플리케이션 소프트웨어에서 운영체제로 전송되는 파일 입출력 요청을 수신 받아 보호할 대상인 파일에 대한 접근만을 추출하기 위한 제어코드 처리모듈;
    상기 입출력 요청한 프로세스의 인증 여부를 확인하기 위한 프로세스 인증모듈;
    상기 인증받은 각 프로세스의 접근권한을 조회하고, 해당 입출력 요청이 프로세스가 보유한 권한의 범위내에 존재하는가를 판단하기 위한 접근권한 제어모듈;
    암호화된 정보데이터를 복호화하고, 보호되어야 할 정보데이터를 암호화하기 위한 암호화 라이브러리모듈; 및
    상기 라이센스를 비롯한 기타 중요한 정보데이터를 분산하여 저장하기 위한 데이터 저장모듈을 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치.
  2. 제 1항에 있어서, 상기 중요한 정보데이터는 복호화 키, 접근 제어 목록 및 인증정보를 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치.
  3. 제 1항 또는 제 2항에 있어서, 상기 제어코드 처리모듈은,
    상기 어플리케이션 소프트웨어에서 운영체제로 전송되는 파일 입출력 요청을 수신하기 위한 제어코드 수신부;
    상기 수신 받은 입출력 요청 중에서 상기 데이터 저장모듈에 저장된 정보데이터에 대한 접근 제어가 필요한 입출력 요청과 제어가 필요하지 않는 입출력 요청으로 분류하기 위한 제어코드 분류부; 및
    상기 제어가 필요한 입출력 요청에 대해 인증과정, 권한 확인 및 암호화/복호화를 수행하여 입출력 서비스를 제공해주기 위한 제어코드 서비스 루틴부를 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치.
  4. 제 1항 또는 제 2항에 있어서, 상기 프로세스 인증모듈은,
    DRM 클라이언트에 의해서만 등록/삭제/수정이 가능한 접근 허용 목록을 기반으로 상기 입출력 요청한 소프트웨어의 프로세스 ID 값의 등록 여부를 확인하기 위한 프로세스 검사부; 및
    상기 데이터 저장모듈에 저장된 DRM 클라이언트로부터 안전하다고 인정된 실행 파일의 해쉬코드와 현재 입출력 요청된 실행 파일의 해쉬코드를 비교하여 악의적 사용자에 의해 임의로 변경, 수정 및 위조 여부를 검사하기 위한 해쉬코드 검사부를 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서의 접근권한 제어를 위한 ACL 기반의 제어 장치.
  5. 제 1항 또는 제 2항에 있어서, 상기 접근권한 제어모듈은,
    DRM 클라이언트에 의해서만 등록/삭제/수정이 가능하도록 ACL을 관리하고, 상기 요청된 ACL을 상기 데이터 저장모듈에서 읽어오기 위한 ACL 관리부; 및
    상기 ACL 관리부로부터 전달받은 ACL 정보를 해석하여 정보를 요청한 프로세스의 접근권한을 분석하고, 상기 분석된 권한목록을 상기 제어코드 처리모듈로 전달하기 위한 권한 해석부를 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서 접근권한 제어를 위한 ACL 기반의 제어 장치.
  6. 제 1항 또는 제 2항에 있어서, 상기 암호화 라이브러리모듈은,
    상기 정보데이터의 일부분만을 암호화/복호화하기 위한 블록 암호화 라이브러리부;
    사용자의 공개키로 암호화되어 전송된 라이센스를 복호화하기 위한 공개키 라이브러리부;
    상기 프로세스 인증모듈에서 입출력 요청된 실행 파일의 해쉬 값을 계산하기 위한 해쉬 함수 라이브러리부; 및
    상기 데이터 저장모듈의 암호화된 정보데이터를 복호화하거나, 새로운 정보데이터를 상기 데이터 저장모듈에 저장하기 전에 암호화하는데 필요한 키 정보를 관리하기 위한 키 관리부를 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서 접근권한 제어를 위한 ACL 기반의 제어 장치.
  7. 제 1항 또는 제 2항에 있어서, 상기 데이터 저장모듈은,
    악의적인 사용자가 파일 시스템에 직접 접근하여 중요한 정보데이터를 추출함을 방지하기 위해 저장될 정보데이터를 시스템 곳곳의 숨겨진 공간에 분산/분리하여 저장/관리하기 위한 데이터 분산부;
    상기 데이터 분산부에 의해 생성된 저장단위로 사용자에게 보이지 않도록 숨겨진 상태로 분산되어 실제의 암호화된 정보데이터를 저장하기 위한 데이터 파일부;
    상기 데이터 파일부에 저장된 정보데이터에 접근하기 위한 정형화된 인터페이스를 제공하는 데이터 접근 API부; 및
    상기 데이터 접근 API부를 통해 전달된 파일 입출력 요청을 수행하기 위해 상기 데이터 분산부를 통해 상기 데이터 파일부에 접근하고, 새로운 정보데이터를 기록할 때 암호화를 수행하며, 상기 데이터 파일부에 저장된 정보데이터를 실제의 파일명이나 저장 위치와 관계없이 외부 프로세스에게 가상의 파일로 보여주는 가상화 작업을 수행하기 위한 데이터 관리부를 포함하여 이루어진 것을 특징으로 하는 DRM 클라이언트에서 접근권한 제어를 위한 ACL 기반의 제어 장치.
KR10-2003-0093141A 2003-12-18 2003-12-18 디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치 KR100523843B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR10-2003-0093141A KR100523843B1 (ko) 2003-12-18 2003-12-18 디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2003-0093141A KR100523843B1 (ko) 2003-12-18 2003-12-18 디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치

Publications (2)

Publication Number Publication Date
KR20050062829A KR20050062829A (ko) 2005-06-28
KR100523843B1 true KR100523843B1 (ko) 2005-10-26

Family

ID=37254749

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2003-0093141A KR100523843B1 (ko) 2003-12-18 2003-12-18 디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치

Country Status (1)

Country Link
KR (1) KR100523843B1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100800295B1 (ko) * 2005-04-11 2008-02-04 한국전자통신연구원 라이센스 데이터 구조를 구비한 컴퓨터 판독가능한 기록매체 및 라이센스 발급 방법
KR100827227B1 (ko) * 2005-06-24 2008-05-07 삼성전자주식회사 저성능 저장장치의 drm 권리 객체를 효율적으로관리하는 방법 및 장치
KR101366328B1 (ko) * 2007-02-06 2014-02-21 엘지전자 주식회사 데이터 방송 신호를 처리하는 방법 및 수신하는 장치
KR100923456B1 (ko) * 2007-02-23 2009-11-09 삼성전자주식회사 휴대용 단말기에서 디지털 저작권 관리 컨텐츠 관리 방법 및 장치
KR100898326B1 (ko) 2007-04-16 2009-05-20 삼성전자주식회사 사용 이력 기반의 drm 컨텐츠 관리 방법 및 이를이용하는 휴대 단말기

Also Published As

Publication number Publication date
KR20050062829A (ko) 2005-06-28

Similar Documents

Publication Publication Date Title
CN109923548B (zh) 通过监管进程访问加密数据实现数据保护的方法、系统及计算机程序产品
US8136166B2 (en) Installation of black box for trusted component for digital rights management (DRM) on computing device
JP4089171B2 (ja) 計算機システム
KR101009126B1 (ko) 대응하는 구성요소를 인증하기 위한 디지탈 인증서 및 디지탈 인증서 인증 방법
US8352735B2 (en) Method and system for encrypted file access
KR101522445B1 (ko) 기밀 파일을 보호하기 위한 클라이언트 컴퓨터, 및 그 서버 컴퓨터, 및 그 방법 및 컴퓨터 프로그램
CA2242596C (en) System for controlling access and distribution of digital property
CN101819612B (zh) 具有分区的通用内容控制
US6289450B1 (en) Information security architecture for encrypting documents for remote access while maintaining access control
KR101296195B1 (ko) 파일 시스템으로의 접근을 제어하기 위한 방법, 관련 시스템, 관련 시스템에 사용하기 위한 sim 카드 및 컴퓨터 프로그램 제품
EP1840786B1 (en) Computer architecture for an electronic device providing single-level secure access to multi-level secure file system
US20050060568A1 (en) Controlling access to data
US8127145B2 (en) Computer architecture for an electronic device providing a secure file system
US20030221115A1 (en) Data protection system
JP2003330365A (ja) コンテンツ配布/受信方法
EP2449503A2 (en) Method for remotely controlling and monitoring the data produced on desktop on desktop software
KR100750697B1 (ko) 사용자 액세스 기능을 갖는 공유스토리지가 구비된 디지털문서보안 시스템, 및 그 시스템을 이용한 문서 처리방법
KR100523843B1 (ko) 디지털 저작권 관리 클라이언트에서의 접근권한 제어를위한 접근 제어 목록 기반의 제어 장치
JP2007179357A (ja) コンピュータプログラムのインストール方法
CN116686316A (zh) 加密文件控制
CA3133947A1 (en) Cryptographic systems
US11841970B1 (en) Systems and methods for preventing information leakage
KR20010079162A (ko) 디지털 데이터의 안전한 전달 및 실행을 위한 보안 시스템
KR20100006645A (ko) 파일 권한 처리 방법 및 장치

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081001

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee