KR102295960B1 - 가상화 기반의 보안 서비스 제공 장치 및 제공 방법 - Google Patents

가상화 기반의 보안 서비스 제공 장치 및 제공 방법 Download PDF

Info

Publication number
KR102295960B1
KR102295960B1 KR1020150020338A KR20150020338A KR102295960B1 KR 102295960 B1 KR102295960 B1 KR 102295960B1 KR 1020150020338 A KR1020150020338 A KR 1020150020338A KR 20150020338 A KR20150020338 A KR 20150020338A KR 102295960 B1 KR102295960 B1 KR 102295960B1
Authority
KR
South Korea
Prior art keywords
virtual machine
security
host
secure
monitor unit
Prior art date
Application number
KR1020150020338A
Other languages
English (en)
Other versions
KR20160097892A (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 KR1020150020338A priority Critical patent/KR102295960B1/ko
Priority to US15/092,744 priority patent/US9948616B2/en
Publication of KR20160097892A publication Critical patent/KR20160097892A/ko
Application granted granted Critical
Publication of KR102295960B1 publication Critical patent/KR102295960B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6281Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database at program execution time, where the protection is within the operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45587Isolation or security of virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1052Security improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/152Virtualized environment, e.g. logically partitioned system

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명에 따른 가상화 기반의 보안 서비스 제공 장치는 일반 실행 환경을 제어하는 호스트 운영체제가 동작하는 호스트 가상머신, 호스트 가상 머신과 분리되어 독립적으로 보안 운영체제가 동작하는 보안 가상머신 및 가상화 기술을 통해 상기 호스트 가상머신 및 상기 보안 가상머신을 할당하는 가상머신 모니터부를 포함한다. 호스트 가상머신 및 보안 가상머신은 가상머신 모니터부를 통해서만 시스템 자원에 접근이 가능하며, 가상머신 모니터부는 사용자로부터 수신된 사용자 입력 신호를 구분하여 호스트 가상머신 및 보안 가상머신에 전달한다.

Description

가상화 기반의 보안 서비스 제공 장치 및 제공 방법{APPARATUS AND METHOD FOR SECURITY SERVICE BASED VIRTUALIZATION}
본 발명은 시스템 보안에 관한 기술로서, 보다 상세하게는 가상화 기술을 이용한 보안 서비스에 관한 기술이다.
디지털 기술의 발달과 함께 PC나 스마트 기기를 통해 인터넷 금융 서비스, 모바일 결제 및 원격진료 등과 같이 보안이 중요한 서비스를 언제 어디서든 제공받을 수 있게 되었다. 이처럼 PC나 스마트 기기를 통해 제공받을 수 있는 서비스들이 증가하고, 더 많은 중요한 개인정보가 기기에 저장되면서, 관련 보안 기술 또한 빠르게 발전하고 있다. 일반적으로, 위와 같은 보안 서비스에서, 비밀번호 및 카드정보와 같은 중요한 데이터는 범용 운영체제(OS)에서 동작하는 어플리케이션(Application)을 통해 입력되고, 중요 정보는 암호화되어 송수신된다.
이와 같은 환경에서 범용 운영체제 또는 범용 운영체제에서 동작하는 다른 어플리케이션은 저장되어 있는 보안 데이터에 쉽게 접근할 수 있고 사용자가 입력하는 보안 데이터 역시 쉽게 획득될 수 있다. 따라서, 사용자 단말이 해킹되거나 악성코드에 감염되는 경우 암호화와 관련된 정보 및 사용자로부터 입력된 보안 데이터가 쉽게 외부로 유출될 수 있다. 이러한 문제를 해결하기 위하여, 보안 데이터를 보안 영역에 별도로 보관하여 처리하는 보안 기술이 개발되었으나 보안 데이터를 처리하거나 사용자 입출력을 처리하는 보안 어플리케이션은 여전히 범용 운영체제에서 수행되기 때문에 보안 취약성을 해결하지 못한다. 대한민국 공개특허 제10-2013-0109560호는 이와 같은 보안 취약성을 해결하기 위한 기술에 대해 기재되어 있으나, 범용 운영체제에 따른 유출 문제를 해결하지 못한다.
대한민국 공개특허 제10-2013-0109560호
본 발명이 해결하고자 하는 과제는 운영체제 간 완벽한 격리를 제공하는 가상화 기술을 이용하여 운영체제의 보안취약으로 인해 발생할 수 있는 보안 데이터의 손상 또는 유출을 예방할 수 있는 가상화 기반의 보안 서비스 제공 장치 및 방법을 제공하는 것이다.
본 발명에 따른 가상화 기반의 보안 서비스 제공 장치는 일반 실행 환경을 제어하는 호스트 운영체제가 동작하는 호스트 가상머신, 호스트 가상 머신과 분리되어 독립적으로 보안 운영체제가 동작하는 보안 가상머신 및 가상화 기술을 통해 상기 호스트 가상머신 및 상기 보안 가상머신을 할당하는 가상머신 모니터부를 포함한다. 호스트 가상머신 및 보안 가상머신은 가상머신 모니터부를 통해서만 시스템 자원에 접근이 가능하며, 가상머신 모니터부는 사용자로부터 수신된 사용자 신호를 구분하여 호스트 가상머신 및 보안 가상머신에 전달한다. 그리고, 가상머신 모니터부는 보안 가상머신의 보안 어플리케이션 실행 여부 및 사용자 입력의 보안 어플리케이션 전달 여부에 기초하여 사용자 입력 신호를 보안 가상머신에만 전달한다.
보안 가상머신은 호스트 가상머신으로부터 보안 서비스 요청이 수신되면, 보안 및 인증을 요구하는 보안 어플리케이션을 실행하고, 데이터를 암호화하여 암호화된 데이터를 가상머신 모니터부를 통해 상기 호스트 가상머신으로 전달한다. 호스트 가상머신은 가상머신 모니터부를 거쳐 수신된 암호화된 데이터를 보안 서비스를 제공하는 보안 서비스 서버로 전달한다. 이러한 과정을 통해, 보안 가상머신은 호스트 운영체제와 독립된 보안 운영체제 상에서 보안 어플리케이션을 실행하고, 데이터 암호화를 통해 암호화된 데이터를 가상머신 모니터부를 거쳐 호스트 가상머신을 통해 외부 네트워크로 전달한다.
가상머신 모니터부는 보안 서비스가 요구되지 않은 일반 실행 환경에서 상기 보안 가상머신을 유휴 상태(Idle)로 전환하고, 호스트 가상머신으로부터 보안 서비스 요청 수신 시 유휴 상태인 보안 가상머신을 활성화한다. 그리고, 가상머신 모니터부에서 물리메모리 영역을 호스트 물리메모리 영역과 보안 물리메모리 영역으로 구분하여 할당하고, 호스트 운영체제는 호스트 가상메모리를 호스트 물리메모리 영역에 매핑하고, 보안 운영체제는 보안 가상메모리를 보안 물리메모리 영역에 매핑한다. 호스트 운영체제 및 보안 운영체제는 호스트 가상메모리 및 보안 가상메모리의 사용자 출력 신호를 호스트 물리메모리 영역 및 보안 물리메모리 영역에 각각 매핑하고, 가상머신 모니터부는 호스트 물리메모리 영역 및 보안 물리메모리 영역에 매핑된 사용자 출력 신호를 사용자 출력 장치로 전달한다.
본 발명에 따른 가상화 기반의 보안 서비스 제공 방법은 서로 다른 운영체제가 동작하는 호스트 가상머신 및 보안 가상머신을 이용하여 제공된다. 먼저, 호스트 가상머신으로부터 보안 서비스 요청 수신 시 상기 가상머신 모니터부가 유휴 상태인 보안 가상머신을 활성화한다. 그리고, 활성화된 보안 가상머신은 보안 서비스를 제공하는 보안 서비스 서버와 상호 인증을 수행하고, 보안 어플리케이션을 실행한다. 가상머신 모니터부는 보안 어플리케이션 실행 여부에 기초하여 보안 가상머신으로 수신된 사용자 입력 신호를 전달한다. 사용자 입력 신호가 수신되면, 보안 가상머신은 데이터를 암호화하여 생성된 암호화된 데이터를 가상머신 모니터부로 전달하여, 가상머신 모니터부 및 호스트 가상머신을 순서대로 거쳐 보안 서비스 서버로 전달한다. 그리고, 보안 서비스가 종료되면, 가상머신 모니터부는 보안 가상머신을 유휴 상태(Idle)로 전환한다.
가상머신 모니터부는 상기 보안 어플리케이션이 실행된 상태이고, 상기 수신된 사용자 입력 신호가 보안 어플리케이션의 입력인 경우 상기 보안 가상머신으로 전달하고, 상기 보안 어플리케이션이 실행되지 않은 상태이거나, 상기 수신된 사용자 입력 신호가 보안 어플리케이션의 입력이 아닌 경우 상기 호스트 가상 머신으로 전달한다.
본 발명에 따른 가상화 기반의 보안 서비스 제공 장치 및 제공 방법은 호스트 운영체제와 보안 운영체제를 완벽하게 분리하여 운영함으로써 운영체제의 보안취약으로 인해 발생할 수 있는 보안 문제를 해결할 수 있다. 특히, 서로 다른 운영체제가 동작하는 두 가상머신 사이에서 암호화되지 않은 어떠한 데이터도 서로 교환되지 않기 때문에, 단말을 동작시키는 호스트 운영체제의 해킹이나 악성코드 오염 여부에 관계없이 보안 어플리케이션 실행환경의 신뢰성을 확보하고 효율적인 시스템 운영을 제공할 수 있다. 따라서, 모바일 결제, 인터넷 뱅킹 및 원격 진료 등과 같이 보안이 중요한 서비스에 대해 보안성과 효율성이 강화된 환경을 제공할 수 있다.
도 1은 본 발명에 따른 가상화 기반의 보안 서비스 제공 장치의 일 실시예를 나타내는 구성도이다.
도 2는 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 상세도이다.
도 3은 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 가상머신 스케줄링 기법을 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 보안 서비스 과정을 나타내는 흐름도이다.
도 5는 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 사용자 입출력 신호 구분을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 방법을 나타내는 흐름도이다.
이하, 본 발명의 실시예를 첨부된 도면들을 참조하여 상세하게 설명한다. 본 명세서에서 사용되는 용어 및 단어들은 실시예에서의 기능을 고려하여 선택된 용어들로서, 그 용어의 의미는 발명의 의도 또는 관례 등에 따라 달라질 수 있다. 따라서 후술하는 실시예에서 사용된 용어는, 본 명세서에 구체적으로 정의된 경우에는 그 정의에 따르며, 구체적인 정의가 없는 경우는 당업자들이 일반적으로 인식하는 의미로 해석되어야 할 것이다.
도 1은 본 발명에 따른 가상화 기반의 보안 서비스 제공 장치의 일 실시예를 나타내는 구성도이다.
도 1을 참조하면, 본 발명에 따른 가상화 기반의 보안 서비스 제공 장치(100)는 가상머신 모니터부(110), 호스트 가상머신(120) 및 보안 가상머신(130)을 포함한다. 그리고, 가상화 기반의 보안 서비스 제공 장치(100)는 단말의 하드웨어 자원으로서, 프로세서, 메모리, 디스플레이 장치 및 통신 모듈 등의 하드웨어를 포함한 입출력(I/O) 장치로 구성될 수 있다.
가상머신 모니터부(110)는 서로 다른 운영체제를 각각의 가상머신(110,120)에서 동작시키기 위한 가상화(Virtualization)를 지원한다. 가상머신 모니터부(110)는 하드웨어의 자원을 가상화하여 호스트 가상머신(120) 및 보안 가상머신(130)에 할당한다. 가상머신 모니터부(110)는 가상화 기술을 통해 둘 이상의 가상머신을 할당하고 서로 다른 가상머신을 통해 둘 이상의 운영체제(Operation System, OS)를 동작시킨다. 또한, 가상머신 모니터부(110)는 가상 머신을 만들기 위해 가상 머신 모니터(Virtual Machine Monitor) 또는 하이퍼바이저(Hypervisor)와 같은 레이어(Layer)를 사용할 수 있다. 그리고, 가상머신 모니터부(110)는 운영체제의 관리프로그램(Supervisor) 또는 커널(Kernel)보다 높은 수준의 제어를 가지며, 호스트 가상머신(120) 및 보안 가상머신(130)이 시스템 하드웨어에 직접 연결되는 것을 차단하고, 두 가상머신(120,130)을 서로 격리시켜 분리할 수 있다.
그리고, 가상머신 모니터부(110)는 사용자 입출력 주변장치(10)를 통해 사용자로부터 수신되는 사용자 입출력 신호를 구분하여 호스트 가상머신(120) 및 보안 가상머신(130)로 전달한다. 사용자 입출력 주변장치(10)는 사용자로부터 입력을 수신하는 장치로서, 예를 들어 모바일 단말의 키패드, 터치 스크린 인터페이스 및 물리 입력을 포함할 수 있다. 범용 데이터는 사용자가 다양한 어플리케이션을 통해 입력하는 입출력 신호 중에서 보안과 관계되지 않은 데이터를 의미한다. 예를 들어, 범용 데이터는 웹 브라우저의 검색어, 메시지 및 다양한 조작을 위한 입력 등을 포함하는 신호로서, 특별한 보안이나 인증을 요구하지 않는 대부분의 신호를 의미한다. 보안 데이터는 보안 또는 인증을 필요로 하는 보안 어플리케이션을 통해 입력하는 데이터 및 보안과 관련된 데이터를 의미한다. 예를 들어, 보안 데이터는 금융 어플리케이션을 통해 입력되는 개인정보, 비밀 번호 및 카드 정보와 같은 보안과 관련된 정보를 포함할 수 있다. 가상머신 모니터부(110)는 수신된 사용자 입출력 신호의 포커싱에 따라 구분하여 범용 데이터는 호스트 가상머신(120)으로 전달하고, 보안 데이터는 보안 가상머신(130)으로 전달할 수 있다. 또한, 가상머신 모니터부(110)는 보안 가상머신(130)의 활성화 상태나 실행중인 보안 어플리케이션에 따라 사용자 입출력 신호를 범용 데이터 및 보안 데이터로 구분하여 각각 호스트 가상머신(120) 또는 보안 가상머신(130)으로 전달할 수 있다.
가상머신 모니터부(110)는 수신되는 데이터를 구분하여, 범용 데이터는 호스트 가상머신(120)로 전달하고, 보안 데이터는 보안 가상머신(130)로 전달한다. 또한, 보안 가상머신(130)의 보안 운영체제는 암호화된 데이터를 외부와 송수신하기 위하여 호스트 가상머신(120)의 호스트 운영체제에서 제공하는 네트워크 장치를 이용한다. 즉, 보안 가상머신(130)은 외부 네트워크에 직접 연결되지 않으며, 가상머신 모니터부(110)의 통신 방법을 통하여 외부 네트워크에 연결된 호스트 가상머신(120)을 통해서만 연결이 가능하다.
그리고, 가상머신 모니터부(110)는 가상머신 스케줄링 기법을 통해 호스트 운영체제가 동작하는 호스트 가상머신(120) 및 보안 운영체제가 동작하는 보안 가상머신(130)을 실행 환경을 가변적으로 조절하여 시스템의 성능 저하를 최소화하여 보안성과 효율성을 동시에 달성할 수 있다. 가상머신 스케줄링 기법은 후술하는 도 3에서 상세히 설명하도록 한다.
호스트 가상머신(120)은 일반 실행 환경을 제어하여 범용 데이터를 저장하고 범용 어플리케이션의 실행환경을 제공하는 호스트 운영체제가 동작한다. 범용 데이터 및 범용 어플리케이션은 특별한 보안 및 인증을 필요로 하지 않는 일반적인 데이터 파일과 어플리케이션을 의미한다. 즉, 호스트 가상머신(120)의 호스트 운영체제는 일반적으로 모바일 단말이나 PC를 동작시키는 운영체제가 될 수 있다. 호스트 운영체제는 가상머신 모니터부(110)를 통해 가상화된 시스템 자원을 제공받기 때문에, 가상머신 모니터부(110) 및 보안 가상머신(130)의 보안 운영체제에 접근할 수 없다. 그리고, 호스트 가상머신(120)은 호스트 운영체제 커널 아래에 네트워크 및 저장장치 등의 범용 장치 드라이버, 가상머신 모니터부(110)에서 구분되어 전달되는 가상 입출력 장치를 위한 드라이버 및 암호화된 데이터 송수신을 제공하는 클라이언트 통신 에이전트를 포함한다.
보안 가상머신(130)은 보안 데이터를 저장하고 보안 어플리케이션의 실행환경을 제공하는 보안 운영체제가 동작한다. 보안 운영체제는 호스트 가상머신(120)의 호스트 운영체제와 분리되어 독립적으로 동작하여 보안 가상머신(130)을 구동하는 운영체제이다. 그리고, 보안 데이터는 사용자 개인정보, 비밀번호 및 카드정보와 같이 보안이 요구되는 기밀 데이터를 의미하고, 보안 어플리케이션은 금융서비스 및 물품결제와 관련된 어플리케이션과 같이 보안 데이터를 이용하는 어플리케이션을 의미한다. 금융 및 결재 등과 같이 보안 및 인증을 요구하는 서비스를 이용 시 사용되는 크리덴셜 정보, 암호화키 및 사용자 입력을 처리하는 보안 어플리케이션은 단말의 가상화된 보안 영역인 보안 가상머신(130)에서 실행된다. 여기서, 크리덴셜 정보는 정보 시스템에서 사용하는 암호학적 개인 정보로서, 한 개인이 사용하는 공개 키, 암호 알고리즘을 위한 공개 키/개인 키 쌍, 공인 인증 기관이 발생하는 공개 키 인증서(Certificate), 신뢰하는 루트 인증 기관(예를 들어, KISA 최상위 인증 기관) 관련 정보, 비밀번호 및 인가 정보를 포함할 수 있다.
또한, 보안 가상머신(130)은 외부로부터 안전한 환경을 제공하기 위해 네트워크 장치에 직접 연결되지 않으며, 가상머신 모니터부(110)를 거쳐 호스트 가상머신(120)의 네트워크 장치를 통해서만 외부와 통신할 수 있다. 보안 가상머신(130)은 보안 운영체제에 저장되어 있는 크리덴셜(Credential) 정보를 이용하여 인증모듈을 통해 상호 인증을 진행하고, 암호화된 데이터를 가상머신 모니터부(110)로 전달한다. 가상머신 모니터부(110)는 보안 가상머신(130)로부터 수신된 암호화된 데이터를 호스트 가상머신(120)의 네트워크 장치를 통해 보안 어플리케이션에 연결된 서버로 전달할 수 있다. 외부와의 데이터 송수신은 호스트 가상머신(120)의 호스트 운영체제의 네트워크 장치를 통해 이루어지지만, 호스트 운영체제는 암호화키를 통해 암호화되어 있는 데이터만을 수신하여 볼 수 있기 때문에, 데이터의 안정성을 확보할 수 있다. 본 발명에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 보안 절차는 후술하는 도 4에서 추가적으로 설명하도록 한다.
이와 같이, 가상머신 모니터부(110)는 호스트 가상머신(120) 및 보안 가상머신(130) 사이를 분리하여 완벽한 격리 상태를 제공한다. 호스트 가상머신(120) 및 보안 가상머신(130)은 가상화 기술로 생성된 가상 머신으로서, 시스템 자원에 직접 접근할 수 없으며, 서로 독립적으로 격리되어 호스트 가상머신(120) 및 보안 가상머신(130) 사이의 직접적인 연결이 불가능하다. 또한, 보안 어플리케이션을 이용하여 수신된 사용자 입출력 또는 보안 데이터를 포함하는 사용자 입출력은 가상머신 모니터부(110)를 통해 보안 가상머신(130)에만 전달되기 때문에, 호스트 가상머신(120)의 호스트 운영체제 및 호스트 운영체제에서 실행되는 범용 어플리케이션은 보안 어플리케이션을 통해 수신된 사용자 입출력에 접근할 수 없다. 따라서, 보안 운영체제는 외부 네트워크로부터 직접 접근이 불가능하므로, 해킹 및 악성코드로부터 안전하게 보호될 수 있다.
도 2는 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 상세도이다.
도 1 및 도 2를 참조하면, 가상머신 모니터부(110)는 시스템의 자원에 가상화 기술을 적용하여 호스트 가상머신(120) 및 보안 가상머신(130)을 할당한다. 가상머신 모니터부(110)는 운영체제의 관리프로그램 또는 커널(Kernel)보다 높은 수준의 제어를 가지며, 호스트 가상머신(120) 및 보안 가상머신(130)이 시스템 하드웨어에 직접 연결되는 것을 차단하고, 두 가상머신(120,130)을 서로 격리시켜 분리할 수 있다.
호스트 가상머신(120)은 범용적으로 사용되는 일반적인 운영체제인 호스트 운영체제에 의해 동작한다. 그리고, 호스트 가상머신(120)은 호스트 운영체제 하에서 하나 이상의 범용 데이터(121)를 저장하고, 하나 이상의 범용 어플리케이션(122)을 실행한다. 범용 데이터(121)는 보안과 관련되지 않은 데이터로서, 일반적인 대부분의 데이터를 포함할 수 있다. 범용 어플리케이션(122)도 마찬가지로 보안과 관련되지 않은 어플리케이션으로, 금융 어플리케이션과 같이 보안과 관련된 어플리케이션을 제외한 대부분의 어플리케이션을 포함할 수 있다. 호스트 가상머신(120)은 호스트 운영체제 커널 아래에 외부 네트워크와 연결하는 네트워크 모듈(123), 가상머신 모니터부(110)에서 구분되어 전달되는 가상 입출력 장치를 위한 드라이버(124) 및 암호화된 데이터 송수신을 제공하는 클라이언트 통신 에이전트(125)를 포함한다.
보안 가상머신(130)은 보안 데이터(131)를 저장하고, 보안 어플리케이션(132)을 실행하는 보안 운영체제에 의해 동작한다. 보안 데이터(131)는 보안과 관련된 데이터로서, 보안 및 인증 절차와 관련된 비밀번호, 중요한 개인정보 및 금융 서비스와 관련된 카드정보 등을 포함할 수 있다. 그리고, 보안 어플리케이션(131) 또한 보안과 관련된 어플리케이션으로, 예를 들어, 금융 서비스를 제공하는 어플리케이션이나 인증 절차를 요구하는 어플리케이션 및 중요한 개인정보를 다루는 어플리케이션 등을 포함할 수 있다. 그리고, 보안 가상머신(130)은 보안 운영체제의 커널 아래에 외부 서비스 제공자와의 암호화된 통신을 수행하기 위한 서버 통신 에이전트(133), 가상머신 모니터부(110)에서 구분하여 전달되는 가상 입출력 장치를 위한 드라이버(134), 인증 과정을 수행하는 인증 모듈(135) 및 암호화 과정을 수행하는 암호화 모듈(136)을 포함한다.
사용자는 일반적으로 호스트 가상머신(120)의 범용 어플리케이션(122)을 실행하여 단말을 이용한다. 만약, 사용자가 호스트 운영체제에서 실행되는 범용 어플리케이션(122)을 이용하여 보안 서비스 시작을 요청하는 경우, 보안 가상머신(130)은 보안세션을 실행하여 보안 가상머신(130)의 보안 운영체제는 보안 어플리케이션(132)를 실행한다. 보안 가상머신(130)은 보안 어플리케이션(132)을 실행하기 이전에, 인증 모듈(135)를 통해 인증 과정을 진행할 수 있다.
사용자는 사용자 입출력 장치(10)에 포함된 입력 장치를 이용하여 사용자 입력 신호를 전달한다. 입력 장치는 PC의 입력 장치로 사용되는 키보드 및 마우스와 같은 일반적인 입력 장치를 포함하며, 모바일 단말의 터치스크린 인터페이스를 포함한다. 가상머신 모니터부(110)의 사용자 입출력 선별 모듈(112)은 사용자 입력 신호를 범용 데이터 또는 보안 데이터로 구분한다. 가상머신 모니터부(110)는 수신된 사용자 입력 신호의 포커싱 대상에 따라 호스트 가상머신(120) 또는 보안 가상머신(130)으로 전달한다. 또는, 사용자 입출력 선별 모듈(112)은 보안 가상머신(130)의 보안 운영체제 활성화 여부에 따라 사용자 입력 신호를 구분할 수 있다. 이와 같은 기준에 따라 구분된 보안 데이터는 보안 가상머신(130)의 가상 사용자 입출력 장치 드라이버(134)로 전달된다. 보안 데이터로 구분된 사용자 입력 신호는 비밀번호나 카드 정보와 같은 보안이 요구되는 정보일 수 있다.
가상 보안단말(130)은 수신된 보안 데이터에 기초하여 인증 모듈(135)에서 인증 과정을 진행하고, 보안 서비스 서버(20)로 전달할 데이터를 암호화 모듈(136)에서 암호화하여 암호화된 데이터를 생성한다. 보안 서비스 서버(20)는 실행된 보안 어플리케이션(132)과 연결된 서버로서, 예를 들어, 금융 어플리케이션의 경우 해당 금융사의 서버가 될 수 있다. 보안 서비스 서버(20)는 설명의 편의를 위해 한정된 대상일 뿐, 특정한 서버로 한정되는 것은 아니며, 보안 어플리케이션(132)의 접속 대상을 종류에 관계없이 모두 포함할 수 있다.
가상 보안단말(130)은 보안 어플리케이션(132)이 출력하는 데이터를 가상 사용자 입출력 장치 드라이버(134)를 통해 보안 데이터로서 가상머신 모니터부(110)의 사용자 입출력 선별 모듈(112)로 전달한다. 그리고, 가상머신 모니터부(110)는 사용자 입출력 장치(10)에 포함된 출력장치로 사용자 출력 신호를 전달한다. 사용자 입출력 장치(10)에 포함된 출력장치는 디스플레이 장치 및 음성 재생 장치를 포함하며, 사용자에게 보안 어플리케이션의 실행 결과를 제공하거나, 사용자에게 소정의 인터페이스를 제공할 수 있는 장치를 포함할 수 있다. 예를 들어, 사용자 출력 신호는 보안 어플리케이션(132)인 은행 어플리케이션의 비밀번호 입력 인터페이스 화면이거나, 사용자 요청에 따른 은행 업무 처리 결과일 수 있으며, 출력장치는 이를 표시한 모니터이거나 모바일 단말의 디스플레이 화면일 수 있다.
그리고, 가상 보안단말(130)은 암호화 모듈(136)을 통해 암호화된 데이터를 서버 통신 에이전트(133)를 통해 가상머신 모니터부(110)의 중계모듈(111)로 전달한다. 가상머신 모니터부(110)의 중계모듈(111)은 호스트 가상머신(120)의 클라이언트 통신 에이전트(125)로 전달되어, 네트워크 모듈(123)를 통해 외부 네트워크로 연결되어 보안 서비스 서버(20)로 암호화된 데이터를 전달한다. 보안 서비스 서버(20)로부터 전달되는 암호화된 데이터는 위 경로를 역순으로 호스트 가상머신(120) 및 가상머신 모니터부(110)를 거쳐 보안 가상머신(130)로 전달된다.
이와 같이, 본 발명에 따른 가상화 기반의 보안 서비스 제공 장치(100)는 호스트 운영체제가 동작하는 호스트 가상머신(120)과 보안 운영체제가 동작하는 보안 가상머신(130)이 가상머신 모니터부(110)에 의해 할당되고 서로 격리되어 가상머신 모니터부(110)에 의해서만 데이터 교환이 가능하다. 사용자 입력 신호 및 사용자 출력 신호는 보안 데이터와 범용 데이터로 구분되어, 보안 데이터는 호스트 가상머신(120)로 전달되지 않고 보안 가상머신(130)로만 전달되기 때문에, 범용 어플리케이션(122)은 보안 데이터에 접근할 수 없다. 그리고, 보안 가상머신(130)은 호스트 가상머신(120)의 네트워크 모듈(123)를 통해 외부 네트워크와의 데이터 송수신을 수행하지만, 호스트 운영체제는 데이터는 암호화키로 암호화되어 있는 데이터만을 수신하여 볼 수 있기 때문에, 데이터의 안정을 확보할 수 있다. 이와 같이, 보안 운영체제는 외부 네트워크로부터 직접 접근이 불가능하므로, 해킹 및 악성코드로부터 안전하게 보호될 수 있다.
도 3은 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 가상머신 스케줄링 기법을 나타내는 도면이다.
도 3을 살펴보면, 가상화 기반의 보안 서비스 제공 장치(100)의 가상머신 모니터부(110)는 가상머신 스케줄링 기법을 통해 호스트 운영체제가 동작하는 호스트 가상머신(120) 및 보안 운영체제가 동작하는 보안 가상머신(130)의 실행 환경을 가변적으로 조절하여 시스템의 부담을 줄여 성능 저하를 최소화할 수 있다.
보안 어플리케이션이 실행되지 않는 일반 실행 환경(301)에서 가상머신 모니터부(110)는 호스트 가상머신(120)을 활성화된 상태로 유지 시키고, 보안 가상머신(130)을 유휴상태로 전환시킨다. 일반 실행 환경(301)에서, 호스트 가상머신(120)의 호스트 운영체제는 기본적으로 사용자 단말을 실행하기 위하여 준비(Ready) 상태 및 실행(Running) 상태가 번갈아 수행된다. 하지만, 일반 실행 환경(310)에서는 보안 어플리케이션이 실행되지 않기 때문에, 보안 가상머신(130)이 스케줄 될 필요가 없어 보안 가상머신(130)은 유휴(Idle) 상태로 대기한다.
일반 실행 환경(301)에서 보안 세션이 시작(310)되어 보안 실행 환경(302)로 변경되면, 보안 운영체제 또한 스케줄링 대상이 되기 때문에 가상머신 모니터부(110)는 유휴상태로 대기 중이던 보안 가상머신(130)을 활성화한다. 보안 실행 환경(301)에서, 보안 가상머신(130)은 호스트 가상머신(120)과 동일하게 준비 상태 및 실행 상태를 교대로 전환될 수 있도록 가상머신 모니터부(110)에 의해 활성화된다. 호스트 가상머신(120)은 실행 환경에 관계없이 사용자 단말을 동작시키기 때문에, 항상 활성화된 상태로 준비 상태 및 실행 상태가 번갈아 수행된다. 만약, 보안 세션이 종료(320)되어 보안 실행 환경(302)에서 일반 실행 환경(303)으로 변경되면, 가상머신 모니터부(110)는 보안 가상머신(130)을 다시 유휴 상태로 변경하여, 보안 세션이 시작되기 전의 일반 실행 환경(301)과 동일한 상태로 호스트 가상머신(120) 및 보안 가상머신(130)을 스케줄링 한다.
이와 같이, 가상머신 모니터부(110)에 의한 스케줄링 기법을 통해 가상화 기반의 보안 서비스 제공 장치(100)는 필요 시에만 보안 가상머신(130)을 동작시킴으로써, 시스템의 부담을 줄여 성능 저하를 최소화할 수 있다.
도 4는 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 보안 서비스 과정을 나타내는 흐름도이다.
도 4를 참조하면, 호스트 가상머신(120)은 사용자의 요청에 따라 호스트 운영체제에서 실행되는 범용 어플리케이션을 이용하여 보안 서비스 서버(20)에 보안 서비스 시작을 요청(401)하고, 가상머신 모니터부(110)에 보안 서비스 시작을 알린다(402). 일반 실행 환경에서 보안 가상머신(130)은 유휴상태로 대기하고 호스트 가상머신(120)의 호스트 운영체제만이 동작한다. 사용자가 범용 어플리케이션을 이용하여 보안 서비스를 요청하면, 호스트 가상머신(120)은 네트워크 모듈을 이용하여 보안 서비스 서버(200로 보안 서비스 요청을 전달하면서 동시에 가상머신 모니터부(110)로 보안 서비스 시작을 알린다. 보안 서비스 서버(20)는 사용자가 요청하는 보안 서비스를 제공하는 대상으로 예를 들어, 은행 서비스의 경우 해당 은행의 보안 서버일 수 있다.
호스트 가상머신(120)로부터 보안 서비스 시작이 전달되면, 가상머신 모니터부(110)는 유휴상태로 대기중인 보안 가상머신(130)을 활성화한다(403). 보안 가상머신(130)은 성능 저하를 막기 위해 일반 실행 환경에서 유휴상태로 대기한다. 가상머신 모니터부(110)는 보안 서비스가 시작되면, 보안 스케줄링 기법에 따라 보안 가상 머신을 활성화하여, 보안 가상머신(130)이 호스트 가상머신(120)과 동일하게 준비 상태 및 실행 상태를 교대로 전환될 수 있도록 보안 실행 환경으로 변경한다.
가상머신 모니터부(110)에 의해 활성화된 보안 가상머신(130)은 보안 세션을 시작(404)하고, 인증 모듈을 실행(405)하여 보안 서비스 서버(20)와 상호 인증을 수행한다. 보안 가상머신(130)은 인증 모듈을 이용하여 보안 서비스 서버(20)와 상호 인증을 수행하는 과정에서 보안 서비스 서버(20)와 직접 연결되지 않으며, 가상머신 모니터부(110) 및 호스트 가상 머신(120)을 거쳐 보안 서비스 서버(20)와 상호 인증을 수행한다. 보안 가상머신(130)의 보안 운영체제는 크리덴셜 정보를 이용하여 인증 모듈을 통해 암호화된 인증 정보를 보안 서비스 서버(20)로 전달하고, 보안 서비스 서버(20)로부터 암호화된 인증 정보를 수신하여 인증 절차를 수행한다. 그리고, 이 과정은, 인증 정보를 전달하는 과정의 역순으로, 호스트 가상 머신(120) 및 가상머신 모니터부(110)를 거쳐 수행된다.
보안 서비스 서버(20)에서 암호화된 데이터를 호스트 가상머신(120) 및 가상머신 모니터부(110)를 거쳐 보안 가상머신(130)로 전달(407)하면, 보안 가상머신(130)은 암호화 모듈을 이용하여 암호화된 데이터를 복호화한다(408). 그리고, 보안 가상머신(130)은 보안 실행 환경에서 보안 어플리케이션을 실행한다(409). 보안 어플리케이션이 실행되어 사용자가 입력 장치를 이용하여 입력한 사용자 입력 신호를 전달하면, 가상머신 모니터부(110)는 사용자 입력 신호를 수신한다(410). 그리고, 가상머신 모니터부(110)는 보안 어플리케이션이 실행된 상태에서 수신된 사용자 입력 신호를 보안 데이터로 판단하여 보안 가상머신(130)로 전달한다(411). 가상머신 모니터부(110)의 사용자 입력 신호 처리 과정은 후술하는 도 5에서 추가적으로 설명하도록 한다.
가상머신 모니터부(110)로부터 사용자 입력 신호가 수신되면, 보안 가상머신(130)은 암호화 모듈을 이용하여 데이터를 암호화하여 암호화된 데이터를 생성한다. 보안 어플리케이션이 실행된 상태(보안 실행 상태)에서 사용자로부터 입력된 사용자 입력 신호는 호스트 가상머신(120)을 거치지 않고 보안 가상머신(130)로 바로 전달된다. 사용자 입력 신호는 사용자로부터 입력되는 비밀번호, 개인정보 및 카드정보와 같은 보안이 요구되는 정보일 수 있다. 이와 같은 정보는 보안 가상머신(130)에서 암호화되어 가상머신 모니터부(110) 및 호스트 가상머신(120)을 거쳐 보안 서비스 서버(20)로 전달된다(413). 보안 가상머신(130)에서 보안 서비스 서버(20)로 전달되는 데이터는 호스트 가상머신(120)을 통과하기 때문에 호스트 운영체제에서 처리되지만, 호스트 운영체제는 암호화된 데이터에만 접근할 수 있기 때문에, 호스트 운영체제가 해킹이나 악성코드에 노출된 경우에도 데이터의 보안을 유지할 수 있다.
보안 가상머신(130)에서 보안 서비스의 사용이 끝나면, 보안 가상머신(130)은 실행중인 보안 어플리케이션을 종료하여 보안 세션을 종료(414)한다. 그리고, 가상머신 모니터부(110)는 보안 어플리케이션이 종료된 보안 가상머신(130)을 유휴 상태로 전환한다(415). 보안 가상머신(130)은 보안 세션이 시작되어 보안 실행 환경에서만 활성화되어 동작하고, 보안 세션이 종료된 일반 실행 환경에서는 유휴 상태로 전환되어 시스템 자원 사용을 최소화하고, 시스템의 성능 저하를 막을 수 있다. 보안 가상머신(130)의 보안 세션이 종료되면, 호스트 가상 머신(120) 및 보안 서비스 서버(20)는 보안 세션 종료를 상호 확인하여 보안 서비스를 종료한다(416).
도 5는 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 장치(100)의 사용자 입출력 신호 구분을 설명하기 위한 도면이다.
도 2 및 도 5를 참조하면, 가상화 기반의 보안 서비스 제공 장치(100)의 가상머신 모니터부(110)는 사용자 입출력 장치(10)에 포함된 사용자 입력 장치(예를 들어, 키보드, 터치스크린 인터페이스)로부터 이벤트가 발생하면, 수신된 사용자 입력 신호를 보안 데이터와 범용 데이터로 구분하여 보안 가상머신(130) 및 호스트 가상머신(120)로 각각 전달한다. 가상머신 모니터부(110)는 보안 운영체제가 활성화된 상태에서 사용자 입력 신호가 수신되는 경우, 해당 신호(이벤트)는 호스트 운영체제로 전달하지 않는다.
가상머신 모니터부(110)는 가상화 기술을 이용하여 시스템 자원을 할당하여 호스트 가상머신(120) 및 보안 가상머신(130)을 생성한다. 가상화 과정에서, 가상머신 모니터부(110)는 물리메모리 영역(510)을 호스트 물리메모리 영역(511)과 보안 물리메모리 영역(512)으로 구분 및 격리하여 할당한다. 서로 격리된 호스트 물리메모리 영역(511)과 보안 물리메모리 영역(512)은 상호 접근이 불가능하다.
호스트 운영체제 및 보안 운영체제는 자신의 가상 메모리인 호스트 가상메모리(520) 및 보안 가상메모리(530)를 가상머신 모니터부(110)로부터 할당 받은 물리메모리 영역(511,512)에 매핑하여 사용한다. 가상머신 모니터부(110)는 사용자 출력 장치(12)에 존재하는 모든 제어 레지스터를 저장하기 위하여, 호스트 가상메모리(520) 및 보안 가상메모리(530)에 가상 사용자 출력장치를 위한 메모리 영역을 분리하여 생성한 후 각각의 가상머신에 할당된 출력 장치 가상 메모리(521,531)에 매핑한다. 그리고, 가상머신 모니터부(110)는 호스트 물리메모리(511) 및 보안 물리메모리(512)에 매핑된 사용자 출력 신호를 사용자 출력 장치(12)로 전달한다. 사용자 입출력 장치(10)에 포함된 사용자 출력 장치(12)는 사용자에게 결과를 출력하는 장치로서, 모니터 또는 모바일 단말의 디스플레이 화면이 될 수 있다. 사용자 출력 장치(12)는 수신된 사용자 출력 신호를 출력하여 사용자에게 제공할 수 있다. 즉, 호스트 가상머신(120)의 호스트 가상메모리(520)에 할당된 출력 장치 가상 메모리(521) 및 보안 가상머신(130)의 보안 가상메모리(530)에 할당된 출력 장치 가상 메모리(531)에 저장된 출력 신호를 서로 격리된 가상머신 모니터부(110)의 호스트 물리메모리(511) 및 보안 물리메모리(512)에 각각에 매핑하여, 사용자 출력 장치(12)에 전달한다. 이를 통해, 호스트 가상머신(120)의 호스트 운영체제는 사용자 출력 신호에 접근할 수 없기 때문에, 강화된 보안을 지원할 수 있다.
도 6은 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 방법을 나타내는 흐름도이다.
도 6을 참조하면, 본 발명의 일 실시예에 따른 가상화 기반의 보안 서비스 제공 방법은 사용자의 요청에 따라 호스트 가상머신에서 실행되는 범용 어플리케이션을 이용하여 보안 서비스 서버 및 가상머신 모니터부에 보안 서비스 시작을 요청한다(S601). 그리고, 가상머신 모니터부는 보안 가상머신을 활성화한다(S602). 일반 실행 환경에서 보안 가상머신은 유휴상태로 대기하고 호스트 가상머신의 호스트 운영체제만이 동작하고, 보안 가상머신은 성능 저하를 막기 위해 일반 실행 환경에서 유휴상태로 대기한다. 가상머신 모니터부는 보안 서비스가 시작되면, 보안 스케줄링 기법에 따라 보안 가상 머신을 활성화하여, 보안 가상머신이 호스트 가상머신과 동일하게 준비 상태 및 실행 상태를 교대로 전환될 수 있도록 보안 실행 환경으로 변경한다.
가상머신 모니터부에 의해 활성화된 보안 가상머신은 보안 세션을 시작하여, 인증 모듈을 통해 보안 서비스 서버와 상호 인증을 수행한다(S603). 보안 가상머신은 보안 서비스 서버와 상호 인증을 수행하는 과정에서 보안 서비스 서버와 직접 연결되지 않으며, 가상머신 모니터부 및 호스트 가상 머신을 거쳐 보안 서비스 서버와 상호 인증을 수행한다. 보안 가상머신의 보안 운영체제는 크리덴셜 정보를 이용하여 인증 모듈을 통해 암호화된 인증 정보를 보안 서비스 서버로 전달하고, 보안 서비스 서버(20)로부터 암호화된 인증 정보를 수신하여 인증 절차를 수행한다.
인증과정이 수행되면, 보안 가상머신은 보안 실행 환경에서 보안 어플리케이션을 실행한다(S604). 그리고, 가상머신 모니터부는 보안 어플리케이션을 통해 사용자로부터 수신된 사용자 입력을 보안 데이터로 판단하여 보안 가상머신으로 전달한다(S605). 보안 어플리케이션이 실행된 상태(보안 실행 상태)에서 사용자로부터 입력된 사용자 입력 신호는 호스트 가상머신을 거치지 않고 보안 가상머신으로 바로 전달된다. 사용자 입력 신호는 사용자로부터 입력되는 비밀번호, 개인정보 및 카드정보와 같은 보안이 요구되는 정보일 수 있다. 가상머신 모니터부로부터 사용자 입력 신호가 수신되면, 보안 가상머신은 암호화 모듈을 이용하여 데이터를 암호화하여 암호화된 데이터를 생성한다(S606). 그리고, 보안 가상머신은 생성된 암호화된 데이터를 가상머신 모니터부 및 호스트 가상머신을 거쳐 보안 서비스 서버로 전달한다(S607). 보안 가상머신에서 보안 서비스 서버로 전달되는 암호화된 데이터는 호스트 가상머신을 통과하기 때문에 호스트 운영체제에서 처리되지만, 호스트 운영체제는 암호화된 데이터에만 접근할 수 있기 때문에, 호스트 운영체제가 해킹이나 악성코드에 노출된 경우에도 데이터의 보안을 유지할 수 있다.
보안 가상머신에서 보안 서비스의 사용이 끝나면, 보안 가상머신은 실행중인 보안 어플리케이션을 종료하여 보안 세션을 종료한 후, 가상머신 모니터부에 의해 유휴 상태로 전환된다(S608). 보안 가상머신은 보안 세션이 시작되어 보안 실행 환경에서만 활성화되어 동작하고, 보안 세션이 종료된 일반 실행 환경에서는 유휴 상태로 전환되어 시스템 자원 사용을 최소화하고, 시스템의 성능 저하를 막을 수 있다.
상술한 내용을 포함하는 본 발명은 컴퓨터 프로그램으로 작성이 가능하다. 그리고 상기 프로그램을 구성하는 코드 및 코드 세그먼트는 당분야의 컴퓨터 프로그래머에 의하여 용이하게 추론될 수 있다. 또한, 상기 작성된 프로그램은 컴퓨터가 읽을 수 있는 기록매체 또는 정보저장매체에 저장되고, 컴퓨터에 의하여 판독되고 실행함으로써 본 발명의 방법을 구현할 수 있다. 그리고 상기 기록매체는 컴퓨터가 판독할 수 있는 모든 형태의 기록매체를 포함한다.
이상 바람직한 실시예를 들어 본 발명을 상세하게 설명하였으나, 본 발명은 전술한 실시예에 한정되지 않고, 본 발명의 기술적 사상의 범위 내에서 당분야에서 통상의 지식을 가진자에 의하여 여러 가지 변형이 가능하다.
10: 사용자 입/출력 장치
100: 가상화 기반의 보안 서비스 제공 장치
110: 가상머신 모니터부 111: 중계모듈
112: 사용자 입출력 선별모듈 120: 호스트 가상머신
121: 범용 데이터 122: 범용 어플리케이션
123: 네트워크 모듈
124: 가상 사용자 입출력 장치 드라이버
125: 클라이언트 통신 에이전트
130: 보안 가상머신 131: 보안 데이터
132: 보안 어플리케이션 133: 서버 통신 에이전트
134: 가상 사용자 입출력 장치 드라이버
135: 인증 모듈 136: 암호화 모듈

Claims (17)

  1. 보안 어플리케이션이 실행되지 않은 상태의 일반 실행 환경을 제어하는 호스트 운영체제가 동작하는 호스트 가상머신;
    상기 호스트 가상 머신과 분리되어 독립적으로 보안 운영체제가 동작하는 보안 가상머신; 및
    가상화 기술을 통해 상기 호스트 가상머신 및 상기 보안 가상머신을 할당하는 가상머신 모니터부;
    를 포함하고,
    상기 보안 가상머신은
    상기 호스트 가상머신으로부터 보안 서비스 요청이 수신되면, 보안 및 인증을 요구하는 보안 어플리케이션을 실행하고, 상기 가상 머신 모니터부에 의해, 상기 보안 어플리케이션이 실행된 보안 실행 환경에서 사용자로부터 수신된 사용자 입력 신호를 암호화하여 암호화된 데이터를 상기 가상머신 모니터부를 통해 상기 호스트 가상머신으로 전달하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 장치.
  2. 삭제
  3. 삭제
  4. 삭제
  5. 삭제
  6. 제1항에 있어서,
    상기 호스트 가상머신은 상기 가상머신 모니터부를 거쳐 수신된 암호화된 데이터를 보안 서비스를 제공하는 보안 서비스 서버로 전달하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 장치.
  7. 제1항에 있어서,
    상기 보안 가상머신은 호스트 운영체제와 독립된 보안 운영체제 상에서 보안 어플리케이션을 실행하고, 데이터 암호화를 통해 암호화된 데이터를 상기 가상머신 모니터부를 거쳐 상기 호스트 가상머신을 통해 외부 네트워크로 전달하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 장치.
  8. 제1항에 있어서,
    상기 가상머신 모니터부는 보안 서비스가 요구되지 않은 상기 일반 실행 환경에서 상기 보안 가상머신을 유휴 상태(Idle)로 전환하고, 상기 호스트 가상머신으로부터 보안 서비스 요청 수신 시 유휴 상태인 보안 가상머신을 활성화하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 장치.
  9. 제1항에 있어서,
    상기 가상머신 모니터부는 물리메모리 영역을 호스트 물리메모리 영역과 보안 물리메모리 영역으로 구분하여 할당하고,
    상기 호스트 운영체제는 호스트 가상메모리를 상기 호스트 물리메모리 영역에 매핑하고, 상기 보안 운영체제는 보안 가상메모리를 상기 보안 물리메모리 영역에 매핑하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 장치.
  10. 제9항에 있어서,
    상기 호스트 운영체제 및 상기 보안 운영체제는 호스트 가상메모리 및 보안 가상메모리의 사용자 출력 신호를 상기 호스트 물리메모리 영역 및 상기 보안 물리메모리 영역에 각각 매핑하고,
    상기 가상머신 모니터부는 상기 호스트 물리메모리 영역 및 상기 보안 물리메모리 영역에 매핑된 상기 사용자 출력 신호를 사용자 출력 장치로 전달하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 장치.
  11. 서로 다른 운영체제가 동작하는 호스트 가상머신 및 보안 가상머신을 이용한 보안 서비스 제공 방법에 있어서,
    상기 보안 가상머신에서 보안 어플리케이션을 실행하는 단계;
    상기 보안 어플리케이션 실행 여부에 기초하여 가상머신 모니터부에서 상기 보안 가상머신으로 수신된 사용자 입력 신호를 전달하는 단계; 및
    상기 보안 가상머신에서 데이터를 암호화하여 생성된 암호화된 데이터를 상기 가상머신 모니터부 및 상기 호스트 가상머신을 순서대로 거쳐 상기 보안 서비스 서버로 전달하는 단계;
    를 포함하고,
    상기 보안 어플리케이션을 실행하는 단계는
    상기 보안 가상머신이, 상기 호스트 가상머신으로부터 보안 서비스 요청이 수신되면, 보안 및 인증을 요구하는 보안 어플리케이션을 실행하고,
    상기 사용자 입력 신호를 전달하는 단계는
    상기 보안 가상 머신이, 상기 보안 어플리케이션이 실행된 보안 실행 환경에서 사용자로부터 수신된 상기 사용자 입력 신호를 암호화하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 방법.
  12. 제11항에 있어서,
    상기 보안 가상머신과 보안 서비스를 제공하는 보안 서비스 서버 사이의 상호 인증을 수행하는 단계;
    를 더 포함하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 방법.
  13. 삭제
  14. 제11항에 있어서,
    상기 보안 가상머신은 호스트 운영체제와 독립된 보안 운영체제 상에서 보안 어플리케이션을 실행하고, 데이터 암호화를 통해 암호화된 데이터를 상기 가상머신 모니터부를 거쳐 상기 호스트 가상머신을 통해 외부 네트워크로 전달하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 방법.
  15. 제11항에 있어서,
    상기 호스트 가상머신으로부터 보안 서비스 요청 수신 시 상기 가상머신 모니터부가 유휴 상태인 보안 가상머신을 활성화하는 단계; 및
    보안 서비스가 종료되면, 상기 가상머신 모니터부가 상기 보안 가상머신을 유휴 상태(Idle)로 전환하는 단계;
    를 더 포함하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 방법.
  16. 제14항에 있어서,
    상기 가상머신 모니터부는 물리메모리 영역을 호스트 물리메모리 영역과 보안 물리메모리 영역으로 구분하여 할당하고,
    상기 호스트 운영체제는 호스트 가상메모리를 상기 호스트 물리메모리 영역에 매핑하고, 상기 보안 운영체제는 보안 가상메모리를 상기 보안 물리메모리 영역에 매핑하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 방법.
  17. 제16항에 있어서,
    상기 호스트 운영체제 및 상기 보안 운영체제는 호스트 가상메모리 및 보안 가상메모리의 사용자 출력 신호를 상기 호스트 물리메모리 영역 및 상기 보안 물리메모리 영역에 각각 매핑하고,
    상기 가상머신 모니터부는 상기 호스트 물리메모리 영역 및 상기 보안 물리메모리 영역에 매핑된 상기 사용자 출력 신호를 사용자 출력 장치로 전달하는 것을 특징으로 하는 가상화 기반의 보안 서비스 제공 방법.
KR1020150020338A 2015-02-10 2015-02-10 가상화 기반의 보안 서비스 제공 장치 및 제공 방법 KR102295960B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150020338A KR102295960B1 (ko) 2015-02-10 2015-02-10 가상화 기반의 보안 서비스 제공 장치 및 제공 방법
US15/092,744 US9948616B2 (en) 2015-02-10 2016-04-07 Apparatus and method for providing security service based on virtualization

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150020338A KR102295960B1 (ko) 2015-02-10 2015-02-10 가상화 기반의 보안 서비스 제공 장치 및 제공 방법

Publications (2)

Publication Number Publication Date
KR20160097892A KR20160097892A (ko) 2016-08-18
KR102295960B1 true KR102295960B1 (ko) 2021-09-01

Family

ID=56874357

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150020338A KR102295960B1 (ko) 2015-02-10 2015-02-10 가상화 기반의 보안 서비스 제공 장치 및 제공 방법

Country Status (2)

Country Link
US (1) US9948616B2 (ko)
KR (1) KR102295960B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230120924A (ko) 2022-02-10 2023-08-17 주식회사 서울제약 유단백가수분해물을 포함하는 구강붕해필름

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10846117B1 (en) * 2015-12-10 2020-11-24 Fireeye, Inc. Technique for establishing secure communication between host and guest processes of a virtualization architecture
US10108446B1 (en) 2015-12-11 2018-10-23 Fireeye, Inc. Late load technique for deploying a virtualization layer underneath a running operating system
US10666443B2 (en) * 2016-10-18 2020-05-26 Red Hat, Inc. Continued verification and monitoring of application code in containerized execution environment
KR101798059B1 (ko) * 2016-12-21 2017-11-16 주식회사 한국스마트카드 동적가상카드의 생성 및 폐기 방법
US10547645B1 (en) * 2017-07-07 2020-01-28 EMC IP Holding Company, LLC Public-private computing system
JP7041506B2 (ja) * 2017-12-20 2022-03-24 積水ハウス株式会社 通信装置保護プログラム
US10367895B1 (en) * 2018-06-15 2019-07-30 Right Networks, LLC Systems and methods for hosting a single-tenant computing application for access by a plurality of computing devices
US11537421B1 (en) * 2019-06-07 2022-12-27 Amazon Technologies, Inc. Virtual machine monitor providing secure cryptographic operations
KR102130807B1 (ko) * 2020-01-29 2020-07-06 주식회사 두두아이티 사이버 보안 모의훈련 콘텐츠 제공 방법 및 장치
KR102130806B1 (ko) * 2020-02-14 2020-07-06 주식회사 두두아이티 사이버 보안 모의훈련 콘텐츠 제공 방법 및 장치
KR102130805B1 (ko) * 2020-02-14 2020-08-05 주식회사 두두아이티 사이버 보안 모의훈련 콘텐츠 제공 방법 및 장치
CN112433824B (zh) * 2020-12-28 2023-06-20 郑州信大先进技术研究院 一种密码设备的虚拟化实现架构

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4026667B2 (ja) * 1997-09-12 2007-12-26 株式会社日立製作所 マルチos構成方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060023956A (ko) * 2003-04-09 2006-03-15 쟈루나 에스에이 운영체제
EP2137629A4 (en) * 2007-03-20 2010-12-29 Sanggyu Lee MOBILE VIRTUAL MACHINE IMAGE
US8200736B2 (en) 2007-12-24 2012-06-12 Qualcomm Incorporated Virtual SIM card for mobile handsets
KR101115136B1 (ko) 2009-12-02 2012-02-24 주식회사 반딧불소프트웨어 보안 컴퓨팅 환경 시스템 및 그 구현 방법
KR20120065091A (ko) * 2010-12-10 2012-06-20 한국전자통신연구원 게스트 운영체제 내에 가상 기계 모니터 모듈을 구동하는 가상 기계 시스템및 그 제어 방법
KR101469894B1 (ko) 2011-08-12 2014-12-08 한국전자통신연구원 도메인 분리 기반 안전 실행 환경 제공 방법 및 장치
KR101329789B1 (ko) 2012-03-28 2013-11-15 이니텍(주) 모바일 디바이스의 데이터베이스 암호화 방법
US20140033266A1 (en) 2012-07-24 2014-01-30 Electronics And Telecommunications Research Institute Method and apparatus for providing concealed software execution environment based on virtualization
KR20150092890A (ko) 2014-02-06 2015-08-17 한국전자통신연구원 가상화 기반 보안 강화 장치 및 그 방법
US9871823B2 (en) * 2014-12-23 2018-01-16 Intel Corporation Techniques to deliver security and network policies to a virtual network function

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4026667B2 (ja) * 1997-09-12 2007-12-26 株式会社日立製作所 マルチos構成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230120924A (ko) 2022-02-10 2023-08-17 주식회사 서울제약 유단백가수분해물을 포함하는 구강붕해필름

Also Published As

Publication number Publication date
US9948616B2 (en) 2018-04-17
KR20160097892A (ko) 2016-08-18
US20160366130A1 (en) 2016-12-15

Similar Documents

Publication Publication Date Title
KR102295960B1 (ko) 가상화 기반의 보안 서비스 제공 장치 및 제공 방법
US11704416B2 (en) Computational operations in enclave computing environments
US9891823B2 (en) System for securely entering particular information and method thereof
US10097544B2 (en) Protection and verification of user authentication credentials against server compromise
EP3606003B1 (en) Securely storing content within public clouds
US11061710B2 (en) Virtual machine exit support by a virtual machine function
US10547595B2 (en) Restricting guest instances in a shared environment
US8935746B2 (en) System with a trusted execution environment component executed on a secure element
US9792427B2 (en) Trusted execution within a distributed computing system
JP7388803B2 (ja) セキュア・ゲストのセキュア鍵をハードウェア・セキュリティ・モジュールに結びつけること
US8505084B2 (en) Data access programming model for occasionally connected applications
KR101109361B1 (ko) 고 확실성 실행 환경을 갖는 시스템 내의 신뢰되는에이전트에 안전한 입출력을 제공하는 방법
JP7397557B2 (ja) セキュア実行ゲスト所有者環境制御
US11200300B2 (en) Secure sharing of license data in computing systems
US20150220709A1 (en) Security-enhanced device based on virtualization and the method thereof
EP3087524A1 (en) Virtual machine assurances
CN111954879B (zh) 互不信任的飞地
JP7445358B2 (ja) セキュア・インタフェース・コントロールのためのセキュア実行ゲスト所有者コントロール
US20200099519A1 (en) Enhanced key availability for data services
US20240176870A1 (en) Extending secure guest metadata to bind the secure guest to a hardware security module
Jung et al. An architecture for virtualization-based trusted execution environment on mobile devices
WO2024115150A1 (en) Extending secure guest metadata to bind the secure guest to an hsm

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant