KR102368208B1 - File leakage prevention based on security file system and commonly used file access interface - Google Patents

File leakage prevention based on security file system and commonly used file access interface Download PDF

Info

Publication number
KR102368208B1
KR102368208B1 KR1020170151709A KR20170151709A KR102368208B1 KR 102368208 B1 KR102368208 B1 KR 102368208B1 KR 1020170151709 A KR1020170151709 A KR 1020170151709A KR 20170151709 A KR20170151709 A KR 20170151709A KR 102368208 B1 KR102368208 B1 KR 102368208B1
Authority
KR
South Korea
Prior art keywords
file
target file
storage
type
program
Prior art date
Application number
KR1020170151709A
Other languages
Korean (ko)
Other versions
KR20190054763A (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 KR1020170151709A priority Critical patent/KR102368208B1/en
Publication of KR20190054763A publication Critical patent/KR20190054763A/en
Application granted granted Critical
Publication of KR102368208B1 publication Critical patent/KR102368208B1/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/629Protecting access to data via a platform, e.g. using keys or access control rules to features or functions of an application

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bioethics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

본 명세서 시스템 내의 응용 프로그램들에 의해 공통으로 호출될 수 있는 API(Application Programming Interface) 형태의 파일 입출력 인터페이스를 통해 상기 응용 프로그램들 중 제1 프로그램으로부터 대상 파일에 대한 저장 요청을 수신하는 동작; 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작; 상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및 상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 포함하는 파일 유출 방지 방법을 개시한다.Receiving a storage request for a target file from a first program among the application programs through an API (Application Programming Interface) type file input/output interface that can be commonly called by application programs in the system of the present specification; determining whether the type of the target file is included in a list of allowed types in a preset policy; encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and storing the encrypted target file in a storage connected to a network.

Description

보안 기능을 지원하는 파일 시스템 및 공통적 파일 액세스 인터페이스에 기초한 파일 유출 방지{FILE LEAKAGE PREVENTION BASED ON SECURITY FILE SYSTEM AND COMMONLY USED FILE ACCESS INTERFACE}File system that supports security features and file leakage prevention based on common file access interface

본 명세서는 보안 기능을 지원하는 파일 시스템 및 공통적 파일 액세스 인터페이스에 기초한 파일 유출 방지에 관한 것이다.This specification relates to a file system supporting a security function and file leakage prevention based on a common file access interface.

컴퓨터 등 전자 장치에는 많은 데이터가 파일 형태로 취급되며, 파일들은 저장 매체에 저장 및/또는 보관되고 다시 저장 매체로부터 판독된다. 여러 사람이 접근 가능한 파일에 대하여 보안 상의 이유로 접근 통제 등의 보호 조치가 적용될 수 있다. 다만, 회사, 정부기관, 비영리 기관 등 다양한 조직에서 이러한 파일에 대한 보호 조치에도 불구하고 내부자의 관여로 인하여 파일 유출이 발생하는 경우가 빈번하다. 파일 유출은 개인정보, 제품 설계도 등 많은 기술자료, 공공시설, 산업시설, 군 기밀 등 기밀자료 등 다양한 데이터에 대하여 컴퓨터 파일의 형태로 발생할 수 있다.In electronic devices such as computers, a lot of data is handled in the form of files, and the files are stored and/or stored in a storage medium and read from the storage medium again. Protective measures such as access control may be applied to files that can be accessed by multiple people for security reasons. However, despite the protection measures for these files in various organizations such as companies, government agencies, and non-profit organizations, file leakage occurs frequently due to the involvement of insiders. File leakage can occur in the form of computer files for various data such as personal information, many technical data such as product blueprints, and confidential data such as public facilities, industrial facilities, and military secrets.

파일 유출을 방지하는 기술로서 보안 기능을 탑재하도록 설계된 특수 저장 매체(예, USB 메모리)에 파일 저장을 강제하는 방식, 네트워크의 실시간 감시를 통해 특정 형식을 가진 데이터의 외부 유출을 방지하는 방식, 작업용 임시 파일을 암호화한 후 암호화된 파일을 안전하게 저장하는 방식 등이 제시되었다.As a technology to prevent file leakage, it is a method of forcing file storage in a special storage medium (eg USB memory) designed to be equipped with a security function, a method of preventing the leakage of data in a specific format through real-time monitoring of the network, for work A method of safely storing encrypted files after encrypting temporary files has been proposed.

본 명세서는 전자 장치에 설치되는 응용 프로그램을 수정하지 않고 파일 유출 방지 기능을 활용할 수 있도록, 시스템 또는 프레임워크의 API로 존재하여 응용프로그램이 공통적으로 호출될 수 있는 API 및 그 처리 모듈을 제시한다. 본 명세서는 응용 프로그램의 종류 및 대상 파일의 종류에 따라 네트워크 상에 존재하는 저장소에 안전하게 저장될 수 있도록 파일 시스템 형태로 구현될 수 있는 파일 유출 방지 기술을 제시한다.The present specification provides an API and a processing module thereof, which exist as an API of a system or framework and which can be commonly called by an application program, so as to utilize a file leakage prevention function without modifying an application program installed in an electronic device. This specification proposes a file leakage prevention technology that can be implemented in the form of a file system so that it can be safely stored in a storage existing on a network according to the type of the application program and the type of the target file.

본 명세서는 한 실시 예에 따른 컴퓨터의 파일 유출 방지 방법을 제시한다. 상기 파일 유출 방지 방법은 시스템 내의 응용 프로그램들에 의해 공통으로 호출될 수 있는 API(Application Programming Interface) 형태의 파일 입출력 인터페이스를 통해 상기 응용 프로그램들 중 제1 프로그램으로부터 대상 파일에 대한 저장 요청을 수신하는 동작; 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작; 상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및 상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 포함하도록 구성될 수 있다.The present specification provides a method for preventing file leakage of a computer according to an embodiment. The file leakage prevention method includes receiving a storage request for a target file from a first program among the application programs through an API (Application Programming Interface) type file input/output interface that can be commonly called by application programs in the system. movement; determining whether the type of the target file is included in a list of allowed types in a preset policy; encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and storing the encrypted target file in a network-connected storage.

한편, 본 명세서는 다른 실시 예에 따른 컴퓨터의 파일 유출 방지 방법을 제시한다. 상기 파일 유출 방지 방법은 시스템 내의 응용프로그램들에 의해 공통으로 호출될 수 있는 API(Application Programming Interface) 형태의 파일 입출력 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 상기 대상 파일에 대한 읽기 요청을 수신하는 동작, 상기 대상 파일은 암호문 형태로 네트워크로 연결된 저장소에 저장되어 있고; 상기 응용 프로그램이 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되고, 상기 응용프로그램이 상기 대상 파일의 형태(type)과 연관되어 있는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및 상기 응용 프로그램이 상기 정책 내의 상기 허용된 프로그램 목록에 포함되어 있지 않은 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작을 포함하도록 구성될 수 있다.Meanwhile, the present specification provides a method for preventing file leakage of a computer according to another embodiment. The file leakage prevention method includes receiving a read request for the target file from any one of the application programs through an API (Application Programming Interface) type file input/output interface that can be commonly called by application programs in the system. operation, the target file is stored in a network-connected storage in the form of a ciphertext; When the application program is included in the list of allowed programs in a preset policy and the application program is associated with the type of the target file, the encrypted target file is decrypted in plaintext form, and the transmitting the target file in response to the read request; and transmitting the target file in cipher text form in response to the read request when the application program is not included in the list of allowed programs in the policy.

한편, 본 명세서는 한 실시 예에 따른 파일 유출 방지 장치를 제시한다. 상기 파일 유출 방지 장치는 응용 프로그램 및 파일 시스템 모듈을 저장하는 메모리, 상기 파일 시스템 모듈은 상기 응용 프로그램의에 의해 공통으로 호출될 수 있는 API 형태의 파일 입출력 인터페이스들을 통해 수신되는 파일 저장 요청 및 읽기 요청을 처리하는 동작을 실행하는 명령어를 포함하도록 구성되고; 네트워크의 저장소와 연결을 수립하고, 상기 파일 시스템 모듈에 의해 처리되는 대상 파일을 상기 저장소에 송수신하는 네트워크 모듈; 및 상기 메모리 및 상기 네트워크 모듈과 전기적으로 연결되어, 상기 대상 파일에 대하여 상기 응용 프로그램의 상기 저장 요청을 처리하는 동작 및 상기 읽기 요청을 처리하는 동작을 수행하는 프로세서를 포함하도록 구성될 수 있다. 상기 프로세서는 상기 저장 요청을 처리하기 위하여: 상기 파일 입출력 인터페이스들 중 제1 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 대상 파일에 대한 저장 요청을 수신하는 동작; 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작; 상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및 상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 수행할 수 있다. 상기 프로세서는 상기 읽기 요청을 처리하기 위하여: 상기 파일 입출력 인터페이스들 중 제2 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 상기 대상 파일에 대한 읽기 요청을 수신하는 동작, 상기 대상 파일은 암호문 형태로 네트워크로 연결된 저장소에 저장되어 있고; 상기 응용 프로그램이 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되고, 상기 응용프로그램이 상기 대상 파일의 형태(type)과 연관되어 있는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및 상기 응용 프로그램이 상기 정책 내의 상기 허용된 프로그램 목록에 포함되어 있지 않은 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작을 수행할 수 있다.Meanwhile, the present specification provides an apparatus for preventing file leakage according to an embodiment. The file leakage prevention device includes a memory for storing an application program and a file system module, and the file system module receives a file storage request and a read request received through file input/output interfaces in the form of an API that can be commonly called by the application program. configured to include instructions for executing an operation to process; a network module that establishes a connection with a storage of a network and transmits and receives a target file processed by the file system module to the storage; and a processor electrically connected to the memory and the network module to process the storage request of the application program and process the read request for the target file. The processor may process the storage request by: receiving a storage request for the target file from any one of the application programs through a first interface among the file input/output interfaces; determining whether the type of the target file is included in a list of allowed types in a preset policy; encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and storing the encrypted target file in a network-connected storage. The processor is configured to process the read request: receiving a read request for the target file from any one of the application programs through a second interface among the file input/output interfaces, wherein the target file is in the form of a network is stored in a connected storage; When the application program is included in the list of allowed programs in a preset policy and the application program is associated with the type of the target file, the encrypted target file is decrypted in plaintext form, and the transmitting the target file in response to the read request; and when the application program is not included in the list of allowed programs in the policy, transmitting the target file in the form of a cipher text in response to the read request.

한편, 본 명세서는 한 실시 예에 따른 컴퓨터에서 동작 가능하고, 시스템 내의 응용 프로그램들에 의해 공통으로 호출될 수 있는 API(Application Programming Interface) 형태의 파일 입출력 인터페이스들을 통해 수신되는 대상 파일에 대한 저장 요청 및 읽기 요청을 처리하는 동작을 실행하도록 기록 매체에 저장 가능한 컴퓨터 프로그램을 제시한다. Meanwhile, the present specification provides a storage request for a target file that is operable in a computer according to an embodiment and is received through file input/output interfaces in the form of an API (Application Programming Interface) that can be commonly called by application programs in the system. and a computer program storable in a recording medium to execute an operation for processing a read request.

상기 저장 요청을 처리하는 동작은: 상기 파일 입출력 인터페이스들 중 제1 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 대상 파일에 대한 저장 요청을 수신하는 동작; 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작; 상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및 상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 포함할 수 있다. 상기 읽기 요청을 처리하는 동작은: 상기 파일 입출력 인터페이스들 중 제2 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 상기 대상 파일에 대한 읽기 요청을 수신하는 동작, 상기 대상 파일은 암호문 형태로 네트워크로 연결된 저장소에 저장되어 있고; 상기 응용 프로그램이 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되고, 상기 응용프로그램이 상기 대상 파일의 형태(type)과 연관되어 있는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및 상기 응용 프로그램이 상기 정책 내의 상기 허용된 프로그램 목록에 포함되어 있지 않은 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작을 포함할 수 있다.The processing of the storage request may include: receiving a storage request for the target file from any one of the application programs through a first interface among the file input/output interfaces; determining whether the type of the target file is included in a list of allowed types in a preset policy; encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and storing the encrypted target file in a network-connected storage. The operation of processing the read request includes: receiving a read request for the target file from any one of the application programs through a second interface among the file input/output interfaces; stored in the repository; When the application program is included in the list of allowed programs in a preset policy and the application program is associated with the type of the target file, the encrypted target file is decrypted in plaintext form, and the transmitting the target file in response to the read request; and when the application program is not included in the list of allowed programs in the policy, transmitting the target file in the form of a cipher text in response to the read request.

본 명세서에 개시된 파일 유출 방지 기술은 응용 프로그램 및 파일의 종류에 따라 암호화 및 분산 저장 기능을 이용함으로써 정책상 허가되지 않은 사용자에게 대상 파일이 유출되지 않도록 한다. 본 명세서의 파일 유출 방지 기술은 공통적으로 사용되는 인터페이스를 이용하여 구현됨으로써 응용 프로그램 제공자가 별도의 수정없이 종래와 마찬가지로 파일 입출력 기능을 이용할 수 있도록 한다. 또한, 상기 파일 유출 방지 기술은 별도의 매체 제어를 위한 보안 프로그램과 비교하여 사용자 관점에서 별도의 보안 프로그램을 설치할 필요가 없도록 한다.The file leak prevention technology disclosed in this specification prevents the target file from being leaked to users who are not authorized by policy by using encryption and distributed storage functions according to the types of applications and files. The file leakage prevention technology of the present specification is implemented using a commonly used interface, so that the application program provider can use the file input/output function as in the prior art without separate modification. In addition, the file leakage prevention technology eliminates the need to install a separate security program from the user's point of view as compared to a separate media control security program.

본 명세서에 개시된 파일 유출 방지 기술은 동일한 대상 파일의 경우에도 등록된 응용 프로그램은 접근을 허용하되, 등록되지 아니한 응용 프로그램에 의한 복제, 편집 등의 작업을 방지할 수 있도록 한다. 상기 파일 유출 방지 기술은 사용자 컴퓨터의 운영 체제가 달라도 파일을 공유할 수 있도록 한다.The file leakage prevention technology disclosed in this specification allows access to a registered application program even in the case of the same target file, but prevents operations such as duplication and editing by unregistered application programs. The file leakage prevention technology enables file sharing even if the operating system of the user's computer is different.

도 1은 예시적인 전자 시스템을 나타낸 도면이다.
도 2는 본 명세서의 기술이 적용될 수 있는 전자 장치의 구현 예를 도시한다.
도 3은 본 명세서에 개시된 기술이 적용될 수 있는 전자 장치의 예시적인 프로그램 모듈의 블록도이다.
도 4는 본 명세서에 개시된 기술에 따른 파일 저장 요청에 대한 처리 동작을 수행하는 예시적인 흐름도이다.
도 5는 본 명세서에 개시된 기술에 따른 파일 읽기 요청에 대한 처리 동작을 수행하는 예시적인 흐름도이다.
도 6은 본 명세서에 개시된 기술에 따른 파일 저장 요청 및 파일 읽기 요청에 대한 처리 동작을 수행하는 예시적인 흐름도이다.
도 7은 응용 프로그램에 의해 호출되는 인터페이스를 도시한다.
도 8은 본 명세서에 개시된 기술이 적용될 수 있는 전자 장치에 대한 블록도이다.
1 is a diagram illustrating an exemplary electronic system.
2 illustrates an implementation example of an electronic device to which the technology of the present specification can be applied.
3 is a block diagram of an exemplary program module of an electronic device to which the technology disclosed herein can be applied.
4 is an exemplary flowchart of performing a processing operation for a file storage request according to the technology disclosed herein.
5 is an exemplary flowchart of performing a processing operation for a file read request according to the technology disclosed herein.
6 is an exemplary flowchart of performing processing operations for a file storage request and a file read request according to the technology disclosed herein.
7 shows an interface called by an application program.
8 is a block diagram of an electronic device to which the technology disclosed herein can be applied.

본 명세서에 개시된 기술은 파일유출 방지 장치에 적용될 수 있다. 그러나 본 명세서에 개시된 기술은 이에 한정되지 않고, 상기 기술의 기술적 사상이 적용될 수 있는 모든 전자 장치 및 방법에도 적용될 수 있다.The technology disclosed herein may be applied to a file leakage prevention device. However, the technology disclosed in the present specification is not limited thereto, and may be applied to all electronic devices and methods to which the technical idea of the technology may be applied.

본 명세서에서 사용되는 기술적 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 명세서에 개시된 기술의 사상을 한정하려는 의도가 아님을 유의해야 한다. 또한, 본 명세서에서 사용되는 기술적 용어는 본 명세서에서 특별히 다른 의미로 정의되지 않는 한, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 의미로 해석되어야 하며, 과도하게 포괄적인 의미로 해석되거나, 과도하게 축소된 의미로 해석되지 않아야 한다. 또한, 본 명세서에서 사용되는 기술적인 용어가 본 명세서에 개시된 기술의 사상을 정확하게 표현하지 못하는 잘못된 기술적 용어일 때에는, 본 명세서에 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자가 올바르게 이해할 수 있는 기술적 용어로 대체되어 이해되어야 할 것이다. 또한, 본 명세서에서 사용되는 일반적인 용어는 사전에 정의되어 있는 바에 따라, 또는 전후 문맥 상에 따라 해석되어야 하며, 과도하게 축소된 의미로 해석되지 않아야 한다.It should be noted that the technical terms used in this specification are only used to describe specific embodiments, and are not intended to limit the spirit of the technology disclosed herein. In addition, the technical terms used in this specification should be interpreted in the meaning generally understood by those of ordinary skill in the art to which the technology disclosed in this specification belongs, unless otherwise defined in this specification. It should not be construed in a very comprehensive sense or in an excessively reduced meaning. In addition, when the technical term used in this specification is an erroneous technical term that does not accurately express the spirit of the technology disclosed in this specification, a technical term that can be correctly understood by those of ordinary skill in the art to which the technology disclosed in this specification belongs should be understood and replaced with In addition, general terms used in this specification should be interpreted according to the definition in the dictionary or according to the context before and after, and should not be interpreted in an excessively reduced meaning.

본 명세서에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 발명의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.As used herein, terms including an ordinal number such as first, second, etc. may be used to describe various elements, but the elements should not be limited by the terms. The above terms are used only for the purpose of distinguishing one component from another. For example, without departing from the scope of the present invention, a first component may be referred to as a second component, and similarly, a second component may also be referred to as a first component.

이하, 첨부된 도면을 참조하여 본 명세서에 개시된 실시 예들을 상세히 설명하되, 도면 부호에 관계없이 동일하거나 유사한 구성 요소는 동일한 참조 번호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다.Hereinafter, the embodiments disclosed in the present specification will be described in detail with reference to the accompanying drawings, but the same or similar components are assigned the same reference numerals regardless of reference numerals, and redundant description thereof will be omitted.

또한, 본 명세서에 개시된 기술을 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 본 명세서에 개시된 기술의 요지를 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다. 또한, 첨부된 도면은 본 명세서에 개시된 기술의 사상을 쉽게 이해할 수 있도록 하기 위한 것일 뿐, 첨부된 도면에 의해 그 기술의 사상이 제한되는 것으로 해석되어서는 아니 됨을 유의해야 한다.In addition, in describing the technology disclosed in the present specification, if it is determined that a detailed description of a related known technology may obscure the gist of the technology disclosed in this specification, the detailed description thereof will be omitted. In addition, it should be noted that the accompanying drawings are only for easy understanding of the spirit of the technology disclosed in this specification, and should not be construed as limiting the spirit of the technology by the accompanying drawings.

도 1은 예시적인 전자 시스템을 나타낸 도면이다.1 is a diagram illustrating an exemplary electronic system.

도 1을 참조하면, 전자 시스템(100)은 적어도 하나의 전자 장치(101, 102, 104), 서버(106) 및/또는 네트워크(162)를 포함할 수 있다.Referring to FIG. 1 , the electronic system 100 may include at least one electronic device 101 , 102 , 104 , a server 106 , and/or a network 162 .

본 명세서에 따른 전자 장치는, 통신 기능이 포함된 장치 형태로 구현될 수 있다. 예를 들어, 전자 장치는 스마트 폰(smart phone), 태블릿 PC(tablet personal computer), 이동 전화기(mobile phone), 화상전화기, 전자북 리더기(ebook reader), 데스크탑 PC(desktop personal computer), 랩탑 PC(laptop personal computer), PDA(personal digital assistant), PMP(portable multimedia player), MP3 플레이어, 모바일 의료기기, 카메라(camera), 또는 웨어러블 장치(wearable device)(예: 전자 안경과 같은 head-mounted device(HMD), 전자 의복, 전자 팔찌, 전자 목걸이, 전자 신문, 또는 스마트 워치(smartwatch))중 적어도 하나를 포함할 수 있다. The electronic device according to the present specification may be implemented in the form of a device including a communication function. For example, the electronic device includes a smart phone, a tablet personal computer, a mobile phone, a video phone, an ebook reader, a desktop personal computer, and a laptop PC. (laptop personal computer), personal digital assistant (PDA), portable multimedia player (PMP), MP3 player, mobile medical device, camera, or wearable device (e.g. head-mounted device such as electronic glasses) (HMD), an electronic garment, an electronic bracelet, an electronic necklace, an electronic newspaper, or a smart watch).

