[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

KR102675729B1 - Data protection methods and Apparatus in Linux-based OS - Google Patents

Data protection methods and Apparatus in Linux-based OS Download PDF

Info

Publication number
KR102675729B1
KR102675729B1 KR1020230132725A KR20230132725A KR102675729B1 KR 102675729 B1 KR102675729 B1 KR 102675729B1 KR 1020230132725 A KR1020230132725 A KR 1020230132725A KR 20230132725 A KR20230132725 A KR 20230132725A KR 102675729 B1 KR102675729 B1 KR 102675729B1
Authority
KR
South Korea
Prior art keywords
fuse
file
user
daemon
kernel
Prior art date
Application number
KR1020230132725A
Other languages
Korean (ko)
Inventor
서명원
Original Assignee
주식회사 리얼시큐
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 리얼시큐 filed Critical 주식회사 리얼시큐
Priority to KR1020230132725A priority Critical patent/KR102675729B1/en
Priority to PCT/KR2023/016835 priority patent/WO2024106794A1/en
Application granted granted Critical
Publication of KR102675729B1 publication Critical patent/KR102675729B1/en

Links

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/604Tools and structures for managing or administering access control systems
    • 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
    • G06F21/602Providing cryptographic facilities or services

Landscapes

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

Abstract

본 발명에 따르는 리눅스 기반 운영체제에서의 데이터 보호장치는, 물리적인 저장장치; 및 소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, FUSE 커널 드라이버 및 FUSE 사용자 데몬이 구비된 프로세서;를 포함하여 구성되며, 상기 사용자 어플리케이션이 FUSE 파일경로에 대한 접근을 요청하는 요청정보를 상기 사용자 라이브러리로 제공하면, 상기 사용자 라이브러리가 상기 요청정보를 상기 가상 파일 시스템으로 제공하고, 상기 가상 파일 시스템이 상기 요청정보에 포함된 FUSE 파일경로에 대한 처리자가 미리 등록되어 있으면 FUSE 마운트된 것으로 판단하여 미리 등록된 상기 FUSE 커널 드라이버로 상기 요청정보를 제공하고, 상기 FUSE 커널 드라이버가 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공하며, 상기 FUSE 사용자 데몬이 상기 커널 기반 파일 시스템을 통해 상기 FUSE 파일경로에 대응되게 미리 정해진 상기 물리적인 저장장치의 파일주소의 파일로 직접 접근하며, 상기 FUSE 사용자 데몬이, 상기 물리적인 저장장치의 파일주소의 파일에 대한 접근결과정보를 상기 FUSE 커널 드라이버로 반환하고, 상기 FUSE 커널 드라이버가, 상기 파일에 대한 접근결과정보를 상기 가상 파일 시스템으로 반환하고, 상기 가상 파일 시스템이, 상기 파일에 대한 접근결과정보를 상기 사용자 라이브러리로 반환하고, 상기 사용자 라이브러리가, 상기 파일에 대한 접근결과정보를 상기 사용자 어플리케이션으로 반환하며, 상기 FUSE 파일경로에 대한 파일에는 보호대상 데이터가 포함됨을 특징으로 한다. A data protection device in a Linux-based operating system according to the present invention 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. 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. and the FUSE kernel driver returns access result information for the file to the virtual file system, and 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, and the file for the FUSE file path includes data subject to protection.

Description

리눅스 기반 운영체제에서의 데이터 보호방법 및 장치{Data protection methods and Apparatus in Linux-based OS}Data protection methods and Apparatus in Linux-based OS}

본 발명은 데이터 보호기술에 관한 것으로, 더욱 상세하게는 보호대상 데이터가 실린 파일을 FUSE 마운트된 저장영역에 저장하여 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치에 관한 것이다. 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.

새로운 기술들의 출현에 따라 안전하지 않은 데이터 스토리지는 가장 중요한 네트워크 보안 문제 중 하나로 대두되고 있다. With the advent of new technologies, insecure data storage is emerging as one of the most important network security issues.

일반적으로 Ubuntu, CentOS 등과 같은 리눅스 기반 운영 체제(Linux-based OS)에서 데이터는 응용 프로그램의 표준 인터페이스로 사용되는 리눅스 파일 시스템에 저장된다. 상기 리눅스 파일 시스템(Linux File System)은 리눅스 기반 운영 체제의 내장 계층으로, 디스크 저장소의 파일을 정렬하며, 파일 이름, 파일 크기, 생성 날짜 및 파일에 대한 더 많은 정보를 관리한다. Typically, in 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.

그리고 상기의 데이터를 보호하기 위해 사용되는 암호화 키 등과 같은 중요 데이터는 루트 권한을 가진 사용자 등만이 접근할 수 있도록 제한하였다. 그러나 공격자가 루트(root) 권한을 가진 경우에는 데이터의 보호가 어려운 문제가 있었다. Additionally, access to important data such as encryption keys used to protect the above data was restricted to only users with root authority. However, if the attacker had root privileges, it was difficult to protect the data.

