KR101225903B1 - User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device - Google Patents

User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device Download PDF

Info

Publication number
KR101225903B1
KR101225903B1 KR1020100073492A KR20100073492A KR101225903B1 KR 101225903 B1 KR101225903 B1 KR 101225903B1 KR 1020100073492 A KR1020100073492 A KR 1020100073492A KR 20100073492 A KR20100073492 A KR 20100073492A KR 101225903 B1 KR101225903 B1 KR 101225903B1
Authority
KR
South Korea
Prior art keywords
key
terminal device
location
user terminal
file
Prior art date
Application number
KR1020100073492A
Other languages
Korean (ko)
Other versions
KR20120011961A (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 KR1020100073492A priority Critical patent/KR101225903B1/en
Publication of KR20120011961A publication Critical patent/KR20120011961A/en
Application granted granted Critical
Publication of KR101225903B1 publication Critical patent/KR101225903B1/en

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Landscapes

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

Abstract

클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템이 개신된다. 본 발명의 일 실시예에 따른 사용자 단말장치는, 가상머신을 가진 사용자 단말장치에 있어서, 상기 사용자 단말장치의 위치에 대응된 키를 사용하여, 상기 가상머신상에서 동작하는 적어도 하나의 암호화된 파일을 복호화하는 복호화부;를 포함한다. 이에 의해, 기밀 정보의 유지가 가능한 가상 데스크탑 모델의 제공이 가능하다.A client hypervisor-based user terminal device and a file encryption / decryption method on a virtual machine thereof, and a file encryption / decryption system on a virtual machine including the same are disclosed. The user terminal device according to an embodiment of the present invention, in the user terminal device having a virtual machine, by using a key corresponding to the location of the user terminal device, at least one encrypted file operating on the virtual machine It includes a decoding unit for decoding. Thereby, it is possible to provide a virtual desktop model that can maintain confidential information.

Figure R1020100073492
Figure R1020100073492

Description

클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템{User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device}User terminal device based on client hypervisor and method for encoding / decoding file on virtual machine, and system configuring the device}

본 발명은 클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템에 관한 것으로, 보다 상세하게는 허가된 사용자가 허가된 지역에서만 가상머신 상의 파일을 사용할 수 있도록 하는 클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템에 관한 것이다.The present invention relates to a client hypervisor-based user terminal device and a file encryption / decryption method on a virtual machine, and a file encryption / decryption system on a virtual machine, including the same. The present invention relates to a client hypervisor-based user terminal device and a file encryption / decryption method on a virtual machine thereof, and a file encryption / decryption system on a virtual machine including the same.

가상화 기술이 발전함에 따라, 서버에서 사용되던 하이퍼바이저 기술을 클라이언트에 도입한 클라이언트 하이퍼바이저 기술을 이용하여 하나의 물리적 단말기에서 복수의 논리적 가상머신(Virtual machine)을 중앙 서버로부터 다운로드받아 사용할 수 있는 가상 데스크탑 모델이 주목받고 있다. 이러한 가상 데스크탑 모델에서는 언제 어디서든 가상머신을 사용할 수 있도록 하는 것이므로, 기밀정보를 가지고 있는 가상머신으로부터 기밀정보가 유출될 수 있는 우려가 있다.As virtualization technology has evolved, a client can download and use a plurality of logical virtual machines from a central server on a single physical terminal by using a client hypervisor technology that introduces a hypervisor technology used in a server to a client. Desktop models are in the spotlight. In such a virtual desktop model, since the virtual machine can be used anytime and anywhere, there is a concern that confidential information may leak from a virtual machine having confidential information.

가상 데스크탑 모델이 상기와 같은 치명적 문제점을 가지고 있음에 따라, 가상머신상의 파일을 암호화하는 방법이 제안되었다. 일 예로, 사용자 인증 기반의 파일/디스크 암호화 기능을 제공하는 Diffie-Hellman key exchange(이하, "DH 기술"이라 한다)이 있다. DH 기술은 서로 다른 두 사용자 A 및 B 간에 비밀을 공유하거나 대칭키를 교환하기 위한 것으로, 사용자 A는 자신만이 알고 있는 A의 비밀키와 공개된 B의 공개키를 이용하여 대칭키를 생성하고, 사용자 B는 자신만이 알고 있는 B의 비밀키와 공개된 A의 공개키를 이용하여 대칭키를 생성하는 것으로, A 및 B가 생성한 대칭키는 서로 일치하게 된다. 이러한 대칭키를 이용하여 통신 및 파일의 암호화를 한다. 이때, A 및 B 이외의 사용자는 A와 B의 비밀키를 알지 못하므로, 대칭키를 생성할 수 없다.As the virtual desktop model has such fatal problems, a method of encrypting a file on a virtual machine has been proposed. For example, there is a Diffie-Hellman key exchange (hereinafter referred to as "DH technology") that provides a file / disk encryption function based on user authentication. DH technology is for sharing secrets or exchanging symmetric keys between two different users A and B. User A generates a symmetric key using A's private key and public B's public key, which only he knows. User B generates a symmetric key using only B's private key and public A's public key. The symmetric keys generated by A and B coincide with each other. This symmetric key is used to encrypt communication and files. At this time, a user other than A and B does not know the secret keys of A and B, and thus cannot generate a symmetric key.

그런데, DH 기술을 클라이언트 하이퍼바이저에 적용하기 위해서는 몇가지 문제가 발생한다. 첫째로, 암복호화 키가 모두 안전한 데이터 센터 내부에서 관리되는 서버 기반 컴퓨팅 환경과는 달리, 클라이언트 하이퍼바이저의 경우 가상머신이 사용자 단말기에 존재하는 것이므로, 암복호화 키를 사용자 단말기로 다운로드하여야 한다는 점이다. 다운로드 과정에서 기밀정보가 유출될 우려가 있다. 둘째로, 사용자 단말장치와 서버간의 네트워크 연결이 원활할 경우에는 문제가 되지 않으나, 사용자 단말장치와 서버간의 네트워크 단절될 경우에는 양측의 데이터베이스의 동기화가 이루어지지 않는 문제가 있다. 그러므로, 상기와 같은 문제점을 해소하면서, 가상머신 상의 파일을 효과적으로 암복호화하기 위한 기술이 요구된다.However, there are some problems in applying the DH technology to the client hypervisor. First, unlike a server-based computing environment where all encryption and decryption keys are managed inside a secure data center, the client hypervisor is a virtual machine that exists in the user terminal, so the encryption and decryption key must be downloaded to the user terminal. . There is a risk of confidential information leaking during the download process. Secondly, if the network connection between the user terminal device and the server is smooth, this is not a problem. However, when the network is disconnected between the user terminal device and the server, there is a problem in that both databases are not synchronized. Therefore, while solving the above problems, a technique for effectively encrypting and decrypting files on a virtual machine is required.

본 발명은 사용자 단말장치의 위치에 따른 키를 사용하여 가상머신 상의 파일을 암복호화함으로써, 허가된 사용자가 허가된 장소에서만 가상머신 상의 파일을 사용할 수 있도록 한 클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템을 제공함을 목적으로 한다.The present invention provides a client hypervisor-based user terminal device and a client hyper-based device, which encrypts and decrypts a file on a virtual machine using a key according to the location of the user terminal device, thereby allowing the authorized user to use the file on the virtual machine only at an authorized place. An object of the present invention is to provide a file encryption / decryption method on a virtual machine and a file encryption / decryption system on a virtual machine including the same.

본 발명의 일 실시예에 따르면, 가상머신을 가진 사용자 단말장치에 있어서,상기 사용자 단말장치의 위치에 대응된 키를 사용하여, 상기 가상머신상에서 동작하는 적어도 하나의 암호화된 파일을 복호화하는 복호화부;를 포함하는 것을 특징으로 하는 사용자 단말장치 장치를 제공한다.According to an embodiment of the present invention, in a user terminal device having a virtual machine, a decryption unit for decrypting at least one encrypted file operating on the virtual machine by using a key corresponding to the location of the user terminal device It provides a user terminal device comprising a.

상기 복호화부는, 상기 사용자 단말장치의 위치의 변동이 발생하면, 상기 변동된 위치에 대응하는 키를 사용하여 상기 파일을 복호화할 수 있다.The decryption unit may decrypt the file using a key corresponding to the changed position when the position of the user terminal apparatus changes.

본 발명의 일 실시예에 따른 사용자 단말장치는, 위치별로 대응된 암호화된 키를 저장하는 단말측 키관리 데이터베이스;를 더 포함하며, 상기 복호화부는, 상기 단말측 키관리 데이터베이스로부터 상기 암호화된 키를 추출하여 상기 파일을 복호화할 수 있다.The user terminal device according to an embodiment of the present invention further includes a terminal-side key management database storing the encrypted key corresponding to each position, wherein the decryption unit is configured to store the encrypted key from the terminal-side key management database. The file can be extracted and decrypted.

상기 암호화된 키는, 상기 사용자 단말장치의 위치에 대응된 지역 비밀키 및 사용자 공개키에 의해 암호화된 것일 수 있다.The encrypted key may be encrypted by a local secret key and a user public key corresponding to the location of the user terminal device.

상기 복호화부는 상기 추출한 암호화된 키를 사용자 비밀키 및 지역 공개키를 이용하여 복호화하고, 이렇게 복호화한 키를 이용하여 상기 파일을 복호화할 수 있다.The decryption unit may decrypt the extracted encrypted key using a user secret key and a local public key, and decrypt the file using the decrypted key.

상기 복호화부는, 상기 단말측 키관리 데이터베이스에 상기 사용자 단말장치의 위치에 대응하는 암호화된 키가 존재하지 않으면, 상기 사용자 단말장치와 네트워크를 통해 연결된 관리 서버로 키 전송을 요청하고, 상기 요청에 대하여 상기 관리 서버로부터 수신되는 암호화된 키를 이용하여 상기 파일을 복호화할 수 있다.If there is no encrypted key corresponding to the location of the user terminal device in the terminal-side key management database, the decryption unit requests a key transmission to a management server connected to the user terminal device through a network. The file may be decrypted using an encrypted key received from the management server.

상기 복호화부는, 상기 관리 서버로부터 수신한 상기 암호화된 키를 상기 사용자 단말장치의 위치에 대응하는 적어도 하나의 키를 이용하여 복호화하고, 상기 복호화된 키로 상기 파일을 복호화할 수 있다.The decryption unit may decrypt the encrypted key received from the management server using at least one key corresponding to the location of the user terminal device, and decrypt the file with the decrypted key.

상기 적어도 하나의 키는, 사용자 비밀키 및 지역 공개키를 포함할 수 있다.The at least one key may include a user private key and a local public key.

본 발명의 일 실시예에 따른 사용자 단말장치는, 네트워크 연결상태를 감지하는 네트워크 감지부; 및 상기 네트워크 연결상태가 온라인이면, 상기 네트워크와 연결된 관리 서버로 상기 사용자 단말장치의 위치 추적을 요청하고, 상기 관리 서버로부터 상기 요청된 위치정보를 수신하는 가상머신 관리부;를 더 포함할 수 있다.A user terminal device according to an embodiment of the present invention, the network detecting unit for detecting a network connection state; And a virtual machine manager requesting a location tracking of the user terminal device to a management server connected to the network and receiving the requested location information from the management server when the network connection state is online.

본 발명의 일 실시예에 따른 사용자 단말장치는, 상기 관리 서버의 서버측 키관리 데이터베이스와 단말측 키관리 데이터베이스를 동기화하는 단말측 동기화부;를 더 포함할 수 있다.The user terminal device according to an embodiment of the present invention may further include a terminal-side synchronization unit for synchronizing the server-side key management database and the terminal-side key management database of the management server.

본 발명의 일 실시예에 따른 사용자 단말장치는, 상기 파일의 사용내역을 사용내역 데이터베이스에 기록하는 기록부;를 더 포함할 수 있다.The user terminal device according to an embodiment of the present invention may further include a recording unit for recording the usage history of the file in a usage history database.

본 발명의 일 실시예에 따른 사용자 단말장치는, 상기 사용내역 데이터베이스에 기록된 사용내역 중 상기 단말측 키관리 데이터베이스에 저장된 관리 정책의 위반사항을 검출하는 위반사항 검출부;를 더 포함할 수 있다.The user terminal device according to an embodiment of the present invention may further include a violation detection unit detecting a violation of a management policy stored in the terminal-side key management database among the usage records recorded in the usage history database.

상기 위반사항 검출부는, 상기 네트워크 연결상태가 상기 오프라인인 동안의 사용내역에서 상기 위반사항이 검출되면, 상기 검출된 위반사항을 상기 관리 서버로 전송할 수 있다.The violation detection unit may transmit the detected violation to the management server when the violation is detected in the usage history while the network connection state is offline.

본 발명의 일 실시예에 따르면, 가상머신 상에서 동작하는 파일을 복호화하는 방법에 있어서, 상기 가상머신이 설치된 단말장치의 위치에 대응된 키를 추출하는 단계; 및 상기 추출한 키를 사용하여 상기 가상머신 상에서 동작하는 암호화된 파일을 복호화하는 단계;를 포함하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법을 제공할 수 있다.According to an embodiment of the present invention, a method for decrypting a file operating on a virtual machine, the method comprising: extracting a key corresponding to a location of a terminal apparatus on which the virtual machine is installed; And decrypting an encrypted file operating on the virtual machine by using the extracted key.

본 발명의 일 실시예에 따른 가상머신 상의 파일 복호화 방법은, 상기 가상머신이 설치된 단말장치의 위치를 감지하는 단계; 를 더 포함하며, 상기 추출하는 단계는, 상기 감지한 단말장치의 위치가 속하는 논리적 지역을 추출하고, 상기 추출한 논리적 지역에 대응된 키를 추출할 수 있다.File decoding method on a virtual machine according to an embodiment of the present invention, the step of detecting the location of the terminal device is installed; The extracting may further include extracting a logical region to which the detected location of the terminal device belongs, and extracting a key corresponding to the extracted logical region.