어떤 실시 예들에 따르면, 전자 장치는 통신 기능을 갖춘 스마트 가전 제품(smart home appliance)일 수 있다. 스마트 가전 제품은, 예를 들자면, 전자 장치는 텔레비전, DVD(digital video disk) 플레이어, 오디오, 냉장고, 에어컨, 청소기, 오븐, 전자레인지, 세탁기, 공기 청정기, 셋톱 박스(set-top box), TV 박스(예를 들어, 삼성 HomeSyncTM, 애플TVTM, 또는 구글 TVTM), 게임 콘솔(game consoles), 전자 사전, 전자 키, 캠코더(camcorder), 또는 전자 액자 중 적어도 하나를 포함할 수 있다.According to some embodiments, the electronic device may be a smart home appliance having a communication function. Smart home appliances include, for example, a television, a digital video disk (DVD) player, an audio device, a refrigerator, an air conditioner, a vacuum cleaner, an oven, a microwave oven, a washing machine, an air purifier, a set-top box, and a TV. It may include at least one of a box (eg, Samsung HomeSync TM , Apple TV TM , or Google TV TM ), game consoles, an electronic dictionary, an electronic key, a camcorder, or an electronic picture frame.

어떤 실시 예들에 따르면, 전자 장치는 각종 의료기기(예: MRA(magnetic resonance angiography), MRI(magnetic resonance imaging), CT(computed tomography), 촬영기, 초음파기 등), 네비게이션(navigation) 장치, GPS 수신기(global positioning system receiver), EDR(event data recorder), FDR(flight data recorder), 자동차 인포테인먼트(infotainment) 장치, 선박용 전자 장비(예: 선박용 항법 장치 및 자이로 콤파스 등), 항공 전자기기(avionics), 보안 기기, 차량용 헤드 유닛, 산업용 또는 가정용 로봇, 금융 기관의 ATM(automatic teller machine) 또는 상점의 POS(point of sales) 중 적어도 하나를 포함할 수 있다.According to some embodiments, the electronic device includes various medical devices (eg, magnetic resonance angiography (MRA), magnetic resonance imaging (MRI), computed tomography (CT), imagers, ultrasound machines, etc.), navigation devices, and GPS receivers (eg, global positioning system receiver), EDR (event data recorder), FDR (flight data recorder), automotive infotainment device, marine electronic equipment (e.g. marine navigation system and gyro compass, etc.), avionics, security It may include at least one of a device, a head unit for a vehicle, an industrial or household robot, an automatic teller machine (ATM) of a financial institution, or a point of sales (POS) of a store.

어떤 실시 예들에 따르면, 전자 장치는 통신 기능을 포함한 가구(furniture) 또는 건물/구조물의 일부, 전자 보드(electronic board), 전자 사인 입력장치(electronic signature receiving device), 프로젝터(projector), 또는 각종 계측기기(예: 수도, 전기, 가스, 또는 전파 계측 기기 등) 중 적어도 하나를 포함할 수 있다. 본 명세서에 따른 전자 장치는 전술한 다양한 장치들 중 하나 또는 그 이상의 조합일 수 있다. 또한, 본 명세서에 따른 전자 장치는 플렉서블 장치일 수 있다. 또한, 본 명세서에 따른 전자 장치는 전술한 기기들에 한정되지 않음은 당업자에게 자명하다.According to some embodiments, the electronic device is a piece of furniture or a building/structure including a communication function, an electronic board, an electronic signature receiving device, a projector, or various measurement devices. It may include at least one of devices (eg, water, electricity, gas, or radio wave measuring devices, etc.). The electronic device according to the present specification may be a combination of one or more of the various devices described above. Also, the electronic device according to the present specification may be a flexible device. Also, it is apparent to those skilled in the art that the electronic device according to the present specification is not limited to the above-described devices.

전자 장치(101)는 버스(110), 프로세서(120), 메모리(130), 입출력 인터페이스(150), 디스플레이(160), 및/또는 통신 인터페이스(170)를 포함할 수 있다. The electronic device 101 may include a bus 110 , a processor 120 , a memory 130 , an input/output interface 150 , a display 160 , and/or a communication interface 170 .

이때, 네트워크(162)는 유선으로 연결된 LAN 과 케이블채널망, 무선으로 연결된 가능한 모든 방법을 포함할 수 있다.In this case, the network 162 may include a wired LAN, a cable channel network, and all possible methods connected wirelessly.

어떤 실시예에서, 상기 전자 장치(101)는 구성요소들 중 적어도 하나를 생략하거나 다른 구성요소를 추가적으로 구비할 수 있다.In some embodiments, the electronic device 101 may omit at least one of the components or may additionally include other components.

상기 버스(110)는, 예를 들어, 구성요소들(110-170)을 서로 연결하고, 구성요소들 간의 통신(예: 제어 메시지 및/또는 데이터)을 전달하는 회로를 포함할 수 있다.The bus 110 may include, for example, a circuit that connects the components 110 - 170 to each other and transmits communication (eg, a control message and/or data) between the components.

상기 프로세서(120)는 중앙처리장치(Central Processing Unit; CPU), 어플리케이션 프로세서(Application Processor; AP), 또는 커뮤니케이션 프로세서(Communication Processor; CP) 중 하나 또는 그 이상을 포함할 수 있다. 상기 프로세서(120)는, 예를 들어, 상기 전자 장치(101)의 적어도 하나의 다른 구성요소들의 제어 및/또는 통신에 관한 연산이나 데이터 처리를 실행할 수 있다.The processor 120 may include one or more of a central processing unit (CPU), an application processor (AP), and a communication processor (CP). The processor 120 may, for example, execute an operation or data processing related to control and/or communication of at least one other component of the electronic device 101 .

상기 메모리(130)는 휘발성(volatile)(131) 및/또는 비휘발성(non-volatile)(133) 메모리를 포함할 수 있다. 상기 메모리(130)는, 예를 들어, 상기 전자 장치(101)의 적어도 하나의 다른 구성요소에 관계된 명령 또는 데이터를 저장할 수 있다. 한 실시예에 따르면, 상기 메모리(130)는 소프트웨어 및/또는 프로그램을 저장할 수 있다. 상기 프로그램은, 예를 들어, 커널(141), 미들웨어(143), 어플리케이션 프로그래밍 인터페이스(Application Programming Interface; API) (145), 및/또는 어플리케이션 프로그램(또는 "어플리케이션")(147) 등을 포함할 수 있다. 상기 커널(141), 상기 미들웨어(143), 또는 상기 API(145)의 적어도 일부는, 운영체제 (Operating System; OS)로 지칭될 수 있다.The memory 130 may include a volatile 131 and/or a non-volatile 133 memory. The memory 130 may store, for example, commands or data related to at least one other component of the electronic device 101 . According to an embodiment, the memory 130 may store software and/or a program. The program may include, for example, a kernel 141 , middleware 143 , an application programming interface (API) 145 , and/or an application program (or “application”) 147 , etc. can At least a portion of the kernel 141 , the middleware 143 , or the API 145 may be referred to as an operating system (OS).

상기 입출력 인터페이스(150)는, 예를 들어, 사용자 또는 다른 외부 기기로부터 입력된 명령 또는 데이터를 상기 전자 장치(101)의 다른 구성요소(들)에 전달할 수 있는 인터페이스의 역할을 할 수 있다. 또한, 상기 입출력 인터페이스(150)은 상기 전자 장치(101)의 다른 구성요소(들)로부터 수신된 명령 또는 데이터를 사용자 또는 다른 외부 기기로 출력할 수 있다.The input/output interface 150 may serve as an interface capable of transmitting, for example, a command or data input from a user or other external device to other component(s) of the electronic device 101 . Also, the input/output interface 150 may output a command or data received from other component(s) of the electronic device 101 to a user or other external device.

상기 디스플레이(160)는, 예를 들어, 액정 디스플레이(Liquid Crystal Display; LCD), 발광 다이오드(Light Emitting Diode; LED) 디스플레이, 유기 발광 다이오드(Organic Light-Emitting Diode; OLED) 디스플레이, 또는 마이크로 전자기계 시스템(Micro-Electro-Mechanical Systems; MEMS) 디스플레이, 또는 전자종이(electronic paper) 디스플레이를 포함할 수 있다. 상기 디스플레이(160)는, 예를 들어, 사용자에게 각종 컨텐츠(예: 텍스트, 이미지, 비디오, 아이콘, 또는 심볼 등)을 표시할 수 있다. 상기 디스플레이(160)는, 터치 스크린을 포함할 수 있으며, 예를 들어, 전자 펜 또는 사용자의 신체의 일부를 이용한 터치, 제스쳐, 근접, 또는 호버링 입력을 수신할 수 있다.The display 160 is, for example, a liquid crystal display (LCD), a light emitting diode (LED) display, an organic light-emitting diode (OLED) display, or microelectromechanical It may include a Micro-Electro-Mechanical Systems (MEMS) display, or an electronic paper display. The display 160 may display, for example, various contents (eg, text, image, video, icon, or symbol) to the user. The display 160 may include a touch screen, and may receive, for example, a touch, gesture, proximity, or hovering input using an electronic pen or a part of the user's body.