종래 리눅스 기반 운영체제에서의 데이터 보호기술로는 대한민국 특허청에 리눅스 커널 보안 기반 침입방지 시스템을 명칭으로 하여 특허등록된 제1014166180000호가 있다. 이는 차단할 IP주소를 기록한 IP테이블; 차단할 IP주소를 기록하는 데이터베이스; 상기 IP테이블을 통해서 차단되지 않은 패킷에 대하여 공격 여부를 판명하는 탐지 엔진; 및, 공격으로 판단된 패킷의 IP주소(이하 공격 IP주소)를 상기 데이터베이스에 저장하고, 상기 공격 IP주소를 상기 IP테이블에 저장하도록 명령하는 차단 엔진 및, 상기 데이터베이스에 저장된 IP주소를 보여주는 자원 모니터링 모듈을 포함하여, 리눅스 시스템의 침입을 탐지하고, 침입으로 탐지된 접근에 접근 권한을 제한하는 리눅스 커널 보안 기반 침입방지 시스템을 개시하고 있다. As a data protection technology in a conventional Linux-based operating system, there is patent number 1014166180000 registered with the Korean Intellectual Property Office under the name of Linux kernel security-based intrusion prevention system. This includes an IP table that records IP addresses to be blocked; A database that records IP addresses to be blocked; A detection engine that determines whether or not an unblocked packet is an attack through the IP table; And, a blocking engine that stores the IP address of the packet determined to be an attack (hereinafter referred to as the attack IP address) in the database, and instructs the attack IP address to be stored in the IP table, and a resource monitor that shows the IP address stored in the database. We are launching a Linux kernel security-based intrusion prevention system that detects intrusions into the Linux system, including modules, and restricts access rights to those detected as intrusions.

그리고 대한민국 특허청에 다중 등급 기반 보안 리눅스 운영 시스템을 명칭으로 하여 특허등록된 제1014145800000호가 있다. 이는 BLP(Bell-La Padula) 모델을 적용하여 사용자에 대한 접근을 통제하는 접근 통제부; 주체에 대한 허가 등급 및 보호 범주를 정의한 주체 보안 레이블과, 객체에 대한 허가 등급 및 보호 범주를 정의한 객체 보안 레이블을 구비하는 참조 모니터부; 상기 주체 보안 레이블과 상기 객체 보안 레이블에 기록된 허가 등급 및 보호 범주를 참조하여, 파일에 기록된 허가 등급 및 보호 범주에 따라 암호화 여부를 자동으로 결정하여 암호화를 수행하는 커널모드 암호부; 및, 동적인 데이터베이스를 이용하여 파일의 접근을 실시간으로 기록하는 실시간 감시부를 포함하는 시스템을 개시하고 있다. And there is 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.

상기한 바와 같이 종래에는 리눅스 기반 운영 체제에 적용되는 다양한 보안 방식이 꾸준히 제안되고 있다. 그러나 리눅스 기반 운영 체제에서 파일 시스템은 운영 체제 커널(kernel)의 일부로, 커널 소스 코드를 이해하는 것은 매우 복잡하고 어렵다. 따라서 대부분의 개발자들에게 커널 파일 시스템을 작성하거나 수정하여 데이터 보안 기능을 구현시키는 것은 쉽지 않은 문제이었다. 게다가 라이선스 문제 때문에 소스 코드가 공개되지 않는 한 어떠한 파일 시스템도 커널에 통합될 수 없었다. As mentioned above, various security methods applied to Linux-based operating systems have been continuously proposed. However, in Linux-based operating systems, the file system is part of the operating system kernel, and understanding the kernel source code is very complex and difficult. Therefore, for most developers, implementing data security functions by creating or modifying the kernel file system was not an easy problem. Additionally, due to licensing issues, no file system could be integrated into the kernel unless the source code was made public.

이에 종래에는 리눅스 기반 운영 체제에서 데이터를 효과적으로 보호할 수 있는 기술의 개발이 절실하게 요망되었다. Accordingly, there has been an urgent need to develop technology that can effectively protect data in Linux-based operating systems.

본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 데에 그 목적이 있다. 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. .

또한 본 발명의 다른 목적은 인증된 사용자에 의한 접근요청에 의해서만 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대해 접근가능하게 하여 상기 데이터를 안전하게 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 것이다. In addition, 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.

또한 본 발명의 또 다른 목적은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 겁근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 것이다. In addition, 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. To provide a data protection method and device in a Linux-based operating system that safely protects the data to be protected by recording it in a file.

또한 본 발명의 또 다른 목적은 FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소를 동일하게 하여, 이분화된 파일주소에 기록된 파일 중 어느 하나가 훼손됨에 따라 발생할 수 있는 FUSE 문제 상황을 미연에 방지할 수 있게 하는 리눅스 기반 운영체제에서의 데이터 보호방법 및 장치를 제공하는 것이다. In addition, 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.

상기한 목적을 달성하기 위한 본 발명에 따르는 리눅스 기반 운영체제에서의 데이터 보호장치는, 물리적인 저장장치; 및 소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, FUSE 커널 드라이버 및 FUSE 사용자 데몬이 구비된 프로세서;를 포함하여 구성되며, 상기 사용자 어플리케이션이 FUSE 파일경로에 대한 접근을 요청하는 요청정보를 상기 사용자 라이브러리로 제공하면, 상기 사용자 라이브러리가 상기 요청정보를 상기 가상 파일 시스템으로 제공하고, 상기 가상 파일 시스템이 상기 요청정보에 포함된 FUSE 파일경로에 대한 처리자가 미리 등록되어 있으면 FUSE 마운트된 것으로 판단하여 미리 등록된 상기 FUSE 커널 드라이버로 상기 요청정보를 제공하고, 상기 FUSE 커널 드라이버가 상기 요청정보를 상기 FUSE 사용자 데몬으로 제공하며, 상기 FUSE 사용자 데몬이 상기 커널 기반 파일 시스템을 통해 상기 FUSE 파일경로에 대응되게 미리 정해진 상기 물리적인 저장장치의 파일주소의 파일로 직접 접근하며, 상기 FUSE 사용자 데몬이, 상기 물리적인 저장장치의 파일주소의 파일에 대한 접근결과정보를 상기 FUSE 커널 드라이버로 반환하고, 상기 FUSE 커널 드라이버가, 상기 파일에 대한 접근결과정보를 상기 가상 파일 시스템으로 반환하고, 상기 가상 파일 시스템이, 상기 파일에 대한 접근결과정보를 상기 사용자 라이브러리로 반환하고, 상기 사용자 라이브러리가, 상기 파일에 대한 접근결과정보를 상기 사용자 어플리케이션으로 반환하며, 상기 FUSE 파일경로에 대한 파일에는 보호대상 데이터가 포함됨을 특징으로 한다. A data protection device in a Linux-based operating system according to the present invention to achieve the above object 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. 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. and the FUSE kernel driver returns access result information for the file to the virtual file system, and 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, and the file for the FUSE file path includes data subject to protection.

