KR101617318B1 - 데이터 입력 방법 및 장치 - Google Patents

데이터 입력 방법 및 장치 Download PDF

Info

Publication number
KR101617318B1
KR101617318B1 KR1020140060419A KR20140060419A KR101617318B1 KR 101617318 B1 KR101617318 B1 KR 101617318B1 KR 1020140060419 A KR1020140060419 A KR 1020140060419A KR 20140060419 A KR20140060419 A KR 20140060419A KR 101617318 B1 KR101617318 B1 KR 101617318B1
Authority
KR
South Korea
Prior art keywords
data
virtual machine
input data
input
machine manager
Prior art date
Application number
KR1020140060419A
Other languages
English (en)
Other versions
KR20140142144A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20140142144A publication Critical patent/KR20140142144A/ko
Application granted granted Critical
Publication of KR101617318B1 publication Critical patent/KR101617318B1/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/60Protecting data
    • 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
    • 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/606Protecting data by securing the transmission between two devices or processes
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • 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
    • 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/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
    • 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
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/031Protect user input by software means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2105Dual mode as a secondary aspect

Landscapes

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

Abstract

본 발명의 실시예는 데이터 입력 방법 및 장치를 제공한다. 본 발명은 통신 분야에 관한 것이며 입력 정보의 보안을 향상시키는 것을 목적으로 한다. 상기 방법은, 가상 머신 관리자가 입력 데이터를 획득하는 단계; 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계 - 상기 보안 접속은 애플리케이션 인터페이스와 서버 간에 구축되어 있고 데이터 전송을 위해 사용됨 - ; 및 상기 가상 머신 관리자가 상기 암호화 데이터를 서버에 송신하는 단계를 포함한다. 본 발명은 데이터 입력 시나리오에 적용 가능하다.

Description

