KR100855329B1 - 소프트웨어 보안 방법 및 그 장치 - Google Patents

소프트웨어 보안 방법 및 그 장치 Download PDF

Info

Publication number
KR100855329B1
KR100855329B1 KR1020070083251A KR20070083251A KR100855329B1 KR 100855329 B1 KR100855329 B1 KR 100855329B1 KR 1020070083251 A KR1020070083251 A KR 1020070083251A KR 20070083251 A KR20070083251 A KR 20070083251A KR 100855329 B1 KR100855329 B1 KR 100855329B1
Authority
KR
South Korea
Prior art keywords
file
virtual
executable file
software
security
Prior art date
Application number
KR1020070083251A
Other languages
English (en)
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 KR1020070083251A priority Critical patent/KR100855329B1/ko
Priority to US12/674,345 priority patent/US8549580B2/en
Priority to PCT/KR2008/003612 priority patent/WO2009025444A1/en
Application granted granted Critical
Publication of KR100855329B1 publication Critical patent/KR100855329B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs

Abstract

소프트웨어 보안 방법 및 그 장치가 개시된다. 상기 소프트웨어 보안 방법은 사용자 단말기에 저장된 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일이 실행되는 단계 및 실행 결과 상기 적어도 하나의 실행 파일에 대응되는 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 데이터 파일에 대응되는 적어도 하나의 가상 데이터 파일은 상기 사용자 단말기의 유저 영역에 설치되고, 상기 적어도 하나의 실행 파일, 상기 적어도 하나의 데이터 파일, 및 상기 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 실행 파일을 제어하기 위한 제어 모듈은 상기 사용자 단말기의 보안 영역에 설치되는 단계를 포함한다.

Description