본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호하는 효과가 있다. 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.

또한 본 발명은 인증된 사용자에 의한 접근요청에 의해서만 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대해 접근가능하게 하여 상기 데이터를 안전하게 보호하는 효과가 있다. In addition, 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.

또한 본 발명은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호하는 효과가 있다. In addition, in the present invention, 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.

또한 본 발명은 FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소를 동일하게 하여, 이분화된 파일주소에 기록된 파일 중 어느 하나가 훼손됨에 따라 발생할 수 있는 FUSE의 문제 상황을 미연에 방지할 수 있게 하는 효과가 있다. In addition, 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.

도 1은 본 발명의 바람직한 실시예에 따르는 데이터 보호 장치의 개략적인 구성도.
도 2는 본 발명의 바람직한 실시예에 따르는 FUSE 파일경로를 예시한 도면.
도 3은 도 1의 프로세서의 개략적인 처리절차를 도시한 도면.
도 4는 본 발명의 바람직한 실시예에 따르는 소프트웨어 구조도.
도 5 및 도 6은 본 발명의 바람직한 실시예에 따르는 데이터 보호방법의 절차를 도시한 도면.
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.

본 발명은 보호대상 데이터가 실린 파일을 FUSE 마운트된 상태에서만 접근가능한 FUSE 저장영역에 저장하여 상기 보호대상 데이터를 안전하게 보호한다. 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.

또한 본 발명은 인증된 사용자에 의한 접근요청에 의해서만 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대해 접근가능하게 하여 상기 데이터를 안전하게 보호한다. In addition, 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.

또한 본 발명은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호한다. In addition, in the present invention, 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. , Safely protect the data subject to protection.

또한 본 발명은 FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소를 동일하게 하여, 이분화된 파일주소에 기록된 파일 중 어느 하나가 훼손됨에 따라 발생할 수 있는 FUSE의 문제 상황을 미연에 방지할 수 있게 한다. In addition, 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.

이러한 본 발명의 상세한 설명에 앞서 파일 시스템 인 유저스페이스(Filesystem in Userspace, 이하 FUSE라 칭함)에 대해 설명한다. FUSE 프로젝트는 2004년에 시작되어 2005년에 리눅스 커널에 구현되었다. 상기 FUSE는 권한이 없는 사용자가 커널 소스 코드를 편집하지 않고 자신의 파일 시스템을 작성할 수 있게 하므로 라이선스 문제를 피할 수 있게 한다. Prior to the detailed description of the present invention, 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.

또한 상기 FUSE는 개발하기 쉬운 사용자 공간에 있으며, 사용자 공간 프로그램은 사용자 공간 프로그램이 손상되는 경우일지라도 시스템의 손상을 유발하지 않으므로, 시스템의 안정성을 높일 수 있다. 이와 대조적으로 커널 파일 시스템의 프로그램은 그럴 위험성을 가지고 있다. In addition, 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. In contrast, programs in the kernel file system have that risk.

또한 사용자 공간 코드는 모든 언어로 작성될 수 있으며 디버깅이 용이한 반면 커널 코드 작성은 훨씬 복잡하며 실수로 인한 결함으로 커널과 시스템에서 예기치 못한 재부팅을 발생시킬 수 있다.Additionally, while user space code can be written in any language and is easy to debug, writing kernel code is much more complex and accidental glitches can cause unexpected reboots in the kernel and system.

또한 상기 FUSE는 워크로드(쓰기/읽기) 또는 하드웨어에 따라 기본 리눅스 파일 시스템보다 느리게 수행되는 한계가 있어, 대용량 데이터를 위해 파일 시스템을 사용자 공간으로 이동하는 것은 효율적이지 않다. Additionally, 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.

본 발명은 상기의 FUSE를 이용하여 리눅스 기반 운영체제에서 보호대상 데이터를 안전하게 보호한다. 특히 본 발명은 워크로드(workload) 및 CPU에의 성능저하를 고려하여 크기가 크지 않은 암호화 키 등의 키 데이터로 보호대상을 한정할 수 있다. The present invention uses the above FUSE to safely protect data subject to protection in a Linux-based operating system. In particular, 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.

이제 상기한 본 발명의 바람직한 실시예에 따르는 데이터 보호방법 및 장치를 도면을 참조하여 상세하게 설명한다. Now, the data protection method and device according to the preferred embodiment of the present invention described above will be described in detail with reference to the drawings.

<데이터 보호 장치의 개략적인 구성><Outline configuration of data protection device>

먼저 본 발명이 적용되는 데이터 보호 장치의 구성을 설명한다. 도 1은 본 발명의 바람직한 실시예에 따르는 데이터 보호 장치의 개략적인 구성도이다. 상기 도 1을 참조하면, 상기 데이터 보호 장치는 프로세서(10)와 물리적인 저장장치(20)와 사용자 인터페이스 장치(30)로 구성된다. First, the configuration of the data protection device to which the present invention is applied will be described. 1 is a schematic configuration diagram of a data protection device according to a preferred embodiment of the present invention. Referring to FIG. 1, the data protection device consists of a processor 10, a physical storage device 20, and a user interface device 30.

상기 프로세서(10)는 사용자 인터페이스 장치(30)를 통한 사용자의 요청에 따라 FUSE 마운트(mounted)하거나(makeFuseMount()), FUSE 언마운트(un-mounted)하거나(unmountFuse()), FUSE 마운트된 상태에서 접근 가능하게 되는 FUSE 저장영역에 보호대상 데이터가 실린 파일에 대한 읽기/쓰기(Read/Write data) 등을 이행한다. 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 .