상기 통신 인터페이스(170)는, 예를 들어, 상기 전자 장치(101)와 외부 장치(예: 전자 장치(102), 전자 장치(104), 또는 서버(106)) 간의 통신을 설정할 수 있다. 예를 들어, 상기 통신 인터페이스(170)는 무선 통신 또는 유선 통신을 통해서 네트워크(162)에 연결되어 외부 장치(예: 전자 장치(104) 또는 서버(106))와 통신할 수 있다.The communication interface 170 may establish, for example, communication between the electronic device 101 and an external device (eg, the electronic device 102 , the electronic device 104 , or the server 106 ). For example, the communication interface 170 may be connected to the network 162 through wireless communication or wired communication to communicate with an external device (eg, the electronic device 104 or the server 106 ).

상기 무선 통신은, 예를 들어, 셀룰러 통신을 포함할 수 있다. 상기 셀룰러 통신은, 예를 들어, LTE(long-term evolution), LTE-A(LTE Advance), CDMA(code division multiple access), WCDMA(wideband CDMA), UMTS(universal mobile telecommunications system), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 포함할 수 있다. 또한, 상기 무선 통신은, 예를 들어, 근거리 통신(164)을 포함할 수 있다. 상기 근거리 통신(164)은, 예를 들어, Wi-Fi(wireless fidelity), 블루투스(Bluetooth) 또는 NFC(nearfield communication) 등 적어도 하나를 포함할 수 있다. 또한, 상기 무선 통신은 GPS(global positioning system)를 포함할 수 있다. The wireless communication may include, for example, cellular communication. The cellular communication is, for example, long-term evolution (LTE), LTE Advance (LTE-A), code division multiple access (CDMA), wideband CDMA (WCDMA), universal mobile telecommunications system (UMTS), Wireless (WiBro) Broadband) or GSM (Global System for Mobile Communications) may include at least one of. Also, the wireless communication may include, for example, short-range communication 164 . The short-range communication 164 may include, for example, at least one such as wireless fidelity (Wi-Fi), Bluetooth (Bluetooth), or nearfield communication (NFC). In addition, the wireless communication may include a global positioning system (GPS).

상기 유선 통신은, 예를 들어, USB(universal serial bus), HDMI(high definition multimedia interface), RS-232(recommended standard232), 또는 POTS(plain old telephone service) 등 중 적어도 하나를 포함할 수 있다. 상기 네트워크(162)는 통신 네트워크(telecommunications network), 예를 들어, 컴퓨터 네트워크(computer network)(예: LAN 또는 WAN), 인터넷, 또는 전화 망(telephone network) 중 적어도 하나를 포함할 수 있다.The wired communication may include, for example, at least one of universal serial bus (USB), high definition multimedia interface (HDMI), recommended standard232 (RS-232), or plain old telephone service (POTS). The network 162 may include at least one of a telecommunications network, for example, a computer network (eg, LAN or WAN), the Internet, or a telephone network.

전자 장치(102) 및 전자 장치(104) 각각은 상기 전자 장치(101)와 동일한 또는 다른 종류의 장치일 수 있다. 한 실시 예에 따르면, 상기 서버(106)는 하나 또는 그 이상의 서버들의 그룹을 포함할 수 있다. 다양한 실시예에 따르면, 상기 전자 장치(101)에서 실행되는 동작들의 전부 또는 일부는 다른 하나 또는 복수의 외부 장치(예: 전자 장치(102, 104), 또는 서버(106))에서 실행될 수 있다. 한 실시예에 따르면, 상기 전자 장치(101)가 어떤 기능이나 서비스를 자동으로 또는 요청에 의하여 수행해야 할 경우에, 상기 전자 장치(101)는 기능 또는 서비스를 자체적으로 실행시키는 대신에 또는 추가적으로, 그와 연관된 적어도 일부 기능을 외부 장치(예: 전자 장치(102, 104), 또는 서버(106))에게 요청할 수 있다. 외부 장치(예: 전자 장치(102, 104), 또는 서버(106))는 요청된 기능 또는 추가 기능을 실행하고, 그 결과를 상기 전자 장치(101)로 전달할 수 있다. 상기 전자 장치(101)는 수신된 결과를 그대로 또는 추가적으로 처리하여 요청된 기능이나 서비스를 제공할 수 있다. 이를 위하여, 예를 들어, 클라우드 컴퓨팅, 분산 컴퓨팅, 또는 클라이언트-서버 컴퓨팅 기술이 이용될 수 있다.Each of the electronic device 102 and the electronic device 104 may be the same or a different type of device from the electronic device 101 . According to one embodiment, the server 106 may include a group of one or more servers. According to various embodiments, all or some of the operations performed by the electronic device 101 may be executed by one or a plurality of external devices (eg, the electronic devices 102 and 104 or the server 106 ). According to an embodiment, when the electronic device 101 needs to automatically or request a function or service, the electronic device 101 performs the function or service by itself instead of or in addition, At least some functions related thereto may be requested from an external device (eg, the electronic devices 102 and 104 or the server 106 ). An external device (eg, the electronic device 102 or 104 , or the server 106 ) may execute a requested function or an additional function, and transmit the result to the electronic device 101 . The electronic device 101 may provide a requested function or service by processing the received result as it is or additionally. For this purpose, for example, cloud computing, distributed computing, or client-server computing technology may be used.

도 2는 본 명세서의 기술이 적용될 수 있는 전자 장치의 구현 예를 도시한다. 컴퓨팅 장치는 본 명세서에 개시된 기술이 적용될 수 있는 전자 장치의 예시일 뿐, 본 명세서에 개시된 기술의 기능 또는 사용 범위를 제한하려는 것이 아니다. 따라서, 본 명세서의 컴퓨팅 환경은 예시적으로 도시된 컴포넌트 및/또는 그들의 조합에 종속되거나 필수적으로 포함해야 하는 것으로 해석되어서는 안 된다.2 illustrates an implementation example of an electronic device to which the technology of the present specification can be applied. The computing device is merely an example of an electronic device to which the technology disclosed herein can be applied, and is not intended to limit the function or scope of use of the technology disclosed herein. Accordingly, the computing environment herein should not be construed as dependent on or necessarily including components shown by way of example and/or combinations thereof.

컴퓨팅 장치는 범용 또는 특수 목적의 컴퓨팅 시스템 환경을 위하여 동작할 수 있다. 본 명세서에 개시된 기술이 적용될 수 있는 컴퓨팅 장치(200)는, 예를 들어, 퍼스널 컴퓨터(personal computer), 서버 컴퓨터(server computer), 핸드-헬드 장치(handheld device) 또는 랩톱 장치(laptop device), 태블릿 장치(tablet), 멀티프로세서 시스템(multiprocessor system), 마이크로프로세서 기반 시스템(microprocessor-based system), 셋톱 박스(set-top boxes), 프로그램가능한 소비자 가전제품(programmable consumer electronics), 네트워크 PC(network PCs), 미니컴퓨터(minicomputers), 메인프레임 컴퓨터(mainframe computers), 상기 시스템이나 장치 등의 임의의 것을 포함하는 분산 컴퓨팅 환경(distributed computing environment)을 포함할 수 있다.The computing device may operate for a general purpose or special purpose computing system environment. The computing device 200 to which the technology disclosed herein can be applied is, for example, a personal computer, a server computer, a hand-held device, or a laptop device; Tablets, multiprocessor systems, microprocessor-based systems, set-top boxes, programmable consumer electronics, network PCs ), minicomputers, mainframe computers, distributed computing environments including any of the above systems or devices, and the like.

본 명세서에 개시된 기술은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 일반적인 명령어 형태로 표현될 수 있다. 일반적으로, 프로그램 모듈은 특정 태스크를 수행하고 또는 특정 추상 데이터 유형을 구현하는 루틴(routine), 프로그램(program), 객체(object), 컴포넌트(component), 데이터 구조(data structure) 등을 포함한다. 또한, 본 명세서에 개시된 기술은 통신 네트워크를 통해 링크된 원격 처리 장치들에 의해 태스크가 수행되는 분산 컴퓨팅 환경에서도 실행될 수 있다. 분산 컴퓨팅 환경에서, 프로그램 모듈은 메모리 저장 장치를 포함하는 로컬 및/또는 원격 컴퓨터 저장 매체에 위치할 수 있다.The techniques disclosed herein may be expressed in the form of general instructions such as program modules executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types. The techniques disclosed herein may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in local and/or remote computer storage media including memory storage devices.

도 2를 참조하면, 본 명세서에 개시된 기술이 적용될 수 있는 예시적 시스템은 컴퓨터(200) 형태로 구현될 수 있는 범용 컴퓨팅 장치를 포함한다. 컴퓨터(200)는 프로세서(210), 시스템 메모리(220) 및 시스템 메모리(220)를 포함하는 각종 시스템 컴포넌트를 처리 장치(210)에 결합시키는 시스템 버스(215)를 포함할 수 있으나, 이에 제한되는 것은 아니다. 시스템 버스(215)는 메모리 버스 또는 메모리 컨트롤러, 주변 버스 및 각종 버스 아키텍처 중 임의의 것을 이용하는 로컬 버스를 포함하는 몇몇 유형의 버스 구조 중 어느 것이라도 될 수 있다. 예를 들면, 이러한 아키텍처는 ISA(industry standard architecture) 버스, MCA(micro channel architecture) 버스, EISA(Enhanced ISA) 버스, VESA(video electronics standard association) 로컬 버스 및 PCI(peripheral component interconnect) 버스 등을 포함할 수 있으나, 이에 제한되는 것은 아니다.Referring to FIG. 2 , an exemplary system to which the technology disclosed herein may be applied includes a general-purpose computing device that may be implemented in the form of a computer 200 . Computer 200 may include, but is not limited to, a system bus 215 that couples various system components, including processor 210 , system memory 220 , and system memory 220 to processing device 210 . it is not The system bus 215 may be any of several types of bus structures, including a memory bus or memory controller, a peripheral bus, and a local bus using any of a variety of bus architectures. For example, such architectures include an industry standard architecture (ISA) bus, a micro channel architecture (MCA) bus, an Enhanced ISA (EISA) bus, a video electronics standard association (VESA) local bus, and a peripheral component interconnect (PCI) bus, etc. can, but is not limited thereto.

컴퓨터(200)는 통상적으로 각종 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터(200)에 의해 액세스 가능한 매체는 그 어떤 것이든지 컴퓨터 판독가능 매체가 될 수 있고, 이러한 컴퓨터 판독가능 매체는 휘발성 및 비휘발성 매체, 이동식 및 비이동식 매체를 포함한다. 예를 들어, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있으나, 이에 제한되는 것은 아니다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위해 모든 방법 또는 기술로 구현되는 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 기타 메모리 기술, CD-ROM, DVD(digital versatile disk) 또는 기타 광 디스크 저장 장치, 자기 카세트, 자기 테이프, 자기 디스크 저장 장치 또는 기타 자기 저장 장치, 또는 컴퓨터(200)에 의해 액세스되고 원하는 정보를 저장할 수 있는 임의의 기타 매체를 포함하지만 이에 제한되는 것은 아니다. 통신 매체는 통상적으로 반송파(carrier wave) 또는 그 밖의 전송 방식에 의하여 변조된 데이터 시그널(modulated data signal)에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터 등을 탑재하여 전달할 수 있으며, 일반적으로 모든 정보 전달 매체를 포함한다. '변조된 데이터 시그널'이라는 용어는, 시그널 내에 정보가 인코딩 되도록 시그널의 한 가지 이상의 특성을 설정하거나 변경시킨 시그널을 의미한다. 예를 들면, 통신 매체는 유선 네트워크 또는 직접 연결을 통하는 유선 매체, 그리고 소리, RF, 적외선 등과 같은 무선 매체를 포함하며, 다만 이에 제한되는 것은 아니다. 이상의 매체들의 모든 조합이 또한 컴퓨터 판독가능 매체의 영역 안에 포함될 수 있다.Computer 200 may typically include a variety of computer-readable media. Any medium accessible by computer 200 can be computer readable media, and includes volatile and nonvolatile media, removable and non-removable media. For example, computer-readable media may include, but is not limited to, computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media may include RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disk (DVD) or other optical disk storage device, magnetic cassette, magnetic tape, magnetic disk storage device or other magnetic storage device; or any other medium that can be accessed by computer 200 and can store desired information. Communication media can transmit computer readable instructions, data structures, program modules, or other data mounted on a data signal modulated by a carrier wave or other transmission method, in general. Includes all information delivery media. The term 'modulated data signal' means a signal in which one or more characteristics of a signal are set or changed so that information is encoded in the signal. For example, communication media includes, but is not limited to, wired media through a wired network or direct connection, and wireless media such as sound, RF, infrared, and the like. Any combination of the above may also be included within the scope of computer-readable media.

시스템 메모리(220)는 ROM(Read-Only Memory)(221) 및 RAM(Random Access Memory)(132)와 같은 휘발성 및/또는 비휘발성 메모리의 형태로 컴퓨터 저장 매체를 포함한다. 비휘발성 메모리인 ROM(221)에는 일반적으로 컴퓨터(220)가 부팅될 때 내부 컴포넌트들 사이의 데이터 전송을 수행하는 기본 루틴을 포함하는 BIOS(Basic Input/Output System)를 포함한다. RAM(222)은 일반적으로 프로세서(210)에 즉시 액세스 가능하고 및/또는 현재 프로세서(210)에 의해 동작되는 데이터 및/또는 프로그램 모듈을 포함한다. 예를 들어, RAM(222)은 운영 체제(OS), 애플리케이션 프로그램, 기타 프로그램 모듈 및 프로그램 데이터 등을 포함하는 프로그램 모듈일 수 있으며, 이에 제한되는 것은 아니다.System memory 220 includes computer storage media in the form of volatile and/or non-volatile memory such as read-only memory (ROM) 221 and random access memory (RAM) 132 . The ROM 221 , which is a non-volatile memory, generally includes a Basic Input/Output System (BIOS) including basic routines for performing data transfer between internal components when the computer 220 is booted. RAM 222 generally contains data and/or program modules that are immediately accessible to processor 210 and/or are currently operated by processor 210 . For example, the RAM 222 may be a program module including an operating system (OS), an application program, other program modules, and program data, but is not limited thereto.