소프트웨어 보안 방법 및 그 장치{Method and apparutus for providing software security}
본 발명은 소프트웨어의 보안 방법에 관한 것으로, 보다 상세하게는 소프트웨어를 사용자의 단말기에 설치한 경우 무단 사용 또는 복제를 방지할 수 있는 ㅅ소프트웨어의 보안 방법 및 그 장치에 관한 것이다.
도 1은 종래의 소프트웨어 설치 방법을 설명하기 위한 도면이다.
도 1를 참조하면, 종래의 소프트웨어 배포자는 상기 소프트웨어를 구성하는 복수의 파일들(10)을 인스톨 파일 제작 도구(20)를 이용하여 설치파일(예컨대, 셋업(setup)파일, 30)로 생성할 수 있다.
상기 소프트웨어의 사용자는 생성된 상기 설치파일(30)을 실행(예컨대, 더블클릭 또는 엔터)하고, 상기 사용자가 소정의 유저 영역(예컨대, c:\program files\~)을 지정하면, 지정된 상기 유저 영역에 상기 복수의 파일들(10)은 설치(또는 저장)가 된다. 여기서, 유저 영역이라 함은 사용자가 사용자 단말기에 접근이 가능하고, 소정의 파일들을 임의로 저장할 수 있는 모든 로컬 디스크 영역을 포함하는 의미로 사용된다.
물론, 상기 복수의 파일들(10) 중 일부 파일은 사용자가 지정한 경로가 아닌 별도의 영역(예컨대, OS(operating system)의 system 폴더)에 저장될 수도 있다.
도 1에서 설명한 바와 같이, 종래의 소프트웨어의 설치 방법에 있어서 상기 소프트웨어의 보안 방법으로는 널리 공지되어 있듯이, 상기 복수의 파일들(10)을 설치하는 과정에서 소정의 인증절차(예컨대, 시리얼 넘버(serial number)의 입력)을 통해 정당한 사용자인지를 검증하는 방법이 있다.
하지만, 종래의 방법은 소프트웨어의 설치시에만 간단한 인증절차를 거칠 뿐 더이상의 보안 솔루션(solution)을 제공하지 못하며, 그나마도 크래킹(cracking) 또는 시리얼 넘버 등의 유출로 인해 제 기능을 발휘하지 못하고 있는 실정이다.
또한, 일부 설치된 파일들은 사용자가 상기 설치파일(30)을 통하지 않고도 상기 설치파일(30)을 통해 상기 복수의 파일들(10)이 설치되는 경로를 알 수 있다면, 상기 복수의 파일들(10)을 무단으로 복제하여 다른 시스템 또는 다른 디바이스(device)에 설치하는 경우에 상기 소프트웨어를 정상적으로 사용할 수도 있다.
또한, 설치된 상기 소프트웨어의 사용권한(예컨대, 실행)을 제어하기 위한 방법으로는 단순히 만료기간(expired date)을 이용한 실행의 제어에 그치고 있다. 하지만, 상기 소프트웨어의 배포자는 상기 소프트웨어의 사용권한을 좀 더 다양한 기준(예컨대, 사용횟수, 실행시에 사용자 인증 등)으로 제어할 필요가 있다.
따라서, 소프트웨어 설치시뿐만 아니라, 상기 소프트웨어가 설치된 후에 상기 소프트웨어가 실행될 때에도 다양한 보안 방법을 제공하며, 설치된 소프트웨어의 무단복제 및/또는 사용을 막을 수 있는 소프트웨어 보안 방법 및 그 장치가 요 구된다.
따라서 본 발명이 이루고자 하는 기술적인 과제는 소프트웨어 설치시뿐만 아니라, 상기 소프트웨어가 설치된 후에 상기 소프트웨어가 실행될 때에도 다양한 보안 방법을 제공하며, 설치된 소프트웨어의 무단복제 및/또는 사용을 막을 수 있는 소프트웨어 보안 방법 및 그 장치를 제공하는 것이다.
또한, 본 발명이 이루고자 하는 다른 기술적인 과제는 소프트웨어의 배포자가 상기 소프트웨어를 구성하는 파일들을 설치파일로 생성할 때 소정의 보안 기능을 설정할 수 있도록 하는 소프트웨어 보안 방법 및 그 장치를 제공하는 것이다.
상기 기술적 과제를 달성하기 위한 소프트웨어 보안 방법은 사용자 단말기에 저장된 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일이 실행되는 단계, 및 실행 결과 상기 적어도 하나의 실행 파일에 대응되는 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 데이터 파일에 대응되는 적어도 하나의 가상 데이터 파일은 상기 사용자 단말기의 유저 영역에 설치되고, 상기 적어도 하나의 실행 파일, 상기 적어도 하나의 데이터 파일, 및 상기 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 실행 파일을 제어하기 위한 제어 모듈은 상기 사용자 단말기의 보안 영역에 설치되는 단계를 포함한다.
상기 소프트웨어 보안 방법은 상기 유저 영역에 설치된 상기 적어도 하나의 가상 실행 파일 중 제1가상 실행 파일이 실행되는 단계 및 실행 결과 상기 보안 영역에 설치된 상기 제1가상 실행 파일에 대응되는 제1실행 파일이 실행되는 단계를 더 포함할 수 있다.
상기 소프트웨어 보안 방법은 상기 제1가상 실행 파일이 실행되면, 사용자 인증, 사용 횟수 인증, 또는 사용 기간 인증 중 적어도 하나를 실행하는 단계를 더 포함할 수 있다.
상기 소프트웨어 보안 방법은 상기 제1가상 실행 파일이 실행되면, 상기 제어 모듈이 활성화되는 단계를 더 포함할 수 있다.
상기 제어 모듈은 상기 제1실행 파일이 상기 유저 영역에 설치된 상기 적어도 하나의 가상 데이터 파일 중 제1가상 데이터 파일을 참조하기 위한 메시지를 출력하는 경우, 상기 메시지를 후킹하고, 상기 제1가상 데이터 파일에 대응되는 제1데이터 파일에 대한 경로를 상기 제1실행 파일로 리턴하도록 제어할 수 있다.
상기 보안 영역은 가상 드라이브일 수 있다.
상기 설치 파일은 상기 설치 파일을 실행하면 상기 가상 드라이브를 자동으로 마운트 하기 위한 가상 디바이스 드라이버를 포함할 수 있다.
상기 보안영역은 상기 설치 파일을 생성시에 설정되는 적어도 하나의 보안기능에 대한 정보를 포함하는 설정 파일 및 상기 적어도 하나의 보안기능에 대응되는 적어도 하나의 보안모듈을 더 포함하며, 상기 제어 모듈은 상기 설정 파일에 저장된 정보에 기초하여 상기 적어도 하나의 보안기능을 수행하도록 상기 적어도 하나 의 보안모듈을 제어할 수 있다.
상기 적어도 하나의 보안기능은 화면보호, 화면 캡춰 방지, 또는 클립보드제어 기능 중 적어도 하나를 포함할 수 있다.
상기 기술적 과제를 달성하기 위한 소프트웨어 보안 방법은 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일을 생성하기 위해, 배포자로부터 보안 기능에 대한 선택 정보 및 선택된 보안 기능에 대한 설정 정보를 수신하는 단계 및 상기 선택된 보안 기능에 대응되는 보안 모듈, 상기 설정 정보를 포함하는 설정 파일, 및 상기 보안 기능을 제어하기 위한 제어모듈을 상기 적어도 하나의 실행 파일과 상기 적어도 하나의 데이터 파일과 함께 패키징하여 상기 설치 파일을 생성하는 단계를 포함한다.
상기 소프트웨어 보안 방법은 상기 제어모듈이 상기 적어도 하나의 실행 파일이 실행되는 중에 상기 설정 정보에 상응하는 이벤트 발생시 상기 이벤트에 상응하는 보안 모듈을 활성화하는 단계를 더 포함할 수 있다. 상기 소프트웨어 보안 방법은 컴퓨터로 판독 가능한 기록매체에 저장될 수 있다.
상기 기술적 과제를 달성하기 위한 소프트웨어 보안 장치는 프로그램을 저장하기 위한 메모리 및 상기 프로그램을 수행하기 위한 CPU를 구비하며, 상기 프로그램은 상기 CPU의 제어하에 사용자 단말기에 저장된 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일이 실행되면, 상기 적어도 하나의 실행 파일에 대응되는 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 데이터 파일에 대응되는 적어도 하나의 가상 데이터 파일은 상기 사용자 단 말기의 유저 영역에 설치하고, 상기 적어도 하나의 실행 파일, 상기 적어도 하나의 데이터 파일, 및 상기 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 실행 파일을 제어하기 위한 제어 모듈은 상기 사용자 단말기의 보안 영역에 설치한다.
상기 프로그램은 상기 유저 영역에 설치된 상기 적어도 하나의 가상 실행 파일 중 제1가상 실행 파일이 실행되면, 상기 보안 영역에 설치된 상기 제1가상 실행 파일에 대응되는 제1실행 파일이 실행되도록 제어할 수 있다.
상기 프로그램은 상기 제1가상 실행 파일이 실행되면, 상기 제어 모듈이 활성화되도록 제어할 수 있다.
상기 제어 모듈은 상기 제1실행 파일이 상기 유저 영역에 설치된 상기 가상 데이터 파일 중 제1가상 데이터 파일을 참조하기 위한 메시지를 출력하는 경우, 상기 메시지를 후킹하고, 상기 제1가상 데이터 파일에 대응되는 제1데이터 파일에 대한 경로를 상기 제1실행 파일에 리턴하도록 제어할 수 있다.
상기 기술적 과제를 달성하기 위한 소프트웨어 보안 장치는 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일을 생성하기 위해, 배포자로부터 보안 기능에 대한 선택 정보 및 선택된 보안 기능에 대한 설정 정보를 수신하기 위한 인터페이스부 및 상기 선택된 보안 기능에 대응되는 보안 모듈, 상기 설정 정보를 포함하는 설정 파일, 및 상기 보안 기능을 제어하기 위한 제어모듈을 상기 적어도 하나의 실행 파일과 상기 적어도 하나의 데이터 파일과 함께 패키징하여 상기 설치 파일을 생성하기 위한 패키징 모듈을 포함한다.
상기 제어모듈은 상기 적어도 하나의 실행 파일이 실행되는 도중에 상기 설 정 정보에 상응하는 이벤트 발생시 상기 이벤트에 상응하는 보안 모듈을 활성화할 수 있다.
상술한 바와 같이 본 발명에 따른 소프트웨어 보안 방법 및 그 장치는 소프트웨어 설치시뿐만 아니라, 상기 소프트웨어가 설치된 후에 상기 소프트웨어가 실행될 때에도 다양한 보안 방법을 제공하며, 설치된 소프트웨어의 무단복제 및/또는 사용을 막을 수 있는 효과가 있다.
또한, 소프트웨어의 배포자가 상기 소프트웨어를 구성하는 파일들을 설치파일로 생성할 때 소정의 보안 기능을 설정할 수 있도록 하는 효과가 있다.
또한, 소프트웨어의 설치시에만 사용권한을 제어하는 것이 아니라 사용자가 소프트웨어를 실행할 때마다, 다양한 기준으로 사용권한을 제어할 수 있으므로, 다양한 판매모델 및 유료정책의 적용이 가능한 효과가 있다.
또한, 사용자 입장에서는 보안 영역을 설정하기 위해 사용자가 별도의 작업을 할 필요가 없으며, 설치 파일을 실행하는 것만으로 자동으로 상기 보안 영역이 마운트(mount)되고, 설치 결과 유저영역에 설치되는 파일들도 기존의 소프트웨어 설치방법과 유사하므로 사용자는 기존의 소프트웨어 설치방법과 큰 차이를 느끼지 못하므로 사용자는 편의성을 느낄 수 있는 효과가 있다.
본 발명과 본 발명의 동작상의 이점 및 본 발명의 실시에 의하여 달성되는 목적을 충분히 이해하기 위해서는 본 발명의 바람직한 실시예를 예시하는 첨부 도 면 및 첨부 도면에 기재된 내용을 참조하여야만 한다.
또한, 본 명세서에 있어서는 어느 하나의 구성요소가 다른 구성요소로 데이터를 '전송'하는 경우에는 상기 구성요소는 상기 다른 구성요소로 직접 상기 데이터를 전송할 수도 있고, 적어도 하나의 또 다른 구성요소를 통하여 상기 데이터를 상기 다른 구성요소로 전송할 수도 있는 것을 의미한다.
반대로 어느 하나의 구성요소가 다른 구성요소로 데이터를 '직접 전송'하는 경우에는 상기 구성요소에서 다른 구성요소를 통하지 않고 상기 다른 구성요소로 상기 데이터가 전송되는 것을 의미한다.
이하, 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 설명함으로써, 본 발명을 상세히 설명한다. 각 도면에 제시된 동일한 참조부호는 동일한 부재를 나타낸다.
도 2는 본 발명의 실시 예에 따른 소프트웨어 보안 방법을 설명하기 위한 데이터 흐름을 나타낸다.
도 2를 참조하면, 소프트웨어 배포자(또는 판매자)의 시스템(예컨대, 컴퓨터 또는 서버, 미도시)에는 상기 소프트웨어를 구성하는 복수의 파일들(1)이 저장되어 있을 수 있다.
상기 복수의 파일들(1)은 상기 소프트웨어를 구성하는 파일들의 일부분뿐만 아니라, 상기 소프트웨어를 구성하는 파일들을 포함하는 폴더를 포함하는 의미로 사용될 수 있다.
상기 복수의 파일들(1) 중에는 상기 소프트웨어를 사용자 단말기에서 실행시 키도록 하는 적어도 하나의 실행 파일과 상기 적어도 하나의 실행 파일이 상기 소프트웨어를 구동하는데 필요한 데이터 파일 또는 라이브러리 등의 데이터 파일이 존재할 수 있다.
본 발명의 실시 예에 따른 소프트웨어 보안 방법은 상기 복수의 파일들(1)을 패키징하여 설치 파일을 생성할 수 있는 인스톨 파일 제작 도구(2)를 제공할 수 있으며, 상기 소프트웨어 배포자는 상기 인스톨 파일 제작 도구(2)를 이용하여 상기 복수의 파일들(1)을 패키징할 수 있다. 상기 인스톨 파일 제작 도구(2)는 인스톨 파일(예컨대, setup0.exe, 3)을 생성하기 위한 종래의 도구(예컨대, Install Shield 등)에서 제공하는 패키징 기능뿐만 아니라, 패키징시에 배포자가 원하는 소정의 보안기능을 추가적으로 제공할 수 있다.
상기 인스톨 파일 제작 도구(2)는 소프트웨어 배포자로부터 상기 배포자의 시스템에 있는 다수의 파일들 중 상기 소프트웨어를 구성하는 상기 복수의 파일들(1)을 선택하는 정보를 소정의 행위(예컨대, 클릭 및/또는 드래그)를 통해 제공받는다.
또한, 상기 배포자는 상기 인스톨 파일 제작 도구(2)를 통하여 상기 복수의 파일들(1)을 선택하고, 상기 복수의 파일들(1) 중 적어도 일부분의 파일에 보안기능을 설정할 수 있다.
또한, 보안 기능이 설정된 상기 적어도 일부분의 파일에 대한 정보 및 상기 보안 기능에 대한 정보는 설정 파일(예컨대, info.ini)에 저장될 수 있다. 그리고, 상기 보안 기능 각각을 수행하기 위한 보안 모듈(예컨대, *.dll 등)과 상기 설정 파일은 후술하는 바와 같이 사용자 단말기의 보안영역에 설치될 수 있다.
예컨대, 상기 보안 기능은 도 2에 도시된 바와 같이 화면보호 기능, 화면캡춰방지 기능, 또는 클립보드 보안 기능 등과 같이 다양할 수 있으며, 본 발명의 권리범위가 이에 한정되지는 않는다.
예컨대, 상기 소프트웨어 배포자는 상기 복수의 파일들(1)중 파일1이 디스플레이 될 때에는 화면캡춰 방지 기능을 수행토록 설정할 수 있다. 또는, 상기 소프트웨어 배포자는 상기 복수의 파일들(1)중 파일2가 실행되는 도중에는 클립보드기능을 디스에이블 시키도록 설정할 수 있다.
이와 같은 보안기능의 설정 정보 및 보안을 설정할 파일들에 대한 리스트는 전술한 바와 같이 설정 파일에 저장될 수 있다. 물론, 보안을 설정할 파일에 대한 리스트와 상기 보안기능의 설정정보는 별도의 파일에 저장될 수도 있다.
상기 각각의 보안 기능을 수행하는 보안 모듈들(예컨대, 1.dll, 2.dll, 또는 3.dll 등)은 상기 인스톨 파일 제작 도구(2)를 통해 상기 복수의 파일들(1)과 함께 패키징될 수 있다.
이렇게 패키징 된 인스톨 파일(예컨대, setup0.exe, 3)은 도 2에 도시된 바와 같이, 상기 복수의 파일들(1), 상기 보안 모듈들(예컨대, 1.dll, 2.dll, 또는 3.dll 등), 및 상기 설정 파일(예컨대, info.ini)을 포함할 수 있다.
본 발명의 실시 예에 따른 소프트웨어 보안 방법은 이미지 생성 도구(4)를 통해 생성된 상기 인스톨 파일(3)에 상기 소프트웨어 보안 방법을 수행하기 위한 소정의 에이전트(agent, 예컨대, 제어모듈 등)를 더 포함시킬 수 있다. 또한, 상기 소프트웨어의 사용권한에 대한 정보를 가지는 정책 파일들 및/또는 후술할 보안영역을 마운트하기 위한 VDD(Virtual Device Driver) 등을 더 포함시킬 수 있다.
상기 이미지 생성 도구(4)는 생성된 상기 인스톨 파일(3)과 제어모듈(controller), 정책파일, 또는 VDD 중 적어도 하나를 포함하여 설치 파일(5)로 생성할 수 있다. 또한, 상기 설치 파일(5)에는 후술할 바와 같이 본 발명의 실시 예에 따른 소프트웨어 보안 방법에 따라 유저 영역과 보안 영역 각각에 상응하는 파일들을 설치하기 위한 스플리터(splitter, 미도시) 및/또는 각종 헤더(header)가 더 포함될 수 있음은 물론이다. 또한, 상기 설치 파일은 가상 드라이브 이미지 파일일 수 있다.
본 출원인이 출원한 등록특허 "가상디스크 구동방법 및 이를 위한 기록매체"(등록번호 10-0692964)에는 가상 디스크 이미지와 VDD가 하나로 패키징 된 파일이 실행되는 경우, 자동으로 VDD가 사용자 단말기에 설치되고 상기 가상 디스크 이미지가 마운트 되는 가상 디스크 구동방법에 대해 상세히 개시되어 있으며, 상기 등록특허 "가상디스크 구동방법 및 이를 위한 기록매체"(등록번호 10-0692964)의 명세서에 개시된 발명 및 내용은 본 명세서의 레퍼런스로 포함된다.
결국, 상기 설치 파일은 가상 드라이브(또는 디스크) 이미지 파일로 생성될 수 있으며, 상기 이미지 생성 도구(4)는 상기 설치 파일(5)을 이러한 가상 드라이브 이미지 파일로 생성하기 위한 도구로 사용될 수 있다.
상기 설치 파일(5)에는 상기 인스톨 파일(3) 및 본 발명의 실시 예에 따른 소프트웨어 보안 방법을 수행하기 위한 제어모듈과 사용권한을 규정하기 위한 적어 도 하나의 정책 파일, 및/또는 등록특허에서 개시된 바와 같이 VDD를 포함할 수 있다.
결국, 소프트웨어 배포자는 상기 설치 파일(5)을 소정의 저장장치(예컨대, 디스크, CD 등)을 통해 사용자에게 배포하거나, 인터넷을 통해 내려받기 가능한 형태로 사용자에게 제공할 수 있다.
사용자는 상기 설치 파일(5)을 사용자 단말기에 저장하거나, 인터넷을 통해 내려받는 경우 임시로 저장한 상태에서 상기 설치 파일(5)을 실행할 수 있다.
상기 설치 파일(5)이 실행되는 경우, 본 발명의 실시 예에 따른 소프트웨어 보안 방법의 핵심적인 기술적 사상은 기본적으로 상기 사용자 단말기의 유저 영역에는 도 1에서 설명한 유저영역(또는 도 3에서 설명할 유저영역)에 가상 파일들을 설치하고, 보안 영역에 실제로 설치될 파일들이 설치된다는 것이다.
여기서 보안 영역이라 함은, 본 출원인이 출원한 한국특허출원(출원번호 10-2007-0060408, 이하 '이전출원')"컨텐츠 보안 방법 및 그 장치"에 기재된 가상 드라이브와 같이 가상 드라이브에 접근하는 사용자 프로세스가 호출하는 함수들을 API 후킹(hooking)을 통해 제어하는 방법을 통해 사용자의 무단 사용 및/또는 복제를 방지할 수 있고, 인가된 프로세스만을 접근시킬 수 있도록 제어가 가능한 모든 영역을 포함할 수 있다. 즉, 이전 출원에 개시된 바와 같이 가상 디스크 드라이브뿐만 아니라, 사용자의 로컬 디스크라도 사용자 프로세스가 접근하기 위해 호출하는 함수들을 체크하여 후킹을 통해 보안 기능을 제공할 수 있는 데이터 저장 가능한 모든 영역을 포함하는 의미로 사용될 수 있다.
이전출원의 명세서에 기재된 발명 및 내용은 본 명세서의 레퍼런스로 포함된다.
또한, 본 명세서에서는 설명의 편의를 위해, 가상 드라이브를 예를 들어 상기 보안 영역을 설명하며, 본 발명의 권리범위가 이에 한정되지는 않는다.
결국, 도 2에 도시된 상기 설치 파일(5)을 사용자가 실행하면 도 3에 도시된 바와 같이 파일들이 설치된다.
상기 설치 파일(5)을 실행하면, 종래의 소프트웨어 설치 방법과 같이 시리얼 넘버를 통해 인증 절차를 거칠 수 있음은 물론이고, 인터넷을 통해 상기 소프트웨어 배포자가 운영하는(또는 상기 소프트웨어 배포자를 위해 운영하는) 웹 페이지로의 등록절차를 거칠 수 있다.
정상적으로 등록절차를 마치는 경우, 상기 웹 페이지의 서버와 상기 소프트웨어를 설치한 단말기 간에는 DRM 솔루션을 통한 사용권한 등의 인증절차를 거칠 수 있으며, 이에 대해서는 후술한다.
도 3은 본 발명의 실시 예에 따른 소프트웨어 보안 방법에 따라 소프트웨어를 설치한 후의 상태를 나타낸다.
도 3을 참조하면, 사용자가 상기 설치 파일(5)을 실행(예컨대, 더블 클릭 또는 엔터 등을 통해)하면, 상기 설치 파일(5)에 포함된 스플리터는 사용자 단말기의 유저영역(100)에는 상기 복수의 파일들(1)에 상응하는 가상의 파일들을 설치하고, 보안영역(200)에는 상기 복수의 파일들(1) 및 제어모듈을 설치할 수 있다.
상기 유저영역(100)에 설치되는 가상의 파일들은 적어도 하나의 가상 실행 파일(예컨대, C0.exe)과 상기 가상 실행 파일의 구동시에 필요한 적어도 하나의 가상 데이터 파일들(예컨대, A0.dat, B0.dat 등)을 포함할 수 있다. 상기 가상 데이터 파일들은 크기가 0 byte인 아무런 내용이 없는 파일들 또는 구현 예에 따라 상기 소프트웨어의 실행과는 관련이 없는 특정 정보를 포함하는 파일들 일 수 있다.
결국, 사용자가 임의로 접근 가능한 유저영역에 설치된 파일은 가상의 파일이므로, 사용자가 무단으로 복사하는 경우에도 소프트웨어는 실행되지 않는다.
또한, 상기 가상 실행 파일은 유저가 실행하는 경우 간접적으로 상기 소프트웨어를 구동시킬 수 있는 파일인 것이 바람직하다. 이에 대해서는 후술한다.
또한, 상기 보안영역(200)에는 상기 복수의 파일들(예컨대, A0.dat, B0.dat, 또는 C.exe 등)이 상기 설치 파일(5)내에 포함된 인스톨 파일(3)을 통해 설치될 수 있으며, 제어모듈 및/또는 전술한 보안 모듈과 설정 파일이 더 설치될 수 있다.
도 3에서는 설명의 편의를 위해 상기 유저영역(100)에 설치되는 파일의 이름과 상기 보안영역(200)에 설치되는 파일의 이름을 달리 표시하였지만, 각각의 파일의 이름이 동일할 수 있음은 물론이다. 또한, 도 2에서 설명한 인스톨 파일(3) 생성 전의 상기 복수의 파일들(1)과도 파일의 이름은 같을 수도 있다. 결국, 사용자의 입장에서는 유저 영역(100)에 종래의 소프트웨어 설치방법에 따라 설치한 것과 동일한 상태로 파일들이 설치된 것과 같은 효과가 있다.
또한, 보안 영역(200)이 가상 디스크 드라이브이고, 상기 설치 파일(5)이 본 출원인의 등록특허에 개시된 바와 같이 자동으로 상기 가상 디스크 드라이브를 마운트 하는 경우에는 이러한 효과는 증진된다.
또한, 본 명세서에서는 설명의 편의를 위해 상기 복수의 파일들(1)의 갯수와 동일한 수의 가상 파일들이 상기 유저 영역(100)에 설치되는 것을 예를 들어 설명하지만 반드시 이에 한정되지는 않음은 물론이다.
도 4는 본 발명의 실시 예에 따른 소프트웨어 보안 방법을 설명하기 위한 개략적인 메모리 상태 및 데이터 흐름을 나타낸다.
도 3 및 도 4를 참조하여, 본 발명의 실시 예에 따른 소프트웨어 보안 방법을 설명하면, 사용자는 상기 소프트웨어를 실행하기 위해 상기 유저영역(100)에 저장된 가상 실행 파일(C0.exe)을 실행할 수 있다.
사용자가 상기 가상 실행 파일(C0.exe)을 실행하면 결국에는 상기 소프트웨어를 구동시키는 실행파일(C.exe)이 실행되기는 하지만, 실제로는 상기 가상 실행 파일(C0.exe)은 상기 소프트웨어의 실행 시의 사용권한의 인증기능을 수행한다.
상기 가상 실행 파일(C0.exe)이 실행되면(S100), 상기 가상 실행 파일(C0.exe)은 상기 보안 영역(200)에 저장된 정책파일에 기초하여 소정의 사용권한 인증기능을 수행할 수 있다(S100).
상기 사용권한 인증기능에는 사용자 자체의 인증, 사용 횟수의 인증, 또는 사용 기간의 인증 중 적어도 하나를 포함할 수 있으나, 이는 예시에 불과하며 본 발명의 권리범위가 이에 한정되지는 않는다.
상기 정책 파일은 소프트웨어 배포자(또는 판매자)에 의해 생성될 수 있으며, 상기 정책팔일은 DRM 시스템에 일반적으로 사용되는 규칙(예컨대, 확장형 권리 마크업 언어(Xrml) 등) 또는 별도로 규정된 규칙에 의해 정의될 수 있다.
또한, 상기 가상 실행 파일(C0.exe)이 실행되면(S100), 사용자 단말기는 전술한 소프트웨어 배포자의 웹 페이지의 서버 또는 별도의 인증 서버와 인터넷을 통해 연결됨으로써 DRM 솔루션을 통해 상기 정책파일 등에 의한 사용자 인증 등이 수행될 수도 있다(S100).
결국, 상기 가상 실행 파일(C0.exe)은 사용자에게는 실행 파일로 보이지만 소프트웨어 실행 시의 인증 기능을 수행하는 역할을 한다. 따라서, 소프트웨어 배포자는 소프트웨어가 설치된 후에도 사용권한의 제어가 가능하게 된다. 그러므로, 상기 설치 파일(5) 자체를 배포하고, 사용자들에게 복사를 가능하게 할 수도 있으므로, 다양한 판매모델 및 유료정책의 적용이 가능할 수 있다.
인증 기능을 수행한 후(S100), 상기 가상 실행 파일(C0.exe)은 상기 보안 영역(200)에 저장된 제어모듈을 활성화할 수 있다(S200).
또한, 상기 가상 실행 파일(C0.exe)은 상기 제어모듈이 실제 실행 파일(C.exe)을 실행시킬 수 있도록 상기 실행 파일(C.exe)의 이름 또는 상기 실행파일(C.exe)의 상기 보안영역(200)에서의 경로에 대한 정보를 상기 제어모듈로 전달할 수 있다. 왜냐하면, 상기 가상 실행 파일(C0.exe)은 상기 실행 파일(C.exe)에 대응되는 가상 파일이므로 원래의 상기 실행 파일(C.exe)에 대한 정보를 포함하고 있을 수 있기 때문이다.
한편, 상기 실행 파일(C.exe)에 대한 정보를 전달받은 상기 제어모듈은 상기 실행 파일(C.exe)을 실행시킬 수 있다(S300).
상기 실행 파일(C.exe)이 실행되는 중에도 상기 제어모듈은 계속 활성화되어 있는 상태로 상기 실행 파일(C.exe)을 제어하는 역할을 수행한다.
예컨대, 상기 실행 파일(C.exe)이 데이터 파일(예컨대, A.dat)을 참조하기 위해 소정의 함수를 호출한 경우(S400), 상기 실행 파일(C.exe)이 참조하고자 하는 데이터 파일(예컨대, A.dat)의 경로에는 실제로는 가상 데이터 파일(A0.dat)이 존재하므로, 상기 제어모듈은 상기 실행 파일(C.exe)로부터 사용자 단말기의 OS(또는 파일시스템)로 호출되는 함수를 API 후킹을 통해 후킹할 수 있다(S500).
그리고, 상기 제어모듈은 후킹한 함수의 경로를 실제 데이터 파일(예컨대, A.dat)에 대한 경로로 변경하여 출력할 수 있다. 따라서, 상기 실행 파일(C.exe)은 정상적으로 데이터 파일(예컨대, A.dat)을 참조할 수 있다.
결국, 상기 실행 파일(C.exe)은 정상적으로 모든 데이터 파일들을 참조할 수 있게 된다.
한편, 상기 실행 파일(C.exe)이 수행되는 동안 전술한 바와 같이, 인스톨 파일 생성시에 설정한 보안 기능의 설정 정보에 상응하는 이벤트(또는 동작)가 발생하면, 즉, 상기 설정 정보에 상응하는 보안 모듈에 접근하고자 한다면 상기 제어모듈은 상기 설정 정보에 상응하는 보안 모듈을 활성화시킴으로써 대응되는 보안 기능을 수행할 수 있다.
예컨대, 소프트웨어 배포자가 A.dat 파일을 참조하는 경우, 화면캡춰를 방지하는 기능을 설정하였다면, 이에 상응하는 정보가 설정파일(예컨대, info.ini)에 저장될 수 있다. 따라서, 상기 제어모듈은 API 후킹을 통해 상기 실행파일이 A.dat 파일을 참조하는 경우를 알 수 있으므로, 상기 설정파일(예컨대, info.ini)에 저장 된 정보에 기초하여 상기 제어모듈은 화면 캡춰 방지 기능에 대응되는 보안모듈(예컨대, 1.dll)을 활성화할 수 있다.
상기 보안 모듈들(예컨대, 클립보드, 화면 캡춰 방지, 화면보호 등) 각각의 기능 역시 인젝션(injection)에 의한 API 후킹을 통해 수행할 수 있다. 예컨대, 상기 보안 모듈들 각각은 상기 보안 영역(200)에 접근하고자 하는 프로세스 또는 OS에서 호출되는 함수(또는 메시지)를 후킹하고, 상기 보안 모듈들 각각에 의해 인정되는 함수들만 상기 보안 영역(200)에 접근시키고 그렇지 않은 함수에 대해서는 널 리턴을 출력함으로써 구현될 수 있다. 상기 보안 모듈들의 상세한 기능에 대해서는 본 출원인의 이전출원인 한국특허출원(출원번호,10-2007-0060408)"컨텐츠 보안 방법 및 그 장치"에 상세히 개시되어 있으므로 상세한 설명은 생략한다.
또한, 본 발명의 실시예에 따른 소프트웨어 보안 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 하드 디스크, 플로피 디스크, 광 데이터 저장장치 등이 있으며, 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다. 그리고 본 발명을 구현하기 위한 기능적인(functional) 프로그램, 코드 및 코드 세그먼트들은 본 발명이 속하는 기술분야의 프로그래머들에 의해 용이하게 추론될 수 있다.
본 발명은 도면에 도시된 일 실시 예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명의 상세한 설명에서 인용되는 도면을 보다 충분히 이해하기 위하여 각 도면의 간단한 설명이 제공된다.
도 1은 종래의 소프트웨어 설치 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 실시 예에 따른 소프트웨어 보안 방법을 설명하기 위한 데이터 흐름을 나타낸다.
도 3은 본 발명의 실시 예에 따른 소프트웨어 보안 방법에 따라 소프트웨어를 설치한 후의 상태를 나타낸다.
도 4는 본 발명의 실시 예에 따른 소프트웨어 보안 방법을 설명하기 위한 개략적인 메모리 상태 및 데이터 흐름을 나타낸다.