상기 저장장치(20)는 물리적인 저장영역을 제공하며, FUSE 마운트 또는 FUSE 언마운트시의 보호대상 데이터를 저장하기 위한 FUSE 저장영역을 제공한다. 여기서, 상기 FUSE 마운트 또는 FUSE 언마운트시의 FUSE 저장영역은 도 2에 도시한 바와 같이 동일한 경로(/path/to/fuse-data)를 가지며, 이는 FUSE 마운트 중 FUSE 언마운트의 FUSE 저장영역의 데이터가 변경되거나, FUSE 언마운트시에 FUSE 마운트의 FUSE 저장영역에 기록된 데이터가 변경되는 것을 미연에 방지하여, 시스템의 안정성을 도모할 수 있다. 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. Here, 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.

상기 사용자 인터페이스 장치(30)는 프로세서(10)와 사용자 사이의 인터페이스를 담당한다. The user interface device 30 is responsible for the interface between the processor 10 and the user.

<프로세서의 개략적인 처리절차><Approximate processing procedure of the processor>

상기 프로세서(10)의 개략적인 처리절차를 도 3을 참조하여 좀더 설명한다. 상기 프로세서(10)는 사용자 인터페이스 장치(30)를 통해 보호대상 데이터의 읽기 또는 쓰기가 요구되면 FUSE 마운트를 이행한다(makeFuseMount())(40단계). 상기 FUSE 마운트시에는 사용자 식별정보(#uid='rsfuse')와 그룹 식별정보(#gid='rsfuse')를 통한 인증을 이행한다. A schematic processing procedure of the processor 10 will be further described with reference to FIG. 3. When reading or writing data to be protected is requested through the user interface device 30, the processor 10 performs a FUSE mount (makeFuseMount()) (step 40). When mounting the FUSE, authentication is performed through user identification information (#uid='rsfuse') and group identification information (#gid='rsfuse').

상기의 FUSE 마운트가 이행되면, 상기 프로세서(10)는 FUSE 저장영역으로부터 보호대상 데이터, 예를들면 암호화 키 등에 대한 키 데이터가 실린 파일을 읽기 또는 쓰기한다(Read/Write data)(50단계). 여기서, 상기 프로세서(10)는 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호한다. When the FUSE mount is performed, 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). Here, if the request for access to a file containing data subject to protection recorded in the FUSE storage area is read, 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.

상기 보호대상 데이터에 대한 읽기 또는 쓰기가 완료되면, 상기 프로세서(10)는 FUSE 언마운트를 이행한다(unmountFuse())(60단계). When reading or writing the data to be protected is completed, the processor 10 performs FUSE unmounting (unmountFuse()) (step 60).

<프로세서의 소프트웨어 구조><Processor software structure>

상기한 바와 같이 구성되는 데이터 보호 시스템의 프로세서(10)에 탑재되는 소프트웨어의 구조를 도 4를 참조하여 좀더 설명한다. 도 4를 참조하면, 상기 프로세서(10)에 구비되는 소프트웨어 모듈은 크게 사용자 공간(101)과 커널 공간(102)으로 나눌 수 있다. The structure of the software mounted on the processor 10 of the data protection system configured as described above will be further described with reference to FIG. 4. Referring to FIG. 4, software modules provided in the processor 10 can be roughly divided into user space 101 and kernel space 102.

상기 사용자 공간(101)에 속하는 소프트웨어 모듈에는 사용자 어플리케이션(113)과 사용자 라이브러리(114)와 FUSE 기능의 수행을 위한 사용자부(103)와 FUSE 데몬 프로그램(109)과 FUSE 라이브러리 프로그램(110)이 포함되며, 상기 사용자부(103)에는 FUSE 사용자 데몬(105)과 FUSE 라이브러리(106)가 포함된다. 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.

그리고 상기 커널 공간(102)에 속하는 소프트웨어 모듈에는 가상 파일 시스템(117)과 커널 기반 파일 시스템(118)과 FUSE 커널부(104)가 포함되며, 상기 FUSE 커널부(104)에는 FUSE 디바이스(107)와 FUSE 커널 드라이버(108)가 포함된다. And 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.

상기 사용자 어플리케이션(113)은 C/C+, JAVA 등으로 구성되어 사용자 요청에 따르는 기능을 수행한다. 상기의 기능 중에는 FUSE 기능을 통해 보호대상 데이터가 실린 파일을 보호함과 아울러 보호대상 데이터가 실린 파일의 읽기/쓰기 등이 포함된다. 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.

상기 사용자 라이브러리(114)는 상기 사용자 어플리케이션(113)의 요청에 따라 커널 공간(102)에 위치하는 가상 파일 시스템(117)으로 파일의 접근을 요청하고, 상기 가상 파일 시스템(117)이 제공하는 파일 접근요청에 대한 결과정보를 상기 사용자 어플리케이션(113)으로 반환한다. 특히 상기 사용자 라이브러리(114)는 상기 사용자 어플리케이션(113)으로부터의 요청에 따라 FUSE 마운트/FUSE 언마운트를 FUSE 데몬 프로그램(109)에 요청한다. 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.

상기 가상 파일 시스템(117)은 실제의 파일 시스템 위에 존재하는 추상 계층을 통해 여러 파일 시스템에 접근할 수 있게 한다. 이러한 가상 파일 시스템(117)은 사용자 라이브러리(114) 또는 FUSE 데몬 프로그램(109), FUSE 사용자 데몬(105)의 요청에 따라 커널 기반 파일 시스템(118) 또는 FUSE 커널부(104)로 파일의 접근을 요청하고, 상기 커널 기반 파일 시스템(118) 또는 FUSE 커널부(104)가 반환하는 파일 접근요청에 대한 결과정보를 상기 사용자 라이브러리(114)로 반환한다. 특히 상기 가상 파일 시스템(117)은 FUSE 마운트시에 상기 FUSE 파일경로에 대한 처리자, 즉 FUSE 터널 드라이버(108)에 대한 정보를 등록한다. 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. In particular, 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.

