KR101032386B1 - 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법 - Google Patents

가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법 Download PDF

Info

Publication number
KR101032386B1
KR101032386B1 KR1020080069263A KR20080069263A KR101032386B1 KR 101032386 B1 KR101032386 B1 KR 101032386B1 KR 1020080069263 A KR1020080069263 A KR 1020080069263A KR 20080069263 A KR20080069263 A KR 20080069263A KR 101032386 B1 KR101032386 B1 KR 101032386B1
Authority
KR
South Korea
Prior art keywords
virtual
storage device
removable storage
application
virtual machine
Prior art date
Application number
KR1020080069263A
Other languages
English (en)
Other versions
KR20100008678A (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 KR1020080069263A priority Critical patent/KR101032386B1/ko
Publication of KR20100008678A publication Critical patent/KR20100008678A/ko
Application granted granted Critical
Publication of KR101032386B1 publication Critical patent/KR101032386B1/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
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/45Structures or tools for the administration of authentication
    • GPHYSICS
    • G16INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
    • G16ZINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS, NOT OTHERWISE PROVIDED FOR
    • G16Z99/00Subject matter not provided for in other main groups of this subclass
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템, 가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인 서비스 제공 방법을 개시하고 있다. 가상 머신을 이용한 응용 프로그램 제공 방법은, 가상 환경과, 그 가상 환경에 설치되는 가상 응용 프로그램 및 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 가상 머신을 포함하는 가상 머신 모듈을 생성하여 이동식 저장 장치에 설치하고, 상기 이동식 저장 장치의 인증 정보를 상기 이동식 저장 장치에 삽입한다. 따라서 응용 프로그램의 불법적인 사용이나 복제 등을 방지할 수 있다.
가상 머신, USB, 응용 프로그램, 인증, 휴대용 저장 장치

Description

가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템, 가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인 서비스 제공 방법 {Method and System for Providing Application Program Using Virtual Machine, Method for Executing Virtual Application Program, Virtual Machine Module and Method for Providing On-line Service}
본 발명은 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템, 가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인 서비스 제공 방법에 관한 것으로서, 좀더 상세하게는, 독립된 가상 환경 및 그 가상 환경에서 수행되는 가상 응용 프로그램을 포함하는 가상 머신 모듈을 이동식 저장 장치에 설치하여 제공하고, 가상 응용 프로그램 수행 시에는 이동식 저장 장치의 장치 인증을 수행할 수 있는 가상화 및 장치 인증 관련 기술에 관한 것이다.
일반적으로, 디지털 데이터는 그 정보의 손실 없이도 무제한의 복제가 가능하기 때문에, 불법 복제, 유출, 유통, 판매, 해킹 등과 같은 불법적인 행위에 손쉽 게 노출될 수 있다. 따라서 디지털 콘텐트, 응용 프로그램 등을 서비스하기 위해서는 이들을 불법적인 행위로부터 안정적으로 보호할 수 있는 보호 기술이 뒷받침되어야 한다.
통상, 사용자가 응용 프로그램, 예컨대, 게임, 워드 프로세서, 워크시트, 오피스 팩, 그래픽 툴, 미디어 플레이어, 각종 드라이버 등을 사용하기 위해서는 해당 응용 프로그램의 구입에 따른 정당한 금액을 지불한 뒤, 설치 파일이 구비된 저장매체, 예컨대 CD(Compact Disk), DVD(Digital Versatile Disk) 등을 입수하여 호스트 컴퓨터에 해당 응용 프로그램을 설치하여야 한다. 또한 응용 프로그램의 설치 시에는 특정한 보안 정보, 예컨대 인증키 등의 입력을 요구함으로써 불법적인 응용 프로그램의 설치 및 수행을 방지한다.
그런데, 이러한 종래의 경우 불순한 의도를 가진 자가 인증키 생성 프로세스를 해킹하거나 불법 유통되는 인증키 생성 프로그램을 사용하여 인증키를 생성하고, 그 생성된 인증키를 해당 응용 프로그램의 설치 프로세스에 입력할 경우 정상적으로 호스트 컴퓨터에 응용 프로그램이 설치되게 된다.
때문에, 제품을 구매하지 않은 사용자도 불법적인 의도만 가진다면 별다른 제약 없이 불법적으로 응용 프로그램을 사용할 수 있는 문제점이 있다. 이러한 문제점은 소프트웨어 제품의 건전한 사용을 저해하는 가장 큰 원인으로 지적되고 있다.
또한, 현재 응용 프로그램의 제품 판매를 위하여 사용되는 저장매체, 예컨대 CD나 DVD 등은 급격하게 증대되고 있는 응용 프로그램의 크기를 감안할 때 저장 용 량이 한정적이고, 스크래치 등과 같은 물리적인 손상에 취약한 문제점이 있다. 따라서 이러한 문제점들을 해소하면서 응용 프로그램을 불법적인 설치 및 사용으로부터 안전하게 보호할 수 있는 기술이 시급히 요구되고 있는 실정이다.
본 발명이 해결하고자 하는 제 1 기술적 과제는 가상 머신 모듈 및 장치 인증 정보를 이동식 저장 장치에 구비하여 사용자에게 제공할 수 있도록 하는 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템을 제공하는데 있다.
본 발명이 해결하고자 하는 제 2 기술적 과제는 가상 머신 모듈이 구비된 이동식 저장 장치를 호스트 시스템에 연결하여 가상 응용 프로그램을 수행시킬 수 있는 가상 응용 프로그램 수행 방법을 제공하는데 있다.
본 발명이 해결하고자 하는 제 3 기술적 과제는 이동식 저장 장치를 인증하고 그 인증 결과에 따라 가상 응용 프로그램을 수행시킬 수 있는 가상 머신 모듈을 제공하는데 있다.
본 발명이 해결하고자 하는 제 4 다른 기술적 과제는 온라인 서비스에 필요한 가상 응용 프로그램을 수행시킬 수 있는 가상 머신 모듈을 이동식 저장 장치에 설치하여 사용자에게 제공하고, 그 이동식 저장 장치를 사용하여 온라인 서비스를 제공할 수 있는 온라인 서비스 제공 방법을 제공하는데 있다.
이러한 제 1 기술적 과제를 해결하기 위하여 본 발명은 일 측면(Aspect)에서 가상 머신을 이용한 응용 프로그램 제공 방법을 제공한다. 상기 응용 프로그램 제공 방법은, 가상 환경과, 상기 가상 환경에 설치되는 가상 응용 프로그램 및 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 가상 머신을 포함하는 가상 머신 모듈을 생성하는 단계와, 상기 생성되는 가상 머신 모듈을 이동식 저장 장치에 설치하는 단계; 및 상기 이동식 저장 장치의 인증 정보를 상기 이동식 저장 장치에 삽입하는 단계를 포함한다.
상기 이동식 저장 장치의 인증 정보를 상기 이동식 저장 장치에 삽입하는 단계는, 고유한 장치 인증키를 생성하는 단계와; 상기 생성된 장치 인증키를 상기 이동식 저장 장치의 보안 영역에 저장하는 단계; 및 상기 생성된 장치 인증키를 상기 가상 머신 모듈의 가상 환경에 저장하는 단계를 포함할 수 있다.
한편, 상기 이동식 저장 장치의 인증 정보를 상기 이동식 저장 장치에 삽입하는 단계는, 상기 이동식 저장 장치의 장치 일련번호를 상기 가상 머신 모듈의 가상 환경에 저장하는 단계를 포함할 수도 있다.
상술한 본 발명의 제 1 기술적 과제를 해결하기 위하여 본 발명은 다른 측면에서 응용 프로그램 제공 시스템을 제공한다. 상기 응용 프로그램 제공 시스템은, 가상 환경과, 상기 가상 환경에 설치되는 가상 응용 프로그램 및 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 가상 머신을 포함하는 가상 머신 모듈을 생성하여 이동식 저장 장치에 설치하는 가상 머신 설치부; 및 상기 이동식 저장 장치의 인증 정보를 상기 이동식 저장 장치에 삽입하는 장치 인증 정보 삽입부를 포함할 수 있다.
상기 가상 머신은, 가상화 처리 기능을 수행하는 가상화 모듈과; 상기 가상화 모듈 사용하여 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 수행 제어 모듈; 및 상기 가상 환경으로 허가되지 않은 응용 프로그램이 접근하는 것을 차단하는 가상 환경 보호 모듈을 포함할 수 있다.
이 경우, 상기 가상화 모듈은 상기 수행 제어 모듈에 의하여 상기 가상 응용 프로그램의 수행 프로세스에 주입되어, 프로세스에서 호스트 환경 내의 호스트 파일 시스템 또는 호스트 레지스트리로의 접근 API(Application Program Interface)가 호출하면 그 접근 경로를 상기 가상 환경 내의 가상 파일 시스템 또는 가상 레지스트리로 각각 변환할 수 있다. 또한 상기 수행 제어 모듈은 상기 가상 머신 모듈의 구성요소를 업데이트 또는 복구하기 위한 업데이트 또는 복구 프로세스를 생성할 수 있다.
상기 가상 머신은 상기 가상 환경에 저장되어 있는 장치 인증 정보와 상기 이동식 저장 장치의 장치 인증 정보를 비교하여 상기 이동식 저장 장치를 인증하는 기능을 수행하는 인증 정보 확인 모듈을 더 포함할 수 있다.
또한, 상기 가상 머신은 응용 프로그램 셋업 프로세스에 상기 가상화 모듈을 주입하여 상기 응용 프로그램의 셋업 프로세스를 가상 응용 프로그램 셋업 프로세스로 변환하고, 변환된 상기 가상 응용 프로그램 셋업 프로세스를 수행시켜 상기 가상 환경에 가상 응용 프로그램을 설치하는 가상 응용 프로그램 설치 모듈을 더 포함할 수도 있다.
상기 응용 프로그램 제공 시스템은, 상기 가상 머신 모듈과 연동하여 상기 가상 머신의 구성 요소를 업데이트 또는 복구하는 업데이트/복구부; 및 상기 가상 응용 프로그램의 요청에 따라 온라인 서비스를 제공하는 온라인 서비스 제공부를 더 포함할 수 있다.
상기 장치 인증 정보 삽입부는 고유한 장치 인증키를 생성하여 상기 이동식 저장 장치의 보안 영역에 저장하고, 상기 생성된 장치 인증키를 상기 가상 머신 모듈의 가상 환경에 저장할 수 있다. 한편 상기 장치 인증 정보 삽입부는 상기 이동식 저장 장치의 장치 일련번호를 상기 가상 머신 모듈의 가상 환경에 저장할 수도 있다.
한편, 상술한 본 발명의 제 2 기술적 과제를 해결하기 위하여 본 발명은 또 다른 측면에서 가상 응용 프로그램 수행 방법을 제공한다. 상기 가상 응용 프로그램 수행 방법은, 가상 환경 및 가상 머신을 구비하는 이동식 저장 장치를 사용하여 가상 응용 프로그램을 수행하는 방법에 있어서, 호스트 시스템과 연동하는 단계와; 상기 가상 머신을 이용하여 상기 이동식 저장 장치의 장치 인증을 수행하는 단계; 및 상기 장치 인증이 정상적으로 이루어졌을 경우, 상기 가상 머신을 이용하여 상기 가상 환경에 구비된 가상 응용 프로그램을 상기 가상 환경에서 수행하는 단계를 포함할 수 있다.
상기 장치 인증을 수행하는 단계는, 상기 이동식 저장 장치의 보안 영역으로부터 상기 이동식 저장 장치의 장치 인증키를 추출하는 단계와; 상기 가상 영역으로부터 장치 인증키를 추출하는 단계와; 상기 보안 영역으로부터 추출한 장치 인증키와 상기 가상 영역으로부터 추출한 장치 인증키를 비교하는 단계; 및 상기 비교에서, 상기 보안 영역으로부터 추출한 장치 인증키와 상기 가상 영역으로부터 추출한 장치 인증키가 일치할 경우 상기 이동식 저장 장치를 정상적으로 인증하고, 일 치하지 않을 경우 상기 이동식 저장 장치의 인증을 불허하는 단계를 포함할 수 있다.
한편 상기 장치 인증을 수행하는 단계는, 상기 이동식 저장 장치로부터 상기 이동식 저장 장치의 장치 일련번호를 추출하는 단계와; 상기 가상 영역에 저장된 장치 일련번호를 추출하는 단계와; 상기 이동식 저장 장치의 장치 열련번호와 상기 가상 영역으로부터 추출한 장치 일련번호를 비교하는 단계; 및 상기 비교에서, 상기 이동식 저장 장치의 일련번호와 상기 가상 영역으로부터 추출한 장치 일련번호가 일치할 경우 상기 이동식 저장 장치를 정상적으로 인증하고, 일치하지 않을 경우 상기 이동식 저장 장치의 인증을 불허하는 단계를 포함할 수도 있다.
상기 가상 응용 프로그램 수행 방법은, 상기 장치 인증이 실패했을 경우, 상기 가상 응용 프로그램의 수행을 차단하는 단계; 및 상기 이동식 저장 장치의 인증이 실패했음을 알리는 메시지를 출력하는 단계를 더 포함할 수도 있다.
또한 상기 가상 응용 프로그램 수행 방법은, 상기 가상 머신을 이용하여 상기 가상 환경을 허가되지 않은 접근으로부터 보호하기 위한 가상 환경 보호 모듈을 수행시키는 단계를 더 포함할 수도 있다.
한편, 상술한 본 발명의 제 3 기술적 과제를 해결하기 위하여 본 발명은 또 다른 측면에서 가상 머신 모듈을 제공한다. 상기 가상 머신 모듈은, 이동식 저장 장치에 구비되는 가상 머신 모듈에 있어서, 가상 응용 프로그램이 설치 및 수행되고, 상기 이동식 저장 장치를 인증하기 위한 인증 정보를 저장하는 가상 환경; 및 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키고, 상기 가상 환경에 저 장되는 인증 정보를 이용하여 상기 이동식 저장 장치의 인증을 수행하는 가상 머신을 포함할 수 있다.
상기 가상 머신은 상기 가상 환경에 저장되는 인증 정보를 상기 이동식 저장 장치의 인증 정보와 비교하여 상기 이동식 저장 장치의 인증을 수행할 수 있다. 또한 상기 가상 머신은, 가상화 처리 기능을 수행하는 가상화 모듈과; 상기 가상화 모듈 사용하여 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 수행 제어 모듈과; 상기 가상 환경으로 허가되지 않은 응용 프로그램이 접근하는 것을 차단하는 가상 환경 보호 모듈; 및 상기 가상 환경에 저장되는 인증 정보를 이용하여 상기 이동식 저장 장치를 인증하는 장치 인증 모듈을 포함할 수도 있다.
한편, 상술한 본 발명의 제 4 기술적 과제를 해결하기 위하여 본 발명은 또 다른 측면에서 온라인 서비스 제공 방법을 제공한다. 상기 온라인 서비스 제공 방법은, 가상 환경과, 온라인 서비스에 필요한 가상 응용 프로그램 및 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 가상 머신을 포함하는 가상 머신 모듈을 생성하여 이동식 저장 장치에 설치하는 단계; 및 상기 이동식 저장 장치를 사용자에게 제공한 후, 온라인을 통한 상기 가상 응용 프로그램으로부터의 요청에 따라 상기 온라인 서비스를 제공하는 단계를 포함할 수 있다. 상기 온라인 서비스 제공 방법은 상기 이동식 저장 장치에 상기 이동식 저장 장치의 인증을 위한 장치 인증 정보를 삽입하는 단계를 더 포함할 수도 있다.
이상 설명한 바와 같이, 본 발명에 따르면 독립적인 가상 환경에서 안전하게 수행되는 가상 응용 프로그램을 포함하는 가상 머신 모듈을 이동식 저장 장치에 설치하여 사용자에게 제공함으로써, 사용자 측에서 그 가상 머신 모듈을 사용하여 응용 프로그램을 사용할 수 있도록 한다. 또한 이동식 저장 장치를 인증할 수 있는 장치 인증 정보를 이동식 저장 장치에 삽입하고 가상 응용 프로그램의 수행 시에는 이동식 저장 장치의 인증을 수행하도록 함으로써 프로그램의 불법적인 복사 등을 방지할 수 있게 된다.
이하, 본 발명이 속하는 분야에 통상의 지식을 가진 자가 본 발명을 용이하게 실시할 수 있도록 본 발명의 바람직한 실시예를 첨부된 도면을 참조하여 상세히 설명한다. 이하에 설명할 본 발명의 바람직한 실시예에서는 내용의 명료성을 위하여 특정한 기술 용어를 사용한다. 하지만 본 발명은 그 선택된 특정 용어에 한정되지는 않으며, 각각의 특정 용어가 유사한 목적을 달성하기 위하여 유사한 방식으로 동작하는 모든 기술 동의어를 포함함을 미리 밝혀둔다.
도 1은 본 발명의 바람직한 실시예에 따른 가상 머신을 이용한 응용 프로그램 제공 방법을 실현하기 위한 응용 프로그램 제공 시스템의 개념을 설명하기 위한 예시도이다.
도 1에 도시된 바와 같이, 응용 프로그램 제공 시스템(100)은 이동식 저장 장치(60)에 응용 프로그램을 가상화하여 설치함으로써 응용 프로그램을 제공할 수 있다. 예를 들어 응용 프로그램 제공 시스템(100)은 응용 프로그램을 가상 환경에서 수행시킬 수 있는 가상 머신 모듈(20)을 생성하고 이를 이동식 저장 장치(60)에 설치할 수 있다. 응용 프로그램 제공 시스템(100)에 의하여 제공되는 이동식 저장 장치(60)는 오프라인 루트를 통하여 사용자에게 판매 또는 배포될 수 있다. 이러한 응용 프로그램 제공 시스템(100)은 소프트웨어(즉, 응용 프로그램)를 판매 또는 배포하기 위한 판매 업체, 배포 업체 또는 응용 프로그램 사업자나 개발 업체 등에 의해 구비될 수 있다.
가상 머신 모듈(20)은 독립된 가상 환경 내에서 응용 프로그램을 수행시키고 정보를 처리하는 모듈을 의미할 수 있다. 가상 머신 모듈(20)은 가상 환경, 가상화된 응용 프로그램 및 가상 환경에서 상기 응용 프로그램을 수행시키고, 가상 환경을 보호하는 가상 머신 등을 포함할 수 있다.
이때, 상기 가상 환경은 가상 파일 시스템, 가상 레지스트리 등을 포함할 수 있다. 이러한 가상 환경은 가상 머신 모듈(20)의 가상 환경 보호 기능에 의하여 외부의 접근으로부터 안전하게 보호된다. 가상 머신 모듈(20)의 응용 프로그램은 가상 머신에 의하여 수행되며 가상 환경인 가상 파일 시스템, 가상 레지스트리 등에서만 정보를 읽고 쓸 수 있다. 이하에서는 이러한 가상 머신 모듈(20)의 응용 프로그램을 "가상 응용 프로그램"으로 칭하기로 한다. 가상 응용 프로그램은 가상화된 게임, 웹브라우저, 워드 프로세서, 워크시트, 유틸리티, 웹브라우저, 미디어 플레이어, 보안 툴 등과 같은 다양한 소프트웨어를 포함할 수 있다. 한편 가상 머신 모듈(20)은 가상 응용 프로그램에 의하여 사용될 수 있는 정보(예컨대 비디오 콘텐 츠, 오디오 콘텐츠, 이미지, 텍스트 등)를 가상 환경 내에 저장할 수도 있다.
응용 프로그램 제공 시스템(100)은 이러한 가상 머신 모듈(20)을 이동식 저장 장치, 예컨대 USB(Universal Serial Bus) 메모리 카드, CD-ROM, 외장형 하드, 스마트카드 등에 설치할 수 있다. 가상 머신 모듈(20)이 설치된 이동식 저장 장치는 오프라인 루트를 통하여 사용자에게 제공될 수 있다. 예를 들어, 사용자는 원하는 응용 프로그램을 구입하기 위하여 판매처 또는 배포처를 방문하거나 인터넷 쇼핑, 홈쇼핑 등을 통하여 해당 응용 프로그램을 포함하는 가상 머신 모듈(20)이 설치된 이동식 저장 장치를 구매하거나 제공받을 수 있다. 상기 가상 머신 모듈(20)의 상세한 구성 및 동작은 차후 도면을 참조하여 상세히 설명할 것이다.
한편, 가상 머신 모듈(20)이 설치된 이동식 저장 장치(60)를 제공받은 사용자는 해당 이동식 저장 장치(60)를 가지고 다니다가 이동식 저장 장치(60)를 수용할 수 있는 호스트 컴퓨터, 예컨대 PC나 이동 통신 단말기 등에 이동식 저장 장치(60)를 연결하여 가상 응용 프로그램을 수행시킬 수 있다. 예를 들어, 사용자는 가상 환경에서 안전하게 수행되는 게임을 수행하여 사용할 수도 있고, 가상 환경에서 안전하게 수행되는 전용 웹브라우저를 통하여 응용 프로그램 제공 서비스에 접속하여 온라인 게임을 즐길 수도 있고, 또는 가상 환경에서 안전하게 수행되는 워드 프로세서를 사용할 수도 있다. 만약 가상 응용 프로그램의 업데이트 또는 복구 등이 필요할 경우, 응용 프로그램 제공 시스템(100)은 온라인을 통해서 호스트 컴퓨터에 연결된 가상 머신 모듈(20)의 요청에 따라 해당 업데이트 또는 복구 서비스를 제공할 수도 있다.
도 2는 응용 프로그램 제공 시스템(100)의 상세 구성을 설명하기 위한 블록도이다.
도 1 내지 도 2를 참조하여 설명하면, 응용 프로그램 제공 시스템(100)은 가상 머신 설치부(110), 장치 인증 정보 삽입부(120), 온라인 서비스 제공부(130) 및 업데이트/복구부(140) 등을 포함할 수 있다. 상기 각 부는 각각 별도의 서버로 구성될 수도 있고, 다수 개의 부가 모듈의 형태로 하나의 서버 내에 구비될 수도 있다. 응용 프로그램 제공 시스템(100)의 각 부의 구성은 실시 환경에 따라 다양하게 구성 가능하다.
가상 머신 설치부(110)는 가상 머신 모듈(20)을 생성하고 이를 이동식 저장 장치(60)에 설치하는 기능을 수행할 수 있다. 상기 가상 머신 모듈(20)은 가상 환경을 구비하고 상기 가상 환경 내에서 가상 응용 프로그램을 수행할 수 있다. 이러한 가상 머신 모듈(20)은 호스트 시스템인 특정 단말기(예컨대, PC, 이동 통신 단말기 등)와 연동하여 호스트 자원을 사용하면서도 호스트 환경과는 격리된 가상 환경에서 가상 응용 프로그램을 수행하며 정보를 읽고 쓸 수 있다.
도 3은 가상 머신 설치부에 의해 제공될 수 있는 가상 머신 모듈(20)의 구성을 도시하는 블록도이다.
도 3에 도시된 바와 같이, 가상 머신 모듈(20)은 가상 환경(30) 및 가상 머신(40)을 구비할 수 있다. 상기 가상 환경(30)에는 가상 응용 프로그램(32) 및 장치 인증 정보(34) 등이 각각 설치 및 저장될 수 있다. 가상 머신(40)은 가상 응용 프로그램(32)을 가상 환경(30)에서 수행시킬 수 있다. 또한 가상 머신(40)은 자신 도 가상화된 응용 프로그램으로서 특정 기능을 수행하며 가상 환경(30)에서 정보를 읽고 쓸 수도 있다. 상기 가상 머신(40)은 이해의 편의를 위하여 가상 환경(30)과 구분하여 도시하였지만 실질적으로 상기 가상 머신(40)은 가상 환경(30) 내, 예컨대 가상 파일 시스템 내에 구비될 수도 있다. 본 출원인은 이러한 가상 머신과 관련한 기술들을 대한민국 특허출원 제2007-82485호, 제2008-22462호 등을 통하여 출원한 바 있다.
상기 가상 환경(30)은 가상 파일 시스템, 가상 레지스트리를 포함할 수 있다. 가상 응용 프로그램(32)의 수행에 의한 파일 또는 레지스트리 키의 읽기 및 쓰기는 가상 파일 시스템 또는 가상 레지스트리 내에서 각각 이루어진다. 이러한 가상 파일 시스템과 가상 레지스트리는 호스트 환경 내의 호스트 시스템 및 호스트 레지스트리와는 격리된다. 예를 들어, 가상 환경(30)은 외부의 응용 프로그램 예컨대 호스트 응용 프로그램 등으로부터의 접근이 차단된다.
가상 머신(40)은 가상 응용 프로그램 설치 모듈(41), 가상화 모듈(43), 가상 환경 보호 모듈(44), 수행 제어 모듈(42) 및 인증 정보 확인 모듈(45) 등을 포함할 수 있다.
가상 응용 프로그램 설치 모듈(41)은 응용 프로그램을 가상화시켜 가상 환경에 설치하는 가상 응용 프로그램 설치 기능을 수행할 수 있다. 예를 들어 가상 응용 프로그램 설치 모듈(41)은 응용 프로그램의 셋업 프로세스에 가상화 모듈(43)을 주입하여 상기 응용 프로그램의 셋업 프로세스를 가상 응용 프로그램 셋업 프로세스로 변환한 후, 그 가상 응용 프로그램 셋업 프로세스를 수행시켜 가상 응용 프로 그램을 가상 환경에 설치할 수 있다.
이러한 가상 응용 프로그램 설치 모듈(41)은 가상 머신(40)에 포함될 수도 있고, 포함되지 않을 수도 있다. 예를 들어, 상기 가상 응용 프로그램(32)이 다른 가상 응용 프로그램의 설치 없이도 사용 가능한 프로그램(예컨대, 오프라인 환경에서 수행되는 게임 등)이라면, 이 경우 새로운 가상 응용 프로그램을 더 설치할 필요가 없으므로 가상 응용 프로그램 설치 모듈(41)이 가상화 머신(40)에 포함되지 않아도 무방하다. 반면, 상기 가상 응용 프로그램(32)의 사용을 위해서 또는 사용 시 새로운 응용 프로그램의 설치가 요구되는 경우(예컨대, 상기 가상 응용 프로그램이 온라인 게임을 지원하는 웹브라우저이고 웹브라우저를 통하여 네트워크에 접속하여 게임 프로그램을 새롭게 다운로드 받아야할 경우, 또는 온라인 서비스 시에 보안 모듈 등이 설치되어야 하는 경우 등), 새로운 응용 프로그램을 가상화하여 가상 환경(30)에 설치하여야 하므로 이 경우에는 가상 응용 프로그램 설치 모듈(411)이 필요하다. 본 실시예에서는 도 3의 도시에 도시된 바와 같이 가상 머신(40)이 가상 응용 프로그램 설치 모듈(41)을 구비하는 경우를 설명하기로 한다. 따라서 가상 머신(40)은 새로운 가상 응용 프로그램을 설치하는 것이 가능할 것이다.
가상화 모듈(43)은 응용 프로그램의 설치 또는 수행을 가상화하는 가상화 처리 기능을 수행할 수 있다. 가상화 모듈(43)은 운영체제의 네이티브 API(Application Program Interface)를 가상 환경으로 리다이렉션(Redirection)할 수 있는 다수의 기능 모듈(예컨대 가상화 함수 등)을 구비하는 다이내믹 링크 라이브러리(Dynamic Link Library)를 포함할 수 있다. 예를 들어 가상화 모듈은 윈도우 라이브러리 파일인 "nt.dll"에 대응하는 가상 다이내믹 링크 라이브러리 파일인 "vm.dll" 등으로 표현될 수 있다.
이러한 가상화 모듈(43)은 가상 응용 프로그램 설치 모듈(41) 또는 수행 제어 모듈(42)에 의하여 가상 응용 프로그램의 설치 프로세스 또는 가상 응용 프로그램 수행 프로세스에 주입되어, 프로세스에서 호스트 환경, 예컨대 호스트의 파일 시스템 또는 레지스트리로의 접근 API를 호출하면 그 접근 경로를 가상 환경, 예컨대 가상 파일 시스템 또는 가상 레지스트리로 변환하여 해당 프로세스를 가상 환경에서 수행되게 할 수 있다. 이와 같은 가상화 모듈(43)에 의하여 가상 응용 프로그램(32)의 기능들은 가상 환경 내에서 수행될 수 있다. 이러한 가상화 모듈(43)은 사용자 모드(User Mode)에서 동작할 수 있다.
가상 환경 보호 모듈(44)은 가상 환경(30)으로 접근이 허용되지 않은 응용 프로그램, 예컨대 호스트 응용 프로그램 등이 가상 환경(30)으로 접근하는 것을 차단하는 기능을 수행할 수 있다. 예를 들어, 가상 환경 보호 모듈(44)은 가상 파일 시스템이나 가상 레지스트리로 가상 응용 프로그램(32)이나 수행 제어 모듈(42)이 아닌 타 응용 프로그램이 접근하는 것을 차단하는 기능을 수행할 수 있다. 즉, 가상 환경 보호 모듈(44)은 가상 파일 시스템 보호 기능 및 가상 레지스트리 보호 기능을 수행할 수 있다.
또한, 가상 환경 보호 모듈(44)은 가상 응용 프로그램(32)이나 수행 제어 모듈(42)이 아닌 타 응용 프로그램이 가상 응용 프로그램(32) 및 수행 제어 모듈(44)이 사용하는 논리 메모리 영역으로 접근하는 것을 차단하는 기능을 수행할 수도 있 으며, 가상 응용 프로그램(32)이나 수행 제어 모듈(42)의 수행 시 물리 메모리로 어떤 응용 프로그램이 접근하는 것을 차단하는 기능을 수행할 수도 있다. 이와 같은 가상 환경 보호 모듈(44)은 커널 모드(Kernel Mode)에서 동작할 수 있다.
수행 제어 모듈(42)은 가상 응용 프로그램(32)을 가상 환경(30)에서 수행시킨다. 예를 들어, 수행 제어 모듈(42)은 가상 응용 프로그램(32)의 수행 프로세스에 가상화 모듈(43)을 주입하여 해당 가상 응용 프로그램(32)이 가상 환경(30) 내에서 수행될 수 있도록 제어한다. 또한 수행 제어 모듈(42)은 가상 환경 보호 모듈(44)을 동작시켜 가상 환경(30)을 보호할 수 있도록 제어하는 기능을 수행할 수도 있다.
또한, 수행 제어 모듈(42)은 자신도 하나의 가상 응용 프로그램으로 존재할 수도 있으며, 가상 응용 프로그램(32)의 수행에 필요한 부가 기능들, 예컨대 사용자 인터페이스 기능 등을 수행할 수도 있다. 예를 들어, 수행 제어 모듈(42)은 가상 머신 모듈(20)에 구비되어 있는 가상 응용 프로그램의(32) 목록을 제공하고, 해당 목록에서 사용자가 원하는 가상 응용 프로그램(32)을 선택할 수 있도록 할 수 있다. 한편 수행 제어 모듈(42)은 인증 정보 확인 모듈(45)을 제어하여 이동식 저장 장치(60)의 인증 정보를 확인하도록 하는 기능을 수행할 수도 있다.
이러한 수행 제어 모듈(42)은 가상 머신 모듈(20)의 구성요소들을 업데이트 또는 복구하기 위한 업데이트 또는 복구 프로세스를 생성할 수도 있다. 예컨대, 수행 제어 모듈(42)은 업데이트 또는 복구 요청을 응용 프로그램 제공 시스템(100)의 업데이트/복구부(140)로 전송하고, 업데이트/복구부(140)와 연동하여 가상 머신 모 듈(20)의 구성요소들에 대한 업데이트 또는 복구를 가상 환경(30)에서 수행할 수 있다.
가상 응용 프로그램(32)은 가상 환경(30)에 저장되며, 수행 제어 모듈(42)에 의하여 수행될 수 있다. 가상 응용 프로그램(32)은 가상 환경(30), 즉 가상 파일 시스템이나 가상 레지스트리로 접근하여 고유의 기능을 수행한다. 한편, 도시되지는 않았지만 가상 환경(30)에는 가상 응용 프로그램(32)의 수행에 필요한 정보들, 콘텐츠(오디오 콘텐츠, 비디오 콘텐츠, 이미지 콘텐츠 등), 응용 프로그램 제공 시스템(100)으로부터 온라인 서비스 또는 업데이트/복구 서비스들을 제공받기 위하여 필요한 정보들, 예컨대 인증서, 사용자 정보, 로그인 정보(ID, 패스워드 등) 등이 저장될 수도 있다.
인증 정보 확인 모듈(45)은 가상 환경(30)에 저장되어 있는 장치 인증 정보(34)와 이동식 저장 장치(60)의 장치 인증 정보(미도시)를 비교하여 이동식 저장 장치(60)를 인증하는 기능을 수행할 수 있다. 바람직하기로는, 이동식 저장 장치(60)의 장치 인증 정보는 이동식 저장 장치(60)에 부여된 고유한 인증키, 장치 일련번호 등을 의미할 수 있다.
인증 정보 확인 모듈(45)은, 예컨대 이동식 저장 장치(60)가 호스트 컴퓨터와 연동을 시작할 때 또는 수행 제어 모듈(42)의 제어에 따라, 이동식 저장 장치(60)로부터 장치 인증 정보를 추출하고 추출된 이동식 저장 장치(60)의 인증 정보와 가상 환경(30)에 미리 저장되어 있는 장치 인증 정보(34)를 비교하여 이동식 저장 장치(60)를 인증한다. 이때 만약 상기 이동식 저장 장치(60)를 정상적으로 인 증하였을 경우(예컨대, 상기 두 장치 인증 정보가 동일할 경우) 가상 응용 프로그램(32)을 정상적으로 수행할 수 있도록 하고, 상기 이동식 저장 장치(60)의 인증을 실패하였을 경우(예컨대, 상기 두 장치 인증 정보가 상이할 경우) 가상 응용 프로그램(32)의 사용을 금지시킨다. 이때 인증이 실패했음을 알리는 에러 메시지를 표시할 수도 있다.
이러한 이동식 저장 장치(60)의 인증을 위해서, 도 2에 도시되어 있는 응용 프로그램 제공 시스템(100)의 장치 인증 정보 삽입부(120)는 이동식 저장 장치(60)에 장치 인증 정보(34)를 삽입할 수 있다. 장치 인증 정보 삽입부(120)의 동작은 다음과 같은 2가지 실시예로 구분될 수 있다.
1. 이동식 저장 장치(60)가 보안 영역을 가지는 장치일 경우
장치 인증 정보 삽입부(120)는 고유한 장치 인증키 생성하여 이동식 저장 장치(60)의 보안 영역에 저장하는 한편, 해당 장치 인증키를 가상 머신 모듈(20)의 가상 환경(30) 내에 저장한다. 이 경우 가상 머신(40)의 인증 정보 확인 모듈(45)은 이동식 저장 장치(60)의 보안 영역으로의 접근이 허용되며, 보안 영역에 저장된 장치 인증키와 가상 환경(30)에 저장되어 있는 장치 인증키를 비교하여 이동식 저장 장치(60)를 인증할 수 있다.
2. 이동식 저장 장치(60)가 보안 영역이 없는 장치일 경우
장치 인증 정보 삽입부(120)는 이동식 저장 장치(60)의 장치 일련번호를 가상 머신 모듈(20)의 가상 환경(30) 내에 저장한다. 이 경우 가상 머신(20)의 인증 정보 확인 모듈(45)은 이동식 저장 장치(60)로부터 장치 일련번호를 추출한 뒤 추 출한 장치 일련번호와 가상 환경(30)에 저장되어 있는 장치 일련번호를 비교하여 이동식 저장 장치(60)를 인증할 수 있다.
이러한 이동식 저장 장치 인증 기능은 사용자가 이동식 저장 장치(60)에 저장되어 있는 가상 머신 모듈(20)을 다른 장치로 불법적으로 복사하여 가상 응용 프로그램(32)을 수행하는 것을 방지하기 위함이다.
한편, 응용 프로그램 제공 시스템(100)의 온라인 서비스 제공부(130)는 가상 응용 프로그램(32)의 수행을 위하여 또는 수행 시 해당 가상 응용 프로그램(32)의 요청에 따라 온라인 서비스를 제공할 수 있다. 예를 들어, 온라인 서비스 제공부(130)는 가상 응용 프로그램(32)의 요청에 따라 새로운 응용 프로그램, 보안 모듈 등을 제공할 수 있다. 이때 제공된 응용 프로그램, 보안 모듈 등은 가상 머신에 의하여 가상화되어 가상 환경에 설치될 수 있다.
업데이트/복구부(140)는 가상 머신 모듈(20)의 특정 모듈(예컨대 수행 제어 모듈 등)과 연동하여 가상 머신 모듈(20)의 구성 요소를 업데이트(예컨대, 가상 머신이나 응용 프로그램의 버전업, 정보의 갱신 등)하거나 복구(예컨대, 가상 머신이나 응용 프로그램의 손상 복구, 정보의 복구 등)하는 기능을 수행할 수 있다. 예를 들어, 업데이트/복구부(140)는 통신망을 통하여 접속된 사용자 측의 수행 제어 모듈(42)의 요청에 따라 가상 머신 모듈(20)의 구성 요소들의 버전을 체크하여 업데이트를 수행할 수도 있으며, 가상 머신 모듈(20)에 문제가 생긴 경우 웹 기반 또는 응용 프로그램을 통하여 가상 머신 모듈(20)의 구성요소를 복구할 수 있다. 이러한 업데이트/복구 절치는 온라인 루트를 통하여 이루어질 수도 있고, 오프라인 루트를 통하여 이루어질 수도 있다.
이상, 가상 머신을 이용한 응용 프로그램 제공 방법을 실현하기 위한 시스템 구성을 살펴보았다. 이하에서는 이러한 시스템을 기반으로 하는 가상 머신을 이용한 응용 프로그램 제공 방법을 살펴보기로 한다.
도 4는 본 발명의 바람직한 실시예에 따른 가상 머신을 이용한 응용 프로그램 제공 방법을 설명하기 위한 흐름도이다.
도 1 내지 도 4를 참조하면, 먼저 응용 프로그램 제공 시스템(100)은 가상 머신 모듈(20)을 생성한 뒤(단계:S1), 이를 이동식 저장 장치(60)에 설치한다(단계:S2). 상기 가상 머신 모듈(20)은 앞서도 살펴보았듯이, 가상 환경(30) 및 가상 머신(40)을 구비할 수 있다. 상기 가상 환경(30) 내에는 가상 응용 프로그램(예컨대, 게임, 웹브라우저, 워크시트, 워드프로세서, 보안 툴 등)(32)이 저장된다.
다음으로, 응용 프로그램 제공 시스템(100)은 이동식 저장 장치(60)에 장치 인증 정보를 삽입한다(단계:S3). 예를 들어, 응용 프로그램 제공 시스템(100)은 고유한 장치 인증키를 생성하고 이동식 저장 장치(60)의 보안 영역에 저장하는 한편 해당 장치 인증키를 가상 머신 모듈(20)의 가상 환경(30) 내에 저장할 수 있다. 또한 다른 예로서 응용 프로그램 제공 시스템(100)은 이동식 저장 장치(60)의 장치 일련번호를 추출하여 가상 머신 모듈(20)의 가상 환경(30) 내에 저장할 수도 있다.
한편, 응용 프로그램 제공 시스템(100)은 상기 가상 머신 모듈(20)을 이동식 저장 장치에 설치할 때 암호화 모듈(미도시)을 이용하여 가상 머신 모듈(20)의 일부 또는 전부를 고유한 특정 암호화키를 사용하여 암호화하여 이동식 저장 장 치(60)에 설치할 수도 있다. 예를 들어, 응용 프로그램 제공 시스템(100)은 가상 머신 모듈(20)을 생성하고, 가상 환경(30) 내에 장치 인증키를 삽입한 뒤 암호화 모듈을 사용하여 가상 머신 모듈(20)을 고유한 암호화키로 암호화하여 이동식 저장 장치에 설치할 수도 있다. 상기 암호화키는 이동식 저장 장치의 장치 인증 정보와 동일할 수도 있고, 상이한 키일 수도 있다.
이동식 저장 장치(60)에 가상 머신 모듈(20) 및 장치 인증 정보가 구비되면 상기 이동식 저장 장치(60)는 판매처로 접수되며 오프라인 루트를 통하여 사용자에게 제공 될 수 있다(단계:S4). 예를 들어, 사용자는 원하는 응용 프로그램을 구매하기 위하여 판매처를 방문하거나 인터넷 쇼핑, 홈쇼핑 등을 통하여 상기 이동식 저장 장치(60)를 구매할 수 있다. 한편 만약 가상 머신 모듈(20)이 암호화되어 있을 경우 구매 시 사용자는 해당 암호화키도 취득할 수도 있다.
이후, 사용자는 상기 이동식 저장 장치(60)를 휴대하면서 호스트 컴퓨터가 존재하는 곳이라면 어디서든지 안전하게 가상 응용 프로그램(32)을 수행할 수 있다. 또한 호스트 컴퓨터에 통신 기능이 있을 경우, 응용 프로그램 제공 시스템(100)이 제공하는 온라인 서비스를 이용하거나, 업데이트/복구 서비스 등을 이용할 수도 있다.
도 5는 사용자에게 제공된 이동식 저장 장치의 가상 응용 프로그램을 수행하는 과정을 설명하기 위한 흐름도이다.
도 5를 참조하면, 사용자는 자신이 구매한 이동식 저장 장치, 예컨대 USB 메 모리 카드 등을 호스트 컴퓨터에 연결할 수 있다(단계:S11). 그러면 상기 이동식 저장 장치는 호스트 컴퓨터에 의하여 외장형 드라이브로 인식되어 예컨대 "Z:드라이브"와 같은 형태로 표시될 수 있다. 이때 상기 "Z:드라이브"내에는 가상 환경을 구성하는 가상 파일 시스템 및 가상 레지스트리에 의한 다수의 디랙토리들이 존재하며, 특정 위치에는 가상 머신과 가상 응용 프로그램들을 수행할 수 있는 아이콘들이 구비되어 있을 수 있다. 그러면 사용자는 가상 머신의 수행 아이콘을 클릭하거나 가상 응용 프로그램의 수행 아이콘을 클릭할 수 있다. 한편, 가상 머신 모듈이 암호화키를 통해 암호화되어 있을 경우 이동식 저장 장치를 호스트 컴퓨터에 연결하면 먼저 이동식 저장 장치의 암호화 모듈은 암호화키를 입력할 것을 요구할 수 있으며 사용자가 암호화키를 입력하면 암호화된 가상 머신 모듈을 복호화하여 특정 드라이브로 마운트시킬 수도 있다. 만약 암호화키가 없을 경우 가상 머신 모듈의 복호화가 불가능하므로 가상 응용 프로그램을 사용할 수 없다.
이어서, 가상 머신 모듈은 이동식 저장 장치의 장치 인증을 수행할 수 있다(단계:S12, S13). 앞서도 언급했듯이, 상기 이동식 저장 장치는 보안 영역을 구비하는 이동식 저장 매체일 수도 있고, 보안 영역을 구비하지 않는 일반 이동식 저장 매체일 수도 있다. 상기 이동식 저장 장치가 보안 영역을 구비할 경우 상기 보안 영역 내에는 응용 프로그램 제공 시스템에 의하여 저장된 장치 인증키가 저장될 수 있다. 이 경우 가상 머신 모듈에서 장치를 인증하는 과정(단계:S12, S13)은 도 6에 도시된 바와 같다.
도 6은 가상 머신 모듈에서 이동식 저장 장치의 인증을 수행하는 과정을 설 명하기 위한 예시도이다.
도 6을 참조하면, 가상 머신 모듈(20a)의 인증 정보 확인 모듈(45a)은 이동식 저장 장치(60a)의 보안 영역(62)으로 접근하여 보안 영역(62)에 저장된 장치 인증키(DK1)를 추출한다(단계:S21). 또한 가상 머신 모듈(20a)의 인증 정보 확인 모듈(45a)은 가상 환경(30a)에 저장되어 있는 장치 인증키(DK2)를 추출한다(단계:S22). 상기 장치 인증키(DK1, DK2)는 앞서도 언급했듯이 응용 프로그램 제공 시스템에서 저장한 것일 수 있다.
다음으로, 인증 정보 확인 모듈(45a)은 추출된 이동식 저장 장치(60a)의 장치 인증키(DK1)와 가상 환경(30a)에 저장되어 있는 장치 인증키(DK2)를 비교한 뒤(단계:S23), 두 장치 인증키(DK1, DK2)가 일치할 경우 이동식 저장 장치(60a)를 정상적으로 인증하고 두 장치의 인증키(DK1, DK2)가 불일치할 경우 이동식 저장 장치(60a)의 인증을 불허하고, 인증 실패를 나타내는 메시지를 출력할 수 있다(단계:S24).
한편, 이동식 저장 장치가 보안 영역을 구비하지 않는 일반 이동식 저장 매체일 경우 보안 영역이 존재하지 않으므로 이동식 저장 장치의 장치 일련번호를 사용하여 이동시 저장 장치의 인증을 수행할 수 있다. 이 경우 가상 머신 모듈에서 장치를 인증하는 과정은 도 7에 도시된 바와 같다.
도 7은 가상 머신 모듈에서 이동식 저장 장치의 인증을 수행하는 다른 과정을 설명하기 위한 예시도이다.
도 7을 참조하면, 가상 머신 모듈(20b)의 인증 정보 확인 모듈(45b)은 이동식 저장 장치(60b)의 장치 일련번호(DS1)를 추출할 수 있다(단계:S31). 또한 가상 머신 모듈(21b)의 인증 정보 확인 모듈(45b)은 가상 환경(30b)에 저장되어 있는 장치 일련번호(DS2)를 추출한다(단계:S32).
이어서, 인증 정보 확인 모듈(45b)은 추출된 이동식 저장 장치(60b)의 장치 일련번호(DS1)와 가상 환경(30b)에 저장되어 있는 장치 일련번호(DS2)를 비교한 뒤(단계:S33), 두 장치 일련번호(DS1, DS2)가 일치할 경우 이동식 저장 장치(60b)를 정상적으로 인증하고 두 장치의 일련번호(DS1, DS2)가 불일치할 경우 이동식 저장 장치(60b)의 인증을 불허하고, 인증 실패를 나타내는 메시지를 출력할 수 있다(단계:S33).
이와 같은 이동식 저장 장치의 장치 인증 과정을 통하여 인증 실패가 발생했을 경우, 불법적인 복사가 발생한 것을 의미할 수 있으므로 가상 머신 모듈은 가상 응용 프로그램의 수행을 차단한다(단계:S16). 이 경우 사용자가 가상 응용 프로그램의 수행 아이콘을 클릭하더라도 가상 응용 프로그램은 수행되지 않는다.
반면, 이동식 저장 장치의 인증이 정상적으로 수행되었을 경우, 가상 머신은 가상 응용 프로그램을 수행시킨다(단계:S15). 이때 가상 머신은 가상 응용 프로그램을 수행시키기에 앞서 가상 환경을 보호하기 위한 가상 환경 보호 모듈을 수행시킬 수도 있다(단계:S14).
예를 들어, 앞서 언급했듯이 사용자가 가상 머신의 수행 아이콘을 클릭했다 고 가정하고, 인증이 정상적으로 이루어졌을 경우, 가상 머신은 가상 환경에 저장된 가상 응용 프로그램의 목록을 제공하고 사용자가 해당 목록에서 원하는 가상 응용 프로그램을 선택하면 가상 환경 보호 모듈을 수행시킨 후 가상 응용 프로그램을 수행시킬 수 있다. 한편 사용자가 가상 응용 프로그램의 수행 아이콘을 직접 클릭했다고 가정하고, 인증이 정상적으로 이루어졌을 경우, 가상 머신은 가상 환경 보호 모듈을 수행시킨 후 클릭한 가상 응용 프로그램을 수행시킬 수 있다.
상기 가상 환경 보호 모듈은 가상 머신 모듈 내에 가상 환경으로 가상 응용 프로그램이나 가상 머신이 아닌 다른 응용 프로그램(예컨대, 호스트 컴퓨터의 응용 프로그램 등)이 접근하는 것을 차단한다.
한편, 이동식 저장 장치와 연결된 호스트 컴퓨터가 네트워크 접속 기능을 구비하여 응용 프로그램 제공 시스템과의 연동이 가능할 경우 온라인 서비스 등을 제공할 수 있다. 예를 들어, 이동식 저장 장치에 온라인 서비스(예컨대 온라인 게임 등)에 필요한 가상 응용 프로그램, 예컨대 웹브라우저, 보안 모듈 등을 포함하는 가상 머신 모듈을 설치하고, 이동식 저장 장치의 인증 정보를 삽입하여 판매 또는 배포한 경우 사용자는 네트워크로의 접속이 가능한 호스트 컴퓨터에 이동식 저장 장치를 연결하여 응용 프로그램 제공 시스템의 온라인 서비스 제공부로 접속할 수 있다. 그러면 가상 머신 모듈은 이동식 저장 장치의 인증을 수행한 후 가상 응용 프로그램을 수행시켜 온라인 서비스를 제공받을 수 있다. 이때 가상 머신 모듈은 서비스에 필요한 새로운 가상 응용 프로그램을 온라인 서비스 제공부로부터 제공받아 가상 환경에 설치한 후 수행할 수도 있다.
한편, 가상 머신 모듈은 사용자의 요청 또는 미리 설정된 주기에 따라 응용 프로그램 제공 시스템에 가상 머신 모듈의 구성요소의 업데이트를 요청할 수도 있다. 예를 들면 가상 머신 모듈은 사용자의 요청 또는 미리 설정된 주기에 따라 업데이트 프로세스를 생성하고 응용 프로그램 제공 시스템과 연동하여 버전 체크 등을 수행한 후 업데이트가 필요할 경우 업데이트를 수행할 수 있다.
또한 가상 머신은 가상 머신 모듈의 구성요소에 손상이 발생했을 경우 사용자의 요청 또는 자체적인 손상 체크 결과에 따라 응용 프로그램 제공 시스템에 상기 손상에 대한 복구를 요청할 수도 있다. 예를 들면 가상 머신은 상기 손상에 대한 복구 프로세스를 생성하고 응용 프로그램 제공 시스템에 요청하여 손상 부분에 대한 복구를 수행할 수도 있다.
상기 업데이트 및 복구는 사용자의 요청에 따라 오프라인 루트를 통하여 요청될 수도 있다. 예를 들면, 사용자는 이동식 저장 장치의 서비스 센터, 판매처 또는 배포처 등으로 이동식 저장 장치의 업데이터 또는 복구를 요청할 수도 있으며, 해당 업체의 직원은 이동식 저장 장치를 응용 프로그램 제공 시스템에 연결한 후 가상 머신을 수행시켜 가상 머신과 응용 프로그램 제공 시스템과의 연동을 통하여 업데이트 및 복구를 수행할 수도 있다.
이상 본 발명에 대하여 그 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 기술적 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시켜 실시할 수 있음을 이해할 수 있을 것이다. 따라서, 본 발명의 앞으로의 실 시예들의 변경은 본 발명의 기술을 벗어날 수 없을 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 가상 머신을 이용한 응용 프로그램 제공 방법을 실현하기 위한 응용 프로그램 제공 시스템의 개념을 설명하기 위한 예시도이다.
도 2는 도 1에 도시되어 있는 응용 프로그램 제공 시스템의 상세 구성을 설명하기 위한 블록도이다.
도 3은 가상 머신 설치부에 의해 제공될 수 있는 가상 머신 모듈의 구성을 도시하는 블록도이다.
도 4는 본 발명의 바람직한 실시예에 따른 가상 머신을 이용한 응용 프로그램 제공 방법을 설명하기 위한 흐름도이다.
도 5는 사용자에게 제공된 이동식 저장 장치의 가상 응용 프로그램을 수행하는 과정을 설명하기 위한 흐름도이다.
도 6은 가상 머신 모듈에서 이동식 저장 장치의 인증을 수행하는 과정을 설명하기 위한 예시도이다.
도 7은 가상 머신 모듈에서 이동식 저장 장치의 인증을 수행하는 다른 과정을 설명하기 위한 예시도이다.
<도면의 주요 부분에 대한 부호 설명>
20 : 가상 머신 모듈
30 : 가상 환경
320 : 가상 응용 프로그램
34 : 장치 인증 정보
40 : 가상 머신
41 : 가상 응용 프로그램 설치 모듈
42 : 수행 제어 모듈
43 : 가상화 모듈
44 : 가상 환경 보호 모듈
45 : 인증 정보 확인 모듈
60 : 이동식 저장 장치
100 : 응용 프로그램 제공 시스템
110 : 가상 머신 설치부
120 : 장치 인증 정보 삽입부
130 : 온라인 서비스 제공부
140 : 업데이트/복구부

Claims (23)

  1. 삭제
  2. 삭제
  3. 삭제
  4. 삭제
  5. 가상 환경과, 상기 가상 환경에 설치되는 가상 응용 프로그램 및 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 가상 머신을 포함하는 가상 머신 모듈을 생성하여 이동식 저장 장치에 설치하는 가상 머신 설치부; 및
    상기 이동식 저장 장치의 인증 정보를 상기 이동식 저장 장치에 삽입하는 장치 인증 정보 삽입부를 포함하며,
    상기 가상 머신은,
    가상화 처리 기능을 수행하는 가상화 모듈;
    상기 가상화 모듈 사용하여 상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키는 수행 제어 모듈;
    상기 가상 환경으로 허가되지 않은 응용 프로그램이 접근하는 것을 차단하는 가상 환경 보호 모듈; 및
    상기 가상 환경에 저장되어 있는 장치 인증 정보와 상기 이동식 저장 장치의 장치 인증 정보를 비교하여 상기 이동식 저장 장치를 인증하는 기능을 수행하는 인증 정보 확인 모듈을 포함하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  6. 삭제
  7. 제 5 항에 있어서, 상기 가상화 모듈은 상기 수행 제어 모듈에 의하여 상기 가상 응용 프로그램의 수행 프로세스에 주입되어, 프로세스에서 호스트 환경 내의 호스트 파일 시스템 또는 호스트 레지스트리로의 접근 API(Application Program Interface)가 호출하면 그 접근 경로를 상기 가상 환경 내의 가상 파일 시스템 또는 가상 레지스트리로 각각 변환하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  8. 제 5 항에 있어서, 상기 수행 제어 모듈은 상기 가상 머신 모듈의 구성요소를 업데이트 또는 복구하기 위한 업데이트 또는 복구 프로세스를 생성하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  9. 삭제
  10. 제 5 항에 있어서, 상기 가상 머신은 응용 프로그램 셋업 프로세스에 상기 가상화 모듈을 주입하여 상기 응용 프로그램의 셋업 프로세스를 가상 응용 프로그램 셋업 프로세스로 변환하고, 변환된 상기 가상 응용 프로그램 셋업 프로세스를 수행시켜 상기 가상 환경에 가상 응용 프로그램을 설치하는 가상 응용 프로그램 설치 모듈을 더 포함하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  11. 제 5 항에 있어서, 상기 가상 머신 모듈과 연동하여 상기 가상 머신의 구성 요소를 업데이트 또는 복구하는 업데이트/복구부; 및
    상기 가상 응용 프로그램의 요청에 따라 온라인 서비스를 제공하는 온라인 서비스 제공부를 더 포함하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  12. 제 5 항에 있어서, 상기 장치 인증 정보 삽입부는 고유한 장치 인증키를 생성하여 상기 이동식 저장 장치의 보안 영역에 저장하고, 상기 생성된 장치 인증키를 상기 가상 머신 모듈의 가상 환경에 저장하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  13. 제 5 항에 있어서, 상기 장치 인증 정보 삽입부는 상기 이동식 저장 장치의 장치 일련번호를 상기 가상 머신 모듈의 가상 환경에 저장하는 것을 특징으로 하는 응용 프로그램 제공 시스템.
  14. 가상 환경 및 가상 머신을 구비하는 이동식 저장 장치를 사용하여 가상 응용 프로그램을 수행하는 방법에 있어서,
    호스트 시스템과 연동하는 단계;
    상기 가상 머신을 이용하여, 상기 가상 환경에 저장되는 인증 정보를 상기 이동식 저장 장치의 인증 정보와 비교하여 상기 이동식 저장 장치의 장치 인증을 수행하는 단계; 및
    상기 장치 인증이 정상적으로 이루어졌을 경우, 상기 가상 머신을 이용하여 상기 가상 환경에 구비된 가상 응용 프로그램을 상기 가상 환경에서 수행하는 단계를 포함하는 것을 특징으로 하는 가상 응용 프로그램 수행 방법.
  15. 제 14 항에 있어서, 상기 장치 인증을 수행하는 단계는,
    상기 이동식 저장 장치의 보안 영역으로부터 상기 이동식 저장 장치의 장치 인증키를 추출하는 단계;
    상기 가상 영역으로부터 장치 인증키를 추출하는 단계;
    상기 보안 영역으로부터 추출한 장치 인증키와 상기 가상 영역으로부터 추출한 장치 인증키를 비교하는 단계; 및
    상기 비교에서, 상기 보안 영역으로부터 추출한 장치 인증키와 상기 가상 영역으로부터 추출한 장치 인증키가 일치할 경우 상기 이동식 저장 장치를 정상적으로 인증하고, 일치하지 않을 경우 상기 이동식 저장 장치의 인증을 불허하는 단계를 포함하는 것을 특징으로 하는 가상 응용 프로그램 수행 방법.
  16. 제 14 항에 있어서, 상기 장치 인증을 수행하는 단계는,
    상기 이동식 저장 장치로부터 상기 이동식 저장 장치의 장치 일련번호를 추출하는 단계;
    상기 가상 영역에 저장된 장치 일련번호를 추출하는 단계;
    상기 이동식 저장 장치의 장치 열련번호와 상기 가상 영역으로부터 추출한 장치 일련번호를 비교하는 단계; 및
    상기 비교에서, 상기 이동식 저장 장치의 일련번호와 상기 가상 영역으로부터 추출한 장치 일련번호가 일치할 경우 상기 이동식 저장 장치를 정상적으로 인증하고, 일치하지 않을 경우 상기 이동식 저장 장치의 인증을 불허하는 단계를 포함하는 것을 특징으로 하는 가상 응용 프로그램 수행 방법.
  17. 제 14 항에 있어서, 상기 장치 인증이 실패했을 경우, 상기 가상 응용 프로그램의 수행을 차단하는 단계; 및
    상기 이동식 저장 장치의 인증이 실패했음을 알리는 메시지를 출력하는 단계를 더 포함하는 것을 특징으로 하는 가상 응용 프로그램 수행 방법.
  18. 제 14 항에 있어서, 상기 가상 머신을 이용하여 상기 가상 환경을 허가되지 않은 접근으로부터 보호하기 위한 가상 환경 보호 모듈을 수행시키는 단계를 더 포함하는 것을 특징으로 하는 가상 응용 프로그램 수행 방법.
  19. 이동식 저장 장치에 구비되는 가상 머신 모듈에 있어서,
    가상 응용 프로그램이 설치 및 수행되고, 상기 이동식 저장 장치를 인증하기 위한 인증 정보를 저장하는 가상 환경; 및
    상기 가상 응용 프로그램을 상기 가상 환경에서 수행시키고, 상기 가상 환경에 저장되는 인증 정보를 이용하여 상기 이동식 저장 장치의 인증을 수행하는 가상 머신을 포함하고,
    상기 가상 머신은 상기 가상 환경에 저장되는 인증 정보를 상기 이동식 저장 장치의 인증 정보와 비교하여 상기 이동식 저장 장치의 인증을 수행하는 것을 특징으로 하는 가상 머신 모듈.
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
KR1020080069263A 2008-07-16 2008-07-16 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법 KR101032386B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020080069263A KR101032386B1 (ko) 2008-07-16 2008-07-16 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020080069263A KR101032386B1 (ko) 2008-07-16 2008-07-16 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법

Publications (2)

Publication Number Publication Date
KR20100008678A KR20100008678A (ko) 2010-01-26
KR101032386B1 true KR101032386B1 (ko) 2011-05-03

Family

ID=41817260

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080069263A KR101032386B1 (ko) 2008-07-16 2008-07-16 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법

Country Status (1)

Country Link
KR (1) KR101032386B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101327193B1 (ko) * 2011-07-04 2013-11-06 (주)삼성디지탈솔루션 사용자 접근추적이 가능한 이동식 저장매체 보안 방법
KR101366453B1 (ko) * 2012-06-14 2014-02-26 사단법인 금융결제원 가상화를 이용한 클라우드 뱅킹 운영 시스템과 그 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160043134A (ko) * 2011-09-30 2016-04-20 인텔 코포레이션 가상 머신 및 네스티드 가상 머신 매니저의 인증 론치
KR101375656B1 (ko) * 2012-08-13 2014-03-18 주식회사 안랩 프로그램 보호 장치 및 프로그램 보호 방법
KR101416322B1 (ko) 2012-09-11 2014-07-08 도시바삼성스토리지테크놀러지코리아 주식회사 복사 방지된 타이틀의 인증 방법 및 이를 적용하는 재생장치
KR102088290B1 (ko) 2016-01-07 2020-03-12 한국전자통신연구원 보안 영역 기반의 신뢰서비스 제공 방법 및 이를 이용한 장치

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362516A (ja) * 2003-05-30 2004-12-24 Hagiwara Sys-Com:Kk Usb暗号化装置及びプログラム
KR20060062587A (ko) * 2004-12-04 2006-06-12 소프트온넷(주) 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법
KR20080051019A (ko) * 2006-12-04 2008-06-10 한국전자통신연구원 이동식 컴퓨팅 체제를 지원하는 이동식 저장 장치 및 이를이용한 이동식 컴퓨팅 체제 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004362516A (ja) * 2003-05-30 2004-12-24 Hagiwara Sys-Com:Kk Usb暗号化装置及びプログラム
KR20060062587A (ko) * 2004-12-04 2006-06-12 소프트온넷(주) 호스트 컴퓨터상에서 응용프로그램 수행을 위한 휴대용디지털 저장장치 시스템 및 방법
KR20080051019A (ko) * 2006-12-04 2008-06-10 한국전자통신연구원 이동식 컴퓨팅 체제를 지원하는 이동식 저장 장치 및 이를이용한 이동식 컴퓨팅 체제 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101327193B1 (ko) * 2011-07-04 2013-11-06 (주)삼성디지탈솔루션 사용자 접근추적이 가능한 이동식 저장매체 보안 방법
KR101366453B1 (ko) * 2012-06-14 2014-02-26 사단법인 금융결제원 가상화를 이용한 클라우드 뱅킹 운영 시스템과 그 방법

Also Published As

Publication number Publication date
KR20100008678A (ko) 2010-01-26

Similar Documents

Publication Publication Date Title
EP1443381B1 (en) System and method for secure software activation with volume licenses
US9300640B2 (en) Secure virtual machine
CN102073826B (zh) 利用轻量级数字水印添加组件的数字版权管理的系统和方法
JP4694077B2 (ja) 権利管理アーキテクチャにおける保護コンテンツにアクセスするためのコンピューティングデバイス
CN101213557B (zh) 限制操作系统及其它软件的安装的反骇客保护
US8353046B2 (en) System and method for delivery of a modular operating system
US7356682B2 (en) Attesting to a value of a register and/or memory region
US5903650A (en) Method and apparatus for electronic license distribution
US20070226492A1 (en) Secure processor architecture for use with a digital rights management (drm) system on a computing device
EP3005216B1 (en) Protecting anti-malware processes
KR101032386B1 (ko) 가상 머신을 이용한 응용 프로그램 제공 방법 및 시스템,가상 응용 프로그램 수행 방법, 가상 머신 모듈 및 온라인서비스 제공 방법
JP4005026B2 (ja) プログラムのセキュアな配布方法及び装置
KR100963089B1 (ko) 복제를 방지하기 위한 소프트웨어 설치 시스템 및 방법
US20080263542A1 (en) Software-Firmware Transfer System
JPH10214297A (ja) インターネットを利用した会員制サービスシステムおよび方法
KR20090048581A (ko) 가상 머신 활성화를 갖는 휴대용 대량 저장장치
US20090271875A1 (en) Upgrade Module, Application Program, Server, and Upgrade Module Distribution System
EP2728503B1 (en) Information processing device, control method therefor, program, and information storage medium
US9887979B1 (en) Systems and methods for enabling users to launch applications without entering authentication credentials
KR101020060B1 (ko) 가상 머신을 이용한 전자 뱅킹 서비스 제공 방법 및 가상머신
US20140366149A1 (en) System and method for using digital strings to provide secure distribution of digital content
EP3123384B1 (en) Protecting an item of software
JP2017058711A (ja) ライセンス管理装置、ライセンス管理システム、ライセンス管理プログラムおよびライセンス管理方法
Gibson Windows 7 Desktop Support and Administration: Real World Skills for MCITP Certification and Beyond (Exams 70-685 and 70-686)
CN112632571A (zh) 数据加密方法、解密方法与装置及存储装置

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: 20140415

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150422

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160425

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170406

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180406

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20190418

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20200312

Year of fee payment: 10