Claims (18)

  1. 사용자 단말기에 저장된 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일이 실행되는 단계; 및
    실행 결과 상기 적어도 하나의 실행 파일에 대응되는 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 데이터 파일에 대응되는 적어도 하나의 가상 데이터 파일은 상기 사용자 단말기의 유저 영역에 설치되고,
    상기 적어도 하나의 실행 파일, 상기 적어도 하나의 데이터 파일, 및 상기 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 실행 파일을 제어하기 위한 제어 모듈은 상기 사용자 단말기의 보안 영역에 설치되는 단계를 포함하는 소프트웨어 보안 방법.
  2. 제 1항에 있어서, 상기 소프트웨어 보안 방법은,
    상기 유저 영역에 설치된 상기 적어도 하나의 가상 실행 파일 중 제1가상 실행 파일이 실행되는 단계; 및
    실행 결과 상기 보안 영역에 설치된 상기 제1가상 실행 파일에 대응되는 제1실행 파일이 실행되는 단계를 더 포함하는 소프트웨어 보안 방법.
  3. 제 2항에 있어서, 상기 소프트웨어 보안 방법은,
    상기 제1가상 실행 파일이 실행되면,
    사용자 인증, 사용 횟수 인증, 또는 사용 기간 인증 중 적어도 하나를 실행하는 단계를 더 포함하는 소프트웨어 보안 방법.
  4. 제 3항에 있어서, 상기 소프트웨어 보안 방법은,
    상기 제1가상 실행 파일이 실행되면,
    상기 제어 모듈이 활성화되는 단계를 더 포함하는 소프트웨어 보안 방법.
  5. 제 4항에 있어서, 상기 제어 모듈은,
    상기 제1실행 파일이 상기 유저 영역에 설치된 상기 적어도 하나의 가상 데이터 파일 중 제1가상 데이터 파일을 참조하기 위한 메시지를 출력하는 경우,
    상기 메시지를 후킹하고, 상기 제1가상 데이터 파일에 대응되는 제1데이터 파일에 대한 경로를 상기 제1실행 파일로 리턴하도록 제어하는 소프트웨어 보안 방법.
  6. 제 1항에 있어서, 상기 보안 영역은,
    가상 드라이브인 소프트웨어 보안 방법.
  7. 제 6항에 있어서, 상기 설치 파일은,
    상기 설치 파일을 실행하면 상기 가상 드라이브를 자동으로 마운트 하기 위한 가상 디바이스 드라이버를 포함하는 소프트웨어 보안 방법.
  8. 제 1항에 있어서, 상기 보안영역은,
    상기 설치 파일을 생성시에 설정되는 적어도 하나의 보안기능에 대한 설정 정보를 포함하는 설정 파일 및 상기 적어도 하나의 보안기능에 대응되는 적어도 하나의 보안모듈을 더 포함하며,
    상기 제어 모듈은 상기 설정 파일에 저장된 정보에 기초하여 상기 적어도 하나의 보안기능을 수행하도록 상기 적어도 하나의 보안모듈을 제어하는 소프트웨어 보안 방법.
  9. 제 8항에 있어서, 상기 적어도 하나의 보안기능은,
    화면보호, 화면 캡춰 방지, 또는 클립보드제어 기능 중 적어도 하나를 포함하는 소프트웨어 보안 방법.
  10. 삭제
  11. 삭제
  12. 제 1항 내지 제 9항 중 어느 한 항에 기재된 방법을 수행하기 위한 컴퓨터로 판독 가능한 프로그램을 기록한 기록매체.
  13. 프로그램을 저장하기 위한 메모리; 및
    상기 프로그램을 수행하기 위한 CPU를 구비하며,
    상기 프로그램은 상기 CPU의 제어하에 사용자 단말기에 저장된 적어도 하나의 실행 파일과 적어도 하나의 데이터 파일을 포함하는 소프트웨어의 설치 파일이 실행되면, 상기 적어도 하나의 실행 파일에 대응되는 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 데이터 파일에 대응되는 적어도 하나의 가상 데이터 파일은 상기 사용자 단말기의 유저 영역에 설치하고,
    상기 적어도 하나의 실행 파일, 상기 적어도 하나의 데이터 파일, 및 상기 적어도 하나의 가상 실행 파일과 상기 적어도 하나의 실행 파일을 제어하기 위한 제어 모듈은 상기 사용자 단말기의 보안 영역에 설치하는 소프트웨어 보안 장치.
  14. 제 13항에 있어서, 상기 프로그램은,
    상기 유저 영역에 설치된 상기 적어도 하나의 가상 실행 파일 중 제1가상 실행 파일이 실행되면,
    상기 보안 영역에 설치된 상기 제1가상 실행 파일에 대응되는 제1실행 파일이 실행되도록 제어하는 소프트웨어 보안 장치.
  15. 제 14항에 있어서, 상기 프로그램은,
    상기 제1가상 실행 파일이 실행되면,
    상기 제어 모듈이 활성화되도록 제어하는 소프트웨어 보안 장치.
  16. 제 15항에 있어서, 상기 제어 모듈은,
    상기 제1실행 파일이 상기 유저 영역에 설치된 상기 가상 데이터 파일 중 제1가상 데이터 파일을 참조하기 위한 메시지를 출력하는 경우,
    상기 메시지를 후킹하고, 상기 제1가상 데이터 파일에 대응되는 제1데이터 파일에 대한 경로를 상기 제1실행 파일에 리턴하도록 제어하는 소프트웨어 보안 장치.
  17. 삭제
  18. 삭제
