KR100475479B1 - 디지털데이터의 실행방법 및 그 시스템 - Google Patents
디지털데이터의 실행방법 및 그 시스템 Download PDFInfo
- Publication number
- KR100475479B1 KR100475479B1 KR1020040028783A KR20040028783A KR100475479B1 KR 100475479 B1 KR100475479 B1 KR 100475479B1 KR 1020040028783 A KR1020040028783 A KR 1020040028783A KR 20040028783 A KR20040028783 A KR 20040028783A KR 100475479 B1 KR100475479 B1 KR 100475479B1
- Authority
- KR
- South Korea
- Prior art keywords
- digital data
- function module
- module
- authentication
- execution
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/096—Arrangements for giving variable traffic instructions provided with indicators in which a mark progresses showing the time elapsed, e.g. of green phase
-
- F—MECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
- F21—LIGHTING
- F21S—NON-PORTABLE LIGHTING DEVICES; SYSTEMS THEREOF; VEHICLE LIGHTING DEVICES SPECIALLY ADAPTED FOR VEHICLE EXTERIORS
- F21S10/00—Lighting devices or systems producing a varying lighting effect
- F21S10/02—Lighting devices or systems producing a varying lighting effect changing colors
- F21S10/023—Lighting devices or systems producing a varying lighting effect changing colors by selectively switching fixed light sources
-
- G—PHYSICS
- G08—SIGNALLING
- G08B—SIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
- G08B3/00—Audible signalling systems; Audible personal calling systems
- G08B3/10—Audible signalling systems; Audible personal calling systems using electric transmission; using electromagnetic transmission
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/07—Controlling traffic signals
- G08G1/075—Ramp control
-
- G—PHYSICS
- G08—SIGNALLING
- G08G—TRAFFIC CONTROL SYSTEMS
- G08G1/00—Traffic control systems for road vehicles
- G08G1/09—Arrangements for giving variable traffic instructions
- G08G1/095—Traffic lights
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Storage Device Security (AREA)
Abstract
본 발명의 컴퓨터 프로그램 실행 방법은, 암호화된 디지털 데이터를 컴퓨터 시스템의 주메모리상에서 복호화하는 단계 상기 복호화된 디지털 데이터를 실행할 수 있는 실행 프로그램을 상기 주메모리상에 로딩하는 단계 상기 로딩된 실행 프로그램을 분석하여 필요로 하는 필요기능 모듈을 인지하는 단계 상기 필요기능 모듈의 작동여부를 인증하는 인증기능 모듈을 상기주메모리상에 제공하는 단계 상기 실행 프로그램에서 상기 필요기능 모듈을 호출하는 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계 상기 실행 프로그램이 상기 복호화된 디지털 데이터를 실행하는 중 상기 필요기능 모듈이 호출될 경우 상기 인증기능 모듈을 대신 실행하는 단계 상기 인증기능 모듈의 실행에서 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 필요기능 모듈의 목록을 주메모리에 로딩하는 단계 및, 상기 호출된 필요기능 모듈이 상기 인증된 필요기능 모듈의 목록에 속하는지를 판단하는 단계 를 포함하고, 상기 호출된 필요기능 모듈이 상기 인증된 필요기능 모듈의 목록에 속한다고 판단되면 상기 인증기능 모듈에서 상기 호출된필요기능 모듈을 호출하여 실행하고, 속하지 않는다고 판단되면 상기 호출된 필요기능 모듈을 실행하지 않는 것을 특징으로 한다.
Description
본 발명은 컴퓨터 프로그램의 실행방법에 관한 것으로서, 좀 더 상세하게는 암호화된 디지털데이터 파일을 복호화해서 실행할 때, 인증받지 않은 복제, 프린팅, 전송 기능을 원천적으로 봉쇄함으로써 디지털데이터의 불법복제 및 불법 유통을 차단하고, 나아가 디지털데이터의 실행시에 필요한 기능만을 선택적으로 구매하여 사용할 수 있는 방법 및 시스템을 제공하는 것이다.
최근 가치있는 정보를 전자화된 문서나 데이터로 생성하고 배포하는 행위는 경제적으로 중요한 문제로 부각하고 있는데, 특히 인터넷 등의 통신 시스템 발달로 이러한 디지털데이터는 온라인 거래가 가능한 재화로 인식되기 시작했다.
하지만, 음악파일, 영상파일, 문서파일 등의 디지털 데이터는 쉽게 불법적으로 복제되고 전송될 수 있는 성격을 가지고 있으므로 거래 대상이 되기 위해서는 이러한 불법복제 및 전송 등을 기술적으로 제한할 수 있어야 하는데, 현재의 기술로는 이를 원천적으로 봉쇄할 방법이 별로 없는 것이 사실이다.
또한 디지털데이터가 정상적인 거래의 대상이 되기 위해서는 정당한 댓가를 치르고 이를이용하는 이용자에게는 데이터의 이용에 불편함이 없어야 하며, 단순히 디지털 데이터를 열람하는 정도인지 아니면 이를복제하거나 전송하는 정도인지에 따라 지불하는 댓가가 차별화되도록 한다면 좀 더 활발한 디지털 데이터 유통을 지원할 수 있을 것이다.
결국, 불법적인 디지털데이터의 사용이 불가능하도록 구성하고 이와 동시에 하나의 디지털 데이터에 대해서도 이를 이용하는 사용자는 각자 서로 다른 권한만큼 구매하고 그 권한의 한도내에서 디지털데이터를 이용할 수 있도록 한다면, 비용면에서 융통성있는 거래가 가능하므로 좀 더 활발한 디지털데이터 유통을 장려할 수 있다.
본 발명은 디지털데이터의 불법적인 사용을 방지할 수 있는 방법을 제공하는 것을 그 목적으로 한다.
본 발명은 안전한 디지털데이터의 유통 방법을 제공하는 것을 또 다른 목적으로 한다.
본 발명은 디지털데이터의 실행 시에 필요한 기능 중 사용자가 구매하거나 획득한 기능만 작동하도록 하는 방법을 제공함으로써 좀 더 활발한 디지털데이터의 유통을 장려하는 것을 또 다른 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 컴퓨터 프로그램 실행 방법은, 암호화된 디지털 데이터를 컴퓨터 시스템의 주메모리상에서 복호화하는 단계 상기 복호화된 디지털 데이터를 실행할 수 있는 실행 프로그램을 상기 주메모리상에 로딩하는 단계 상기 로딩된 실행 프로그램을 분석하여 필요로 하는 필요기능 모듈을 인지하는 단계 상기 필요기능 모듈의 작동여부를 인증하는 인증기능 모듈을 상기 주메모리상에 제공하는 단계 상기 실행 프로그램에서 상기 필요기능 모듈을 호출하는 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계 상기 실행 프로그램이 상기 복호화된 디지털 데이터를 실행하는 중 상기 필요기능 모듈이 호출될 경우 상기 인증기능 모듈을 대신실행하는 단계 상기 인증기능 모듈의 실행에서 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 필요기능 모듈의 목록을 주메모리에 로딩하는 단계 및, 상기 호출된 필요기능 모듈이 상기 인증된필요기능 모듈의 목록에 속하는지를 판단하는 단계 를 포함하고, 상기 호출된 필요기능 모듈이 상기 인증된 필요기능 모듈의 목록에 속한다고 판단되면 상기 인증기능 모듈에서 상기 호출된 필요기능 모듈을 호출하여 실행하고, 속하지 않는다고 판단되면 상기 호출된필요기능 모듈을 실행하지 않는 것을 특징으로 한다.
또한, 상기 암호화된 디지털 데이터를 컴퓨터 시스템의 주메모리상에서 복호화하는 단계 이전에, 원거리에 위치한 서버 시스템에 접속하여 사용자 인증을 받는단계 및, 정당한 사용자로 인증되면 상기 암호화된 디지털 데이터를 복호화할 수 있는 복호화 수단을 전송받는 단계 를추가로 포함하여 좀 더 안전하게 디지털데이터를 유통할 수 있도록 한다.
또한, 상기 실행 프로그램 코드는 실행에 필요한 필요기능 모듈을 리스트한 IAT(Import Address table)를 포함하여 구성되고, 상기 로딩된 실행프로그램을 분석하여 필요로 하는필요기능 모듈을 인지하는 단계는 상기 IAT을 분석하여 인지하는 단계일 수 있으며, 상기 IAT는 추가로 상기 실행 프로그램 코드는 실행에 필요한 필요기능 모듈을 호출할 수 있으며, 상기 실행 프로그램에서 상기 필요기능 모듈을 호출하는 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계 는상기 IAT의 호출 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계일 수 있다.
또한, 상기 인증기능 모듈의 실행에서 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 필요기능 모듈의 목록을 주메모리에 로딩하는 단계 이전에, 원거리에 위치한 서버 시스템에 접속하여 사용자 인증을 받는 단계 및, 정당한 사용자로 인증되면 상기 인증된필요기능 모듈의 목록을 상기 서버 시스템으로부터 전송받는 단계 를 추가로 포함하여 좀 더 안전하게 디지털데이터를 유통할 수 있도록 한다.
또한, 상기 인증된 필요기능 모듈의 목록은 암호화된 파일이고, 상기 인증기능 모듈의 실행에서 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 필요기능 모듈의 목록을 주메모리에 로딩하는 단계 이전에, 원거리에 위치한 서버 시스템에 접속하여 사용자 인증을 받는단계 및, 정당한 사용자로 인증되면 상기 인증된 필요기능 모듈의 목록을 복호화할 수 있는 복호화 수단을 상기 서버 시스템으로부터 전송받는 단계 를 추가로 포함하여 좀 더 안전하게 디지털데이터를 유통할 수 있도록 한다.
본 발명에서 언급되는 필요기능 모듈은 컴퓨터가 일반적인 프로그램 실행을 위해 필요로 하는 모든 모듈을 의미하는데, 그 예로서 화면보기, 화면저장, 화면프린팅, 파일편집, 파일저장, 파일전송, 파일프린팅, 파일암호화, 파일복호화, 사운드실행, 동영상실행, 자바스크립트 등에서 필요한 인터프리터 모듈 등의 프로그램실행 중 적어도 어느하나의 기능을 수행하는 모듈일 수 있으며, 본 발명에서 언급되는 디지털 데이터는 실행프로그램 코드, 영상 데이터, 텍스트 데이터, 소리 데이터, 정지화면데이터 또는 이미지데이터 중 적어도 어느 하나 이상의데이터일 수 있다.
본 발명은 또한, 암호화된 디지털 데이터를 컴퓨터 시스템의 주메모리상에서 복호화하는 복호화 수단; 주메모리상에 로딩된 실행 프로그램을 분석하여 필요로 하는 필요기능 모듈을 인지하는 필요기능 모듈 인식수단 상기 필요기능 모듈의 작동여부를 인증하는 인증수단 상기 주메모리상에 로딩된 실행 프로그램의 실행 코드 중 상기 필요기능 모듈을 호출하는 코드의 호출목표 어드레스를상기 인증수단의 엔트리 포인트 어드레스로 변경하는 어드레스 변경수단 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 필요기능 모듈의 목록 상기 필요기능 모듈이 상기인증된 필요기능 모듈의 목록에 속하는지를 판단하는 판단수단 을 포함하는 컴퓨터 프로그램에 대한 것이다.
이하, 도면을 참조하여 본 발명의 실시예들을 상세히 설명한다.
도 1은 디지털 데이터 거래에 필요한 본 발명의 시스템에 대한 일 실시예를 도시한 도면이다.
도 1에서는, 디지털 데이터를 제작하여 판매하는 디지털데이터 판매자 클라이언트 시스템들(11)과 이러한 디지털 데이터를 구매하고자 하는 디지털데이터 구매자 클라이언트 시스템들(12)로 공급측과 수요측을 구분하고 있으며, 또한 이 양자의 거래를 주선하는 거래서버(13)가 그 사이에 존재하여, 판매자 클라이언트 시스템이 공급한 디지털 데이터의 목록 및 간략 내용을 나타내는 거래화면을 제공하고 구매자 클라이언트 시스템으로부터의 거래 요청에 대해 거래 과정을 처리한다. 또한 이 거래서버와는 별도로 은행이나 카드사 등의 결제 서버(14)가 이에 연결되어 구매자 및 거래를 인증하고 구매자의 계좌 등으로부터 실질적인 결제를 수행하도록 한다.
도 1에서 각 클라이언트 시스템(11,12)은 유선 또는 무선으로 거래서버에 연결될 수 있다. 또한 각 클라이언트 시스템은 컴퓨터, 휴대폰, PDA 등, 디지털 데이터를 업로드하거나 다운로드할 수 있고 또한 내용을 화면에 표시하거나 거래명령 및 조건들을 입력하고 처리할 수 있는 하드웨어적 구성이 갖추어진 장치라면 어떠한 것도 가능하다. 이러한 본 발명의 하드웨어적 구성은 인터넷 쇼핑몰같은 유형 재화(tangible goods)의 온라인 거래에 사용되는 시스템과 극히 유사하므로 특별한 경우를 제외한 상세 설명은 생략한다.
또한, 본 발명에서 의미하는 디지털 데이터는 전송이 가능한 어떠한 형태의 것도 포함하는 것으로서, 가령, 게임이나 유용한 응용 프로그래으로서 그 자체가 실행 가능한 형태인 실행 프로그램의 코드, 훈민정음이나 아크로뱃 등으로 작성된 텍스트 데이터, MP3 형식이나 기타 형식의 소리파일이나 음악파일, 정지영상 및 동영상파일 등인 영상 데이터 및 이들이 혼합된 멀티미디어 데이터 등, 경제적 가치를 가지며 온라인에서 전송 및 배포가 가능한 모든 디지털 데이터를 포함하는 개념이다.
도 2는 본 발명의 디지털데이터 거래과정에서 일어나는 단계를 각 거래 주체별로 구분한 플로우차트이며, 도 3은 거래서버를 구성하는모듈들을 설명하기 위한 도면이다.
디지털데이터를 공급하는 측인 판매자클라이언트 시스템에서는 본 발명의 거래서버에 접속하여 거래화면 제공을 요구하고 거래서버는 이를 전송하는데, 이 거래화면은 디지털 데이터를 거래하는 사이버 거래장터 역할을 수행하는 것으로서, 가령 유선인 웹페이지나 무선인 왑(WAP) 페이지 등의 형식으로 제공될 수 있다.
상기 거래화면에 접속한 판매자 클라이언트는 우선 판매자의 정보를 입력한다(S21). 여기서 판매자의 정보는 판매자 ID 또는 판매자 클라이언트 시스템의 IP 주소, 판매자 클라이언트 시스템의 고유기기정보 등이 해당되는데, 이는 향후 결제시 입금될 판매자의 계좌 정보등을 확인하기 위해서이다.
참고로 시스템의 고유기기정보란 컴퓨터의 운영체제나 CPU 등의 제품생산 번호나 메모리스틱 형태로 제공될 스마트카드 정보를 의미하는 것으로, 사용자에 무관하게 디지털 데이터를 실행하는 컴퓨터 시스템만을 기준으로 거래 주체를 구분하기 위한 것이다. 따라서, 가령, 판매자측(11) 또는 거래서버(13)의 거래정책에 따라 동일한 사용자 ID, 동일한 IP, 동일한 컴퓨터 시스템 또는 동일한스마트카드라면 어디에서 누구라도 동일한 디지털 데이터를 이용할 수 있게 함으로써 좀 더 활발한 거래 및 이용을 유도할 수 있다. 이러한 상황은 구매자 클라이언트 시스템측(12)도 마찬가지이며 이하에서는 이러한 거래주체에 대한 정보를 단순히 판매자 정보 및 구매자 정보라 칭한다.
판매자 정보를 입력한 판매자 클라이언트 시스템은 그 후 거래될 디지털 데이터에 대한 거래정보를 거래화면에 입력한다(S22). 여기서 입력되는 거래정보는 거래될 디지털 데이터의 제목, 간략 설명, 카테고리 분류, 검색시 사용될 키워드 입력 등 거래 객체에 대한 일반적인 정보로서 구매자측이 거래 전에 해당 디지털 데이터를 충분히 인지할 수 있도록 조력하기 위한 정보들이다.
또한 판매자는 이에 더하여 거래 가능한 기능을 그에 부가된 조건과 함께 입력한다. 본 발명에서 거래 가능한 기능이란, 가령, 거래될 디지털 데이터를 단순히 보거나 듣는 형태인 실행 기능, 스트림 방식 등으로 제공된 디지털 데이터를 자신의 파일 시스템에 저장하는 저장 기능, 프린팅해서 종이로 출력하는 프린팅 기능, 타인에게 전송하는 전송 기능 등을 의미하는데, 이는 일반적으로 지금까지는 하나의 디지털 컨텐츠에 대해 모두 허용되어 왔던 기능들이다. 본 발명에서는 이 기능 각각을 거래 대상으로 구분하여 동일한 디지털 데이터에 대해서도 구매자에 따라 서로 다른 기능을 수행할 권한을 부여하고 자신에게 부여된 권한 이상의 기능은 수행되지 못하도록 함으로써, 디지털 데이터의 상품성을 극대화하는 방법을 제공하고자 하는 것이다.
이러한 거래정보를 입력한 후, 판매자는 거래 객체인 디지털데이터를 업로드한다(S23).
전술한 업로드 및 거래 정보 등에 대한 입력은 그 순서를 바꾸어서 수행할 수도 있다.
디지털데이터를 전송받은 거래서버(13)는 상기 판매자정보입력단계(S13)에서 입력된 정보 등을 바탕으로 상기 디지털데이터의 소유자를 구분하고 결제할 계좌정보 등을 인지한다(S24). 또한 거래정보 입력단계(S22)에서 입력된 정보를 바탕으로 거래정보를 식별한다(S25).
그 다음, 거래 서버는 이 디지털데이터의 불법복제 및 불법 유통를 막기 위해서 암호화/복호화 모듈을 사용하여 암호화 작업을 수행하고 거래서버에 연동된 저장모듈에 이를 저장한 후(S26), 이 디지털데이터에 대한 거래정보만을 바탕으로 구성된 거래화면에 이를 게시한다(S28). 또한 상기 디지털데이터의 암호화 및 저장 시에 이 디지털데이터가 거래서버에 의해 암호화되고 판매된 것임을 인지할 수 있는 식별자를 부여함으로써 향후 다른 문서와 구분토록 한다(S27).
구매자 클라이언트 시스템(12)의 작동 방식에 대해서 설명하면, 우선 구매자 클라이언트 시스템은 거래서버(13)에 접속하여 거래 가능한 디지털데이터의 거래정보를 열람하고 거래하고자 하는 디지털데이터를 선택한다. 또한 이러한 선택을 전후하여 구매자 정보 및 결제정보를 제공하여 거래의 기본적인 요건을 갖추도록 한다(S29).
거래 대상인 디지털데이터를 정하여 다운로드 항목으로서 선택한 다음(S30), 그 디지털데이터에 대해서 어떤 기능을 수행할 것인지를 결정하는 인증기능 선택 단계를 거치고(S31), 거래정보를 바탕으로 이에 대해 결제를 승인한다(S32). 결제가 완료되면 구매자 클라이언트 시스템은 선택된 디지털데이터를 다운로드받아 사용가능한 상태가 된다(S33).
전술한 거래 서버의 구성 모듈에 대한 구체적인 한 예가 도 3에 도시되어 있다.
도 3에서, 거래 서버(13)는 전술한 거래 객체에 대한정보(37)를 거래화면의 일부분으로서 클라이언트 시스템에 제공하는 디지털데이터 디스플레이 모듈(31), 거래대상인 디지털데이터 자체를 암호화하여 저장모듈에 저장하고 이에 대한 복호화수단을 제공하는 암호화/복호화 모듈(32), 디지털데이터와 이에 연동된 판매자 및/또는 구매자 정보, 거래조건 정보를 저장한 거래 DB 모듈(33), 판매자 클라이언트시스템(11)으로부터 데이터 및 거래 조건을 업로드받고 구매자 측의 거래요청에 대해 결제서버(14)를 연결하여 결제를 수행한 후 해당 디지털 데이터와 그 복호화 수단, 구매자에게 인증된 기능 목록, 본 발명에서 제공하는 응용 프로그램 형태의 보안엔진 등을 구매자 클라이언트 시스템(12)에 전송하는 등의 거래에 관련된 일반적인 기능을 수행하는 거래수행 모듈(34)과 이 모두를 제어하는 제어부(30)로 구성되어 있으며, 각 클라이언트 시스템, 저장모듈, 결제서버 등과의 통신을 위한 인터페이스 모듈(35) 등으로 구성된다. 여기서 상기 저장모듈(36), 결제서버(14)는 구성에 따라 거래서버 내부에 모듈형태로 포함될 수 있음은 물론이다.
또한, 도 3에서 상기 거래화면 중 객체정보 화면(37)의 한 예가 도시되어 있는데, 판매자는 이 화면(37)을 통해 자신이 업로드한 디지털데이터의 명칭, 간략설명, 거래 가능한 기능 들의 거래조건을 입력하여 제시할 수 있고, 구매자는 이 화면(37)을 보면서 필요한 대상과 조건을 설정하여 거래 서버(13)로 구매 요청 및 결제금액 등의 결제정보를 전송할 수 있게 된다.
도시된 예에서는 화면실행, 저장, 전송 등 각 기능에 대한 구매금액이 나타나 있는데, 각 항목의 금액을 지불하고 특정 기능들을 구매하면 이는 해당 구매자의 해당 디지털데이터에 대한 인증기능이 되어 인증기능 목록에 저장된다. 즉, 인증기능 목록이란 해당 디지털데이터의 구매 여부와는 별도로, 해당 디지털데이터에 대해서 구매자만이 수행할 수 있는 기능을 의미하는 것이다. 이러한 인증기능 목록은 특히 디지털데이터의 전송이나 복제 등 해당 디지털데이터 저작권자의 저작권을 침해할 수도 있는 기능에 대해서, 구매자가 미리 이러한 기능을 구매하여 복제나 전송 기능 등을 수행할 경우 침해될 수 있는 디지털데이터의 저작권에 대해 사전에 그에 대한 정당한 보상을 하도록 구성한 것이다.이하에서는 인증기능 및 인증되지 않은 기능을 구분하고 이 둘을 합친 개념을 필요기능이라 칭한다. 거래가능한 필요기능은 도시된 것에 더하여 각 기능에 대한 부가적인 조건들, 가령 사용기간 등도 될 수 있다.
한편, 도 3에서는 거래DB 모듈(33)에 저장되는 데이터가 어떻게 구성되는지의 한 예를 보여주고 있는데, 가령 특정한 디지털데이터와 이를 구매한 구매자의 ID 및 패스워드 등을 함께 연동시켜 저장함으로써, 어떤 구매자가 이 디지털데이터를 요구할 경우 해당 디지털데이터를 다운로드하고 복호화할 수 있는 권한이 있는지를 인증할 수 있도록 구성되어 있다. 또한, 그 구매자가 그 디지털데이터에 대해 어떠한 기능만을 수행할 수 있는지에 대한 인증기능 목록을 저장하여, 이하에서 설명되는 인증기능 모듈의 인증 확인시에 이를 참조할 수 있도록 구성되어 있다. 도시된 바에 따르면, 가령 A943을 가진 구매자는 D.exe라는 디지털데이터에 대해 D(screen display), S(save)기능만을 구매하였으므로 이 기능만을 인증기능 목록으로 권한이 부여되어 있음을 볼 수 있는데, 향후 이 사용자가 D.exe에 대해서 이 인증된 기능과는 다른 기능, 가령 프린팅 기능(P)을 수행하고자 시도하면 이 기능은 본 발명의 보안엔진에 의해 수행되지 않거나 에러로 처리된다.
도 4는 전술한 구매자 클라이언트 시스템(12)에서의 구매과정(S29 ~ S33)을 좀 더 상세하게 나타낸 흐름도이다. 먼저, 구매자는 구매자 클라이언트 시스템으로서 인터넷 등에 연결된 퍼스널 컴퓨터, 휴대폰, PDA 등 통신기기를 이용하여 거래서버에 접속한 후, 구매자 정보를 입력하여(S29) 구매자를 인증받는다. 또한 이 인증을 전후하여 거래서버로부터 거래화면을 제공받아 거래 대상인 디지털데이터의 목록을 검색한다.
이러한 검색에 의해 다운로드 대상 및 이에 대해 구매자가 필요로 하는 필요기능들, 즉 인증기능 목록을 선택한 후(S30, S31), 이를 다운로드하기 위해서는 결제하는 과정(S32)을 거쳐야 한다. 결제는 사이버 머니나 기타 거래서버의 정책에 따라 유료광고를 시청하는 등의 다양한 댓가를 이용할 수 있다. 만약 실생활에서 사용되는 돈으로 결제한다면 사전에 저장된 해당 사용자의 결제정보를 이용하거나 또는 각 거래시마다 새로운 결제정보를 입력(S32-1)하도록 할 수 있다.
결제 단계를 전후하여 선택된 디지털 데이터를 다운로드 받을 단말기, 즉 목표단말기를 선택하는 단계를 거칠 수도 있다(S33-1). 접속한 클라이언트 시스템이 목표단말기가 되는 것이 일반적이지만, 가령 친구에게 특정 음악파일을 선물하는 등의 경우에는 제3자의 클라이언트 시스템을 목표단말기로 선정하는 것이 가능해야 하기 때문이다. 이하에서는 특별히 언급하지 않는 한, 데이터를 구매한 구매자 클라이언트 시스템과 목표 단말기가 동일한 것으로 상정하여 설명한다.
결제 및 목표단말기 선정 등이 끝나면 실제 다운로드 단계에 진입한다. 다운로드를 요청하면(S33-2), 구매자에게는 마치 디지털데이터만 다운로드되는 것처럼 보일 수도 있지만 실제로는 본 발명의 거래 기능을 위해서 반드시 필요한 보안 엔진과, 전술한 인증기능 목록이 암호화된 상태로 디지털데이터와 함께 다운로드된다(S33-3, S33-4, S33-5)
이하에서는 상기 보안엔진을 특별히 본 발명자가 명명한 고유 명칭인, 도큐셀 엔진(docushell engine) 또는 줄여서 DSE라 칭하는데, 이는 본 발명의 거래방식을 위해 새로이 개발된 보안엔진이다. 이 DSE는 다운로드가 끝남과 동시에 자동적으로 클라이언트 시스템에 설치되도록 구성되어 있으며(S33-6), 또한 컴퓨터 시스템의 리지스트리(registry)에 등록되어 시스템을 시작할 때는 항상 주메모리상에 로딩되고 프로세스화 되므로써 사용자의 디지털데이터 사용을 보조하고 감시할 수 있도록 구성되어 있다.
도 4에서 인증기능 목록 다운로드는 사전에 실시되지 않고 해당 인증기능을 사용하고자 할 때 비로소 사용자에 대한 인증을 거친 후 다운로드되도록 할 수도 있다. 또한, 상기 DSE에는 암호화된 디지털데이터를 복호화할 수 있는 복호화 수단이 함께 내장되어 있어 상기 DSE를 다운로드받아 설치하지 않으면 디지털데이터에 대한 복호화 및 그 활용이 아예 불가능하도록 구성되어 있다.
도 5는 전술한 다운로드 과정이 완료되고 DSE가 설치된 목표 단말기 또는구매자 클라이언트 시스템(12) 구성의 한 예를 도시한 것이다.
다운로드된 디지털 데이터(55) 및 그에 연동된 인증기능 목록(56)은 암호화된 상태로 하드디스크 등의 보조메모리(57) 등에 저장된다. 또한, DSE(50)가 설치되어 있는데 이 DSE는 파일식별자 판단모듈(51), 암호화/복호화 모듈(52), 후킹을 수행하는 후킹 모듈(Hooking module, 53) 및 필요기능에 대한 인증을 수행하는 인증기능 모듈(54)로 구성되어 있다.
상기 DSE의 모듈들에 대해서 간략히 설명하면, 파일식별자 판단모듈(51)은 DSE가 작동해서 영향을 미쳐야 할 디지털데이터를 구분하기 위한 모듈로서, 같은 파워포인트 데이터라도 본 발명의 방식으로 거래된 데이터인지 아닌지를 판단하기 위한 것이다. 구체적인 방법은 거래서버의 암호화/복호화 모듈(32)이 해당 디지털데이터를 암호화할 때 부여한 파일식별자를 파일식별자 판단모듈이 인지하여 이를 구분해 내는 기능을 수행한다. 그리고 암호화/복호화 모듈은 구매자의 시스템에 다운로드된 암호화된 디지털데이터(55) 및 인증기능 목록(56)을 복호화하고, 후에 사용자가 해당 디지털데이터로 작업한 후 이를 저장하라는 인증된 저장 명령을 내리면 그에 대해 주메모리에 기록된 데이터 중 필요한 데이터를 다시 암호화하여 저장하는 기능을 수행한다. 후킹 모듈(53)은 디지털데이터(55)를 실행할 실행 프로그램(50) 및 필요기능 모듈(58)이 운영체제의 로더에 의해 주메모리에 로딩된 후 후술되는 어드레스 리맵핑(address remapping)을 수행하는 모듈이며, 인증기능 모듈(54)은 요청된 필요기능이 인증기능 목록에 포함된 인증된 기능인지를 확인하는 모듈이다. 후킹 모듈(53)은 본 발명의 인증기능 모듈(54)이 작동하기 위해서 반드시 필요한 모듈로서 이 둘의 작동 방법에 대해서는 상세히 후술한다.
도 5에는 이에 더하여 상기 디지털데이터를 실행할 수 있는 실행 프로그램(57)과 그 실행 프로그램이 필요로 하는 필요기능 모듈들(58)의 예도 함께 도시되어 있는데, 이는 미리 클라이언트 시스템에 설치되어 있는 것이다.
상기 실행 프로그램 및 필요기능 모듈의 예를 간단히 들면, 다운로드된 디지털데이터가 A.ppt라면 실행 프로그램은 미국 마이크로소프트사의 프로그램인 파워포인트 프로그램(powerpoint.exe)이고 필요기능 모듈은 이 실행프로그램이 필요로 하는 각종 DLL 파일(dynamic loading library file)이 될 수 있다.
이러한 필요기능 모듈은 실행 프로그램 내부에 프로그램 코드로 존재하거나 또는 DLL 파일과 같은 독립된 모듈로 존재할 수 있는데, 어떠한 형태이든 이 필요기능을 수행하는 실행코드는 그 시작인 엔트리 포인트와 종료되어 실행을 다시 반환하는 리턴 포인트를 포함한 별도의 블록으로 구성되어 있는 경우가 대부분이며, 본 발명에서는 이 블록 형태의 실행코드를 필요기능 모듈이라 칭한다.
실행 프로그램에 대해 필요기능 모듈은 저장, 전송, 화면 디스플레이 등 각각 독립된 보조적인 기능을 수행하므로, 실행 프로그램과 필요기능 모듈은 실제 실행을 위해 프로세스화 되었을 때 주메모리상에서 어드레스 맵핑과정을 거쳐 서로 결합되는데, 가령 실행 프로그램의 IAT(Import Address Table)를 분석하여 각 필요기능(Ft1, Ft2)을 인지하고 이들이 호출하는 필요기능 모듈의 주소(Adrs1, Adrs2)를 필요기능 모듈의 EAT(Export Address Table)에서 읽어와 IAT에 저장하는 방식이다. 이에 대해서는 일반적으로 잘 알려져 있으며 또한 다시 한 번 상세히 후술한다.
이렇게 DSE 및 각종 모듈이 설치된 클라이언트 시스템에서 다운로드된 디지털데이터를 작동시킬 때의 흐름도가 도 6에 나타나 있다.
도 6에서는 이해를 돕기 위해 실행 프로그램을 A.exe로, 실행 대상인 디지털데이터를 DD.aaa로, 암호화된 DD.aaa는 DD.aaa.ms로 예시하였다. 물론 이러한 예시는 본 발명을 어떤 특정 형식에 한정짓는 것이 아니다.
본 발명의 DSE는 일반적으로는 해당 클라이언트 시스템이 부팅된 후, 셀(shell) 모듈을 설치할 때 함께 설치되도록 레지스트리에 구성되어 있으므로 항상 실행 프로그램 및 디지털데이터의 실행 전에 프로세스화 된다(S61). 하지만, 필요한 경우에는 특정 실행 프로그램의 실행 요청을 접수했을 때(S62) 또는 본 발명의 거래서버가 부여한 식별자, 즉, 도 6에서는 암호식별자로 ms를 가진 디지털데이터의 실행 요청시에(S65) DSE가 비로소 주메모리상에 로딩되어 프로세스화 되도록 구성될 수도 있다.
또한, 디지털데이터 DD.aaa의 사용자인 구매자 등은 이를 실행할 수 있는 실행 프로그램 A.exe의 실행을 먼저 요청한 후 DD.aaa의 실행을 요청하거나 또는 DD.aaa의 실행을 먼저 요청한 후 운영체제에 의해 자동적으로 A.exe가 실행이 되도록 할 수 있으므로, 도 6에서는 실행 프로그램 실행 요청 및 그 후의 단계들(S62 ~ S64)과 디지털데이터 실행 요청 및 그 후속 단계들(S65 ~ S67)을 나란히 배치하여 그 우선 순위가 없음을 강조하였다.
따라서 결론적으로, DSE의 프로세스화 단계(S61), 실행 프로그램의 실행 요청 단계(S62)및 디지털데이터의 실행 요청 단계(S65)는 서로 어느 것이 우선하더라도 본 발명을 실행하는 데 차이가 없고, 다만 실행 프로그램이 주메모리상에 로딩(S63)되기 전에, 그리고 디지털데이터가 실행(S67)되기 전에 DSE가 프로세스화(S61) 되어 있으면 된다.
도 6에서, 실행 프로그램 실행을 먼저 요청한 경우(S62), 실행 프로그램은 클라이언트 시스템의 주메모리에 로딩되고(S63), 그 후 DSE에 의해 실행 프로그램의 필요기능 모듈 호출이 분석된 후, 어드레스 리맵핑(address remapping)을 통해 인증기능 모듈이 필요기능 모듈 대신에 작동하도록 조치하는 후킹(hooking) 단계(S64)를 거치게 된다.
상기 단계(S62 ~ S64)를 전후하여 구매자는 실행하고자 하는 디지털데이터의 실행을 요청하는데(S65), 이 요청에 대해 DSE는 자신의 내부 모듈인 복호화 모듈(52)로 암호화된 디지털데이터 DD.aaa.ms를 복호화하여 DD.aaa로 주메모리에 로딩한다(S67).
복호화 모듈에 대한 또 다른 방식으로서는, 이 디지털데이터의 실행 요청 접수 후(S65), 클라이언트 시스템에 연결된 거래서버가 사용자를 다시 한 번 인증하고 DSE의 모듈인 복호화 모듈을 이때야 비로소 전송하여 상기 복호화 단계를 거칠수도 있다(S79). 이는 정당 사용자의 정당한 사용인지를 다시 한 번 확인하는절차이며 따라서 이 실시예에서는 상기 DSE의 복호화 모듈이 DSE와 분리되어 따로 다운로드받는 형태이다.
또한, 이 때를 전후하여 사용자가 결제하여 인증된 인증기능 목록을 복호화하여 주메모리에 설치하는데, 인증기능 목록이 암호화된 상태인 이유는 이 목록을 해킹하는 것을 방지하기 위해서이다. 본 발명에서는 인증기능 목록이 사전에 다운로드되어 암호화된 상태로 클라이언트 시스템에 저장된 실시예를 기준으로 설명하지만, 사용자 인증 후(S79) 비로소 인증기능 목록이 다운로드되어 설치되는 실시예가 가능함은 당연한 일이다. 따라서 이 두 경우를 모두 포함하여 인증기능 목록 획득 단계(S66)라 칭한다.
전술한 도 6의 과정에서, 만약 사용자가 디지털데이터의 실행을 먼저 요청한 경우(S65)에는, 디지털데이터 프로세싱 단계(S65 ~ S67) 후 실행 프로그램 프로세싱 단계(S62 ~ S64)가 실행될 수 있다.
상기 초기 과정이 실행된 후, 실행 프로그램은 복호화된 디지털데이터 DD.aaa에 대한 실제 프로세싱을 시작하게 되는데(S68), 이 때 실행 프로그램은 이 데이터를 화면에 디스플레이하거나 사운드로 재생하기 위한 필요기능 모듈을 호출하게 되고 그 밖에도 사용자의 명령에 따라 편집, 저장, 전송 등을 위한 필요기능 모듈들을 호출하게 된다(S69).
필요기능 n이라 도시된 특정 필요기능 모듈이 실행 프로그램에 의해 호출되면(S69) 이는 사전에 DSE에 의해 후킹되어 있으므로(S64) 필요기능 모듈 대신에 인증기능 모듈(54)이 호출된다. 인증기능 모듈은 이미 복호화된 인증기능 목록(56)을 참조하여 호출된 필요기능 모듈 n이 인증된 기능인지를 체크하는 인증 과정(S70)을 거치게 된다.
호출된 필요기능 n 이 인증된 것이라 판단되면, 인증기능 모듈은 이 필요기능 모듈n 을 호출하여 정상 실행되도록 조치한다(S71). 반대로, 호출된 필요기능 모듈이 인증기능 목록에 존재하지 않는다면, 인증기능 모듈은 이 호출에 대해 무반응하거나 에러 메시지를 생성한 후(S72), 다시 실행 프로그램으로 리턴하도록 조치하여(S73) 인증되지 않은 필요기능은 수행되지 못하도록 한다. 또한, 이러한 필요기능 호출은 여러 번 반복적으로 수행될 수 있으며 그 때마다 전술한 인증기능 모듈의 실행이 반복된다(S69 ~ S72).
모든 후속 작업이 실행되면(S73) 실행 프로그램의 DD.aaa.에 대한 실행은 종료되고(S74) DSE는, 필요한 경우, 주 메모리에 기록된 데이터들을 암호화하여 파일 시스템에 저장하거나(S75) 또는 주메모리에서 완전히 삭제하여(S76) 복호화된 디지털데이터에 대한 해킹을 방지하도록 조치한다.
도 7a는 종래의 실행 프로그램의 작동 순서를 도시한 것이고 도 7b는 본 발명의 작동 순서를 도시한 것으로서, 특히 전술한 본 발명의 후킹 단계(S64) 및 인증 단계(S70 ~ S72)를 상세히 설명하기 위한 도면이다.
먼저, 종래 방식인 도 7a을 살펴보면, 실행 프로그램(57)은 이를 설명해주는 파일 헤더(70)와 실제 실행될 코드인 실행코드 영역(71)으로 구분되어 있으며, 또한 실행코드(71)에서 호출하는 함수, 즉 본 발명에서는 필요기능 모듈이라는 불리는 코드 블록에 대한 호출 어드레스를 리스트한 IAT(Import Address Table, 73)를 포함하여 구성되어 있다.
또한 필요기능 모듈(58)은, 파일 헤더(74)와 실제 기능하는 실행코드 영역(75) 및 실행코드 영역의 엔트리 포인트 주소를 기록한 EAT(Export Address Table, 76)로 구성되어 있다.
그 작동 방식을 살펴보면, 우선 실행 프로그램(57)의 전 코드가 주메모리에 로딩된 후, 시스템의 운영체제는 실행코드 영역(71)을 파싱(parsing)하거나 또는 직접적으로 IAT(73)를 분석하여 이 실행 프로그램이 필요로 하는 필요기능 모듈의 어드레스를 맵핑하게 된다. 가령, 도시된 실시예에서는 어드레스 350에서 PLAY라는 필요기능 모듈을, 어드레스 480에서 PRINT라는 필요기능 모듈을 호출하는데, 이를 실행토록 하기 위해서 필요기능 모듈로서, 가령 DLL파일인 PLAY.dll과 PRINT.dll을 주메모리에 배치하고 각각의 EAT(Export Address Table)을 참조하여 절대주소, 가령, 1200과 1800을 실행프로그램의 IAT(73)에 기록한다.
DLL 파일은 여러 종류의 실행프로그램이 공통으로 사용할 수 있도록 구성된 기능모듈로서, 실행 프로그램의 크기를 작게 하고 효율적인 실행을 위해서 개발된 방식이며 현재의 윈도우즈 운영체제하에서는 일반적으로 사용되는 기능모듈이다. 본 발명에서는 DLL파일을 필요기능 모듈의 예로서 들고 있지만, 동일한 방식으로 호출되어 특정기능을 수행한 후 다시 메인 프로그램으로 복귀하도록 구성된 기능코드 블록이라면 어떠한 형태의 것도 본 발명의 필요기능 모듈이 될 수 있다.
이러한 IAT 기록 후, 실행 프로그램의 실행코드가 실제로 CPU에서 실행되다가 어드레스 350에서 PLAY 기능 모듈을 호출하게 되는데(단계 ①), 이는 실제로 함수 명칭을 호출하는 것이 아니라 IAT(73)의 해당 코드라인, 즉 도시된 실시예에서는 어드레스 100을 호출하는 것이다.
어드레스 100을 가진 IAT의 코드는 PLAY.dll을 호출할 수 있도록 사전에 어드레스 1200으로 맵핑되어 있으므로, 단계 ①의 점핑에 의해 어드레스 100을 실행하면 다시 코드 1200을 호출하게 되고(단계 ②), 어드레스 1200을 가진 코드에서 실제로 PLAY.dll이 실행된 후 리턴 명령에 의해 실행 프로그램 코드로 돌아오게 된다(단계 ③).
그 후, 실행 프로그램 코드가 계속 실행되다가 어드레스 480 코드를 실행하면서 다시 PRINT.dll 기능모듈 호출을 만나게 되면 전술한 방식대로 단계 ④부터 단계 ⑥ 까지를 거치게 된다.
이러한 기능모듈 호출을 후킹하여 인증기능 모듈로 호출을 리다이렉션(re-direction)하는 본 발명의 수행방식이 도 7b에 도시되어 있다.
도 7b에서, 실행 프로그램 코드가 주메모리에 로딩된 후, 시스템의 운영체제가 IAT(73)의 필요기능 모듈의 어드레스를 맵핑하고 나면, 그 직후 또는 실행 프로그램의 프로세스 단계 이전에, DSE(50)의 후킹 모듈(53, 도시되지 않음)에 의해 후킹 단계가 수행된다(S64).
후킹 모듈(53)은 IAT의 호출 어드레스를 다시 수정하는데, 가령 도 7a에서처럼 PLAY.dll을 실행하기 위해 어드레스 1200을 호출하도록 운영체제에 의해서 정해져 있던 IAT의 어드레스 100 코드의 호출 목적지를 어드레스 1000을 호출하도록 수정하고, 어드레스 1000에는 PLAY.dll 대신에 이에 대응하는 인증기능 모듈(54)을 배치하는 것이다.
나머지 필요기능 호출에 대해서도 동일한 과정을 거칠 수 있도록 IAT의 호출 어드레스들을 수정하는 것으로 본 발명의 후킹 단계(S64)가 종료되고 실행 프로그램은 실시할 수 있는 상태로 사용자의 명령 및 작업에 대기하게 된다.
그 다음 실제로 실행 프로그램의 실행시에 어드레스 350에서 PLAY.dll의 호출을 실행하게 되면, 이는 먼저 어드레스 100의 IAT로 점핑한 후(단계 ①), 후킹 모듈의 조작에 의해 조작된 주소인 어드레스 1000을 호출하게 된다(단계 ②).
어드레스 1000의 코드는 PLAY.dll의 엔트리 포인트가 아니라 본 발명의 인증기능 모듈인 MyPLAY.dll의 엔트리 포인트이다. 따라서 인증기능 모듈이 먼저 실행되게 되는데, 여기서 인증기능 모듈은 실행 프로그램에서 호출한 PLAY.dll이란 필요기능 모듈이 인증기능 목록에 기록된 필요기능 모듈, 즉 사용자가 정당하게 구매하거나 획득한 필요기능에 해당하는지를 인증하는 단계(S70)를 수행한다.
확인 방법은, 인증기능 모듈(54)이 도시된 바와 같이 별도로 구분된 인증기능 목록(56)을 호출하고 인증기능 목록이 자신의 목록을 검색하여 MyPLAY.dll이 인증된 것인지를 체크한 후, 그 결과값을 인증기능 모듈(54)에 전달하는 방식(단계 ③)과, 인증기능 목록(56)에 기록된 값을 바탕으로 각 인증기능 모듈(54)내에 미리 그 결과값을 저장하고 인증에 대비하는 방식이 가능하다. 이처럼 미리 인증기능 모듈에 결과값을 저장하는 방식 또한 본 발명의 DSE가 수행한다.
또 다른 확인방법은, 인증기능 모듈(54) 실행시에, 비로소 구매자 클라이언트 시스템(12)이 거래서버(13)에 접속한 후, 거래서버(13)에 인증기능 모듈에 대한 인증 결과값을 요청하여 그 결과값을 통보받는 방식이다. 이 경우에는 인증기능 목록(54)이 처음부터 구매자 클라이언트 시스템(12)에 전달되지 않고 다만 거래서버(13)의 거래DB 모듈(33)에만 저장되어 있다가 호출에 응답하는 방식으로서 해킹에는 가장 안전한 방식이다.
호출된 필요기능 모듈이 인증기능 목록에 포함되어 있다고 판단되면 인증기능 모듈(54)은 비로소 PLAY.dll의 주소인 어드레스 1200 코드를 호출하여 이 기능이 실행되도록 하고(단계 ④), PLAY.dll은 실행 후 인증기능 모듈(54)을 거쳐 제어권을 다시 실행 프로그램으로 넘겨준다(단계 ⑤).
다음 실행 프로그램 코드의 실행 중에 어드레스 480의 코드를 실행하면서 필요기능 PRINT.dll의 호출을 처리한다면, IAT의 어드레스 200으로 점핑(단계 ⑥)은 다시 DSE에 의해 조작된 주소인 어드레스 1100을 호출하여(단계 ⑦) 이 PRINT 기능 모듈에 대한 인증과정을 거치게 된다. 이 때 역시 동일한 인증과정(단계 ⑧)을 거치는데, 그 결과값이 부정적이면 어드레스 1800에 위치한 PRINT.dll은 실행되지 않고 대신 에러값을 내놓거나 무반응하면서 실행 프로그램의 다음 명령을 실행하도록 조치된다(단계 ⑨).
이러한 과정을 통하여 본 발명의 DSE는 구매자가 인증받지 못한 필요기능들을 수행되지 못하도록 함으로써 본 발명의 거래방식을 안전하게 수행할 수 있도록 하는 것이다.
도 8은 본 발명의 또 다른 실시예를 도시한 것으로서, 본 발명의 전술한 작동방식을 무력화시키고자 하는 해킹에 대비한 방식이다.
본 발명의 작동 방식을 이해한 해커라면, 본 발명의 DSE의 후킹 모듈과 유사한 후킹 모듈을 만들 수 있다. 즉, 해커 모듈은 본 발명의 DSE가 한 것처럼 실행 프로그램의 IAT 호출 어드레스를 수정함으로써 본 발명의 DSE를 무력화시킬 수 있는데, 가령 본 발명의 DSE가 IAT를 도 7b에 도시된 것처럼 "100: PLAY : 1200" 을 "100: PLAY : 1000"으로 수정하면 해커 모듈이 다시 이를 원래의 "100: PLAY : 1200"으로 수정하여 인증기능 모듈을 거치지 않도록 하는 것이다.
이에 대한 대응책으로 도 8의 실시예는 DSE에 문자암호화 모듈(81)을 더 구비한다. 즉, 본 발명의 DSE는 IAT 및 DLL에 기록된 "PLAY" 나 "PRINT"라는 텍스트데이터를 찾아내어 조작해야 할 어드레스를 수정하는데, 해커 모듈도 대부분은 이러한 기능모듈의 이름을 찾아내어 그 부분을 수정할 것이므로, 문자암호화 모듈을 이용하여 후킹 단계 후에 이 필요기능 모듈들의 이름인 텍스트데이터를 지워버리거나 엉뚱한 이름으로 변경함으로써 어드레스 수정위치를 찾지 못하도록 하는 것이다.
가령, 도 8에 도시된 것처럼, 본 발명의 DSE가 IAT에서 필요한 기능 모듈인 "PLAY" 나 "PRINT"라는 텍스트를 찾아 그 호출 어드레스들을 인증기능 모듈의 어드레스로 수정한 다음, 문자암호화 모듈(81)이 이 기능모듈들의 이름이 기록된 주메모리상의 모든 부분을 검색하여 이를 완전히 다른 이름인 "Ft1", "Ft2" 등으로 바꾸는 것이 그 한 예이다.
해커모듈이 DSE가 후킹하기 전에 어드레스를 바꾸는 것은 그 뒤의 DSE에 의해 다시 번지수가 바뀔 것이므로 아무런 소용이 없고 따라서 반드시 DSE가 작동한 후에 접근해야 하는데, 문자암호화 모듈의 작동에 의해 해커모듈이 필요한 기능모듈의 이름들을 찾을 수 없으므로 결국 해킹은 실패하게 되는 것이다.
본 발명은 온라인에서 디지털데이터를 거래하는 방법을 제공하는 것으로서, 본 발명을 이용하여 다양한 디지털데이터를 다양한 옵션으로 거래할 수 있게 된다.
또한 본 발명은 디지털데이터의 안전한 실행을 도모함으로써 디지털데이터의 유통에 가장 큰 문제로 부각되는 해킹이나 불법복제 등을 방지할 수 있도록 구성되어 있다.
본 발명을 이용하면 온라인 디지털데이터 거래에 건전하고 다양한 상거래 질서를 확립할 수 있으므로, 좀 더 발달된 디지털데이터가 제작될 수 있는 사회적, 기술적 분위기를 형성할 수 있게 된다.
본 발명의 이러한 기술적 사상을 이해한 당업자라면 본 발명의 범주내에서 다양한 변형이 가능한데, 가령 상기 인증 단계를 하나 이상 설정한 후, 필요할 때마다 인증하는 것 등이다. 따라서 본 발명은 상기 실시예에 국한되지 않으며 이하의 청구범위에 의해 그 권리범위가 정해진다.
도 1은 본 발명의 시스템을 도시한 도면.
도 2는 거래 주체별로 본 발명이 작동하는 단계를 도시한 도면.
도 3은 거래서버의 구성을 보여주는 모식도.
도 4는 본 발명의 거래단계를 보여주는 흐름도.
도 5는 DSE가 설치된 구매자 클라이언트 시스템의 구성을 보여주는 모식도.
도 6은 본 발명의 DSE에 의한 디지털데이터의 실행단계를 보여주는 흐름도.
도 7은 본 발명의 후킹 단계를 나타내는 모식도.
도 8은 해캉을 방지하기 위한 본 발명의 또 다른 실시예를 나타낸 도면.
Claims (9)
- 파일식별자 판단 모듈, 암호화/복호화 모듈, 후킹 모듈 및 인증기능 모듈을 포함한 사용자의 컴퓨터 시스템이,암호화된 디지털 데이터 및 그에 연동되어 암호화된 인증기능 목록을 원거리에 위치한 소정 서버로부터 다운로드받는 단계;상기 파일식별자 판단모듈이 상기 암호화된 디지털 데이터를 인지하는 단계;상기 암호화/복호화 모듈이 상기 암호화된 디지털 데이터를 상기 컴퓨터 시스템의 주메모리상에서 복호화하는 단계;상기 복호화된 디지털 데이터를 실행할 수 있는 실행 프로그램을 상기 주메모리상에 로딩하는 단계;상기 로딩된 실행 프로그램을 분석하여 필요로 하는 필요기능 모듈을 인지하는 단계;상기 필요기능 모듈의 작동여부를 인증하는 인증기능 모듈을 상기 주메모리상에 로딩하는 단계;상기 후킹 모듈이 상기 실행 프로그램에서 상기 필요기능 모듈을 호출하는 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계;상기 실행 프로그램이 상기 복호화된 디지털 데이터를 실행하는 중 상기 필요기능 모듈을 호출할 경우, 상기 인증기능 모듈을 필요기능 모듈 대신 실행하는 단계;상기 인증기능 모듈의 실행 전에, 상기 암호화된 인증기능 목록을 상기 암호화/복호화 수단으로 복호화하여 주메모리에 로딩하는 단계;상기 인증기능 모듈이 상기 호출된 필요기능 모듈이 상기 인증기능 목록에 속하는지를 판단하는 단계;상기 호출된 필요기능 모듈이 상기 인증기능 목록에 속한다고 판단하면 상기 인증기능 모듈에서 상기 응용 프로그램이 호출한 필요기능 모듈을 호출하여 실행하고, 속하지 않는다고 판단되면 상기 호출된 필요기능 모듈을 실행하지 않는 단계;를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 제1항에 있어서, 상기 암호화된 디지털 데이터를 컴퓨터 시스템의 주메모리상에서 복호화하는 단계 이전에,원거리에 위치한 서버 시스템에 접속하여 사용자 인증을 받는 단계; 및,정당한 사용자로 인증되면 상기 암호화된 디지털 데이터를 복호화할 수 있는 복호화 수단을 전송받는 단계; 를추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 제1항에 있어서, 상기 실행 프로그램 코드는 실행에 필요한 필요기능 모듈을 리스트한 IAT(Import Address table)를 포함하여 구성되고,상기 로딩된 실행 프로그램을 분석하여 필요로 하는 필요기능 모듈을 인지하는 단계;는 상기 IAT을 분석하여 인지하는 단계인 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 제3항에 있어서, 상기 실행 프로그램 코드는 실행에 필요한 필요기능 모듈을 리스트하고 이를 호출하는 IAT(Import Address table)를 포함하여 구성되고,상기 실행 프로그램에서 상기 필요기능 모듈을 호출하는 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계; 는 상기 IAT의 호출 목표 어드레스를 상기 인증기능 모듈의 엔트리 포인트 어드레스로 변경하는 단계인 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 제1항에 있어서, 상기 인증기능 모듈의 실행에서 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 인증기능 목록을 주메모리에 로딩하는 단계; 이전에,원거리에 위치한 서버 시스템에 접속하여 사용자 인증을 받는 단계; 및,정당한 사용자로 인증되면 상기 인증된 인증기능 목록을 상기 서버 시스템으로부터 전송받는 단계;를 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 제1항에 있어서, 상기 인증기능 목록은 암호화된 파일이고,상기 인증기능 모듈의 실행에서 상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 인증기능 목록을 주메모리에 로딩하는 단계; 이전에,원거리에 위치한 서버 시스템에 접속하여 사용자 인증을 받는 단계; 및,정당한 사용자로 인증되면 상기 인증기능 목록을 복호화할 수 있는 복호화 수단을 상기 서버 시스템으로부터 전송받는 단계;를 추가로 포함하는 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 제1항에 있어서, 상기 필요기능 모듈은 화면보기, 화면저장, 화면프린팅, 파일편집, 파일저장, 파일전송, 파일프린팅, 파일암호화, 파일복호화, 사운드실행, 동영상실행, 프로그램실행 중 적어도 어느 하나의 기능을 수행하는 모듈인 것을 특징으로 하는 컴퓨터프로그램 실행방법.
- 제1항에 있어서, 상기 디지털 데이터는 실행프로그램 코드, 영상 데이터, 텍스트 데이터, 소리 데이터, 정지화면 데이터, 이미지데이터 중 적어도 어느 하나 이상의 데이터를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 실행방법.
- 암호화된 디지털 데이터를 컴퓨터 시스템의 주메모리상에서 복호화하는 복호화 수단;주메모리상에 로딩된 상기 디지털데이터를 실행할 수 있는 실행 프로그램을 분석하여 필요로 하는 필요기능 모듈을 인지하는 필요기능 모듈 인식수단;상기 필요기능 모듈의 작동여부를 인증하는 인증기능 수단;상기 주메모리상에 로딩된 실행 프로그램의 실행 코드 중 상기 필요기능 모듈을 호출하는 코드의 호출목표 어드레스를 상기 인증기능 수단의 엔트리 포인트 어드레스로 변경하는 후킹수단;상기 복호화된 디지털 데이터에 대해 사용 가능하다고 인증된 인증기능 목록;상기 필요기능 모듈이 상기 인증기능 목록에 속하는지를 판단하는 판단수단; 을 포함하는 것으로서,상기 실행 프로그램에 의해 소정의 필요기능 모듈이 호출되면 상기 판단수단에 의해 상기 호출된 필요기능 모듈이 인증기능 목록에 포함되어 있는지를 판단하고 이로부터 포함되어 있다고 판단되면 상기 인증수단을 거쳐 상기 소정의 필요기능 모듈이 호출되고, 포함되어 있지 않다고 판단되면 상기 소정의 필요기능 모듈을 호출하지 않는 것을 특징으로 하는 컴퓨터 프로그램을 기록한 기록매체.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040028783A KR100475479B1 (ko) | 2004-04-26 | 2004-04-26 | 디지털데이터의 실행방법 및 그 시스템 |
JP2005128545A JP4504246B2 (ja) | 2004-04-26 | 2005-04-26 | デジタルデータの取引方法及びそのシステム |
US11/114,690 US20050251483A1 (en) | 2004-04-26 | 2005-04-26 | Transaction method of digital data and system thereof |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040028783A KR100475479B1 (ko) | 2004-04-26 | 2004-04-26 | 디지털데이터의 실행방법 및 그 시스템 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR100475479B1 true KR100475479B1 (ko) | 2005-03-14 |
Family
ID=37228419
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020040028783A KR100475479B1 (ko) | 2004-04-26 | 2004-04-26 | 디지털데이터의 실행방법 및 그 시스템 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100475479B1 (ko) |
-
2004
- 2004-04-26 KR KR1020040028783A patent/KR100475479B1/ko active IP Right Grant
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8527361B2 (en) | Service for adding in-application shopping functionality to applications | |
US9875312B2 (en) | System and devices for digital media distribution | |
AU2006236243B2 (en) | Network commercial transactions | |
JP2009534739A (ja) | モバイルモジュールを使用する商取引のための認証 | |
US20060190410A1 (en) | Digital content distribution systems and methods | |
US20020106081A1 (en) | Multiple registration system and method of using the same account for registering different device to a DRC server | |
US20080314974A1 (en) | Data storage and access systems | |
US20020146122A1 (en) | Digital media distribution method and system | |
US20050273805A1 (en) | Methods and apparatus for a title transaction network | |
CN104081405A (zh) | 具有多设备安全应用程序集成的内容提供器 | |
WO2011137067A1 (en) | Application products with in-application subsequent feature access using network-based distribution system | |
JP2013061992A (ja) | ネットワークベースの配布システムを使用して後で特徴にインアプリケーションアクセスするアプリケーションプロダクト | |
CN101036099A (zh) | 数字权限许可的集中管理 | |
JP4898699B2 (ja) | ライセンスセントリックでコンテンツを使用するシステムおよび共有ライセンスレポジトリ | |
US20130124696A1 (en) | Application products with in-application subsequent feature access using network-based distribution system | |
US20130067602A1 (en) | Copyrights with Post-Payments for P2P File Sharing | |
KR100775876B1 (ko) | 디지털데이터의 거래방법 | |
KR100475479B1 (ko) | 디지털데이터의 실행방법 및 그 시스템 | |
JP4852550B2 (ja) | ライセンスされたコンテンツをレンダリングする方法 | |
KR20030075948A (ko) | 디알엠 환경에서 플래쉬 컨텐츠를 사용하기 위한 범용솔루션의 제공 방법 및 시스템 | |
JP4504246B2 (ja) | デジタルデータの取引方法及びそのシステム | |
JP6047076B2 (ja) | Drmシステムを備える装置及びライセンスリポジトリ | |
WO2001065796A2 (en) | Digital data distribution method and system | |
US20210264390A1 (en) | Electronic content utilization system, computer-readable recording medium, and electronic content utilization method | |
AU2011202945B2 (en) | Network commercial transactions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated 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: 20130225 Year of fee payment: 9 |
|
FPAY | Annual fee payment |
Payment date: 20140228 Year of fee payment: 10 |
|
FPAY | Annual fee payment |
Payment date: 20190102 Year of fee payment: 15 |