WO2024106794A1 - 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치 - Google Patents

리눅스 기반 운영체제에서의 데이터 보호방법 및 장치 Download PDF

Info

Publication number
WO2024106794A1
WO2024106794A1 PCT/KR2023/016835 KR2023016835W WO2024106794A1 WO 2024106794 A1 WO2024106794 A1 WO 2024106794A1 KR 2023016835 W KR2023016835 W KR 2023016835W WO 2024106794 A1 WO2024106794 A1 WO 2024106794A1
Authority
WO
WIPO (PCT)
Prior art keywords
fuse
file
user
daemon
data
Prior art date
Application number
PCT/KR2023/016835
Other languages
English (en)
French (fr)
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
Priority claimed from KR1020220154631A external-priority patent/KR20240072714A/ko
Priority claimed from KR1020230132725A external-priority patent/KR102675729B1/ko
Application filed by (주)리얼시큐 filed Critical (주)리얼시큐
Publication of WO2024106794A1 publication Critical patent/WO2024106794A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords

Definitions

  • the present invention relates to data protection technology, and more specifically, to a data protection method and device in a Linux-based operating system that protects files containing data to be protected by storing them in a FUSE-mounted storage area.
  • This invention is an energy-saving smart lighting platform of the Energy Demand Management Core Technology Development (ET) research project managed by the Korea Institute of Energy Technology Evaluation and Planning under the Ministry of Trade, Industry and Energy as a specialized project management organization under national project identification number 1415186771 and task number 20202020800220, respectively.
  • E Energy Demand Management Core Technology Development
  • This is a technology development and empirical research project, and was conducted from 2023.01.01 to 2023.12.31 with the Electronics and Telecommunications Research Institute as the dedicated project implementation agency.
  • Linux-based operating systems such as Ubuntu, CentOS, etc.
  • data is stored in the Linux file system, which is used as a standard interface for applications.
  • the Linux File System is a built-in layer of Linux-based operating systems that sorts files on disk storage and manages file names, file sizes, creation dates, and more information about files.
  • Patent number 1014145800000 registered at the Korean Intellectual Property Office under the name of a multi-class based secure Linux operating system.
  • This includes an access control unit that controls access to users by applying the BLP (Bell-La Padula) model; a reference monitor unit including a subject security label defining a permission level and protection category for the subject and an object security label defining a permission level and protection category for the object; a kernel mode encryption unit that automatically determines whether to encrypt and perform encryption according to the permission level and protection category recorded in the file, with reference to the permission level and protection category recorded in the subject security label and the object security label; and a real-time monitoring unit that records file access in real time using a dynamic database.
  • BLP Bell-La Padula
  • a reference monitor unit including a subject security label defining a permission level and protection category for the subject and an object security label defining a permission level and protection category for the object
  • a kernel mode encryption unit that automatically determines whether to encrypt and perform encryption according to the permission level and protection category
  • the purpose of the present invention is to provide a data protection method and device in a Linux-based operating system that safely protects the data to be protected by storing files containing data to be protected in a FUSE storage area that is accessible only when FUSE is mounted. .
  • Another object of the present invention is to provide a data protection method and device in a Linux-based operating system that safely protects the data by allowing access to files containing protected data recorded in the FUSE storage area only upon an access request by an authorized user. is to provide.
  • another object of the present invention is that when a request for a file containing data subject to protection recorded in the FUSE storage area is read, the original file is read and returned through a decryption process, and in the case of write, the original file is returned through an encryption process.
  • Another object of the present invention is to make the physical file address in the FUSE mounted state and the physical file address in the FUSE unmounted state the same, preventing damage that may occur when one of the files recorded in the divided file address is damaged. It provides data protection methods and devices in Linux-based operating systems that can prevent possible FUSE problem situations.
  • a data protection device in a Linux-based operating system includes a physical storage device; and a software module, a processor equipped with a user application, a user library, a virtual file system, a kernel-based file system, a FUSE kernel driver, and a FUSE user daemon.
  • the user application provides access to the FUSE file path.
  • the user library When the requested request information is provided to the user library, the user library provides the request information to the virtual file system, and if the virtual file system has a processor for the FUSE file path included in the request information registered in advance, It is determined that FUSE is mounted and the request information is provided to the pre-registered FUSE kernel driver, the FUSE kernel driver provides the request information to the FUSE user daemon, and the FUSE user daemon is provided through the kernel-based file system.
  • the FUSE file path directly accesses the file at the file address of the physical storage device, and the FUSE user daemon sends access result information to the file at the file address of the physical storage device to the FUSE kernel driver.
  • the FUSE kernel driver returns access result information for the file to the virtual file system
  • the virtual file system returns access result information for the file to the user library, and the user library A
  • the access result information for the file is returned to the user application
  • the file for the FUSE file path includes data subject to protection.
  • the present invention has the effect of safely protecting the data subject to protection by storing the file containing the data subject to protection in a FUSE storage area that is accessible only when the data is FUSE mounted.
  • the present invention has the effect of safely protecting the data by allowing access to files containing protected data recorded in the FUSE storage area only upon an access request by an authenticated user.
  • the original file when a request for access to a file containing data subject to protection recorded in the FUSE storage area is read, the original file is read and returned through a decryption process, and in the case of write, the request is made by going through an encryption process and writing to the original file. , has the effect of safely protecting the data subject to protection.
  • the present invention makes the physical file address of the FUSE mounted state and the physical file address of the FUSE unmounted state the same, preventing FUSE damage that may occur when one of the files recorded in the divided file address is damaged. It has the effect of preventing problem situations in advance.
  • FIG. 1 is a schematic configuration diagram of a data protection device according to a preferred embodiment of the present invention.
  • Figure 2 is a diagram illustrating a FUSE file path according to a preferred embodiment of the present invention.
  • FIG. 3 is a diagram illustrating a schematic processing procedure of the processor of FIG. 1.
  • Figure 4 is a software structure diagram according to a preferred embodiment of the present invention.
  • 5 and 6 are diagrams showing the procedures of a data protection method according to a preferred embodiment of the present invention.
  • the present invention safely protects the data to be protected by storing the file containing the data to be protected in a FUSE storage area that is accessible only when the data is mounted in FUSE.
  • the present invention safely protects the data by allowing access to files containing protected data recorded in the FUSE storage area only upon an access request by an authenticated user.
  • the original file is read and returned through a decryption process, and in the case of write, the request is made by going through an encryption process and writing to the original file. , Safely protect the above-mentioned data.
  • the present invention makes the physical file address of the FUSE mounted state and the physical file address of the FUSE unmounted state the same, preventing FUSE damage that may occur when one of the files recorded in the divided file address is damaged. Helps prevent problem situations in advance.
  • the Filesystem in Userspace (hereinafter referred to as FUSE) will be described.
  • the FUSE project started in 2004 and was implemented in the Linux kernel in 2005.
  • the FUSE allows unauthorized users to create their own file systems without editing the kernel source code, thereby avoiding licensing issues.
  • the FUSE is located in user space, which is easy to develop, and the user space program does not cause damage to the system even if the user space program is damaged, thereby increasing the stability of the system.
  • programs in the kernel file system have that risk.
  • the FUSE has limitations in that it performs slower than the basic Linux file system depending on the workload (write/read) or hardware, so moving the file system to user space for large amounts of data is not efficient.
  • the present invention uses the above FUSE to safely protect data subject to protection in a Linux-based operating system.
  • the present invention can limit the protection target to key data such as encryption keys that are not large in size, taking into account the workload and performance degradation of the CPU.
  • the data protection device consists of a processor 10, a physical storage device 20, and a user interface device 30.
  • the processor 10 is FUSE mounted (makeFuseMount()), FUSE unmounted (unmountFuse()), or FUSE mounted according to a user's request through the user interface device 30. Performs read/write data, etc. on files containing data subject to protection in the FUSE storage area accessible from .
  • the storage device 20 provides a physical storage area and a FUSE storage area for storing data to be protected when FUSE is mounted or FUSE is unmounted.
  • the FUSE storage area when FUSE is mounted or FUSE unmounted has the same path (/path/to/fuse-data) as shown in Figure 2, which is the data in the FUSE storage area when FUSE is unmounted during FUSE mount.
  • the stability of the system can be promoted by preventing the data recorded in the FUSE storage area of the FUSE mount from being changed or changed when FUSE is unmounted.
  • the user interface device 30 is responsible for the interface between the processor 10 and the user.
  • a schematic processing procedure of the processor 10 will be further described with reference to FIG. 3.
  • the processor 10 performs a FUSE mount (makeFuseMount()) (step 40).
  • a FUSE mount makeFuseMount()
  • the processor 10 reads or writes a file containing key data for data to be protected, for example, an encryption key, from the FUSE storage area (Read/Write data) (step 50).
  • a file containing key data for data to be protected for example, an encryption key
  • the processor 10 reads the original file and returns it through a decryption process, and if it is a write request, it returns the original file through an encryption process. By recording it in a file, the data subject to protection is safely protected.
  • the processor 10 When reading or writing the data to be protected is completed, the processor 10 performs FUSE unmounting (unmountFuse()) (step 60).
  • Software modules belonging to the user space 101 include a user application 113, a user library 114, a user unit 103 for performing the FUSE function, a FUSE daemon program 109, and a FUSE library program 110.
  • the user unit 103 includes a FUSE user daemon 105 and a FUSE library 106.
  • the software modules belonging to the kernel space 102 include a virtual file system 117, a kernel-based file system 118, and a FUSE kernel unit 104, and the FUSE kernel unit 104 includes a FUSE device 107. and FUSE kernel driver 108.
  • the user application 113 is composed of C/C+, JAVA, etc. and performs functions according to user requests. Among the above functions, it includes protecting files containing data to be protected through the FUSE function, as well as reading/writing files containing data to be protected.
  • the user library 114 requests file access to the virtual file system 117 located in the kernel space 102 according to the request of the user application 113, and files provided by the virtual file system 117. Result information regarding the access request is returned to the user application (113). In particular, the user library 114 requests the FUSE daemon program 109 to mount/unmount FUSE according to a request from the user application 113.
  • the virtual file system 117 allows access to multiple file systems through an abstraction layer that exists above the actual file system.
  • This virtual file system 117 provides file access to the kernel-based file system 118 or the FUSE kernel unit 104 at the request of the user library 114, the FUSE daemon program 109, or the FUSE user daemon 105. request, and result information regarding the file access request returned by the kernel-based file system 118 or the FUSE kernel unit 104 is returned to the user library 114.
  • the virtual file system 117 registers information about the processor for the FUSE file path, that is, the FUSE tunnel driver 108, when mounting FUSE.
  • the kernel-based file system 118 manages the physical storage device 20 and the files therein, and performs operations according to access requests to the physical storage device 20 according to requests from the virtual file system 117. And the result is returned to the virtual file system 117.
  • the kernel-based file system 118 is operated by the FUSE daemon program 109 existing in the user space 101 through the virtual file system 117 or from the FUSE user daemon 105 of the user unit 103. The request is performed, and the result is returned to the FUSE daemon program 109 or the FUSE user daemon 105 through the virtual file system 117.
  • the FUSE daemon program 109 is executed according to the request of the user library 114 to perform the FUSE mount, and when the FUSE mount is completed, it registers itself as the FUSE user daemon 105 and acts as the FUSE user daemon 105. It works.
  • the FUSE daemon program 109 receives the file address of the physical storage device for the FUSE file path from the kernel-based system 118.
  • the FUSE library program 110 sends FUSE file path information and user and group identification information (UID:RSFUSE, GID:RSFUSE) to the FUSE kernel unit 104. It is provided as a kernel device 107.
  • the FUSE kernel driver 108 stores them and operates the virtual file system 117. This provides information indicating that the processor for the FUSE file path is the user.
  • the virtual file system 117 stores the information, and when a request for the FUSE file path is provided according to the information, it provides it to the FUSE kernel driver 108 of the FUSE kernel unit 104 for processing. request.
  • the FUSE kernel driver 108 checks whether the user and group identification information (UID:RSFUSE, GID:RSFUSE) included in the request information matches the FUSE file path. Authenticate, and if the authentication is successful, access to the FUSE file path is requested to the FUSE user daemon 105.
  • the request is provided to the FUSE user daemon 105 via the FUSE device 107 and the FUSE library 106. More specifically, the FUSE kernel driver 108 allocates a FUSE request structure and writes it to a queue, and the FUSE user daemon 105 reads the FUSE request structure from the queue of the FUSE device 107 to read the queued request. can be processed. And when the request processing is completed, the FUSE user daemon 105 writes a response to the request into the queue of the FUSE device 107. Based on the response written in this way, the FUSE kernel driver 108 can confirm that the request has been completed.
  • the FUSE user daemon 105 reads the FUSE request through the FUSE device 107, processes the request, and then writes a response to the FUSE device 107 using the FUSE library 106, thereby transmitting and receiving data.
  • the FUSE kernel driver 108 when response information is provided in response to a request for access to the FUSE file path from the FUSE user daemon 105, the FUSE kernel driver 108 returns it to the virtual file system 117.
  • the FUSE user daemon 105 physically stores the FUSE file path corresponding to the FUSE file path through the kernel-based file system 118.
  • the kernel-based file system 118 and the FUSE user daemon 105 perform data communication via the virtual file system 117.
  • the user application 113 transmits information requesting a file stored in the FUSE file path to the user library 114 according to the user's request (step 200).
  • the FUSE file path may be set in advance as a file path for a file recording data to be protected.
  • the user library 114 which has received information requesting a file stored in the FUSE file path, transmits information requesting confirmation whether a processor for the FUSE file path is registered to the virtual file system 117 (step 201).
  • the virtual file system 117 In response to the request, the virtual file system 117 returns information indicating whether to register a processor for the FUSE file path to the user library 114 (step 202).
  • the user library 114 executes the FUSE daemon program 109 to attempt a FUSE mount (step 204).
  • the FUSE daemon program 109 When the FUSE daemon program 109 is executed, it accesses the kernel-based file system 118 through the virtual file system 117 and stores the physical storage device 20 for the FUSE directory corresponding to the FUSE file path. Request a file address (steps 206 and 208). In response to the above request, the kernel-based file system 118 returns the file address of the physical storage device 20 for the FUSE directory to the FUSE daemon program 109 through the virtual file system 117 (steps 210 and 212). ). Here, the kernel-based file system 118 may store information about the file address corresponding to the FUSE directory in advance.
  • the FUSE daemon program 109 stores the file address of the physical storage device 20 for the FUSE directory, registers itself as the FUSE user daemon 105, and calls the FUSE library program 110 to use the FUSE
  • the file path and user authentication information are provided to the FUSE library program 110 (steps 214 and 216).
  • the FUSE library program 110 transmits the FUSE file path and user authentication information to the FUSE kernel driver 108 (step 218).
  • the FUSE kernel driver 108 stores the FUSE file path and user authentication information and transmits processor information about the FUSE file path to the virtual file system 117 (step 220).
  • the virtual file system 117 which has received the processor information for the FUSE file path, registers the processor information for the FUSE file path and notifies the user library 114 of the FUSE mount (step 224).
  • the user library 114 When the user library 114 is notified of completion of the FUSE mount, it returns to step 203 (step 226).
  • the user library 114 requests the virtual file system 117 to access the file in the FUSE file path (step 300).
  • the virtual file system 117 checks whether the processor corresponding to the FUSE file path is registered in advance (step 302). If a processor corresponding to the FUSE file path is registered in advance, the virtual file system 117 transmits the UID/GID of the requester and the FUSE file path to the FUSE kernel driver 108 according to the processor information for the FUSE file path. (Step 304).
  • the FUSE kernel driver 108 performs authentication by checking whether the UID/GID and FUSE file path provided by the requester correspond to the pre-registered UID/GID and FUSE file path (step 306). If the authentication fails, the FUSE kernel driver 108 determines that the data request is made by an abnormal user and processes an error (step 310).
  • the FUSE kernel driver 108 transmits access request information for the FUSE file path to the FUSE user daemon 105 (step 312).
  • the FUSE user daemon 105 which has received the access request information, directly accesses the file address of the physical storage device 20 corresponding to the FUSE file path through the kernel-based file system 118 and the virtual file system 117.
  • Read or write to the file of data subject to protection step 314.
  • the FUSE user daemon 106 reads the original file and returns it through a decryption process, and when it is a write request, it performs an encryption process. The data subject to protection is safely protected by being recorded in the original file.
  • the FUSE user daemon 105 sends result information following a request for access to the FUSE file path, which is the result of reading or writing to a file of data subject to protection, to the FUSE kernel driver 108 and the virtual file system 117. ) to the user library 114 (steps 316, 318, and 320).
  • result information is provided in response to an access request for the FUSE file path, the user library 114 transmits it to the user application 113 (step 324).
  • the FUSE mount status is unmounted upon the elapse of a predetermined time or upon a user's request through the user application 113. That is, in response to a FUSE unmount request through the user application 113, the user library 114 requests the virtual file system 117 and the FUSE user daemon 105 to unmount FUSE, and according to the FUSE unmount request, the virtual In addition to the file system 117 initializing the processor information for the FUSE file path, the FUSE user daemon 105 also initializes the physical address information corresponding to the FUSE file path and the FUSE daemon program 109. restore one's condition.
  • the present invention relates to data protection technology in a network, and more specifically, to provide a data protection method and device in a Linux-based operating system that protects files containing data to be protected by storing them in a FUSE-mounted storage area.
  • a device and method for safely protecting encryption keys used to protect data in a network can be provided.