상기 커널 기반 파일 시스템(118)은 물리적인 저장장치(20) 및 그 안의 파일의 관리하며, 상기 가상 파일 시스템(117)의 요청에 따른 물리적인 저장장치(20)의 접근 요청에 따른 동작을 수행하고, 그에 따른 결과를 상기 가상 파일 시스템(117)으로 반환한다. 또한 상기 커널 기반 파일 시스템(118)은 상기 가상 파일 시스템(117)을 통한 상기 사용자 공간(101)에 존재하는 FUSE 데몬 프로그램(109) 또는 상기 사용자부(103)의 FUSE 사용자 데몬(105)으로부터의 요청을 수행하고, 그에 따른 결과를 상기 가상 파일 시스템(117)을 통해 상기 FUSE 데몬 프로그램(109) 또는 상기 FUSE 사용자 데몬(105)으로 반환한다. 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. In addition, 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.

상기 FUSE 데몬 프로그램(109)은 상기 사용자 라이브러리(114)의 요청에 따라 실행되어 FUSE 마운트를 이행하고, 그 FUSE 마운트가 완료되면 자신을 FUSE 사용자 데몬(105)으로 등록하여 FUSE 사용자 데몬(105)으로서 동작한다. 여기서, 상기의 FUSE 마운트시에 상기 FUSE 데몬 프로그램(109)은 커널 기반 시스템(118)으로부터 FUSE 파일경로에 대한 물리적인 저장장치의 파일주소를 제공받는다. 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. Here, when mounting the FUSE, 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.

상기 FUSE 라이브러리 프로그램(110)은 상기 FUSE 데몬 프로그램(109)에 의한 FUSE 마운트가 완료되면 FUSE 파일경로 정보 및 사용자 및 그룹 식별정보(UID:RSFUSE,GID:RSFUSE)를 FUSE 커널부(104)의 FUSE 커널 디바이스(107)로 제공한다. When the FUSE mount by the FUSE daemon program 109 is completed, 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.

상기 FUSE 커널 드라이버(108)는 상기 FUSE 라이브러리 프로그램(110)이 FUSE 파일경로 정보 및 사용자 및 그룹 식별정보(UID:RSFUSE,GID:RSFUSE)를 제공하면, 이를 저장함과 아울러 상기 가상 파일 시스템(117)으로 상기 FUSE 파일경로에 대한 처리자는 자신임을 지시하는 정보를 제공한다. 여기서, 상기 가상 파일 시스템(117)은 상기 정보를 저장하고, 그 정보에 따라 상기 FUSE 파일경로에 대한 요청이 제공되면, 이를 상기 FUSE 커널부(104)의 FUSE 커널 드라이버(108)로 제공하여 처리를 요청한다. When the FUSE library program 110 provides FUSE file path information and user and group identification information (UID:RSFUSE, GID:RSFUSE), 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. Here, 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.

또한 상기 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)는 요청이 완료되었음을 확인할 수 있다.Additionally, when a request for the FUSE file path is provided, 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. Here, 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.

상기 FUSE 사용자 데몬(105)은 FUSE 디바이스(107)를 통해 FUSE 요청을 읽고, 요청을 처리한 후 FUSE 라이브러리(106)를 이용하여 FUSE 디바이스(107)에 응답을 기입하는 방식으로 데이터가 송수신된다. 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.

또한 상기 FUSE 커널 드라이버(108)는 상기 FUSE 사용자 데몬(105)으로부터 FUSE 파일경로에 대한 접근요청에 따른 회신정보가 제공되면, 이를 가상 파일 시스템(117)으로 반환한다. Additionally, 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.

그리고 상기 FUSE 사용자 데몬(105)은 상기 FUSE 커널부(104)를 통해 상기 FUSE 파일경로에 대한 접근요청이 제공되면, 상기 커널 기반 파일 시스템(118)을 통해 상기 FUSE 파일경로에 대응되는 물리적인 저장장치(20)의 파일주소로 직접 접근하여 원본 파일인 보호대상 데이터가 실린 파일에 대해 읽기 또는 쓰기 등을 수행하고 그에 따른 결과를 FUSE 커널 드라이버(108)로 반환한다. 여기서, 상기 커널 기반 파일 시스템(118)과 상기 FUSE 사용자 데몬(105)은 가상 파일 시스템(117)을 경유하여 데이터 통신을 이행한다. And when an access request for the FUSE file path is provided through the FUSE kernel unit 104, the FUSE user daemon 105 physically stores the FUSE file path corresponding to the FUSE file path through the kernel-based file system 118. By directly accessing the file address of the device 20, reading or writing is performed on the file containing the data to be protected, which is the original file, and the result is returned to the FUSE kernel driver 108. Here, the kernel-based file system 118 and the FUSE user daemon 105 perform data communication via the virtual file system 117.

<데이터 보호방법의 절차><Procedures of data protection method>

이제 상기한 본 발명의 바람직한 실시예에 따르는 데이터 보호방법의 절차를 도 5 및 도 6을 참조하여 설명한다. 상기 도 5 및 도 6을 참조하면, 유저 어플리케이션(113)은 사용자의 요청에 따라 FUSE 파일경로에 저장된 파일을 요청하는 정보를 사용자 라이브러리(114)로 전송한다(200단계). 여기서, 상기 FUSE 파일경로는 보호대상 데이터를 기록한 파일에 대한 파일경로로서 미리 설정될 수 있다. Now, the procedure of the data protection method according to the preferred embodiment of the present invention described above will be described with reference to FIGS. 5 and 6. Referring to Figures 5 and 6, 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). Here, the FUSE file path may be set in advance as a file path for a file recording data to be protected.