본 발명의 일 실시예에 따른 가상머신 상의 파일 복호화 방법은, 상기 단말장치의 위치의 변동이 발생하면 상기 변동된 위치에 대응하는 키를 추출하는 단계;를 더 포함하며, 상기 변동된 위치에 대응하는 키를 사용하여 상기 파일을 복호화할 수 있다.The file decryption method on the virtual machine according to an embodiment of the present invention further comprises the steps of: extracting a key corresponding to the changed position when a change in the position of the terminal apparatus occurs; The file can be decrypted using a key.

본 발명의 일 실시예에 따른 가상머신 상의 파일 복호화 방법은, 위치별로 대응된 암호화된 키를 적어도 하나 이상 저장하는 단계;를 더 포함하며, 상기 복호화하는 단계는 상기 저장된 암호화된 키들 중에서 상기 단말장치의 위치에 대응된 암호화된 키를 추출하고, 추출한 키를 이용하여 상기 파일을 복호화할 수 있다.The method for decrypting a file on a virtual machine according to an embodiment of the present invention may further include storing at least one encrypted key corresponding to each location, wherein the decrypting comprises the terminal device among the stored encrypted keys. An encrypted key corresponding to the position of may be extracted, and the file may be decrypted using the extracted key.

상기 암호화된 키는, 상기 사용자 단말장치의 위치에 대응된 지역 비밀키를 포함한 적어도 하나의 키에 의해 암호화된 것일 수 있다.The encrypted key may be encrypted by at least one key including a local secret key corresponding to the location of the user terminal device.

상기 복호화하는 단계는 상기 추출한 암호화된 키를 지역 공개키를 사용하여 복호화하고, 이렇게 복호화한 키를 이용하여 상기 파일을 복호화할 수 있다.In the decrypting, the extracted encrypted key may be decrypted using a local public key, and the file may be decrypted using the decrypted key.

상기 암호화된 키는, 적어도, 상기 사용자 단말장치의 위치에 대응된 지역 비밀키와 사용자 공개키에 의해 암호화된 것이고, 상기 복호화하는 단계는 The encrypted key is encrypted by at least a local secret key and a user public key corresponding to the location of the user terminal device, and the step of decrypting

상기 추출한 암호화된 키를 지역 공개키와 사용자 비밀키를 사용하여 복호화하고, 이렇게 복호화한 키를 이용하여 상기 파일을 복호화할 수 있다.The extracted encrypted key can be decrypted using a local public key and a user secret key, and the file can be decrypted using the decrypted key.

본 발명의 일 실시예에 따른 가상머신 상의 파일 복호화 방법은, 상기 단말장치의 위치에 대응된 키가 상기 단말장치에 없는 경우에, 상기 단말장치와 네트워크를 통해서 연결된 관리 서버로부터 상기 단말장치의 위치에 대응된 키를 수신받는 단계를 더 포함할 수 있다.In the file decryption method on a virtual machine according to an embodiment of the present invention, when the key corresponding to the location of the terminal device does not exist in the terminal device, the location of the terminal device from a management server connected to the terminal device through a network. The method may further include receiving a key corresponding to the.

상기 관리서버로부터 수신받는 키는 적어도 하나의 키에 의해 암호화되어 있을 수 있다.The key received from the management server may be encrypted by at least one key.

상기 적어도 하나의 키는 사용자 공개키 및 지역 비밀키를 포함할 수 있다.The at least one key may include a user public key and a local secret key.

본 발명의 일 실시예에 따른 가상머신 상의 파일 복호화 방법은, 상기 파일의 사용내역을 사용내역 데이터베이스에 기록하는 단계;를 더 포함할 수 있다.The file decryption method on the virtual machine according to an embodiment of the present invention may further include recording the usage history of the file in a usage history database.

본 발명의 일 실시예에 따른 가상머신 상의 파일 복호화 방법은, 상기 단말장치의 위치에 대응된 키가 상기 단말장치에 없는 경우에, 상기 단말장치와 네트워크를 통해서 연결된 관리 서버로부터 상기 단말장치의 위치에 대응된 암호화된 키를 수신받는 단계를 더 포함하며, 상기 복호화하는 단계는 상기 관리 서버로부터 수신받은 암호화된 키를 적어도 하나의 키를 이용하여 복호화하고, 복호화한 키를 이용하여 상기 가상머신 상에서 동작하는 파일을 복호화할 수 있다.In the file decryption method on a virtual machine according to an embodiment of the present invention, when the key corresponding to the location of the terminal device does not exist in the terminal device, the location of the terminal device from a management server connected to the terminal device through a network. Receiving an encrypted key corresponding to the, and the step of decrypting the encrypted key received from the management server using at least one key, and using the decrypted key on the virtual machine You can decrypt a working file.

상기 적어도 하나의 키는 사용자 비밀키 및 지역 공개키를 포함할 수 있다.The at least one key may include a user private key and a local public key.

본 발명의 일 실시예에 따르면, 가상머신을 가진 사용자 단말장치로서, 상기 사용자 단말장치의 위치에 대응된 키를 사용하여, 상기 가상머신상에서 동작하는 적어도 하나의 암호화된 파일을 복호화하는 복호화부를 포함하는 상기 사용자 단말장치; 및 위치에 대응된 키를 보유하며, 상기 사용자 단말장치로부터 요청이 있는 경우에 상기 보유한 위치에 대응된 키를 암호화하여 상기 사용자 단말장치로 전송하는 관리 서버; 를 포함하는 것을 특징으로 하는 사용자 단말장치를 포함하는 가상머신 상의 파일 복호화 시스템이 제공된다.According to an embodiment of the present invention, a user terminal device having a virtual machine, comprising a decryption unit for decrypting at least one encrypted file operating on the virtual machine using a key corresponding to the location of the user terminal device. The user terminal device; And a management server which holds a key corresponding to the location and encrypts the key corresponding to the reserved location when the request is received from the user terminal device. Provided is a file decryption system on a virtual machine including a user terminal device comprising a.

상기 사용자 단말장치는 상기 사용자 단말장치의 위치에 대응되는 키가 자신에게 없는 경우 상기 관리 서버로 키 전송을 요청하고, 상기 관리 서버는, 상기 사용자 단말장치의 위치에 대응되는 키를 지역 비밀키 및 사용자 공개키로 암호화하여 상기 사용자 단말장치로 전송할 수 있다.When the user terminal device does not have a key corresponding to the location of the user terminal device, the user terminal requests a key transmission to the management server, and the management server stores the key corresponding to the location of the user terminal device as a local secret key and Encrypted with the user public key can be transmitted to the user terminal device.

본 발명의 일 실시예에 따르면, 가상머신 상에서 동작하는 파일을 암호화하는 방법에 있어서, 상기 가상머신이 설치된 단말장치의 위치에 대응된 키를 생성하는 단계; 및 상기 추출한 키를 사용하여 상기 가상머신 상에서 동작하는 파일을 암호화하는 단계;를 포함할 수 있다.According to an embodiment of the present invention, a method for encrypting a file operating on a virtual machine, the method comprising: generating a key corresponding to a location of a terminal apparatus on which the virtual machine is installed; And encrypting a file operating on the virtual machine using the extracted key.

본 발명의 일 실시예에 따른 클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템은, 언제 어디서나 사용이 가능하도록 한 가상 데스크탑 모델에 있어 가상머신이 설치된 사용자 단말장치의 현재 위치에 따른 지역별 키를 사용하여 파일을 복호화함으로써, 허가된 사용자만이 허가된 장소에서만 가상머신을 사용하는 것이 가능하다. 그러므로, 가상머신 상의 파일에 의해 기밀 정보가 유출되는 것을 방지할 수 있는 효과가 있다.A client hypervisor-based user terminal device and a file encryption / decryption method on a virtual machine according to an embodiment of the present invention, and a file encryption / decryption system on a virtual machine including the same, can be used at any time and anywhere in a virtual desktop model. Therefore, by decrypting the file using a region-specific key according to the current location of the user terminal device in which the virtual machine is installed, only the authorized user can use the virtual machine in the authorized place. Therefore, there is an effect that can prevent leakage of confidential information by the file on the virtual machine.

또한, 본 발명의 일 실시예에 따른 클라이언트 하이퍼바이저 기반의 사용자 단말장치 및 그의 가상머신 상의 파일 암복호화 방법, 그리고 이를 포함하는 가상머신 상의 파일 암복호화 시스템은, 키 및 파일에 대한 암복호화 과정이 클라이언트 하이퍼바이저 내부에서 진행되는 것임에 따라, 가상머신 상의 게스트 운영체제의 종류에 상관없이 파일의 암복호화가 가능하며, 사용자 입장에서는 파일 보안을 위한 별도의 과정을 거치지 않음으로 인해 편리성이 증대되는 효과가 있다.In addition, a client hypervisor-based user terminal device and a file encryption / decryption method on a virtual machine, and a file encryption / decryption system on a virtual machine including the same, the encryption / decryption process for a key and a file may be performed. As it happens inside the client hypervisor, the file can be decrypted regardless of the type of guest operating system on the virtual machine, and the convenience is increased from the user's point of view because it does not go through a separate process for file security. There is.

도 1은 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 시스템의 블럭도,
도 2는 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 방법을 설명하기 위한 흐름도,
도 3은 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 방법을 설명하기 위한 흐름도, 그리고
도 4는 본 발명의 일 실시예에 따른 암호화 및 복호화 과정을 설명하기 위한 도이다.
1 is a block diagram of a file encryption / decryption system on a virtual machine according to an embodiment of the present invention;
2 is a flowchart illustrating a file encryption / decryption method on a virtual machine according to an embodiment of the present invention;
3 is a flowchart illustrating a file encryption / decryption method on a virtual machine according to an embodiment of the present invention; and
4 is a diagram illustrating an encryption and decryption process according to an embodiment of the present invention.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다. 본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다. BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features, and advantages of the present invention will become more readily apparent from the following description of preferred embodiments with reference to the accompanying drawings. However, the present invention is not limited to the embodiments described herein but may be embodied in other forms. Rather, the embodiments disclosed herein are provided so that the disclosure can be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. In this specification, when an element is referred to as being on another element, it may be directly formed on another element, or a third element may be interposed therebetween.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In the present specification, the singular form includes plural forms unless otherwise specified in the specification. The terms "comprises" and / or "comprising" used in the specification do not exclude the presence or addition of one or more other elements.

이하, 도면을 참조하여 본 발명을 상세히 설명하도록 한다. 아래의 특정 실시예들을 기술하는데 있어서, 여러 가지의 특정적인 내용들은 발명을 더 구체적으로 설명하고 이해를 돕기 위해 작성되었다. 하지만 본 발명을 이해할 수 있을 정도로 이 분야의 지식을 갖고 있는 독자는 이러한 여러 가지의 특정적인 내용들이 없어도 사용될 수 있다는 것을 인지할 수 있다. 어떤 경우에는, 발명을 기술하는 데 있어서 흔히 알려졌으면서 발명과 크게 관련 없는 부분들은 본 발명을 설명하는 데 있어 별 이유 없이 혼돈이 오는 것을 막기 위해 기술하지 않음을 미리 언급해 둔다. Hereinafter, the present invention will be described in detail with reference to the drawings. In describing the specific embodiments below, various specific details have been set forth in order to explain the invention in greater detail and to assist in understanding it. However, those skilled in the art can understand that the present invention can be used without these various specific details. In some cases, it is mentioned in advance that parts of the invention which are commonly known in the description of the invention and which are not highly related to the invention are not described in order to prevent confusion in explaining the invention without cause.

도 1은 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 시스템의 블럭도이다.1 is a block diagram of a file encryption / decryption system on a virtual machine according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 시스템은 서로 네트워크를 통해 연결되어 통신하는 사용자 단말장치(100), 및 관리 서버(200)를 포함할 수 있다. 여기서, 사용자 단말장치(100)와 관리 서버(200)를 연결하는 네트워크는 유선 혹은 무선의 통신망을 통칭하며, 통신망의 종류에는 한정되지 않는다.Referring to FIG. 1, a file encryption / decryption system on a virtual machine according to an embodiment of the present invention may include a user terminal device 100 and a management server 200 that communicate with each other through a network. Here, the network connecting the user terminal device 100 and the management server 200 collectively is a wired or wireless communication network, and is not limited to the type of communication network.

사용자 단말장치(100)는 운영체제(Operating System : OS)가 사용되는 장치 즉, 적어도 하나의 운영체제를 동시 혹은 이시에 구동할 수 있고, 여러 운영체제들 간의 자원 분배와 독립적인 동작이 보장되는 장치라면 모두 적용 가능하다. 예를 들면, 통상의 컴퓨터 장치, 및 스마트폰이 사용자 단말장치(100)로 적용될 수 있다.The user terminal 100 may be a device using an operating system (OS), that is, a device capable of simultaneously or simultaneously operating at least one operating system, and any device capable of guaranteeing resource distribution and independent operation among several operating systems. Applicable For example, a typical computer device and a smartphone may be applied to the user terminal device 100.

사용자 단말장치(100)는 하드웨어 플랫폼(110), 클라이언트 하이퍼바이저부(120), 및 사용자 모듈(130)을 포함할 수 있다.The user terminal device 100 may include a hardware platform 110, a client hypervisor unit 120, and a user module 130.

하드웨어 플랫폼(110)은 하드디스크와 같은 저장장치, 키보드 및 마우스와 같은 입력장치, 스피커 및 디스플레이와 같은 출력장치 등을 포함하는 실제의 하드웨어 장치를 포함할 수 있다. 본 실시예에서, 하드웨어 플랫폼(110)은 단말측 키관리 데이터베이스(Database : DB)(112), 단말측 위치정보 DB(113), 및 사용내역 DB(114)를 포함할 수 있다.The hardware platform 110 may include actual hardware devices including storage devices such as hard disks, input devices such as keyboards and mice, output devices such as speakers and displays, and the like. In the present embodiment, the hardware platform 110 may include a terminal-side key management database (DB) 112, a terminal-side location information DB 113, and a usage history DB 114.