컴퓨터(200)는 또한 기타 이동식(removable)/비이동식(non-removable), 휘발성/비휘발성 컴퓨터 저장매체를 포함하도록 구성될 수 있다. 도 2를 참조하여 예를 들면, 컴퓨터(200)는 비이동식, 비휘발성 자기 매체인 HDD(Hard Disk Drive)에 데이터를 기록하고 이로부터 데이터를 판독하기 위한 비이동식 메모리 인터페이스(250)을 포함하도록 구성되거나, 이동식, 비휘발성 플래시메모리 매체에 데이터를 기록하고 이로부터 데이터를 판독하기 위한 이동식 메모리 인터페이스(260)를 포함하도록 구성될 수 있다. 예를 들어, 컴퓨터(200)와 연결되어 사용될 수 있는 기타 이동식/비이동식, 휘발성/비휘발성 컴퓨터 저장 매체로는 자기 테이프 카세트, 플래시 메모리 카드, DVD, 디지털 비디오 테이프, SSD(Solid State Disk) 등이 있지만 이에 제한되는 것은 아니다.Computer 200 may also be configured to include other removable/non-removable, volatile/nonvolatile computer storage media. 2, for example, the computer 200 includes a non-removable memory interface 250 for writing data to and reading data from a hard disk drive (HDD), which is a non-removable, non-volatile magnetic medium. It may be configured or configured to include a removable memory interface 260 for writing data to and reading data from a removable, non-volatile flash memory medium. For example, other removable/non-removable, volatile/nonvolatile computer storage media that can be used in connection with the computer 200 include magnetic tape cassettes, flash memory cards, DVDs, digital video tapes, solid state disks (SSDs), etc. but is not limited thereto.

컴퓨터(200)는 저장 매체에 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 및 컴퓨터(200)의 다른 데이터를 기록하거나 판독할 수 있다. 예를 들어, 컴퓨터는 디스크 드라이브는 운영 체제(OS), 애플리케이션 프로그램, 기타 프로그램 모듈 및 프로그램 데이터를 기록하거나 판독할 수 있다. 컴퓨터(200)는 저장 매체로부터 데이터를 판독하여 시스템 메모리(220)에 로딩할 수 있다.The computer 200 may write or read computer readable instructions, data structures, program modules, and other data of the computer 200 to a storage medium. For example, a computer disk drive may write or read an operating system (OS), application programs, other program modules, and program data. The computer 200 may read data from the storage medium and load it into the system memory 220 .

컴퓨터(200)는 하나 이상의 원격 컴퓨터와 연결된 네트워크 환경(networked environment)에서 동작할 수 있다. 컴퓨터(200)가 네트워크 환경에서 동작하는 경우 네트워크 인터페이스(270)를 통해 원격 컴퓨터와 연결될 수 있다. 원격 컴퓨터는 다른 컴퓨팅 장치, 예를 들어, 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 기타 공통 네트워크 노드일 수 있으며, 일반적으로 컴퓨터(200)와 연관 지어 설명된 구성요소의 적어도 일부 또는 전부를 포함하도록 구성될 수 있다. 이와 같은 네트워크 환경은 사무실, 기업 네트워크, 인트라넷 및 인터넷에서 흔히 볼 수 있다.Computer 200 may operate in a networked environment connected to one or more remote computers. When the computer 200 operates in a network environment, it may be connected to a remote computer through the network interface 270 . The remote computer may be another computing device, for example, a personal computer, server, router, network PC, peer device, or other common network node, and generally at least some or all of the components described in connection with computer 200 . It may be configured to include Such network environments are common in offices, corporate networks, intranets, and the Internet.

컴퓨팅 장치에서 사용가능한 저장 공간은 일반적으로 DAS(Direct Attached Storage), NAS(Network Attached Storage) 및 SAN(Storage Area Network)로 분류할 수 있다. 컴퓨팅 장치에 직접 저장 매체를 연결하는 DAS 방식의 경우는, 예를 들어, 비이동식 인터페이스(250) 또는 이동식 메모리 인터페이스(260)를 통해 데이터를 저장 매체에 기록하고 이로부터 판독하는 방식일 수 있다. 네트워크 환경의 원격 컴퓨터가 NAS 또는 SAN 방식으로 컴퓨터(200)를 위해 저장 공간을 제공하는 경우, 컴퓨터(200)는 네트워크 인터페이스(270)를 통해 원격 컴퓨터에 접속하여 NAS 또는 SAN 방식으로 데이터를 저장 공간에 기록하고 이로부터 판독할 수 있다.Storage space available in a computing device can be generally classified into direct attached storage (DAS), network attached storage (NAS), and storage area network (SAN). The DAS method of directly connecting the storage medium to the computing device may be, for example, a method of writing data to and reading from the storage medium through the non-removable interface 250 or the removable memory interface 260 . When a remote computer in a network environment provides storage space for the computer 200 in a NAS or SAN method, the computer 200 connects to the remote computer through the network interface 270 and stores data in the NAS or SAN method. can be written to and read from.

컴퓨터(200)는 비디오 인터페이스(230)를 통해 모니터 등의 디스플레이 장치와 연결될 수 있다. 또한, 컴퓨터(200)는 사용자 입력 인터페이스(280)를 통해 키보드, 마우스, 마이크, 전자 디지타이저, 스캐너, 카메라 등의 입력 장치로부터 명령 및 정보를 수신할 수 있다. 또한, 컴퓨터(200)는 주변장치 인터페이스(240)를 통해 프린터, 스피커 등과 같은 주변장치와 연결될 수 있다.The computer 200 may be connected to a display device such as a monitor through the video interface 230 . Also, the computer 200 may receive commands and information from input devices such as a keyboard, a mouse, a microphone, an electronic digitizer, a scanner, and a camera through the user input interface 280 . Also, the computer 200 may be connected to a peripheral device such as a printer, a speaker, or the like through the peripheral device interface 240 .

도 3은 본 명세서에 개시된 기술이 적용될 수 있는 전자 장치의 예시적인 프로그램 모듈의 블록도이다.3 is a block diagram of an exemplary program module of an electronic device to which the technology disclosed herein can be applied.

한 실시 예에 따르면, 프로그램 모듈(300)(예를 들어, 도 1의 메모리(130)에 저장되는 프로그램)은 전자 장치(예를 들어, 도 1의 전자 장치(101))에 관련된 자원을 제어하는 운영 체제(Operating System; OS) 및/또는 운영 체제 상에서 구동되는 다양한 응용 프로그램(어플리케이션, 앱 등)을 포함할 수 있다. 비교적 고성능의 전자 장치를 위한 운영 체제는, 예를 들어, 윈도즈(Windows) 또는 리눅스(Linux) 등이 될 수 있으며, 비교적 낮은 성능의 전자 장치를 위한 운영체제는, 예를 들어, 안드로이드(Android), iOS, RTOS(Realtime OS), 리눅스(Linux), 또는 타이젠(tizen) 등이 될 수 있다.According to an embodiment, the program module 300 (eg, a program stored in the memory 130 of FIG. 1 ) controls resources related to an electronic device (eg, the electronic device 101 of FIG. 1 ). It may include an operating system (OS) and/or various application programs (applications, apps, etc.) running on the operating system. An operating system for an electronic device with relatively high performance may be, for example, Windows or Linux, and an operating system for an electronic device with relatively low performance, for example, Android, It may be iOS, RTOS (Realtime OS), Linux, or Tizen.

상기 프로그램 모듈(300)은 커널, 미들웨어, 어플리케이션 프로그래밍 인터페이스(application programming interface; API), 및/또는 응용 프로그램을 포함하도록 구성될 수 있다. 상기 프로그램 모듈(300)의 적어도 일부는 전자 장치 상에 설치 또는 프리로드(preload)되어 있을 수 있으며, 외부 전자 장치(예를 들어, 도 1의 외부 전자 장치(102, 104), 서버(106) 등)로부터 다운로드(download) 가능하다.The program module 300 may be configured to include a kernel, middleware, an application programming interface (API), and/or an application program. At least a part of the program module 300 may be installed or preloaded on an electronic device, and an external electronic device (eg, the external electronic devices 102 and 104 of FIG. 1 , the server 106 ) etc.) can be downloaded from

상기 커널은, 예를 들어, 시스템 리소스 매니저 및/또는 디바이스 드라이버를 포함할 수 있다. 상기 시스템 리소스 매니저는 시스템 리소스의 제어, 할당, 또는 회수 등을 수행할 수 있다. 한 실시 예에 따르면, 상기 시스템 리소스 매니저는 프로세스 관리부, 메모리 관리부, 또는 파일 시스템 관리부 등을 포함할 수 있다. 상기 디바이스 드라이버는, 예를 들어, 디스플레이 드라이버, 카메라 드라이버, 블루투스 드라이버, 공유 메모리 드라이버, USB 드라이버, 키패드 드라이버, 네트워크 드라이버, Wi-Fi 드라이버, 오디오 드라이버, 또는 IPC(inter process communication) 드라이버를 포함할 수 있다.The kernel may include, for example, a system resource manager and/or a device driver. The system resource manager may control, allocate, or recover system resources. According to an embodiment, the system resource manager may include a process manager, a memory manager, or a file system manager. The device driver may include, for example, a display driver, a camera driver, a Bluetooth driver, a shared memory driver, a USB driver, a keypad driver, a network driver, a Wi-Fi driver, an audio driver, or an inter process communication (IPC) driver. can

상기 미들웨어는, 예를 들어, 상기 응용 프로그램이 공통적으로 필요로 하는 기능을 제공하거나, 상기 응용 프로그램이 전자 장치 내부의 제한된 시스템 자원을 효율적으로 사용할 수 있도록 상기 API를 통해 다양한 기능들을 상기 응용프로그램 형태로 제공할 수 있다. The middleware provides functions commonly required by the application programs, or provides various functions through the API so that the application programs can efficiently use limited system resources inside the electronic device in the form of the application program. can be provided as

상기 API는, 예를 들어, API 프로그래밍 함수들의 집합이며, 응용 프로그램이 상기 API를 통하여 상기 커널 및/또는 상기 미들웨어가 제공하는 기능을 사용할 수 있다. 상기 API는 운영 체제의 종류와 관계없이 공통적으로 따르는 API와 운영체제에 따라 서로 다르게 구성된 API로 분류될 수 있다. API 함수가 운영 체제에 대한 종속성을 가지지 않고 서로 다른 운영 체제에서 널리 공통적으로 사용되는 형태를 지원하는 경우, 장치 내에서 실행되는 응용 프로그램들은 이미 널리 알려진 API를 이용하여 운영 체제가 제공하는 리소스에 접근할 수 있다. 여러 운영 체제에 걸쳐 공통된 형태를 가지도록 표준화된 API로는 POSIX(Portable Operating System Interface) 규칙이 있다. POSIX 규칙에 따른 파일 입출력은, 예를 들면, 열기(open), 쓰기(저장)(write), 읽기(판독)(read), 닫기(close) 등과 같은 입출력 인터페이스를 통해서 수행될 수 있다. 한 실시 예에서, 상기 API 함수는 운영 체제에 의해 제공되는 것으로, 사용자 모드(user mode)에서 동작하는 응용 프로그램이 커널 모드(kernel mode)에 시스템 동작을 수행하기 위하여 호출하는 함수일 수 있다. 이 경우 상기 API 함수는 사용자 모드와 커널 모드의 경계에 위치하는 함수의 집합일 수 있다. 한 실시 예에서, 상기 API는 시스템의 다린 래퍼 함수(wrapper function)으로서 동작하는 것으로 하나 이상의 시스템 API를 조합한 기능을 수행하도록 설계된 것일 수 있다.The API is, for example, a set of API programming functions, and an application program can use a function provided by the kernel and/or the middleware through the API. The API may be classified into an API that is commonly followed irrespective of the type of the operating system and an API configured differently depending on the operating system. If an API function does not have a dependency on the operating system and supports a form widely used in different operating systems, applications running in the device can access the resources provided by the operating system using the well-known API. can do. As an API standardized to have a common form across multiple operating systems, there is a Portable Operating System Interface (POSIX) rule. File input/output according to POSIX rules may be performed, for example, through an input/output interface such as open, write, write, read, and close. In an embodiment, the API function is provided by the operating system and may be a function that an application program operating in a user mode calls to perform a system operation in a kernel mode. In this case, the API function may be a set of functions located at the boundary between the user mode and the kernel mode. In one embodiment, the API operates as a wrapper function of the system, and may be designed to perform a function combining one or more system APIs.

상기 응용 프로그램은 상기 전자 장치의 용도에 따라 다양한 종류가 존재한다. 한 실시 예에서 상기 전자 장치가 통신 기능을 제공하는 이동 단말기인 경우에는 상기 응용 프로그램은, 예를 들어, 다이얼러, SMS/MMS, IM, 주소록 등의 통신용 프로그램을 포함할 수 있다. 한 실시 예에서 상기 전자 장치가 컴퓨터인 경우에는 상기 응용 프로그램은, 예를 들어, 문서 작성 프로그램, 이메일 프로그램, 업무 관리 프로그램 등 생산성(Productivity) 관련 프로그램을 포함할 수 있다. Various types of the application program exist according to the purpose of the electronic device. In an embodiment, when the electronic device is a mobile terminal providing a communication function, the application program may include, for example, a communication program such as a dialer, SMS/MMS, IM, and an address book. In an embodiment, when the electronic device is a computer, the application program may include, for example, a productivity-related program such as a document creation program, an e-mail program, and a task management program.

도 3은 전자 장치를 구성하는 프로그램 모듈의 일부를 예시적으로 도시한다. 상기 프로그램 모듈(300)은 응용 프로그램으로서 제1 프로그램(311), 제2 프로그램(312) 및 제3 프로그램(313)을 포함할 수 있으나, 이는 예시적으로 도시한 것으로 응용 프로그램의 수는 이에 제한되지 아니한다. 3 exemplarily illustrates a part of a program module constituting an electronic device. The program module 300 may include a first program 311 , a second program 312 , and a third program 313 as application programs, but this is illustrated by way of example and the number of applications is limited thereto. it doesn't happen

한 실시 예에서, 상기 API 함수(320)는 운영 체제가 제공하는 파일 입출력 인터페이스일 수 있다. 상기 응용 프로그램들은 파일 입출력 API 함수(320)를 통해 하위 모듈인 파일 시스템 모듈(331, 332, 333)이 제공하는 파일 읽기 및/또는 쓰기 기능을 이용할 수 있다. In one embodiment, the API function 320 may be a file input/output interface provided by the operating system. The application programs may use the file read and/or write functions provided by the file system modules 331 , 332 , 333 which are sub-modules through the file input/output API function 320 .

상기 파일 시스템 모듈들(331, 332, 333)은 서로 다른 파일 시스템에 대한 파일 입출력을 처리하도록 구현된 것이나, 이는 예시적으로 도시한 것일 뿐 파일 시스템 모듈들의 수는 이에 제한되지 아니한다. 실시 예에 따라, 상기 응용 프로그램이 요청하는 파일 입출력의 대상 파일의 저장 공간에 따라 상기 파일 시스템 모듈들 중에서 이를 처리할 파일 시스템 모듈이 선택될 수 있다. The file system modules 331 , 332 , and 333 are implemented to process file input/output for different file systems, but the number of file system modules is not limited thereto. According to an embodiment, a file system module to process the file system module may be selected from among the file system modules according to the storage space of the target file of the file input/output requested by the application program.