상기 FUSE 파일경로에 저장된 파일을 요청하는 정보를 제공받은 사용자 라이브러리(114)는 FUSE 파일경로에 대한 처리자가 등록되었는지 확인을 요청하는 정보를 가상 파일 시스템(117)으로 전송한다(201단계). 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).

상기 가상 파일 시스템(117)은 상기 요청에 따라 FUSE 파일경로에 대한 처리자 등록여부를 나타내는 정보를 상기 사용자 라이브러리(114)로 반환한다(202단계). 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).

상기 사용자 라이브러리(114)는 상기 FUSE 파일경로에 대한 처리자가 등록되지 않았으면, FUSE 마운트의 시도를 위해 FUSE 데몬 프로그램(109)을 실행한다(204단계). If the handler for the FUSE file path is not registered, the user library 114 executes the FUSE daemon program 109 to attempt a FUSE mount (step 204).

상기 FUSE 데몬 프로그램(109)은 실행되면, 상기 가상 파일 시스템(117)을 통해 상기 커널 기반 파일 시스템(118)에 접근하여 상기 FUSE 파일경로에 대응되는 FUSE 디렉토리에 대한 물리적인 저장장치(20)의 파일주소를 요청한다(206,208단계). 상기의 요청에 따라 상기 커널 기반 파일 시스템(118)은 상기 FUSE 디렉토리에 대한 물리적인 저장장치(20)의 파일주소를 가상파일 시스템(117)을 통해 FUSE 데몬 프로그램(109)으로 반환한다(210,212단계). 여기서, 상기 커널 기반 파일 시스템(118)은 상기 FUSE 디렉토리에 대응되는 파일주소에 대한 정보를 미리 저장할 수 있다. 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.

상기 FUSE 데몬 프로그램(109)은 상기 FUSE 디렉토리에 대한 물리적인 저장장치(20)의 파일주소를 저장하고 자신을 FUSE 사용자 데몬(105)으로 등록함과 아울러 상기 FUSE 라이브러리 프로그램(110)을 호출하여 FUSE 파일 경로 및 사용자 인증정보를 FUSE 라이브러리 프로그램(110)에 제공한다(214,216단계). 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).

상기 FUSE 라이브러리 프로그램(110)은 FUSE 파일경로 및 사용자 인증정보를 FUSE 커널 드라이버(108)로 전송한다(218단계).The FUSE library program 110 transmits the FUSE file path and user authentication information to the FUSE kernel driver 108 (step 218).

상기 FUSE 커널 드라이버(108)는 상기 FUSE 파일경로 및 사용자 인증정보를 저장함과 아울러 FUSE 파일경로에 대한 처리자 정보를 상기 가상 파일 시스템(117)으로 전송한다(220단계).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).

상기 FUSE 파일경로에 대한 처리자 정보를 제공받은 가상 파일 시스템(117)은 상기 FUSE 파일경로에 대한 처리자 정보를 등록함과 아울러 FUSE 마운트를 사용자 라이브러리(114)로 통지한다(224단계). 상기 사용자 라이브러리(114)는 상기 FUSE 마운트의 완료가 통지되면, 상기의 203단계로 복귀한다(226단계). 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). When the user library 114 is notified of completion of the FUSE mount, it returns to step 203 (step 226).

한편 상기 FUSE 마운트가 이루어진 상태이면, 상기 사용자 라이브러리(114)는 FUSE 파일경로에 대한 파일에 대한 접근을 가상파일 시스템(117)에 요청한다(300단계). 상기 가상파일 시스템(117)은 상기 FUSE 파일경로에 대응되는 처리자가 미리 등록되어 있는지를 체크한다(302단계). 상기 FUSE 파일경로에 대응되는 처리자가 미리 등록되어 있으면, 상기 가상파일 시스템(117)은 FUSE 파일경로에 대한 처리자 정보에 따라 요청자의 UID/GID 및 FUSE 파일경로를 FUSE 커널 드라이버(108)로 전송한다(304단계). Meanwhile, when the FUSE mount is established, 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).

상기 FUSE 커널 드라이버(108)는 요청자가 제공한 UID/GID 및 FUSE 파일경로와 미리 등록된 UID/GID 및 FUSE 파일경로가 서로 대응되는지를 체크하여 인증을 이행한다(306단계). 상기 인증에 실패하면, 상기 FUSE 커널 드라이버(108)는 비정상 사용자에 의한 데이터 요청으로 판단하여 에러처리한다(310단계).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).

상기한 바와 달리 인증에 성공하면, 상기 FUSE 커널 드라이버(108)는 FUSE 사용자 데몬(105)에 FUSE 파일경로에 대한 접근요청정보를 전송한다(312단계). 상기 접근요청정보를 제공받은 FUSE 사용자 데몬(105)은 커널 기반 파일 시스템(118) 및 가상파일 시스템(117)을 통해 FUSE 파일경로에 대응되는 물리적인 저장장치(20)의 파일주소에 직접 접근하여 보호대상이 되는 데이터의 파일에 대해 읽기 또는 쓰기를 이행한다(314단계). 여기서, 상기 FUSE 사용자 데몬(106)은 FUSE 저장영역에 기록된 보호대상 데이터가 실린 파일에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기인 경우에는 암호화 과정을 거쳐 원본 파일에 기록하여, 상기 보호대상 데이터를 안전하게 보호한다. Contrary to the above, if authentication is successful, 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). Here, when a request for access to a file containing data to be protected recorded in the FUSE storage area is read, 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.