단말측 키관리 DB(112)는 파일의 암복호화를 위해 사용되는 키를 저장하는 데이터베이스로, 단말측 위치정보 DB(113)에 저장되어 있는 논리적 지역(또는 '논리적 위치')별로 각 키가 저장되어 있을 수 있다. The terminal-side key management DB 112 is a database that stores keys used for file decryption, and stores each key for each logical region (or 'logical location') stored in the terminal-side location information DB 113. It may be.

구체적으로, 본 발명의 일 실시예에 따른 단말측 키관리 DB(112)는, 단말 장치 사용자의 비밀키, 적어도 하나 이상의 지역 공개키 및 그 목록, 및 관리서버(200)로부터 다운로드 받은 대칭키와 그 목록을 저장할 수 있다. 여기서, 관리서버(200)로부터 다운로드 받은 대칭키는 지역 비밀키를 포함한 적어도 하나의 키에 의해서 암호화된 대칭키일 수 있다. 예를 들면 지역 비밀키와 사용자 공개키에 의해서 암호화된 대칭키일 수 있다.Specifically, the terminal-side key management DB 112 according to an embodiment of the present invention includes a secret key of the user of the terminal device, at least one local public key and its list, and a symmetric key downloaded from the management server 200. You can save the list. Here, the symmetric key downloaded from the management server 200 may be a symmetric key encrypted by at least one key including a local secret key. For example, it may be a symmetric key encrypted by a local secret key and a user public key.

단말측 키관리 DB(112)는 지역 공개키에 대한 목록과 대칭키 목록은 저장할 수 있으나, 이는 검색의 편의성을 위한 것이므로 반드시 저장할 필요는 없다.The terminal-side key management DB 112 may store a list of local public keys and a symmetric key list, but the terminal-side key management DB 112 does not necessarily need to store the list because it is for convenience of searching.

본 발명의 일 실시예에 따른 단말측 키관리 DB(112)에는, 논리적 지역별로 각각 지역 공개키가 대응되어 저장되어 있을 수 있다. 다르게는, 물리적 위치(또는 지역)별로 각각 지역 공개키가 대응되어 저장되어 있을 수 있다. 이러한 경우는, 물리적 위치는 논리적 지역으로 변환될 필요가 없을 것이다.In the terminal-side key management DB 112 according to an embodiment of the present invention, local public keys may be stored corresponding to respective logical regions. Alternatively, local public keys may be stored corresponding to respective physical locations (or regions). In this case, the physical location would not need to be converted to a logical area.

본 발명의 일 실시예에 따른 단말측 키관리 DB(112)에 저장된 대칭키(또는 암호화된 대칭키)는 논리적 지역별로 각각 대응되어 저장되어 있을 수 있다.The symmetric key (or encrypted symmetric key) stored in the terminal-side key management DB 112 according to an embodiment of the present invention may be stored corresponding to each logical region.

또한, 단말측 키관리 DB(112)는 후술하는 단말측 동기화부(124) 및 서버측 동기화부(210)의 연동에 의해 수시로 업데이트 될 수 있으며, 예를 들면 단말측 키관리 DB(112)에 저장되는 지역 공개키와 그 목록과 관리 서버(200)에 저장되는 지역 비밀키와 그 목록은 서로 동기화되어 수시로 업데이트 될 수 있다.In addition, the terminal-side key management DB 112 may be updated at any time by the interworking of the terminal-side synchronization unit 124 and the server-side synchronization unit 210 to be described later, for example, to the terminal-side key management DB 112. The local public key and the list stored therein and the local secret key and the list stored in the management server 200 may be synchronized with each other and updated from time to time.

단말측 키관리 DB(112)에 저장되어 있는 키(예를 들면 파일의 암호화 또는 복호화에 사용되는 키)는 암호화된 키일 수 있다. 본 발명의 일 실시예에 따르면 여기서, 암호화된 키는 지역 비밀키를 포함하는 적어도 하나의 키에 의해 암호화된 것일 수 있다. 예를 들면, 지역 비밀키와 사용자 공개키로 암호화된 것일 수 있다. The key (for example, a key used for encrypting or decrypting a file) stored in the terminal-side key management DB 112 may be an encrypted key. According to an embodiment of the present invention, the encrypted key may be encrypted by at least one key including a local secret key. For example, it may be encrypted with a local secret key and a user public key.

단말측 키관리 DB(112)에는 관리 서버(200)로부터 전달되는 관리 정책도 저장되어 있을 수 있다. 여기서, 단말측 키관리 DB(112)가 암호화된 키와 관리 정책을 모두 저장하는 것으로 설명하였지만, 이는 예시적인 것으로서 암호화된 키를 저장하는 DB와 관리 정책을 저장하는 DB와 같이 양자를 각각 저장하는 구성도 가능할 것이다. The terminal-side key management DB 112 may also store a management policy transmitted from the management server 200. Here, although the terminal-side key management DB 112 has been described as storing both the encrypted key and the management policy, this is merely illustrative and stores both of them, such as a DB storing the encrypted key and a DB storing the management policy. Configuration may also be possible.

단말측 위치정보 DB(113)는 물리적 위치와 논리적 지역의 상호 맵핑 정보를 저장하는 데이터베이스로, 위치 판별부(111)에서 위치를 감지하여 논리적 지역( 즉, 논리적 위치)을 추출할 때 이용된다. 또한, 단말측 위치정보 DB(113)는 단말측 동기화부(124) 및 서버측 동기화부(210)의 연동에 의해 수시로 업데이트 될 수 있다.The terminal-side location information DB 113 is a database that stores cross-mapping information of physical locations and logical areas, and is used when the location determining unit 111 detects a location to extract a logical area (ie, a logical location). In addition, the terminal side location information DB 113 may be updated at any time by the interworking of the terminal side synchronization unit 124 and the server side synchronization unit 210.

사용내역 DB(114)는 사용자 단말장치(100)와 관리 서버(200) 간의 네트워크가 단절되어 오프라인 상태일 때의 사용내역을 저장하는 데이터베이스로, 오프라인 중에 파일 암복호화를 위해 사용된 키의 사용 내역, 키를 사용한 시간, 키를 사용하였을 때 사용자 단말장치(100)의 위치, 파일에 대한 조작 종류 예를 들면, 읽기 혹은 쓰기, 대상 파일의 경로명, 사용된 키의 암호화된 값이 저장될 수 있다. 여기서, 사용내역 DB(114)에 저장 가능한 사용내역은 예를 든 것일 뿐, 반드시 여기에 한정되지는 않는다. 즉, 상기 서술한 내역 이외에도 더 많은 사용내역이 저장될 수 있다. 사용내역 DB(114)에 저장된 사용내역은 추후 위반사항 검출부(126)에서 위반사항을 검출할 때 이용될 수 있다.The usage history DB 114 is a database that stores usage history when the network between the user terminal 100 and the management server 200 is disconnected and is offline. The usage history of the key used for file encryption and decryption during offline operation is used. , A time using a key, a location of the user terminal device 100 when a key is used, an operation type for a file, for example, reading or writing, a path name of a target file, and an encrypted value of a used key may be stored. . Here, the usage history that can be stored in the usage history DB 114 is merely an example, and is not necessarily limited thereto. That is, in addition to the above-described details, more usage history may be stored. The usage history stored in the usage DB 114 may be used when the violation detection unit 126 detects a violation later.

클라이언트 하이퍼바이저부(120)는 사용자 가상머신(131)을 동작시킬 수 있다. 여기서의 '동작시킨다'고 함은, '자원을 할당한다', '실행시킨다', 또는 '활성화 시킨다'와 동일한 의미로 사용될 수 있다.The client hypervisor 120 may operate the user virtual machine 131. The term 'actuating' herein may be used as the same meaning as 'allocating resources', 'activating' or 'activating'.

본 실시예에서는 설명의 편의상 클라이언트 하이퍼바이저부(120) 상에 하나의 사용자 가상머신(131)이 설치되어 있는 상태를 예시하였지만, 실제로는 복수의 사용자 가상머신(131)이 설치될 수 있다. 클라이언트 하이퍼바이저부(120) 상에 복수의 사용자 가상머신(131)이 설치되면, 클라이언트 하이퍼바이저부(120)는 복수의 사용자 가상머신(131) 중 동작할 적어도 하나의 사용자 가상머신(131)에 자원을 할당할 수 있다. 따라서, 복수의 사용자 가상머신이 설치된 경우, 각각의 가상머신 상에서 동작하는 파일들에 대하여 본원 발명이 적용될 수 있다. 한편, 복수의 가상머신 모두에 대하여 본원 발명이 반드시 적용될 필요는 없으며 보안 정책에 따라서 특정의 가상머신(들) 상에서 동작하는 파일들에 대하여만 본원 발명이 적용될 수도 있을 것이다.In the present exemplary embodiment, one user virtual machine 131 is illustrated on the client hypervisor 120 for convenience of description, but a plurality of user virtual machines 131 may be actually installed. When the plurality of user virtual machines 131 are installed on the client hypervisor unit 120, the client hypervisor unit 120 may be installed in at least one user virtual machine 131 to operate among the plurality of user virtual machines 131. You can allocate resources. Therefore, when a plurality of user virtual machines are installed, the present invention can be applied to files operating on each virtual machine. Meanwhile, the present invention is not necessarily applied to all of the plurality of virtual machines, and the present invention may be applied only to files operating on specific virtual machine (s) according to the security policy.

클라이언트 하이퍼바이저부(120)는 위치 판별부(111), 가상머신 관리부(121), 네트워크 감지부(122), 복호화부(123), 단말측 동기화부(124), 기록부(125), 및 위반사항 검출부(126)를 포함할 수 있다.The client hypervisor unit 120 includes a location determiner 111, a virtual machine manager 121, a network detector 122, a decoder 123, a terminal side synchronizer 124, a recorder 125, and a violation. The item detection unit 126 may be included.

위치 판별부(111)는 사용자 단말장치(100)의 물리적인 위치에 기초하여 논리적 지역을 추출(즉, 판별)한다. 위치 판별부(111)는 GPS 수신기(미도시)와 같은 위치정보획득장치로부터 획득되는 물리적인 위치를 이용하며, 구체적으로는 단말측 위치정보 DB(113)에 저장되어 있는 위치정보를 이용하여 논리적인 지역을 판별할 수 있다. 여기서, 논리적 지역은 사무실, 로비, 회의실과 같은 논리적 공간을 구분한 개념일 수 있다.The location determiner 111 extracts (ie, determines) a logical area based on the physical location of the user terminal device 100. The location determining unit 111 uses a physical location obtained from a location information acquisition device such as a GPS receiver (not shown). Specifically, the location determining unit 111 uses a location information stored in the terminal location information DB 113 to provide a logical location. Can determine the local area. Here, the logical area may be a concept of dividing logical spaces such as an office, a lobby, and a conference room.

위치 판별부(111)에서 물리적인 위치를 판별하는 방법으로는 여러 공지된 기술을 이용할 수 있다. 예를 들면, IP를 통해 위치를 파악할 수 있는 네트워크 관리(Network Management) 툴, Wi-Fi(Wireless Fidelity), 지그비(ZigBee), GPS(Global Positioning System)와 같은 방법들 중 하나를 선택적으로 적용할 수 있다. 하지만, 이 또한 예를 든 것일 뿐, 여기에 서술되지 않은 방법이라도, 사용자 단말장치(100)의 물리적인 위치를 감지할 수 있는 것이면 무엇이든 적용될 수 있다.As a method of determining the physical position by the position determining unit 111, various known techniques may be used. For example, you can selectively apply one of the following methods: network management tools that can be located via IP, Wi-Fi (Wireless Fidelity), ZigBee, and Global Positioning System (GPS). Can be. However, this is only an example, and any method not described herein may be applied to anything that can detect the physical location of the user terminal device 100.

본 발명의 일 실시예에 따르면, 위치 판별부(111)는 사용자 단말장치(100)의 위치 변동이 발생 되면 변동된 위치에 대한 정보를 복호화부(123)로 전송할 수 있다. 본 발명의 다른 실시예에 따르면 위치 판별부(111)는 복호화부(123)로부터 요청이 있는 경우에 단말장치(100)의 위치에 대한 정보를 복호화부(123)로 전송할 수 있다. 또 다른 실시예에 따르면 위치 판별부(111)는 주기적으로 단말장치(100)의 위치에 대한 정보를 복호화부(123)에 전송할 수 있다. 여기서, 위치에 대한 정보는 논리적 지역에 대한 것일 수 있으나, 실시예에 따라서는 물리적 위치에 대한 정보일 수도 있다. 물리적 위치에 대한 정보인 경우에는 물리적 위치와 지역키(지역 공개키와 지역 비밀키)가 대응되어 있어야 할 것이다.According to an embodiment of the present invention, if the position change of the user terminal device 100 occurs, the position determiner 111 may transmit information about the changed position to the decoder 123. According to another embodiment of the present invention, the location determiner 111 may transmit information about the location of the terminal device 100 to the decoder 123 when a request is received from the decoder 123. According to another exemplary embodiment, the location determiner 111 may periodically transmit information about the location of the terminal device 100 to the decoder 123. Here, the information on the location may be for a logical area, but in some embodiments, may be information about a physical location. In the case of information about the physical location, the physical location and the local key (local public key and local secret key) should correspond to each other.