도 3을 참조하여 설명하면, 상기 응용 프로그램(311, 312, 313)은 복수의 파일 시스템 모듈(331, 332, 333)이 공통으로 지원하는 API 형태를 가진 인터페이스(320)를 통해 대상 파일에 대한 파일 입출력을 요청할 수 있으며, 이 경우 상기 복수의 파일 시스템 모듈 중에서 상기 대상 파일의 위치를 기초로 결정되는 어느 한 파일 시스템 모듈이 상기 요청을 처리할 수 있다. 예를 들어, 상기 제1 파일 시스템 모듈(331)은 네트워크 파일 시스템으로서 네트워크로 연결된 다른 장치와 데이터를 송수신하며 상기 응용 프로그램으로부터 수신한 파일 입출력 요청을 수행할 수 있다. 다만, 이러한 경우에도 상기 제1 파일 시스템(331)이 상기 응용 프로그램의 파일 입출력 요청을 처리하기 위하여 상기 대상 파일의 일부, 상기 대상 파일 처리과정에 생성될 수 있는 임시 파일 또는 그 밖의 중간 데이터를 다른 저장 매체 인터페이스(예를 들어, 저장 매체 인터페이스(343))를 이용하여 상기 전자 장치 내의 저장소에 저장 및/또는 판독할 수 있는 가능성이 배제되지 아니한다.Referring to FIG. 3 , the application programs 311 , 312 , and 313 provide information about a target file through an interface 320 having an API format commonly supported by a plurality of file system modules 331 , 332 , 333 . File input/output may be requested, and in this case, one file system module determined based on the location of the target file among the plurality of file system modules may process the request. For example, as a network file system, the first file system module 331 may transmit/receive data to/from another device connected to the network and may perform a file input/output request received from the application program. However, even in this case, in order for the first file system 331 to process the file input/output request of the application program, a part of the target file, a temporary file or other intermediate data that may be generated in the process of processing the target file is stored in another file. The possibility of storing and/or reading from storage in the electronic device using a storage medium interface (eg, storage medium interface 343 ) is not excluded.

한 실시 예에서, 상기 제1 파일 시스템 모듈(331)은 네트워크 인터페이스(341)(예를 들어, 도 1의 통신 인터페이스(170) 또는 도 2의 네트워크 인터페이스(270))를 통해 네트워크 환경에 존재하는 파일 저장 서버(350)(예를 들어, 도 1의 서버(105))에 파일을 저장할 수 있다. 본 명세서에 개시된 파일 유출 방지 기술의 한 실시 예는 네트워크 상에 존재하는 저장소를 응용 프로그램이 요청하는 파일 입출력과 연관된 저장 영역으로 사용할 수 있다. 또한, 다른 실시 예에서, 상기 파일 저장 서버(350)는 복수의 서버들(351a, 351b, 351c, 351d)을 포함하도록 구성되는 분산 저장소일 수 있으며, 이 경우 상기 복수의 서버들의 수는 예시적인 것일 뿐 이에 제한되지는 아니한다. In one embodiment, the first file system module 331 is present in a network environment through a network interface 341 (eg, the communication interface 170 of FIG. 1 or the network interface 270 of FIG. 2 ). The file may be stored in a file storage server 350 (eg, server 105 of FIG. 1 ). An embodiment of the file leakage prevention technology disclosed in this specification may use a storage existing on a network as a storage area associated with file input/output requested by an application program. In addition, in another embodiment, the file storage server 350 may be a distributed storage configured to include a plurality of servers (351a, 351b, 351c, 351d), in this case, the number of the plurality of servers is an exemplary However, the present invention is not limited thereto.

한편, 예를 들어, 상기 제2 파일 시스템 모듈(332)은 저장 매체 인터페이스(343)(예를 들어, 도 2의 비이동식 메모리 인터페이스(250))를 이용하여 상기 전자 장치 내에 존재하는 저장 매체(360)(예를 들어 도 1의 비휘발성 메모리(133))에 파일을 저장할 수 있다. 상기 파일 시스템 모듈이, 상기 저장소를 이용하여 저장하지 않는 것으로 판단되는 응용 프로그램 및/또는 대상 파일의 종류에 대하여 저장 요청을 수신하는 경우, 상기 요청이 동일한 인터페이스(320)를 이용하여 수신 된 것이라 하더라도 상기 저장소(350)가 아닌 상기 저장 매체 인터페이스(343)를 통한 별도의 저장 매체에 저장된다. On the other hand, for example, the second file system module 332 uses the storage medium interface 343 (eg, the non-removable memory interface 250 of FIG. 2 ) to the storage medium ( 360) (eg, the non-volatile memory 133 of FIG. 1 ) may store the file. When the file system module receives a storage request for the type of application and/or target file that is determined not to be stored using the storage, even if the request is received using the same interface 320 . It is stored in a separate storage medium through the storage medium interface 343 rather than the storage 350.

본 명세서에 개시된 파일 시스템 모듈은 복수의 응용 프로그램이 공통적으로 사용하는 API 형태를 통해 파일 입출력 요청을 수신한다. 응용 프로그램에 대한 별다른 변형 없이 파일 유출 방지를 지원하기 위해서는 상기 인터페이스는 일반적으로 응용 프로그램에 의하여 공통적으로 호출되는 형태와 동일할 필요가 있다. 만약, 전자 장치 또는 응용 프로그램의 사용자가 별다른 만약 응용 프로그램 중 어느 하나가 본 명세서에 개시된 파일 유출 방지 방법을 수행하기 위하여 특수한 API를 호출해야 한다면, 상기 응용 프로그램은 상기 특수 API를 사용할 수 있도록 제작되어, 재컴파일되고, 배포되어야 하는 문제가 발생할 수 있다. 따라서, 본 명세서에 개시된 파일 유출 방지 방법은 공통적인 인터페이스를 통해 호출되고, 이를 처리하는 하위 레벨의 파일 시스템 모듈에 구현될 필요가 있다. 예를 들어, 상기 공통으로 호출될 수 있는 API 형태는 POSIX 규격을 따르는 인터페이스 또는 FUSE(Filesystem in User-Space)에 따른 인터페이스일 수 있다.The file system module disclosed in this specification receives a file input/output request through an API type commonly used by a plurality of application programs. In order to support file leakage prevention without any significant modifications to the application program, the interface generally needs to be the same as the form commonly called by the application program. If the user of the electronic device or application program needs to call a special API to perform the file leakage prevention method disclosed in this specification, the application program is designed to use the special API. , which can cause problems that have to be recompiled and distributed. Therefore, the file leak prevention method disclosed in this specification needs to be implemented in a lower-level file system module that is called through a common interface and handles it. For example, the API form that can be commonly called may be an interface conforming to the POSIX standard or an interface conforming to a Filesystem in User-Space (FUSE).

다양한 실시예에 따르면, 상기 프로그램 모듈(300)의 적어도 일부는 소프트웨어, 펌웨어, 하드웨어, 또는 이들 중 적어도 둘 이상의 조합으로 구현될 수 있다. 상기 프로그램 모듈(300)의 적어도 일부는, 예를 들어, 프로세서(예: 상기 프로세서(210))에 의해 구현(implement)(예: 실행)될 수 있다. 상기 프로그램 모듈(300)의 적어도 일부는 하나 이상의 기능을 수행하기 위한, 예를 들어, 모듈, 프로그램, 루틴, 명령어 세트(sets of instructions) 또는 프로세스 등을 포함할 수 있다.According to various embodiments, at least a portion of the program module 300 may be implemented in software, firmware, hardware, or a combination of at least two or more thereof. At least a portion of the program module 300 may be implemented (eg, executed) by, for example, a processor (eg, the processor 210 ). At least a portion of the program module 300 may include, for example, a module, a program, a routine, a set of instructions, or a process for performing one or more functions.

본 문서에서 사용된 용어 "모듈"은, 예를 들어, 하드웨어, 소프트웨어 또는 펌웨어(firmware) 중 하나 또는 둘 이상의 조합을 포함하는 단위(unit)를 의미할 수 있다. "모듈"은, 예를 들어, 유닛(unit), 로직(logic), 논리블록(logical block), 부품(component), 또는 회로(circuit) 등의 용어와 바꾸어 사용(interchangeably use)될 수 있다. "모듈"은, 일체로 구성된 부품의 최소 단위 또는 그 일부가 될 수 있다. "모듈"은 하나 또는 그 이상의 기능을 수행하는 최소 단위 또는 그 일부가 될 수도 있다. "모듈"은 기계적으로 또는 전자적으로 구현될 수 있다. 예를 들어, "모듈"은, 알려졌거나 앞으로 개발될, 어떤 동작들을 수행하는 ASIC(application-specific integrated circuit) 칩, FPGAs(field-programmable gate arrays) 또는 프로그램 가능 논리 장치(programmable-logic device) 중 적어도 하나를 포함할 수 있다.As used herein, the term “module” may refer to, for example, a unit including one or a combination of two or more of hardware, software, or firmware. The term “module” may be used interchangeably with terms such as, for example, unit, logic, logical block, component, or circuit. A “module” may be a minimum unit or a part of an integrally configured component. A “module” may be a minimum unit or a part of performing one or more functions. A “module” may be implemented mechanically or electronically. For example, a “module” is one of an application-specific integrated circuit (ASIC) chip, field-programmable gate arrays (FPGAs) or programmable-logic device that performs certain operations, known or to be developed. It may include at least one.

다양한 실시예에 따른 장치(예: 모듈들 또는 그 기능들) 또는 방법(예: 동작들)의 적어도 일부는, 예컨대, 프로그램 모듈의 형태로 컴퓨터로 읽을 수 있는 저장매체(computer-readable storage media)에 저장된 명령어로 구현될 수 있다. 상기 명령어가 프로세서(예: 상기 프로세서(120))에 의해 실행될 경우, 상기 하나 이상의 프로세서가상기 명령어에 해당하는 기능을 수행할 수 있다. 컴퓨터로 읽을 수 있는 저장매체는, 예를 들어, 상기 메모리(130)가 될 수 있다.At least a portion of an apparatus (eg, modules or functions thereof) or a method (eg, operations) according to various embodiments is, for example, a computer-readable storage medium in the form of a program module It can be implemented as a command stored in . When the instruction is executed by a processor (eg, the processor 120), the one or more processors may perform a function corresponding to the instruction. The computer-readable storage medium may be, for example, the memory 130 .