Landscapes

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

Abstract

본 발명에 따른 리눅스 기반 운영체제에서의 데이터 보호장치는, 물리적인 저장장치; 및 소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, FUSE 커널 드라이버 및 FUSE 사용자 데몬이 구비된 프로세서;를 포함하여 구성될 수 있다. 이를 통해, 본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호할 수 있게 한다.

Description

리눅스 기반 운영체제에서의 데이터 보호방법 및 장치
본 발명은 데이터 보호기술에 관한 것으로, 더욱 상세하게는 보호대상 데이터가 실린 파일을 FUSE 마운트된 저장영역에 저장하여 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치에 관한 것이다.
본 발명은 각각 국가과제고유번호 1415186771 및 과제번호 20202020800220로서, 산업통상자원부 산하의 한국에너지기술평가원이 과제관리전문기관으로 관리하는 에너지 수요관리핵심기술개발(에트) 연구사업의 에너지 절감형 스마트조명 플랫폼 기술 개발 및 실증 연구과제이며, 한국전자통신연구원이 전담과제수행기관으로 2023.01.01 ~2023.12.31까지 수행된 연구과제이다.
새로운 기술들의 출현에 따라 안전하지 않은 데이터 스토리지는 가장 중요한 네트워크 보안 문제 중 하나로 대두되고 있다.
일반적으로 Ubuntu, CentOS 등과 같은 리눅스 기반 운영 체제(Linux-based OS)에서 데이터는 응용 프로그램의 표준 인터페이스로 사용되는 리눅스 파일 시스템에 저장된다. 상기 리눅스 파일 시스템(Linux File System)은 리눅스 기반 운영 체제의 내장 계층으로, 디스크 저장소의 파일을 정렬하며, 파일 이름, 파일 크기, 생성 날짜 및 파일에 대한 더 많은 정보를 관리한다.
그리고 상기의 데이터를 보호하기 위해 사용되는 암호화 키 등과 같은 중요 데이터는 루트 권한을 가진 사용자 등만이 접근할 수 있도록 제한하였다. 그러나 공격자가 루트(root) 권한을 가진 경우에는 데이터의 보호가 어려운 문제가 있었다.
종래 리눅스 기반 운영체제에서의 데이터 보호기술로는 대한민국 특허청에 리눅스 커널 보안 기반 침입방지 시스템을 명칭으로 하여 특허등록된 제1014166180000호가 있다. 이는 차단할 IP주소를 기록한 IP테이블; 차단할 IP주소를 기록하는 데이터베이스; 상기 IP테이블을 통해서 차단되지 않은 패킷에 대하여 공격 여부를 판명하는 탐지 엔진; 및, 공격으로 판단된 패킷의 IP주소(이하 공격 IP주소)를 상기 데이터베이스에 저장하고, 상기 공격 IP주소를 상기 IP테이블에 저장하도록 명령하는 차단 엔진 및, 상기 데이터베이스에 저장된 IP주소를 보여주는 자원 모니터링 모듈을 포함하여, 리눅스 시스템의 침입을 탐지하고, 침입으로 탐지된 접근에 접근 권한을 제한하는 리눅스 커널 보안 기반 침입방지 시스템을 개시하고 있다.
그리고 대한민국 특허청에 다중 등급 기반 보안 리눅스 운영 시스템을 명칭으로 하여 특허등록된 제1014145800000호가 있다. 이는 BLP(Bell-La Padula) 모델을 적용하여 사용자에 대한 접근을 통제하는 접근 통제부; 주체에 대한 허가 등급 및 보호 범주를 정의한 주체 보안 레이블과, 객체에 대한 허가 등급 및 보호 범주를 정의한 객체 보안 레이블을 구비하는 참조 모니터부; 상기 주체 보안 레이블과 상기 객체 보안 레이블에 기록된 허가 등급 및 보호 범주를 참조하여, 파일에 기록된 허가 등급 및 보호 범주에 따라 암호화 여부를 자동으로 결정하여 암호화를 수행하는 커널모드 암호부; 및, 동적인 데이터베이스를 이용하여 파일의 접근을 실시간으로 기록하는 실시간 감시부를 포함하는 시스템을 개시하고 있다.
상기한 바와 같이 종래에는 리눅스 기반 운영 체제에 적용되는 다양한 보안 방식이 꾸준히 제안되고 있다. 그러나 리눅스 기반 운영 체제에서 파일 시스템은 운영 체제 커널(kernel)의 일부로, 커널 소스 코드를 이해하는 것은 매우 복잡하고 어렵다. 따라서 대부분의 개발자들에게 커널 파일 시스템을 작성하거나 수정하여 데이터 보안 기능을 구현시키는 것은 쉽지 않은 문제이었다. 게다가 라이선스 문제 때문에 소스 코드가 공개되지 않는 한 어떠한 파일 시스템도 커널에 통합될 수 없었다.
이에 종래에는 리눅스 기반 운영 체제에서 데이터를 효과적으로 보호할 수 있는 기술의 개발이 절실하게 요망되었다.
본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 데에 그 목적이 있다.
또한 본 발명의 다른 목적은 인증된 사용자에 의한 접근요청에 의해서만 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대해 접근가능하게 하여 상기 데이터를 안전하게 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 것이다.
또한 본 발명의 또 다른 목적은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 겁근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 것이다.
또한 본 발명의 또 다른 목적은 FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소를 동일하게 하여, 이분화된 파일주소에 기록된 파일 중 어느 하나가 훼손됨에 따라 발생할 수 있는 FUSE 문제 상황을 미연에 방지할 수 있게 하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 것이다.
상기한 목적을 달성하기 위한 본 발명에 따르는 리눅스 기반 운영체제에서의 데이터 보호장치는, 물리적인 저장장치; 및 소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, FUSE 커널 드라이버 및 FUSE 사용자 데몬이 구비된 프로세서;를 포함하여 구성되며, 상기 사용자 어플리케이션이 FUSE 파일경로에 대한 접근을 요청하는 요청정보를 상기 사용자 라이브러리로 제공하면, 상기 사용자 라이브러리가 상기 요청정보를 상기 가상 파일 시스템으로 제공하고, 상기 가상 파일 시스템이 상기 요청정보에 포함된 FUSE 파일경로에 대한 처리자가 미리 등록되어 있으면 FUSE 마운트된 것으로 판단하여 미리 등록된 상기 FUSE 커널 드라이버로 상기 요청정보를 제공하고, 상기 FUSE 커널 드라이버가 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공하며, 상기 FUSE 사용자 데몬이 상기 커널 기반 파일 시스템을 통해 상기 FUSE 파일경로에 대응되게 미리 정해진 상기 물리적인 저장장치의 파일주소의 파일로 직접 접근하며, 상기 FUSE 사용자 데몬이, 상기 물리적인 저장장치의 파일주소의 파일에 대한 접근결과정보를 상기 FUSE 커널 드라이버로 반환하고, 상기 FUSE 커널 드라이버가, 상기 파일에 대한 접근결과정보를 상기 가상 파일 시스템으로 반환하고, 상기 가상 파일 시스템이, 상기 파일에 대한 접근결과정보를 상기 사용자 라이브러리로 반환하고, 상기 사용자 라이브러리가, 상기 파일에 대한 접근결과정보를 상기 사용자 어플리케이션으로 반환하며, 상기 FUSE 파일경로에 대한 파일에는 보호대상 데이터가 포함됨을 특징으로 한다.
본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호하는 효과가 있다.
또한 본 발명은 인증된 사용자에 의한 접근요청에 의해서만 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대해 접근가능하게 하여 상기 데이터를 안전하게 보호하는 효과가 있다.
또한 본 발명은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호하는 효과가 있다.
또한 본 발명은 FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소를 동일하게 하여, 이분화된 파일주소에 기록된 파일 중 어느 하나가 훼손됨에 따라 발생할 수 있는 FUSE의 문제 상황을 미연에 방지할 수 있게 하는 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따르는 데이터 보호 장치의 개략적인 구성도.
도 2는 본 발명의 바람직한 실시예에 따르는 FUSE 파일경로를 예시한 도면.
도 3은 도 1의 프로세서의 개략적인 처리절차를 도시한 도면.
도 4는 본 발명의 바람직한 실시예에 따르는 소프트웨어 구조도.
도 5 및 도 6은 본 발명의 바람직한 실시예에 따르는 데이터 보호방법의 절차를 도시한 도면.
본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호한다.
또한 본 발명은 인증된 사용자에 의한 접근요청에 의해서만 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대해 접근가능하게 하여 상기 데이터를 안전하게 보호한다.
또한 본 발명은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호한다.
또한 본 발명은 FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소를 동일하게 하여, 이분화된 파일주소에 기록된 파일 중 어느 하나가 훼손됨에 따라 발생할 수 있는 FUSE의 문제 상황을 미연에 방지할 수 있게 한다.
이러한 본 발명의 상세한 설명에 앞서 파일 시스템 인 유저스페이스(Filesystem in Userspace, 이하 FUSE라 칭함)에 대해 설명한다. FUSE 프로젝트는 2004년에 시작되어 2005년에 리눅스 커널에 구현되었다. 상기 FUSE는 권한이 없는 사용자가 커널 소스 코드를 편집하지 않고 자신의 파일 시스템을 작성할 수 있게 하므로 라이선스 문제를 피할 수 있게 한다.
또한 상기 FUSE는 개발하기 쉬운 사용자 공간에 있으며, 사용자 공간 프로그램은 사용자 공간 프로그램이 손상되는 경우일지라도 시스템의 손상을 유발하지 않으므로, 시스템의 안정성을 높일 수 있다. 이와 대조적으로 커널 파일 시스템의 프로그램은 그럴 위험성을 가지고 있다.
또한 사용자 공간 코드는 모든 언어로 작성될 수 있으며 디버깅이 용이한 반면 커널 코드 작성은 훨씬 복잡하며 실수로 인한 결함으로 커널과 시스템에서 예기치 못한 재부팅을 발생시킬 수 있다.
또한 상기 FUSE는 워크로드(쓰기/읽기) 또는 하드웨어에 따라 기본 리눅스 파일 시스템보다 느리게 수행되는 한계가 있어, 대용량 데이터를 위해 파일 시스템을 사용자 공간으로 이동하는 것은 효율적이지 않다.
본 발명은 상기의 FUSE를 이용하여 리눅스 기반 운영체제에서 보호대상 데이터를 안전하게 보호한다. 특히 본 발명은 워크로드(workload) 및 CPU에의 성능저하를 고려하여 크기가 크지 않은 암호화 키 등의 키 데이터로 보호대상을 한정할 수 있다.
이제 상기한 본 발명의 바람직한 실시예에 따르는 데이터 보호방법 및 장치를 도면을 참조하여 상세하게 설명한다.
<데이터 보호 장치의 개략적인 구성>
먼저 본 발명이 적용되는 데이터 보호 장치의 구성을 설명한다. 도 1은 본 발명의 바람직한 실시예에 따르는 데이터 보호 장치의 개략적인 구성도이다. 상기 도 1을 참조하면, 상기 데이터 보호 장치는 프로세서(10)와 물리적인 저장장치(20)와 사용자 인터페이스 장치(30)로 구성된다.
상기 프로세서(10)는 사용자 인터페이스 장치(30)를 통한 사용자의 요청에 따라 FUSE 마운트(mounted)하거나(makeFuseMount()), FUSE 언마운트(un-mounted)하거나(unmountFuse()), FUSE 마운트된 상태에서 접근 가능하게 되는 FUSE 저장영역에 보호대상 데이터가 실린 파일에 대한 읽기/쓰기(Read/Write data) 등을 이행한다.
상기 저장장치(20)는 물리적인 저장영역을 제공하며, FUSE 마운트 또는 FUSE 언마운트시의 보호대상 데이터를 저장하기 위한 FUSE 저장영역을 제공한다. 여기서, 상기 FUSE 마운트 또는 FUSE 언마운트시의 FUSE 저장영역은 도 2에 도시한 바와 같이 동일한 경로(/path/to/fuse-data)를 가지며, 이는 FUSE 마운트 중 FUSE 언마운트의 FUSE 저장영역의 데이터가 변경되거나, FUSE 언마운트시에 FUSE 마운트의 FUSE 저장영역에 기록된 데이터가 변경되는 것을 미연에 방지하여, 시스템의 안정성을 도모할 수 있다.
상기 사용자 인터페이스 장치(30)는 프로세서(10)와 사용자 사이의 인터페이스를 담당한다.
<프로세서의 개략적인 처리절차>
상기 프로세서(10)의 개략적인 처리절차를 도 3을 참조하여 좀더 설명한다. 상기 프로세서(10)는 사용자 인터페이스 장치(30)를 통해 보호대상 데이터의 읽기 또는 쓰기가 요구되면 FUSE 마운트를 이행한다(makeFuseMount())(40단계). 상기 FUSE 마운트시에는 사용자 식별정보(#uid='rsfuse')와 그룹 식별정보(#gid='rsfuse')를 통한 인증을 이행한다.
상기의 FUSE 마운트가 이행되면, 상기 프로세서(10)는 FUSE 저장영역으로부터 보호대상 데이터, 예를들면 암호화 키 등에 대한 키 데이터가 실린 파일을 읽기 또는 쓰기한다(Read/Write data)(50단계). 여기서, 상기 프로세서(10)는 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호한다.
상기 보호대상 데이터에 대한 읽기 또는 쓰기가 완료되면, 상기 프로세서(10)는 FUSE 언마운트를 이행한다(unmountFuse())(60단계).
<프로세서의 소프트웨어 구조>
상기한 바와 같이 구성되는 데이터 보호 시스템의 프로세서(10)에 탑재되는 소프트웨어의 구조를 도 4를 참조하여 좀더 설명한다. 도 4를 참조하면, 상기 프로세서(10)에 구비되는 소프트웨어 모듈은 크게 사용자 공간(101)과 커널 공간(102)으로 나눌 수 있다.
상기 사용자 공간(101)에 속하는 소프트웨어 모듈에는 사용자 어플리케이션(113)과 사용자 라이브러리(114)와 FUSE 기능의 수행을 위한 사용자부(103)와 FUSE 데몬 프로그램(109)과 FUSE 라이브러리 프로그램(110)이 포함되며, 상기 사용자부(103)에는 FUSE 사용자 데몬(105)과 FUSE 라이브러리(106)가 포함된다.
그리고 상기 커널 공간(102)에 속하는 소프트웨어 모듈에는 가상 파일 시스템(117)과 커널 기반 파일 시스템(118)과 FUSE 커널부(104)가 포함되며, 상기 FUSE 커널부(104)에는 FUSE 디바이스(107)와 FUSE 커널 드라이버(108)가 포함된다.
상기 사용자 어플리케이션(113)은 C/C+, JAVA 등으로 구성되어 사용자 요청에 따르는 기능을 수행한다. 상기의 기능 중에는 FUSE 기능을 통해 보호대상 데이터가 실린 파일을 보호함과 아울러 보호대상 데이터가 실린 파일의 읽기/쓰기 등이 포함된다.
상기 사용자 라이브러리(114)는 상기 사용자 어플리케이션(113)의 요청에 따라 커널 공간(102)에 위치하는 가상 파일 시스템(117)으로 파일의 접근을 요청하고, 상기 가상 파일 시스템(117)이 제공하는 파일 접근요청에 대한 결과정보를 상기 사용자 어플리케이션(113)으로 반환한다. 특히 상기 사용자 라이브러리(114)는 상기 사용자 어플리케이션(113)으로부터의 요청에 따라 FUSE 마운트/FUSE 언마운트를 FUSE 데몬 프로그램(109)에 요청한다.
상기 가상 파일 시스템(117)은 실제의 파일 시스템 위에 존재하는 추상 계층을 통해 여러 파일 시스템에 접근할 수 있게 한다. 이러한 가상 파일 시스템(117)은 사용자 라이브러리(114) 또는 FUSE 데몬 프로그램(109), FUSE 사용자 데몬(105)의 요청에 따라 커널 기반 파일 시스템(118) 또는 FUSE 커널부(104)로 파일의 접근을 요청하고, 상기 커널 기반 파일 시스템(118) 또는 FUSE 커널부(104)가 반환하는 파일 접근요청에 대한 결과정보를 상기 사용자 라이브러리(114)로 반환한다. 특히 상기 가상 파일 시스템(117)은 FUSE 마운트시에 상기 FUSE 파일경로에 대한 처리자, 즉 FUSE 터널 드라이버(108)에 대한 정보를 등록한다.
상기 커널 기반 파일 시스템(118)은 물리적인 저장장치(20) 및 그 안의 파일의 관리하며, 상기 가상 파일 시스템(117)의 요청에 따른 물리적인 저장장치(20)의 접근 요청에 따른 동작을 수행하고, 그에 따른 결과를 상기 가상 파일 시스템(117)으로 반환한다. 또한 상기 커널 기반 파일 시스템(118)은 상기 가상 파일 시스템(117)을 통한 상기 사용자 공간(101)에 존재하는 FUSE 데몬 프로그램(109) 또는 상기 사용자부(103)의 FUSE 사용자 데몬(105)으로부터의 요청을 수행하고, 그에 따른 결과를 상기 가상 파일 시스템(117)을 통해 상기 FUSE 데몬 프로그램(109) 또는 상기 FUSE 사용자 데몬(105)으로 반환한다.
상기 FUSE 데몬 프로그램(109)은 상기 사용자 라이브러리(114)의 요청에 따라 실행되어 FUSE 마운트를 이행하고, 그 FUSE 마운트가 완료되면 자신을 FUSE 사용자 데몬(105)으로 등록하여 FUSE 사용자 데몬(105)으로서 동작한다. 여기서, 상기의 FUSE 마운트시에 상기 FUSE 데몬 프로그램(109)은 커널 기반 시스템(118)으로부터 FUSE 파일경로에 대한 물리적인 저장장치의 파일주소를 제공받는다.
상기 FUSE 라이브러리 프로그램(110)은 상기 FUSE 데몬 프로그램(109)에 의한 FUSE 마운트가 완료되면 FUSE 파일경로 정보 및 사용자 및 그룹 식별정보(UID:RSFUSE,GID:RSFUSE)를 FUSE 커널부(104)의 FUSE 커널 디바이스(107)로 제공한다.
상기 FUSE 커널 드라이버(108)는 상기 FUSE 라이브러리 프로그램(110)이 FUSE 파일경로 정보 및 사용자 및 그룹 식별정보(UID:RSFUSE,GID:RSFUSE)를 제공하면, 이를 저장함과 아울러 상기 가상 파일 시스템(117)으로 상기 FUSE 파일경로에 대한 처리자는 자신임을 지시하는 정보를 제공한다. 여기서, 상기 가상 파일 시스템(117)은 상기 정보를 저장하고, 그 정보에 따라 상기 FUSE 파일경로에 대한 요청이 제공되면, 이를 상기 FUSE 커널부(104)의 FUSE 커널 드라이버(108)로 제공하여 처리를 요청한다.
또한 상기 FUSE 커널 드라이버(108)는 상기 FUSE 파일경로에 대한 요청이 제공되면, 상기 요청정보에 포함된 사용자 및 그룹 식별정보(UID:RSFUSE,GID:RSFUSE)와 FUSE 파일경로가 대응되는지를 체크하여 인증하고, 그 인증에 성공하면 상기 FUSE 파일경로에 대한 접근을 FUSE 사용자 데몬(105)에 요청한다. 여기서, 상기 요청은 FUSE 디바이스(107)와 FUSE 라이브러리(106)를 경유하여 FUSE 사용자 데몬(105)에 제공된다. 좀더 설명하면, FUSE 커널 드라이버(108)는 FUSE 요청 구조물을 할당하여 큐에 기입하고, FUSE 사용자 데몬(105)은 FUSE 디바이스(107)의 큐에서 상기 FUSE 요청 구조물을 읽음으로써 큐에 기록된 요청을 처리할 수 있게 된다. 그리고 상기 요청 처리가 완료되면 FUSE 사용자 데몬(105)은 요청에 대한 응답을 FUSE 디바이스(107)의 큐에 기입한다. 이와 같이 기입된 응답을 토대로, 상기 FUSE 커널 드라이버(108)는 요청이 완료되었음을 확인할 수 있다.
상기 FUSE 사용자 데몬(105)은 FUSE 디바이스(107)를 통해 FUSE 요청을 읽고, 요청을 처리한 후 FUSE 라이브러리(106)를 이용하여 FUSE 디바이스(107)에 응답을 기입하는 방식으로 데이터가 송수신된다.
또한 상기 FUSE 커널 드라이버(108)는 상기 FUSE 사용자 데몬(105)으로부터 FUSE 파일경로에 대한 접근요청에 따른 회신정보가 제공되면, 이를 가상 파일 시스템(117)으로 반환한다.
그리고 상기 FUSE 사용자 데몬(105)은 상기 FUSE 커널부(104)를 통해 상기 FUSE 파일경로에 대한 접근요청이 제공되면, 상기 커널 기반 파일 시스템(118)을 통해 상기 FUSE 파일경로에 대응되는 물리적인 저장장치(20)의 파일주소로 직접 접근하여 원본 파일인 보호대상 데이터가 실린 파일에 대해 읽기 또는 쓰기 등을 수행하고 그에 따른 결과를 FUSE 커널 드라이버(108)로 반환한다. 여기서, 상기 커널 기반 파일 시스템(118)과 상기 FUSE 사용자 데몬(105)은 가상 파일 시스템(117)을 경유하여 데이터 통신을 이행한다.
<데이터 보호방법의 절차>
이제 상기한 본 발명의 바람직한 실시예에 따르는 데이터 보호방법의 절차를 도 5 및 도 6을 참조하여 설명한다. 상기 도 5 및 도 6을 참조하면, 유저 어플리케이션(113)은 사용자의 요청에 따라 FUSE 파일경로에 저장된 파일을 요청하는 정보를 사용자 라이브러리(114)로 전송한다(200단계). 여기서, 상기 FUSE 파일경로는 보호대상 데이터를 기록한 파일에 대한 파일경로로서 미리 설정될 수 있다.
상기 FUSE 파일경로에 저장된 파일을 요청하는 정보를 제공받은 사용자 라이브러리(114)는 FUSE 파일경로에 대한 처리자가 등록되었는지 확인을 요청하는 정보를 가상 파일 시스템(117)으로 전송한다(201단계).
상기 가상 파일 시스템(117)은 상기 요청에 따라 FUSE 파일경로에 대한 처리자 등록여부를 나타내는 정보를 상기 사용자 라이브러리(114)로 반환한다(202단계).
상기 사용자 라이브러리(114)는 상기 FUSE 파일경로에 대한 처리자가 등록되지 않았으면, FUSE 마운트의 시도를 위해 FUSE 데몬 프로그램(109)을 실행한다(204단계).
상기 FUSE 데몬 프로그램(109)은 실행되면, 상기 가상 파일 시스템(117)을 통해 상기 커널 기반 파일 시스템(118)에 접근하여 상기 FUSE 파일경로에 대응되는 FUSE 디렉토리에 대한 물리적인 저장장치(20)의 파일주소를 요청한다(206,208단계). 상기의 요청에 따라 상기 커널 기반 파일 시스템(118)은 상기 FUSE 디렉토리에 대한 물리적인 저장장치(20)의 파일주소를 가상파일 시스템(117)을 통해 FUSE 데몬 프로그램(109)으로 반환한다(210,212단계). 여기서, 상기 커널 기반 파일 시스템(118)은 상기 FUSE 디렉토리에 대응되는 파일주소에 대한 정보를 미리 저장할 수 있다.
상기 FUSE 데몬 프로그램(109)은 상기 FUSE 디렉토리에 대한 물리적인 저장장치(20)의 파일주소를 저장하고 자신을 FUSE 사용자 데몬(105)으로 등록함과 아울러 상기 FUSE 라이브러리 프로그램(110)을 호출하여 FUSE 파일 경로 및 사용자 인증정보를 FUSE 라이브러리 프로그램(110)에 제공한다(214,216단계).
상기 FUSE 라이브러리 프로그램(110)은 FUSE 파일경로 및 사용자 인증정보를 FUSE 커널 드라이버(108)로 전송한다(218단계).
상기 FUSE 커널 드라이버(108)는 상기 FUSE 파일경로 및 사용자 인증정보를 저장함과 아울러 FUSE 파일경로에 대한 처리자 정보를 상기 가상 파일 시스템(117)으로 전송한다(220단계).
상기 FUSE 파일경로에 대한 처리자 정보를 제공받은 가상 파일 시스템(117)은 상기 FUSE 파일경로에 대한 처리자 정보를 등록함과 아울러 FUSE 마운트를 사용자 라이브러리(114)로 통지한다(224단계). 상기 사용자 라이브러리(114)는 상기 FUSE 마운트의 완료가 통지되면, 상기의 203단계로 복귀한다(226단계).
한편 상기 FUSE 마운트가 이루어진 상태이면, 상기 사용자 라이브러리(114)는 FUSE 파일경로에 대한 파일에 대한 접근을 가상파일 시스템(117)에 요청한다(300단계). 상기 가상파일 시스템(117)은 상기 FUSE 파일경로에 대응되는 처리자가 미리 등록되어 있는지를 체크한다(302단계). 상기 FUSE 파일경로에 대응되는 처리자가 미리 등록되어 있으면, 상기 가상파일 시스템(117)은 FUSE 파일경로에 대한 처리자 정보에 따라 요청자의 UID/GID 및 FUSE 파일경로를 FUSE 커널 드라이버(108)로 전송한다(304단계).
상기 FUSE 커널 드라이버(108)는 요청자가 제공한 UID/GID 및 FUSE 파일경로와 미리 등록된 UID/GID 및 FUSE 파일경로가 서로 대응되는지를 체크하여 인증을 이행한다(306단계). 상기 인증에 실패하면, 상기 FUSE 커널 드라이버(108)는 비정상 사용자에 의한 데이터 요청으로 판단하여 에러처리한다(310단계).
상기한 바와 달리 인증에 성공하면, 상기 FUSE 커널 드라이버(108)는 FUSE 사용자 데몬(105)에 FUSE 파일경로에 대한 접근요청정보를 전송한다(312단계). 상기 접근요청정보를 제공받은 FUSE 사용자 데몬(105)은 커널 기반 파일 시스템(118) 및 가상파일 시스템(117)을 통해 FUSE 파일경로에 대응되는 물리적인 저장장치(20)의 파일주소에 직접 접근하여 보호대상이 되는 데이터의 파일에 대해 읽기 또는 쓰기를 이행한다(314단계). 여기서, 상기 FUSE 사용자 데몬(106)은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호한다.
또한 상기 FUSE 사용자 데몬(105)은 보호대상이 되는 데이터의 파일에 대해 읽기 또는 쓰기를 이행한 결과인 FUSE 파일경로에 대한 접근요청에 따르는 결과정보를 FUSE 커널 드라이버(108) 및 가상 파일 시스템(117)을 통해 사용자 라이브러리(114)로 전송한다(316,318,320단계). 상기 사용자 라이브러리(114)는 상기 FUSE 파일경로에 대한 접근요청에 따른 결과정보가 제공되면, 이를 사용자 어플리케이션(113)으로 전송한다(324단계).
또한 상기의 FUSE 마운트 상태는 미리 정해둔 시간의 경과 또는 사용자 어플리케이션(113)을 통한 사용자의 요청에 따라 FUSE 언마운트된다. 즉 사용자 어플리케이션(113)을 통한 FUSE 언마운트 요청에 따라 사용자 라이브러리(114)는 가상 파일 시스템(117) 및 FUSE 사용자 데몬(105)에 FUSE 언마운트를 요청하며, 상기 FUSE 언마운트 요청에 따라 상기 가상 파일 시스템(117)이 FUSE 파일경로에 대한 처리자 정보를 초기화함과 아울러, 상기 FUSE 사용자 데몬(105) 역시 FUSE 파일경로에 대응되는 물리적인 주소 정보 등을 초기화함과 아울러 FUSE 데몬 프로그램(109)으로 자신의 상태를 복귀시킨다.
위에서 설명된 본 발명의 실시예는 예시의 목적을 위해 개시된 것이고, 본 발명에 대한 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 사상과 범위 안에서 다양한 수정, 변경 및 부가가 가능할 것이며, 이러한 수정, 변경 및 부가는 본 특허청구범위에 속하는 것으로 보아야 할 것이다.
본 발명은 네트워크에서 데이터 보호기술에 관한 것으로, 더욱 상세하게는 보호대상 데이터가 실린 파일을 FUSE 마운트된 저장영역에 저장하여 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공할 수 있다.
또한, 네트워크에서 데이터를 보호하기 위해 사용되는 암호화 키를 안전하게 보호하는 장치 및 방법을 제공할 수 있다.

Claims (13)

  1. 물리적인 저장장치; 및
    소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, FUSE 커널 드라이버 및 FUSE 사용자 데몬이 구비된 프로세서;를 포함하여 구성되며,
    상기 사용자 어플리케이션이 FUSE 파일경로에 대한 접근을 요청하는 요청정보를 상기 사용자 라이브러리로 제공하면,
    상기 사용자 라이브러리가 상기 요청정보를 상기 가상 파일 시스템으로 제공하고,
    상기 가상 파일 시스템이 상기 요청정보에 포함된 FUSE 파일경로에 대한 처리자가 미리 등록되어 있으면 FUSE 마운트된 것으로 판단하여 미리 등록된 상기 FUSE 커널 드라이버로 상기 요청정보를 제공하고,
    상기 FUSE 커널 드라이버가 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공하며,
    상기 FUSE 사용자 데몬이 상기 커널 기반 파일 시스템을 통해 상기 FUSE 파일경로에 대응되게 미리 정해진 상기 물리적인 저장장치의 파일주소의 파일로 직접 접근하며,
    상기 FUSE 사용자 데몬이, 상기 물리적인 저장장치의 파일주소의 파일에 대한 접근결과정보를 상기 FUSE 커널 드라이버로 반환하고,
    상기 FUSE 커널 드라이버가, 상기 파일에 대한 접근결과정보를 상기 가상 파일 시스템으로 반환하고,
    상기 가상 파일 시스템이, 상기 파일에 대한 접근결과정보를 상기 사용자 라이브러리로 반환하고,
    상기 사용자 라이브러리가, 상기 파일에 대한 접근결과정보를 상기 사용자 어플리케이션으로 반환하며,
    상기 FUSE 파일경로에 대한 파일에는 보호대상 데이터가 포함됨을 특징으로 하는 데이터 보호장치.
  2. 제1항에 있어서,
    상기 요청정보에는 사용자 및 그룹 식별정보가 더 포함되며,
    상기 FUSE 커널 드라이버가,
    상기 요청정보에 포함된 사용자 및 그룹 식별정보가 상기 FUSE 파일경로에 대응되게 미리 정해둔 사용자 및 그룹 식별정보에 대응되는지를 체크하고,
    상기 요청정보에 포함된 사용자 및 그룹 식별정보가 상기 FUSE 파일경로에 대응되게 미리 정해둔 사용자 및 그룹 식별정보에 대응되면 인증에 성공한 것으로 판단하고,
    상기 인증에 성공한 경우에만 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공함을 특징으로 하는 데이터 보호장치.
  3. 제2항에 있어서,
    상기 프로세서에는 FUSE 데몬 프로그램 및 FUSE 라이브러리 프로그램이 더 구비되며,
    상기 사용자 라이브러리는,
    상기 가상 파일 시스템에 상기 요청정보에 포함된 FUSE 파일 경로에 대한 처리자가 등록되어 있지 않으면, FUSE 언마운트 상태로 판단하여 상기 FUSE 데몬 프로그램을 실행하며,
    상기 FUSE 데몬 프로그램은 실행 이벤트에 따라 상기 커널 기반 파일 시스템으로 상기 FUSE 파일경로에 대응되는 물리적인 저장장치의 파일주소를 요청하고,
    상기 커널 기반 파일 시스템이 상기 물리적인 저장장치의 파일주소를 반환하면, 상기 물리적인 저장장치의 파일주소를 상기 FUSE 파일경로에 대응되게 저장한 후에,
    자신을 상기 FUSE 사용자 데몬으로 등록함과 아울러,
    상기 FUSE 라이브러리 프로그램을 통해 상기 FUSE 파일경로와 그에 대응되는 사용자 및 그룹 식별정보를 상기 FUSE 커널 드라이버에 제공하여 등록한 후에 FUSE 마운트 상태로 판단함을 특징으로 하는 데이터 보호장치.
  4. 제3항에 있어서,
    상기 보호대상 데이터가 포함된 파일에 대한, FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소는 동일함을 특징으로 하는 데이터 보호장치.
  5. 제1항에 있어서,
    상기 FUSE 사용자 데몬은, 상기 물리적인 저장장치의 파일주소에 기록된 파일의 데이터에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기의 경우에는 암호화 과정을 거쳐 원본 파일에 기록함을 특징으로 하는 데이터 보호장치.
  6. 물리적인 저장장치 및
    소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, FUSE 커널 드라이버 및 FUSE 사용자 데몬이 구비된 프로세서를 포함하여 구성되는 장치에서,
    상기 사용자 어플리케이션이 FUSE 파일경로에 대한 접근을 요청하는 요청정보를 상기 사용자 라이브러리로 제공하는 단계;
    상기 사용자 라이브러리가 상기 요청정보를 상기 가상 파일 시스템으로 제공하는 단계;
    상기 가상 파일 시스템이 상기 요청정보에 포함된 FUSE 파일경로에 대한 처리자가 미리 등록되어 있으면 FUSE 마운트된 것으로 판단하여 미리 등록된 상기 FUSE 커널 드라이버로 상기 요청정보를 제공하는 단계;
    상기 FUSE 커널 드라이버가 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공하는 단계;
    상기 FUSE 사용자 데몬이 상기 커널 기반 파일 시스템을 통해 상기 FUSE 파일경로에 대응되게 미리 정해진 상기 물리적인 저장장치의 파일주소의 파일로 직접 접근하는 단계;
    상기 FUSE 사용자 데몬이, 상기 물리적인 저장장치의 파일주소의 파일에 대한 접근결과정보를 상기 FUSE 커널 드라이버로 반환하는 단계;
    상기 FUSE 커널 드라이버가, 상기 파일에 대한 접근결과정보를 상기 가상 파일 시스템으로 반환하는 단계;
    상기 가상 파일 시스템이, 상기 파일에 대한 접근결과정보를 상기 사용자 라이브러리로 반환하는 단계; 및
    상기 사용자 라이브러리가, 상기 파일에 대한 접근결과정보를 상기 사용자 어플리케이션으로 반환하는 단계;를 구비하며,
    상기 FUSE 파일경로에 대한 파일에는 보호대상 데이터가 포함됨을 특징으로 하는 데이터 보호방법.
  7. 제6항에 있어서,
    상기 요청정보에는 사용자 및 그룹 식별정보가 더 포함되며,
    상기 FUSE 커널 드라이버가,
    상기 요청정보에 포함된 사용자 및 그룹 식별정보가 상기 FUSE 파일경로에 대응되게 미리 정해둔 사용자 및 그룹 식별정보에 대응되는지를 체크하고,
    상기 요청정보에 포함된 사용자 및 그룹 식별정보가 상기 FUSE 파일경로에 대응되게 미리 정해둔 사용자 및 그룹 식별정보에 대응되면 인증에 성공한 것으로 판단하고,
    상기 인증에 성공한 경우에만 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공함을 특징으로 하는 데이터 보호방법.
  8. 제7항에 있어서,
    상기 프로세서에는 FUSE 데몬 프로그램 및 FUSE 라이브러리 프로그램이 더 구비되며,
    상기 사용자 라이브러리는,
    상기 가상 파일 시스템에 상기 요청정보에 포함된 FUSE 파일 경로에 대한 처리자가 등록되어 있지 않으면, FUSE 언마운트 상태로 판단하여 상기 FUSE 데몬 프로그램을 실행하는 단계;
    상기 FUSE 데몬 프로그램은 실행 이벤트에 따라 상기 커널 기반 파일 시스템으로 상기 FUSE 파일경로에 대응되는 물리적인 저장장치의 파일주소를 요청하는 단계; 및
    상기 커널 기반 파일 시스템이 상기 물리적인 저장장치의 파일주소를 반환하면, 상기 물리적인 저장장치의 파일주소를 상기 FUSE 파일경로에 대응되게 저장한 후에,
    자신을 상기 FUSE 사용자 데몬으로 등록함과 아울러,
    상기 FUSE 라이브러리 프로그램을 통해 상기 FUSE 파일경로와 그에 대응되는 사용자 및 그룹 식별정보를 상기 FUSE 커널 드라이버에 제공하여 등록한 후에 FUSE 마운트 상태로 판단하는 단계;를 더 구비함을 특징으로 하는 데이터 보호방법.
  9. 제8항에 있어서,
    상기 보호대상 데이터가 포함된 파일에 대한, FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소는 동일함을 특징으로 하는 데이터 보호방법.
  10. 제6항에 있어서,
    상기 FUSE 사용자 데몬은, 상기 물리적인 저장장치의 파일주소에 기록된 파일의 데이터에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기의 경우에는 암호화 과정을 거쳐 원본 파일에 기록함을 특징으로 하는 데이터 보호방법.
  11. 네트워크에서 데이터 통신을 보호하기 위해 사용되는 암호화 키를 안전하게 보호하는 방법에 있어서,
    상기 암호화 키에 대한 키 데이터가 저장되는 FUSE(Filesystem in Userspace) 파티션에 대한 접근을 위해 FUSE 마운트를 이행하는 단계;
    상기 FUSE 마운트후에, FUSE 사용자 데몬이 상기 FUSE 파티션에 상기 키 데이터를 쓰기 또는 읽기하는 단계; 및
    상기 FUSE 언마운트하는 단계;를 포함하여 구성되며,
    VFS(Virtual File System)이 파일 시스템의 마운트를 처리함을 특징으로 하는 데이터 보호방법
  12. 제11항에 있어서,
    상기 VFS가, 상기 FUSE 파티션에 탑재되는 키 데이터의 경로와 프로세스 관련 데이터의 경로를 동등한 경로로 변환함을 특징으로 하는 데이터 보호방법.
  13. 제11항에 있어서,
    상기 FUSE 마운트는, 사용자 ID와 그룹 ID 중 하나 이상이 동일한 경우에 이행됨을 특징으로 하는 데이터 보호방법.
PCT/KR2023/016835 2022-11-17 2023-10-27 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치 WO2024106794A1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
KR10-2022-0154631 2022-11-17
KR1020220154631A KR20240072714A (ko) 2022-11-17 2022-11-17 네트워크에서 데이터 통신을 보호하기 위해 사용되는 암호화 키를 안전하게 보호하는 저장 방법 및 그 기술
KR1020230132725A KR102675729B1 (ko) 2023-10-05 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치
KR10-2023-0132725 2023-10-05

Publications (1)

Publication Number Publication Date
WO2024106794A1 true WO2024106794A1 (ko) 2024-05-23

Family

ID=91085065

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2023/016835 WO2024106794A1 (ko) 2022-11-17 2023-10-27 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치

Country Status (1)

Country Link
WO (1) WO2024106794A1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130079004A (ko) * 2012-01-02 2013-07-10 (주)소만사 스마트폰에서 파일 시스템 가상화를 이용한 모바일 정보 보호 시스템 및 가상 보안 환경 제공 방법
KR20150074546A (ko) * 2013-12-24 2015-07-02 주식회사 케이티 대용량 스토리지 제공 방법 및 시스템
KR20180117377A (ko) * 2017-04-19 2018-10-29 한국전자통신연구원 분산 파일시스템 환경에서 사용자 수준 dma i/o를 지원하는 시스템 및 그 방법
KR102232919B1 (ko) * 2020-08-10 2021-03-29 (유)아홉 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20130079004A (ko) * 2012-01-02 2013-07-10 (주)소만사 스마트폰에서 파일 시스템 가상화를 이용한 모바일 정보 보호 시스템 및 가상 보안 환경 제공 방법
KR20150074546A (ko) * 2013-12-24 2015-07-02 주식회사 케이티 대용량 스토리지 제공 방법 및 시스템
KR20180117377A (ko) * 2017-04-19 2018-10-29 한국전자통신연구원 분산 파일시스템 환경에서 사용자 수준 dma i/o를 지원하는 시스템 및 그 방법
KR102232919B1 (ko) * 2020-08-10 2021-03-29 (유)아홉 가상화 및 cow 파일 시스템 기술을 이용한 자가 변이 시스템

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
SSUP2: "Linux Fuse (Filesystem in Userspace) | Ssup2 Blog", SSUP2 BLOG, KOREA, Korea, pages 1 - 3, XP055966223, Retrieved from the Internet <URL:https://ssup2.github.io/theory_analysis/Linux_FUSE/> [retrieved on 20220929] *

Similar Documents

Publication Publication Date Title
US9361243B2 (en) Method and system for providing restricted access to a storage medium
AU2007252841B2 (en) Method and system for defending security application in a user&#39;s computer
US8458791B2 (en) Hardware-implemented hypervisor for root-of-trust monitoring and control of computer system
US5504814A (en) Efficient security kernel for the 80960 extended architecture
US8234477B2 (en) Method and system for providing restricted access to a storage medium
US8955104B2 (en) Method and system for monitoring system memory integrity
US8402269B2 (en) System and method for controlling exit of saved data from security zone
US5469556A (en) Resource access security system for controlling access to resources of a data processing system
US20070005919A1 (en) Computer system protection based on virtualization
US5742758A (en) Password protecting ROM based utilities in an adapter ROM
WO2018212474A1 (ko) 독립된 복원영역을 갖는 보조기억장치 및 이를 적용한 기기
WO2005081115A1 (en) Application-based access control system and method using virtual disk
CN101593259A (zh) 软件完整性验证方法及系统
WO2018030667A1 (ko) 피싱 또는 랜섬웨어 공격을 차단하는 방법 및 시스템
WO2019039730A1 (ko) 랜섬웨어 방지 장치 및 방법
WO2018164503A1 (ko) 상황 인식 기반의 랜섬웨어 탐지
CN112818327A (zh) 基于TrustZone的用户级代码和数据安全可信保护方法及装置
US20050216466A1 (en) Method and system for acquiring resource usage log and computer product
Chubachi et al. Hypervisor-based prevention of persistent rootkits
WO2021033868A1 (ko) 가변 컴퓨터 파일시스템이 적용된 데이터 저장장치
WO2024106794A1 (ko) 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치
WO2019225849A1 (ko) 게스트 운영체제의 무결성과 파일 입출력 제어를 통해서 보안 서비스를 제공하는 보안 장치 및 방법
KR102675729B1 (ko) 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치
JP2002149494A (ja) アクセス制御方法およびアクセス制御装置および記録媒体
WO2014030978A1 (ko) 이동식 저장매체 보안시스템 및 그 방법