가상머신 관리부(121)는 사용자 가상머신의 상태를 감시하고, 그 상태를 제어하는 것으로, 사용자 가상머신(131)의 전반적인 기능을 제어할 수 있다. 또한, 가상머신 관리부(121)는 사용자로부터 특정 파일에 대한 사용 요청이 입력될 경우, 위치 판별부(111)로 위치 추적을 요청하거나 혹은 네트워크 감지부(122)로 네트워크 연결상태 확인을 요청할 수 있다. 여기서, 사용자의 파일에 대한 사용 요청은 파일의 생성, 열람, 수정과 같은 작업을 요청하는 것을 의미할 수 있다.The virtual machine manager 121 monitors the state of the user virtual machine and controls the state, thereby controlling the overall functions of the user virtual machine 131. In addition, the virtual machine manager 121 may request location tracking to the location determiner 111 or request network confirmation to the network detector 122 when a user request for a specific file is input from the user. . Here, the user's request for using the file may mean requesting an operation such as creating, reading, or modifying the file.

네트워크 감지부(122)는 사용자 단말장치(100)와 관리 서버(200)를 연결하는 네트워크의 연결 상태를 지속적으로 감시하여, 네트워크 연결상태가 오프라인인지 혹은 온라인인지를 감지한다.The network detector 122 continuously monitors a connection state of a network connecting the user terminal device 100 and the management server 200 to detect whether the network connection state is offline or online.

복호화부(123)는 가상 머신 상에서 동작하는 파일의 복호화를 수행한다. 여기서, 복호화부(123)는 사용자 단말장치(100)의 현재 위치에 대응된(또는 '현재 위치에 따른') 키를 사용하여 파일을 복호화할 수 있다. The decryption unit 123 decrypts a file operating on a virtual machine. Here, the decryption unit 123 may decrypt the file using a key corresponding to the current position of the user terminal device 100 (or according to the current position).

본 발명의 일 실시예에 따르면 상기 키에 대응된 위치는 "물리적 위치" 또는 "논리적 위치"일 수 있다. 그리고, "위치 정보"는, 사용자 단말장치(100)의 위치를 나타내는 임의의 모든 정보를 의미하며, 예를 들면 물리적 위치에 대한 정보 또는 논리적 위치에 대한 정보를 의미하거나 또는 이들을 모두 의미하는 것으로 사용될 수 있다.According to an embodiment of the present invention, the position corresponding to the key may be a "physical position" or a "logical position". And, "location information" means any information indicating the location of the user terminal device 100, for example, information about the physical location or information about the logical location or used to mean all of them. Can be.

본 발명의 일 실시예에 따르면 "논리적 위치"별로 키가 대응되어 있을 수 있다. 하지만, 상술한 바와 같이 "물리적 위치"에 키가 대응되도록 구성되는 것이 배제되는 것은 아니다.According to an embodiment of the present invention, keys may correspond to "logical locations". However, it is not excluded that the key is configured to correspond to the "physical position" as described above.

위치에 대하여 대응되어 있는 "키"는 본원 발명에서의 지칭하는 '대칭키'와 '지역키'일 수 있다. 여기서, '대칭키'는 가상머신상에서 동작하는 파일을 암호화하거나 복호화할 때 사용하는 키이며, '지역키'는 '대칭키'를 암호화하거나 복호화할 때 사용할 수 있다. '지역키'는 예를 들면 '지역 공개키'와 '지역 비밀키'가 있을 수 있으며, '지역 비밀키'를 사용하여 '대칭키'를 암호화하고, 이렇게 암호화된 대칭키를 '지역 공개키'를 사용하여 복호화할 수 있다. The "key" corresponding to the position may be the "symmetric key" and the "local key" referred to in the present invention. Here, the 'symmetric key' is a key used when encrypting or decrypting a file operating on a virtual machine, and the 'local key' can be used when encrypting or decrypting a 'symmetric key'. The 'local key' may include, for example, a 'local public key' and a 'local secret key'. The 'symmetric key' is encrypted using the 'local secret key', and the symmetric key thus encrypted is referred to as the 'local public key'. Can be decrypted using '.

상술한 "논리적 위치"별로 지역키가 대응되어 있는 경우에는, "물리적 위치"와 "논리적 위치"가 대응되어 있는 매핑 데이터(또는 정보)가 필요하며, 이러한 매핑 데이터는 단말측 위치정보 DB(113)에 저장될 수 있다. When the local key corresponds to each of the "logical locations" described above, mapping data (or information) corresponding to "physical location" and "logical location" is required, and the mapping data is the terminal side location information DB 113. ) Can be stored.

도 4는 본 발명의 일 실시예에 따른 암호화 및 복호화 과정을 설명하기 위한 도이다. 이하에서, 도 4를 참조하여 상세히 설명하기로 한다.4 is a diagram illustrating an encryption and decryption process according to an embodiment of the present invention. Hereinafter, with reference to Figure 4 will be described in detail.

도 4를 참조하면, 관리 서버(200)에서의 동작을 먼저 설명하면, 지역 비밀키와 사용자 공개키를 DH 알고리즘에 입력하여 대칭키를 생성한다.  Referring to FIG. 4, the operation of the management server 200 will first be described. A symmetric key is generated by inputting a local secret key and a user public key into the DH algorithm.

상기 생성된 대칭키는 사용자 공개키와 비대칭 암호화 알고리즘을 사용하여 암호화하고, 이렇게 암호화된 것을 다시 지역 비밀키와 비대칭 암호화 알고리즘을 사용하여 암호화할 수 있다. The generated symmetric key can be encrypted using a user public key and an asymmetric encryption algorithm, and the encrypted one can be encrypted again using a local secret key and an asymmetric encryption algorithm.

관리 서버(200)에서 2중으로 암호화된 대칭키는 사용자 단말장치(100)로 전송되며, 사용자 단말장치(100)의 클라이언트 하이퍼바이저는 순차적으로 지역 공개키와 사용자 비밀키를 사용하여 복호화하여 대칭키를 생성한다. 이렇게 생성된 대칭키를 이용하여 가상머신 상에서 동작하는 파일을 복호화할 수 있다. The symmetric key double encrypted by the management server 200 is transmitted to the user terminal device 100, and the client hypervisor of the user terminal device 100 decrypts the symmetric key by using the local public key and the user secret key. Create By using the generated symmetric key, the file operating on the virtual machine can be decrypted.

사용자 단말장치(100)에서는 상기 복호화된 대칭키를 암호화된 상태로 저장한다. 이로써, 사용자 단말장치(100)의 위치가 변동되면, 그 위치에 대응된 지역 공개키가 달라지며, 기 저장된 암호화된 대칭키는 사용할 수 없게 된다. The user terminal device 100 stores the decrypted symmetric key in an encrypted state. Thus, when the location of the user terminal device 100 changes, the local public key corresponding to the location is changed, and the pre-stored encrypted symmetric key cannot be used.

복호화부(123)는, 사용자 단말장치(100)의 현재 위치에 대응된 대칭키를 사용하여 파일을 복호화할 수 있다. The decryption unit 123 may decrypt the file by using a symmetric key corresponding to the current position of the user terminal device 100.

또한, 복호화부(123)는 사용자 단말장치(100)의 현재 위치의 변동에 따라 지역정보의 변동이 발생하였을 경우에는 현재 사용하고 있는 대칭키를 폐지하고, 변동된 지역정보에 대응하는 대칭키를 사용하여 파일을 복호화할 수 있다.In addition, when the change of the local information occurs due to the change of the current position of the user terminal device 100, the decoder 123 abolishes the symmetric key currently used and replaces the symmetric key corresponding to the changed local information. Can be used to decrypt the file.

또한, 복호화부(123)는 사용자 단말장치(100)의 전원이 온되었거나 혹은 사용자 단말장치(100)의 현재 위치가 변경되었을 경우, 위치 판별부(111)로부터 지역정보(예를 들면, 논리적 위치)를 제공받을 수 있다. 이때, 복호화부(123)는 지역정보를 이용하여 단말측 키관리 DB(112)에 지역정보에 대응하는 암호화된 대칭키가 존재하는지를 판단할 수 있다. 여기서, 단말측 키관리 DB(112)에 해당 키가 존재하면, 복호화부(123)는 해당 키를 추출하여 사용자 비밀키와 지역 공개키를 사용하여 복호화한 후에, 그 복호화한 키를 이용하여 가상머신상에서 동작하는 암호화된 파일을 복호화할 수 있다.In addition, when the power of the user terminal apparatus 100 is turned on or the current position of the user terminal apparatus 100 is changed, the decryption unit 123 receives local information (eg, a logical position) from the position determining unit 111. ) Can be provided. In this case, the decryption unit 123 may determine whether an encrypted symmetric key corresponding to the region information exists in the terminal-side key management DB 112 using the region information. Here, if the corresponding key exists in the terminal-side key management DB 112, the decryption unit 123 extracts the corresponding key, decrypts it using the user secret key and the local public key, and then virtualizes the decrypted key. Decrypt encrypted files running on the machine.