또한 상기 FUSE 사용자 데몬(105)은 보호대상이 되는 데이터의 파일에 대해 읽기 또는 쓰기를 이행한 결과인 FUSE 파일경로에 대한 접근요청에 따르는 결과정보를 FUSE 커널 드라이버(108) 및 가상 파일 시스템(117)을 통해 사용자 라이브러리(114)로 전송한다(316,318,320단계). 상기 사용자 라이브러리(114)는 상기 FUSE 파일경로에 대한 접근요청에 따른 결과정보가 제공되면, 이를 사용자 어플리케이션(113)으로 전송한다(324단계). In addition, 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). When 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).

또한 상기의 FUSE 마운트 상태는 미리 정해둔 시간의 경과 또는 사용자 어플리케이션(113)을 통한 사용자의 요청에 따라 FUSE 언마운트된다. 즉 사용자 어플리케이션(113)을 통한 FUSE 언마운트 요청에 따라 사용자 라이브러리(114)는 가상 파일 시스템(117) 및 FUSE 사용자 데몬(105)에 FUSE 언마운트를 요청하며, 상기 FUSE 언마운트 요청에 따라 상기 가상 파일 시스템(117)이 FUSE 파일경로에 대한 처리자 정보를 초기화함과 아울러, 상기 FUSE 사용자 데몬(105) 역시 FUSE 파일경로에 대응되는 물리적인 주소 정보 등을 초기화함과 아울러 FUSE 데몬 프로그램(109)으로 자신의 상태를 복귀시킨다. In addition, 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 embodiments of the present invention described above have been disclosed for illustrative purposes, and those skilled in the art will be able to make various modifications, changes, and additions within the spirit and scope of the present invention, and such modifications , changes and additions should be regarded as falling within the scope of this patent claim.

Claims (10)

물리적인 저장장치; 및 소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, 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 라이브러리 프로그램을 통해 상기 FUSE 파일경로와 그에 대응되는 사용자 및 그룹 식별정보를 상기 FUSE 커널 드라이버에 제공하여 등록한 후에 FUSE 마운트 상태로 판단함을 특징으로 하는 데이터 보호장치.
physical storage; and a software module, comprising 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;
When the user application provides request information requesting access to the FUSE file path to the user library, the user library provides the request information to the virtual file system, and the virtual file system includes the request information. If a processor for the FUSE file path is pre-registered, it is determined that FUSE is mounted and the request information is provided to the pre-registered FUSE kernel driver, and the FUSE kernel driver provides the request information to the FUSE user daemon, The FUSE user daemon directly accesses a file with a file address of the physical storage device that is predetermined corresponding to the FUSE file path through the kernel-based file system, and the FUSE user daemon accesses the file address of the physical storage device. Access result information for the file is returned to the FUSE kernel driver, the FUSE kernel driver returns access result information for the file to the virtual file system, and the virtual file system returns access result information for the file. returns to the user library, and the user library returns access result information for the file to the user application,
The file for the FUSE file path includes data to be protected,
The requested information further includes user and group identification information,
The FUSE kernel driver checks whether the user and group identification information included in the request information corresponds to user and group identification information predetermined to correspond to the FUSE file path, and identifies the user and group included in the request information. If the information corresponds to the user and group identification information predetermined to correspond to the FUSE file path, authentication is determined to be successful, and only when the authentication is successful, the request information is provided to the FUSE user daemon,
The processor further includes a FUSE daemon program and a FUSE library program,
If a processor for the FUSE file path included in the request information is not registered in the virtual file system, the user library determines that the FUSE is unmounted and executes the FUSE daemon program, and the FUSE daemon program executes the execution event. Accordingly, the file address of the physical storage device corresponding to the FUSE file path is requested from the kernel-based file system, and when the kernel-based file system returns the file address of the physical storage device, the file address of the physical storage device is After saving the file address corresponding to the FUSE file path, it registers itself as the FUSE user daemon and also sends the FUSE file path and corresponding user and group identification information to the FUSE kernel driver through the FUSE library program. A data protection device characterized in that it is determined to be in a FUSE mount state after being provided and registered.
제1항에 있어서,
상기 보호대상 데이터가 포함된 파일에 대한, FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소는 동일함을 특징으로 하는 데이터 보호장치.
According to paragraph 1,
A data protection device, characterized in that the physical file address in a FUSE mounted state and the physical file address in a FUSE unmounted state for the file containing the data to be protected are the same.
제1항에 있어서,
상기 FUSE 사용자 데몬은, 상기 물리적인 저장장치의 파일주소에 기록된 파일의 데이터에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기의 경우에는 암호화 과정을 거쳐 원본 파일에 기록함을 특징으로 하는 데이터 보호장치.
According to paragraph 1,
The FUSE user daemon, when a request for access to data of a file recorded at the file address of the physical storage device is a read, reads the original file and returns it through a decryption process, and in the case of a write, it returns the original file through an encryption process. A data protection device characterized by recording to a file.
물리적인 저장장치 및 소프트웨어 모듈로서, 사용자 어플리케이션, 사용자 라이브러리, 가상 파일 시스템, 커널 기반 파일 시스템, 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 라이브러리 프로그램을 통해 상기 FUSE 파일경로와 그에 대응되는 사용자 및 그룹 식별정보를 상기 FUSE 커널 드라이버에 제공하여 등록한 후에 FUSE 마운트 상태로 판단하는 단계;를 더 포함하는 것을 특징으로 하는 데이터 보호방법.
In a device comprising a processor equipped with a physical storage device and a software module, 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 providing request information requesting access to the FUSE file path to the user library; The user library providing the request information to the virtual file system; determining that the virtual file system is FUSE mounted if a processor for the FUSE file path included in the request information is pre-registered, and providing the request information to the pre-registered FUSE kernel driver; The FUSE kernel driver providing the request information to the FUSE user daemon; Directly accessing, by the FUSE user daemon, a file with a file address of the physical storage device predetermined corresponding to the FUSE file path through the kernel-based file system; Returning, by the FUSE user daemon, access result information for a file of the file address of the physical storage device to the FUSE kernel driver; Returning, by the FUSE kernel driver, access result information for the file to the virtual file system; returning, by the virtual file system, access result information for the file to the user library; and returning, by the user library, access result information for the file to the user application,
The file for the FUSE file path includes data to be protected,
The requested information further includes user and group identification information,
The FUSE kernel driver checks whether the user and group identification information included in the request information corresponds to user and group identification information predetermined in correspondence to the FUSE file path, and identifies the user and group included in the request information. If the information corresponds to the user and group identification information predetermined to correspond to the FUSE file path, authentication is determined to be successful, and only when the authentication is successful, the request information is provided to the FUSE user daemon,
The processor further includes a FUSE daemon program and a FUSE library program,
The user library, if a processor for the FUSE file path included in the request information is not registered in the virtual file system, determining a FUSE unmounted state and executing the FUSE daemon program; The FUSE daemon program requests a file address of a physical storage device corresponding to the FUSE file path from the kernel-based file system according to an execution event; And when the kernel-based file system returns the file address of the physical storage device, it stores the file address of the physical storage device corresponding to the FUSE file path and then registers itself as the FUSE user daemon. , providing and registering the FUSE file path and corresponding user and group identification information to the FUSE kernel driver through the FUSE library program, and then determining the FUSE mount status.
제4항에 있어서,
상기 보호대상 데이터가 포함된 파일에 대한, FUSE 마운트된 상태의 물리적인 파일주소와 FUSE 언마운트된 상태의 물리적인 파일주소는 동일함을 특징으로 하는 데이터 보호방법.
According to clause 4,
A data protection method, wherein the physical file address in a FUSE mounted state and the physical file address in a FUSE unmounted state for the file containing the data to be protected are the same.
제4항에 있어서,
상기 FUSE 사용자 데몬은, 상기 물리적인 저장장치의 파일주소에 기록된 파일의 데이터에 대한 접근요청이, 읽기인 경우에는 원본 파일을 읽어서 복호화 과정을 거쳐 반환하고, 쓰기의 경우에는 암호화 과정을 거쳐 원본 파일에 기록함을 특징으로 하는 데이터 보호방법.
According to clause 4,
The FUSE user daemon, when a request for access to data of a file recorded at the file address of the physical storage device is a read, reads the original file and returns it through a decryption process, and in the case of a write, it returns the original file through an encryption process. A data protection method characterized by recording in a file.
삭제delete 삭제delete 삭제delete 삭제delete
KR1020230132725A 2022-11-17 2023-10-05 Data protection methods and Apparatus in Linux-based OS KR102675729B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020230132725A KR102675729B1 (en) 2023-10-05 2023-10-05 Data protection methods and Apparatus in Linux-based OS
PCT/KR2023/016835 WO2024106794A1 (en) 2022-11-17 2023-10-27 Data protection method and device in linux-based operating system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230132725A KR102675729B1 (en) 2023-10-05 2023-10-05 Data protection methods and Apparatus in Linux-based OS