데이터 입력 방법 및 장치{METHOD AND APPARATUS FOR INPUTTING DATA}
본 출원은 2013년 6월 3일에 출원된 중국특허출원 No. 201310216048.1에 대한 우선권을 주장하는 바이며, 상기 문헌의 내용은 본 명세서에 원용되어 포함된다.
본 발명은 통신 분야에 관한 것이며, 특히 데이터 입력 방법 및 장치에 관한 것이다.
가상 머신 관리자(Virtual Machine Monitor/Manager)는 소프트웨어 계층이며, 하드웨어 계층 상에서 직접 운용될 수 있고 하드웨어 자원을 공유하는 복수의 운영체제를 관리한다. 서버가 시작하여 가상 머신 관리자를 실행할 때, 가상 머신 관리자는 복수의 가상 머신을 생성하고 메모리, CPU, 및 디스크와 같은 적절한 수의 하드웨어 자원을 각각의 가상 머신에 할당할 수 있다.
가상 머신 관리자는 복수의 가상 머신을 관리하고, 각각의 가상 머신 상에서 독립적인 운영체제 및 독립적인 미들웨어가 운영된다. 이를 기초로, 다양한 애플리케이션이 상이한 가상 머신 상에서 운영될 수 있고 다른 애플리케이션으로부터 격리된다. 이 방법에서, 보안 입력의 실행 동안, 보안 입력을 필요로 하는 애플리케이션이나 이러한 애플리케이션을 운용하는 운영체제에 대해 보안 보호가 수행될 수 있다.
종래기술에는 다음과 같은 단점이 있다: 운영체제는 보안 보호 동안 대응하는 보안 및 암호화 프로세싱을 수행하기 때문에, 운영체제가 공격받는 경우, 사용자가 입력한 평문이 요구될 수 있으며, 이에 의해 입력 정보의 보안이 취약하게 된다.
본 발명의 실시예는 입력 정보의 보안을 높이기 위해, 데이터를 입력하는 방법 및 장치를 제공한다.
전술한 목적을 달성하기 위해, 본 발명의 실시예는 다음과 같은 기술적 솔루션을 채택한다:
제1 관점에 따르면, 본 발명의 실시예는 데이터 입력 방법을 제공하며, 상기 방법은, 가상 머신 관리자가 입력 데이터를 획득하는 단계; 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계 - 상기 보안 접속은 애플리케이션 인터페이스와 서버 간에 구축되어 있고 데이터 전송을 위해 사용됨 - ; 및 상기 가상 머신 관리자가 상기 암호화 데이터를 서버에 송신하는 단계를 포함한다.
제1 관점의 제1 가능한 실행 방식에서, 상기 가상 머신 관리자가 입력 데이터를 획득하는 단계는, 상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계를 포함하며, 상기 가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 수행한다.
제1 관점의 제1 가능한 실행 방식을 참조하여, 제1 관점의 제2 가능한 실행 방식에서, 상기 방법은 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 가상 입력 유닛을 생성하는 단계를 더 포함한다.
제1 관점의 제1 또는 제2 가능한 실행 방식을 참조하여, 제1 관점의 제3 가능한 실행 방식에서, 상기 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며; 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용되며, 상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계는: 상기 가상 머신 관리자가 상기 제1 보안 구역을 통해 상기 제1 입력 데이터를 획득하는 단계, 및 상기 제1 정상 구역을 통해 상기 제2 입력 데이터를 획득하는 단계를 포함하며; 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는: 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계를 포함한다.
제1 관점의 제1 내지 제3 가능한 실행 방식 중 임의의 하나를 참조하여, 제1 관점의 제3 가능한 실행 방식에서, 상기 가상 입력 유닛은 가상 키보드를 포함한다.
제1 관점을 참조하여, 제1 관점의 제5 가능한 실행 방식에서, 상기 가상 머신 관리자가 입력 데이터를 획득하는 단계는: 상기 가상 머신 관리자가 물리적 입력 유닛을 제어하는 단계; 및 상기 가상 머신 관리자가 상기 물리적 입력 유닛을 사용하여 상기 입력 데이터를 획득하는 단계를 포함하며, 상기 입력 데이터는 입력 버퍼에 버퍼링되며, 상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계 후에, 상기 가상 머신 관리자가 상기 입력 버퍼를 클리어링하는 단계를 더 포함한다.
제1 관점의 제5 가능한 실행 방식을 참조하여, 제1 관점의 제6 가능한 실행 방식에서, 상기 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역을 포함하며, 상기 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용되고, 상기 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용되며, 상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계는: 상기 가상 머신 관리자가 상기 제2 보안 구역을 통해 상기 제3 입력 데이터를 획득하는 단계, 및 상기 제2 정상 구역을 통해 상기 제4 입력 데이터를 획득하는 단계를 포함하며; 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는: 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계를 포함한다.
제1 관점의 제5 또는 제6 가능한 실행 방식을 참조하여, 제1 관점의 제7 가능한 실행 방식에서, 상기 물리적 입력 유닛은 물리적 키보드를 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제7 가능한 실행 방식 중 임의의 하나를 참조하여, 제1 관점의 제8 가능한 실행 방식에서, 상기 가상 머신 관리자가 입력 데이터를 획득하는 단계 후에, 상기 가상 머신 관리자가 위조 입력 데이터를 생성하는 단계, 및 상기 위조 입력 데이터를 상기 운영체제에 송신하는 단계를 더 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제8 가능한 실행 방식 중 임의의 하나를 참조하여, 제1 관점의 제9 가능한 실행 방식에서, 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계 전에, 상기 가상 머신 관리자가 굴복 명령을 수신하는 단계를 포함하며, 상기 굴복 명령은 사용자가 데이터 입력을 완료하도록 명령하는 데 사용되는 명령이며; 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는, 상기 가상 머신 관리자가, 상기 굴복 명령을 수신한 후, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계를 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제9 가능한 실행 방식 중 임의의 하나를 참조하여, 제1 관점의 제10 가능한 실행 방식에서, 상기 가상 머신 관리자가 입력 데이터를 획득하는 단계 전에, 상기 가상 머신 관리자가 트리거 명령을 수신하는 단계를 더 포함하며, 상기 트리거 명령은 상기 가상 머신 관리자가 데이터 암호화를 가능하게 하도록 트리거링하는 데 사용되는 명령이며, 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는: 상기 가상 머신 관리자가 상기 트리거 명령에 응답해서, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계를 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제10 가능한 실행 방식 중 임의의 하나를 참조하여, 제1 관점의 제11 가능한 실행 방식에서, 상기 가상 머신 관리자가 상기 암호화 데이터를 서버에 송신하는 단계는: 상기 가상 머신 관리자가, 상기 애플리케이션 인터페이스를 사용하여 상기 보안 접속을 통해 상기 암호화 데이터를 서버에 송신하는 단계를 포함한다.
제1 관점 또는 제1 관점의 제1 또는 제11 가능한 실행 방식 중 임의의 하나를 참조하여, 제1 관점의 제12 가능한 실행 방식에서, 상기 보안 접속은 보안 소켓 계층(Secure Sockets Layer: SSL) 접속을 포함하며; 상기 가상 머신 관리자가, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는: 상기 가상 머신 관리자가, 상기 SSL 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계를 포함한다.
제2 관점에 따르면, 본 발명의 실시예는 물리적 호스트를 제공하며, 상기 물리적 호스트는 입력 데이터를 획득하도록 구성되어 있는 획득 유닛; 보안 접속의 암호화 규칙에 따라, 상기 획득 유닛에 의해 획득된 입력 데이터를 암호화하여 암호화 데이터를 획득하도록 구성되어 있으며, ; 상기 암호화 데이터를 서버에 송신하도록 구성되어 있으며, 상기 보안 접속은 상기 물리적 호스트의 애플리케이션 인터페이스와 서버 간에 구축되어 데이터 전송에 사용되는 접속을 일컫는, 프로세싱 유닛; 및 상기 암호화 데이터를 서버에 송신하도록 구성되어 있는 송수신기 유닛을 포함한다.
제2 관점의 제1 가능한 실행 방식에서, 상기 획득 유닛은 구체적으로 가상 입력 유닛을 사용하여 입력 데이터를 획득하도록 구성되어 있으며, 상기 가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 수행한다.
제2 관점의 제1 가능한 실행 방식을 참조하여, 제2 관점의 제2 가능한 실행 방식에서, 상기 가상 머신 관리자는 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 가상 입력 유닛을 생성하도록 구성되어 있는 생성 유닛을 더 포함한다.
제2 관점의 제1 또는 제2 가능한 실행 방식을 참조하여, 제2 관점의 제3 가능한 실행 방식에서, 상기 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며; 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용되며, 상기 획득 유닛은 구체적으로: 상기 가상 머신 관리자가 상기 제1 보안 구역을 통해 상기 제1 입력 데이터를 획득하고, 상기 제1 정상 구역을 통해 상기 제2 입력 데이터를 획득하도록 구성되어 있으며; 상기 프로세싱 유닛은 구체적으로: 보안 접속의 암호화 규칙에 따라 상기 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
제2 관점을 참조하여, 제2 관점의 제4 가능한 실행 방식에서, 상기 획득 유닛은 구체적으로: 물리적 입력 유닛을 제어하고 상기 물리적 입력 유닛을 사용하여 상기 입력 데이터를 획득하도록 구성되어 있으며, 상기 입력 데이터는 입력 버퍼에 버퍼링되며, 상기 프로세싱 유닛은 상기 입력 버퍼를 클리어링하도록 추가로 구성되어 있다.
제2 관점의 제4 가능한 실행 방식을 참조하여, 제2 관점의 제5 가능한 실행 방식에서, 상기 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역을 포함하며, 상기 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용되고, 상기 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용되며, 상기 획득 유닛은 구체적으로: 상기 가상 머신 관리자가 상기 제2 보안 구역을 통해 상기 제3 입력 데이터를 획득하고, 상기 제2 정상 구역을 통해 상기 제4 입력 데이터를 획득하도록 구성되어 있으며; 상기 프로세싱 유닛은 구체적으로: 보안 접속의 암호화 규칙에 따라 상기 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
제2 관점 또는 제2 관점의 제1 내지 제5 가능한 실행 방식 중 임의의 하나를 참조하여, 제2 관점의 제6 가능한 실행 방식에서, 상기 프로세싱 유닛은 상기 가상 머신 관리자가 위조 입력 데이터를 생성하는 단계, 및 상기 위조 입력 데이터를 상기 운영체제에 송신하도록 추가로 구성되어 있다.
제2 관점 또는 제2 관점의 제1 내지 제6 가능한 실행 방식 중 임의의 하나를 참조하여, 제2 관점의 제7 가능한 실행 방식에서, 상기 송수신기 유닛은 굴복 명령을 수신하도록 추가로 구성되어 있으며, 상기 굴복 명령은 사용자가 데이터 입력을 완료하도록 명령하는 데 사용되는 명령이며; 상기 프로세싱 유닛은 구체적으로 상기 송수신기 유닛이 상기 굴복 명령을 수신한 후, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
제2 관점 또는 제2 관점의 제1 내지 제7 가능한 실행 방식 중 임의의 하나를 참조하여, 제2 관점의 제8 가능한 실행 방식에서, 상기 송수신기 유닛은 트리거 명령을 수신하도록 추가로 구성되어 있으며, 상기 트리거 명령은 상기 가상 머신 관리자가 데이터 암호화를 가능하게 하도록 트리거링하는 데 사용되는 명령이며, 상기 프로세싱 유닛은 구체적으로 상기 송수신기 유닛에 의해 수신된 트리거 명령에 응답해서, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
제2 관점 또는 제2 관점의 제1 내지 제8 가능한 실행 방식 중 임의의 하나를 참조하여, 제2 관점의 제9 가능한 실행 방식에서, 상기 송수신기 유닛은 구체적으로 상기 애플리케이션 인터페이스를 사용하여 상기 보안 접속을 통해 상기 암호화 데이터를 서버에 송신하도록 구성되어 있다.
제2 관점 또는 제2 관점의 제1 내지 제9 가능한 실행 방식 중 임의의 하나를 참조하여, 제2 관점의 제10 가능한 실행 방식에서, 상기 보안 접속은 보안 소켓 계층(Secure Sockets Layer: SSL) 접속을 포함하며; 상기 프로세싱 유닛은 구체적으로 상기 SSL 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
제3 관점에 따르면, 본 발명의 실시예는 물리적 호스트를 제공하며, 상기 물리적 호스트는 하드웨어 계층, 상기 하드웨어 계층 상에서 운용되는 가상 머신 관리자(Virtual Machine Manager: VMM), 및 상기 가상 머신 관리자(VMM) 상에서 운용되는 적어도 하나의 가상 머신을 포함하며, 상기 가상 머신 관리자는 전술한 실시예에서 언급된 가상 머신 관리자이다.
본 발명의 실시예는 데이터 입력 방법 및 장치를 제공한다. 입력 데이터를 획득한 후, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하고, 그 암호화 데이터를 서버에 송신한다. 이 방법에서, 가상 머신 관리자 상에서 사용자가 입력한 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하고, 그런 다음 암호화 데이터가 서버에 송신된다. 운영체제는 사용자가 입력한 데이터를 암호화하는 프로세스에 참여할 필요가 없다는 것을 알 수 있으며, 즉 데이터 암호화는 운영체제에 자명하다. 이 방법에서, 사용자가 입력한 정확한 데이터는 운영체제가 공격받더라도 획득될 수 없으며, 이에 의해 입력 정보의 보안 및 신뢰성이 향상된다.
본 발명의 실시예 또는 종래기술의 기술적 솔루션을 더 명확하게 설명하기 위해, 이하에서는 본 발명의 실시예를 설명하는 데 필요한 첨부된 도면에 대해 간략하게 설명한다. 당연히, 이하의 실시예의 첨부된 도면은 본 발명의 일부의 실시예에 지나지 않으며, 당업자라면 창조적 노력 없이 첨부된 도면으로부터 다른 도면을 도출해낼 수 있을 것이다.
도 1은 본 발명의 실시예에 따른 데이터 입력 방법에 대한 개략도이다.
도 2는 본 발명의 실시예에 따른 SSL 접속을 구축하는 방법에 대한 개략도이다.
도 3은 본 발명의 실시예에 따른 SSL 접속을 구축하는 다른 방법에 대한 개략도이다.
도 4는 본 발명의 실시예에 따른 다른 데이터 입력 방법에 대한 개략도이다.
도 5는 본 발명의 실시예에 따른 가상 머신 관리자에 대한 개략 블록도이다.
도 6은 본 발명의 실시예에 따른 다른 가상 머신 관리자에 대한 개략적인 블록도이다.
도 7은 본 발명의 실시예에 따른 가상 머신 관리자에 대한 개략적인 구조도이다.
도 8은 본 발명의 실시예에 따른 물리적 호스트에 대한 개략적인 블록도이다.
본 발명의 실시예의 첨부된 도면을 참조하여 본 발명의 실시예에 따른 기술적 솔루션에 대해 명확하고 완전하게 설명한다. 당연히, 이하의 상세한 설명에서의 실시예는 본 발명의 모든 실시예가 아닌 일부에 지나지 않는다. 당업자가 창조적 노력 없이 본 발명의 실시예에 기초하여 획득하는 모든 다른 실시예는 본 발명의 보호 범위 내에 있게 된다.
본 발명의 실시예는 데이터 입력 방법을 제공한다. 도 1에 도시된 바와 같이, 이하를 포함한다:
101. 가상 머신 관리자가 입력 데이터를 획득한다.
가상 머신 관리자가 입력 데이터를 획득하는 방법은 장치의 입력 장치에 따라 변한다.
구체적으로, 장치의 입력 장치가 가상 입력 유닛이면, 가상 머신 관리자가 입력 데이터를 획득하는 방법은 구체적으로 다음과 같다: 가상 머신 관리자는 가상 입력 유닛을 사용하여 입력 데이터를 획득한다.
가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 실행하는데, 즉 가상 입력 유닛은 가상 입력 유닛을 사용해서 사용자가 입력한 데이터를 획득한다. 가상 입력 유닛은 사용자가 탭핑한 위치에 따라 사용자가 입력한 데이터를 결정하도록 구성되어 있다.
즉, 가상 머신 관리자에 의해 생성된 가상 입력 유닛의 기능은 운영체제상에서 가상 입력 유닛의 기능과 동일하다. 가상 입력 유닛을 사용함으로써, 사용자가 터치한 상이한 위치들에 의해 표시되는 데이터를 획득할 수 있고 그런 다음 입력 데이터를 획득할 수 있다.
또한, 가상 입력 유닛을 사용하여 입력 데이터를 획득하기 전에, 가상 머신 관리자는 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 가상 입력 유닛을 생성할 수 있다.
구체적으로, 가상 머신 관리자는 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 운영체제상에서 가상 입력 유닛과 동일한 가상 입력 유닛을 생성할 수 있다.
가상 머신 관리자는 또한 다른 방법을 사용하여 가상 입력 유닛을 생성할 수 있으며, 예를 들어, 가상 머신 관리자 자체가 운영체제를 사용하지 않고 운영체제상에서 가상 입력 유닛과 동일한 가상 입력 유닛을 생성할 수 있다는 것에 유의해야 한다. 가상 머신 관리자가 가상 입력 유닛을 생성하는 방법은 본 발명에 제한되지 않는다.
또한, 가상 입력 유닛은 가상 키보드를 포함한다.
예시적으로, 장치가 터치스크린 장치이면, 장치의 입력 장치는 가상 입력 유닛이다. 가상 머신 관리자는 운영체제상에서 가상 키보드와 동일하게 기능하는 가상 키보드를 생성할 수 있다. 사용자가 터치스크린 장치상에서 데이터를 입력하면, 가상 머신 관리자는 가상 키보드를 사용하여 사용자가 탭핑한 터치스크린 장치의 위치에 대응하는 데이터를 획득할 수 있고, 이에 의해 입력 데이터를 획득할 수 있다.
또한, 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며, 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용된다.
이 경우, 가상 머신 관리자는 제1 보안 구역을 통해 제1 입력 데이터를 획득하고, 가상 머신 관리자는 제1 정상 구역을 통해 제2 입력 데이터를 획득한다.
구체적으로, 암호화 프로세싱은 사용자가 입력한 데이터의 일부에 대해 수행되어야 하므로, 사용자가 입력한 데이터는 구별될 수 있다. 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역으로 분할될 수 있다. 사용자가 탭핑한 위치가 제1 정상 구역에 대응하면, 가상 머신 관리자는 제2 입력 데이터를 획득하고, 암호화 프로세싱을 수행하지 않아도 되며, 종래기술에서 수행하는 것과 동일하게 정상적인 프로세싱을 수행한다. 사용자가 탭핑한 위치가 제1 보안 구역에 대응하면, 가상 머신 관리자는 제1 입력 데이터를 획득할 수 있고, 데이터를 암호화할 수 있다.
또한, 사용자가 탭핑한 위치가 가상 입력 유닛 외측의 구역에 있으면, 가상 머신 관리자는 사용자가 탭핑한 위치에 대응하는 동작에 대해 정상적인 프로세싱을 수행하고, 이는 종래기술의 동작과 동일하다. 상세한 설명은 여기서 반복 설명하지 않는다.
위의 예에서 설명된 바와 같이, 가상 키보드는 제어 키 구역, 즉 제1 정상 구역, 및 데이터 키 구역, 즉 제1 보안 구역을 포함한다. 사용자가 탭핑한 위치가 제어 키 구역이면, 가상 머신 관리자는 대응하는 제어 데이터를 획득하고 이 제어 데이터에 대해 종래기술에서 수행하는 프로세싱과 동일한 프로세싱을 수행할 수 있다. 예를 들어, 사용자가 제어 키 구역 내의 캡스 락(Caps Lock) 위치를 탭핑하면, 가상 머신 관리자는 제어 데이터 Caps Lock를 획득하고, 가상 머신 관리자는 운용체제를 사용하여 캡스 락 동작을 수행한다. 사용자가 탭핑한 위치가 데이터 키 구역이면, 가상 머신 관리자는 대응하는 데이터 정보를 획득하고, 이 경우, 가상 머신 관리자는 데이터 정보를 제1 입력 데이터로서 사용한다. 예를 들어, 사용자가 데이터 키 구역 내의 위치 A를 탭핑하면, 가상 머신 관리자는 사용자가 입력한 데이터 A를 캡처하고 이것을 제1 입력 데이터로서 사용하여, 보안 프로세싱을 수행한다.
본 발명의 실시예에서, 입력 데이터에 대해 보안 프로세싱을 수행하는 것은 입력 데이터에 대해 단계 102에서의 동작을 수행하는 것이라고 하는데, 즉 입력 데이터에 대해 암호화 프로세싱을 수행하는 것이라고 한다.
장치의 입력 장치가 물리적 입력 장치이면, 가상 머신 관리자가 입력 데이터를 획득하는 방법은 구체적으로 다음과 같다: 가상 머신 관리자는 물리적 입력 유닛을 제어하고; 가상 머신 관리자는 물리적 입력 유닛을 사용하여 입력 데이터를 획득하며, 여기서 입력 데이터는 입력 버퍼에 버퍼링된다.
또한, 물리적 입력 유닛은 물리적 키 보드를 포함한다.
구체적으로, 장치의 물리적 입력 장치가 물리적 키보드이면, 가상 머신 관리자는 물리적 키보드를 제어할 수 있고, 또한 사용자가 물리적 키보드를 사용하여 입력할 때 입력 데이터를 획득할 수 있다. 사용자가 물리적 키보드를 사용하여 입력하는 것을 수행할 때, 사용자가 입력한 데이터는 가상 머신 관리자가 입력 데이터를 획득하는 입력 버퍼에 버퍼링된다.
또한, 물리적 입력 유닛은 제2 보안 구역 및 제2 정상 구역을 포함한다. 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용될 수 있다. 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용될 수 있다.
이 경우, 가상 머신 관리자는 제2 보안 구역을 통해 제3 입력 데이터를 획득하며, 가상 머신 관리자는 제2 정상 구역을 통해 제4 입력 데이터를 획득한다.
구체적으로, 암호화 프로세싱은 사용자가 입력한 데이터의 일부에 대해 수행되어야 하므로, 사용자가 입력한 데이터는 구별될 수 있다. 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역으로 분할될 수 있다. 사용자가 제2 정상 구역을 통해 입력하는 것을 수행하면, 가상 머신 관리자는 제4 입력 데이터를 획득할 수 있고, 암호화 프로세싱을 수행할 필요 없이, 종래기술에서 프로세싱을 수행하는 것과 동일하게 정상적인 프로세싱을 수행할 수 있다. 사용자가 제2 보안 구역을 통한 입력을 수행하면, 가상 머신 관리자는 제3 입력 데이터를 획득할 수 있고 데이터를 암호화해야 한다.
위의 예에서 설명한 바와 같이, 물리적 키보드는 제어 키 구역, 즉 제2 정상 구역, 및 데이터 키 구역, 즉 제2 보안 구역을 포함한다. 사용자가 물리적 키보드의 제어 구역을 통한 입력을 수행하면, 가상 머신 관리자는 대응하는 제어 데이터를 획득하고 이 제어 데이터에 대해 종래기술에서 수행하는 프로세싱과 동일한 프로세싱을 수행할 수 있다. 사용자가 물리적 키보드의 데이터 구역을 통한 입력을 수행하면, 가상 머신 관리자는 대응하는 데이터 정보를 획득할 수 있고, 이 경우, 가상 머신 관리자는 이 데이터 정보를 제3 입력 데이터로서 사용하고 암호화 프로세싱을 수행한다.
또한, 가상 머신 관리자가 제어 입력 유닛을 제어하여 입력 데이터를 획득한 후, 가상 머신 관리자는 입력 버퍼를 클리어링한다.
구체적으로, 입력 버퍼를 통해, 사용자가 입력한 데이터를 획득한 후, 가상 머신 관리자는 입력 버퍼에 저장되어 있는 입력 데이터를 클리어링해야 하며, 이에 따라 가상 머신 관리자를 제외한 다른 시스템이 입력 데이터를 획득할 수 있으며, 이에 의해 보안 및 입력 데이터의 신뢰성을 확보할 수 있다.
102. 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
상기 보안 접속은 애플리케이션 인터페이스와 서버 간에 구축되어 있고 데이터 전송을 위해 사용된다.
애플리케이션 인터페이스와 서버 간에 보안 접속을 구축하는 동안, 암호화 규칙은 그 구축된 보안 접속을 통해 보안 전송을 협상할 수 있으며, 이에 따라 가상 머신 관리자는 그 획득된 입력 데이터에 대해 암호화 프로세싱을 수행할 때 그 결정된 암호화 규칙에 따라 암호화를 수행할 수 있으며, 이에 의해 서버가 그 암호화 데이터가 서버에 전송될 때 그 암호화 데이터를 정확하게 분석할 수 있다.
구체적으로, 애플리케이션 인터페이스와 서버 간에 구축된 보안 접속으로 인해, 암호화 동안, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터를 암호화하여 암호화 데이터를 획득해야 하며, 이에 따라 서버는 데이터를 수신한 후 데이터를 암호해제할 수 있다.
또한, 단계 101에서 가상 머신 관리자가 획득한 입력 데이터가 제1 입력 데이터이면, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다. 단계 101에서 가상 머신 관리자가 획득한 입력 데이터가 제3 입력 데이터이면, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
선택적으로, 보안 접속은 보안 소켓 계층(Secure Sockets Layer: SSL) 접속을 포함한다. 이 경우, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는, SSL 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계이다.
즉, SSL 접속이 애플리케이션 인터페이스와 서버 간에 구축된 후, 가상 머신 관리자는, 사용자가 입력한 데이터를 획득한 후, 애플리케이션 인터페이스와 서버 간의 세션 키를 사용하여 입력 데이터를 암호화하여 암호화 데이터를 획득한다.
103. 가상 머신 관리자는 암호화 데이터를 서버에 송신한다.
구체적으로, 입력 데이터를 암호화한 후, 가상 머신 관리자는 암호화 데이터를 서버에 송신하며, 이에 따라 서버는 암호화 데이터를 수신한 후 보안 접속의 암호화 규칙에 따라 암호해제를 수행하고, 이에 의해 사용자가 입력한 데이터를 획득한다.
또한, 가상 머신 관리자는 애플리케이션 인터페이스를 사용하여 보안 접속을 통해 암호화 데이터를 서버에 송신할 수 있다.
즉, 사용자가 입력한 데이터를 암호화하여 암호화 데이터를 획득한 후, 가상 머신 관리자는 암호화 데이터를 애플리케이션 인터페이스에 송신할 수 있고, 그런 다음 애플리케이션 인터페이스는 보안 접속을 사용하여 암호화 데이터를 서버에 송신한다.
또한, 애플리케이션 인터페이스와 서버 간에 SSL 접속을 구축하는 동안, SSL 접속을 구축하는 프로세스는 2가지 방식: 인증서를 사용하는 클라이언트 및 인증서를 사용하지 않는 클라이언트로 실현될 수 있으며, 여기서 2가지 방식은 접속 구축을 위한 핸드쉐이크 프로세스에서 단방향 인증 및 2방향 인증에 각각 대응하며; 그러므로 애플리케이션 인터페이스와 서버 간의 SSL 접속의 구축은 또한 2가지 방식: 단방향 인증 및 2방향 인증으로 실현될 수 있다.
SSL 접속이 애플리케이션 인터페이스와 서버 간에 단방향 인증 방식으로 구축되는 경우에, 도 2에 도시된 바와 같이, 구체적인 프로세스는 다음과 같다:
201a. 애플리케이션 인터페이스는 SSL 접속 구축 요구를 서버에 송신한다.
SSL 접속 구축 요구는 SSL 프로토콜의 버전 수, 암호화 알고리즘의 유형, 및 애플리케이션 인터페이스와 서버 간의 통신에 필요한 다른 정보를 수반한다.
202a. 서버는 서버의 인증서를 애플리케이션 인터페이스에 회신한다.
서버의 인증서는 서버 인증서의 서명 및 공증 키를 포함한다.
구체적으로, 애플리케이션 인터페이스에 의해 송신된 SSL 접속 구축 요구를 수신한 후, 서버는 애플리케이션 인터페이스의 요구에 구축되어 있는 SSL 접속의 SSL 프로토콜의 버전 수, 암호화 알고리즘의 유형, 및 애플리케이션 인터페이스와 서버 간의 통신에 필요한 다른 정보를 획득한다. 서버는 그 서명 및 공증 키를 포함한 인증서를 애플리케이션 인터페이스에 송신하고, 이에 따라 애플리케이션 인터페이스는 그 인증서를 인증한다.
203a. 애플리케이션 인터페이스는 서버에 의해 회신된 인증서에 따라 서버의 인증서가 유효한 인증서인지를 검증한다.
구체적으로, 서버에 의해 회신된 인증서를 수신한 후, 애플리케이션 인터페이스는 인증서가 만료하였는지, 인증서가 신뢰받고 있는 공인 인증(Certificate Authority: CA) 센서에서 발부되었는지, 인증서에 포함된 공증 키가 서버 인증서의 "발부자의 디지털 서명(digital signature of the issuer)"을 정확하게 암호해제할 수 있는지, 그리고 인증서의 도메인명이 서버의 도메인명과 일치하는지를 검증해야 한다. 인증서가 전술한 모든 조건을 충족하는 것으로 검증되면, 그 인증서는 유효한 인증서로 간주되고, 프로세스는 204a로 진행한다. 인증서가 전술한 조건 중 하나라도 충족하지 않는 것으로 검증되면, 그 인증서는 무효한 인증서로 간주되고, 통신은 차단된다.
204a. 애플리케이션 인터페이스는 후속의 통신에서 사용되는 대칭 암호화에 대한 세션 키를 무작위로 생성하고, 서버의 공증 키를 사용하여 세션 키를 암호화하며, 그런 다음 그 암호화 세션 키를 서버에 송신한다.
구체적으로, 서버에 의해 송신된 인증서가 유효한 인증서인 것으로 검증한 후, 애플리케이션 인터페이스는 대칭 암호화에 대한 세션 키를 생성하고, 인증서를 사용하여 획득된 서버의 공증 키를 사용하여 세션 키를 암호화하고, 암호화 세션 키를 서버에 송신하며, 이에 따라 서버는 세션 키를 획득한다.
205a. 서버는 세션 키를 수신하고, 전용의 사설 키를 사용하여 세션 키를 암호해제하며, 그런 다음 서버는 현재 세션의 키를 획득한다.
구체적으로, 암호화 세션 키를 수신한 후, 서버는 서버의 사설 키를 사용하여 암호화 세션 키를 암호해제하여 현재 세션의 키를 획득하며, 키를 사용하여, 후속으로 전송될 데이터를 암호해제한다. 이 방법에서, 양측은 동일한 세션 키를 사용하여 보안 대칭 접속을 구축할 수 있다.
SSL 접속이 애플리케이션 인터페이스와 서버 간에 2방향 인증 방식으로 구축되는 경우, 도 3에 도시된 바와 같이, 구체적인 프로세스는 다음과 같다:
201b. 애플리케이션 인터페이스는 SSL 접속 구축 요구를 서버에 송신한다.
SSL 접속 구축 요구는 SSL 프로토콜의 버전 수, 암호화 알고리즘의 유형, 및 애플리케이션 인터페이스와 서버 간의 통신에 필요한 다른 정보를 수반한다.
202b: 서버는 서버의 인증서를 애플리케이션 인터페이스에 회신한다.
서버의 인증서는 서버 인증서의 서명 및 공증 키를 포함한다.
203b. 애플리케이션 인터페이스는 서버의 인증서가 서버에 의해 회신된 인증서에 따라 유효한 인증서인지를 검증한다.
구체적으로, 서버에 의해 회신된 인증서를 수신한 후, 애플리케이션 인터페이스는 인증서가 만료하였는지, 인증서가 신뢰받고 있는 공인 인증(CA) 센서에서 발부되었는지, 인증서에 포함된 공증 키가 서버 인증서의 "발부자의 디지털 서명"을 정확하게 암호해제할 수 있는지, 그리고 인증서의 도메인명이 서버의 도메인명과 일치하는지를 검증해야 한다. 인증서가 전술한 모든 조건을 충족하는 것으로 검증되면, 그 인증서는 유효한 인증서로 간주되고, 프로세스는 204b로 진행한다. 인증서가 전술한 조건 중 하나라도 충족하지 않는 것으로 검증되면, 그 인증서는 무효한 인증서로 간주되고, 통신은 차단된다.
204b. 애플리케이션 인터페이스는 후속의 통신에서 사용되는 대칭 암호화에 대한 세션 키를 무작위로 생성하고, 서버의 공증 키를 사용하여 세션 키를 암호화하며, 그런 다음 그 암호화 세션 키를 서버에 송신한다.
애플리케이션 인터페이스의 인증서는 애플리케이션 인터페이스의 인증서의 서명 및 공증 키를 포함한다.
205b. 서버는 세션 키를 수신하고, 전용의 사설 키를 사용하여 세션 키를 암호해제하며, 애플리케이션 인터페이스의 인증서가 유효한 인증서인지를 검증한다.
구체적으로, 서버가 애플리케이션 인터페이스의 인증서가 유효한 인증서인지를 검증하는 것에 대해서는, 애플리케이션 인터페이스가, 서버의 인증서가 유효한 인증서인지를 검증하는 것을 참조하면 되므로, 이에 대한 상세한 설명은 여기서 반복하지 않는다.
206b. 서버는 애플리케이션 인터페이스의 공증 키를 사용하여 암호화 세션 키를 암호화하고, 그런 다음 애플리케이션 인터페이스의 공증 키를 사용하여 암호화 세션 키를 애플리케이션 인터페이스에 송신한다.
구체적으로, 분석에 의해 세션 키를 획득한 후, 서버는 애플리케이션 인터페이스의 공증 키를 사용함으로써 그 획득된 세션 키를 암호화하고, 여기서 공증 키는 애플리케이션 인터페이스의 인증서를 사용하여 획득되며, 애플리케이션 인터페이스의 공증 키를 사용하여 암호화된 세션 키를 애플리케이션 인터페이스에 송신하며, 이에 따라 애플리케이션 인터페이스는 세션 키가 유효한지를 검증한다.
207b. 애플리케이션 인터페이스는 세션 키를 수신하고, 전용의 사설 키를 사용하여 세션 키를 암호해제하며, 세션 키의 유효성을 검증한다.
구체적으로, 서버가 송신한 암호화 세션 키를 수신한 후, 애플리케이션 서버는 그 사설 키를 사용하여 암호화 세션 키를 암호해제하여 암호해제 세션 키를 획득하며, 그 암호해제 세션 키가 서버에 송신된 세션 키와 일치하는지를 검사한다. 일치하면, 세션 키는 유효한 것으로 간주되고, 이 경우, 통신 양측 모두는 인증되며, 이 동일한 세션 키를 사용하여 보안 접속이 구축될 수 있다. 일치하지 않으면, 세션 키가 수정되었다는 것을 나타내며, 서버와의 접속은 차단된다.
트랜스포트 계층 보안(Transport Layer Security: TLS) 접속과 같은 다른 보안 접속이 애플리케이션 인터페이스와 서버 간에 구축될 수도 있다는 것에 유의해야 하며, 이는 본 발명에 제한되지 않는다.
애플리케이션 인터페이스와 서버 간의 보안 접속이 다른 보안 접속일 때, 그 특정한 구축 방법도 다르다는 것에 유의해야 하며 이에 대해서는 반복 설명하지 않는다.
가상 머신 관리자가 입력 데이터를 획득하고 이 입력 데이터에 대해 암호화 프로세싱을 수행하는 프로세스는 가상 머신 관리자의 모듈에 의해 실현될 수 있으며, 또한 가상 머신 관리자의 다른 부분에 의해서도 실현될 수 있다는 것에 유의해야 하며, 이는 본 발명에 제한되지 않는다.
가상 머신 관리자는 소프트웨어 계층이고, 본 발명의 보호 범위는 가상 머신 관리자뿐만 아니라 가상 머신 관리자가 운용되는 모든 물리적 장치도 망라하며, 가상 머신 관리자를 사용하여 데이터를 암호화하는 전술한 방법은 본 발명의 보호 범위 내에 있게 된다.
본 발명의 본 실시예는 데이터 입력 방법을 제공한다. 입력 데이터를 획득한 후, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하며, 그 암호화 데이터를 서버에 송신한다. 이 방법에서, 가상 머신 관리자 상에서 사용자가 입력한 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득할 수 있으며, 그런 다음 암호화 데이터는 서버에 송신된다. 사용자가 입력한 데이터를 암호화하는 프로세싱에 운영체제가 참여할 필요가 없으며, 즉 데이터 암호화는 운영체제에 투명하다는 것을 알 수 있다. 이 방법에서, 사용자가 입력한 정확한 데이터는 운영체제가 공격받더라도 획득될 수 없으며, 이에 의해 입력 정보의 보안 및 신뢰성이 향상된다.
본 발명의 실시예는 데이터 입력 방법을 제공한다. 도 4에 도시된 바와 같이, 이하를 포함한다.
301. 애플리케이션 인터페이스는 사용자가 송신한 제어 명령을 수신한다.
구체적으로 보안 입력이 가능한지를 판단한 후, 사용자는 제어 명령을 애플리케이션 인터페이스에 송신하고 이에 따라 애플리케이션 인터페이스는 제어 명령에 따라 대응하는 프로세싱을 수행한다. 보안 입력이 가능하지 않다는 것을 제어 명령이 명령하면, 애플리케이션 인터페이스는 보안 입력이 수행되지 않아야 한다는 것을 가상 머신 관리자에게 통지하고, 이에 따라 가상 머신 관리자는 수신된 입력 데이터에 대해 종래기술에서 수행하는 프로세싱과 동일한 프로세싱을 수행하고 암호화 프로세싱을 수행하지 않는다.
애플리케이션 인터페이스는 사용자가 보안 입력을 가능하게 하고 소프트웨어 인터페이스인 애플리케이션의 플러그-인(plug-in)이 될 수 있다.
302. 애플리케이션 인터페이스는 보안 입력이 가능하지 않다는 것을 제어 명령이 명령할 때 트리거 명령을 가상 관리 관리자에 송신한다. 가상 관리 관리자는 트리거 명령을 수신한다.
트리거 명령은 데이터 암호화를 가능하게 하기 위해 가상 머신 관리자를 트리거링하는 데 사용되는 명령이다.
구체적으로, 보안 입력이 가능하다는 것을 제어 명령이 명령하면, 애플리케이션 인터페이스는 보안 입력이 수행되어야 한다는 것을 가상 머신 관리자에 통지하고, 그러므로 애플리케이션 인터페이스는, 가상 머신 관리자에 트리거 명령을 송신함으로써, 가상 머신 관리자가 보안 입력 프로세싱을 수행하도록 트리거링한다. 트리거 명령을 수신한 후, 가상 머신 관리자는 사용자가 후속으로 입력하는 데이터에 대해 대응하는 보안 프로세싱이 수행되어야 한다는 것을 획득한다.
애플리케이션 인터페이스는 보안 입력 프로세싱을 다른 방식으로 수행하도록 가상 머신 관리자를 트리거링할 수도 있으며, 이는 본 발명에서 제한되지 않는다.
303. 애플리케이션 인터페이스는 서버와의 보안 접속을 구축한다.
구체적으로, 애플리케이션 인터페이스와 서버 간의 보안 접속에 대해서는, 단계 103에 설명된 애플리케이션 인터페이스와 서버 간의 보안 접속을 구축하는 방법에 대해 참조하면 되며, 이에 대해서는 여기서 반복 설명하지 않는다.
304. 가상 머신 관리자는 입력 데이터를 획득한다.
상세한 설명에 대해서는 단계 101을 참조하면 되므로, 이에 대해서는 여기서 반복 설명하지 않는다.
305. 가상 머신 관리자는 위조 입력 데이터를 생성하고, 그 위조 입력 데이터를 운영체제에 송신한다.
구체적으로, 사용자가 입력한 데이터를 캡처한 후, 애플리케이션 인터페이스에 대한 정상적인 디스플레이를 보장하기 위해, 가상 머신 관리자는 위조 입력 데이터를 생성하고 그 위조 입력 데이터를 운영체제에 송신하며, 이에 따라 운영체제가 애플리케이션 프로그램을 사용하여 그 위조 입력 데이터를 디스플레이한다.
예를 들어, 사용자가 입력한 데이터를 캡처한 후, 애플리케이션 인터페이스에 대한 정상적인 디스플레이를 보장하기 위해, 가상 머신 관리자는 위조 입력 데이터*를 생성하고 그 위조 입력 데이터*를 운영체제에 송신하며, 이에 따라 운영체제가 애플리케이션 프로그램을 사용하여 그 위조 입력 데이터*를 디스플레이한다.
306. 애플리케이션 인터페이스는 사용자가 송신한 굴복 명령을 수신하고 그 굴복 명령을 가상 머신 관리자에 송신한다. 가상 머신 관리자는 굴복 명령을 수신한다.
굴복 명령은 데이터 입력을 완료하도록 사용자에게 명령하는 명령이다.
구체적으로, 데이터를 입력한 후, 사용자는 굴복 명령을 애플리케이션 인터페이스에 송신하고, 애플리케이션 인터페이스는 그 굴복 명령을 가상 머신 관리자에 송신한다. 굴복 명령을 수신한 후, 가상 머신 관리자는 사용자가 입력한 데이터를 획득하고 보안 프로세싱을 요구하며, 즉 가상 머신 관리자는 입력 데이터를 획득하는 것을 종료하고 다음 동작을 수행할 수 있다.
307. 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대한 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
가상 머신 관리자가 단계 302에서 트리거 명령을 수신한 후, 이 단계에서, 트리거 명령에 응답해서, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
구체적으로, 굴복 명령을 수신한 후, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다. 가상 머신 관리자가 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하는 것에 대해서는, 단계 102를 참조하면 되므로, 상세한 설명은 여기서 반복 설명하지 않는다.
308. 가상 머신 관리자는 암호화 데이터를 서버에 송신한다.
구체적으로, 가상 머신 관리자는 암호화 데이터를 애플리케이션 인터페이스에 송신하고 애플리케이션 인터페이스는 암호화 데이터를 서버에 송신한다. 상세한 설명에 대해서는, 단계 103을 참조하면 되므로, 상세한 설명에 대해서는 여기서 반복 설명하지 않는다.
본 발명에서, 단계 304 내지 306은 단계가 303가 수행된 후, 수행되기 전, 또는 수행되는 것과 동시에 수행될 수 있다. 단계 303 및 단계 304 내지 306의 순서는 본 발명의 본 실시예에 제한되지 않는다. 하나의 상황만을 도면에 도시하고 있다.
본 발명의 실시예는 데이터 입력 방법을 제공한다. 애플리케이션 인터페이스와 서버 간에 보안 접속이 구축되고, 사용자가 보안 입력을 수행해야 할 때, 가상 머신 관리자는 입력 데이터를 획득하고, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하며, 암호화 데이터를 서버에 송신한다. 이 방법에서, 가상 머신 관리자 상에서 사용자가 입력한 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득할 수 있으며, 암호화 데이터는 애플리케이션 인터페이스를 사용하여 보안 접속을 통해 서버에 송신된다. 사용자가 입력한 데이터를 암호화하는 프로세스에 운영체제가 참여할 필요가 없으며, 즉 데이터 암호화는 운영체제에 투명하다는 것을 알 수 있다. 이 방법에서, 사용자가 입력한 정확한 데이터는 운영체제가 공격받더라도 획득될 수 없으며, 이에 의해 입력 정보의 보안 및 신뢰성이 향상된다.
도 5는 본 발명의 실시예에 따른 가상 머신 관리자에 대한 개략 블록도이다. 도 5에 도시된 바와 같이, 가상 머신 관리자는 획득 유닛(401), 프로세싱 유닛(402), 및 송수신기 유닛(403)을 포함한다.
획득 유닛(401)은 입력 데이터를 획득하도록 구성되어 있다.
이 경우, 획득 유닛(401)은 구체적으로 가상 입력 유닛을 사용하여 입력 데이터를 획득하도록 구성되어 있다.
가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 수행한다. 가상 입력 유닛은, 사용자가 탭핑한 위치에 따라, 사용자가 입력한 데이터를 결정하도록 구성되어 있다.
또한, 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며, 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용된다.
획득 유닛(401)은 구체적으로 상기 제1 보안 구역을 통해 상기 제1 입력 데이터를 획득하고, 상기 제1 정상 구역을 통해 상기 제2 입력 데이터를 획득하도록 구성되어 있다.
선택적으로, 가상 입력 유닛은 가상 키보드이다.
또는, 획득 유닛(401)은 구체적으로 물리적 입력 유닛을 제어하고 상기 물리적 입력 유닛을 사용하여 상기 입력 데이터를 획득하도록 구성되어 있다.
입력 데이터는 입력 버퍼에 버퍼링된다.
또한, 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역을 포함하며; 상기 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용되고, 상기 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용된다.
획득 유닛(401)은 구체적으로 상기 제2 보안 구역을 통해 상기 제3 입력 데이터를 획득하고, 상기 제2 정상 구역을 통해 상기 제4 입력 데이터를 획득하도록 구성되어 있다.
선택적으로, 물리적 입력 유닛은 물리적 키보드를 포함한다.
프로세싱 유닛(402)은 보안 접속의 암호화 규칙에 따라, 상기 획득 유닛(401)에 의해 획득된 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
보안 접속은 애플리케이션 인터페이스와 서버 간에 구축되어 데이터 전송을 위해 사용되는 접속을 일컫는다.
보안 접속은 보안 소켓 계층(Secure Sockets Layer: SSL) 접속을 포함한다.
프로세싱 유닛(402)은 구체적으로 상기 SSL 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
구체적으로, 프로세싱 유닛(402)은 구체적으로, 획득 유닛(401)이 제1 입력 데이터를 획득하는 경우, 보안 접속의 암호화 규칙에 따라, 획득 유닛(401)에 의해 획득된 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
또한, 프로세싱 유닛(402)은 구체적으로, 획득 유닛(401)이 제3 입력 데이터를 획득하는 경우에, 보안 접속의 암호화 규칙에 따라, 획득 유닛(401)에 의해 획득된 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
또한, 프로세싱 유닛(402)은 획득 유닛(401)이 구체적으로 물리적 입력 유닛을 제어하고 물리적 입력 유닛을 사용하여 입력 데이터를 획득하도록 구성되어 있을 때 입력 버퍼를 클리어링하도록 추가로 구성되어 있다.
송수신기 유닛(403)은 암호화 데이터를 서버에 송신하도록 구성되어 있다.
구체적으로 송수신기 유닛(403)은 구체적으로 애플리케이션 인터페이스를 사용하여 보안 접속을 통해 암호화 데이터를 서버에 송신하도록 구성되어 있다.
또한, 획득 유닛(401)이 가상 입력 유닛을 사용하여 입력 데이터를 획득할 때, 가상 머신 관리자는 도 6에 도시된 바와 같이 생성 유닛(404)을 더 포함한다. 생성 유닛(404)은 구체적으로 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 가상 입력 유닛을 생성하도록 추가로 구성되어 있다.
또한, 프로세싱 유닛(402)은 위조 입력 데이터를 생성하여 그 위조 입력 데이터를 운영체제에 송신하도록 추가로 구성되어 있다.
송수신기 유닛(403)은 굴복 명령을 수신하도록 구성되어 있다.
프로세싱 유닛(402)은 구체적으로, 송수신기 유닛(403)이 굴복 명령을 수신한 후, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
또한, 송수신기 유닛(403)은 트리거 명령을 수신하도록 추가로 구성되어 있다.
트리거 명령은 데이터 암호화를 가능하게 하는 가상 머신 관리자를 트리거링하는 데 사용되는 명령이다.
이 경우, 프로세싱 유닛(402)은 구체적으로 송수신기 (403)에 의해 수신된 트리거 명령에 응답하고, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
본 발명의 실시예는 가상 머신 관리자를 제공한다. 입력 데이터를 획득한 후, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하며, 암호화 데이터를 서버에 송신한다. 이 방법에서, 가상 머신 관리자 상에서 사용자가 입력한 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득할 수 있으며, 그런 다음 암호화 데이터는 서버에 송신된다. 사용자가 입력한 데이터를 암호화하는 프로세스에 운영체제가 참여할 필요가 없으며, 즉 데이터 암호화는 운영체제에 투명하다는 것을 알 수 있다. 이 방법에서, 사용자가 입력한 정확한 데이터는 운영체제가 공격받더라도 획득될 수 없으며, 이에 의해 입력 정보의 보안 및 신뢰성이 향상된다.
도 7에 도시된 바와 같이, 본 발명의 실시예에 따른 가상 머신 관리자에 대한 개략적인 구조도이다. 도 7에 도시된 바와 같이, 가상 머신 관리자는 전송기(601), 메모리(602), 수신기(603), 및 전송기(601), 메모리(602), 및 수신기(603)에 접속된 프로세서를 포함한다.
메모리(602)는 한 세트의 프로그램 코드를 저장하고, 프로세서(604)는 메모리(602) 내의 프로그램 코드를 호출하도록 구성되어 있다. 구체적으로, 프로세서(604)는 입력 데이터를 획득하도록 구성되어 있다.
구체적으로, 프로세서(604)는 구체적으로 가상 입력 유닛을 사용하여 입력 데이터를 획득하도록 구성되어 있다.
가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 수행한다. 가상 입력 유닛은 사용자가 탭핑한 위치에 따라 사용자가 입력한 데이터를 결정하도록 구성되어 있다.
또한, 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며, 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용된다.
프로세서(604)는 구체적으로 상기 제1 보안 구역을 통해 상기 제1 입력 데이터를 획득하고, 상기 제1 정상 구역을 통해 상기 제2 입력 데이터를 획득하도록 구성되어 있다.
선택적으로, 가상 입력 유닛은 가상 키보드를 포함한다.
또한, 프로세서(604)는 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 가상 키보드를 생성하도록 추가로 구성되어 있다.
또는, 프로세서(604)는 구체적으로 물리적 입력 유닛을 제어하고, 상기 물리적 입력 유닛을 사용하여 입력 데이터를 획득하도록 구성되어 있다.
입력 데이터는 입력 버퍼에 버퍼링된다.
또한, 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역을 포함하며, 상기 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용되고, 상기 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용된다.
프로세서(604)는 구체적으로 상기 제2 보안 구역을 통해 상기 제3 입력 데이터를 획득하고, 상기 제2 정상 구역을 통해 상기 제4 입력 데이터를 획득하도록 구성되어 있다.
선택적으로, 물리적 입력 유닛은 물리적 키보드를 포함한다.
프로세서(604)는 보안 접속의 암호화 규칙에 따라 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
보안 접속은 애플리케이션 인터페이스와 서버 간에 구축되어 데이터 전송을 위해 사용되는 접속을 일컫는다.
보안 접속은 보안 소켓 계층(SSL) 접속을 포함한다.
프로세서(604)는 구체적으로 SSL 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
구체적으로, 프로세서(604)는 구체적으로, 제1 입력 데이터가 획득된 경우, 보안 접속의 암호화 규칙에 따라, 획득된 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
또한, 프로세서(604)는 구체적으로, 제3 입력 데이터가 획득된 경우, 보안 접속의 암호화 규칙에 따라, 획득된 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득한다.
또한, 프로세서(604)는 프로세서(604)가 구체적으로 물리적 입력 유닛을 제어하고 물리적 입력 유닛을 사용하여 입력 데이터를 획득하도록 구성되어 있을 때 입력 버퍼를 클리어링하도록 추가로 구성되어 있다.
송수신기(601)는 암호화 데이터를 서버에 송신하도록 구성되어 있다.
구체적으로 송수신기(601)는 구체적으로 애플리케이션 인터페이스를 사용하여 보안 접속을 통해 암호화 데이터를 서버에 송신하도록 구성되어 있다.
또한, 프로세서(604)는 위조 입력 데이터를 생성하도록 추가로 구성되어 있다.
송수신기(601)는 프로세서(604)에 의해 생성된 위조 입력 데이터를 운영체제에 송신하도록 추가로 구성되어 있다.
수신기(603)는 굴복 명령을 수신하도록 구성되어 있다.
굴복 명령은 데이터 입력을 완료하도록 사용자에게 명령하는 데 사용되는 명령이다.
프로세서(604)는 구체적으로, 수신기(603)가 굴복 명령을 수신한 후, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
또한, 수신기(603)는 트리거 명령을 수신하도록 추가로 구성되어 있다.
트리거 명령은 데이터 암호화를 가능하게 하는 가상 머신 관리자를 트리거링하는 데 사용되는 명령이다.
프로세서(604)는 구체적으로 수신기(603)에 의해 수신된 트리거 명령에 응답하고, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있다.
본 발명의 실시예는 가상 머신 관리자를 제공한다. 입력 데이터를 획득한 후, 가상 머신 관리자는 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하며, 암호화 데이터를 서버에 송신한다. 이 방법에서, 가상 머신 관리자 상에서 사용자가 입력한 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득할 수 있으며, 그런 다음 암호화 데이터는 서버에 송신된다. 사용자가 입력한 데이터를 암호화하는 프로세스에 운영체제가 참여할 필요가 없으며, 즉 데이터 암호화는 운영체제에 투명하다는 것을 알 수 있다. 이 방법에서, 사용자가 입력한 정확한 데이터는 운영체제가 공격받더라도 획득될 수 없으며, 이에 의해 입력 정보의 보안 및 신뢰성이 향상된다.
본 발명의 실시예는 물리적 호스트를 제공하며, 도 8에 도시된 바와 같이, 물리적 호스트는: 하드웨어 계층(801), 상기 하드웨어 계층 상에서 운용되는 가상 머신 관리자(Virtual Machine Manager: VMM)(802), 및 상기 가상 머신 관리자(VMM)(802) 상에서 운용되는 적어도 하나의 가상 머신(803)을 포함한다.
상기 VMM(802)은 전술한 실시예에서 설명된 가상 머신 관리자이다.
본 발명의 실시예는 데이터 입력 방법 및 장치를 제공한다.
애플리케이션 인터페이스와 서버 간에 보안 접속이 구축되고, 사용자가 보안 입력을 수행해야 할 때, 가상 머신 관리자는 입력 데이터를 획득하고, 보안 접속의 암호화 규칙에 따라 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하며, 암호화 데이터를 서버에 송신한다. 이 방법에서, 가상 머신 관리자 상에서 사용자가 입력한 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득할 수 있으며, 그런 다음 암호화 데이터는 서버에 송신된다. 사용자가 입력한 데이터를 암호화하는 프로세스에 운영체제가 참여할 필요가 없으며, 즉 데이터 암호화는 운영체제에 투명하다는 것을 알 수 있다. 이 방법에서, 사용자가 입력한 정확한 데이터는 운영체제가 공격받더라도 획득될 수 없으며, 이에 의해 입력 정보의 보안 및 신뢰성이 향상된다.
전술한 실시예는 본 발명의 특정한 실시예에 지나지 않으며, 본 발명의 보호 범위를 제한하려는 것이 아니다. 당업자가 본 발명에서 개시된 기술적 범위 내에서 용이하게 수행한 모든 변형 또는 대안은 본 발명의 보호 범위 내에 있게 된다. 그러므로 본 발명의 보호 범위는 첨부된 특허청구범위에 해당되어야 한다.