한편, 단말측 키관리 DB(112)에 해당 키가 존재하지 않는다면, 복호화부(123)는 사용이 요청된 파일을 복호화할 수 없으므로, 관리 서버(200)로 키 전송을 요청할 수 있다. 이때, 복호화부(123)는 관리 서버(200)로 키 전송을 요청하기에 앞서, 네트워크 감지부(122)로 네트워크 연결상태 확인을 요청하여 네트워크 연결상태가 온라인인 것으로 감지되었을 경우에 관리 서버(200)로 키 전송을 요청할 수 있다. 이 경우, 복호화부(123)는 관리 서버(200)로부터 키 전송 요청에 대한 응답으로 수신하게 되는 키를 이용하여 사용이 요청된 파일을 복호화할 수 있다. 또한, 복호화부(123)는 관리 서버(200)로부터 암호화된 키를 수신하면, 수신된 암호화된 키를 추후 사용할 수 있도록 단말측 키관리 DB(112)에 저장할 수 있다.On the other hand, if the corresponding key does not exist in the terminal-side key management DB 112, the decryption unit 123 can not decrypt the file requested to use, it can request the key transmission to the management server 200. At this time, the decryption unit 123 requests the network detection unit 122 to check the network connection state before requesting the key transmission to the management server 200, and when the network connection state is detected as online, the management server ( Request a key transfer. In this case, the decryption unit 123 may decrypt the file requested to be used by using the key received in response to the key transmission request from the management server 200. In addition, when the decryption unit 123 receives an encrypted key from the management server 200, the decryption unit 123 may store the encrypted key in the terminal-side key management DB 112 so that it can be used later.

복호화부(123)가 단말측 키관리 DB(112)로부터 추출한 키, 또는 관리 서버(200)로부터 전송받는 키는 암호화된 키일 수 있다. 이 경우, 복호화부(123)는 암호화된 키를 지역정보에 대응하는 지역 공개키 및 사용자 비밀키를 이용하여 복호화할 수 있다. 즉, 복호화부(123)는 암호화된 키를 지역정보에 대응하는 지역 공개키를 이용하여 1차 복호화를 수행하고, 1차 복호화된 키를 다시 사용자 비밀키를 이용하여 2차 복호화를 수행할 수 있다. The key extracted from the terminal-side key management DB 112 or the key received from the management server 200 may be an encrypted key. In this case, the decryption unit 123 may decrypt the encrypted key using a local public key and a user secret key corresponding to the local information. That is, the decryption unit 123 may perform the first decryption of the encrypted key using the local public key corresponding to the region information, and may perform the second decryption of the first decrypted key again using the user secret key. have.

본 실시예에서는, 관리서버(200)가 사용자 공개키를 이용하여 1차 암호화하고, 2차로 지역 비밀키를 이용하여 2차 암호화한 것을 전제로 한 것이다.In this embodiment, it is assumed that the management server 200 encrypts the first time using the user public key and secondly encrypts the second time using the local secret key.

위 실시예와 다르게 관리서버(200)가 지역 비밀키를 이용하여 1차 암호화하고, 2차로 사용자 공개키를 이용하여 2차 암호화하도록 구성하는 것도 가능한데, 이렇게 구성하는 경우 복호화부(123)는 사용자 비밀키를 이용하여 1차로 복호화하고, 지역 공개키를 이용하여 2차로 복호화하는 동작을 수행하도록 구성하면 된다.Unlike the above embodiment, it is also possible to configure the management server 200 to primary encryption using the local secret key, and secondary encryption using the user public key in the second, in this case, the decryption unit 123 is a user The primary key may be decrypted using the secret key, and the second decryption may be performed using the local public key.

단말측 동기화부(124)는 후술하는 서버측 동기화부(210)와의 연동을 통해, 사용자 단말장치(100)의 단말측 키관리 DB(112), 및 단말측 위치정보 DB(113)를 관리 서버(200)의 서버측 키관리 DB(240), 및 서버측 위치정보 DB(250)와 각각 동기화시킨다. 2개의 DB를 동기화시키는 방법은 이미 공지된 사항에 해당하므로, 동기화에 대한 구체적인 설명은 생략한다.The terminal side synchronization unit 124 manages the terminal side key management DB 112 and the terminal side location information DB 113 of the user terminal device 100 through interworking with the server side synchronization unit 210 described later. The server side key management DB 240 and the server side location information DB 250 of 200 are respectively synchronized. Since the method of synchronizing two DBs corresponds to a known matter, a detailed description of the synchronization is omitted.

사용자 단말장치(100) 및 관리 서버(200) 간에 서로 대응하는 DB들간의 동기화는 사용자 단말장치(100)와 관리 서버(200)의 네트워크 연결상태가 온라인일 경우에는 수시로 수행될 수 있다. 혹은, 서버측 키관리 DB(240), 및 서버측 위치정보 DB(250) 내의 정보에 변동이 발생하였을 경우에 수행될 수 있다.Synchronization between the DBs corresponding to each other between the user terminal device 100 and the management server 200 may be performed at any time when the network connection state between the user terminal device 100 and the management server 200 is online. Alternatively, the operation may be performed when a change occurs in the information in the server-side key management DB 240 and the server-side location information DB 250.

기록부(125)는 사용자 단말장치(100)와 관리 서버(200) 간의 네트워크가 단절되어 오프라인 상태일 때의 사용내역을 사용내역 DB(114)에 기록한다. 기록부(125)는 오프라인 중에 파일 암복호화를 위해 사용된 키의 사용 내역, 키를 사용한 시간, 키를 사용하였을 때 사용자 단말장치(100)의 위치, 파일에 대한 조작 종류 예를 들면, 읽기 혹은 쓰기, 대상 파일의 경로명, 사용된 키의 암호화된 값을 사용내역 DB(114)에 기록할 수 있다. 여기에서 서술한 사용내역은 예를 든 것이므로, 필요에 따라서는 보다 더 다양한 종류의 사용내역이 기록될 수 있다.The recording unit 125 records the usage history when the network between the user terminal apparatus 100 and the management server 200 is disconnected and is offline, in the usage history DB 114. The recording unit 125 may include a history of use of a key used for file encryption and decryption while offline, a time of using a key, a location of the user terminal device 100 when a key is used, an operation type for a file, for example, reading or writing. The path name of the target file and the encrypted value of the used key may be recorded in the usage history DB 114. Since the usage history described here is an example, more various types of usage history can be recorded as needed.

위반사항 검출부(126)는 사용자 단말장치(100)와 관리 서버(200) 간의 네트워크 연결상태가 오프라인에서 온라인으로 전환되었을 때, 오프라인 중에 사용된 파일의 사용내역 중 위반사항을 검출한다. 보다 구체적으로, 네트워크 연결상태가 오프라인에서 온라인으로 전환되면, 단말측 동기화부(124)에 의해 단말측 키관리 DB(112)가 동기화된다. 이때, 위반사항 검출부(126)는 사용내역 DB(114)에 기록된 오프라인 중의 사용내역 중에서 단말측 키관리 DB(112)에 저장된 관리 정책의 위반사항을 검출할 수 있다.The violation detection unit 126 detects a violation of the usage history of the file used while offline when the network connection state between the user terminal device 100 and the management server 200 is switched from offline to online. More specifically, when the network connection state is switched from offline to online, the terminal side key management DB 112 is synchronized by the terminal side synchronization unit 124. At this time, the violation detection unit 126 may detect a violation of the management policy stored in the terminal-side key management DB 112 from the offline usage history recorded in the usage history DB 114.

위반사항 검출부(126)는 네트워크 연결상태가 오프라인인 동안 서버측 키관리 DB(240)의 변경 내역과 키 사용 내역을 키의 사용시각 이전에 변경된 내역에 대해서만 유효성을 체크하여, 관리 정책 상에서 허가된 정책에 위반되는지의 여부를 판단함으로써, 위반사항을 검출할 수 있다. 위반사항 검출부(126)는 위반사항이 검출되면, 검출된 위반사항을 관리 서버(200)로 전송한다.The violation detection unit 126 checks the validity of the change history and the key usage history of the server-side key management DB 240 only for the details changed before the time of use of the key while the network connection state is offline. By determining whether the policy is violated, violations can be detected. If the violation detection unit 126 detects a violation, the violation detection unit 126 transmits the detected violation to the management server 200.

사용자 모듈(130)은 클라이언트 하이퍼바이저부(120) 상에 설치되는 것으로, 사용자 가상머신(131), 사용자 운영체제부(132), 및 사용자 어플리케이션부(133)를 포함할 수 있다.The user module 130 is installed on the client hypervisor unit 120 and may include a user virtual machine 131, a user operating system unit 132, and a user application unit 133.

여기서, 사용자 가상머신(131)은 클라이언트 하이퍼바이저부(120) 상에서 동작하고, 사용자 운영체제부(132)는 사용자 가상머신(131) 상에서 동작하며, 사용자 어플리케이션부(133)는 사용자 운영체제부(132) 상에서 동작한다.Here, the user virtual machine 131 operates on the client hypervisor unit 120, the user operating system unit 132 operates on the user virtual machine 131, and the user application unit 133 is the user operating system unit 132. It works on

본 실시예에서는, 설명의 편의상 하나의 사용자 모듈(130) 즉, 하나의 사용자 가상머신(131), 하나의 사용자 운영체제부(132), 및 하나의 사용자 어플리케이션부(133)를 도시하였다. 하지만, 클라이언트 하이퍼바이저부(120) 상에는 복수의 사용자 모듈(130)이 설치될 수 있다. 또한, 하나의 사용자 운영체제부(132) 상에는 복수의 사용자 어플리케이션부(133)가 설치될 수 있다.In the present embodiment, for convenience of description, one user module 130, that is, one user virtual machine 131, one user operating system unit 132, and one user application unit 133 are illustrated. However, a plurality of user modules 130 may be installed on the client hypervisor unit 120. In addition, a plurality of user application units 133 may be installed on one user operating system unit 132.

한편, 본원 명세서에서 가상머신 상에서 동작하는 '파일'이라고 함은 사용자 운영 체제부를 구성하거나 그에 사용되는 파일, 또는 사용자 어플리케이션부를 구성하거나 그에 사용되는 파일, 또는 사용자가 가상머신 상에서 동작하는 사용자 어플리케이션부를 이용하여 생성한 파일을 포함하는 의미로 사용하기로 한다.Meanwhile, in the present specification, the term 'file' operating on a virtual machine refers to a file configuring or using a user operating system unit, a file used to configure or using a user application unit, or a user application unit operating on a virtual machine. It will be used to include the generated file.

관리 서버(200)는 네트워크를 통해 사용자 단말장치(100)와 연결되며, 서버측 동기화부(210), 키 관리부(220), 위치 추적부(230), 서버측 키관리 DB(240), 서버측 위치정보 DB(250), 및 위반내역 DB(260)를 포함할 수 있다.The management server 200 is connected to the user terminal 100 through a network, the server-side synchronization unit 210, key management unit 220, location tracking unit 230, server-side key management DB 240, server The side location information DB 250 and the violation history DB 260 may be included.

서버측 동기화부(210)는 단말측 동기화부(124)와의 연동을 통해, 서버측 키관리 DB(240) 및 서버측 위치정보 DB(250) 내의 정보에 변동이 발생하였을 경우, 이 변동된 정보가 단말측 키관리 DB(112) 및 단말측 위치정보 DB(113)에 반영될 수 있도록 양측의 서로 대응하는 DB를 동기화시킨다.When the server-side synchronization unit 210 changes with information in the server-side key management DB 240 and the server-side location information DB 250 through interworking with the terminal-side synchronization unit 124, the changed information Synchronize the DB corresponding to each other so that the two keys can be reflected in the terminal-side key management DB 112 and the terminal-side location information DB 113.

키 관리부(220)는 사용자 단말장치(100)의 복호화부(123)로부터 키 전송 요청이 들어오면, 이에 대한 응답으로 키를 생성하여 사용자 단말장치(100)로 전송한다. 이때, 복호화부(123)로부터 전송되는 키 전송 요청에는 사용자 단말장치(100)의 현재 위치에 대한 정보가 포함되어 있을 수 있다.When a key transmission request is received from the decryption unit 123 of the user terminal device 100, the key manager 220 generates a key and transmits the key to the user terminal device 100 in response thereto. In this case, the key transmission request transmitted from the decryption unit 123 may include information on the current location of the user terminal device 100.

키 관리부(220)는 복호화부(123)의 키 전송 요청에 포함된 위치에 대한 정보를 이용하여, 전송할 키를 암호화한다. 상기 위치에 대한 정보가 사용자 단말장치(100)의 현재의 논리적 위치인 경우를 예로 들면, 키 관리부(220)는 그러한 논리적 위치에 대응된 지역 비밀키를 사용하여 1차로 암호화하고, 다시 사용자 공개키로 2차로 암호화한 후, 사용자 단말장치(100)로 전송할 수 있다. The key manager 220 encrypts the key to be transmitted by using information about the location included in the key transmission request of the decryptor 123. For example, when the information on the location is the current logical location of the user terminal device 100, the key manager 220 encrypts the primary by using a local secret key corresponding to the logical location, and then again uses the user public key. After the second encryption, it can be transmitted to the user terminal device (100).

본 발명의 일 실시예에 따르면, 키 관리부(220)에서는 공지된 데이터 암복호화를 위한 키 교환방식을 사용할 수 있다. 일 예로, 디피-헬만 키 교환(Diffie-Hellman key exchange) 방식을 적용할 수 있다. 디피-헬만 키 교환은 서로 다른 두 사용자 A, B 간에 비밀키를 공유하거나 혹은 대칭키를 공유하는데 사용되는 것으로, 자신의 비밀키와 상대방의 공유키를 이용하여 양측이 동일한 대칭키를 생성하는 것을 기본 원리로 한다.According to an embodiment of the present invention, the key manager 220 may use a known key exchange method for data encryption and decryption. For example, a Diffie-Hellman key exchange method may be applied. Diffie-Hellman key exchange is used to share a secret key or a symmetric key between two different users A and B. Both sides generate the same symmetric key by using their private key and the other party's shared key. Use the basic principle.

본 실시예에서는, 논리적 지역별로 지역 공개키와 지역 비밀키 쌍이 할당되고, 각 사용자는 사용자 공개키와 사용자 비밀키 쌍을 보유하고 있다. 이때, 지역 공개키와 사용자 공개키는 상호간에 공개되어 있지만, 지역 비밀키와 사용자 비밀키는 자신만이 알고 있는 키에 해당한다. 따라서, 키 관리부(220)에서는 지역 공개키, 지역 비밀키, 및 사용자 공개키를 알고 있는 상태일 수 있다. 키 관리부(220)는 지역 비밀키, 사용자 공개키를 대칭키 생성 알고리즘에 대입하여 대칭키를 생성할 수 있다. 이때, 대칭키 생성 알고리즘으로 디피-헬만 키 교환 기술이 적용될 수 있다. 여기서, 지역 비밀키는 사용자 단말장치(100)의 논리적 지역(즉, 논리적 위치)에 대응하는 키일 수 있다.In this embodiment, a local public key and a local private key pair are assigned for each logical region, and each user has a user public key and a user private key pair. At this time, the local public key and the user public key are open to each other, but the local private key and the user private key correspond to a key known only by the user. Therefore, the key manager 220 may be in a state of knowing a local public key, a local secret key, and a user public key. The key manager 220 may generate a symmetric key by substituting a local secret key and a user public key into a symmetric key generation algorithm. In this case, the Diffie-Hellman key exchange technique may be applied as a symmetric key generation algorithm. Here, the local secret key may be a key corresponding to a logical region (ie, a logical position) of the user terminal device 100.

키 관리부(220)는 대칭키를 생성한 후, 이 대칭키를 사용자 공개키를 이용하여 1차 암호화하고, 다시 지역 비밀키를 이용하여 2차 암호화한다(이와 다르게 지역 비밀키로 1차 암호화하고, 다시 사용자 공개키로 2차 암호화하는 것도 가능하다). 이후, 키 관리부(220)는 이중으로 암호화된 키를 사용자 단말장치(100)의 복호화부(123)로 전송한다.After generating the symmetric key, the key manager 220 first encrypts the symmetric key using the user's public key, and then encrypts the second symmetric key using the local secret key. It is also possible to encrypt again with the user's public key). Thereafter, the key manager 220 transmits the double encrypted key to the decryption unit 123 of the user terminal device 100.

위치 추적부(230)는 사용자 단말장치(100)와 관리 서버(200)가 네트워크를 통해 정상적으로 연결되어 있을 경우, 사용자 단말장치(100)의 현재 위치를 감지하고 현재 위치에 따른 지역정보를 추출할 수 있다. 위치 추적부(230)에서 사용자 단말장치(100)의 위치를 감지하는 방법은 앞에서 언급한 위치 판별부(111)에서 위치를 판별하기 위한 방법 중 하나일 수 있다.When the user terminal device 100 and the management server 200 are normally connected through a network, the location tracking unit 230 detects a current location of the user terminal device 100 and extracts local information according to the current location. Can be. The method of detecting the location of the user terminal device 100 by the location tracking unit 230 may be one of the methods for determining the location by the location determination unit 111 mentioned above.

서버측 키관리 DB(240)는 대칭키 생성 및 대칭키 암호화에 필요한 키가 저장된 데이터베이스일 수 있다. 서버측 키관리 DB(240) 내 정보가 변경될 경우, 서버측 키관리 DB(240)는 서버측 동기화부(210)에 의해 단말측 키관리 DB(112)와 동기화될 수 있다. 또한, 서버측 키관리 DB(240)에는 관리 서버(200)에서 사용자 단말장치(100) 내의 사용자 가상머신(131)의 사용을 관리하기 위한 관리 정책이 더 저장될 수 있다. 관리 정책은 수시로 변경될 수 있으며, 서버측 동기화부(210)의 동작에 의해 서버측 키관리 DB(240) 및 단말측 키관리 DB(112)에 저장 관리될 수 있다.The server-side key management DB 240 may be a database in which a key necessary for symmetric key generation and symmetric key encryption is stored. When information in the server-side key management DB 240 is changed, the server-side key management DB 240 may be synchronized with the terminal-side key management DB 112 by the server-side synchronization unit 210. In addition, the server-side key management DB 240 may further store a management policy for managing the use of the user virtual machine 131 in the user terminal device 100 in the management server 200. The management policy may be changed from time to time, and may be stored and managed in the server-side key management DB 240 and the terminal-side key management DB 112 by the operation of the server-side synchronization unit 210.

서버측 위치정보 DB(250)는 위치 추적부(230)에서 사용자 단말장치(100)의 현재 위치를 감지할 때 물리적 위치와 논리적 지역의 상호 맵핑을 위한 맵핑 정보를 저장한다.The server-side location information DB 250 stores the mapping information for mapping the physical location and the logical area when the location tracking unit 230 detects the current location of the user terminal device 100.