Publications (1)

Publication Number Publication Date
KR102675729B1 true KR102675729B1 (en) 2024-06-19

Family

ID=91712420

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230132725A KR102675729B1 (en) 2022-11-17 2023-10-05 Data protection methods and Apparatus in Linux-based OS

Country Status (1)

Country Link
KR (1) KR102675729B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019177244A1 (en) * 2018-03-14 2019-09-19 ㈜나무소프트 System for providing hybrid worm disk
KR102232919B1 (en) * 2020-08-10 2021-03-29 (유)아홉 Self-mutation system using virtualization and COW file system technology

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019177244A1 (en) * 2018-03-14 2019-09-19 ㈜나무소프트 System for providing hybrid worm disk
KR102232919B1 (en) * 2020-08-10 2021-03-29 (유)아홉 Self-mutation system using virtualization and COW file system technology

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Shin Jungsub, ‘Linux Fuse (Filesystem in Userspace)’,Ssup2 Github Blog, 2017.08.24.* *

Similar Documents

Publication Publication Date Title
US9361243B2 (en) Method and system for providing restricted access to a storage medium
US8234477B2 (en) Method and system for providing restricted access to a storage medium
US7536524B2 (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
US5944821A (en) Secure software registration and integrity assessment in a computer system
US8069487B2 (en) Cloud-based application whitelisting
US7484245B1 (en) System and method for providing data security
CN113254949B (en) Control device, system for controlling access and method executed by controller
US20040003321A1 (en) Initialization of protected system
US20030221115A1 (en) Data protection system
US20070180257A1 (en) Application-based access control system and method using virtual disk
CN112818327A (en) TrustZone-based user-level code and data security credibility protection method and device
CN115329389B (en) File protection system and method based on data sandbox
US20240152610A1 (en) Methods and systems for detecting and blocking malicious actions in operating system
KR101954421B1 (en) Method for preventing real-time alteration of the data in WORM storage device based on hard disk or SSD
KR102675729B1 (en) Data protection methods and Apparatus in Linux-based OS
US6804784B1 (en) Back-channeling in a memory vault system
KR20030090568A (en) System for protecting computer resource and method thereof
WO2024106794A1 (en) Data protection method and device in linux-based operating system
RU119910U1 (en) BUILT-IN TSM SECURITY MODULE
KR100358108B1 (en) Apparatus for protecting harddisk data
CN112580023B (en) Shadow stack management method and device, medium and equipment
US20220405431A1 (en) System and Method for Managing Secure Files in Memory
US20220374534A1 (en) File system protection apparatus and method in auxiliary storage device
US20200174976A1 (en) Applying append-only policies for files

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant