KR102233705B1 - 모바일 가상화 방법 및 장치 - Google Patents

모바일 가상화 방법 및 장치 Download PDF

Info

Publication number
KR102233705B1
KR102233705B1 KR1020200116244A KR20200116244A KR102233705B1 KR 102233705 B1 KR102233705 B1 KR 102233705B1 KR 1020200116244 A KR1020200116244 A KR 1020200116244A KR 20200116244 A KR20200116244 A KR 20200116244A KR 102233705 B1 KR102233705 B1 KR 102233705B1
Authority
KR
South Korea
Prior art keywords
agent
virtual machine
server
virtualization
authentication
Prior art date
Application number
KR1020200116244A
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 KR1020200116244A priority Critical patent/KR102233705B1/ko
Application granted granted Critical
Publication of KR102233705B1 publication Critical patent/KR102233705B1/ko

Links

Images

Classifications

    • 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
    • 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/451Execution arrangements for user interfaces
    • 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/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45579I/O management, e.g. providing access to device drivers or storage
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

모바일 가상화 방법 및 장치가 개신된다. 일 실시예에 따른 가상 모바일 환경(VMI; Virtual Mobile Infrastructure)을 제공하는 가상화 장치는 가상화 서버 및 프록시 서버를 포함하고, 가상화 서버는 가상 머신(virtual machine)에 설치되는 게스트 운영체제를 저장하는 메모리 및 가상화 장치의 물리적 자원을 게스트 운영체제에게 동적으로 할당하고 관리하고, 가상 머신의 메모리 접근 경로를 할당하고, 가상 머신의 백업 및 복구를 처리하는 프로세서를 포함하고, 프록시 서버는 에이전트와 가상 머신 사이의 통신을 중계한다,

Description