위반내역 DB(260)는 사용자 단말장치(100)의 위반사항 검출부(126)로부터 전송되는 위반내역을 저장하는 데이터베이스이다. 즉, 네트워크가 단절된 오프라인 상태 동안 사용자 단말장치(100) 내에서 변경된 관리 정책이 반영되지 않아 키 및 파일의 사용 내역 중 위반사항이 검출되었을 경우에, 네트워크가 오프라인에서 온라인으로 전환되면 위반사항 검출부(126)로부터 위반내역이 전송될 수 있다. 이때, 전송된 위반내역이 위반내역 DB(260)에 저장된다. 위반내역 DB(260)에 저장된 위반내역을 통해 기 정해진 관리 정책에 따라 임의의 조치를 취할 수 있다.The violation history DB 260 is a database that stores the violation history transmitted from the violation detection unit 126 of the user terminal device 100. That is, when a violation of the usage history of the key and file is detected because the changed management policy is not reflected in the user terminal device 100 while the network is disconnected, the violation detection unit (if the network is switched from offline to online) The violation may be transmitted from 126). At this time, the transmitted violation history is stored in the violation history DB 260. Violations stored in the violation history DB 260 may take any action according to a predetermined management policy.

상술한 도 1의 실시예에서, 하나의 기능 블록 안에 복수개의 구성요소들이 포함되어 있는 것으로 도시되었으나 이는 설명의 편의를 위한 것으로 반드시 하나의 장치에 구현되는 것을 의미하는 것이 아니다. 예를 들면, 이들 구성요소의 적어도 하나 이상은 별도의 기능 블록으로 구현되는 것도 가능하다. 여기서, 별도라고 함은 위치적으로 구분되거나, 또는 서로 다른 소프트웨어나 하드웨어로 구분되는 것을 포함하는 의미이다.In the above-described embodiment of FIG. 1, although a plurality of components are illustrated as being included in one functional block, this is for convenience of description and does not necessarily mean that they are implemented in one apparatus. For example, at least one or more of these components may be implemented as separate functional blocks. Here, the term "separate" means to include a location or a different software or hardware.

도 2는 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a file encryption / decryption method on a virtual machine according to an embodiment of the present invention.

가상머신 관리부(121)는 사용자로부터 특정 파일에 대한 사용 요청이 들어오면(S301), 위치 판별부(111)로 위치 추적을 요청한다(S303). 여기서, 파일에 대한 사용 요청은 파일의 수정, 열람, 및 생성과 같은 작업을 통칭한다.When the virtual machine manager 121 receives a use request for a specific file from the user (S301), the virtual machine manager 121 requests the location tracking unit 111 to track the location (S303). Here, the use request for a file collectively refers to operations such as modifying, viewing, and creating a file.

위치 판별부(111)는 가상머신 관리부(121)로부터 위치 추적 요청이 들어오면, 사용자 단말장치(100)의 현재의 물리적 위치를 획득하고, 획득된 현재의 물리적 위치에 따라 단말측 위치정보 DB(113)를 이용하여 지역정보를 추출한다(S305). 여기서, 위치 판별부(111)는 GPS 수신기(미도시) 등으로부터 수신되는 정보로부터 물리적 위치를 획득할 수 있다. When the location determination unit 111 receives a location tracking request from the virtual machine manager 121, the location determiner 111 obtains a current physical location of the user terminal device 100 and based on the obtained current physical location, the terminal side location information DB ( Local information is extracted by using 113) (S305). Here, the location determiner 111 may obtain a physical location from information received from a GPS receiver (not shown).

위치 판별부(111)는 지역정보를 추출한 후, 추출된 지역정보를 복호화부(123)로 제공한다(S307). 복호화부(123)는 위치 판별부(111)로부터 제공받은 지역정보를 이용하여 지역정보에 대응하는 키가 단말측 키관리 DB(112)에 존재하는지를 판단한다(S309). 여기서, 지역정보에 대응하는 키는 예를 들면 상술한 '대칭키'일 수 있으며 암호화되어 있다.After determining the location information, the location determining unit 111 provides the extracted area information to the decoding unit 123 (S307). The decryption unit 123 determines whether a key corresponding to the area information exists in the terminal-side key management DB 112 using the area information provided from the location determining unit 111 (S309). Here, the key corresponding to the local information may be, for example, the above-mentioned 'symmetric key' and is encrypted.

S309 단계에서, 복호화부(123)는 지역정보에 대응하는 키가 존재하는 경우(S309-Y), 단말측 키관리 DB(112)에서 지역정보에 대응하는 키를 추출하여 복호화한 후, 복호화한 키를 이용하여 사용 요청된 파일을 복호화한다(S311).In step S309, if there is a key corresponding to the area information (S309-Y), the decryption unit 123 extracts and decrypts the key corresponding to the area information from the terminal-side key management DB 112, and then decrypts it. The file requested to be used is decrypted using the key (S311).

S309 단계에서, 복호화부(123)는 지역정보에 대응하는 키가 존재하지 않을 경우(S309-N), 복호화부(123)는 사용 요청된 파일을 복호화할 수 없으므로, 관리 서버(200)로 키를 요청하기 위하여 네트워크 감지부(122)로 네트워크 연결상태 확인을 요청한다(S313).In operation S309, when the key corresponding to the local information does not exist (S309-N), the decryption unit 123 may not decrypt the file requested to be used, and thus the key to the management server 200. In order to request a request for confirmation of the network connection state to the network detection unit 122 (S313).

네트워크 감지부(122)는 사용자 단말장치(100)와 관리 서버(200)를 연결하는 네트워크를 감지하여 네트워크 연결 상태를 확인한다(S315). 네트워크 연결 상태는 오프라인 및 온라인 중 어느 하나일 수 있다.The network detector 122 detects a network connecting the user terminal device 100 and the management server 200 and checks a network connection state (S315). The network connection state may be either offline or online.

네트워크 감지부(122)의 네트워크 연결상태 확인 결과, 네트워크 연결상태가 온라인이면(315-Y), 네트워크 감지부(122)는 복호화부(123)로 온라인을 통보하고(S319), 복호화부(123)는 관리 서버(200)로 키 관리부(220)로 키 전송을 요청한다(S321).As a result of checking the network connection state of the network detection unit 122, if the network connection state is online (315-Y), the network detection unit 122 notifies online to the decryption unit 123 (S319), and the decoding unit 123 ) Requests the key transmission to the key management unit 220 to the management server 200 (S321).

관리 서버(200)의 키 관리부(220)는 사용자 단말장치(100)로부터 키 전송이 요청되면, 앞에서 언급한 방법에 따라 대칭키를 생성하고, 생성된 대칭키를 사용자 공개키 및 지역 비밀키를 이용하여 암호화한다(S323). 이때, 키 관리부(220)는 암호화된 키를 서버측 키관리 DB(240)에 저장할 수 있다.When the key transmission unit 220 of the management server 200 is requested to transmit a key from the user terminal device 100, the key management unit 220 generates a symmetric key according to the aforementioned method, and converts the generated symmetric key into a user public key and a local secret key. Encrypt using (S323). In this case, the key manager 220 may store the encrypted key in the server-side key management DB 240.

키 관리부(220)는 암호화된 키를 사용자 단말장치(100)의 복호화부(123)로 전송한다(S325). 이에 의해, 복호화부(123)는 암호화된 키를 단말측 키관리 DB(112)에 저장하고(S327), 암호화된 키를 지역 공개키 및 사용자 비밀키를 이용하여 복호화하며(S329), 복호화된 키를 이용하여 사용 요청된 파일을 복호화한다(S331). 여기서, S327 단계의 암호화된 키를 단말측 키관리 DB(112)에 저장하는 절차는 암호화된 키를 추후 사용할 수 있도록 하기 위한 것이나, 생략될 수도 있다. The key manager 220 transmits the encrypted key to the decryption unit 123 of the user terminal device 100 (S325). Accordingly, the decryption unit 123 stores the encrypted key in the terminal-side key management DB 112 (S327), decrypts the encrypted key using the local public key and the user secret key (S329), and decrypts the encrypted key. The file requested to be used is decrypted using the key (S331). Here, the procedure of storing the encrypted key in step S327 in the terminal-side key management DB 112 is to enable the encrypted key later, but may be omitted.

S317 단계에서, 네트워크 감지부(122)의 네트워크 연결상태 확인시 오프라인으로 확인되면(S317-N), 네트워크 감지부(122)는 복호화부(123)로 오프라인을 통보한다(S333). 이에 의해, 복호화부(123)는 현재 사용자 단말장치(100)의 위치가 속하는 지역정보에 대응하는 키를 보유하고 있지 않음은 물론 관리 서버(200)로부터 전송받을 수도 없는 상황이므로, 파일 사용 불가능을 통보한다(S335). 가상머신 관리부(121)는 사용자에게 파일 사용이 불가능함을 통보할 수 있다(S337).In step S317, when it is confirmed offline when the network connection state of the network detector 122 is checked (S317 -N), the network detector 122 notifies the decoder 123 of offline (S333). As a result, since the decryption unit 123 does not have a key corresponding to the area information to which the location of the user terminal device 100 belongs, it cannot be transmitted from the management server 200, and thus the file cannot be used. Notify (S335). The virtual machine manager 121 may notify the user that the file is not available (S337).

본 실시예에서는, 사용자 가상머신(131) 내의 파일에 대한 사용 요청이 들어오면, 사용자 단말장치(100) 내부에 구비된 위치 판별부(111)를 통해 사용자 단말장치(100)의 위치를 판별하는 경우에 파일을 암복호화하기 위한 방법을 설명한 것이다. 사용자 단말장치(100)의 위치를 판별함에 있어, 본 실시예에서 설명한 바와 같이 위치 판별부(111)를 이용할 경우에는 네트워크 연결 상태와 무관하게 사용자 단말장치(100)의 위치를 파악할 수 있는 장점이 있다.In the present embodiment, when a use request for a file in the user virtual machine 131 is received, the location of the user terminal device 100 is determined through the location determination unit 111 provided in the user terminal device 100. In this case, we will explain how to decrypt files. In determining the location of the user terminal device 100, as described in the present embodiment, when the location determining unit 111 is used, the location of the user terminal device 100 may be determined regardless of a network connection state. have.

도 3은 본 발명의 일 실시예에 따른 가상머신 상의 파일 암복호화 방법을 설명하기 위한 흐름도이다.3 is a flowchart illustrating a file encryption / decryption method on a virtual machine according to an embodiment of the present invention.

가상머신 관리부(121)로 사용자 가상머신(131) 상의 특정 파일에 대한 사용 요청이 입력된다(S401). 가상머신 관리부(121)는 네트워크 감지부(122)로 네트워크 연결상태 확인을 요청한다(S403).A request for using a specific file on the user virtual machine 131 is input to the virtual machine manager 121 (S401). The virtual machine manager 121 requests the network detector 122 to check the network connection state (S403).

가상머신 관리부(121)로부터 네트워크 연결상태 확인을 요청받은 네트워크 감지부(122)는 네트워크 연결상태가 온라인인지 혹은 오프라인인지를 확인한다(S405).The network detection unit 122, which has been requested to check the network connection state from the virtual machine manager 121, checks whether the network connection state is online or offline (S405).

네트워크 연결상태가 온라인인 것으로 확인되면(S407-Y), 네트워크 감지부(122)는 가상머신 관리부(121)로 네트워크 연결상태가 온라인임을 통보한다(S409). 이에 의해, 가상머신 관리부(121)는 관리 서버(200)의 위치 추적부(230)로 위치 추적을 요청한다(S411).If it is confirmed that the network connection state is online (S407-Y), the network detector 122 notifies the virtual machine manager 121 that the network connection state is online (S409). As a result, the virtual machine manager 121 requests the location tracking to the location tracking unit 230 of the management server 200 (S411).

위치 추적부(230)는 사용자 단말장치(100)의 위치를 추적하고, 추적된 위치에 따라 서버측 위치정보 DB(250)를 이용하여 사용자 단말장치(100)가 속해 있는 지역정보를 추출한다(S413). 위치 추적부(230)는 사용자 단말장치(100)의 복호화부(123)로 지역정보를 제공한다(S415).The location tracking unit 230 tracks the location of the user terminal device 100 and extracts local information to which the user terminal device 100 belongs by using the server-side location information DB 250 according to the tracked location ( S413). The location tracking unit 230 provides local information to the decoding unit 123 of the user terminal device 100 (S415).

복호화부(123)는 관리 서버(200)의 위치 추적부(230)로부터 전송받은 지역정보를 이용하여 단말측 키관리 DB(112)에 지역정보에 대응하는 키가 존재하는지를 판단한다(S417). 여기서의 지역정보에 대응하는 키는 상술한 '대칭키'일 수 있다.The decryption unit 123 determines whether a key corresponding to the area information exists in the terminal-side key management DB 112 using the area information received from the location tracking unit 230 of the management server 200 (S417). The key corresponding to the local information here may be the above-mentioned 'symmetric key'.

S417 단계에서, 복호화부(123)는 지역정보에 대응하는 키가 존재한다면(S417-Y), 단말측 키관리 DB(112)로부터 지역정보에 대응하는 키를 추출하여 복호화하고 복호화한 키를 이용하여 사용 요청된 파일을 복호화한다(S419).In step S417, if there is a key corresponding to local information (S417-Y), the decryption unit 123 extracts a key corresponding to the local information from the terminal-side key management DB 112 and uses the decrypted key. The file requested to be used is decrypted (S419).

만약, S417 단계에서, 복호화부(123)는 지역정보에 대응하는 키가 존재하지 않는다면(S417-N), 복호화부(123)는 관리 서버(200)의 키 관리부(220)로 키 전송을 요청한다(S421). 이때, 키 전송 요청시 사용자 단말장치(100)가 속하는 지역정보가 함께 전송될 수 있다.If, in step S417, the decryption unit 123 does not exist a key corresponding to the local information (S417-N), the decryption unit 123 requests a key transmission to the key management unit 220 of the management server 200. (S421). At this time, when the key transmission request, the local information to which the user terminal device 100 belongs may be transmitted together.

복호화부(123)로부터 키 전송이 요청되면, 키 관리부(220)는 사용자 단말장치(100)가 속해 있는 지역정보에 대응하는 대칭키를 생성하고, 생성된 키를 암호화한다(S423). 이 단계는 도 2의 S323 단계에서 설명한 바와 동일한 절차이다.When the key transmission is requested from the decryption unit 123, the key management unit 220 generates a symmetric key corresponding to the area information to which the user terminal device 100 belongs, and encrypts the generated key (S423). This step is the same procedure as described in step S323 of FIG.

키 관리부(220)는 암호화된 키를 복호화부(123)로 전송한다(S425). 이에 의해, 복호화부(123)는 키 관리부(220)로부터 전송받은 암호화된 키를 단말측 키관리 DB(112)에 저장하고(S427), 암호화된 키를 복호화하며(S429), 복호화된 키를 이용하여 사용 요청된 파일을 복호화한다(S431).The key manager 220 transmits the encrypted key to the decryptor 123 (S425). Accordingly, the decryption unit 123 stores the encrypted key received from the key management unit 220 in the terminal-side key management DB 112 (S427), decrypts the encrypted key (S429), and decrypts the decrypted key. The file requested to be used is decrypted by using (S431).

본 실시예에서는, 사용자 단말장치(100)의 위치 판단에 사용자 단말장치(100)와 네트워크를 통해 연결되어 있는 관리 서버(200)에 포함되어 있는 위치 추적부(230)를 이용하는 경우의 파일 암복호화 방법을 설명한 것이다. 이와 같이, 사용자 단말장치(100)의 위치를 파악할 때 관리 서버(200)를 이용하는 방법은 네트워크가 온라인일 경우에만 가능하다. 그러므로, S407 단계에서 네트워크 감지부(122)에서 네트워크 연결상태를 확인한 결과, 오프라인일 경우에는 관리 서버(200)를 통해 사용자 단말장치(100)의 위치를 추적하는 것이 불가능하기 때문에 본 프로세스를 종료하거나 혹은 도 2의 S303 이후 절차를 수행하여 사용자 단말장치(100) 내의 위치 판별부(111)를 이용하면 사용자 단말장치(100)의 위치 추적이 가능할 것이다.In the present embodiment, file encryption / decryption when the location tracking unit 230 included in the management server 200 connected to the user terminal device 100 via a network is used to determine the location of the user terminal device 100. The method is explained. As such, the method of using the management server 200 when determining the location of the user terminal device 100 is possible only when the network is online. Therefore, as a result of confirming the network connection state in the network detection unit 122 in step S407, the process is terminated because it is impossible to track the location of the user terminal 100 through the management server 200 or Alternatively, if the location determination unit 111 in the user terminal device 100 is used by performing the procedure after S303 of FIG. 2, the location tracking of the user terminal device 100 may be performed.

도 2 및 도 3에서 도시하지는 않았으나, 네트워크 감지부(122)에서 네트워크 연결상태를 확인한 결과 오프라인인 경우에도 파일은 사용될 수 있다. 즉, 위치 판별부(111)에서 사용자 단말장치(100)의 위치를 파악한 결과, 사용자 단말장치(100)가 현재 속해 있는 지역정보에 대응하는 키가 단말측 키관리 DB(112)에 존재하는 경우에는 관리 서버(200)로부터 키를 전송받을 필요가 없다.Although not illustrated in FIGS. 2 and 3, the file may be used even when the network detection unit 122 checks the network connection state and is offline. That is, when the location determining unit 111 detects the location of the user terminal device 100, a key corresponding to the area information to which the user terminal device 100 belongs currently exists in the terminal key management DB 112. There is no need to receive the key from the management server 200.

다만, 네트워크 연결상태가 오프라인인 동안에는 관리 서버(200)의 관리 정책이 변경되더라도 사용자 단말장치(100) 측에는 반영되지 못하므로, 변경된 관리 정책이 반영되지 못한 상태에서 파일 및 키가 사용된다. 그러므로, 기록부(125)는 네트워크 연결상태가 오프라인인 동안에는 키 및 파일의 사용내역을 사용내역 DB(114)에 기록해 둔다. 이에 의해, 네트워크 연결상태가 오프라인에서 온라인으로 전환되면, 단말측 동기화부(124) 및 서버측 동기화부(210)에 의해 단말측 키관리 DB(112)와 서버측 키관리 DB(240)의 동기화가 이루어지고, 동기화 결과 관리 정책에 변동이 있었다면, 위반사항 검출부(126)에서 위반사항을 검출하게 된다. 이러한 절차에 의해, 네트워크 연결상태가 오프라인일 경우에도 파일 및 키의 사용이 관리 정책이 위반되는 경우를 검출할 수 있다.However, even if the management policy of the management server 200 is changed while the network connection state is offline, the user terminal device 100 is not reflected, and thus, the file and key are used in the state in which the changed management policy is not reflected. Therefore, the recording unit 125 records the usage history of the key and file in the usage history DB 114 while the network connection state is offline. As a result, when the network connection state is switched from offline to online, the terminal-side key management DB 112 and the server-side key management DB 240 are synchronized by the terminal-side synchronization unit 124 and the server-side synchronization unit 210. Is made, and if there is a change in the synchronization result management policy, the violation detection unit 126 detects the violation. By this procedure, even when the network connection is offline, the use of files and keys can detect when the management policy is violated.

이상 설명한 실시예들에서는 주로 암호화하는 방법을 설명하였지만, 본원 발명은 복호화하는 방법에도 적용됨은 물론이다.Although the above-described embodiments mainly describe a method of encrypting, the present invention is of course applied to a method of decrypting.

본 발명의 실시예에 따르면, 가상머신 상에서 동작하는 파일은 그 가상머신이 설치되는 사용자 단말장치의 위치에 기반하여 동작하도록 암호화되어 저장될 수 있다.According to an embodiment of the present invention, the file operating on the virtual machine may be encrypted and stored to operate based on the location of the user terminal in which the virtual machine is installed.

일 예를 들면, 사용자 단말장치의 가상머신 상에서 동작하는 파일은 관리 서버(200)에서 암호화되어 다운로드 받을 것일 수 있다. 이러한 경우, 관리 서버(200)는 파일을 소정의 키를 사용하여 암호화하고, 이렇게 암호화한 파일을 사용자 단말장치로 전송한다. 전송된 암호화된 파일은 상술한 바와 같은 복호화 과정을 거쳐서 사용될 수 있다. 소정의 키는 상술한 '대칭키'일 수 있다. 즉, 사용자 공개키와 지역 비밀키를 소정의 암호화 알고리즘에 입력하여 생성되는 '키'일 수 있다. For example, the file operating on the virtual machine of the user terminal device may be encrypted and downloaded from the management server 200. In this case, the management server 200 encrypts the file using a predetermined key and transmits the encrypted file to the user terminal device. The transmitted encrypted file can be used after the decryption process as described above. The predetermined key may be the 'symmetric key' described above. That is, it may be a 'key' generated by inputting a user public key and a local secret key into a predetermined encryption algorithm.

상기와 같이 본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상의 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다. 그러므로, 본 발명의 범위는 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.While the present invention has been described with reference to the particular embodiments and drawings, it is to be understood that the invention is not limited to the disclosed embodiments, but, on the contrary, is intended to cover various modifications and equivalent arrangements included within the spirit and scope of the appended claims. This is possible. Therefore, the scope of the present invention should not be limited to the described embodiments, but should be determined by the equivalents of the claims, as well as the claims.

100 : 사용자 단말장치 110 : 하드웨어 플랫폼
111 : 위치 판별부 112 : 단말측 키관리 DB
113 : 단말측 위치정보 DB 114 : 사용내역 DB
120 : 클라이언트 하이퍼바이저부 121 : 가상머신 관리부
122 : 네트워크 감지부 123 : 복호화부
124 : 단말측 동기화부 125 : 기록부
126 : 위반사항 검출부 130 : 사용자 모듈
131 : 사용자 가상머신 132 : 사용자 운영체제부
133 : 사용자 어플리케이션부
100: user terminal 110: hardware platform
111: position determination unit 112: terminal side key management DB
113: terminal location information DB 114: use history DB
120: client hypervisor unit 121: virtual machine management unit
122: network detection unit 123: decryption unit
124: terminal side synchronization unit 125: recording unit
126: violation detection unit 130: user module
131: user virtual machine 132: user operating system unit
133: user application unit

Claims (29)