Claims (20)

  1. 데이터 입력 방법에 있어서,
    가상 머신 관리자가 입력 데이터를 획득하는 단계;
    상기 가상 머신 관리자가, 애플리케이션 인터페이스와 서버 간의 보안 접속을 구축하는 동안 협상된 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계 - 상기 보안 접속은 상기 애플리케이션 인터페이스와 상기 서버 간의 데이터 전송을 위해 사용됨 - ;
    상기 가상 머신 관리자가, 위조 입력 데이터를 생성하고, 상기 위조 입력 데이터를 운영체제에 송신하는 단계; 및
    상기 가상 머신 관리자가, 상기 보안 접속을 통해 상기 암호화 데이터를 서버에 송신하는 단계
    를 포함하는 데이터 입력 방법.
  2. 제1항에 있어서,
    상기 가상 머신 관리자가 입력 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계
    를 포함하며,
    상기 가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 수행하는, 데이터 입력 방법.
  3. 제2항에 있어서,
    상기 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며, 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용되며,
    상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가 상기 제1 보안 구역을 통해 상기 제1 입력 데이터를 획득하는 단계, 및 상기 제1 정상 구역을 통해 상기 제2 입력 데이터를 획득하는 단계
    를 포함하며,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계
    를 포함하는, 데이터 입력 방법.
  4. 제1항에 있어서,
    상기 가상 머신 관리자가 입력 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가 물리적 입력 유닛을 제어하는 단계; 및
    상기 가상 머신 관리자가 상기 물리적 입력 유닛을 사용하여 상기 입력 데이터를 획득하는 단계
    를 포함하며,
    상기 입력 데이터는 입력 버퍼에 버퍼링되며,
    상기 가상 머신 관리자가 가상 입력 유닛을 사용하여 입력 데이터를 획득하는 단계 후에,
    상기 가상 머신 관리자가 상기 입력 버퍼를 클리어링하는 단계
    를 더 포함하는, 데이터 입력 방법.
  5. 제4항에 있어서,
    상기 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역을 포함하며, 상기 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용되고, 상기 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용되며,
    상기 가상 머신 관리자가 물리적 입력 유닛을 사용하여 입력 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가 상기 제2 보안 구역을 통해 상기 제3 입력 데이터를 획득하는 단계, 및 상기 제2 정상 구역을 통해 상기 제4 입력 데이터를 획득하는 단계
    를 포함하며,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계
    를 포함하는, 데이터 입력 방법.
  6. 제1항에 있어서,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계 전에,
    상기 가상 머신 관리자가 굴복 명령을 수신하는 단계
    를 포함하며,
    상기 굴복 명령은 사용자가 데이터 입력을 완료하도록 명령하는 데 사용되는 명령이며,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가, 상기 굴복 명령을 수신한 후, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계
    를 포함하는, 데이터 입력 방법.
  7. 제1항에 있어서,
    상기 가상 머신 관리자가 입력 데이터를 획득하는 단계 전에,
    상기 가상 머신 관리자가 트리거 명령을 수신하는 단계
    를 더 포함하며,
    상기 트리거 명령은 상기 가상 머신 관리자가 데이터 암호화를 가능하게 하도록 트리거링하는 데 사용되는 명령이며,
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가 상기 트리거 명령에 응답해서, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계
    를 포함하는, 데이터 입력 방법.
  8. 제1항에 있어서,
    상기 가상 머신 관리자가 상기 암호화 데이터를 서버에 송신하는 단계는,
    상기 가상 머신 관리자가, 상기 애플리케이션 인터페이스를 사용하여 상기 보안 접속을 통해 상기 암호화 데이터를 서버에 송신하는 단계
    를 포함하는, 데이터 입력 방법.
  9. 제1항에 있어서,
    상기 보안 접속은 보안 소켓 계층(Secure Sockets Layer: SSL) 접속을 포함하며;
    상기 가상 머신 관리자가, 상기 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계는,
    상기 가상 머신 관리자가, 상기 SSL 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는 단계
    를 포함하는, 데이터 입력 방법.
  10. 물리적 호스트에 있어서,
    메모리 및 프로세서를 포함하며, 상기 메모리는 한 세트의 프로그램 코드를 저장하며, 상기 프로세서는 상기 메모리 내의 프로그램 코드를 호출하여:
    입력 데이터를 획득하고, 애플리케이션 인터페이스와 서버 간의 보안 접속을 구축하는 동안 협상된 암호화 규칙에 따라 상기 입력 데이터를 암호화하여 암호화 데이터를 획득하며; 위조 입력 데이터를 생성하고, 상기 위조 입력 데이터를 운영체제에 송신하고, 상기 보안 접속을 통해 상기 암호화 데이터를 서버에 송신하도록 구성되어 있으며,
    상기 보안 접속은 상기 애플리케이션 인터페이스와 상기 서버 간의 데이터 전송에 사용되는, 물리적 호스트.
  11. 제10항에 있어서,
    상기 프로세서는 구체적으로 가상 입력 유닛을 사용하여 상기 입력 데이터를 획득하도록 구성되어 있으며,
    상기 가상 입력 유닛은 물리적 입력 유닛과 동일한 기능을 수행하며,
    상기 가상 입력 유닛은 사용자가 탭핑한 위치에 따라 사용자가 입력한 데이터를 결정하도록 구성되어 있는, 물리적 호스트.
  12. 제11항에 있어서,
    상기 가상 입력 유닛은 제1 정상 구역 및 제1 보안 구역을 포함하며, 상기 제1 정상 구역은 암호화 프로세싱을 필요로 하지 않는 제2 입력 데이터를 획득하는 데 사용되고, 상기 제1 보안 구역은 보안 프로세싱을 필요로 하는 제1 입력 데이터를 획득하는 데 사용되며,
    상기 프로세서는 구체적으로 상기 제1 보안 구역을 통해 상기 제1 입력 데이터를 획득하고, 상기 제1 정상 구역을 통해 상기 제2 입력 데이터를 획득하며; 상기 암호화 규칙에 따라 상기 제1 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있는, 물리적 호스트.
  13. 제11항에 있어서,
    상기 가상 입력 유닛은 가상 키보드를 포함하고, 상기 프로세서는 운영체제에서 제공하는 가상 입력 유닛 인터페이스를 사용하여 상기 가상 키보드를 생성하도록 추가로 구성되어 있는, 물리적 호스트.
  14. 제10항에 있어서,
    상기 프로세서는 구체적으로 물리적 입력 유닛을 사용하여 상기 입력 데이터를 획득하도록 구성되어 있으며, 상기 입력 데이터는 입력 버퍼에 버퍼링되며; 상기 프로세서는 상기 물리적 입력 유닛을 사용하여 상기 입력 데이터를 획득한 후 상기 입력 버퍼를 클리어링하도록 추가로 구성되어 있는, 물리적 호스트.
  15. 제14항에 있어서,
    상기 물리적 입력 유닛은 제2 정상 구역 및 제2 보안 구역을 포함하며, 상기 제2 정상 구역은 보안 프로세싱을 필요로 하지 않는 제4 입력 데이터를 획득하는 데 사용되고, 상기 제2 보안 구역은 보안 프로세싱을 필요로 하는 제3 입력 데이터를 획득하는 데 사용되며,
    상기 프로세서는 구체적으로 상기 제2 보안 구역을 통해 상기 제3 입력 데이터를 획득하고, 상기 제2 정상 구역을 통해 상기 제4 입력 데이터를 획득하며; 상기 보안 접속의 암호화 규칙에 따라 상기 제3 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 구성되어 있는, 물리적 호스트.
  16. 제13항에 있어서,
    상기 프로세서는,
    트리거 명령을 수신하고 - 상기 트리거 명령은 가상 머신 관리자가 데이터 암호화를 가능하게 하도록 트리거링하는 데 사용되는 명령임 - ;
    상기 트리거 명령에 응답해서, 보안 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하도록 추가로 구성되어 있는, 물리적 호스트.
  17. 제10항에 있어서,
    상기 보안 접속은 보안 소켓 계층(SSL) 접속을 포함하며;
    상기 프로세서는 구체적으로 상기 SSL 접속의 암호화 규칙에 따라 상기 입력 데이터에 대해 암호화 프로세싱을 수행하여 암호화 데이터를 획득하는, 물리적 호스트.
  18. 물리적 호스트에 있어서,
    하드웨어 계층, 상기 하드웨어 계층 상에서 운용되는 가상 머신 관리자(Virtual Machine Manager: VMM), 및 상기 가상 머신 관리자(VMM) 상에서 운용되는 적어도 하나의 가상 머신을 포함하며,
    상기 가상 머신 관리자는,
    입력 데이터를 획득하고, 애플리케이션 인터페이스와 서버 간의 보안 접속을 구축하는 동안 협상된 암호화 규칙에 따라 상기 입력 데이터를 암호화하여 암호화 데이터를 획득하고; 위조 입력 데이터를 생성하고, 상기 위조 입력 데이터를 운영체제에 송신하고, 상기 보안 접속을 통해 상기 암호화 데이터를 서버에 송신하도록 구성되어 있으며,
    상기 보안 접속은 상기 애플리케이션 인터페이스와 상기 서버 간의 데이터 전송에 사용되는, 물리적 호스트.
  19. 삭제
  20. 삭제