컴퓨터로 판독 가능한 기록 매체는, 하드디스크, 플로피디스크, 마그네틱 매체(magnetic media)(예: 자기테이프), 광기록 매체(optical media)(예: CD-ROM(compact disc read only memory), DVD(digitalversatile disc), 자기-광 매체(magneto-optical media)(예: 플롭티컬 디스크(floptical disk)), 하드웨어 장치(예: ROM(read only memory), RAM(random access memory), 또는 플래시 메모리 등) 등을 포함할 수 있다. 또한, 프로그램 명령에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 상술한 하드웨어 장치는 다양한 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지다.Computer-readable recording media include hard disks, floppy disks, magnetic media (eg, magnetic tape), optical media (eg, compact disc read only memory (CD-ROM), DVD ( digitalversatile disc), magneto-optical media (e.g., foptical disk), hardware devices (e.g., read only memory (ROM), random access memory (RAM), or flash memory, etc.) etc. In addition, the program instructions may include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter, etc. The above-described hardware device may include various implementations. It may be configured to operate as one or more software modules to perform the example operations, and vice versa.

다양한 실시예에 따른 모듈 또는 프로그램 모듈은 전술된 구성요소들 중 적어도 하나 이상을 포함하거나, 일부가 생략되거나, 또는 추가적인 다른 구성요소를 더 포함할 수 있다. 다양한 실시예에 따른 모듈, 프로그램 모듈 또는 다른 구성요소에 의해 수행되는 동작들은 순차적, 병렬적, 반복적 또는 휴리스틱(heuristic)한 방법으로 실행될 수 있다. 또한, 일부 동작은 다른 순서로 실행되거나, 생략되거나, 또는 다른 동작이 추가될 수 있다.A module or a program module according to various embodiments may include at least one or more of the above-described components, some may be omitted, or may further include additional other components. Operations performed by a module, a program module, or other components according to various embodiments may be executed sequentially, in parallel, iteratively, or in a heuristic manner. Also, some operations may be executed in a different order, omitted, or other operations may be added.

도 4는 본 명세서에 개시된 기술에 따른 파일 저장 요청에 대한 처리 동작을 수행하는 예시적인 흐름도이다. 본 명세서에 개시된 기술은 파일 유출 방지를 위해서 대상 파일에 대한 접근 통제 수단을 제공하며, 상기 접근 통제는 미리 설정된 정책(policy)에 따라 정상적인 파일 사용에만 접근을 허용하는 방식이다. 본 명세서에 개시된 파일 유출 방지 기술은 파일의 입출력 요청을 처리하는 파일 시스템에 구현될 수 있다. 따라서 상기 파일 유출 방지 기술은 일반적인 응용 프로그램이 사용하는 규격화된 파일 입출력 API를 사용할 수 있으며, 종래의 파일 유출 방지 기술이 파일 시스템 모듈의 조력을 받지 못하여 상기 응용 프로그램이 접근할 수 있는 별도의 임시 파일을 만드는 등의 보안상 취약한 동작을 수행하지 않아도 되는 장점이 있다.4 is an exemplary flowchart of performing a processing operation for a file storage request according to the technology disclosed herein. The technology disclosed in this specification provides an access control means for a target file to prevent file leakage, and the access control is a method of allowing access only to normal file use according to a preset policy. The file leakage prevention technology disclosed herein may be implemented in a file system that processes an input/output request of a file. Therefore, the file leakage prevention technology can use the standardized file input/output API used by general applications, and the conventional file leakage prevention technology does not receive assistance from the file system module, so a separate temporary file that the application program can access There is an advantage in that it is not necessary to perform actions that are vulnerable to security, such as creating

먼저, 전자 장치는 시스템 내의 응용 프로그램들에 의해 공통으로 호출될 수 있는 API 형태의 파일 입출력 인터페이스를 통해 대상 파일에 대한 저장 요청을 수신한다(410). 상기 저장 요청에는 상기 대상 파일에 대한 이름, 상기 대상 파일을 저장할 위치와 연관된 저장 경로 등을 포함할 수 있다. 상기 공통으로 호출될 수 있는 API 형태는 POSIX 또는 FUSE(Filesystem in User-Space)를 포함할 수 있다.First, the electronic device receives a storage request for a target file through an API-type file input/output interface that can be commonly called by application programs in the system ( 410 ). The storage request may include a name for the target file, a storage path associated with a location to store the target file, and the like. The API type that can be commonly called may include POSIX or FUSE (Filesystem in User-Space).

상기 전자 장치는 상기 저장 요청이 상기 미리 설정된 정책에 부합하는지 여부를 판단할 수 있다(420). 상기 정책에 부합하는지 여부는 상기 정책 내의 다양한 항목에 따라 판단 가능하다. 상기 전자 장치는 본 명세서에 개시된 파일 보호 방법을 적용할 것인지 여부를 결정하기 위해 사용되는 조건들을 미리 저장하고 있다. 상기 조건들은 정책(policy), 설정 값(configurations) 등 다양한 용어로 호칭될 수 있으며, 상기 전자 장치에 미리 설정되어 있거나, 필요에 따라 갱신될 수 있다. 상기 정책은 일반적으로 사용자 식별 정보, 사용 시기, 사용 장치 식별 정보, 사용 위치, 사용 프로그램 등에 대한 조건을 포함하고 있으며, 상기 조건들 중 필수적인 조건들에 대하여 적합한 경우에 파일 유출을 방지하기 위한 후속 조치들이 이루어 질 수 있다. The electronic device may determine whether the storage request conforms to the preset policy ( 420 ). Whether the policy conforms to the policy may be determined according to various items in the policy. The electronic device stores in advance conditions used to determine whether to apply the file protection method disclosed in the present specification. The conditions may be referred to by various terms such as policies and configuration values, and may be preset in the electronic device or updated as necessary. The policy generally includes conditions for user identification information, use time, device identification information, location of use, program used, etc., and if essential conditions among the conditions are met, follow-up measures to prevent file leakage can be done

한 실시 예에서, 상기 전자 장치는 상기 저장 요청이 상기 정책에 부합하는지 여부를 판단하기 위하여 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단할 수 있다(421). In an embodiment, the electronic device may determine whether the type of the target file is included in a list of allowed types in a preset policy in order to determine whether the storage request conforms to the policy ( 421).

즉, 상기 전자 장치는 상기 대상 파일의 종류에 적어도 일부(at least partially) 기초하여 상기 대상 파일을 암호화할지 여부를 판단할 수 있다(421). 상기 대상 파일의 종류는 상기 대상 파일의 이름에 포함된 확장자(extension), 상기 대상 파일의 형식에 기초로 판단한 파일의 종류 또는 MIME(Multipurpose Internet Mail Extensions) 타입 등을 이용할 수 있다. 한 실시 예에서, 상기 암호화 대상 파일의 종류로, 문서, 메일, 그림, 텍스트 또는 압축 파일 등이 포함될 수 있다.That is, the electronic device may determine whether to encrypt the target file based at least partially on the type of the target file ( 421 ). As the type of the target file, an extension included in the name of the target file, a file type determined based on the format of the target file, or a Multipurpose Internet Mail Extensions (MIME) type may be used. In an embodiment, as the type of the encryption target file, a document, mail, picture, text, or compressed file may be included.

다른 실시 예에서, 상기 저장 요청이 상기 정책에 포함된 다른 조건들에 부합하는지 여부를 판단해야 하는 경우, 상기 전자 장치는 상기 다른 조건들에 만족하는 경우에만 저장소에 저장하거나 상기 대상 파일을 암호화하도록 결정하는 동작들을 수행할 수 있다(423). 예를 들어, 상기 전자 장치는 상기 응용 프로그램이 상기 미리 설정된 정책 내의 상기 대상 파일의 형태를 위한 프로그램 목록에 포함되어 있는지 여부를 판단할 수 있다. 즉, 상기 전자 장치는 상기 응용 프로그램이 상기 대상 파일의 형태와 연관(association)되어 있지 않아 상기 대상 파일 형태와의 연관 프로그램 목록에 포함되어 있지 않은 경우에는 상기 저장 요청이 상기 정책에 부합하지 않는 것으로 판단할 수 있다. 이 경우 상기 저장 장치는 상기 저장 요청에 대응하여 오류 값으로 응답하고 상기 저장 요청에 대한 처리 동작을 중단할 수 있다.In another embodiment, when it is necessary to determine whether the storage request meets other conditions included in the policy, the electronic device stores in the storage or encrypts the target file only when the other conditions are satisfied. Determining operations may be performed ( 423 ). For example, the electronic device may determine whether the application program is included in the program list for the type of the target file in the preset policy. That is, the electronic device determines that the storage request does not conform to the policy when the application program is not associated with the type of the target file and is not included in the list of programs associated with the type of the target file. can judge In this case, the storage device may respond with an error value in response to the storage request and stop a processing operation for the storage request.

상기 전자 장치는 상기 저장 요청이 상기 미리 설정된 정책에 부합하지 않는 경우 상기 대상 파일을 암호화하지 않고 평문의 형태로 저장소에 저장할 수 있다(430)When the storage request does not conform to the preset policy, the electronic device may store the target file in the storage in the form of plain text without encryption ( 430 ).

상기 대상 파일에 대한 암호화는 PKI(public key infrastructure) 기반의 암호화뿐 아니라, 데이터 스크램블링(scrambling) 등의 다양한 방식의 난독화 방법을 포함할 수 있다. 상기 암호화는 상기 대상 파일에 대한 기밀성(confidentiality)을 보장하기 위한 것이며, 한 실시 예에 따라 상기 저장소가 분산 저장소 형태로 구현되는 경우 각 분산 저장소를 구성하는 서버들에 대한 정보를 상기 암호화 동작에 포함하여, 상기 서버들 중 일부의 유출이 발생하는 경우에도 전체로서의 상기 대상 파일에 대한 기밀성은 보장될 수 있도록 할 수 있다. 이 경우 상기 저장소를 구성하는 상기 분산된 서버는 하나 이상의 NAS(Network Attached Storage) 서버를 포함하도록 구성될 수 있다.Encryption of the target file may include not only public key infrastructure (PKI) based encryption, but also various obfuscation methods such as data scrambling. The encryption is to ensure confidentiality of the target file, and according to an embodiment, when the storage is implemented in the form of a distributed storage, information on servers constituting each distributed storage is included in the encryption operation Thus, even when some of the servers are leaked, the confidentiality of the target file as a whole can be guaranteed. In this case, the distributed servers constituting the storage may be configured to include one or more NAS (Network Attached Storage) servers.

한 실시 예에서 상기 대상 파일을 암호화 하는 동작은 상기 대상 파일을 기초로 하나 이상의 암호화된 청크(chunk)로 구성된 보호 데이터(protected data)를 생성할 수 있다. 상기 하나 이상의 암호화된 청크는 그 중 일부가 유출되더라도 상기 보호 데이터 또는 상기 대상 파일이 유출되는 것으로 인식될 수 없다. 이를 위하여 상기 각 청크에는 상기 각 분산된 서버로부터 획득할 수 있는 정보가 포함될 수 있다. 이후 상기 하나 이상의 청크는 상기 저장소를 구성하는 분산된 서버에 각각 분배되어 저장될 수 있다.In an embodiment, the operation of encrypting the target file may generate protected data including one or more encrypted chunks based on the target file. Even if a part of the one or more encrypted chunks is leaked, it cannot be recognized that the protected data or the target file is leaked. To this end, each chunk may include information obtainable from each of the distributed servers. Thereafter, the one or more chunks may be distributed and stored in distributed servers constituting the storage.

상기 전자 장치는 상기 암호화된 대상 파일을 상기 저장소에 저장한다(450). 이는 상기 전자 장치 내의 통신 인터페이스에 의하여 네트워크 상에 존재하는 저장소로 상기 암호화된 대상 파일을 보내는 동작일 수 있다.The electronic device stores the encrypted target file in the storage ( 450 ). This may be an operation of sending the encrypted target file to a storage existing on a network through a communication interface in the electronic device.

도 5는 본 명세서에 개시된 기술에 따른 파일 읽기 요청에 대한 처리 동작을 수행하는 예시적인 흐름도이다. 상기 판독 요청에 따른 처리 동작은 도 4를 참조하여 설명된 저장 요청에 대한 처리 동작과 별개로 수행되거나 또는 연속적으로 수행될 수 있다.5 is an exemplary flowchart of performing a processing operation for a file read request according to the technology disclosed herein. The processing operation according to the read request may be performed separately or continuously from the processing operation for the storage request described with reference to FIG. 4 .

먼저, 전자 장치는 상기 파일 입출력 인터페이스를 통해 대상 파일에 대한 읽기(판독) 요청을 수신한다(510). 상기 읽기 요청에는 상기 대상 파일에 대한 이름, 상기 대상 파일에 접근 가능한 위치와 연관된 저장 경로 등을 포함할 수 있다. 상기 전자 장치는 상기 읽기 요청이 상기 미리 설정된 정책에 부합하는지 여부를 판단할 수 있다(520). First, the electronic device receives a read (read) request for a target file through the file input/output interface (510). The read request may include a name for the target file, a storage path associated with a location accessible to the target file, and the like. The electronic device may determine whether the read request conforms to the preset policy ( 520 ).

한 실시 예에서, 상기 전자 장치는 상기 정책 내에 포함된 응용 프로그램의 목록에 포함된 프로그램을 위하여 상기 저장소에 암호문 형태로 되어 있는 파일들을 평문 형태로 복호화할 수 있다. 이를 위하여, 상기 전자 장치는 상기 읽기 요청을 전송한 상기 응용 프로그램이 상기 정책 내의 허용된 프로그램 목록에 포함되는지 여부를 판단할 수 있다(521). 반대로, 상기 정책 내의 상기 허용된 프로그램 목록에 포함되지 않은 응용 프로그램의 경우 복호화 과정을 거치지 않기 때문에 상기 저장소에 저장된 대상 파일을 암호문 형태 그대로 응답으로 돌려 받을 수 있다. 즉, 상기 공통적인 파일 입출력 인터페이스 내부에서 상기 정책에 따라 복호화 기능이 수행될 수 있다. 이는 상기 저장소에 저장된 파일들에 대하여 등록되지 않은 응용 프로그램에 의한 허가되지 않은 접근을 차단하는 것이다.In an embodiment, the electronic device may decrypt files in the form of cipher text in the storage into plain text for a program included in the list of application programs included in the policy. To this end, the electronic device may determine whether the application program that has transmitted the read request is included in the list of allowed programs in the policy ( 521 ). Conversely, in the case of an application program that is not included in the allowed program list in the policy, the target file stored in the storage can be returned as a response in the form of a cipher text because it does not undergo a decryption process. That is, a decryption function may be performed according to the policy within the common file input/output interface. This is to block unauthorized access by unregistered applications to the files stored in the storage.

다른 실시 예에서, 상기 전자 장치는 상기 읽기 요청을 전송한 상기 응용프로그램이 상기 읽기 요청된 대상 파일의 형태와 연관되어 있는지 여부를 판단할 수 있다(523). 상기 정책은 특정 파일 형태에 대하여 접근할 수 있는 응용 프로그램의 목록을 포함할 수 있다. 즉, 상기 정책은 사용자가 지정된 파일 종류에 대하여 지정된 응용 프로그램만 사용하도록 강제할 수 있다. 예를 들어, 특정 포맷의 문서 파일에 접근할 수 있는 응용 프로그램의 목록에 특정 문서 편집 프로그램만 포함되어 있는 경우, 이와 다른 별도의 문서 편집기 또는 운영 체제의 파일 매니져 프로그램에 의한 읽기 요청은 불가능 하도록 설정되어 있는 것이다.In another embodiment, the electronic device may determine whether the application program that has transmitted the read request is related to the type of the read-requested target file ( 523 ). The policy may include a list of applications that can access a specific file type. That is, the policy may force the user to use only a specified application program for a specified file type. For example, if only a specific document editing program is included in the list of applications that can access a document file in a specific format, read requests by other text editors or file manager programs of the operating system are disabled it has been

또한, 실시 예에 따라서, 상기 응용 프로그램의 종류 외에 별도의 정책을 적용해야 하는 경우, 필수적인 정책에 부합하는지 여부를 판단할 수 있다(525). 예를 들어, 상기 정책은 특정 파일을 저장할 수 있는 장치 목록, 장소 또는 네트워크 주소 목록, 운영체제 목록, 시간 대역 등을 포함하여 해당 조건에 부합하는지 여부를 추가로 판단할 수 있다.Also, according to an embodiment, when a separate policy needs to be applied in addition to the type of the application program, it may be determined whether or not an essential policy is satisfied ( 525 ). For example, the policy may include a list of devices capable of storing a specific file, a list of places or network addresses, a list of operating systems, a time band, and the like, to further determine whether a corresponding condition is met.

상기 응용 프로그램의 종류 및/또는 기타 다른 정책에 부합하는 것으로 판단되는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고(540), 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송한다(550). 그 밖의 경우는 상기 저장소에 저장되어 있는 암호문 형태의 대상 파일을 상기 읽기 요청에 대한 응답으로 전송할 수 있다(560).When it is determined that the application program type and/or other policies are satisfied, the encrypted target file is decrypted in plaintext form (540), and the target file in the plaintext form is transmitted in response to the read request. do (550). In other cases, the target file in the form of cipher text stored in the storage may be transmitted in response to the read request ( 560 ).

도 6은 본 명세서에 개시된 기술에 따른 파일 저장 요청 및 파일 읽기 요청에 대한 처리 동작을 수행하는 예시적인 흐름도이다. 도 6은 본 명세서의 기술이 적용된 파일 시스템 모듈에 대하여 서로 다른 응용 프로그램이 저장 요청 및 읽기 요청을 처리하는 동작을 나타낸다. 도 4 및 도 5를 참조하여 설명된 부분 중 중복되는 내용은 생략한다.6 is an exemplary flowchart of performing processing operations for a file storage request and a file read request according to the technology disclosed herein. 6 illustrates an operation in which different application programs process a storage request and a read request with respect to a file system module to which the technology of the present specification is applied. Duplicate content among the parts described with reference to FIGS. 4 and 5 will be omitted.

먼저, 전자 장치는 파일 입출력 인터페이스를 통해 대상 파일에 대한 제1 프로그램의 저장 요청을 수신한다(611). 상기 전자 장치는 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단할 수 있다(613). 또한, 상기 저장 요청이 상기 정책에 포함된 다른 조건들에 부합하는지 여부를 판단해야 하는 경우, 상기 전자 장치는 상기 다른 조건들에 만족하는 경우에만 이후 암호화 동작들을 수행할 수 있다(615). 예를 들어, 상기 전자 장치는 상기 제1 프로그램이 상기 미리 설정된 정책 내의 상기 대상 파일의 형태를 위한 프로그램 목록에 포함되어 있는지 여부를 판단할 수 있다.First, the electronic device receives a storage request of the first program for the target file through the file input/output interface (S611). The electronic device may determine whether the type of the target file is included in a list of allowed types in a preset policy (S613). In addition, if it is necessary to determine whether the storage request meets other conditions included in the policy, the electronic device may perform subsequent encryption operations only when the other conditions are satisfied ( 615 ). For example, the electronic device may determine whether the first program is included in a program list for the type of the target file in the preset policy.

상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 경우 또는 기타 정책에 부합하는 경우, 상기 전자 장치는 상기 대상 파일의 저장 영역을 저장소로 지정하고 상기 대상 파일을 암호화 할 수있다. (617). 반대로, 상기 저장 요청이 상기 정책에 부합하지 않는 경우, 상기 전자 장치는 상기 대상 파일에 대하여 저장소가 아닌 다른 저장 매체를 저장 영역으로 지정하여 저장하거나, 상기 저장소 내에 암호화하지 않은 평문 형태로 저장할 수 있다(619). 상기 전자 장치는 상기 암호화된 대상 파일을 상기 네트워크로 연결된 저장소에 저장한다(621).When the type of the target file is included in the list of allowed types or meets other policies, the electronic device may designate a storage area of the target file as a storage and encrypt the target file. (617). Conversely, if the storage request does not conform to the policy, the electronic device may designate a storage medium other than storage for the target file as a storage area and store it, or store it in the storage in the form of unencrypted plaintext. (619). The electronic device stores the encrypted target file in the network-connected storage ( S621 ).

이후, 상기 전자 장치는 제2 프로그램으로부터 상기 파일 입출력 인터페이스를 통해 대상 파일에 대한 읽기(판독) 요청을 수신할 수 있다(551). 상기 전자 장치는 상기 제2 프로그램이 미리 설정된 프로그램 목록에 포함되어 있는지 여부를 판단할 수 있다(653). 또한, 실시 예에 따라서, 상기 전자 장치는 상기 제2 프로그램이 상기 읽기 요청된 상기 대상 파일의 형태와 연관되어 있는지 여부를 판단할 수 있다(655). 또한, 실시 예에 따라서 상기 전자 장치는 그 밖에 상기 정책 내의 필수적인 정책에 부합하는지 여부를 판단할 수 있다(657). 상기 제2 프로그램의 종류 및/또는 기타 다른 정책에 부합하는 것으로 판단되는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고(659), 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송한다(661). 그 밖의 경우는 상기 읽기 요청에 대한 응답으로 오류 메시지를 전송하거나 또는 상기 저장소에 저장되어 있는 암호문 형태의 대상 파일을 전송할 수 있다(663).Thereafter, the electronic device may receive a read (read) request for the target file from the second program through the file input/output interface ( 551 ). The electronic device may determine whether the second program is included in a preset program list ( S653 ). Also, according to an embodiment, the electronic device may determine whether the second program is related to the type of the read-requested target file ( 655 ). In addition, according to an embodiment, the electronic device may determine whether other essential policies in the policy are satisfied ( 657 ). When it is determined that the second program type and/or other policies are satisfied, the encrypted target file is decrypted in plaintext form (659), and the target file in the plaintext form is converted into a response to the read request. transmit (661). In other cases, an error message may be transmitted in response to the read request or a target file in the form of a cipher text stored in the storage may be transmitted ( 663 ).

상기 실시 예에 따른 전자 장치에서 상기 제1 프로그램은 상기 미리 설정된 프로그램 목록에 포함되어 있으나 상기 제2 프로그램은 그렇지 않은 경우, 상기 대상 파일은 상기 제1 프로그램에 의하여 저장소에 저장되나 상기 제2 프로그램의 읽기 요청에는 상기 대상 파일이 암호화된 채로 수신되어 내용의 기밀성이 유지될 수 있다. 예를 들어, 상기 제1 프로그램이 오피스와 같은 문서 작성 프로그램에 해당하고, 상기 제2 프로그램이 탐색기와 같은 파일 관리 프로그램일 수 있다. 이 경우, 상기 제1 프로그램에 의해 작성된 문서를 저장하려 할 때 상기 대상 문서는 암호화되어 저장소에 저장되나, (상기 제1 프로그램이 아닌) 일반적인 기능을 가진 탐색기에 의한 다른 장치 또는 로컬 저장장치로의 복사를 시도하는 경우, 허용된 응용 프로그램이 아니므로, 암호화된 채로 복사가 이루어져, 복호화하는 방법 또는 키 값을 알 지 못하는 경우 상기 대상 파일을 접근할 수 없게 된다.In the electronic device according to the embodiment, when the first program is included in the preset program list but the second program is not, the target file is stored in the storage by the first program, but In the read request, the target file may be received in an encrypted state, so that confidentiality of contents may be maintained. For example, the first program may correspond to a document creation program such as an office, and the second program may be a file management program such as an explorer. In this case, when trying to save the document created by the first program, the target document is encrypted and stored in the storage, but it is stored in a storage device (not the first program) to another device or a local storage device by a searcher with a general function. When copying is attempted, since it is not an allowed application, the copy is made with encryption, and if the decryption method or key value is not known, the target file cannot be accessed.

한편, 상기 읽기 요청을 수신하는 동작에서(651), 상기 파일 시스템 모듈이 동일한 상기 제1 프로그램으로부터 상기 암호화된 대상 파일에 대한 읽기 요청을 수신하는 경우, 상기 제1 프로그램에 대한 허용 여부는 상기 저장 요청에 대한 처리 중에 프로그램 목록에 해당한다는 것을 알고 있으므로 이후 동작을 생략하고 바로 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답 전송할 수 있다.Meanwhile, in the operation of receiving the read request ( 651 ), when the file system module receives a read request for the encrypted target file from the same first program, whether to allow the first program is stored in the storage Since it is known that it corresponds to the program list during the processing of the request, the subsequent operation may be omitted, the encrypted target file may be directly decrypted in a plain text form, and the target file in the plain text format may be transmitted in response to the read request.

도 7은 응용 프로그램에 의해 호출되는 인터페이스를 도시한다. 본 명세서에 개시된 기술이 적용될 수 있는 파일 시스템 모듈은 파일 저장 요청을 위한 제1 인터페이스 및 파일 읽기 요청을 위한 제2 인터페이스를 포함한 파일 입출력 인터페이스를 포함하여 구현될 수 있다.7 shows an interface called by an application program. A file system module to which the technology disclosed herein can be applied may be implemented by including a file input/output interface including a first interface for a file storage request and a second interface for a file read request.

즉, 상기 파일 시스템 모듈이 상기 저장 요청을 처리하는 동작은, 상기 파일 입출력 인터페이스들 중 제1 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 대상 파일에 대한 저장 요청을 수신하는 동작; 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작; 상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및 상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 포함할 수 있다.That is, the operation of the file system module processing the storage request may include: receiving a storage request for the target file from any one of the application programs through a first interface among the file input/output interfaces; determining whether the type of the target file is included in a list of allowed types in a preset policy; encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and storing the encrypted target file in a network-connected storage.

또한, 상기 파일 시스템 모듈이 상기 읽기 요청을 처리하는 동작은, 상기 파일 입출력 인터페이스들 중 제2 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 상기 대상 파일에 대한 읽기 요청을 수신하는 동작, 상기 대상 파일은 암호문 형태로 네트워크로 연결된 저장소에 저장되어 있고; 상기 응용 프로그램이 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되고, 상기 응용프로그램이 상기 대상 파일의 형태(type)과 연관되어 있는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및 상기 응용 프로그램이 상기 정책 내의 상기 허용된 프로그램 목록에 포함되어 있지 않은 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작을 포함할 수 있다. In addition, the operation of the file system module processing the read request may include: receiving a read request for the target file from any one of the application programs through a second interface among the file input/output interfaces; is stored in networked storage in the form of ciphertext; When the application program is included in the list of allowed programs in a preset policy and the application program is associated with the type of the target file, the encrypted target file is decrypted in plaintext form, and the transmitting the target file in response to the read request; and when the application program is not included in the list of allowed programs in the policy, transmitting the target file in the form of a cipher text in response to the read request.

한 실시 예에서, 상기 파일 입출력 인터페이스는 POSIX 규약을 따르는 시스템 API일 수 있다. 도 7(a)를 참조하면, 상기 파일 입출력 인터페이스(710)는 사용자 모드와 커널 모드를 구분하는 시스템 API일 수 있다. 이 경우 본 명세서에 개시된 기술에 따른 파일 유출 방지 방법은 운영 체제의 일부에 해당하는 파일 시스템 모듈에 포함되도록 구현될 수 있다. 예를 들어, 상기 저장 요청을 위한 인터페이스는 open, write 또는 close 등의 함수일 수 있으며, 상기 읽기 요청을 위한 인터페이스는 open, read 또는 close 등의 함수 일 수 있다.In one embodiment, the file input/output interface may be a system API conforming to a POSIX protocol. Referring to FIG. 7A , the file input/output interface 710 may be a system API that distinguishes a user mode and a kernel mode. In this case, the file leakage prevention method according to the technology disclosed herein may be implemented to be included in a file system module corresponding to a part of the operating system. For example, the interface for the storage request may be a function such as open, write, or close, and the interface for the read request may be a function such as open, read, or close.

다른 실시 예에서, 상기 파일 입출력 인터페이스는 프로그램 모듈 상의 미들웨어 또는 프레임워크 상의 래퍼 API(wrapper API)일 수 있다. 도 7(b)를 참조하면, 상기 파일 입출력 인터페이스(720)는 시스템 제공자 또는 독립적인 프레임워크 제공자에 의해 배치될 수 있는 프레임워크의 API일 수 있다. 이 경우 본 명세서에 개시된 기술에 따른 파일 유출 방지 방법은 프레임워크의 일부에 해당하도록 구현될 수 있다. 예를 들어, 프레임워크 API의 형태로 제공되는 인터페이스는 FUSE(Filesystem in User-Space) API일 수 있다.In another embodiment, the file input/output interface may be a middleware on a program module or a wrapper API on a framework. Referring to FIG. 7B , the file input/output interface 720 may be an API of a framework that may be deployed by a system provider or an independent framework provider. In this case, the file leakage prevention method according to the technology disclosed herein may be implemented to correspond to a part of the framework. For example, the interface provided in the form of a framework API may be a Filesystem in User-Space (FUSE) API.

도 8은 본 명세서에 개시된 기술이 적용될 수 있는 전자 장치에 대한 블록도이다. 도 8을 참조하면 전자 장치(800)는 프로세서(810), 메모리(820) 및 네트워크 모듈(830)을 포함하도록 구성될 수 있다.8 is a block diagram of an electronic device to which the technology disclosed herein can be applied. Referring to FIG. 8 , the electronic device 800 may be configured to include a processor 810 , a memory 820 , and a network module 830 .

상기 메모리(820)는 응용 프로그램 및 파일 시스템 모듈을 저장할 수 있도록 구성될 수 있다. 상기 파일 시스템 모듈은 상기 응용 프로그램의에 의해 공통으로 호출될 수 있는 API 형태의 파일 입출력 인터페이스들을 통해 수신되는 파일 저장 요청 및 읽기 요청을 처리하는 동작을 실행하는 명령어를 포함하도록 구성될 수 있다.The memory 820 may be configured to store an application program and a file system module. The file system module may be configured to include a command for executing an operation for processing a file storage request and a read request received through file input/output interfaces in the form of an API that can be commonly called by the application program.

상기 네트워크 모듈(830)은 네트워크 상에 존재하는 저장소와 연결을 수립하고, 상기 파일 시스템 모듈에 의해 처리되는 대상 파일을 상기 저장소에 송수신하도록 구성될 수 있다.The network module 830 may be configured to establish a connection with a storage existing on a network and transmit/receive a target file processed by the file system module to the storage.

상기 프로세서(810)는 상기 메모리(820) 및 상기 네트워크 모듈(830)과 전기적으로 연결되어, 상기 대상 파일에 대하여 상기 응용 프로그램의 상기 저장 요청을 처리하는 동작 및 상기 읽기 요청을 처리하는 동작을 수행하도록 구성될 수 있다. 상기 프로세서는 상기 저장 요청을 처리하기 위하여 상기 파일 입출력 인터페이스들 중 제1 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 대상 파일에 대한 저장 요청을 수신하는 동작; 상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작; 상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및 상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 수행할 수 있다.The processor 810 is electrically connected to the memory 820 and the network module 830 to process the storage request of the application program and the read request for the target file. can be configured to receiving, by the processor, a storage request for a target file from any one of the application programs through a first interface among the file input/output interfaces in order to process the storage request; determining whether the type of the target file is included in a list of allowed types in a preset policy; encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and storing the encrypted target file in a network-connected storage.

또한, 상기 프로세서는 상기 읽기 요청을 처리하기 위하여, 상기 파일 입출력 인터페이스들 중 제2 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 상기 대상 파일에 대한 읽기 요청을 수신하는 동작; 상기 응용 프로그램이 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되고, 상기 응용프로그램이 상기 대상 파일의 형태(type)과 연관되어 있는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및 상기 응용 프로그램이 상기 정책 내의 상기 허용된 프로그램 목록에 포함되어 있지 않은 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작을 수행할 수 있다.The processor may further include: receiving, by the processor, a read request for the target file from any one of the application programs through a second interface among the file input/output interfaces in order to process the read request; When the application program is included in the list of allowed programs in a preset policy and the application program is associated with the type of the target file, the encrypted target file is decrypted in plaintext form, and the transmitting the target file in response to the read request; and when the application program is not included in the list of allowed programs in the policy, transmitting the target file in the form of a cipher text in response to the read request.

한편, 상기 전자 장치(800)는 도 1을 참조하여 설명된 전자 장치(101) 또는 도 2를 참조하여 설명된 컴퓨팅 장치(200)의 형태로 구현될 수 있다. 상기 전자 장치(101)는 상기 응용 프로그램 및 상기 파일 시스템 모듈을 저장할 수 있도록 구성될 수 있는 상기 메모리(130); 네트워크 상에 존재하는 저장소와 연결을 수립하고, 상기 파일 시스템 모듈에 의해 처리되는 대상 파일을 상기 저장소에 송수신하도록 설정된 상기 통신 인터페이스(170); 및 상기 메모리(130) 및 상기 통신 인터페이스(170)과 전기적으로 연결되어, 상기 대상 파일에 대하여 상기 응용 프로그램의 상기 저장 요청을 처리하는 동작 및 상기 읽기 요청을 처리하는 동작을 수행하도록 구성되는 상기 프로세서(120)를 포함하도록 구성될 수 있다. 이하 중복되는 설명에 대해서는 생략한다.Meanwhile, the electronic device 800 may be implemented in the form of the electronic device 101 described with reference to FIG. 1 or the computing device 200 described with reference to FIG. 2 . The electronic device 101 may include: the memory 130 configured to store the application program and the file system module; the communication interface 170 configured to establish a connection with a storage existing on a network and transmit and receive a target file processed by the file system module to the storage; and the processor configured to be electrically connected to the memory 130 and the communication interface 170 to process the storage request of the application program and process the read request for the target file may be configured to include 120 . Hereinafter, overlapping descriptions will be omitted.

상기 메모리(820)는 응용 프로그램 및 파일 시스템 모듈을 저장할 수 있도록 구성될 수 있다. 상기 파일 시스템 모듈은 상기 응용 프로그램의에 의해 공통으로 호출될 수 있는 API 형태의 파일 입출력 인터페이스들을 통해 수신되는 파일 저장 요청 및 읽기 요청을 처리하는 동작을 실행하는 명령어를 포함하도록 구성될 수 있다.The memory 820 may be configured to store an application program and a file system module. The file system module may be configured to include a command for executing an operation for processing a file storage request and a read request received through file input/output interfaces in the form of an API that can be commonly called by the application program.

상기 네트워크 모듈(830)은 네트워크 상에 존재하는 저장소와 연결을 수립하고, 상기 파일 시스템 모듈에 의해 처리되는 대상 파일을 상기 저장소에 송수신하도록 구성될 수 있다.The network module 830 may be configured to establish a connection with a storage existing on a network and transmit/receive a target file processed by the file system module to the storage.

상기 프로세서(810)는 상기 메모리(820) 및 상기 네트워크 모듈(830)과 전기적으로 연결되어, 상기 대상 파일에 대하여 상기 응용 프로그램의 상기 저장 요청을 처리하는 동작 및 상기 읽기 요청을 처리하는 동작을 수행하도록 구성될 수 있다.The processor 810 is electrically connected to the memory 820 and the network module 830 to process the storage request of the application program and the read request for the target file. can be configured to

이상에서 본 명세서의 기술에 대한 바람직한 실시 예가 첨부된 도면들을 참조하여 설명되었다. 여기서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야 한다.In the above, preferred embodiments of the technology of the present specification have been described with reference to the accompanying drawings. Here, the terms or words used in the present specification and claims should not be construed as being limited to conventional or dictionary meanings, but should be interpreted as meanings and concepts consistent with the technical spirit of the present invention.

본 발명의 범위는 본 명세서에 개시된 실시 예들로 한정되지 아니하고, 본 발명은 본 발명의 사상 및 특허청구범위에 기재된 범주 내에서 다양한 형태로 수정, 변경, 또는 개선될 수 있다.The scope of the present invention is not limited to the embodiments disclosed herein, and the present invention can be modified, changed, or improved in various forms within the scope of the spirit and claims of the present invention.

Claims (14)

시스템 내의 응용 프로그램들에 의해 공통으로 호출될 수 있는 API(Application Programming Interface) 형태의 파일 입출력 인터페이스를 통해 상기 응용 프로그램들 중 제1 프로그램으로부터 대상 파일에 대한 저장 요청을 수신하는 동작;
상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작;
상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및
상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 포함하고,
상기 대상 파일을 암호화 하는 동작은
상기 대상 파일의 종류에 적어도 일부 기초하여 상기 대상 파일의 암호화 여부를 판단하는 동작;
상기 대상 파일이 암호화되는 것으로 판단되는 경우, 상기 대상 파일을 기초로 하나 이상의 암호화된 청크(chunk)로 구성된 보호 데이터(protected data)를 생성하는 동작; 및
상기 하나 이상의 청크를 상기 저장소를 구성하는 분산된 서버에 각각 분배되어 저장되도록 네트워크 인터페이스를 통해 전송하는 동작
을 포함하는 컴퓨터의 파일 유출 방지 방법.
receiving a storage request for a target file from a first program among the application programs through an API (Application Programming Interface) type file input/output interface that can be commonly called by application programs in the system;
determining whether the type of the target file is included in a list of allowed types in a preset policy;
encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and
and storing the encrypted target file in a network-connected storage,
The operation of encrypting the target file is
determining whether to encrypt the target file based at least in part on the type of the target file;
generating protected data including one or more encrypted chunks based on the target file when it is determined that the target file is encrypted; and
Transmitting the one or more chunks through a network interface to be distributed and stored in distributed servers constituting the storage, respectively
A method of preventing file leakage on a computer, comprising:
제1 항에 있어서, 상기 제1 프로그램이 상기 미리 설정된 정책 내의 상기 대상 파일의 형태를 위한 프로그램 목록에 포함되지 않은 경우, 상기 저장 요청에 대응하여 오류 값으로 응답하는 동작을 더 포함하는 컴퓨터의 파일 유출 방지 방법.The file of claim 1, further comprising responding with an error value in response to the storage request when the first program is not included in the program list for the type of the target file in the preset policy. How to prevent spills. 제1 항에 있어서, 상기 공통으로 호출될 수 있는 API 형태는
POSIX(Portable Operating System Interface) 또는 FUSE(Filesystem in User-Space)를 포함하는 컴퓨터의 파일 유출 방지 방법.
The method of claim 1, wherein the API type that can be commonly called is
A method of preventing the leak of files on your computer, including the Portable Operating System Interface (POSIX) or Filesystem in User-Space (FUSE).
삭제delete 제1 항에 있어서,
상기 저장소를 구성하는 상기 분산된 서버는 하나 이상의 NAS(Network Attached Storage) 서버를 포함하는 컴퓨터의 파일 유출 방지 방법.
According to claim 1,
The distributed server constituting the storage method includes one or more NAS (Network Attached Storage) servers.
시스템 내의 응용 프로그램들에 의해 공통으로 호출될 수 있는 API(Application Programming Interface) 형태의 파일 입출력 인터페이스를 통해 상기 응용 프로그램들 중 제1 프로그램으로부터 대상 파일에 대한 저장 요청을 수신하는 동작;
상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작;
상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작;
상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작;
상기 파일 입출력 인터페이스를 통해 상기 응용 프로그램들 중 제2 프로그램으로부터 상기 암호화된 대상 파일에 대한 읽기 요청을 수신하는 동작;
상기 제2 프로그램으로부터의 상기 읽기 요청이 상기 미리 설정된 정책에 부합하는지 여부를 판단하는 동작;
상기 읽기 요청이 상기 미리 설정된 정책에 부합하지 않는 것으로 판단되는 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및
상기 읽기 요청이 상기 미리 설정된 정책에 부합하는 것으로 판단되는 경우 상기 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작을 포함하는 컴퓨터의 파일 유출 방지 방법.
receiving a storage request for a target file from a first program among the application programs through an API (Application Programming Interface) type file input/output interface that can be commonly called by application programs in the system;
determining whether the type of the target file is included in a list of allowed types in a preset policy;
encrypting the target file when it is determined that the type of the target file is included in the allowed type list;
storing the encrypted target file in a network-connected storage;
receiving a read request for the encrypted target file from a second program among the application programs through the file input/output interface;
determining whether the read request from the second program meets the preset policy;
transmitting the target file in cipher text form in response to the read request when it is determined that the read request does not conform to the preset policy; and
when it is determined that the read request conforms to the preset policy, decrypting the target file in a plain text format, and transmitting the target file in the plain text format in response to the read request; How to prevent.
제6 항에 있어서, 상기 제2 프로그램으로부터의 상기 읽기 요청이 상기 미리 설정된 정책에 부합하는지 여부는
상기 제2 프로그램이 상기 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되지 않은 경우, 또는 상기 제2 프로그램이 상기 대상 파일에 대한 타입과 연관되어 있지 않은 경우, 상기 정책에 부합하지 않는 것으로 판단하는 컴퓨터의 파일 유출 방지 방법.
The method of claim 6 , wherein it is determined whether the read request from the second program meets the preset policy.
When the second program is not included in the list of allowed programs in the preset policy, or when the second program is not associated with the type for the target file, the computer that determines that it does not meet the policy How to prevent file leaks.
삭제delete 응용 프로그램 및 파일 시스템 모듈을 저장하는 메모리, 상기 파일 시스템 모듈은 상기 응용 프로그램의에 의해 공통으로 호출될 수 있는 API 형태의 파일 입출력 인터페이스들을 통해 수신되는 파일 저장 요청 및 읽기 요청을 처리하는 동작을 실행하는 명령어를 포함하도록 구성되고;
네트워크의 저장소와 연결을 수립하고, 상기 파일 시스템 모듈에 의해 처리되는 대상 파일을 상기 저장소에 송수신하는 네트워크 모듈; 및
상기 메모리 및 상기 네트워크 모듈과 전기적으로 연결되어, 상기 대상 파일에 대하여 상기 응용 프로그램의 상기 저장 요청을 처리하는 동작 및 상기 읽기 요청을 처리하는 동작을 수행하는 프로세서를 포함하는 파일 유출 방지 장치로서,

상기 프로세서는 상기 저장 요청을 처리하기 위하여:
상기 파일 입출력 인터페이스들 중 제1 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 대상 파일에 대한 저장 요청을 수신하는 동작;
상기 대상 파일의 형태(type)가 미리 설정된 정책 내의 허용 형태 목록에 포함되어 있는지 여부를 판단하는 동작;
상기 대상 파일의 형태가 상기 허용 형태 목록에 포함되어 있는 것으로 판단되는 경우, 상기 대상 파일을 암호화하는 동작; 및
상기 암호화된 대상 파일을 네트워크로 연결된 저장소에 저장하는 동작을 수행하고,
상기 프로세서는 상기 읽기 요청을 처리하기 위하여:
상기 파일 입출력 인터페이스들 중 제2 인터페이스를 통해 상기 응용 프로그램들 중 어느 하나로부터 상기 대상 파일에 대한 읽기 요청을 수신하는 동작, 상기 대상 파일은 암호문 형태로 네트워크로 연결된 저장소에 저장되어 있고;
상기 응용 프로그램이 미리 설정된 정책 내의 허용된 프로그램 목록에 포함되고, 상기 응용프로그램이 상기 대상 파일의 형태(type)과 연관되어 있는 경우, 상기 암호화된 대상 파일을 평문 형태로 복호화하고, 상기 평문 형태의 상기 대상 파일을 상기 읽기 요청에 대한 응답으로 전송하는 동작; 및
상기 응용 프로그램이 상기 정책 내의 상기 허용된 프로그램 목록에 포함되어 있지 않은 경우, 상기 대상 파일을 암호문 형태로 상기 읽기 요청에 대한 응답으로 전송하는 동작을 포함하는
파일 유출 방지 장치.
A memory for storing an application program and a file system module, the file system module executes an operation of processing a file storage request and a read request received through file input/output interfaces in the form of an API that can be commonly called by the application program is configured to include instructions to;
a network module that establishes a connection with a storage of a network and transmits and receives a target file processed by the file system module to the storage; and
A file leakage prevention device comprising a processor electrically connected to the memory and the network module to process the storage request of the application program and process the read request for the target file,

The processor to process the storage request:
receiving a storage request for a target file from any one of the application programs through a first interface among the file input/output interfaces;
determining whether the type of the target file is included in a list of allowed types in a preset policy;
encrypting the target file when it is determined that the type of the target file is included in the allowed type list; and
performing an operation to store the encrypted target file in a network-connected storage,
The processor to process the read request:
receiving a read request for the target file from any one of the application programs through a second interface among the file input/output interfaces, the target file being stored in a network-connected storage in the form of cipher text;
When the application program is included in the list of allowed programs in a preset policy and the application program is associated with the type of the target file, the encrypted target file is decrypted in plaintext form, and the transmitting the target file in response to the read request; and
When the application program is not included in the list of allowed programs in the policy, transmitting the target file in the form of a cipher text in response to the read request.
File leak protection device.
제9 항에 있어서,
상기 파일 시스템 모듈은 상기 파일 유출 방지 장치의 운영체제의 일부에 포함되어 파일 시스템을 처리하는 모듈 중 하나로 구성되고,
상기 공통으로 호출될 수 있는 API 형태는 상기 운영체제의 파일 입출력 API 형태인 것을 특징으로 하는 파일 유출 방지 장치.
10. The method of claim 9,
The file system module is included in a part of the operating system of the file leakage prevention device and is configured as one of the modules for processing the file system,
The file leakage prevention device, characterized in that the API type that can be commonly called is the file input/output API type of the operating system.
제10 항에 있어서,
상기 공통으로 호출될 수 있는 API는 POSIX(Portable Operating System Interface) API를 포함하는 파일 유출 방지 장치.
11. The method of claim 10,
The API that can be commonly called is a file leakage prevention device including a POSIX (Portable Operating System Interface) API.
제11 항에 있어서,
상기 저장 요청을 위한 인터페이스는 open, write 또는 close를 포함하고, 상기 읽기 요청을 위한 인터페이스는 open, read 또는 close를 포함하는 파일 유출 방지 장치.
12. The method of claim 11,
The interface for the storage request includes open, write, or close, and the interface for the read request includes open, read or close.
제9 항에 있어서,
상기 공통으로 호출될 수 있는 API는 파일 FUSE(Filesystem in User-Space)를 포함하는 파일 유출 방지 장치.
10. The method of claim 9,
The API that can be commonly called is a file leakage prevention device including a file FUSE (Filesystem in User-Space).
삭제delete
KR1020170151709A 2017-11-14 2017-11-14 File leakage prevention based on security file system and commonly used file access interface KR102368208B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170151709A KR102368208B1 (en) 2017-11-14 2017-11-14 File leakage prevention based on security file system and commonly used file access interface

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170151709A KR102368208B1 (en) 2017-11-14 2017-11-14 File leakage prevention based on security file system and commonly used file access interface

Publications (2)

Publication Number Publication Date
KR20190054763A KR20190054763A (en) 2019-05-22
KR102368208B1 true KR102368208B1 (en) 2022-02-28

Family

ID=66679895

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170151709A KR102368208B1 (en) 2017-11-14 2017-11-14 File leakage prevention based on security file system and commonly used file access interface

Country Status (1)

Country Link
KR (1) KR102368208B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961931A (en) * 2021-10-19 2022-01-21 北京字节跳动网络技术有限公司 Adb tool using method and device and electronic equipment
KR102446933B1 (en) * 2022-02-23 2022-09-26 프라이빗테크놀로지 주식회사 System for controlling transmission and reception of file of application and method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257206A (en) * 2009-04-24 2010-11-11 Nec Corp File server, file providing method and program
CN102014133A (en) * 2010-11-26 2011-04-13 清华大学 Method for implementing safe storage system in cloud storage environment

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150100890A1 (en) * 2013-10-04 2015-04-09 Samsung Electronics Co., Ltd. User interface management method and system

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010257206A (en) * 2009-04-24 2010-11-11 Nec Corp File server, file providing method and program
CN102014133A (en) * 2010-11-26 2011-04-13 清华大学 Method for implementing safe storage system in cloud storage environment

Also Published As

Publication number Publication date
KR20190054763A (en) 2019-05-22

Similar Documents

Publication Publication Date Title
CN108632284B (en) User data authorization method, medium, device and computing equipment based on block chain
US10917394B2 (en) Data operations using a proxy encryption key
US10218790B2 (en) Providing access to a resource for a computer from within a restricted network
CN111404923B (en) Control method and system for access authority of container cluster
US10360402B2 (en) Intercepting sensitive data using hashed candidates
US9407642B2 (en) Application access control method and electronic apparatus implementing the same
US10440111B2 (en) Application execution program, application execution method, and information processing terminal device that executes application
US9659189B2 (en) Systems and methods of safeguarding user information while interacting with online service providers
CN112287372B (en) Method and apparatus for protecting clipboard privacy
CN107528830B (en) Account login method, system and storage medium
US20170201378A1 (en) Electronic device and method for authenticating identification information thereof
US10762231B2 (en) Protecting screenshots of applications executing in a protected workspace container provided in a mobile device
CN111695166A (en) Disk encryption protection method and device
CN111339543A (en) File processing method and device, equipment and storage medium
US20220294624A1 (en) Encryption method and device, electronic apparatus and storage medium
KR102180529B1 (en) Application access control method and electronic device implementing the same
KR101757407B1 (en) Apparatus, method and computer program for merging binary files
US11233661B2 (en) Device and method for authenticating application in execution environment in trust zone
KR102368208B1 (en) File leakage prevention based on security file system and commonly used file access interface
US10049222B1 (en) Establishing application trust levels using taint propagation
US10192056B1 (en) Systems and methods for authenticating whole disk encryption systems
KR102251831B1 (en) Device and method thereof for requesting for a task executtion of an external device
US11445057B2 (en) Private contact sharing
US11265156B2 (en) Secrets management using key agreement
US9537842B2 (en) Secondary communications channel facilitating document security

Legal Events

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