가상머신을 가진 사용자 단말장치에 있어서,
위치별로 대응된 키들을 저장하는 단말측 키관리 데이터베이스;
상기 키관리 데이터베이스에 저장된 키들 중에서, 상기 사용자 단말장치의 위치에 대응하는 키를 사용하여, 상기 가상머신상에서 동작하는 적어도 하나의 암호화된 파일을 복호화하는 복호화부;를 포함하며,
상기 단말측 키관리 데이터베이스에 저장된 위치별로 대응된 키들은 각각 암호화된 키이며,
상기 복호화부는,
상기 단말측 키관리 데이터베이스에 저장된 위치별로 대응된 암호화된 키들중에서, 상기 사용자 단말장치의 위치에 대응된 암호화된 키를 추출하여 상기 파일을 복호화하며, 그리고
상기 복호화부는, 상기 단말측 키관리 데이터베이스에 상기 사용자 단말장치의 위치에 대응하는 암호화된 키가 존재하지 않으면, 상기 사용자 단말장치와 네트워크를 통해 연결된 관리 서버로 키 전송을 요청하고, 상기 요청에 대하여 상기 관리 서버로부터 수신되는 암호화된 키를 이용하여 상기 파일을 복호화하는 것을 특징으로 하는 사용자 단말장치.
In the user terminal device having a virtual machine,
A terminal-side key management database for storing keys corresponding to positions;
Among the keys stored in the key management database, using a key corresponding to the location of the user terminal device, a decryption unit for decrypting at least one encrypted file operating on the virtual machine;
Keys corresponding to locations stored in the terminal-side key management database are encrypted keys, respectively.
Wherein the decoding unit comprises:
Extracting an encrypted key corresponding to a location of the user terminal device from among encrypted keys corresponding to each location stored in the terminal-side key management database, and decrypting the file; and
If there is no encrypted key corresponding to the location of the user terminal device in the terminal-side key management database, the decryption unit requests a key transmission to a management server connected to the user terminal device through a network. And decrypting the file by using an encrypted key received from the management server.
제 1 항에 있어서,
상기 복호화부는, 상기 사용자 단말장치의 위치의 변동이 발생하면, 상기 변동된 위치에 대응하는 키를 사용하여 상기 파일을 복호화하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 1,
And the decryption unit decrypts the file using a key corresponding to the changed position when the position of the user terminal apparatus changes.
삭제delete 제 1 항에 있어서,
상기 암호화된 키들은, 각각, 상기 사용자 단말장치의 위치에 대응된 지역 비밀키 및 사용자 공개키에 의해 암호화된 것임을 특징으로 하는 사용자 단말장치.
The method of claim 1,
The encrypted keys are each encrypted by a local secret key and a user public key corresponding to the location of the user terminal device.
제 1 항에 있어서,
상기 복호화부는 상기 추출한 암호화된 키를 사용자 비밀키 및 지역 공개키를 이용하여 복호화하고, 이렇게 복호화한 키를 이용하여 상기 파일을 복호화하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 1,
And the decryption unit decrypts the extracted encrypted key using a user secret key and a local public key, and decrypts the file using the decrypted key.
삭제delete 제 1 항에 있어서,
상기 복호화부는, 상기 관리 서버로부터 수신한 상기 암호화된 키를 상기 사용자 단말장치의 위치에 대응하는 적어도 하나의 키를 이용하여 복호화하고, 상기 복호화된 키로 상기 파일을 복호화하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 1,
The decryption unit decrypts the encrypted key received from the management server using at least one key corresponding to the location of the user terminal device, and decrypts the file with the decrypted key. .
제 7 항에 있어서,
상기 적어도 하나의 키는,
사용자 비밀키 및 지역 공개키를 포함하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 7, wherein
The at least one key is
And a user secret key and a local public key.
제 1 항에 있어서,
상기 관리서버와 상기 사용자 단말장치간의 네트워크 연결상태를 감지하는 네트워크 감지부; 및
상기 네트워크 연결상태가 온라인이면, 상기 네트워크와 연결된 관리 서버로 상기 사용자 단말장치의 위치 추적을 요청하고, 상기 관리 서버로부터 상기 요청된 위치정보를 수신하는 가상머신 관리부;를 더 포함하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 1,
A network detector detecting a network connection state between the management server and the user terminal device; And
If the network connection state is online, the virtual machine management unit for requesting the location tracking of the user terminal device to the management server connected to the network, and receives the requested location information from the management server; User terminal device.
제 9 항에 있어서,
상기 관리 서버의 서버측 키관리 데이터베이스와 단말측 키관리 데이터베이스를 동기화하는 단말측 동기화부;를 더 포함하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 9,
And a terminal side synchronization unit for synchronizing the server side key management database and the terminal side key management database of the management server.
제 10 항에 있어서,
상기 파일의 사용내역을 사용내역 데이터베이스에 기록하는 기록부;를 더 포함하는 것을 특징으로 하는 사용자 단말장치.
11. The method of claim 10,
And a recording unit for recording the usage history of the file in a usage history database.
제 11 항에 있어서,
상기 사용내역 데이터베이스에 기록된 사용내역 중 상기 단말측 키관리 데이터베이스에 저장된 관리 정책의 위반사항을 검출하는 위반사항 검출부;를 더 포함하는 것을 특징으로 하는 사용자 단말장치.
The method of claim 11,
And a violation detection unit detecting a violation of a management policy stored in the terminal-side key management database among the usage records recorded in the usage history database.
제 12 항에 있어서,
상기 위반사항 검출부는, 상기 네트워크 연결상태가 오프라인인 동안에, 상기 사용자 단말장치에서 사용된 파일의 사용내역에서 위반사항을 검출하고, 검출한 위반사항을 상기 관리 서버로 전송하는 것을 특징으로 하는 사용자 단말장치.
13. The method of claim 12,
The violation detection unit detects a violation in the usage history of a file used in the user terminal device while the network connection state is offline, and transmits the detected violation to the management server. Device.
가상머신 상에서 동작하는 파일을 복호화하는 방법에 있어서,
키관리 데이터베이스가, 위치별로 대응된 키들을 저장하는 단계;
복호화부가, 상기 위치별로 대응된 키들 중에서, 상기 가상머신이 설치된 단말장치의 위치에 대응된 키를 추출하는 단계; 및
상기 복호화부가, 상기 추출하는 단계에서 추출한 키를 사용하여 상기 가상머신 상에서 동작하는 암호화된 파일을 복호화하는 단계;를 포함하며,
상기 키관리 데이터베이스는 상기 가상머신이 설치된 단말장치에 포함된 것이며,
상기 단말장치의 위치에 대응된 키가 상기 키관리 데이터베이스에 없는 경우에, 상기 단말장치와 네트워크를 통해서 연결된 관리 서버로부터 상기 단말장치의 위치에 대응된 키를 수신받는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
In the method for decrypting a file running on a virtual machine,
Storing, by the key management database, keys corresponding to locations;
Extracting, by the decryption unit, a key corresponding to a location of a terminal apparatus in which the virtual machine is installed, from among keys corresponding to each location; And
And decrypting, by the decryption unit, an encrypted file operating on the virtual machine using the key extracted in the extracting step.
The key management database is included in the terminal device on which the virtual machine is installed,
If the key corresponding to the location of the terminal device does not exist in the key management database, a file corresponding to the location of the terminal device is received from a management server connected through the network with the terminal device. Decryption method.
제 14 항에 있어서,
위치 판별부가, 상기 가상머신이 설치된 단말장치의 물리적 위치를 감지하는 단계; 및
단말측 위치정보 DB가, 물리적 위치와 논리적 지역의 상호 매핑 정보를 저장하는 단계;를 더 포함하며,
상기 키관리 데이터베이스에 저장된 키들은 논리적 지역에 대응되어 저장되어 있으며,
상기 추출하는 단계는, 상기 상호 매핑 정보로부터 상기 단말장치의 물리적 위치가 속하는 논리적 지역을 추출하고, 추출한 논리적 지역에 대응된 키를 추출하는 것을 특징으로 하는 특징으로 하는 가상머신 상의 파일 복호화 방법.
15. The method of claim 14,
Detecting, by a location determining unit, a physical location of a terminal device in which the virtual machine is installed; And
And storing, by the terminal-side location information DB, mutual mapping information of a physical location and a logical area.
Keys stored in the key management database are stored corresponding to the logical region,
The extracting may include extracting a logical region to which the physical location of the terminal device belongs from the cross mapping information, and extracting a key corresponding to the extracted logical region.
제 15 항에 있어서,
상기 단말장치의 위치의 변동이 발생하면 변동된 위치에 대응하는 키를 추출하는 단계;를 더 포함하며,
상기 복호화부가, 변동된 위치에 대응하는 키를 사용하여 상기 파일을 복호화하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
The method of claim 15,
Extracting a key corresponding to the changed position when a change of the position of the terminal occurs;
And the decryption unit decrypts the file using a key corresponding to the changed position.
제 14 항에 있어서,
상기 키관리 데이터베이스에 저장된 위치별로 대응된 키들은 각각 암호화된 키이며,
상기 복호화하는 단계는 상기 키관리 데이터베이스에 저장된 위치별로 대응된 키들 중에서 상기 단말장치의 위치에 대응된 암호화된 키를 추출하고, 추출한 암호화된 키를 이용하여 상기 파일을 복호화하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
15. The method of claim 14,
Keys corresponding to locations stored in the key management database are encrypted keys, respectively.
The decrypting may include extracting an encrypted key corresponding to a location of the terminal device from among keys corresponding to each location stored in the key management database, and decrypting the file using the extracted encrypted key. File decryption on the fly.
제 17 항에 있어서,
상기 암호화된 키는, 상기 단말장치의 위치에 대응된 지역 비밀키를 포함한 적어도 하나의 키에 의해 암호화된 것임을 특징으로 하는 가상머신 상의 파일 복호화 방법.
The method of claim 17,
And the encrypted key is encrypted by at least one key including a local secret key corresponding to the location of the terminal device.
제 17 항에 있어서,
상기 복호화하는 단계는
상기 추출한 암호화된 키를 지역 공개키를 사용하여 복호화하고, 이렇게 복호화한 키를 이용하여 상기 파일을 복호화하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
The method of claim 17,
The decoding step
And decrypting the extracted encrypted key by using a local public key and decrypting the file by using the decrypted key.
제 17 항에 있어서,
상기 암호화된 키는, 적어도, 상기 단말장치의 위치에 대응된 지역 비밀키와 사용자 공개키에 의해 암호화된 것이고,
상기 복호화하는 단계는
상기 추출한 암호화된 키를 지역 공개키와 사용자 비밀키를 사용하여 복호화하고, 이렇게 복호화한 키를 이용하여 상기 파일을 복호화하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
The method of claim 17,
The encrypted key is encrypted by at least the local secret key and the user public key corresponding to the location of the terminal device,
The decoding step
And decrypting the extracted encrypted key by using a local public key and a user private key, and decrypting the file by using the decrypted key.
삭제delete 제 14 항에 있어서,
상기 관리서버로부터 수신받는 키는 적어도 하나의 키에 의해 암호화되어 있는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
15. The method of claim 14,
And a key received from the management server is encrypted by at least one key.
제 22 항에 있어서,
상기 적어도 하나의 키는 사용자 공개키 및 지역 비밀키를 포함하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
23. The method of claim 22,
And said at least one key comprises a user public key and a local secret key.
제 14 항에 있어서,
상기 파일의 사용내역을 사용내역 데이터베이스에 기록하는 단계;를 더 포함하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
15. The method of claim 14,
And recording the usage history of the file in a usage history database.
제 14 항에 있어서,
상기 키관리 데이터베이스는 상기 가상머신이 설치된 단말장치에 포함된 것이며,
상기 단말장치의 위치에 대응된 키가 상기 키관리 데이터베이스에 없는 경우에, 상기 단말장치와 네트워크를 통해서 연결된 관리 서버로부터 상기 단말장치의 위치에 대응된 암호화된 키를 수신받는 단계를 더 포함하며,
상기 복호화하는 단계는 상기 관리 서버로부터 수신받은 암호화된 키를 적어도 하나의 키를 이용하여 복호화하고, 복호화한 키를 이용하여 상기 가상머신 상에서 동작하는 파일을 복호화하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
15. The method of claim 14,
The key management database is included in the terminal device on which the virtual machine is installed,
If the key corresponding to the location of the terminal device is not present in the key management database, receiving an encrypted key corresponding to the location of the terminal device from a management server connected through the network with the terminal device;
The decrypting may include decrypting an encrypted key received from the management server using at least one key, and decrypting a file operating on the virtual machine using the decrypted key. Way.
제 25 항에 있어서,
상기 적어도 하나의 키는 사용자 비밀키 및 지역 공개키를 포함하는 것을 특징으로 하는 가상머신 상의 파일 복호화 방법.
The method of claim 25,
And said at least one key comprises a user private key and a local public key.
사용자 단말장치로서, 위치별로 대응된 키들을 저장하는 단말측 키관리 데이터베이스, 이 키관리 데이터베이스에 저장된 키들 중에서, 상기 사용자 단말장치의 위치에 대응하는 키를 사용하여, 상기 사용자 단말장치에서 동작하는 적어도 하나의 암호화된 파일을 복호화하는 복호화부를 포함하는 상기 사용자 단말장치; 및
위치에 대응된 키를 보유하며, 상기 사용자 단말장치로부터 요청이 있는 경우에 상기 보유한 위치에 대응된 키를 암호화하여 상기 사용자 단말장치로 전송하는 관리 서버; 를 포함하는 것을 특징으로 하는 사용자 단말장치를 포함하는 가상머신 상의 파일 복호화 시스템.
A user terminal device, comprising: a terminal-side key management database for storing keys corresponding to each location, among keys stored in the key management database, using at least one of the keys corresponding to the location of the user terminal device and operating at the user terminal device; The user terminal device including a decryption unit for decrypting one encrypted file; And
A management server which holds a key corresponding to a location and encrypts the key corresponding to the reserved location when the request is received from the user terminal device; File decryption system on a virtual machine comprising a user terminal device comprising a.
제 27 항에 있어서,
상기 사용자 단말장치는 상기 사용자 단말장치의 위치에 대응되는 키가 자신에게 없는 경우 상기 관리 서버로 키 전송을 요청하고,
상기 관리 서버는, 상기 사용자 단말장치의 위치에 대응되는 키를 지역 비밀키 및 사용자 공개키로 암호화하여 상기 사용자 단말장치로 전송하는 것을 특징으로 하는 가상머신 상의 파일 복호화 시스템.
The method of claim 27,
If the user terminal device does not have a key corresponding to the location of the user terminal device requests a key transmission to the management server,
And the management server encrypts a key corresponding to the location of the user terminal device using a local secret key and a user public key and transmits the encrypted key to the user terminal device.
제27항에 있어서,
상기 사용자 단말장치는, 상기 사용자 단말장치와 상기 관리 서버를 연결하는 네트워크의 연결 상태를 감지하는 네트워크 감지부와, 상기 네트워크의 연결 상태가 오프라인에서 온라인으로 전환되었을 때 오프라인 중에 사용된 파일의 사용내역을 검출하는 위반사항 검출부를 더 포함하는 것을 특징으로 하는 가상머신 상의 파일 복호화 시스템.
28. The method of claim 27,
The user terminal device may include a network detector configured to detect a connection state of a network connecting the user terminal device and the management server, and a usage history of a file used while offline when the connection state of the network is changed from offline to online. File decryption system on a virtual machine, characterized in that it further comprises a violation detection unit for detecting.
KR1020100073492A 2010-07-29 2010-07-29 User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device KR101225903B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100073492A KR101225903B1 (en) 2010-07-29 2010-07-29 User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100073492A KR101225903B1 (en) 2010-07-29 2010-07-29 User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device

Publications (2)

Publication Number Publication Date
KR20120011961A KR20120011961A (en) 2012-02-09
KR101225903B1 true KR101225903B1 (en) 2013-01-24

Family

ID=45835996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100073492A KR101225903B1 (en) 2010-07-29 2010-07-29 User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device

Country Status (1)

Country Link
KR (1) KR101225903B1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10541980B2 (en) * 2013-04-18 2020-01-21 Facecon Co., Ltd. File security method and apparatus for same
CN107689943B (en) * 2016-08-04 2021-02-05 深信服科技股份有限公司 Data encryption method, user terminal, server and system
CN116436604A (en) * 2023-06-08 2023-07-14 成都房联云码科技有限公司 Key management system based on digital real estate management type cluster application

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080034810A (en) * 2006-10-17 2008-04-22 인텔 코오퍼레이션 Method, apparatus and system for enabling a secure location-aware platform
KR20100054685A (en) * 2008-11-14 2010-05-25 아주대학교산학협력단 Method for data encryption and decryption using location information

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20080034810A (en) * 2006-10-17 2008-04-22 인텔 코오퍼레이션 Method, apparatus and system for enabling a secure location-aware platform
KR20100054685A (en) * 2008-11-14 2010-05-25 아주대학교산학협력단 Method for data encryption and decryption using location information

Also Published As

Publication number Publication date
KR20120011961A (en) 2012-02-09

Similar Documents

Publication Publication Date Title
JP6414863B2 (en) Encryption and decryption method and apparatus and system in virtualization system
US9088557B2 (en) Encryption key management program, data management system
CN100380274C (en) Method and system for backup and restore of a context encryption key
CN108737394A (en) Off-line verification system, barcode scanning equipment and server
EP2947811A1 (en) Method, server, host and system for protecting data security
CN104104692A (en) Virtual machine encryption method, decryption method and encryption-decryption control system
JP2007028502A (en) Storage apparatus
WO2018218953A1 (en) Data backup method and device, storage medium and server
JP6371184B2 (en) Data management system, data management method, and client terminal
US11693591B2 (en) Multi cloud data framework for secure data access and portability
JP6805654B2 (en) Software update system
CN111062045B (en) Information encryption and decryption method and device, electronic equipment and storage medium
Abolghasemi et al. Using location based encryption to improve the security of data access in cloud computing
CN103020543B (en) A kind of virtual disk reflection encryption handling system and method
KR101225903B1 (en) User terminal device based on client hypervisor and method for encoding/decoding file on virtual machine, and system comprising the device
CN110321757B (en) Cross-end biological feature recognition system, biological feature management system, method and device
Zhang et al. TEO: Ephemeral ownership for iot devices to provide granular data control
KR101251187B1 (en) Server-based computing system and method of security management the same
KR20160040399A (en) Personal Information Management System and Personal Information Management Method
WO2017165948A1 (en) Data storage and access platform with jurisdictional control
JP4995667B2 (en) Information processing apparatus, server apparatus, information processing program, and method
CN113282950B (en) Operation and maintenance method, device, equipment and system of encryption machine
CN110011807A (en) A kind of key message maintaining method and system
JP2011227673A (en) File management system, storage server, client, file management method and program
CN112995109B (en) Data encryption system, data encryption method, data processing device and electronic equipment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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: 20151228

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20171213

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20191226

Year of fee payment: 8