KR1020070083251A 2007-08-20 2007-08-20 소프트웨어 보안 방법 및 그 장치 KR100855329B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020070083251A KR100855329B1 (ko) 2007-08-20 2007-08-20 소프트웨어 보안 방법 및 그 장치
US12/674,345 US8549580B2 (en) 2007-08-20 2008-06-25 Method and apparatus for providing software security
PCT/KR2008/003612 WO2009025444A1 (en) 2007-08-20 2008-06-25 Method and apparutus for providing software security

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070083251A KR100855329B1 (ko) 2007-08-20 2007-08-20 소프트웨어 보안 방법 및 그 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020080035094A Division KR100855328B1 (ko) 2008-04-16 2008-04-16 소프트웨어 보안 방법 및 그 장치

Publications (1)

Publication Number Publication Date
KR100855329B1 true KR100855329B1 (ko) 2008-09-04

Family

ID=40022098

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070083251A KR100855329B1 (ko) 2007-08-20 2007-08-20 소프트웨어 보안 방법 및 그 장치

Country Status (3)

Country Link
US (1) US8549580B2 (ko)
KR (1) KR100855329B1 (ko)
WO (1) WO2009025444A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101187251B1 (ko) * 2011-12-23 2012-10-02 주식회사 한글과컴퓨터 단말 장치 및 프로그램 파일 보호 방법
KR101284783B1 (ko) * 2011-06-17 2013-08-23 워터월시스템즈 주식회사 전자문서 유출 방지 시스템 및 그 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110179268A1 (en) * 2010-01-20 2011-07-21 Microsoft Corporation Protecting applications with key and usage policy
EP2523107B1 (en) * 2011-04-19 2018-11-07 LG Electronics Inc. Mobile terminal and system for managing applications using the same
US8578142B2 (en) * 2011-05-13 2013-11-05 Mcafee, Inc. System and method for shared data storage
US9122418B2 (en) * 2012-08-07 2015-09-01 Xyratex Technology Limited—A Seagate Company Method of controlling the capacity of a virtual storage system, and a virtual storage system

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050028672A (ko) * 2003-09-19 2005-03-23 삼성전기주식회사 입력장치를 이용한 소프트웨어 설치 및 실행 방법

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0388052A (ja) * 1989-08-31 1991-04-12 Toshiba Corp 機密保護処理方式
JP2002041305A (ja) * 2000-07-26 2002-02-08 Hitachi Ltd 仮想計算機システムにおける計算機資源の割当て方法および仮想計算機システム
JP2003067271A (ja) * 2001-08-27 2003-03-07 Hitachi Ltd 統合管理システム
KR100459791B1 (ko) * 2002-04-12 2004-12-04 연안정보통신 주식회사 클라이언트―서버 환경에서의 설치과정없는응용프로그램의 실행방법
US7549164B2 (en) * 2003-06-11 2009-06-16 Symantec Corporation Intrustion protection system utilizing layers and triggers
KR100589541B1 (ko) * 2004-11-25 2006-06-14 소프트캠프(주) 접근이 통제되는 가상디스크들 간의 온라인을 통한데이터의 보안전송시스템과 이를 통한 보안전송방법
KR100654675B1 (ko) 2004-12-04 2006-12-08 소프트온넷(주) 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법
US7874001B2 (en) * 2005-07-15 2011-01-18 Microsoft Corporation Detecting user-mode rootkits
KR100692964B1 (ko) 2006-07-20 2007-03-12 (주)테르텐 가상디스크 구동방법 및 이를 위한 기록매체
JP5446860B2 (ja) * 2007-03-27 2014-03-19 日本電気株式会社 仮想マシン運用システム、仮想マシン運用方法およびプログラム
KR100911345B1 (ko) 2007-06-20 2009-08-07 (주)테르텐 컨텐츠 보안 방법 및 그 장치
KR101239301B1 (ko) * 2009-07-06 2013-03-05 한국전자통신연구원 라이센스 관리 장치 및 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050028672A (ko) * 2003-09-19 2005-03-23 삼성전기주식회사 입력장치를 이용한 소프트웨어 설치 및 실행 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101284783B1 (ko) * 2011-06-17 2013-08-23 워터월시스템즈 주식회사 전자문서 유출 방지 시스템 및 그 방법
KR101187251B1 (ko) * 2011-12-23 2012-10-02 주식회사 한글과컴퓨터 단말 장치 및 프로그램 파일 보호 방법