KR1020140060419A 2013-06-03 2014-05-20 데이터 입력 방법 및 장치 KR101617318B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201310216048.1 2013-06-03
CN201310216048.1A CN104219208B (zh) 2013-06-03 2013-06-03 一种数据输入的方法、装置

Publications (2)

Publication Number Publication Date
KR20140142144A KR20140142144A (ko) 2014-12-11
KR101617318B1 true KR101617318B1 (ko) 2016-05-18

Family

ID=50735836

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140060419A KR101617318B1 (ko) 2013-06-03 2014-05-20 데이터 입력 방법 및 장치

Country Status (5)

Country Link
US (2) US9058500B2 (ko)
EP (1) EP2811401B1 (ko)
JP (1) JP5827724B2 (ko)
KR (1) KR101617318B1 (ko)
CN (1) CN104219208B (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10747888B2 (en) * 2014-06-30 2020-08-18 Nicira, Inc. Method and apparatus for differently encrypting data messages for different logical networks
EP3234782A4 (en) * 2014-12-16 2018-10-17 Kyndi, Inc. Method and apparatus for randomizing computer instruction sets, memory registers and pointers
US9560078B2 (en) * 2015-02-04 2017-01-31 Intel Corporation Technologies for scalable security architecture of virtualized networks
EP3612972A4 (en) * 2017-04-18 2021-01-20 BankVault Pty Ltd VIRTUAL MACHINERY - COMPUTER-IMPLEMENTED SECURITY PROCEDURES AND SYSTEMS
CN111158857B (zh) * 2019-12-24 2024-05-24 深信服科技股份有限公司 数据加密方法、装置、设备及存储介质
CN113268775B (zh) * 2021-07-16 2021-10-15 深圳市永兴元科技股份有限公司 照片处理方法、装置、系统及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028441A1 (en) * 2006-07-25 2008-01-31 Manuel Novoa Virtual user authentication system and method
WO2013049571A1 (en) * 2011-09-29 2013-04-04 Amazon Technologies, Inc. Implementation of secure communications in a support system

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010011667A (ko) 1999-07-29 2001-02-15 이종우 보안 기능을 갖는 키보드 및 이를 이용한 시스템
US8656160B2 (en) * 2006-06-21 2014-02-18 Ebay Inc. Computer system authentication using security indicator
CN100594503C (zh) * 2006-08-29 2010-03-17 联想(北京)有限公司 虚拟机系统及其安全输入方法
US20080109804A1 (en) * 2006-11-06 2008-05-08 Richard Welcher Bloomstein Additional uses of virtualization for disaster recovery and prevention
US9461819B2 (en) 2007-05-23 2016-10-04 Nec Corporation Information sharing system, computer, project managing server, and information sharing method used in them
US8726013B2 (en) * 2008-08-22 2014-05-13 Chi-Pei Wang Anti-keylogger computer network system
KR100996955B1 (ko) 2008-08-22 2010-11-26 (주)이스트소프트 가상키보드를 이용한 보안방법
CN101414913A (zh) 2008-12-04 2009-04-22 北京世纪红山科技有限公司 基于虚拟化技术的计算机网络认证系统和方法
US20100146267A1 (en) * 2008-12-10 2010-06-10 David Konetski Systems and methods for providing secure platform services
US8650565B2 (en) * 2009-12-14 2014-02-11 Citrix Systems, Inc. Servicing interrupts generated responsive to actuation of hardware, via dynamic incorporation of ACPI functionality into virtual firmware
CN102195940A (zh) * 2010-03-12 2011-09-21 北京路模思科技有限公司 一种基于虚拟机技术安全输入和提交数据的方法和系统
US20120079282A1 (en) * 2010-06-28 2012-03-29 Lionstone Capital Corporation Seamless end-to-end data obfuscation and encryption
CN101976317B (zh) 2010-11-05 2012-12-05 北京世纪互联宽带数据中心有限公司 一种私有云计算应用中虚拟机镜像安全方法
CN102521531B (zh) 2011-11-24 2014-11-12 华中科技大学 基于硬件虚拟化的密码保护系统
US9569237B2 (en) * 2011-12-29 2017-02-14 Telefonaktiebolaget Lm Ericsson (Publ) Virtual machine management using a downloadable subscriber identity module
US9385918B2 (en) * 2012-04-30 2016-07-05 Cisco Technology, Inc. System and method for secure provisioning of virtualized images in a network environment
US8762876B2 (en) * 2012-06-21 2014-06-24 Google Inc. Secure data entry via a virtual keyboard
US8656482B1 (en) * 2012-08-20 2014-02-18 Bitdefender IPR Management Ltd. Secure communication using a trusted virtual machine

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080028441A1 (en) * 2006-07-25 2008-01-31 Manuel Novoa Virtual user authentication system and method
WO2013049571A1 (en) * 2011-09-29 2013-04-04 Amazon Technologies, Inc. Implementation of secure communications in a support system

Also Published As

Publication number Publication date
US20140359273A1 (en) 2014-12-04
JP2014235753A (ja) 2014-12-15
US9672367B2 (en) 2017-06-06
US9058500B2 (en) 2015-06-16
EP2811401A1 (en) 2014-12-10
JP5827724B2 (ja) 2015-12-02
EP2811401B1 (en) 2017-07-19
CN104219208A (zh) 2014-12-17
US20150254466A1 (en) 2015-09-10
KR20140142144A (ko) 2014-12-11
CN104219208B (zh) 2018-11-13

Similar Documents

Publication Publication Date Title
KR101759193B1 (ko) 안전한 전자 거래를 위한 네트워크 인증 방법
KR101617318B1 (ko) 데이터 입력 방법 및 장치
EP3602991B1 (en) Mechanism for achieving mutual identity verification via one-way application-device channels
CN111737366B (zh) 区块链的隐私数据处理方法、装置、设备以及存储介质
US8112787B2 (en) System and method for securing a credential via user and server verification
KR101130415B1 (ko) 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
US11159329B2 (en) Collaborative operating system
KR20160129839A (ko) 블루투스 인터페이스를 갖는 인증 장치
EP2936369A1 (en) Verification of password using a keyboard with a secure password entry mode
US9332011B2 (en) Secure authentication system with automatic cancellation of fraudulent operations
US20110202772A1 (en) Networked computer identity encryption and verification
KR102026375B1 (ko) 웨어러블 디바이스 통신 지원 장치 및 방법
CN110838919B (zh) 通信方法、存储方法、运算方法及装置
KR102322605B1 (ko) 사물인터넷 환경에서의 비밀키 설정 및 상호 기기 인증 방법
CN111585976B (zh) 通信方法、装置、存储介质和电子设备
JP2019009728A (ja) セキュアエレメント、コンピュータプログラム、デバイス、サーバ及びセキュアエレメントによる認証方法
CN101453335B (zh) 用户信息安全输入方法、以及客户端
CN112765628B (zh) 一种信息交互方法和电子设备
WO2023132068A1 (ja) 形式検証装置、形式検証方法およびプログラム
KR101737925B1 (ko) 도전-응답 기반의 사용자 인증 방법 및 시스템
US20210218733A1 (en) Client Side OTP Generation Method
KR101368772B1 (ko) 키 입력 보호 방법과 이를 위한 키 보호 장치
CN117035793A (zh) 资源交易认证方法和装置、设备及存储介质
MX2008004765A (en) System and method for providing secure data transmission
IL185795A (en) Device encryption and authentication method against malicious access to local computer

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

Year of fee payment: 4