KR101535974B1 - 프로세스 독립실행과 프로세스 분기방식을 혼용한 디알엠 클라이언트 충돌방지 시스템 및 방법 - Google Patents
프로세스 독립실행과 프로세스 분기방식을 혼용한 디알엠 클라이언트 충돌방지 시스템 및 방법 Download PDFInfo
- Publication number
- KR101535974B1 KR101535974B1 KR1020100008284A KR20100008284A KR101535974B1 KR 101535974 B1 KR101535974 B1 KR 101535974B1 KR 1020100008284 A KR1020100008284 A KR 1020100008284A KR 20100008284 A KR20100008284 A KR 20100008284A KR 101535974 B1 KR101535974 B1 KR 101535974B1
- Authority
- KR
- South Korea
- Prior art keywords
- drm
- content
- branching
- independent
- management unit
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 221
- 230000002265 prevention Effects 0.000 title abstract description 6
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000000926 separation method Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012966 insertion method Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
상기한 목적을 달성하기 위한 본 발명의 시스템은, 하나의 단말기에서 복수의 상이한 DRM 클라이언트가 사용되는 경우에 프로세스 분리 실행과 프로세스 분기 방식의 병행을 통하여 DRM 클라이언트 상호 간의 충돌을 방지하는 방법에 관한 것으로서, 본 발명의 프로세스 분리 실행과 프로세스 분기 방식의 병행을 통한 DRM 클라이언트 충돌 방지 방법은, 상기 DRM 클라이언트 모듈내에 프로세스 분기부를 삽입하는 단계; 상기 PC의 프로세스를 DRM의 종류에 따라 독립적으로 실행시킬 수 있는 환경을 만드는 단계; 상기 독립 프로세스 환경이 이루어진 단말기에서 DRM 콘텐츠 파일에 대한 접근을 시도하는 이벤트 발생시 기 발명된 프로세스 독립실행 과정을 진행하는 단계; 상기 프로세스 독립실행 환경에서 타 DRM 콘텐츠 접근 시도가 이미 구동되고 있는 응용프로그램 내에서 이루어지는 경우 해당 문서의 경로가 프로세스 분기부로 전달되는 단계; 상기 프로세스 분기부가 상기 해당 콘텐츠의 분기 처리 정보를 조회하여 해당 콘텐츠의 종류를 판단하는 단계; 상기 판단에 따라 상기 프로세스 분기부가 콘텐츠의 종류에 따른 해당 응용프로그램을 지정된 운영체제 영역으로 실행시켜 해당 콘텐츠가 열리도록 하는 단계를 포함하는 것을 특징으로 한다.
Description
본 발명은 DRM 클라이언트 충돌 방지 시스템 및 방법에 관한 것으로, 보다 상세하게는 프로세스를 분리해서 실행시키고 분리된 프로세스에서 처리할 수 없는 타 DRM 기술의 콘텐츠를 처리하고자 할 경우 다른 프로세스로 해당 콘텐츠의 제어를 넘김으로써 DRM 클라이언트 상호 간의 충돌을 방지하는 시스템 및 방법에 관한 것이다.
디지털 콘텐츠의 저작권 보호 및 기업의 기밀정보 보호를 위해 산업계에는 다양한 DRM 업체들이 존재한다. 이들 대부분의 업체들은 각기 고유한 방식의 DRM 기술을 적용하여, 일반 사용자를 대상으로 한 콘텐츠 서비스에 DRM 기술을 적용하거나 기업내 문서 보안을 위해 DRM 기술을 제공하고 있다. 그러나 DRM 기술이 단순히 콘텐츠를 암호화하고 라이센스의 허가 정보에 따라 복호화 하는데 그치지 않고, 복호화된 이후의 콘텐츠 사용에 대한 보안성을 지속적으로 유지하기 위해서는 콘텐츠를 사용하는 응용 프로그램의 실시간 제어를 통해 콘텐츠의 유출을 방지할 필요가 있다. 현재 국내외 DRM 업체들이 사용하고 있는 DRM을 위한 응용프로그램 제어 방식은 다음과 같이 크게 4가지 방식으로 구분된다.
구현방식 | 내용 |
Application built-in 방식 | 응용 프로그램의 소스를 수정하여 DRM 기능을 추가한 후 재 컴파일 하는 방식 |
Application plug-in 방식 | 응용 프로그램에서 제공하는 plug-in API를 이용하여 DRM 기능을 추가하는 방식 예) Plug-in 방식, VBA 방식 |
Application rewriting 방식 | 응용 프로그램의 메모리 이미지를 실시간으로 재구성하여 DRM 기능을 삽입하는 방식 예) ITA Rewriting 방식, System DLL Rewriting 방식 |
Operating system add-on 방식 | OS의 커널의 일부를 영구적으로 수정하여, 파일시스템 또는 입출력 장치의 운영 흐름 도중에 DRM 기능을 삽입하는 방식 예) 필터드라이버 방식 |
상기에서 설명하고 있는 DRM 응용프로그램 제어 방식 중에서 충돌 발생 가능성이 가장 높은 것은 Application rewriting 방식으로서, 이는 응용프로그램의 일부 또는 시스템 DLL(Dynamic Link Library)의 일부를 프로그램 실행시 실시간으로 수정하기 때문에 복수 개의 DRM이 존재할 경우 동일한 시스템 위치를 서로 수정하게 됨에 따라 충돌 가능성이 높다.
Application rewritting 방식의 일종인 IAT(Import Address Table) Hooking 방식은 응용 프로그램이 구동을 위해 메모리에 로딩된 이후에 외부 시스템 DLL과의 함수 호출을 위해 사용하는 IAT 영역에서 파일 입출력과 UI에 관련된 함수들의 주소를 변경하여 DRM 기능을 수행하게 만드는 방식을 말한다. 이 방식은 기존 응용 프로그램의 실행 코드 이미지를 전혀 변경하지 않고 단지 PE(Portable Executable)의 헤더영역만을 수정하기 때문에 매우 효율적으로 구동될 수 있는 장점이 있는 반면에 시스템 DLL을 사용할 때 IAT 개념을 사용하지 않고 시스템 API의 주소를 직접 가져와서 호출하는 응용 프로그램의 파일 입출력 또는 UI를 제어할 수 없다는 단점을 가지고 있다. (도 5 참조)
Application rewirting 방식의 또 다른 유형인 System DLL Rewriting 방식은 응용 프로그램이 구동을 위해 메모리에 로딩된 이후에 시스템 DLL의 처음 실행 코드를 수정하여 DRM 기능이 수행될 수 있도록 하는 방식을 말한다. 이 방식은 IAT Hooking 방식으로는 hooking이 되지 않는 시스템 API의 주소를 직접 호출하는 응용 프로그램에 대해서 매우 효과적으로 작동할 수 있는 장점이 있는 반면에 시스템 DLL의 실행코드 영역을 직접 rewriting 하는 방식이기 때문에 IAT Hooking 방식 보다는 보다 정밀한 작업이 요구된다. (도 6 참조)
Application rewriting 구조를 가지고 있는 서로 다른 vendor가 제작한 DRM들이 한 기기에 복수 형태로 설치되는 경우 DRM 기술간의 중복된 계층구조가 형성됨에 따라 보안에 매우 심각한 상황을 초래할 수 있다. 이러한 이유에서 현 DRM 업체들은 자신이 DRM 제어를 위해 주도권을 가지고 있는 응용 프로그램에 대해서는 타사의 DRM 기술이 다시 제어권을 갖지 못하도록 기술적인 보호막을 설치해 놓고 있다. 이는 근본적으로 한 기기에 복수개의 DRM 기술이 적용될 수 없도록 만드는 결과를 가져오고 있다. 또한 MS 오피스 관련 응용프로그램들은 사용자가 동시에 복수개의 문서를 열람하더라도 프로세스가 1개만 생성되기 때문에, 특정 DRM vendor 포맷의 DRM 문서를 열람하기 위해 실행된 프로세스 내에서 다른 DRM vendor 포맷의 문서를 열람할 경우 정상적인 복호화가 이루어지지 않게 된다.
Application rewriting 구조를 가지고 있는 서로 다른 vendor가 제작한 DRM들이 한 기기에 복수 형태로 설치되는 경우 DRM 기술간의 중복된 계층구조가 형성됨에 따라 보안에 매우 심각한 상황을 초래할 수 있다. 이러한 이유에서 현 DRM 업체들은 자신이 DRM 제어를 위해 주도권을 가지고 있는 응용 프로그램에 대해서는 타사의 DRM 기술이 다시 제어권을 갖지 못하도록 기술적인 보호막을 설치해 놓고 있다. 이는 근본적으로 한 기기에 복수개의 DRM 기술이 적용될 수 없도록 만드는 결과를 가져오고 있다. 또한 MS 오피스 관련 응용프로그램들은 사용자가 동시에 복수개의 문서를 열람하더라도 프로세스가 1개만 생성되기 때문에, 특정 DRM vendor 포맷의 DRM 문서를 열람하기 위해 실행된 프로세스 내에서 다른 DRM vendor 포맷의 문서를 열람할 경우 정상적인 복호화가 이루어지지 않게 된다.
삭제
DRM 충돌 문제는 웹기반의 콘텐츠 보호 영역이나 동영상 등 상업적 목적으로 유통되는 콘텐츠 영역, 그리고 업무의 특성상 복수개의 DRM을 적용할 수밖에 없는 문서보안 영역에서 주로 발생하고 있으며, 이에 대해 산업체에서는 DRM 업체들의 협력을 통해 이기종 DRM 기술간의 충돌을 회피하기 위한 방안을 마련하고 있으나 아직까지 사용자의 편리성을 만족하면서 충돌의 문제점을 완전히 제거한 방법은 없는 상태이다.
DRM 충돌의 문제점을 해결하고자 하는 종래 기술로서 "프로세스 분리 실행을 통한 DRM 클라이언트 충돌 방지 방법(한국등록특허 제881386호, 이하 '선행특허'라고 함)"이 있다. 상기 선행특허는 탐색기나 웹브라우저에서 문서를 선택하여 열람을 시도할 경우에는 유효하게 사용될 수 있지만 이미 실행중인 프로세스 내에서 '파일열기' 메뉴 또는 마우스의 드래그&드롭, OLE 삽입 방식으로 다른 DRM 기술로 패키징된 콘텐츠를 열람하고자 하는 경우에는 해당 DRM을 처리할 수 있는 모듈이 기존 프로세스 내에 존재하지 않기 때문에 처리할 수 없다는 문제점이 있다.
본 발명의 목적은 현재 실행중인 프로세스에 존재하는 DRM 포멧과 다른 포멧의 DRM 콘텐츠 열람이 요청된 경우 새로 생성된 신규의 독립 프로세스로 열람 요청된 DRM 콘텐츠를 분기시킴으로써 DRM 클라이언트의 충돌을 방지하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 서로 다른 다수의 DRM 클라이언트가 설치된 단말기 내에서 DRM 클라이언트 간의 상호 충돌을 방지하기 위한 시스템은, 상기 단말기의 운영체제에서 독립된 프로세스를 생성하고 관리하는 독립 프로세스 관리부와, DRM 콘텐츠의 종류에 따른 분기 처리 정보를 관리하는 분기 처리 정보 관리부와, 상기 단말기 내의 DRM 콘텐츠 파일에 대한 접근을 시도하는 이벤트 발생시 상기 분기 처리 정보 관리부를 통해 상기 분기 처리 정보를 조회하고, 해당 DRM 콘텐츠 정보를 상기 독립 프로세스 관리부로 전달하여 상기 해당 DRM 콘텐츠가 독립된 프로세스 환경에서 실행되도록 하는 응용프로그램 분기부와, 현재 실행중인 독립 프로세스 환경에서 다른 DRM 벤더 포멧의 DRM 콘텐츠가 열람 요청된 경우 상기 분기 처리 정보 관리부를 통해 열람 요청된 DRM 콘텐츠의 분기 처리 정보를 조회하고, 상기 독립 프로세스 관리부에 표준 인터페이스를 통해 분기 처리를 요청하여 신규의 독립된 프로세스에서 상기 열람 요청된 DRM 콘텐츠가 실행되도록 하는 프로세스 분기부를 포함한다.
삭제
상기한 목적을 달성하기 위한 본 발명의 서로 다른 복수의 DRM 클라이언트가 설치된 단말기 내에서 DRM 클라이언트 간의 상호 충돌을 방지하기 위한 방법은, DRM 클라이언트 모듈 내부에 프로세스 분기부가 삽입되는 단계와, 현재 실행중인 독립 프로세스 내에서 콘텐츠 열람이 요청되는 단계와, 상기 프로세스 분기부가 자신이 속해 있는 프로세스 내부에 존재하는 DRM 벤더를 확인하고, 열람 요청된 콘텐츠의 분기 처리 정보를 조회하는 단계와, 상기 분기 처리 정보 조회 결과, 열람 요청된 콘텐츠가 현재 실행중인 독립 프로세스 내에서 처리 중인 DRM과 다른 DRM 콘텐츠인 경우 표준 인터페이스를 통해 독립 프로세스 관리부에 분기 처리를 요청하는 단계와, 상기 독립 프로세스 관리부를 통해 생성된 신규의 독립 프로세스에서 열람 요청된 DRM 콘텐츠를 실행하는 단계를 포함한다.
삭제
본 발명에 의하면, 종래의 방식에서는 불가능했던 이미 실행 중인 프로세스 내에 존재하는 DRM 클라이언트와 다른 종류의 DRM 콘텐츠에 대한 열람이 요청된 경우 이를 다른 프로세스에서 처리함으로써 DRM 클라이언트의 충돌을 효과적으로 방지할 수 있다.
도 1은 본 발명의 바람직한 일 실시예에 따른 DRM 클라이언트 충돌 방지 시스템 구성도
도 2는 본 발명의 바람직한 일 실시예에 따른 탐색기 또는 웹브라우저를 통한 콘텐츠 열람시 DRM 클라이언트의 충돌 방지 방법을 나타내는 순서도
도 3은 본 발명의 바람직한 일 실시예에 따른 실행중인 프로세스 내에서 콘텐츠 열람시 DRM 클라이언트의 충돌 방지 방법을 나타내는 순서도
도 4는 본 발명의 바람직한 일 실시예에 따른 응용프로그램 분기부와 프로세스 분기부가 DRM vendor를 식별하고 독립프로세스를 생성하기 위한 정보를 담고 있는 분기처리 정보의 예시도
도 5는 application rewriting 방식중 API Hooking 방식을 설명하는 개념도
도 6은 application rewriting 방식중 System DLL rewriting 방식을 설명하는 개념도
<도면의 주요 부분에 대한 부호 설명>
110 : 응용프로그램 분기부 120 : 분기처리 정보 관리부
130 : 프로세스 분기부 160 : 독립프로세스 관리부
170, 180 : 독립프로세스 환경
175, 185 : 응용프로그램을 위한 프로세스
도 2는 본 발명의 바람직한 일 실시예에 따른 탐색기 또는 웹브라우저를 통한 콘텐츠 열람시 DRM 클라이언트의 충돌 방지 방법을 나타내는 순서도
도 3은 본 발명의 바람직한 일 실시예에 따른 실행중인 프로세스 내에서 콘텐츠 열람시 DRM 클라이언트의 충돌 방지 방법을 나타내는 순서도
도 4는 본 발명의 바람직한 일 실시예에 따른 응용프로그램 분기부와 프로세스 분기부가 DRM vendor를 식별하고 독립프로세스를 생성하기 위한 정보를 담고 있는 분기처리 정보의 예시도
도 5는 application rewriting 방식중 API Hooking 방식을 설명하는 개념도
도 6은 application rewriting 방식중 System DLL rewriting 방식을 설명하는 개념도
<도면의 주요 부분에 대한 부호 설명>
110 : 응용프로그램 분기부 120 : 분기처리 정보 관리부
130 : 프로세스 분기부 160 : 독립프로세스 관리부
170, 180 : 독립프로세스 환경
175, 185 : 응용프로그램을 위한 프로세스
본 발명은 독립 프로세스 환경에서 하나의 단말기에 설치된 둘 이상의 서로 다른 DRM Vendor의 DRM 클라이언트가 서로 충돌하는 것을 방지하는 시스템 및 방법에 대한 것으로 현재 실행 중인 프로세스 내에서 열람되는 타 DRM Vendor 포맷의 DRM 콘텐츠를 처리하는 시스템 및 방법을 제안한다.
삭제
이하 본 발명의 바람직한 실시예에 따른 상세한 설명을 첨부된 도면을 참조하여 설명한다. 하기에는 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다.
도 1은 본 발명의 바람직한 일 실시예에 따른 DRM 클라이언트 충돌 방지 시스템 구성도이다. 도 1에서는 설명의 편의를 위해 하나의 단말기에 두 종류의 서로 다른 DRM Vendor(DRM Vendor A 및 DRM Vendor B)의 DRM 클라이언트가 설치되어 운용되는 환경을 도시하였으나, 적어도 2개 이상의 서로 다른 DRM Vendor의 DRM 클라이언트가 설치되어 운용되는 경우에도 적용 가능함은 이 분야에서 통상의 지식을 가진 자에게 자명하다고 할 것이다.
도 1을 참조하면, 본 발명의 프로세스 독립실행과 프로세스 분기방식을 혼용한 DRM 클라이언트 충돌방지 시스템(100)은 크게 독립 프로세스 관리부(160)와, 분기 처리 정보 관리부(120), 응용프로그램 분기부(110), 프로세스 분기부(130)를 포함하여 구성될 수 있다.
독립 프로세스 관리부(160)는 응용프로그램 분기부(110) 또는 프로세스 분기부(130)로부터 프로세스 실행에 대한 요청을 받고 독립된 프로세스를 생성하고 관리한다. 독립 프로세스 관리부(160)는 요청된 DRM 콘텐츠를 처리할 수 있는 프로세스가 운영체제상에 실행 상태에 있을 경우에 이미 생성되어 있는 프로세스에게 DRM 파일 정보를 전달한다. 만일, 요청된 DRM 콘텐츠를 처리할 수 있는 프로세스가 운영체제상에 존재하지 않으면 먼저 신규의 독립된 프로세스를 생성하고, 생성된 신규의 독립된 프로세스로 DRM 파일 정보를 전달한다. 이때, 독립된 프로세스를 생성하는 방법은 일례로 상기 선행특허에 개시된 방법이 사용될 수 있다.
분기 처리 정보 관리부(120)는 열람 요청된 DRM 파일의 기술을 제공한 Vendor를 확인하고 처리할 응용프로그램을 확인하기 위한 분기 처리 정보를 관리한다.
도 4는 분기 처리 정보 관리부(120)를 통해 관리되는 분기 처리 정보의 예시도로서, 도 4에 도시된 것처럼 DRM 파일이 "DRM_A_Container"(402)라고 하는 ASCII 문자로 시작할 경우 이 콘텐츠는 DRM VENDOR_A(404)가 제어를 담당하고 있는 DRM 콘텐츠임을 알 수 있다.
응용프로그램 분기부(110)는 탐색기나 웹 브라우저를 통해 DRM 콘텐츠의 열람 요청이 발생하는 경우, 분기 처리 정보 관리부(120)를 통해 해당 DRM 기술의 vendor를 조회하고, 해당 DRM 콘텐츠 정보를 독립 프로세스 관리부(160)로 전달한다. 독립 프로세스 관리부(160)를 통해 해당 DRM 콘텐츠를 처리해 줄 응용프로그램에 대한 프로세스가 생성되었을 경우에는 프로세스 생성과 동시에 DRM Vendor에 해당되는 DRM 클라이언트(140, 150)가 응용프로그램 프로세스 환경에 삽입된다. DRM 클라이언트(140, 150)가 삽입된 이후에 독립프로세스 관리부(160)는 프로세스 분기부(130)를 응용프로그램을 위한 프로세스(175, 185) 환경에 삽입한다. DRM 클라이언트를 응용프로그램을 위한 프로세스에 삽입하는 것은 DRM 클라이언트가 설치되어 있을 경우 각자의 방식으로 자동으로 이루어지므로 무시할 수 있다. 반면 프로세스 분기부(130)를 응용프로그램을 위한 프로세스에 삽입하는 것은 독립 프로세스 관리부(160)를 통해 remote process에 해당 모듈을 삽입하는 방식이 사용될 수도 있고, 기존에 DRM 클라이언트가 사용하던 방식(예컨대, Application built-in 방식, Application rewriting 방식, Operating system add-on 방식)이 사용될 수 있다.
프로세스 분기부(130)는 사용자가 이미 실행중인 프로세스 내에서 '열기' 메뉴나 마우스 드래그&드롭, OLE 삽입을 통해 콘텐츠를 열람하고자 할 때, 문서의 종류(예컨대, 일반 콘텐츠, DRM Vendor A의 암호화 콘텐츠, DRM Vendor B의 암호화 콘텐츠)가 자신이 현재 처리하고 있는 DRM과 다른 경우에 분기 처리 정보 관리부(120)를 통해 분기 처리 정보를 조회하여 해당 콘텐츠 정보를 독립 프로세스 관리부로 전달하고 관련된 응용 프로그램을 독립된 프로세스로 실행시켜 콘텐츠를 열람할 수 있도록 하는 프로세스 실행 분기 처리 모듈이다. 프로세스 분기부(130)는 각 DRM vendor가 DRM 클라이언트 모듈을 제작할 때 내부에 삽입하여야 하며, 삽입되는 방법은 소스코드를 직접 수정하는 방식을 사용하거나 application rewriting 방식을 이용할 수 있다. 프로세스 분기부(130)는 자신이 속해 있는 프로세스 내부에 존재하는 DRM vendor를 확인하고, 다른 DRM vendor의 DRM 콘텐츠가 열람 요청되었을 경우 독립 프로세스 관리부(160)에 표준 인터페이스를 이용하여 분기처리를 요청한다.
프로세스 분기부(130)가 자신이 속해 있는 프로세스 내부에 존재하는 DRM vendor를 확인하는 방법은, 운영체제로부터 실행 프로세스 메모리에 존재하는 DLL 리스트를 얻은 이후에 이로부터 각 vendor DRM 모듈의 존재 여부를 확인하는 과정을 통해서 이루어질 수 있다. 이 과정은 응용프로그램 분기부(110)가 처음 해당 DRM 클라이언트를 독립프로세스 환경으로 실행한 후에 DRM ID 기억 처리를 통해 이루어질 수 있다.
일례로 아래 표 2는 DRM 콘텐츠를 열람하고 있는 윈도우즈 notepad 응용프로그램의 실행 상태에서 메모리에 로드된 시스템 DLL의 정보를 보여주고 있다. 여기에는 DRM_A vendor의 drmhook.dll이 함께 로딩되어 있는 것을 발견할 수 있다. drmhook.dll은 DRM_A vendor에 종속적이고 타 DRM vendor가 제어하는 notepad 프로세스 정보에서는 존재하지 않으므로 이를 통해 이 응용프로그램은 DRM_A vendor의 DRM이 적용되어 있음을 알 수 있다.
Base Size Version Path 0x00570000 0x30000 6.01.7600.16385 C:\Windows\SysWOW64\notepad.exe 0x77a20000 0x180000 6.01.7600.16385 C:\Windows\SysWOW64\ntdll.dll 0x76c30000 0x100000 6.01.7600.16385 C:\Windows\syswow64\kernel32.dll 0x75b00000 0x46000 6.01.7600.16385 C:\Windows\syswow64\KERNELBASE.dll 0x75c80000 0xa0000 6.01.7600.16385 C:\Windows\syswow64\ADVAPI32.dll 0x76b80000 0xac000 7.00.7600.16385 C:\Windows\syswow64\msvcrt.dll 0x775d0000 0x19000 6.01.7600.16385 C:\Windows\SysWOW64\sechost.dll 0x76a30000 0xf0000 6.01.7600.16385 C:\Windows\syswow64\RPCRT4.dll 0x76a30000 0xf0000 6.01.7600.16385 C:\DRM_A\drmhook.dll . . . . . . . . . . . . . . . 0x73450000 0x4b000 6.01.7600.16385 C:\Windows\system32\apphelp.dll 0x73f30000 0x218000 6.01.7600.16385 C:\Windows\AppPatch\AcGenral.DLL 0x733d0000 0x80000 6.01.7600.16385 C:\Windows\system32\UxTheme.dll 0x73940000 0x32000 6.01.7600.16385 C:\Windows\system32\WINMM.dll 0x72f40000 0xf000 6.01.7600.16385 C:\Windows\system32\samcli.dll 0x751f0000 0x14000 6.01.7600.16385 C:\Windows\system32\MSACM32.dll 0x73ee0000 0x3000 6.01.7600.16385 C:\Windows\system32\sfc.dll |
삭제
각 DRM vendor와 DRM 모듈의 이름은 분기처리 정보 관리부(120)에 관리되는 분기 처리 정보를 사용한다. 도 4는 XML로 만들어진 분기 처리 정보의 예시도로서, 도 4에 도시된 것처럼 drmhook.dll(404)이 프로세스 내부에 존재한다면 이는 DRM Vendor A의 DRM(408) 이라는 것을 의미한다. 또한 이 DRM Vendor에 의해 제어되는 DRM 문서는 파일의 시작 부분이 "DRM_A_Container"로 시작됨(402)을 알 수 있다. 도면 부호 410은 DRM_A_Container로 시작하는 DRM 파일을 처리하는 프로세스는 가상 처리 프로세스 1번임을 의미한다.
이와 같은 DRM 클라이언트 충돌 방지 시스템을 통한 DRM 클라이언트 충돌 방지 방법을 도 1, 도 2 및 도 3을 참조하여 설명한다. 도 2는 본 발명의 바람직한 실시예에 따른 탐색기 또는 웹브라우저를 통한 콘텐츠 열람시 DRM 클라이언트의 충돌 방지 방법을 나타내는 순서도이다.
도 1, 2를 참조하면, 먼저 탐색기나 웹브라우저를 통해 DRM 콘텐츠의 열람 요청이 발생하면(S210), 응용프로그램 분기부(110)가 분기 처리 정보 관리부(120)를 통해 분기 처리 정보를 조회하여 해당 DRM 기술의 벤더(vender)를 확인하고(S220), 해당 DRM 콘텐츠 정보를 독립 프로세스 관리부(160)로 전달한다(S230).
확인된 DRM 벤더에 따라 해당 DRM 콘텐츠를 처리할 수 있는 프로세스가 운영체제상에 실행 상태에 있는 경우에는 이미 생성되어 있는 프로세스에서 해당 DRM 콘텐츠를 실행하도록 하고, 만일 요청된 DRM 콘텐츠를 처리할 수 있는 프로세스가 운영체제상에 존재하지 않으면 독립 프로세스 관리부(160)를 통해 신규의 독립된 프로세스를 생성한 후, 생성된 신규의 독립 프로세스에서 해당 DRM 콘텐츠를 실행하도록 한다(S240, S250). 이와 같이 해당 DRM 클라이언트를 독립 프로세스 환경에서 실행한 후에 현재 실행중인 프로세스 내부에 존재하는 DRM 모둘의 이름을 확인하고 이를 기반으로 DRM 종류를 추출하여 메모리에 저장하는 DRM ID 기억 처리를 수행한다(S260).
도 3은 본 발명의 바람직한 실시예에 따른 실행중인 프로세스 내에서 DRM 콘텐츠 열람시 DRM 클라이언트 충돌 방지 방법을 나타내는 순서도이다. 도 1, 3을 참조하면, 먼저 사용자가 이미 실행 중인 프로세스 내에서 '열기' 메뉴나 마우스 드래그&드롭, OLE 삽입 등을 통해 콘텐츠를 열람하고자 하면(S310), 프로세스 분기부(130)가 자신이 속해 있는 프로세스 내부에 존재하는 DRM 벤더를 확인하고(S320), 분기 처리 정보 관리부(120)를 통해 열람 요청된 콘텐츠의 분기 처리 정보를 조회하여(S330), 열람 요청된 콘텐츠가 처리 중인 DRM과 다른 DRM 콘텐츠인 경우 표준 인터페이스를 통해 독립 프로세스 관리부(160)에 분기 처리를 요청하고(S340), 독립 프로세스 관리부(160)를 통해 현재의 프로세스와 다른 독립 프로세스가 생성되면, 생성된 독립 프로세스에서 열람 요청된 DRM 콘텐츠를 실행하도록 한다(S350).
이때, 프로세스 분기부(130)는 각 DRM 벤더가 DRM 클라이언트 모듈을 제작할 때 내부에 미리 삽입되는 것이 바람직하며, 소스코드를 직접 수정하는 방식 또는 application rewriting 방식을 통해 DRM 클라이언트 모듈에 삽입될 수 있다.
또한, S320 단계에서 프로세스 분기부(130)가 자신이 속해 있는 프로세스 내부에 존재하는 DRM 벤더를 확인하는 방법은 운영체제로부터 실행 프로세스 메모리에 존재하는 DLL 리스트를 얻은 후, 각 벤더의 DRM 모듈이 존재하는지 여부를 확인하는 과정을 통해 이루어질 수 있다.
이와 같은 DRM 클라이언트 충돌 방지 시스템을 통한 DRM 클라이언트 충돌 방지 방법을 도 1, 도 2 및 도 3을 참조하여 설명한다. 도 2는 본 발명의 바람직한 실시예에 따른 탐색기 또는 웹브라우저를 통한 콘텐츠 열람시 DRM 클라이언트의 충돌 방지 방법을 나타내는 순서도이다.
도 1, 2를 참조하면, 먼저 탐색기나 웹브라우저를 통해 DRM 콘텐츠의 열람 요청이 발생하면(S210), 응용프로그램 분기부(110)가 분기 처리 정보 관리부(120)를 통해 분기 처리 정보를 조회하여 해당 DRM 기술의 벤더(vender)를 확인하고(S220), 해당 DRM 콘텐츠 정보를 독립 프로세스 관리부(160)로 전달한다(S230).
확인된 DRM 벤더에 따라 해당 DRM 콘텐츠를 처리할 수 있는 프로세스가 운영체제상에 실행 상태에 있는 경우에는 이미 생성되어 있는 프로세스에서 해당 DRM 콘텐츠를 실행하도록 하고, 만일 요청된 DRM 콘텐츠를 처리할 수 있는 프로세스가 운영체제상에 존재하지 않으면 독립 프로세스 관리부(160)를 통해 신규의 독립된 프로세스를 생성한 후, 생성된 신규의 독립 프로세스에서 해당 DRM 콘텐츠를 실행하도록 한다(S240, S250). 이와 같이 해당 DRM 클라이언트를 독립 프로세스 환경에서 실행한 후에 현재 실행중인 프로세스 내부에 존재하는 DRM 모둘의 이름을 확인하고 이를 기반으로 DRM 종류를 추출하여 메모리에 저장하는 DRM ID 기억 처리를 수행한다(S260).
도 3은 본 발명의 바람직한 실시예에 따른 실행중인 프로세스 내에서 DRM 콘텐츠 열람시 DRM 클라이언트 충돌 방지 방법을 나타내는 순서도이다. 도 1, 3을 참조하면, 먼저 사용자가 이미 실행 중인 프로세스 내에서 '열기' 메뉴나 마우스 드래그&드롭, OLE 삽입 등을 통해 콘텐츠를 열람하고자 하면(S310), 프로세스 분기부(130)가 자신이 속해 있는 프로세스 내부에 존재하는 DRM 벤더를 확인하고(S320), 분기 처리 정보 관리부(120)를 통해 열람 요청된 콘텐츠의 분기 처리 정보를 조회하여(S330), 열람 요청된 콘텐츠가 처리 중인 DRM과 다른 DRM 콘텐츠인 경우 표준 인터페이스를 통해 독립 프로세스 관리부(160)에 분기 처리를 요청하고(S340), 독립 프로세스 관리부(160)를 통해 현재의 프로세스와 다른 독립 프로세스가 생성되면, 생성된 독립 프로세스에서 열람 요청된 DRM 콘텐츠를 실행하도록 한다(S350).
이때, 프로세스 분기부(130)는 각 DRM 벤더가 DRM 클라이언트 모듈을 제작할 때 내부에 미리 삽입되는 것이 바람직하며, 소스코드를 직접 수정하는 방식 또는 application rewriting 방식을 통해 DRM 클라이언트 모듈에 삽입될 수 있다.
또한, S320 단계에서 프로세스 분기부(130)가 자신이 속해 있는 프로세스 내부에 존재하는 DRM 벤더를 확인하는 방법은 운영체제로부터 실행 프로세스 메모리에 존재하는 DLL 리스트를 얻은 후, 각 벤더의 DRM 모듈이 존재하는지 여부를 확인하는 과정을 통해 이루어질 수 있다.
Claims (6)
- 서로 다른 다수의 DRM 클라이언트가 설치된 단말기 내에서 DRM 클라이언트 간의 상호 충돌을 방지하기 위한 방법에 있어서,
a) DRM 클라이언트 모듈 내부에 프로세스 분기부가 삽입되는 단계;
b) 현재 실행중인 독립 프로세스 내에서 콘텐츠 열람이 요청되는 단계;
c) 상기 프로세스 분기부가 자신이 속해 있는 프로세스 내부에 존재하는 DRM 벤더를 확인하고, 분기 처리 정보 관리부를 통해 열람 요청된 콘텐츠의 분기 처리 정보를 조회하는 단계;
d) 상기 분기 처리 정보 조회 결과, 열람 요청된 콘텐츠가 현재 실행중인 독립 프로세스 내에서 처리 중인 DRM과 다른 DRM 콘텐츠인 경우 표준 인터페이스를 통해 독립 프로세스 관리부에 분기 처리를 요청하는 단계; 및
e) 상기 독립 프로세스 관리부를 통해 생성된 신규의 독립 프로세스에서 열람 요청된 DRM 콘텐츠를 실행하는 단계를 포함하고,
상기 프로세스 분기부는 소스코드를 직접 수정하는 방식 또는 application rewriting 방식을 통해 DRM 클라이언트 모듈 내부에 삽입되며,
상기 c) 단계는 상기 프로세스 분기부가 운영체제로부터 실행 프로세스 메모리에 존재하는 DLL 리스트를 획득한 후, 각 벤더의 DRM 모듈이 존재하는지 여부를 확인하는 단계를 포함하는 DRM 클라이언트 충돌 방지 방법. - 삭제
- 삭제
- 서로 다른 다수의 DRM 클라이언트가 설치된 단말기 내에서 DRM 클라이언트 간의 상호 충돌을 방지하기 위한 시스템에 있어서,
상기 단말기의 운영체제에서 독립된 프로세스를 생성하고 관리하는 독립 프로세스 관리부;
DRM 콘텐츠의 종류에 따라 처리할 응용프로그램을 확인하기 위한 분기 처리 정보를 관리하는 분기 처리 정보 관리부;
상기 단말기 내의 DRM 콘텐츠 파일에 대한 접근을 시도하는 이벤트 발생시 상기 분기 처리 정보 관리부를 통해 상기 분기 처리 정보를 조회하고, 해당 DRM 콘텐츠 정보를 상기 독립 프로세스 관리부로 전달하여 상기 해당 DRM 콘텐츠가 독립된 프로세스 환경에서 실행되도록 하는 응용프로그램 분기부; 및
현재 실행중인 독립 프로세스 환경에서 다른 DRM 벤더 포멧의 DRM 콘텐츠가 열람 요청된 경우 상기 분기 처리 정보 관리부를 통해 열람 요청된 DRM 콘텐츠의 분기 처리 정보를 조회하고, 상기 독립 프로세스 관리부에 표준 인터페이스를 통해 분기 처리를 요청하여 신규의 독립된 프로세스에서 상기 열람 요청된 DRM 콘텐츠가 실행되도록 하는 프로세스 분기부를 포함하고,
상기 프로세스 분기부는 소스코드를 직접 수정하는 방식 또는 application rewriting 방식을 통해 DRM 클라이언트 모듈 내부에 삽입되며,
상기 프로세스 분기부는 운영체제로부터 실행 프로세스 메모리에 존재하는 DLL 리스트를 획득한 후, 각 벤더의 DRM 모듈이 존재하는지 여부를 확인하는 것을 특징으로 하는 DRM 클라이언트 충돌 방지 시스템. - 삭제
- 삭제
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100008284A KR101535974B1 (ko) | 2010-01-29 | 2010-01-29 | 프로세스 독립실행과 프로세스 분기방식을 혼용한 디알엠 클라이언트 충돌방지 시스템 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020100008284A KR101535974B1 (ko) | 2010-01-29 | 2010-01-29 | 프로세스 독립실행과 프로세스 분기방식을 혼용한 디알엠 클라이언트 충돌방지 시스템 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20110088674A KR20110088674A (ko) | 2011-08-04 |
KR101535974B1 true KR101535974B1 (ko) | 2015-07-13 |
Family
ID=44927092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020100008284A KR101535974B1 (ko) | 2010-01-29 | 2010-01-29 | 프로세스 독립실행과 프로세스 분기방식을 혼용한 디알엠 클라이언트 충돌방지 시스템 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101535974B1 (ko) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040061825A (ko) * | 2002-12-31 | 2004-07-07 | 주식회사 파수닷컴 | 통합 디지털 데이터 보호 방법 |
KR20050098515A (ko) * | 2004-04-07 | 2005-10-12 | 삼성전자주식회사 | 컨텐츠별로 싱크 디바이스로의 출력을 제어하는 소스디바이스 및 그 방법 |
KR100881386B1 (ko) * | 2008-01-24 | 2009-02-02 | 주식회사 파수닷컴 | 프로세스 분리 실행을 통한 drm 클라이언트 충돌 방지 방법 |
-
2010
- 2010-01-29 KR KR1020100008284A patent/KR101535974B1/ko active IP Right Grant
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040061825A (ko) * | 2002-12-31 | 2004-07-07 | 주식회사 파수닷컴 | 통합 디지털 데이터 보호 방법 |
KR20050098515A (ko) * | 2004-04-07 | 2005-10-12 | 삼성전자주식회사 | 컨텐츠별로 싱크 디바이스로의 출력을 제어하는 소스디바이스 및 그 방법 |
KR100881386B1 (ko) * | 2008-01-24 | 2009-02-02 | 주식회사 파수닷컴 | 프로세스 분리 실행을 통한 drm 클라이언트 충돌 방지 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20110088674A (ko) | 2011-08-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9342689B2 (en) | File system access for one or more sandboxed applications | |
EP3123311B1 (en) | Malicious code protection for computer systems based on process modification | |
US8752201B2 (en) | Apparatus and method for managing digital rights through hooking a kernel native API | |
EP2811404B1 (en) | Virtual desktop implementation method, device and system | |
JP5528560B2 (ja) | データ配信装置、データ配信システム、クライアント装置、データ配信方法、データ受信方法、プログラムおよび記録媒体 | |
US20070256138A1 (en) | Computer-implemented method and system for binding digital rights management executable code to a software application | |
US9940443B2 (en) | Supporting secondary use of content of electronic work | |
US8336097B2 (en) | Apparatus and method for monitoring and protecting system resources from web browser | |
US7966465B2 (en) | Method and system for secure code encryption for PC-slave devices | |
CN101719209B (zh) | 一种windows平台上的通用数字版权保护方法 | |
US10264000B2 (en) | Malicious website access method and apparatus | |
US11269700B2 (en) | System call interception for file providers | |
JP5159896B2 (ja) | プロセス分離実行を通じたdrmクライアント衝突防止システム及び方法 | |
US10303885B2 (en) | Methods and systems for securely executing untrusted software | |
JP6670318B2 (ja) | ソフトウェアアプリケーションにおける分類及びirmの実現 | |
US9990493B2 (en) | Data processing system security device and security method | |
US9967263B2 (en) | File security management apparatus and management method for system protection | |
CN107636667B (zh) | 在设备中创建多个工作空间的系统及方法 | |
KR101535974B1 (ko) | 프로세스 독립실행과 프로세스 분기방식을 혼용한 디알엠 클라이언트 충돌방지 시스템 및 방법 | |
JP2009169868A (ja) | 記憶領域アクセス装置及び記憶領域のアクセス方法 | |
KR101207434B1 (ko) | 이종의 디지털 문서 보호 시스템 간의 충돌 방지 시스템 및 방법 | |
CN116541853B (zh) | 基板管理控制器固件的管理方法、装置、设备及存储介质 | |
KR101095815B1 (ko) | 소프트웨어 보안 장치 및 그 방법 | |
JP5553079B2 (ja) | 製品ドキュメント管理システム、製品ドキュメント管理方法、及びプログラム | |
Cho et al. | Potential privacy vulnerabilities in android data sharing between applications |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
FPAY | Annual fee payment |
Payment date: 20190422 Year of fee payment: 5 |