Also Published As

Publication number Publication date
WO2009025444A1 (en) 2009-02-26
US8549580B2 (en) 2013-10-01
US20110162041A1 (en) 2011-06-30

Similar Documents

Publication Publication Date Title
US6854061B2 (en) Installing and controlling trial software
EP1443381B1 (en) System and method for secure software activation with volume licenses
US6006190A (en) Computer implemented method and a computer system for enforcing software licenses
EP1084549B1 (en) Method of controlling usage of software components
EP1905184B1 (en) Automatic update of computer-readable components to support a trusted environment
EP1243998B1 (en) A technique for license management and online software license enforcement
KR100855329B1 (ko) 소프트웨어 보안 방법 및 그 장치
JP2003330560A (ja) デジタル権利管理(drm)システムを使用するソフトウェアアプリケーションの保護のための方法および媒体
US20020010863A1 (en) Method for protecting software
CN101414263B (zh) 软件安装方法及防盗版模块
US20110010778A1 (en) Standalone solution for serial copy management system (scms) compliance
EP2736010B1 (en) License management device, license management system, license management method, and program
JP2003067191A (ja) インストールプログラムを用いてインストールされるアプリケーションを機能に関して拡張するための方法とコンピュータソフトウェア製品
JP4713579B2 (ja) アプリケーションプログラム
EP1825449A2 (en) A method and system for protecting a software application from piracy
KR100556304B1 (ko) 파일 시스템 정보 데이터를 이용한 디지털 컨텐츠의 불법복제 방지 방법 및 시스템
KR100855328B1 (ko) 소프트웨어 보안 방법 및 그 장치
CN101484877A (zh) 用可重新配置的硬件执行计算机指令
JP2001312286A (ja) データ管理装置およびデータ管理方法、ならびにデータ管理プログラムを記録したコンピュータ読み取り可能な記録媒体
KR101207434B1 (ko) 이종의 디지털 문서 보호 시스템 간의 충돌 방지 시스템 및 방법
KR100911345B1 (ko) 컨텐츠 보안 방법 및 그 장치
KR100692964B1 (ko) 가상디스크 구동방법 및 이를 위한 기록매체
KR20000050233A (ko) 불법복제 프로그램의 사용방지방법과 그 기록매체
US11822699B1 (en) Preventing surreptitious access to file data by malware
JP2004295388A (ja) ソフトウェアのインストール方法およびプロテクト方法

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
A107 Divisional application of patent
AMND Amendment
J201 Request for trial against refusal decision
B701 Decision to grant
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20120803

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20130702

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20150806

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20160804

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180827

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20190819

Year of fee payment: 12