모바일 가상화 방법 및 장치{MOBILE VIRTUALIZATION METHODS AND DEVICES}
아래 실시예들은 모바일 가상화 방법 및 장치에 관한 것으로, 구체적으로 스마트폰 가상화 장치 및 이를 기반으로 한 스마트 워크 보안 플랫폼 및 서비스 제공 방법에 관한 것이다.
과거에는 사무실 안의 PC로 업무를 수행하는 것이 일반적이었으나, 요즘은 스마트폰, 태블릿 PC 등 이동이 가능한 스마트 디바이스로 교통 수단이나, 업무가 가능한 카페 같은 공간에서 업무를 처리하는 경우가 많아졌다. 이는 시간을 효율성 있게 사용하여 업무의 능률을 높일 수 있다는 장점이 있으나, 개인용과 업무용 스마트 디바이스를 동시에 들고 다녀야 하는 불편함이 존재한다.
이를 해결하기 위해 나온 개념이 본인에게 익숙한 스마트 디바이스를 업무에 활용하자는 BYOD(Bring Your Own Device)이다. 그러나, 개인의 스마트 디바이스를 업무에 사용하려다 보니 보안 문제가 발생할 수 있다. 이를 해결하기 위하여, 스마트 디바이스를 통제하는 MDM(Mobile Device Management) 솔루션이 도입되었다. 그러나, MDM 솔루션은 경우 개인 사용자의 데이터와 기업의 데이터가 혼재되어 있기 때문에, 직원의 프라이버시가 완벽하게 보호되지 않으며, 단말기의 자원을 분할 사용하기 때문에 성능 저하 및 다양한 버그 발생 가능성이 존재한다는 문제점이 있다.
실시예들은 물리적 스마트폰의 인터페이스를 최대한 가용성을 보장하며 사용 경험을 제공하여, 보안성 및 가용성을 보장하며 사용자 만족을 통한 안전한 스마트워크 서비스를 제공하고자 한다.
실시예들은 에이전트에서 스마트폰 가상화 장치로 접속을 요청을 하면, 가상화 장치는 사용자 식별 및 인증을 하고 가상 머신(VM, Virtual Machine)과 통신 채널을 생성하고자 한다.
실시예들은 통신 채널이 생성되면 가상 머신의 화면을 에이전트에 스트리밍 송출하며, 에이전트는 실시간으로 스마트폰 화면에 렌더링하여 사용자에게 별도의 스마트폰을 사용하는 경험을 제공하고자 한다.
실시예들은 사용자와 가상 머신 간의 상호 작용을 위해 화면 클릭 및 스크롤, 하드웨어 장치 가상화(예를 들어, 카메라, 오디오, 센서 등) 등의 기술을 구현하여 실제 스마트폰 사용과 차이가 없게 실감나는 기능을 제공하고자 한다.
일 실시예에 따른 가상 모바일 환경(VMI; Virtual Mobile Infrastructure)을 제공하는 가상화 장치에 있어서, 가상화 서버; 및 프록시 서버를 포함하고, 상기 가상화 서버는 가상 머신(virtual machine)에 설치되는 게스트 운영체제를 저장하는 메모리; 및 상기 가상화 장치의 물리적 자원을 상기 게스트 운영체제에게 동적으로 할당하고 관리하고, 상기 가상 머신의 상기 메모리 접근 경로를 할당하고, 상기 가상 머신의 백업 및 복구를 처리하는 프로세서를 포함하고, 상기 프록시 서버는 에이전트와 상기 가상 머신 사이의 통신을 중계할 수 있다.
일 실시예에 따른 가상화 장치는 상기 가상 머신 및 상기 가상 머신에 대응하는 사용자를 관리할 수 있는 인터페이스를 제공하고, 상기 가상화 서버 및 상기 프록시 서버 중 적어도 하나의 시스템 자원을 모니터링하기 위한 데이터를 실시간으로 시각화하는 관리 서버를 더 포함할 수 있다.
상기 가상화 서버는 인증 서버를 포함하고, 상기 프록시 서버는 상기 에이전트로부터 제1 인증 정보를 포함하는 접속 요청을 수신하여, 상기 인증 서버에 접속하고, 상기 인증 서버는 상기 프록시 서버의 접속에 반응하여 상기 에이전트의 접속 대상인 상기 가상 머신을 결정하고, 상기 가상 머신의 접속 경로를 상기 프록시 서버에 전송할 수 있다.
상기 프록시 서버는 상기 인증 서버로 상기 제1 인증 정보에 대응하는 사용자 인증을 요청하고, 상기 인증 서버로부터 수신한 인증 성공 결과에 반응하여 임시 비밀번호를 상기 에이전트로 전송할 수 있다.
상기 프록시 서버는 상기 에이전트로부터 수신한 제2 인증 정보가 상기 임시 비밀번호와 일치하는 경우, 상기 가상 머신의 접속 경로를 상기 에이전트로 전달할 수 있다.
상기 프록시 서버는 상기 에이전트로부터 수신한 가상 머신 접속 요청에 반응하여, 상기 에이전트와 상기 가상 머신 사이의 통신을 중계할 수 있다.
상기 게스트 운영체제는 상기 프로세서에 화면 이미지를 전달하고, 상기 프로세서는 상기 에이전트로부터 수신한 화면의 메타 데이터에 기초하여, 상기 게스트 운영체제로부터 수신한 상기 화면 이미지의 변경된 영역에 대응하는 정보를 상기 프록시 서버를 통해 상기 에이전트로 전송할 수 있다.
상기 게스트 운영체제는 상기 에이전트로부터 수신한 센서 정보를 사용할 수 있다.
실시예들은 물리적 스마트폰의 인터페이스를 최대한 가용성을 보장하며 사용 경험을 제공하여, 보안성 및 가용성을 보장하며 사용자 만족을 통한 안전한 스마트워크 서비스를 제공할 수 있다.
실시예들은 에이전트에서 스마트폰 가상화 장치로 접속을 요청을 하면, 가상화 장치는 사용자 식별 및 인증을 하고 가상 머신(VM, Virtual Machine)과 통신 채널을 생성할 수 있다.
실시예들은 통신 채널이 생성되면 가상 머신의 화면을 에이전트에 스트리밍 송출하며, 에이전트는 실시간으로 스마트폰 화면에 렌더링하여 사용자에게 별도의 스마트폰을 사용하는 경험을 제공할 수 있다.
실시예들은 사용자와 가상 머신 간의 상호 작용을 위해 화면 클릭 및 스크롤, 하드웨어 장치 가상화(예를 들어, 카메라, 오디오, 센서 등) 등의 기술을 구현하여 실제 스마트폰 사용과 차이가 없게 실감나는 기능을 제공할 수 있다.
도 1은 일 실시예에 따른 가상 모바일 환경 제공 서비스를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 가상화 장치의 블록도를 도시한 도면이다.
도 3은 일 실시예에 따른 에이전트의 블록도를 도시한 도면이다.
도 4a 내지 도 4b는 일 실시예에 따른 단대단 암호화 통신 방법을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 화면 전송 방법을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 사용자 인터랙션(interaction) 방법을 설명하기 위한 도면이다.
도 7은 가상 머신에 전달된 푸쉬 정보를 에이전트에 전달하는 일례를 도시하는 도면이다.
도 8은 일 실시예에 따른 캡쳐 방지 기능의 일례를 도시하는 도면이다.
본 명세서에서 개시되어 있는 특정한 구조적 또는 기능적 설명들은 단지 기술적 개념에 따른 실시예들을 설명하기 위한 목적으로 예시된 것으로서, 실시예들은 다양한 다른 형태로 실시될 수 있으며 본 명세서에 설명된 실시예들에 한정되지 않는다.
제1 또는 제2 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 이런 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 이해되어야 한다. 예를 들어 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소는 제1 구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 표현들, 예를 들어 "~간의에"와 "바로~간의에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 설시 된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함으로 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 해당 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
실시예들은 퍼스널 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 스마트 폰, 텔레비전, 스마트 가전 기기, 지능형 자동차, 키오스크, 웨어러블 장치 등 다양한 형태의 제품으로 구현될 수 있다. 이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.
도 1은 일 실시예에 따른 가상 모바일 환경 제공 서비스를 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 가상 모바일 환경(VMI; Virtual Mobile Infrastructure) 제공 서비스는 에이전트(100) 및 가상화 장치(150)를 주체로 포함할 수 있다.
일 실시예에 따른 가상화 장치(150)는 물리적 머신을 다수의 가상 머신(VM, Virtual Machine)으로 분할하고, 하나의 동일한 물리적 하드웨어에서 여러 운영 체제를 동시에 실행할 수 있다. 가상 머신에 설치된 운영체제는 게스트 운영체제 또는 인스턴스로 지칭될 수 있고, 모바일 디바이스에 탑재되는 운영체제(예를 들어, 안드로이드) 형태일 수 있다. 따라서, 가상 머신은 모바일 운영체제가 설치된 가상의 모바일 디바이스(예를 들어, 스마트폰)일 수 있다.
에이전트(100)에서 가상화 장치(150)로 접속을 요청을 하면, 가상화 장치(150)는 사용자 식별 및 인증을 하고 에이전트(100)와 에이전트(100)에 할당되는 가상 머신 사이의 통신 채널을 생성할 수 있다. 가상화 장치(150)는 통신 채널이 생성되면 가상 머신의 화면을 에이전트(100)에 스트리밍 송출하고, 에이전트(100)는 실시간으로 가상 머신에 렌더링하여 사용자에게 별도의 모바일 디바이스를 사용하는 경험을 제공할 수 있다.
가상화 장치(150)는 가상화 서버(160), 프록시 서버(170) 및 관리 서버(180)를 포함할 수 있다. 가상화 서버(160)는 모바일 디바이스의 운영체제를 가상화에 기초하여 구현하여 구동하고 운영할 수 있다. 프록시 서버(170)는 에이전트(100)와 가상 머신 사이의 통신을 중계할 수 있다. 관리 서버(180)는 관리자에게 시각적으로 모니터링 및 제어 인터페이스를 제공할 수 있다.
가상 모바일 환경 제공 서비스는 엔터프라이즈 모빌리티(enterprise mobility))(또는, 비즈니스 모빌리티)에서 사용될 수 있다. 엔터프라이즈 모빌리티는 원격 근무 옵션을 제공하여 개인용 모바일 디바이스를 비즈니스 목적으로 사용하고 데이터 액세스에 클라우드 기술을 활용할 수 있도록 하는 비즈니스를 의미한다.
가상 모바일 환경 제공 서비스를 제공받기 위하여, 사용자는 관리자에게 사용자 등록을 요청하고, 관리자는 사용자 프로파일(예를 들어, 성명, 전화번호, 이메일 등) 정보를 사내 시스템에서 조회하거나 직접 받아서 사용자 계정을 생성할 수 있다. 사용자 계정이 생성되면, 관리자는 신규 가상 머신을 생성하여 사용자의 모바일 디바이스에게 할당하고 접속 권한을 부여할 수 있다. 사용자는 에이전트 앱을 설치하고 실행하고 지정된 접속 정보를 입력하고 서버에 접속하여 사용자 인증을 수행할 수 있다. 인증이 성공하면 에이전트에 원격 가상 머신의 화면이 표시되며, 사용자는 이를 가상의 스마트폰을 사용하는 것처럼 사용할 수 있다. 나아가, 보안 정책이 적용된 경우 화면 캡쳐가 안되거나 Wi-Fi가 차단될 수 있으며, 접속 및 사용기록이 원격 서버에 로그로 기록될 수 있다. 아래에서 도 2 내지 도 3을 참조하여 가상 모바일 환경 제공 서비스를 구성하는 주체들의 구체적인 구성요소를 설명하고, 도 4a 내지 도 6을 참조하여 가상 모바일 환경 제공 서비스의 구체적인 실시예들을 설명한다.
도 2는 일 실시예에 따른 가상화 장치의 블록도를 도시한 도면이다.
도 2를 참조하면, 일 실시예에 따른 가상화 장치(150)는 가상화 서버(160), 프록시 서버(170) 및 관리 서버(180)를 포함할 수 있다. 도 2의 가상화 서버(160), 프록시 서버(170) 및 관리 서버(180)에서 구성요소들을 별도로 구별하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 실제로 제품을 구현하는 경우에 이들 모두를 프로세서에서 처리하도록 구성할 수도 있으며, 이들 중 일부만을 프로세서에서 처리하도록 구성할 수도 있다.
가상화 서버(160)는 백업 및 복구 처리부(161), 스토리지 제어부(162), 클러스터 제어부(163), 시스템 및 가상 머신 제어부(164), 게스트 운영체제(165) 및 하이퍼바이저(166)를 포함할 수 있다.
가상화 서버(160)의 운영체제는 리눅스 기반으로 일부 커널 소스를 수정한 커스텀 운영체제일 수 있다.
하이퍼바이저(hypervisor)(166)는 가상화 서버(160) 운영체제의 물리적 자원(예를 들어, CPU, 메모리, 네트워크 등)을 게스트 운영체제(165)에게 동적으로 할당하고 관리하는 역할을 한다. 하이퍼바이저(166)는 물리적 하드웨어에 설치된 소프트웨어 계층으로, 물리적 머신을 다수의 가상 머신으로 분할할 수 있도록 해준다. 하이퍼바이저를 이용하면 동일한 물리적 하드웨어에서 여러 운영 체제를 동시에 실행할 수 있다. 하이퍼바이저(166)는 구현 방법에 따라 전가상화, 반가상화 등의 다양하게 적용 가능하며 본 발명을 이를 제한하지 아니한다.
게스트 운영체제(165)는 하이퍼바이저(166)에 의해 자원을 할당 받아 가상 머신에서 구동되는 운영체제로, 모바일 디바이스 운영체제(예를 들어, 안드로이드)일 수 있다. 게스트 운영체제(165)는 할당된 사용자에 의해 독점적으로 사용 가능하기 때문에, 게스트 운영체제(165)의 사용권한을 확인하기 위해 사용자 식별 및 인증 과정이 필요할 수 있다.
시스템 및 가상 머신 제어부(164)는 하이퍼바이저(166)의 제어 인터페이스를 구현할 수 있다. 시스템 및 가상 머신 제어부(164)는 하드웨어 자원을 동적으로 가성 머신에 할당하거나 제어 관리하는 역할을 수행할 수 있다. 또한 게스트 운영체제(165)의 실행, 중지 등의 전원 관리를 통해 운영체제의 부팅, 재부팅, 종료 등의 기능으로 제어할 수 있다. 시스템 및 가상 머신 제어부(164)는 가상 머신 이미지를 백업 및 복원하는 기능을 구현하여 게스트 운영체제(165)의 상태 정보와 함께 이미지로 백업하여, 백업 된 순간으로 다시 복원할 수 있도록 할 수 있다.
클러스터 제어부(163)는 가상화 서버(160)의 스케일링, 즉 확장을 하기 위한 기능을 구현할 수 있다. 가상화 서버(160)에서 실행할 수 있는 게스트 운영체제(165)의 개수는 하드웨어 가용 자원에 한정되는데, 구동 시키고자 하는 개수가 한계를 초과하는 경우 가상화 서버(160)를 늘려야 한다. 이 때 동일한 시스템 구성을 유지하고 확장하기 위해서는 미리 이에 대한 설계가 필요할 수 있다. 흔히 클라우드 시스템에서는 이를 ‘스케일 아웃’ 이라고 하며, 자동화 방안을 고안하는 것이 일반적이다.
일 실시예에 따르면, 확장성을 고려하여 간편하게 확장 가능한 인터페이스를 구현할 수 있다. 예를 들면, 유동적으로 게스트 운영체제(165)에 자원을 할당할 가상화 서버(160)를 관리하는 것이다. 즉, 다수의 가상화 서버(160)가 존재하고 자원 효율적으로 다수의 게스트 운영체제(165)에 균형 있게 배분할 수 있다. 확장을 하는 경우 가상화 서버(160) 한 대를 추가하고, 관리 서버(180)에 설정하면 자동으로 기존 게스트 운영체제(165)가 접속하는 위치를 새롭게 추가된 가상화 서버(160)로 바꿔줄 수 있다.
클러스터 구성이 2개의 가상화 서버(160)인 경우, 흔히 이중화로 불리던 것과 유사하다. 이중화의 경우 서비스 실패(예를 들어, 장애)에 대비하여 동일한 서버를 2대 연결하고 한 쪽이 장애가 발생한 경우 다른 쪽에서 서비스를 지속적으로 수행할 수 있다. 또한, 이중화는 부하 분산의 역할도 하는데, 서버에 접속한 사용자를 순차적으로 균형 있게 2개의 서버에 배분하여 서버에 걸리는 부하를 분산시킬 수 있다. 클러스터 구성이 N개로 확장될 경우에도 이와 유사하게 서비스 실패(Fault tolerant)에 유연하게 대비할 수 있고, 이를 HA(High Availability)라 지칭할 수 있다.
스토리지 제어부(162)는 다수의 가상 머신이 사용할 수 있는 스토리지에 접근할 수 있도록 제어하는 기능을 제공할 수 있다. 스토리지는 DAS, NAS, SAN 등 다양하게 구성할 수 있다. 예를 들어, 유연하게 스토리지 장치를 구성하기 위해 NAS를 스토리지로 사용할 수 있다. NAS의 경우 대표적인 프로토콜로는 NFS, SMB/CIFS, FTP, HTTP, AFP 등이 있으며 시스템 환경에 맞게 선택하여 구축할 수 있다.
스토리지 제어부(162)는 특정 가상 머신에 대하여 사용 가능한 스토리지 저장소를 매핑 시킬 수 있다. 스토리지 제어부(162)는 논리적 접근 경로(예를 들어, :/data/vm1)를 특정 가상 머신에 할당하여, 게스트 운영체제(165)가 부팅될 때 스토리지의 특정 경로에 접근하여 사용할 수 있도록 한다.
백업 및 복구 처리부(161)는 가상 머신의 백업 및 복구를 처리할 수 있다. 가상 머신은 물리적 하드웨어 자원을 할당 받아 게스트 운영체제(165)를 구동하는데, 특정 순간의 상태를 보관해야 하는 경우가 있다. 이러한 것을 스냅샷이라 하는데, 스냅샷은 그 시점의 가상 시스템(VM) 상태 및 데이터를 보관할 수 있다. 가상 시스템의 스냅샷을 생성할 때 가상 시스템은 영향을 받지 않고 지정된 상태인 가상 머신의 이미지만 복사 및 저장된다. 스냅샷은 시점 별로 선형적으로 누적되는 메커니즘이 일반적이며, 여러 번 수행하여 복원 지점을 여러 개 만들 수 있다.
전술한 백업은 스냅샷을 포함하는 포괄적인 의미를 나타낼 수 있다. 예를 들어, 백업은 스냅샷 이외에도 저장된 이미지를 외부 저장소에 2차 백업하는 것도 포함할 수 있다. 스토리지 서버에 장애가 발생하는 경우에 대비하여 이미지를 외부에 주기적으로 백업할 수 있다. 복원은 백업된 이미지 저장소로부터 상태 및 데이터를 읽어 들여 백업 한 시점의 상태로 되돌리는 것일 수 있다.
프록시 서버(170)는 통신 및 프로토콜 제어부(171), 클러스터 제어부(172), 프로그램 제어부(173) 및 사용자 인증 처리부(174)를 포함할 수 있다.
대부분 클라이언트/서버 구조에서 인터넷을 통해 서버에 접속할 때 흔히, 웹서버를 앞 단에 세우고 웹 서버에서 백엔드 서버(WAS, Web Application Server)로 전달하는 구조로 구성된다. 이와 유사하게 본 발명의 경우도, 에이전트(100)가 가상 머신에 접속할 때 중계 서버를 거치게 되는데, 해당 중계 서버를 프록시 서버(170)로 지칭한다.
통신 및 프로토콜 제어부(171)는 통신 채널의 중계 역할을 수행한다. 통신 및 프로토콜 제어부(171)는 설계에 따라 여러가지 방식이 있을 수 있다. 예를 들면 에이전트(100)와 프록시 서버(170) 간 인증을 위한 정보를 주고받은 후에, 연결 대상 가상화 서버(160)를 지정하여 정보를 에이전트(100)에게 전달하면, 직접 에이전트(100)와 가상화 서버(160)간 통신이 이루어지도록 설계할 수 있다. 그러나, 프록시 서버(170)는 전술한 방식에 제한을 두지 않고 포괄적으로 다양하게 구성이 가능하다.
프로그램 제어부(173)는 가상화 장치(150)의 서버 앞 단에서 발생 가능한 제어 요소를 포괄 수행할 수 있다. 예를 들어, 프로그램 제어부(173)는 암/복호화를 수행할 수 있다. 프로그램 제어부(173)는 프록시 서버(170) 단에서 에이전트(100)와의 통신 시 암/복호화를 설정에 따라 기능을 구현하여 지원 가능할 수 있다.
관리 서버(180)는 시스템 모니터링 관리부(181) 및 사용자 가상 머신 관리 처리부(182)를 포함할 수 있다.
시스템 모니터링 관리부(181)는 대시보드 화면에서 가상화 서버(160), 프록시 서버(170) 등 가상화 장치(150)를 구성하는 서버의 시스템 자원을 실시간으로 모니터링하기 위한 데이터를 실시간으로 시각화 하여 보여줄 수 있다.
또한, 시스템 모니터링 관리부(181)는 시스템 오류, 이벤트 별 알람, 시스템 로그 등 관리자의 시스템 운영을 위한 필요 기능을 제공할 수 있다. 시스템 오류는 서비스 장애, 가상 머신 구동 오류, 통신 오류 등 다양한 원인에 의한 오류를 식별하여 화면 상에 표시할 수 있도록 할 수 있다. 이벤트는 사안의 경중에 따라 단계별로 관리자에게 정보가 표시될 수 있다. 시스템 로그는 증적을 위해 저장하고 조회할 수 있는 인터페이스를 제공한다. 시스템 모니터링 관리부(181)는 사용 추적성을 위해 특정 시간에 사용한 기록을 조회할 수 있는 기능을 제공함으로써 책임 추적이 가능하다.
시스템 로그는 문자로 기록하는 것을 포함하여 영상을 기록할 수도 있다. 영상 기록은 스토리지 사용량이 크므로 특정 이벤트에 대한 영상 기록을 하도록 구현할 수도 있다. 예를 들어, 이상 행위를 하는 경우를 이벤트로 조건을 걸 수 있도록 하여, 이벤트가 트리거링 될 때 영상 기록을 하여 저장하도록 구현될 수 있다.
사용자 가상 머신 관리 처리부(182)는 가상 머신 및 이를 사용할 수 있는 사용자를 관리할 수 있다. 사용자 가상 머신 관리 처리부(182)는 가상화 서버(160)에서 구현된 시스템 및 가상 머신 제어부(164)와 연동하여 Web API 등을 구현하여 원격으로 제어할 수 있는 방식으로 구현할 수 있다.
사용자는 신원을 식별하기 위한 것으로 아이디, 이메일, 사번, 전화 번호 등을 식별자로 사용할 수 있다. 인증은 비밀번호, OTP, 얼굴인증, 패턴인증 등 다양한 방식을 조합하여 사용할 수 있다.
가상 머신에 할당되는 자원의 상세 정보, 자원 사용률, 기능 별 설정 정보 등이 조회 및 표시 정보가 될 수 있다. 관리자는 사용자 가상 머신 관리 처리부(182)를 통해 원격에서 특정 가상 머신을 종료시키거나 시작시킬 수 있고, 가상 머신 안에 설치되는 소프트웨어를 제한하거나 중지시킬 수 있다.
도 3은 일 실시예에 따른 에이전트의 블록도를 도시한 도면이다.
도 2를 참조하면, 일 실시예에 따른 에이전트(100)는 통신 및 프로토콜 제어부(310), 화면 구현부(320), 프로그램 제어부(330), 사용자 인증 처리부(340), 보안 처리부(350) 및 설정 처리부(360)를 포함할 수 있다. 도 3의 에이전트(100)에서 구성요소들을 별도로 구별하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 실제로 제품을 구현하는 경우에 이들 모두를 프로세서에서 처리하도록 구성할 수도 있으며, 이들 중 일부만을 프로세서에서 처리하도록 구성할 수도 있다.
에이전트(100)는 가상화 장치(150)에 접속하여 사용자 인증을 획득하여 권한을 획득하고, 가상 머신으로부터 화면 정보를 수신 받아 렌더링하며, 제어 정보를 송신하여 가상 머신의 일부 기능을 제어할 수 있는 프로그램일 수 있다. 나아가, 아래에서 에이전트(100)는 상기 프로그램이 탑재된 단말을 포함하는 개념으로 지칭될 수 있다.
통신 및 프로토콜 제어부(310)는 가상화 장치(150)와의 통신 채널을 생성하여 인증 및 화면 프로토콜을 주고받아 기능을 구현할 수 있다.
화면 구현부(320)는 가상 머신으로부터 수신 받은 화면 정보(예를 들어, 영상 프로토콜)를 실시간으로 화면에 렌더링할 수 있다. 영상 송출 프로토콜은 대표적으로 VNC, RDP 등의 프로토콜을 사용할 수 있다. 또는, 화면 구현부(320)는 효율적인 전송 비트 레이트를 위해 커스텀 프로토콜을 제작하여 영상 정보를 주고받을 수 있도록 구현할 수 있다.
프로그램 제어부(330)는 다른 기능의 총괄적인 제어 역할을 수행할 수 있다.
보안 처리부(350)는 스마트워크 보안 기능을 수행하기 위한 다양한 보안 기능을 처리할 수 있다.
사용자 인증 처리부(340)는 사용자로부터 패스워드를 입력을 받아 프록시 서버(170)에서 인증 여부를 확인할 수 있고, 에이전트(100)에서 스마트폰 자체의 인증 모듈 또는 API를 사용할 수 있는데, 패턴 인증, 지문 인증, 얼굴 인증 등의 요소를 결합하여 2차 인증을 구현할 수 있다.
설정 처리부(360)는 화면 전송 비율, 해상도, 음성, 접속 서버 정보 등의 설정 정보를 처리할 수 있다.
일 실시예에 따른 가상 모바일 환경 제공 서비스는 보안 기능을 포함하고 있고, 가상 모바일 환경 제공 서비스에서 채택하고 있는 보안 플랫폼을 모바일 스마트워크 보안 플랫폼이라 지칭한다.
일 실시예에 따른 모바일 스마트워크 보안 플랫폼을 구현하기 위한 보안 모듈은 가상화 장치(150) 및 에이전트(100)에 포함되어 있다.
모바일 스마트워크 보안 플랫폼은 단대단(End-to-End) 암호화, 사용자 부가 인증, 화면 캡쳐 방지, 보안 키 패드, 모바일 백신, 운영체제 무결성 검증, 에이전트(100) 무결성 검증, 단말 제어, 앱 관리, 화면 잠금, 보안 정책 등의 기능을 제공할 수 있다.
구체적으로, 모바일 스마트워크 보안 플랫폼은 사용자 부가 인증 기능을 통해, 사용자 인증을 강화하기 위해 비밀번호 인증 이외에 부가 인증요소를 결합하여 2차 인증을 제공할 수 있다. 또한, 모바일 스마트워크 보안 플랫폼은 선택적으로 사용자 단말 인증을 제공할 수 있다. 즉, 모바일 스마트워크 보안 플랫폼은 허가 받은 스마트폰만 접속을 할 수 있도록 제한할 수 있다. 사용자 부가 인증 기능 에이전트(100)의 사용자 인증 처리부(340)에서 구현될 수 있다.
화면 캡쳐 방지 기능은 중요 정보의 경우 사용자 스마트폰에 표시되고 화면을 캡쳐 할 수 있다면 정보 유출을 막을 수 없다는 것에 그 필요성이 있다. 즉, 사용자가 업무 앱을 사용하는 중에는 스마트폰의 화면을 캡쳐 하지 못하도록 하는 것이다. 화면 캡쳐는 스마트 디바이스에서 제공하는 기본 API또는 단말 기본 기능이지만, 제조사에서 이를 막을 수 있는 MDM API를 제공하기도 한다.
구체적으로, 에이전트(100)가 포그라운드로 화면 상단에 위치하는 동안 사용자가 화면 캡쳐를 할 수 없게 한다. 에이전트가 백그라운드로 빠지는 경우에는 화면을 캡쳐해도 의미있는 정보가 없기 때문에 이 때는 화면 캡쳐를 허용할 수 있다.
보안 키패드 기능은 사용자가 업무 앱을 사용하는 중에는 키 패드 입력 값을 암호화하여 서버와 송수신 하고, 입력 값을 알아낼 수 없도록 하고자 하는 것이다. 에이전트(100)의 보안 처리부(350)에서 이러한 기능을 구현하여 키 패드 입력 시 마다 키 패드 화면을 랜덤하게 표출하고, 입력 시 암호화하여 사용자 입력 값을 노출되지 않도록 수행할 수 있다.
모바일 백신의 주요 기능은 사용자 스마트폰에 설치된 모바일 앱에서 악성 코드로 알려진 것을 탐지하여 업무 앱이 구동되는 동안 실행하지 않도록 할 수 있다. 에이전트(100)의 보안 처리부(350)에서 이를 수행할 수 있다. 단순하게는 알려진 악성코드 리스트를 체크하는 것으로부터 패턴을 탐지하는 등 다양한 구현 방식이 있을 수 있다.
운영체제 무결성 검증 기능은 사용자 모바일 디바이스가 루팅되어 악용의 소지가 있는 지 탐지하는 것으로, 에이전트(100)의 보안 처리부(350)에서 수행될 수 있다.
에이전트(100) 무결성 검증 기능은 에이전트 앱 자체의 무결성을 검증하는 것으로, 위/변조되었는 지 여부를 에이전트(100) 구동 시 검증하여 위조 된 경우 에이전트를 실행하지 않도록 하는 것이다. 에이전트(100) 무결성 검증 기능은 에이전트(100)의 보안 처리부(350)에서 수행될 수 있다.
단말 제어 기능은 Wi-Fi, 블루투스, 카메라 등의 하드웨어 장치를 제어하는 기능으로, 제조사의 MDM API 및 기타 방법으로 사용자별로 보안 정책에 따라 하드웨어 장치를 사용할 수 없도록 하는 것일 수 있다. 단말 제어 기능은 에이전트(100)의 보안 처리부(350)에서 수행될 수 있다.
앱 관리 기능은 사용자 별로 보안 정책에 따라 설치하고 실행할 수 있는 앱을 관리하는 것일 수 있다. 예를 들어, 앱 관리 기능은 가상 머신에 설치되는 앱을 제한하고 업데이트 및 강제 삭제할 수 있는 기능을 포함할 수 있다. 앱 관리 기능은 가상화 장치(150)의 관리 서버(180)에서 수행될 수 있다.
화면 잠금 기능은 사용자가 인증 실패하거나 스마트폰 분실, 일정 시간 사용하지 않는 경우 화면을 잠그는 것으로 다시 사용하기 위해서는 재인증을 하도록 강제하는 기능일 수 있다. 화면 잠금 기능은 에이전트(100)의 보안 처리부(350)에서 수행될 수 있고, 관리 서버(180)와 통신하여 사용자의 분실 접수를 받아 이를 관리자가 처리할 수 있다.
보안 정책 기능은 사용자에게 사용 제한을 할 항목을 관리자가 정하여 이를 에이전트(100)가 적용하여 강제하는 것으로 관리 서버(180)에서 수행될 수 있다.
단대단 암호화 기능은 에이전트(100)에서 가상 머신까지의 구간에서 통신 채널을 암호화하여 기밀성을 보장하는 기능일 수 있다. 예를 들어, 모바일 스마트워크 보안 플랫폼은 TLS1.2 프로토콜을 지원하여 최신 보안 채널 알고리즘을 사용하여 신뢰성을 제공할 수 있다. 단대단 암호화 기능은 프록시 서버(170)의 통신 처리에서 인증 처리 후 단대단 통신 채널을 종단 간 생성하게 하는 방식으로 수행될 수 있다. 아래에서, 도 4a 내지 도 4b를 참조하여 단대단 암호화 기능에 대해 상세히 설명한다.
도 4a 내지 도 4b는 일 실시예에 따른 단대단 암호화 통신 방법을 설명하기 위한 도면이다. 도 4a 내지 도 4b의 동작은 도시된 순서 및 방식으로 수행될 수 있지만, 도시된 실시예의 사상 및 범위를 벗어나지 않으면서 일부 동작의 순서가 변경되거나 일부 동작이 생략될 수 있다. 도 4a 내지 도 4b에 도시된 다수의 동작은 병렬로 또는 동시에 수행될 수 있다.
도 4a를 참조하면, 일 실시예에 에이전트(100)는 프록시 서버(170)로 HTTP CONNECT 접속을 요청할 수 있다. HTTP CONNECT 접속 요청은 양방향 연결을 시작할 때 터널을 열기 위한 프로세스일 수 있다. 이 때, 에이전트(100)는 프록시 서버(170)로 에이전트(100)에 대응하는 아이디(ID) 및 비밀번호(PW)를 함께 전달할 수 있다. 에이전트(100)에 대응하는 아이디(ID) 및 비밀번호(PW)는 이하에서 제1 인증 정보로 지칭될 수 있다. HTTP CONNECT 접속 요청을 받은 프록시 서버(170)는 인증 서버(400)로 가상 머신 접속을 요청할 수 있다. 인증 서버(400)는 가상화 장치(150)에 포함될 수 있다. 인증 서버(400)는 에이전트(100)가 접속할 가상 머신을 결정할 수 있고, 프록시 서버(170)로 가상 머신 사용 가부를 응답할 수 있다. 프록시 서버(170)는 에이전트(100)로부터 수신한 아이디 및 비밀번호에 기초하여 인증 서버(400)로 인증을 요청할 수 있고, 인증 서버(400)는 인증을 수행할 수 있다.
인증 실패 시, 인증 서버(400)는 프록시 서버(170)를 통해 에이전트(100)에게 인증 실패 응답을 전송할 수 있다. 인증 성공 시, 인증 서버는 프록시 서버(170)를 통해 에이전트(100)에게 인증 성공 응답을 전송할 수 있다. 이 때, 프록시 서버(170)는 에이전트(100)에게 OTP를 함께 전송할 수 있다.
도 4b를 참조하면, OTP를 수신한 에이전트(100)는 프록시 서버(170)로 HTTP CONNECT 접속을 요청할 수 있다. 이 때, 에이전트(100)는 프록시 서버(170)로 OTP 토큰을 함께 전달할 수 있다. OTP 토큰은 이하에서 제2 인증 정보로 지칭될 수 있다. OTP 토큰을 수신한 프록시 서버(170)는 OTP 토큰을 검증하여 인증 성공 여부를 식별하고, 인증에 성공한 경우 에이전트(100)에 할당된 가상 머신(450)의 경로(예를 들어, 경로는 종단 접속 정보(URL)을 포함할 수 있다.)를 식별하여 에이전트(100)에 전달할 수 있다. 이 경우, 에이전트(100)는 프록시 서버(170)에 대한 접속을 종료할 수 있다.
인증 성공 및 가상 머신(450)의 경로를 수신한 에이전트(100)는 프록시 서버(170)로 HTTP CONNECT 접속을 요청할 수 있다. 이 때, 에이전트(100)는 프록시 서버(170)로 OTP 토큰 및 가상 머신 접속 정보를 함께 전달할 수 있다. 프록시 서버(170)는 OTP 토큰 및 접속 정보를 검증하여 유효한 값인 경우 가상 머신(450)으로 HTTPS 접속을 요청한다. 가상 머신(450)은 에이전트(100)에게 HTTPS 접속 응답을 전송하여, 에이전트(100)와 가상 머신(450) 간 단대단 보안 채널로 통신을 수행할 수 있다.
일 실시예에 따른 단대단 암호화 통신 방법은 인증 요소를 아이디 및 비밀번호에 의한 인증 및 앞선 인증을 성공한 사용자에 한하여 OTP에 의한 인증으로 부가 및 분리할 수 있다.
나아가, 단대단 암호화 통신 방법은 내부 망의 가상 머신에 할당되는 URL Scheme(예를 들어, IP 주소, 포트)의 편의성을 제공할 수 있다. 예를 들어, NAT 포워딩의 경우 내부 접속 서버(여기서는, 가상 머신)의 포트가 외부에 개별적으로 노출되어야 하는데, 동일한 노출 URL(예를 들어, https://1.2.3.4:443) 구조를 사용하여 내부적으로 접속 처리를 할 수 있다.
또한, 단대단 암호화 통신 방법은 통신 개시 시점에서 접속 대상 VM선택 알고리즘을 모듈화 가능할 수 있다. 단대단 암호화 통신 방법은 분배 알고리즘(예를 들어, 라운드 로빈, IP 해시, 최소 연결방식, 최소 응답시간 등)을 여러가지 방식으로 구현하여 상황에 따라 선택적으로 사용 가능할 수 있다.
도 5는 일 실시예에 따른 화면 전송 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 일 실시예에 따른 에이전트(100)는 화면 구현부(320) 및 통신 및 프로토콜 제어부(310)를 포함할 수 있고, 가상화 서버(160)는 프로세서(500) 및 게스트 운영체제(165)를 포함할 수 있다. 게스트 운영체제(165)는 에이전트(100)에 할당된 운영체제로, 가상화 서버(160)의 메모리에 저장된 형태로 존재할 수 있다.
일 실시예에 화면 전송 방법은 이미지 전송 효율 및 최적화를 위해 변경된 영역만 추적하여 정보를 전송할 수 있다. 또한, 이미지 압축 및 전송 시 에이전트(100)에서 화면 재구성을 위한 메타 정보(예를 들어, 이미지 정보, timestamp 등)을 함께 보낼 수 있다. 나아가, 화면 전송 방법은 이미지 압축률 및 옵션을 두어 통신 상황에 따라 자동으로 변경(Adaptive)되도록 구현하고, 에이전트(100)에서 끊김 없는 화면 구성을 위해 일정 시간 딜레이가 발생한 경우 동기화를 통해 실시간성을 확보할 수 있다.
구체적으로, 게스트 운영체제(165)는 프로세서(500)로 화면 이미지를 전달하고, 프로세서(500)는 전달받은 화면 이미지에 기초하여 변경된 화면 영역을 계산할 수 있다. 네트워크 상태가 나쁜 경우에 프로세서(500)는 이미지 사이즈를 축소할 수도 있다. 프로세서는 이미지를 압축하고, 변경된 화면의 이미지를 화면 재구성을 위한 메타 정보(예를 들어, 이미지 정보, timestamp 등)과 함께 에이전트(100)의 통신 및 프로토콜 제어부(310)로 전송할 수 있다.
이때, 딜레이가 발생하는 경우(예를 들어, 3초 이전과 동일한 이미지를 수신하는 경우) 에이전트(100)의 통신 및 프로토콜 제어부(310)는 가상화 서버(160)의 프로세서(500)로 이미지 동기화를 요청할 수 있다. 딜레이가 발생하지 않는 경우, 에이전트(100)의 통신 및 프로토콜 제어부(310)는 수신한 이미지의 압축을 해제하고, 이미지 사이즈를 원상 복구하여, 변경된 화면의 영역을 갱신하여 화면 구현부(320)로 전송할 수 있다.
도 6은 일 실시예에 따른 사용자 인터랙션(interaction) 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 일 실시예에 따른 통신 및 프로토콜 제어부(310)는 프로그램 제어부(330) 로 키 패드 및 터치 이벤트 리스너 등록 요청을 할 수 있다. 이후에, 키 패드 및 터치 이벤트 발생 시, 프로그램 제어부(330)는 키 패드 및 터치 이벤트를 통신 및 프로토콜 제어부(310)로 전달할 수 있다. 통신 및 프로토콜 제어부(310)는 가상화 서버(160)로 키 패드 및 터치 이벤트를 전달할 수 있다. 이를 통해 게스트 운영체제(165)는 에이전트(100) 단의 사용자 인터랙션을 수신할 수 있다.
나아가, 가상 모바일 환경 제공 서비스는 에이전트(100)와 가상 머신 간의 상호 작용을 위해 화면 클릭 및 스크롤, 하드웨어 장치 가상화(예를 들어, 카메라, 오디오, 센서 등) 등의 기술을 구현하여 실제 스마트폰 사용과 차이가 없게 실감나는 기능을 제공할 수 있다. 예를 들어, 에이전트(100)는 가상 머신의 소리를 재생할 수 있고, 에이전트의 GPS, 자이로센서, 생체 인식 센서 등 다양한 센서 기능 등을 가상 머신에서 사용할 수도 있다.
또한, 가상 머신에 전달된 알림(예를 들어, 푸쉬 형태로 제공되는 알림) 정보를 단말로 전달할 수도 있다. 이때, 에이전트(100)에서 알림을 수신하여 가상 머신의 해당 어플리케이션을 실행할 수도 있다.
예를 들어, FCM 서버는 메신저 어플리케이션(예를 들어, 카카오톡)으로부터 메시지 전송 요청을 수신하여 가상 머신에 푸쉬 형태로 메시지를 전송할 수 있다. 가상 머신은 관리 서버(180)에 에이전트(100)로 푸쉬 전송을 요청할 수 있고, 관리 서버(180)는 FCM 서버로 에이전트(100)로 푸쉬 전송을 요청할 수 있다. FCM 서버는 에이전트(100)로 푸쉬를 전송할 수 있고, 에이전트(100)는 수신한 푸쉬를 클릭하여 해당 메신저 어플리케이션을 실행하여 메시지를 확인할 수 있다. 상기 설명된 푸쉬 정보를 전달하는 일례는 도 7에 도시된 바와 같다.
도 7은 가상 머신에 전달된 푸쉬 정보를 에이전트에 전달하는 일례를 도시하는 도면이다.
도 7을 참조하면, FCM 서버는 어플리케이션으로부터 메시지 전송 요청을 수신하는 경우, 서비스 서버에 푸시 형태로 메시지를 전송하고, 전송된 메시지가 어플리케이션에 전송되는 일련을 절차를 통해 가상머신에 푸쉬 형태로 메시지가 전송될 수 있다. 또한, 가상 머신은 관리 서버(180)에 에이전트로 푸쉬 전송 요청을 수행할 수 있다. FCM 서버는 에이전트(100)로 푸쉬를 전송할 수 있고, 에이전트(100)는 Notification을 노출하고, 사용자가 해당 Notification을 선택하는 경우 해당 메신저 어플리케이션에 메시지를 노출시킬 수 있다.
도 8은 일 실시예에 따른 캡쳐 방지 기능의 일례를 도시하는 도면이다.
도 8을 참조하면, 일 실시예에 따른 에이전트(100)가 포그라운드로 화면 상단에 위치하는 동안에는 사용자가 사용자 단말을 통해 화면을 캡처할 수 없도록 제어될 수 있다. 에이전트(100)가 백그라운드로 빠지는 경우에는 화면을 캡쳐하더라도 의미 있는 정보가 없기 때문에 화면 캡쳐가 허용될 수 있다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (9)

  1. 가상 모바일 환경(VMI; Virtual Mobile Infrastructure)을 제공하는 가상화 장치에 있어서,
    가상화 서버; 및
    프록시 서버
    를 포함하고,
    상기 가상화 서버는
    가상 머신(virtual machine)에 설치되는 게스트 운영체제를 저장하는 메모리; 및
    상기 가상화 장치의 물리적 자원을 상기 게스트 운영체제에게 동적으로 할당하고 관리하고, 상기 가상 머신의 메모리 접근 경로를 할당하고, 상기 가상 머신의 백업 및 복구를 처리하는 프로세서
    를 포함하고,
    상기 프록시 서버는
    에이전트와 상기 가상 머신 사이의 통신을 중계하고,
    상기 게스트 운영체제는
    상기 프로세서에 화면 이미지를 전달하고,
    상기 프로세서는
    상기 에이전트로부터 수신한 화면의 메타 데이터에 기초하여, 상기 게스트 운영체제로부터 수신한 상기 화면 이미지의 변경된 영역에 대응하는 정보를 상기 프록시 서버를 통해 상기 에이전트로 전송하고,
    상기 프로세서는,
    네트워크 상태가 소정의 조건을 충족하는 경우, 상기 수신한 이미지의 사이즈를 축소하고,
    상기 축소된 이미지를 압축하고, 상기 축소된 이미지를 재구성하기 위한 메타 정보와 함께 상기 압축된 이미지를 상기 에이전트로 전송하는, 가상화 장치.
  2. 제1항에 있어서,
    상기 가상 머신 및 상기 가상 머신에 대응하는 사용자를 관리할 수 있는 인터페이스를 제공하고, 상기 가상화 서버 및 상기 프록시 서버 중 적어도 하나의 시스템 자원을 모니터링하기 위한 데이터를 실시간으로 시각화하는 관리 서버
    를 더 포함하는, 가상화 장치.
  3. 제1항에 있어서,
    상기 가상화 서버는
    인증 서버
    를 포함하고,
    상기 프록시 서버는
    상기 에이전트로부터 제1 인증 정보를 포함하는 접속 요청을 수신하여, 상기 인증 서버에 접속하고,
    상기 인증 서버는
    상기 프록시 서버의 접속에 반응하여 상기 에이전트의 접속 대상인 상기 가상 머신을 결정하고, 상기 가상 머신의 접속 경로를 상기 프록시 서버에 전송하는 인증 서버
    를 포함하는, 가상화 장치.
  4. 제3항에 있어서,
    상기 프록시 서버는
    상기 인증 서버로 상기 제1 인증 정보에 대응하는 사용자 인증을 요청하고, 상기 인증 서버로부터 수신한 인증 성공 결과에 반응하여 임시 비밀번호를 상기 에이전트로 전송하는, 가상화 장치.
  5. 제4항에 있어서,
    상기 프록시 서버는
    상기 에이전트로부터 수신한 제2 인증 정보가 상기 임시 비밀번호와 일치하는 경우, 상기 가상 머신의 접속 경로를 상기 에이전트로 전달하는, 가상화 장치.
  6. 제5항에 있어서,
    상기 프록시 서버는
    상기 에이전트로부터 수신한 가상 머신 접속 요청에 반응하여, 상기 에이전트와 상기 가상 머신 사이의 통신을 중계하는, 가상화 장치.
  7. 삭제
  8. 삭제
  9. 제1항에 있어서,
    상기 게스트 운영체제는
    상기 에이전트에 구비된 센서를 통해 획득된 센서 정보를 가상 머신에서 사용하도록 하는, 가상화 장치.
KR1020200116244A 2020-09-10 2020-09-10 모바일 가상화 방법 및 장치 KR102233705B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200116244A KR102233705B1 (ko) 2020-09-10 2020-09-10 모바일 가상화 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200116244A KR102233705B1 (ko) 2020-09-10 2020-09-10 모바일 가상화 방법 및 장치

Publications (1)

Publication Number Publication Date
KR102233705B1 true KR102233705B1 (ko) 2021-03-30

Family

ID=75264924

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200116244A KR102233705B1 (ko) 2020-09-10 2020-09-10 모바일 가상화 방법 및 장치

Country Status (1)

Country Link
KR (1) KR102233705B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120046807A (ko) * 2010-10-27 2012-05-11 주식회사 엘지유플러스 가상화 플랫폼 제공 방법 및 장치
KR20120076127A (ko) * 2010-12-29 2012-07-09 주식회사 케이티 가상화 기반 휴대용 단말 관리 시스템 및 방법
KR20130090628A (ko) * 2012-02-06 2013-08-14 인하대학교 산학협력단 모바일 클라우드를 위한 온톨로지 기반의 가상 머신 할당 장치 및 그 방법
KR20180135645A (ko) * 2017-06-13 2018-12-21 한국전자통신연구원 가상 데스크탑 통합 운영 장치 및 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120046807A (ko) * 2010-10-27 2012-05-11 주식회사 엘지유플러스 가상화 플랫폼 제공 방법 및 장치
KR20120076127A (ko) * 2010-12-29 2012-07-09 주식회사 케이티 가상화 기반 휴대용 단말 관리 시스템 및 방법
KR20130090628A (ko) * 2012-02-06 2013-08-14 인하대학교 산학협력단 모바일 클라우드를 위한 온톨로지 기반의 가상 머신 할당 장치 및 그 방법
KR20180135645A (ko) * 2017-06-13 2018-12-21 한국전자통신연구원 가상 데스크탑 통합 운영 장치 및 방법

Similar Documents

Publication Publication Date Title
US10331525B2 (en) Cluster file server proxy server for backup and recovery
US10331882B2 (en) Tracking and managing virtual desktops using signed tokens
EP2880589B1 (en) Trusted execution environment virtual machine cloning
US20200356536A1 (en) Method and devices for enabling data governance using policies triggered by metadata in multi-cloud environments
US10091001B2 (en) Autonomous private key recovery
US11596008B2 (en) System, method and computer program product for secure Bluetooth cryptography in a virtual mobile device platform
US11693591B2 (en) Multi cloud data framework for secure data access and portability
US11062041B2 (en) Scrubbing log files using scrubbing engines
KR20220060525A (ko) 보안성 향상된, 자동적으로 배치되는 정보 기술(it) 시스템 및 방법
US11190549B2 (en) Method and devices for enabling portability of data and client between cloud service providers
US20220035904A1 (en) Using a trusted execution environment to enable network booting
US20130339729A1 (en) Network based management of protected data sets
EP4078423A1 (en) Context-aware obfuscation and unobfuscation of sensitive content
EP3452911B1 (en) Recovery environment for a virtual machine
US10447818B2 (en) Methods, remote access systems, client computing devices, and server devices for use in remote access systems
US20180368123A1 (en) Optimized Caching of Data in a Network of Nodes
US10469457B1 (en) Systems and methods for securely sharing cloud-service credentials within a network of computing devices
US20150304237A1 (en) Methods and systems for managing access to a location indicated by a link in a remote access system
KR102233705B1 (ko) 모바일 가상화 방법 및 장치
US9348849B1 (en) Backup client zero-management
WO2015131607A1 (zh) 可信环境创建方法和装置及基站异常恢复方法和装置
US20220350629A1 (en) Update management for managed virtual machines
US20220350628A1 (en) Managed virtual machines
KR101652194B1 (ko) 클라이언트 단말을 이용한 원격 가상 머신의 제어 시스템 및 방법
CA3137755A1 (en) Distributed file locking for a network file share

Legal Events

Date Code Title Description
GRNT Written decision to grant