KR102386219B1 - Method And System for Policy-Based Versioning based on SGX-SSD - Google Patents

Method And System for Policy-Based Versioning based on SGX-SSD Download PDF

Info

Publication number
KR102386219B1
KR102386219B1 KR1020200074649A KR20200074649A KR102386219B1 KR 102386219 B1 KR102386219 B1 KR 102386219B1 KR 1020200074649 A KR1020200074649 A KR 1020200074649A KR 20200074649 A KR20200074649 A KR 20200074649A KR 102386219 B1 KR102386219 B1 KR 102386219B1
Authority
KR
South Korea
Prior art keywords
file
ssd
sgx
policy
input
Prior art date
Application number
KR1020200074649A
Other languages
Korean (ko)
Other versions
KR20210156961A (en
Inventor
김영재
안진우
이승진
이진훈
Original Assignee
서강대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 서강대학교산학협력단 filed Critical 서강대학교산학협력단
Priority to KR1020200074649A priority Critical patent/KR102386219B1/en
Publication of KR20210156961A publication Critical patent/KR20210156961A/en
Application granted granted Critical
Publication of KR102386219B1 publication Critical patent/KR102386219B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/565Static detection by checking file integrity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6263Protecting personal data, e.g. for financial or medical purposes during internet communication, e.g. revealing personal data from cookies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Power Engineering (AREA)
  • Virology (AREA)
  • Storage Device Security (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 실시예는 호스트 서버(host server)와 유선 또는 무선으로 연결되고, 고유의 키값인 Kdev'가 저장된 엔클레이브(enclave)를 포함하며, 호스트 서버로부터 전송된 데이터를 Kdev'를 이용하여 복호화(decrypt)하는 SGX(Software Guard Extension) 기반의 PV-SSD(Policy-based file Versioning SSD) 및 Kdev'와 동일한 키값인 Kdev가 저장된 엔클레이브(enclave)를 포함하고, 사용자로부터 환경설정 변수(CP, Configuration Parameter)의 전부 또는 일부 및 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 요청하는 명령(command)을 입력받아 Kdev를 이용하여 암호화(encrypt)하여 상기 PV-SSD에 전송하는 SPM(Secure Policy Manager)을 포함하는, SGX-SSD 시스템 및 SGX-SSD 시스템을 이용한 정책 기반의 파일 버전관리 방법을 제공한다.This embodiment is connected to a host server by wire or wirelessly, and includes an enclave in which a unique key value, Kdev' , is stored, and data transmitted from the host server is decrypted using Kdev' . ), includes an enclave in which Kdev , the same key value as that of PV-SSD (Policy-based File Versioning SSD) based on SGX (Software Guard Extension) and Kdev' , is stored, and configuration variables (CP, Configuration Parameter) from the user. ) and SPM (Secure Policy Manager) that receives a command requesting any one of creation, change, and deletion of file policy, encrypts it using Kdev and transmits it to the PV-SSD It provides an SGX-SSD system and a policy-based file version management method using the SGX-SSD system, including.

Figure 112020063094176-pat00001
Figure 112020063094176-pat00001

Description

SGX-SSD를 이용한 정책 기반 버전관리 방법 및 그 시스템{Method And System for Policy-Based Versioning based on SGX-SSD}Method And System for Policy-Based Versioning based on SGX-SSD}

본 실시예는 SGX-SSD를 이용한 정책 기반 버전관리 방법 및 SGX-SSD 시스템에 관한 것이다.This embodiment relates to a policy-based version management method using an SGX-SSD and an SGX-SSD system.

이 부분에 기술된 내용은 단순히 본 실시예에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.The content described in this section merely provides background information for the present embodiment and does not constitute the prior art.

최근, 랜섬웨어(ransomware)와 같은 악성코드(malware)를 이용한 백업 데이터/장치에 대한 데이터 변조 공격(data tampering attack)으로 인하여, 저장장치(storage)의 데이터 무결성(integrity of data)이 훼손되고 있다. 이에 따라, 데이터를 버전 관리(versioning) 함으로써 저장장치의 데이터 무결성을 보장하려는 연구들이 이루어지고 있다(비특허문헌 1 참조).Recently, due to a data tampering attack on backup data/devices using malware such as ransomware, the integrity of data in storage is being damaged. . Accordingly, studies are being made to ensure data integrity of a storage device by versioning data (see Non-Patent Document 1).

예컨대, Intel SGX(Software Guard Extension)는 Intel의 마이크로아키텍처 6세대 모델인 스카이레이크(Skylake) 기반의 소프트웨어 보안기술로, CPU에 내장된 보안 관련 명령어 집합(instruction set)이다. SGX는 높은 권한을 가진 시스템에 의해서도 접근이 제한되는 엔클레이브(enclave)라는 신뢰 메모리 영역을 제공함으로써 신뢰실행환경(TEE, Trusted Execution Environment)을 제공한다(비특허문헌 2 참조). 그러나, SGX 기반의 저장장치는 UI(User Interface)를 통한 입출력이 신뢰할 수 없는 장치(호스트 서버 등)를 거쳐 저장장치로 전달되므로, Trust I/O를 보장하지 못하는 문제점이 있다. For example, Intel Software Guard Extension (SGX) is a software security technology based on Skylake, a 6th generation model of Intel's microarchitecture, and is a security-related instruction set built into the CPU. SGX provides a Trusted Execution Environment (TEE) by providing a trusted memory area called an enclave in which access is restricted even by a system with high privileges (see Non-Patent Document 2). However, the SGX-based storage device has a problem in that it cannot guarantee Trust I/O because input/output through a UI (User Interface) is transmitted to the storage device through an unreliable device (host server, etc.).

Project Almanac은 버전 관리형 SSD(Solid State Disk)의 한 예로, 사용자에 의해 저장장치(storage) 내 모든 데이터의 버전(version)을 일정 기간 보존하는 기능을 제공한다(비특허문헌 1 참조). 그러나, Project Almanac은 악성코드가 감지(detect)된 이후에야 사용자에 의한 데이터 복원(data recovery)가 이루어져, 데이터의 보존기간(RT: Retention Time)보다 긴 잠복기간(DT: Dwell Time)을 가진 악성코드의 침입 시에는 데이터 복원이 보장되지 않는 문제점이 있어 왔다. 이러한 문제점은, 장치 내 수많은 입출력(I/O)를 발생시켜 데이터의 보존기간을 단축시킴으로써 악성코드가 스스로 발생시키기도 한다.Project Almanac is an example of a version-managed solid state disk (SSD), and provides a function of preserving versions of all data in a storage device by a user for a certain period (see Non-Patent Document 1). However, in Project Almanac, data recovery is performed by the user only after the malicious code is detected. There has been a problem in that data restoration is not guaranteed in the case of code intrusion. This problem is also caused by the malicious code itself by generating numerous input/output (I/O) in the device to shorten the data retention period.

그러나, 악성코드에 대응하기 위하여 너무 긴 데이터 보존기간은 설정하는 것은 공간적 오버헤드(space overhead)를 발생시켜 자원을 낭비하게 한다. 반면 너무 짧은 데이터 보존기간은 전술한 문제점을 발생시킨다. However, setting an excessively long data retention period in response to malicious code causes space overhead and wastes resources. On the other hand, a too short data retention period causes the above-described problem.

이에 따라, SGX의 장점을 살리면서도 악성코드의 지연 공격에 대응 가능한 저장장치의 개발이 필요하다. 구체적으로, SGX의 문제점인 입출력의 신뢰성을 확보하고, 공간적 오버헤드 없이 중요 파일들의 데이터 복원이 보장될 수 있는, 정책 기반 버전 관리(PV, Policy-based Versioning)를 제공하는 저장장치의 개발이 필요하다.Accordingly, it is necessary to develop a storage device that can respond to delayed attacks of malicious codes while taking advantage of the advantages of SGX. Specifically, it is necessary to develop a storage device that provides policy-based versioning (PV), which can ensure reliability of input/output, which is a problem with SGX, and ensure data restoration of important files without spatial overhead. Do.

Xiaohao Wang, Yifan Yuan, You Zhou, Chance C Coats, and Jian Huang. Project almanac: A time-traveling solid-state drive. In Proceedings of the EuroSys Conference, 2019. Xiaohao Wang, Yifan Yuan, You Zhou, Chance C Coats, and Jian Huang. Project almanac: A time-traveling solid-state drive. In Proceedings of the EuroSys Conference, 2019. Victor Costan and Srinivas Devadas. Intel sgx explained. IACR Cryptology ePrint Archive, 2016(086):1-118, 2016. Victor Costan and Srinivas Devadas. Intel sgx explained. IACR Cryptology ePrint Archive, 2016(086):1-118, 2016.

본 실시예의 일 측면에 의하면, SGX 기반의 정책 기반 버전 관리 SSD(PV-SSD)를 제공함으로써, 사용자의 입력이 신뢰성을 알 수 없는 호스트 서버를 거치면서도 안전하게 SSD에 전달되게 하는, SSD의 Trust I/O를 제공하는 데 주된 목적이 있다.According to one aspect of this embodiment, by providing an SGX-based policy-based version management SSD (PV-SSD), the Trust I of SSD, which allows the user's input to be safely transferred to the SSD while passing through a host server whose reliability is unknown Its main purpose is to provide /O.

본 실시예의 다른 측면에 의하면, 잠복기간이 긴 악성코드로부터 SSD에 저장된 데이터 변조를 방지하여, 데이터 무결성을 제공하는 데 다른 주된 목적이 있다.According to another aspect of the present embodiment, another main object is to provide data integrity by preventing tampering of data stored in the SSD from malicious code having a long latency period.

나아가, 본 실시예의 또 다른 측면에 의하면, 블록(block) 단위의 데이터 관리가 이루어지는 SSD에 각 블록에 대응하는 파일 시맨틱(semantics)을 적용하여, 파일 단위를 기반으로 한 정책 기반 버전관리 방법을 제공하는 데 다른 주된 목적이 있다.Furthermore, according to another aspect of this embodiment, a file semantics corresponding to each block is applied to an SSD in which data management is performed in block units, thereby providing a policy-based version management method based on file units. It has another main purpose.

본 실시예의 일 측면에 의하면, 호스트 서버(host server) 상에서 구동되는 SGX(Software Guard Extension) 기반의 SPM(Secure Policy Manager) 및 상기 호스트 서버와 유선 또는 무선으로 연결된 SGX(Software Guard Extension) 기반의 PV-SSD(Policy-based file Versioning Solid State Disk)를 포함하는 SGX-SSD 시스템을 이용한 파일정책 관리방법에 있어서, 파일 정책(file policy)을 설정하기 위하여, 상기 호스트 서버 상에서 구동되는 유저 인터페이스(UI: User Interface)를 통해 사용자로부터 환경설정 변수(CP: Configuration Parameter)의 전부 또는 일부 및 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 요청하는 명령(command)을 입력받는 입력과정; 상기 SPM의 엔클레이브(enclave)에 저장된 고유의 키값인 Kdev를 이용하여 상기 SPM이 상기 입력을 암호화(encrypt)하여 상기 PV-SSD로 전송하는 전송과정; 및 상기 PV-SSD의 엔클레이브에 저장된 고유의 키값인 Kdev'를 이용하여 상기 PV-SSD가 상기 입력을 복호화(decrypt)하고, 복호화된 입력으로부터 추출한 상기 명령에 따라 상기 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 수행하는 정책관리과정을 포함하되, 상기 Kdev 및 상기 Kdev'는 동일한 키값을 갖는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법을 제공한다.According to one aspect of this embodiment, SGX (Software Guard Extension)-based SPM (Secure Policy Manager) running on a host server and SGX (Software Guard Extension)-based PV connected to the host server by wire or wirelessly In the file policy management method using the SGX-SSD system including -SSD (Policy-based File Versioning Solid State Disk), in order to set a file policy, a user interface (UI: an input process of receiving, from a user, a command for requesting any one of creation, change, and deletion of all or part of a configuration parameter (CP) and a file policy through a user interface; a transmission process in which the SPM encrypts the input using Kdev , which is a unique key value stored in an enclave of the SPM, and transmits it to the PV-SSD; and the PV-SSD decrypts the input using Kdev' , which is a unique key value stored in the enclave of the PV-SSD, and generates, changes, and changes the file policy according to the command extracted from the decrypted input It provides a file policy management method using the SGX-SSD system, including a policy management process of performing any one of deletion, wherein the Kdev and the Kdev' have the same key value.

본 실시예의 다른 측면에 의하면, 호스트 서버와 유선 또는 무선으로 연결되고, 본 실시예에 따른 파일정책 관리방법을 수행하는 PV-SSD가 포함된 SGX-SSD 시스템을 이용한 파일 입출력 방법에 있어서, 상기 호스트 서버를 통해 사용자로부터 파일 입출력(file I/O)을 받는 과정; 상기 호스트 서버가 상기 파일 입출력을 기초로 피기백 셋(piggyback set)을 구성하여 상기 PV-SSD에 전송하는 피기백 전송과정; 상기 PV-SSD가 상기 피기백 셋을 파싱(parsing)하고, 파싱된 데이터의 전부 또는 일부를 상기 파일에 대응하는 물리 페이지(physical page)의 OOB 영역(Out-Of-Band region)에 저장하는 OOB 저장과정; 및 상기 PV-SSD가 상기 물리 페이지에 대응하는 VVB(Version Validity Bitmap) bit을 설정하는 VVB 설정과정을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 입출력 방법을 제공한다.According to another aspect of this embodiment, in the file input/output method using an SGX-SSD system that is connected to a host server by wire or wirelessly and includes a PV-SSD that performs the file policy management method according to the present embodiment, the host The process of receiving file I/O from the user through the server; a piggyback transmission process in which the host server constructs a piggyback set based on the file input/output and transmits it to the PV-SSD; OOB in which the PV-SSD parses the piggyback set and stores all or part of the parsed data in an out-of-band region of a physical page corresponding to the file storage process; and a VVB setting process in which the PV-SSD sets a Version Validity Bitmap (VVB) bit corresponding to the physical page.

본 실시예의 다른 측면에 의하면, 본 실시예에 따른 파일 입출력 방법을 수행하는 PV-SSD를 포함하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법에 있어서, 상기 PV-SSD가 탐욕 알고리즘(greedy algorithm)을 이용하여 빅팀 블록(victim block)을 결정하는 빅팀블록 결정과정; 및 상기 빅팀블록을 삭제(erase)하는 가비지 콜렉션(GC, Garbage Collection) 과정을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법을 제공한다.According to another aspect of this embodiment, in the selective version control method using the SGX-SSD system including the PV-SSD for performing the file input/output method according to the present embodiment, the PV-SSD implements a greedy algorithm A victim block determination process for determining a victim block using; and a garbage collection (GC, Garbage Collection) process of erasing the victim block.

본 실시예의 다른 측면에 의하면, 호스트 서버와 유선 또는 무선으로 연결되고, 본 실시예에 따른 파일 입출력 방법을 수행하는 PV-SSD를 포함하는 SGX-SSD 시스템을 이용한 파일 복원방법에 있어서, 상기 호스트 서버를 통해 사용자로부터 복원 시점 또는 복원 버전 중 어느 하나인 복원정보 및 복원 대상 파일의 파일 경로를 입력받는 복원요청과정; 상기 호스트 서버 상 구동되는 파일 시스템(file system)이 상기 복원 대상 파일에 대응하는 모든 LBA(Logical Block Address)를 로딩(loaing)하는 로딩과정; 상기 파일 경로, 상기 복원정보 및 로딩된 LBA 리스트가 저장된 메시지를 상기 PV-SSD에 전송하는 복원정보 전송과정; 전송된 LBA 리스트를 이용하여 상기 PV-SSD가 상기 복원정보에 대응하는 버전에 관하여, 상기 버전과 관련된 페이지를 찾는 페이지 탐색과정; 및 상기 OOB 영역에 저장된 데이터 블록 오프셋(data block offset)을 이용하여 상기 버전과 관련된 페이지들을 재구성(rearrange)하여 파일 콘텐트(file content)를 복원하는 파일콘텐트 복원과정을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 복원방법을 제공한다.According to another aspect of this embodiment, in a file restoration method using an SGX-SSD system including a PV-SSD that is connected to a host server by wire or wirelessly and performs the file input/output method according to the present embodiment, the host server a restoration request process of receiving restoration information, which is either restoration time point or restoration version, and a file path of a restoration target file from the user; a loading process in which a file system driven on the host server loads all LBAs (Logical Block Addresses) corresponding to the restoration target file; a restoration information transmission process of transmitting a message in which the file path, the restoration information, and the loaded LBA list are stored to the PV-SSD; a page search process in which the PV-SSD uses the transmitted LBA list to find a page related to the version with respect to the version corresponding to the restoration information; and a file content restoration process of restoring the file content by rearranging the pages related to the version using the data block offset stored in the OOB area. A method of restoring files using an SSD system is provided.

본 실시예의 또 다른 측면에 의하면, 엔클레이브(enclave)를 포함하는 SGX(Software Guard Extension)을 기반으로 한 SGX-SSD 시스템에 있어서, 호스트 서버(host server)와 유선 또는 무선으로 연결되고, 사용자로부터 하드코딩(hardcoding)된 고유의 키값인 Kdev'가 저장된 엔클레이브를 포함하며, 상기 호스트 서버로부터 전송된 데이터를 상기 Kdev'를 이용하여 복호화(decrypt)하는 SGX 기반의 PV-SSD(Policy-based file Versioning SSD); 및 상기 Kdev'와 동일한 키값인 Kdev가 저장된 엔클레이브를 포함하고, 사용자로부터 환경설정 변수(CP, Configuration Parameter)의 전부 또는 일부 및 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 요청하는 명령(command)을 입력받아 상기 Kdev를 이용하여 암호화(encrypt)하여 상기 PV-SSD에 전송하는 SPM(Secure Policy Manager)을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 제공한다.According to another aspect of this embodiment, in the SGX-SSD system based on SGX (Software Guard Extension) including an enclave, it is connected to a host server by wire or wirelessly, and from a user An SGX-based PV-SSD (Policy-based file) that includes an enclave in which a hard-coded unique key value, Kdev' , is stored, and decrypts data transmitted from the host server using the Kdev' . Versioning SSD); and an enclave in which Kdev , which is the same key value as Kdev' , is stored, and a command to request any one of creation, change, and deletion of all or part of configuration parameters (CP) and file policies from the user (command ), encrypts it using the Kdev and transmits it to the PV-SSD.

이상에서 설명한 바와 같이 본 개시에 의하면, SGX 기반의 정책 기반 버전 관리 SSD(PV-SSD)를 제공함에 따른, SSD의 Trust I/O를 확보하는 효과가 있다.As described above, according to the present disclosure, there is an effect of securing Trust I/O of the SSD by providing an SGX-based policy-based version management SSD (PV-SSD).

또한 데이터의 중요성에 따라 정책을 달리하는 버전 관리가 이루어짐에 따라, 잠복기간이 긴 악성코드의 데이터 변조 공격에도 SSD에 저장된 중요 데이터들을 복구하는 등, 데이터 무결성(integrity of data)을 보장하는 효과가 있다.In addition, as version management with different policies is implemented according to the importance of data, there is an effect of ensuring data integrity, such as recovering important data stored in SSDs even in data tampering attacks of malicious codes with a long incubation period. there is.

나아가, 블록(block) 단위의 데이터 관리가 이루어져 파일 시맨틱 기반의 정책 관리가 어려운 SSD에 있어, 파일 단위의 정책 기반 버전 관리가 가능케 하는 효과가 있다.Furthermore, there is an effect of enabling file-based policy-based version management in an SSD where it is difficult to manage file semantic-based policy due to data management in block units.

도 1은 본 실시예에 따른 SGX-SSD 시스템의 파일정책 관리방법을 나타내는 개념도이다.
도 2는 본 실시예에 따른 SGX-SSD 시스템의 파일 입출력 방법을 나타내는 개념도이다.
도 3a 및 도 3b는 본 실시예에 따른 파일정책 관리방법을 나타내는 순서도이다.
도 4a 및 도 4b는 본 실시예에 따른 파일 입출력 방법을 나타내는 순서도이다.
도 5는 본 실시예에 따른 SGX-SSD 시스템의 가비지 콜렉션(garbage collection) 과정을 나타내는 순서도이다.
도 6은 본 실시예에 따른 SGX-SSD 시스템의 파일 복원방법을 나타내는 순서도이다.
도 7은 본 실시예에 따른 SGX-SSD 시스템의 성능 분석결과를 나타내는 그래프이다.
1 is a conceptual diagram illustrating a file policy management method of the SGX-SSD system according to the present embodiment.
2 is a conceptual diagram illustrating a file input/output method of the SGX-SSD system according to the present embodiment.
3A and 3B are flowcharts illustrating a file policy management method according to the present embodiment.
4A and 4B are flowcharts illustrating a file input/output method according to the present embodiment.
5 is a flowchart illustrating a garbage collection process of the SGX-SSD system according to the present embodiment.
6 is a flowchart illustrating a file restoration method of the SGX-SSD system according to the present embodiment.
7 is a graph showing the performance analysis result of the SGX-SSD system according to the present embodiment.

이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.Hereinafter, some embodiments of the present invention will be described in detail with reference to exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in describing the present invention, if it is determined that a detailed description of a related known configuration or function may obscure the gist of the present invention, the detailed description thereof will be omitted.

또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제1, 제2, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.In addition, in describing the components of the present invention, terms such as first, second, (a), (b), etc. may be used. These terms are only for distinguishing the elements from other elements, and the essence, order, or order of the elements are not limited by the terms. Throughout the specification, when a part 'includes' or 'includes' a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated. . In addition, the '... Terms such as 'unit' and 'module' mean a unit that processes at least one function or operation, which may be implemented as hardware or software or a combination of hardware and software.

첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.DETAILED DESCRIPTION The detailed description set forth below in conjunction with the appended drawings is intended to describe exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention may be practiced.

본 실시예에서 SGX(Software Guard Extension)는 설명의 편의를 위하여 Intel SGX인 경우를 전제로 하나, 이에 한정되는 것은 아니다. 예컨대, SGX와 같이 신뢰 메모리 영역(trusted memory part)과 비신뢰 메모리 영역(untrusted memory part)을 나누는 신뢰실행환경(TEE: Trusted Execution Environment)을 제공하는 명령어 집합(instruction set)이라면 본 발명이 지칭하는 SGX가 될 수 있다.In this embodiment, SGX (Software Guard Extension) is assumed to be Intel SGX for convenience of description, but is not limited thereto. For example, if it is an instruction set that provides a Trusted Execution Environment (TEE) that divides a trusted memory part and an untrusted memory part like SGX, the present invention refers to It could be SGX.

본 실시예에서 정책(policy)은 각 파일(file)의 버전 관리(versioning)를 목적으로 한 정책을 의미한다. 따라서, 본 실시예에서 정책 기반 버전관리란 저장장치(storage)에 저장된 각 파일의 이전 버전(OV: Old Version)들에 대하여, 그 보존기간(RT: Retention Time), 백업 사이클(BC: Backup Cycle), 최대 버전 수(maximum number of versions)의 전부 또는 일부를 설정/변경/삭제하는 것을 전제로 하나, 반드시 이에 한정되는 것은 아니다. 예컨대, 다른 실시예에서의 정책 기반 버전관리는 같은 파일의 이전 버전 별로 정책을 설정/변경/삭제할 수도 있다.In this embodiment, a policy means a policy for the purpose of versioning of each file. Therefore, in the present embodiment, policy-based version management refers to the retention period (RT: Retention Time) and the backup cycle (BC: Backup Cycle) for old versions (OVs) of each file stored in storage. ), all or part of the maximum number of versions is set/changed/deleted, but is not necessarily limited thereto. For example, policy-based version management in another embodiment may set/change/delete a policy for each previous version of the same file.

도 1은 본 실시예에 따른 SGX-SSD 시스템의 파일정책 관리방법을 나타내는 개념도이다.1 is a conceptual diagram illustrating a file policy management method of the SGX-SSD system according to the present embodiment.

본 실시예에 따른 SGX-SSD 시스템(10)의 파일정책 관리는 호스트 서버(host server)에서 구동(drive)되는 SGX 기반의 SPM(Secure Policy Manager, 100) 및 호스트 서버와 유선 또는 무선으로 연결된 SGX 기반의 PV-SSD(Policy-based File Versioning Solid State Disk, 120)에 의해 수행된다. 도 1에 도시된 SGX-SSD 시스템(10)은 본 개시의 일 실시예에 따른 것으로서, 도 1에 도시된 모든 구성이 필수 구성요소는 아니며, 다른 실시예에서 SGX-SSD 시스템(10)에 포함된 일부 구성이 추가, 변경 또는 삭제될 수 있다. 예컨대, 다른 실시예의 SGX-SSD 시스템(10)은 도시된 PV-SSD(122) 외의 PV-SSD를 더 포함하여 하나의 SPM(100)으로 복수의 PV-SSD의 버전 관리를 수행케 할 수 있다. 또 다른 실시예의 SGX-SSD 시스템(10)은 클라우드 서버(cloud server)가 제공하는 SSD 리소스를 이용하는 형태로 구현됨에 따라 PV-SSD(120)가 제공하는 기능을 수행하는 장치를 포함하여 PV-SSD(120)를 생략하게 수 있다.The file policy management of the SGX-SSD system 10 according to the present embodiment is an SGX-based Secure Policy Manager ( 100 ) driven in a host server and SGX connected to the host server by wire or wirelessly. It is performed by PV-SSD (Policy-based File Versioning Solid State Disk, 120) based. The SGX-SSD system 10 shown in FIG. 1 is according to an embodiment of the present disclosure, and not all configurations shown in FIG. 1 are essential components, and are included in the SGX-SSD system 10 in another embodiment. Some components that have been used may be added, changed, or deleted. For example, the SGX-SSD system 10 of another embodiment may further include a PV-SSD other than the illustrated PV-SSD 122 to perform version management of a plurality of PV-SSDs with one SPM 100 . . The SGX-SSD system 10 of another embodiment is implemented in the form of using the SSD resource provided by the cloud server, so the PV-SSD including a device performing the function provided by the PV-SSD 120 (120) may be omitted.

이하에서는 SGX-SSD 시스템(10) 상에서 파일정책 관리를 수행하는 각 구성에 대하여 설명한다.Hereinafter, each configuration for performing file policy management on the SGX-SSD system 10 will be described.

SPM(100)은 사용자가 호스트 서버에 입력한 파일 정책(file policy)에 관련된 파라미터(parameter)인, 환경설정 변수(CP: Configuration Parameter) 및 정책의 생성(create)/변경(modify)/삭제(delete)에 해당하는 명령(command)을 호스트 서버의 자원(resource)을 이용하여 PV-SSD(120)로 전송한다. SPM(100)은 PV-SSD(120)와 연결된 호스트 서버에서 실행되는 앱(app 또는 application)의 모듈(module) 또는 호스트 서버 자체의 모듈로서 구현될 수 있으나, 다른 실시예에서는 SPM의 기능을 수행하는 별도의 장치로서 구현될 수도 있다. The SPM 100 creates/modifies/deletes (create)/modify/delete a configuration parameter (CP), which is a parameter related to a file policy input by a user into the host server, and a policy. delete) is transmitted to the PV-SSD 120 using a resource of the host server. The SPM 100 may be implemented as a module of an app (app or application) executed in a host server connected to the PV-SSD 120 or a module of the host server itself, but in another embodiment performs the function of the SPM It may be implemented as a separate device for

본 실시예에서 사용자가 입력하는 환경설정 변수는 정책 정보(policy information), 파일 경로(file path), 보존기간, 백업 사이클 및 최대 버전 수를 전부 또는 일부 포함할 수 있다. 단, 사용자가 입력을 통해 특정 파일의 버전관리 정책을 설정/변경/삭제하는 것이므로 사용자가 입력하는 환경설정 변수에는 적어도 파일 경로가 포함된 것임을 전제로 한다.In this embodiment, the environment setting variables input by the user may include all or part of policy information, a file path, a retention period, a backup cycle, and the maximum number of versions. However, since the user sets/changes/deletes the version control policy of a specific file through input, it is assumed that the environment setting variable input by the user includes at least the file path.

SPM(100)은 SGX가 제공하는 엔클레이브(enclave)를 포함한다. 이때, SPM(100) 및 PV-SSD(120)는 각각의 엔클레이브(enclave)에 사용자로부터 설정된 고유의 키값인 Kdev를 저장한다. 이러한 Kdev의 설정은 사용자에 의한 하드코딩(hardcoding)에 의한 것일 수 있다. 본 개시에서는 편의상 SPM(100)에 저장된 Kdev를 Kdev(102)로, PV-SSD(120)에 저장된 Kdev를 Kdev'(122)로 표시하나, 각각에 저장된 Kdev Kdev'는 동일한 값을 가진다.The SPM 100 includes an enclave provided by the SGX. At this time, the SPM 100 and the PV-SSD 120 store Kdev, which is a unique key value set by the user, in each enclave. This Kdev setting may be due to hardcoding by the user. In the present disclosure, for convenience, Kdev stored in the SPM 100 is indicated as Kdev (102) , and Kdev stored in the PV-SSD 120 is indicated as Kdev' (122), but in each The saved Kdev and Kdev' have the same value.

Intel SGX는 Trust I/O를 제공하지 않으므로, 호스트 서버의 입력이 신뢰할 수 있는 입력인지 아닌지 알 수 없다. 이에 따라 SPM(100)은 사용자의 입출력(I/O)가 있기 전 SMM(System Management Mode)를 실행(run)함으로써 호스트 서버상 운영체제(OS: Operating System)를 포함하는 모든 프로세서(processor)의 구동을 일시 중단(suspend)하고 SPM(100)이 하드웨어의 자원을 높은 권한으로 사용할 수 있게 한다. SMM이 실행되면 운영체제 모드를 중단하고 SMM의 시스템 관리 메모리(SMRAM)에 저장된 프로세스가 실행되어, 악성코드에 의한 ring-0 권한 탈취로부터 사용자의 입력을 보호할 수 있다. 이때 SMM은 Aurora의 SMM인 것이 바람직하나, 반드시 이에 한정되는 것은 아니고 사용자 입력 데이터의 무결성(integrity)과 기밀성(confidentiality)을 보장할 수 있는 SMM이면 다른 SMM이 사용될 수도 있다. Intel SGX does not provide Trust I/O, so it is not known whether the input from the host server is trusted or not. Accordingly, the SPM 100 drives all processors including the operating system (OS) on the host server by executing the SMM (System Management Mode) before there is input/output (I/O) of the user. suspends (suspend) and enables the SPM (100) to use hardware resources with high privileges. When the SMM is executed, the operating system mode is stopped and the process stored in the system management memory (SMRAM) of the SMM is executed, thereby protecting the user's input from the ring-0 privilege theft by malicious code. In this case, the SMM is preferably Aurora's SMM, but is not limited thereto, and other SMMs may be used as long as the SMM can guarantee the integrity and confidentiality of user input data.

사용자의 입력이 끝나기 전까지 SMM은 SPM(100)과 비밀 세션(secret session)을 형성한다. 사용자의 입력이 끝나면 SMM은 비밀 세션을 통해 사용자의 입력을 SPM(100)의 엔클레이브로 전달한다. 입력이 엔클레이브에 전달된 후 SMM은 종료된다.Until the user's input is finished, the SMM forms a secret session with the SPM 100 . When the user's input is finished, the SMM transfers the user's input to the enclave of the SPM 100 through a secret session. After the input is passed to the enclave, the SMM terminates.

SPM(100)은 사용자의 입력을 Kdev(102)를 이용하여 암호화(encrypt)한 암호화 메시지를 생성한다. SPM(100)은 암호화 메시지 및 Kdev(102)를 기초로 메시지 인증 코드(MAC: Message Authentication Code)를 생성한다. SPM(100)은 생성된 암호화 메시지 및 메시지 인증 코드를 호스트 서버가 PV-SSD로 전송하게 하게 한다.The SPM 100 generates an encrypted message obtained by encrypting the user's input using the Kdev 102 . SPM 100 generates a message authentication code (MAC: Message Authentication Code) based on the encrypted message and Kdev (102). The SPM 100 causes the host server to transmit the generated encrypted message and message authentication code to the PV-SSD.

SPM(100)은 PV-SSD에 전송된 암호화 메시지 및 메시지 인증 코드가 신뢰할 만한 것으로 검증(verify)된 경우, PV-SSD로부터 신뢰할만한 것임을 인증(authenticate)받았단 응답(response)으로 PV-SSD의 Kdev'(122)에 의해 암호화된 응답과, 암호화된 응답 및 Kdev'(122)를 기초로 생성한 메시지 인증 코드를 전송받는다. SPM(100)은 전송받은 메시지 인증 코드를 Kdev(102)를 이용하여 복호화하여 응답을 검증하고, 암호화된 응답을 복호화한다.When the encryption message and the message authentication code transmitted to the PV-SSD are verified as reliable, the SPM 100 responds to the PV-SSD as a response that it is trusted from the PV-SSD. A response encrypted by Kdev ' (122) and a message authentication code generated based on the encrypted response and Kdev' (122) are transmitted. The SPM 100 decrypts the received message authentication code using the Kdev 102 to verify the response, and decrypts the encrypted response.

PV-SSD(120)는 호스트 서버와 유선 또는 무선으로 연결되어 사용자의 정책 생성/변경/삭제 명령 및 환경설정 변수를 전송받아 명령에 따라 정책의 생성/변경/삭제 중 어느 하나를 수행하는 정책관리 기능을 수행한다. PV-SSD(120)는 검증부(policy verifier, 124), 요청처리부(request handler, 126), 정책매니저(policy manager, 128) 및 정책 메타데이터(policy metadata, 129)를 전부 또는 일부 포함한다. 도 1에 도시된 PV-SSD(120)는 본 개시의 일 실시예에 따른 것으로서, 도 1에 도시된 모든 블록이 필수 구성요소는 아니며, 다른 실시예에서 PV-SSD(120)에 포함된 일부 블록이 추가, 변경 또는 삭제될 수 있다. 예컨대, 다른 실시예에서 PV-SSD(120)는 정책 변경을 제한하는 정책 제한부가 더 포함될 수 있다.The PV-SSD 120 is connected to the host server by wire or wirelessly, receives the user's policy creation/change/deletion commands and environment setting variables, and policy management that performs any one of policy creation/change/deletion according to the command perform the function The PV-SSD 120 includes all or part of a policy verifier 124 , a request handler 126 , a policy manager 128 , and policy metadata 129 . The PV-SSD 120 shown in FIG. 1 is according to an embodiment of the present disclosure, and not all blocks shown in FIG. 1 are essential components, and some included in the PV-SSD 120 in another embodiment. Blocks can be added, changed, or deleted. For example, in another embodiment, the PV-SSD 120 may further include a policy limiter for restricting policy change.

검증부(124)는 암호화된 메시지 및 메시지 인증 코드의 형태로 사용자의 입력을 전송받고, Kdev'(122)를 이용하여 암호화 인증 코드를 검증하여 사용자의 입력을 전송한 호스트 서버 또는 SPM(100)이 신뢰할 만한지 확인한다. 검증 결과 호스트 서버 또는 SPM이 신뢰할 만한 경우, Kdev'(122)를 이용하여 복호화한 암호화 메시지를 요청처리부(126)로 전달한다. 검증부(124)는 전송받은 메시지와 관련된 응답을 Kdev'(122)를 이용하여 암호화하고, 암호화된 응답 및 Kdev'(122)를 이용하여 메시지 인증 코드를 생성한다. 검증부(124)는 암호화된 응답 및 한 메시지 인증 코드를 호스트 서버로 전송하여, SPM(100)이 검증토록 한다.The verification unit 124 receives the user's input in the form of an encrypted message and message authentication code, and verifies the encrypted authentication code using Kdev' (122) to verify the encrypted authentication code and transmit the user's input to the host server or SPM (100) Make sure this is reliable. As a result of the verification, if the host server or SPM is reliable, the encrypted message decrypted using Kdev' 122 is transmitted to the request processing unit 126 . The verification unit 124 encrypts a response related to the received message using Kdev ' (122), and generates a message authentication code using the encrypted response and Kdev' (122). The verification unit 124 transmits the encrypted response and one message authentication code to the host server so that the SPM 100 verifies it.

요청처리부(126)는 복호화된 암호화 메시지를 파싱(parsing)하여 암호화 메시지에 포함된 파일 정책 명령 및 환경설정 변수들을 추출(extract)하여 정책매니저(128)에 전달한다.The request processing unit 126 parses the decrypted encrypted message, extracts the file policy command and environment setting variables included in the encrypted message, and delivers it to the policy manager 128 .

정책매니저(128)는 추출된 파일 정책 명령 및 환경설정 변수에 따라, 정책 메타데이터(129)를 생성, 변경 또는 삭제하여 파일 버전과 관련된 정책들을 저장 및 관리한다.The policy manager 128 creates, changes, or deletes the policy metadata 129 according to the extracted file policy command and environment setting variables to store and manage the policies related to the file version.

이때 정책 메타데이터는 환경설정 변수가 저장되는 데이터 구조인 정책 엔트리(policy entry)를 저장하는 해시 테이블(hash table)일 수 있다. 이 경우 정책 메타데이터는 파일 경로를 이용한 해시키(hash key)를 이용하여 정책매니저(128)에 의해 탐색(search)될 수 있다. 다른 실시예로 정책 메타데이터는 연결리스트(linked list) 또는 트리(tree)일 수 있다.In this case, the policy metadata may be a hash table that stores a policy entry, which is a data structure in which environment setting variables are stored. In this case, the policy metadata may be searched by the policy manager 128 using a hash key using a file path. In another embodiment, the policy metadata may be a linked list or a tree.

본 실시예에 따른 SGX-SSD 시스템을 이용하여 파일정책을 관리하는 방법에 대하여는 도 3a 및 도 3b에서 후술한다.A method of managing a file policy using the SGX-SSD system according to the present embodiment will be described later with reference to FIGS. 3A and 3B.

도 2는 본 실시예에 따른 SGX-SSD 시스템의 파일 입출력 방법을 나타내는 개념도이다.2 is a conceptual diagram illustrating a file input/output method of the SGX-SSD system according to the present embodiment.

본 실시예에 따른 SGX-SSD 시스템(10)의 파일 입출력은 호스트 서버(host server) 상 구동(dirve)되는 앱(app, 200), 파일 시스템(file system, 202) 및 호스트 서버와 유선 또는 무선으로 연결된 SGX 기반의 PV-SSD(Policy-based File Versioning Solid State Disk, 120)를 기반으로 수행된다. 도 2에 도시된 SGX-SSD 시스템(10)은 본 개시의 일 실시예에 따른 것으로서, 도 2에 도시된 모든 구성이 필수 구성요소는 아니며, 다른 실시예에서 SGX-SSD 시스템(10)에 포함된 일부 구성이 추가, 변경 또는 삭제될 수 있다.The file input/output of the SGX-SSD system 10 according to this embodiment is wired or wireless with the app 200, the file system 202 and the host server that are driven on the host server. It is performed based on SGX-based PV-SSD (Policy-based File Versioning Solid State Disk, 120) connected to The SGX-SSD system 10 shown in FIG. 2 is according to an embodiment of the present disclosure, and not all configurations shown in FIG. 2 are essential components, and are included in the SGX-SSD system 10 in another embodiment. Some components that have been used may be added, changed, or deleted.

이하에서는 SGX-SSD 시스템(10) 상에서 파일 입출력을 수행하는 각 구성에 대하여 설명한다.Hereinafter, each configuration for performing file input/output on the SGX-SSD system 10 will be described.

앱(200)은 호스트 서버 자원을 이용하여 사용자로부터 파일 입출력(file I/O)를 입력받고, 입력받은 파일 입출력을 파일 시스템(202)으로 전달하여 블록(block) 단위의 데이터 형태로 PV-SSD(120)에 전송한다. SMM 환경에서 입력받는 파일정책의 생성/변경/삭제 입력과 달리, 앱으로부터 입력받은 파일 입출력은 데이터의 무결성과 기밀성이 보장되지 않을 수 있다.The app 200 receives file input/output (file I/O) input from the user using the host server resource, and transmits the received file input/output to the file system 202 in the form of block-unit data in the PV-SSD format. Send to 120. Unlike the file policy creation/change/deletion input received in the SMM environment, the file input/output received from the app may not guarantee data integrity and confidentiality.

파일 시스템(202)은 앱으로부터 파일 입출력을 전달받아 블록 단위의 데이터로 PV-SSD(120)에 전송한다.The file system 202 receives the file input/output from the app and transmits it to the PV-SSD 120 as block unit data.

파일 시스템(202)은 호스트 서버의 파일 시스템을 전제로 하나 반드시 그에 한정되는 것은 아니고, 별도로 삽입된 파일 시스템일 수 있다. 본 실시예에서 정책은 파일 시맨틱(file semantic)을 기반으로 생성/변경/삭제되나 호스트 서버 및 PV-SSD(120)는 블록 단위의 데이터 저장이 이루어진다. 이에 파일 시스템(202)은 파일 입출력이 있는 경우 호스트 서버의 블록 레이어(block layer)로 블록 입출력(block I/O)을 요청(request)하여 블록 단위의 데이터 형태로 PV-SSD(120)에 전달한다. 파일 시스템(202)은 파일 입출력을 데이터 블록(data block)으로 피기백(piggyback)한다. 여기서 피기백이란 수신측에서 수신된 데이터에 대한 수신확인(acknowledgement)을 즉시 보내지 않고, 이후 전송할 데이터가 있는 경우에만 기존의 데이터 프레임(data frame)에 확인 필드를 덧붙여 전송하도록 하는 데이터 전송방법으로, 피기백 된 피기백 셋에는 피기백 되었는 지를 나타내는 데이터가 더 포함된다. 파일 시스템(202)은 파일 입출력을 입출력 대상인 파일의 파일 경로, 및 파일 오프셋(file offset)을 더 포함하는 피기백 셋(piggyback set)으로 구성하여 피기백할 수 있다. 이때 파일 오프셋은 파일이 저장되는 데이터 블록 단위의 데이터 블록 오프셋(data block offset)일 수 있다.The file system 202 is based on the file system of the host server, but is not necessarily limited thereto, and may be a separately inserted file system. In this embodiment, a policy is created/changed/deleted based on file semantic, but data storage is performed in block units in the host server and the PV-SSD 120 . Accordingly, when there is file input/output, the file system 202 requests block I/O to the block layer of the host server and transmits it to the PV-SSD 120 in the form of block unit data. do. The file system 202 piggybacks file input/output to data blocks. Here, piggyback is a data transmission method in which the receiving side does not immediately send an acknowledgment of the received data, but sends an acknowledgment field to the existing data frame only when there is data to be transmitted later. The piggybacked piggyback set further includes data indicating whether or not it has been piggybacked. The file system 202 may piggyback file input/output by configuring it as a piggyback set further including a file path of an input/output target file, and a file offset. In this case, the file offset may be a data block offset in units of data blocks in which files are stored.

PV-SSD(120)는 호스트 서버 또는 파일 시스템(202)으로부터 전송받은 파일 입출력 또는 피기백 셋을 파싱하여, PV-SSD(120) 상의 OOB(Out-Of-Band, 220)에 저장하고 및 필요에 따라 VVB(Version Validity Bitmap, 222)를 설정(set)한다. OOB(220)는 각 파일의 물리 페이지 내에 존재하는 잉여(spare) 영역으로, 배드 블록(bad block)을 표시하거나, ECC(Error Correction Code) 또는 파일 시스템 정보 등이 저장될 수 있다. VVB(222)는 각 물리 페이지들이 보존(preserve)될 지 회수(reclaim)될 지를 표시하는(indicate) 비트맵(bitmap)이다.The PV-SSD 120 parses the file input/output or piggyback set received from the host server or file system 202, stores it in an Out-Of-Band (OOB) 220 on the PV-SSD 120, and needs VVB (Version Validity Bitmap, 222) is set according to The OOB 220 is a spare area that exists in a physical page of each file, and may indicate a bad block or store an error correction code (ECC) or file system information. The VVB 222 is a bitmap indicating whether each physical page is to be reserved or reclaimed.

PV-SSD(120)은 입출력 대상 파일의 물리 페이지(physical page)에 대응하는 OOB(220) 영역에 파싱된 데이터의 전부 또는 일부를 저장할 수 있다. PV-SSD(120)는 입출력 대상 파일의 입출력 명령 유형(예: 읽기/쓰기)에 따라, 입출력 대상 파일의 버전관리 정책에 대응하도록 VVB bit을 설정 또는 재설정할 수 있다. OOB(220) 및 VVB(222)는 PV-SSD(120)의 낸드 플래시 메모리(NAND flash memory) 상에 위치할 수 있다. 본 실시예에서 SGX-SSD 시스템(10)은 OOB(220) 및 VVB(222)가 분리된 메모리 영역임을 전제로 하나, 반드시 이에 한하지 않고, 다른 실시예에서 OOB(220) 및 VVB(222)는 각자의 기능을 하는 하나의 메모리 영역으로 구현될 수도 있다.The PV-SSD 120 may store all or part of the parsed data in the OOB 220 area corresponding to a physical page of the input/output file. The PV-SSD 120 may set or reset the VVB bit to correspond to the version management policy of the input/output file according to the input/output command type (eg, read/write) of the input/output file. The OOB 220 and the VVB 222 may be located on a NAND flash memory of the PV-SSD 120 . In the present embodiment, the SGX-SSD system 10 assumes that the OOB 220 and the VVB 222 are separate memory regions, but is not limited thereto, and in another embodiment, the OOB 220 and the VVB 222 are not limited thereto. may be implemented as one memory area each having its own function.

PV-SSD(120)은 전송받은 피기백 셋에 포함된, 피기백되었는지에 관한 정보를 참조하여 입출력 대상 파일에 설정된 정책이 존재하는지 판단한다. 판단 결과에 따라 OOB(220) 영역에 저장할 데이터 및 설정될 VVB(222) bit의 값이 달라진다. 구체적인 일 실시예로, 입출력 대상 파일에 설정된 정책이 존재한다고 판단된 경우, PV-SSD(120)은 파싱된 데이터 가운데 파싱된 피기백 셋(피기백 셋에 포함된 정보인 파일 경로 및 블록 오프셋), WT(Written Time), BP(Back Pointer) 및 입출력 대상 파일의 LPA(Logical Page Address)를 대응하는 OOB(220) 영역에 저장하고, VVB bit을 1로 설정한다. 이때, BP란 해당 파일의 종전 버전이 저장된 물리 페이지를 가리키는 포인터(pointer)이다. 입출력 대상 파일에 설정된 정책이 존재하지 않는다고 판단된 경우에는 대응하는 OOB 영역에 LPA만을 저장하고, VVB bit을 0으로 설정한다.The PV-SSD 120 determines whether a policy set in the input/output target file exists by referring to information on whether or not piggyback is included in the received piggyback set. Data to be stored in the OOB 220 area and the value of the VVB 222 bit to be set are changed according to the determination result. In a specific embodiment, when it is determined that the policy set in the input/output file exists, the PV-SSD 120 sets the parsed piggyback set (file path and block offset, which are information included in the piggyback set) among the parsed data. , WT (Written Time), BP (Back Pointer), and LPA (Logical Page Address) of the input/output file are stored in the corresponding OOB 220 area, and the VVB bit is set to 1. In this case, the BP is a pointer indicating a physical page in which the previous version of the file is stored. If it is determined that the policy set in the input/output file does not exist, only the LPA is stored in the corresponding OOB area, and the VVB bit is set to 0.

본 실시예에 따른 SGX-SSD 시스템을 이용하여 파일 입출력을 수행하는 방법에 대하여는 도 4a 및 도 4b에서 후술한다.A method of performing file input/output using the SGX-SSD system according to the present embodiment will be described later with reference to FIGS. 4A and 4B.

본 실시예에 따른 SGX-SSD 시스템은 다양한 시나리오의 악성코드 공격에 대응가능하다. 표 1은 본 실시예에 따른 SGX-SSD 시스템이 대응 가능한 악성코드 공격(예: ring-0 공격)에 대한 시나리오가 나타나 있다.The SGX-SSD system according to this embodiment can respond to malicious code attacks in various scenarios. Table 1 shows a scenario for a malicious code attack (eg, ring-0 attack) to which the SGX-SSD system according to this embodiment can respond.

디스크 공격(Disk Attack)Disk Attack 공격 시나리오attack scenario 내용detail (1) File Attack(1) File Attack 악성코드의 파일 변조 공격File tampering attack by malware (2) Policy Deletion Attack(2) Policy Deletion Attack 악성코드가 정책 삭제 명령(DELETE)을 삽입하여 PV-SSD가 정책을 삭제하게 함Malware inserts policy delete command (DELETE) to cause PV-SSD to delete policy (3) Version Attack(3) Version Attack 악성코드의 계속된 덮어쓰기 공격으로 허용가능한 파일 버전 갯수를 초과하게 함Exceeding the number of allowable file versions through continuous overwrite attacks by malicious code (4) File System Corruption(4) File System Corruption 악성코드가 호스트 서버의 파일 시스템을 손상시킴(corrupt)Malware corrupts the host server's file system 중간자 공격(Man-in-the-middle Attack)Man-in-the-middle Attack (5) Contents, LBA Tampering Attack(5) Contents, LBA Tampering Attack 악성코드가 사용자가 쓰기(write)을 요청한 파일에 해당하는 LBA 내용을 변형시킴Malicious code transforms the LBA contents corresponding to the file requested by the user to write (6) Piggyback Set Deletion(6) Piggyback Set Deletion 악성코드가 파일 입출력 과정에서 전송되는 피기백 셋을 삭제하여 PV-SSD가 파일 입출력에 대응하는 정책이 존재하지 않는 것으로 오인시킴(misunderstand)The malicious code deletes the piggyback set transmitted during the file input/output process, causing the PV-SSD to misunderstand that a policy corresponding to file input/output does not exist.

악성코드의 SGX-SSD 시스템 공격 시나리오는 크게 디스크 공격(disk attack)과 중간자 공격(man-in-the-middle attack)으로 나뉜다. 디스크 공격은 PV-SSD(120)에 영구히 저장되어 있는 데이터를 직접 변조(tamper)하게 하는 공격이다. 중간자 공격은 악성코드가 호스트 서버에 악성 모듈을 설치하여, 호스트 서버가 PV-SSD(120)에 전달하는 메시지를 변형(falsify)시키는 공격이다.SGX-SSD system attack scenarios of malicious code are largely divided into disk attack and man-in-the-middle attack. The disk attack is an attack that directly tampers data permanently stored in the PV-SSD 120 . The man-in-the-middle attack is an attack in which a malicious code installs a malicious module in a host server and falsifies a message transmitted by the host server to the PV-SSD 120 .

본 실시예에 따른 SGX-SSD 시스템이 디스크 공격 시나리오에 따른 대응 방법은 다음과 같다.The response method of the SGX-SSD system according to the disk attack scenario according to this embodiment is as follows.

(1) 파일 변조 공격이 있는 경우, SGX-SSD는 악성코드의 침입 이전 시점의 파일 버전으로 파일을 복원시킴으로써 대응할 수 있다.(1) In case of file tampering attack, SGX-SSD can respond by restoring the file to the file version at the time before the intrusion of malicious code.

(2) 정책 변조 공격이 있는 경우, PV-SSD(120)의 검증부(124)가 Kdev'(122)를 이용하여 정책을 검증함에 따라 변조된 정책 생성/변경/삭제 명령의 수행을 거부할 수 있다.(2) If there is a policy tampering attack, as the verification unit 124 of the PV-SSD 120 verifies the policy using the Kdev' 122 , the execution of the tampered policy creation/change/deletion command may be refused. can

(3) 버전 변형 공격이 있는 경우, 사용자는 SGX-SSD 시스템을 이용하여 중요한 파일에 한하여는 최대 버전 수에 해당하는 환경설정 변수를 지정하지 않거나 무한으로 설정함으로써 중요한 파일을 보호할 수 있다.(3) If there is a version modification attack, the user can protect important files by not specifying the environment setting variable corresponding to the maximum number of versions or setting it to infinity only for important files using the SGX-SSD system.

(4) 파일 시스템 변형 공격이 있는 경우, PV-SSD(120)는 문제의 염려가 있는 파일에 대응하는 모든 물리 페이지들을 찾아 파일 별로 매칭하여 파일을 재결합시킨 후 파일 복원을 진행한다. 사용자는 복원된 파일이 저장된 PV-SSD(120)을 다른 호스트 서버와 연결시킴으로써 SGX-SSD 시스템을 다시 구현할 수 있다.(4) If there is a file system modification attack, the PV-SSD 120 finds all the physical pages corresponding to the file in question, matches each file, recombines the files, and then proceeds to restore the file. The user can re-implement the SGX-SSD system by connecting the PV-SSD 120 in which the restored file is stored with another host server.

SGX-SSD 시스템의 파일 복원 방법은 도 6에서 후술한다. A file restoration method of the SGX-SSD system will be described later with reference to FIG. 6 .

본 실시예에 따른 SGX-SSD 시스템이 중간자 공격 시나리오에 따른 대응 방법은 다음과 같다.The response method of the SGX-SSD system according to the man-in-the-middle attack scenario according to this embodiment is as follows.

(5) 및 (6) LBA 또는 피기백 셋에 대한 공격이 있는 경우, 악성코드의 침입 이전 시점의 파일 버전으로 파일을 복원시킴으로써 대응할 수 있다.(5) and (6) If there is an attack on the LBA or piggyback set, it can be countered by restoring the file to the file version at the time before the intrusion of the malicious code.

도 3a 및 도3b는 본 실시예에 따른 파일정책 관리방법을 나타내는 순서도이다.3A and 3B are flowcharts illustrating a file policy management method according to the present embodiment.

도 3a는 파일정책 관리방법 중 호스트 서버상에서 이루어지는 과정을 나타낸다.3A shows a process performed on a host server in a file policy management method.

사용자가 호스트 서버를 통해 SPM을 실행한다(S300).The user executes SPM through the host server (S300).

SPM(100)은 운영체제를 포함한 모든 프로세서의 구동을 일시 중단시키고, SMM을 실행하여 호스트 서버의 자원을 높은 권한으로 사용할 수 있게 한다(S310).The SPM 100 temporarily suspends the operation of all processors including the operating system, and executes the SMM to enable the resource of the host server to be used with high authority (S310).

사용자가 SMM이 실행되는 환경 하에서 환경설정 변수 및 특정 파일에 관한 정책의 생성/변경/삭제 명령 중 어느 하나를 입력한다(S320).The user inputs any one of a command to create/change/delete a policy related to an environment setting variable and a specific file under an environment in which the SMM is executed (S320).

SMM이 비밀 세션을 통해 SPM(100)의 엔클레이브로 사용자의 입력을 전달한다(S330).The SMM transmits the user's input to the enclave of the SPM 100 through the secret session (S330).

SMM이 프로세스를 종료한다(S340).The SMM terminates the process (S340).

SPM(100)은 전달된 사용자의 입력을 암호화하여, 암호화 메시지 및 메시지 인증 코드를 생성하여 PV-SSD(120)으로 전송한다(S350).The SPM 100 encrypts the transmitted user's input, generates an encrypted message and a message authentication code, and transmits it to the PV-SSD 120 (S350).

도3b는 파일정책 관리방법 중 PV-SSD(120) 상에서 이루어지는 과정을 나타낸다.3B shows a process performed on the PV-SSD 120 among the file policy management methods.

PV-SSD(120)의 검증부(124)가 메시지 인증 코드를 Kdev'(122)를 이용하여 SPM 또는 호스트 서버의 신뢰성을 판단하여 암호화 메시지의 데이터 무결성을 검증한다(S360). 검증부(124) 또는 요청처리부(126)는 암호화 메시지를 복호화한다(S360).The verification unit 124 of the PV-SSD 120 verifies the data integrity of the encrypted message by determining the reliability of the SPM or the host server using the message authentication code Kdev' (122) (S360). The verification unit 124 or the request processing unit 126 decrypts the encrypted message (S360).

정책관리부(126)는 복호화된 메시지에 포함된 정책 명령에 따라 정책을 생성/변경/삭제한다(S370).The policy management unit 126 creates/changes/deletes a policy according to a policy command included in the decrypted message (S370).

검증부(124)는 SPM의 신뢰성이 확인되었다는 응답을 하기 위해, 암호화한 응답 메시지 및 메시지 인증 코드를 생성(S380)하고 SPM(100)에 전송한다(S390). 단, S380 및 S390 단계는 S360 단계와 함께 또는 S360 단계 직후에 수행될 수도 있다.The verification unit 124 generates an encrypted response message and message authentication code in order to respond that the reliability of the SPM has been confirmed (S380) and transmits it to the SPM 100 (S390). However, steps S380 and S390 may be performed together with step S360 or immediately after step S360.

도 4a 및 도 4b는 본 실시예에 따른 파일 입출력 방법을 나타내는 순서도이다.4A and 4B are flowcharts illustrating a file input/output method according to the present embodiment.

파일 입출력, 특히 파일 쓰기(write)의 수행에서 파일의 버전관리가 일어나게 되므로 도 4a 및 도 4b는 파일 쓰기의 파일 입출력이 발생한 경우를 전제로 한다.File I/O, in particular, file version management occurs when file write is performed, so Figs. 4A and 4B assume a case where file I/O of file write occurs.

도 4a는 파일정책 관리방법 중 호스트 서버상에서 이루어지는 과정을 나타낸다.4A shows a process performed on a host server in a file policy management method.

사용자가 앱(200)을 통해 파일 입출력을 입력 또는 명령한다(S400).The user inputs or commands a file input/output through the app 200 (S400).

파일 시스템(202)이 파일 입출력을 데이터 블록으로 피기백(piggyback)한다(S410).The file system 202 piggybacks the file input/output to the data block (S410).

호스트 서버는 피기백한 데이터인 피기백 셋을 PV-SSD(120)에 전송한다(S420).The host server transmits the piggy-backed data, which is the piggy-back set, to the PV-SSD 120 (S420).

도4b는 파일정책 관리방법 중 PV-SSD(120) 상에서 이루어지는 과정을 나타낸다.4B shows a process performed on the PV-SSD 120 among the file policy management methods.

PV-SSD(120)는 피기백 셋을 파싱하여 파일 경로, 데이터 블록 오프셋 등의 데이터를 추출한다(S430).The PV-SSD 120 parses the piggyback set to extract data such as a file path and a data block offset (S430).

PV-SSD(120)는 파싱된 데이터에 대응하는 물리 페이지의 OOB(220) 영역에 기록한다(S440).The PV-SSD 120 records the parsed data in the OOB 220 area of the physical page (S440).

PV-SSD(120)는 파일 쓰기에 따라 파일의 새로운 버전이 발생하였으므로, 파일의 현재 버전 및 이전 버전들의 물리 페이지에 대응하는 VVB bit을 업데이트한다(S450). 예컨대, 최대 버전 수를 초과하는 이전 버전이 발생한 경우 해당 버전에 대응하는 물리 페이지들의 VVB bit을 모두 0으로 재설정한다. 또는 파일에 설정된 정책이 없는 경우 현재 버전의 물리 페이지에 대응하는 VVB bit을 0으로 설정한다. 파일에 대응하는 정책이 있고 정책 만료 문제가 없는 경우 대응하는 VVB bit을 0으로 설정 또는 재설정한다.Since a new version of the file is generated according to the file writing, the PV-SSD 120 updates the VVB bit corresponding to the physical page of the current version and previous versions of the file (S450). For example, when a previous version exceeding the maximum number of versions occurs, all VVB bits of physical pages corresponding to the version are reset to 0. Alternatively, if there is no policy set in the file, the VVB bit corresponding to the current version of the physical page is set to 0. If there is a policy corresponding to the file and there is no policy expiration problem, the corresponding VVB bit is set or reset to 0.

도 5는 본 실시예에 따른 SGX-SSD 시스템의 가비지 콜렉션(garbage collection) 과정을 나타내는 순서도이다.5 is a flowchart illustrating a garbage collection process of the SGX-SSD system according to the present embodiment.

가비지 콜렉션이란 저장장치에 메모리가 부족한 경우 빅팀 블록(victim block)을 정하여 블록을 삭제(erase)하는 메모리 관리 기법이다. 이때 메모리 블록 내 페이지(page)들은 회수(reclaim)됨으로써 프리(free) 상태가 된다.Garbage collection is a memory management technique that deletes blocks by determining a victim block when there is insufficient memory in the storage device. At this time, the pages in the memory block are reclaimed to become a free state.

PV-SSD(120)는 빅팀 블록을 결정한다(S500).이때 빅팀 블록을 결정하는 방법으로는 탐욕 알고리즘(greedy algorithm)이 이용될 수 있다. 여기서 탐욕 알고리즘이란, 최적화 문제에 있어 전체 문제의 최적해를 구하기 위해 문제는 같으나 그보다 크기가 작은 문제들의 최적해를 구함으로써 전체 문제의 최적해를 구하는 알고리즘이다. The PV-SSD 120 determines a victim block ( S500 ). In this case, a greedy algorithm may be used as a method for determining the victim block. Here, the greedy algorithm is an algorithm that finds the optimal solution of the entire problem in an optimization problem by finding the optimal solution of problems with the same problem but smaller size in order to find the optimal solution of the whole problem.

PV-SSD(120)는 빅팀 블록에 유효 페이지(valid page)가 포함되어 있는지 확인(510)한다. 여기서 유효 페이지란 파일들의 현재 버전에 관한 페이지를 의미한다.The PV-SSD 120 checks 510 whether a valid page is included in the victim block. Here, the valid page means a page about the current version of the files.

PV-SSD(120)는 빅팀 블록에 유효 페이지가 포함된 경우, 유효 페이지를 빅팀 블록이 아닌 다른 블록에 복사한다(S520).When the valid page is included in the victim block, the PV-SSD 120 copies the valid page to a block other than the victim block ( S520 ).

PV-SSD(120)는 빅팀 블록에 포함된 페이지가 유효하진 않으나 OV 페이지(Old Version page)인 경우(S512) 해당 페이지를 다른 블록에 복사함으로써 보존하고, 보존(S514)하는 선택적 버전관리를 수행한다. 이때, OV 페이지란 파일들의 이전 버전에 관한 페이지 중 정책에 따라 만료(expire)되지 않은 것을 의미한다. 구체적으로, 정책에 보존기간이 설정된 경우 그 보존기간이 지나지 않은 것이거나, 정책에 최대 버전 수가 설정된 경우 파일 입출력에 의해 해당 버전의 순차가 최대 버전 수를 초과하지 않은 것을 의미한다. 즉, 만료의 의미는, OV가 저장된 특정 페이지에 있어 대응하는 정책이 존재하고, 그 정책상(예: 보존기간 또는 최대 버전 수) 해당 OV가 보존대상이 아니게 되는 것을 의미한다. PV-SSD(120)는 선택적 버전관리를 통해 유효 페이지가 아닌 페이지들이 OV 페이지인지, OV 페이지가 아닌 부적합 페이지(invalid page)인지 구분(differentiate)한다.PV-SSD 120 performs selective version management to preserve and preserve (S514) by copying the page to another block when the page included in the victor block is not valid but is an OV page (Old Version page) (S512) do. In this case, the OV page means that it has not expired according to a policy among pages related to previous versions of files. Specifically, if the retention period is set in the policy, it means that the retention period has not passed, or if the maximum number of versions is set in the policy, it means that the sequence of the corresponding versions does not exceed the maximum number of versions due to file input/output. That is, expiration means that a corresponding policy exists in a specific page in which the OV is stored, and the corresponding OV is not subject to preservation according to the policy (eg, retention period or maximum number of versions). The PV-SSD 120 differentiates whether pages that are not valid pages are OV pages or invalid pages that are not OV pages through selective version control.

S520 또는 S514 단계가 수행된 후 PV-SSD(120)는 빅팀 블록을 삭제한다(S530).After step S520 or S514 is performed, the PV-SSD 120 deletes the victim block (S530).

도 6은 본 실시예에 따른 SGX-SSD 시스템의 파일 복원방법을 나타내는 순서도이다.6 is a flowchart illustrating a file restoration method of the SGX-SSD system according to the present embodiment.

이때의 파일 복원은 사용자의 요청(request) 또는 명령(command)이 있는 경우 수행되는 것을 전제로 하나, 반드시 그에 한정되는 것은 아니다. 예컨대, SGX-SSD 시스템(10)에 악성코드에 의한 공격이 있는 경우 PV-SSD(120)는 변형된 데이터를 찾아 이전 버전의 데이터로 자동 복원(auto-recovery)을 수행할 수 있다.At this time, the file restoration is assumed to be performed when there is a user's request or command, but is not necessarily limited thereto. For example, when there is an attack by a malicious code in the SGX-SSD system 10, the PV-SSD 120 may search for modified data and perform auto-recovery of data of the previous version.

사용자는 호스트 서버에 복원 시점 또는 복원 버전 중 어느 하나인 복원정보 및 복원 대상 파일의 파일 경로를 입력한다(S600).The user inputs the restoration information that is either the restoration point or the restoration version and the file path of the restoration target file to the host server (S600).

이때 호스트 서버의 권한이 악성코드에 의해 탈취되거나 호스트 서버 내 데이터의 변조가 일어나는 등 신뢰성이 불분명한 경우(S610), 호스트 서버상 구동되는 파일 시스템(202)이 복원 대상 파일의 파일 경로 및 복원정보를 PV-SSD(120)에 전송한다(S612).At this time, if the reliability of the host server is not clear such as the authority of the host server is stolen by malicious code or the data in the host server is tampered with (S610), the file system 202 running on the host server provides the file path and restoration information of the file to be restored. is transmitted to the PV-SSD 120 (S612).

이 경우, PV-SSD(120)는 복원 대상 파일에 대응하는 모든 물리 페이지를 탐색하여, 복원 대상 파일에 대응하는 모든 LPA(Logical Page Address)를 찾는다(S614). PV-SSD는 LPA를 이용하여 복원 대상 파일에 대응하는 논리 페이지(logical page)를 탐색하고, 이에 대응하는 LPN(Logical Page Number)의 체인(chain)을 내비게이션(navigation)한다(S630).In this case, the PV-SSD 120 searches all physical pages corresponding to the restoration target file to find all LPAs (Logical Page Addresses) corresponding to the restoration target file ( S614 ). The PV-SSD searches for a logical page corresponding to the restoration target file by using the LPA, and navigates a chain of the corresponding LPN (Logical Page Number) (S630).

호스트 서버에 신뢰성이 있는 경우, 파일 시스템(202)이 복원 대상 파일에 대응하는 모든 LBA(Logical Block Address)를 로딩(loaing)하여, 복원 대상 파일의 파일 경로, 복원정보 및 로딩된 LBA 리스트가 저장된 메시지를 PV-SSD(120)에 전송한다(S620). PV-SSD는 LBA 리스트를 이용하여 복원 대상 파일에 대응하는 논리 페이지를 탐색하고, 이에 대응하는 LPN의 체인(chain)을 내비게이션(navigation)한다(S630).If the host server is reliable, the file system 202 loads all LBAs (Logical Block Addresses) corresponding to the restoration target file, and the file path of the restoration target file, restoration information, and the loaded LBA list are stored. The message is transmitted to the PV-SSD 120 (S620). The PV-SSD searches for a logical page corresponding to the restoration target file by using the LBA list, and navigates the corresponding LPN chain (S630).

S630 단계를 수행하여 PV-SSD(120)는 복원정보에 대응하는 복원 대상 파일의 이전 버전과 관련된 페이지들을 찾을 수 있다(S630).By performing step S630, the PV-SSD 120 may find pages related to the previous version of the restoration target file corresponding to the restoration information (S630).

PV-SSD(120)는 복원정보에 대응하는 이전 버전과 관련된 페이지에서, 그 물리 페이지에 대응하는 OOB 영역에 저장된 데이터 블록 오프셋을 기초로 이전 버전과 관련된 페이지들을 재구성(rearrange)하여 파일 콘텐트(file content)를 복원한다(S640).The PV-SSD 120 reorganizes (rearrange) pages related to the previous version based on the data block offset stored in the OOB area corresponding to the physical page in the page related to the previous version corresponding to the restoration information to rearrange the file contents. content) is restored (S640).

PV-SSD(120)는 복원된 파일 콘텐트를 호스트 서버로 전송하여 복원 대상 파일을 덮어쓰기(overwrite)하게 함으로써 복원 절차를 완료한다(S650).The PV-SSD 120 transmits the restored file content to the host server to overwrite the restoration target file, thereby completing the restoration procedure (S650).

도 7은 본 실시예에 따른 SGX-SSD 시스템의 성능 분석결과를 나타내는 그래프이다.7 is a graph showing the performance analysis result of the SGX-SSD system according to the present embodiment.

본 실시예에 따른 SGX-SSD 시스템의 성능 분석을 위해, Jasmine OpenSSD에 PV-SSD의 프로토타입(prototype)을 구현하고, 피기백 전송을 수행하도록 가상 파일 시스템(VFS, Virtual File System)과 커널(kernel)의 드라이버 코드(driver code)를 변형하였다. 또한, 가비지 콜렉션을 유도(induce)하기 위해, SSD의 가용할 수 있는 저장공간(파티션)을 1 GB로 제한하고, SSD 내 모든 페이지들을 부적합 페이지로 초기화(initialize)하였다. 성능 평가는 덮어쓰기를 수행할 때 발생하는 워크로드(workload)를 측정함으로써 이루어졌다. 이때, 종래 기술인 Project Almanac의 성능 평가도 함께 수행하였다.For performance analysis of the SGX-SSD system according to the present embodiment, a prototype of PV-SSD is implemented in Jasmine OpenSSD, and a virtual file system (VFS, Virtual File System) and a kernel (VFS, Virtual File System) and kernel ( The driver code of the kernel) was modified. In addition, in order to induce garbage collection, the usable storage space (partition) of the SSD is limited to 1 GB, and all pages in the SSD are initialized as invalid pages. Performance evaluation was made by measuring the workload that occurred when performing overwrite. At this time, performance evaluation of Project Almanac, a prior art, was also performed.

도 7의 (a), (b)는 각각 20 MB의 파일과 32 KB의 파일을 대상으로 덮어쓰기를 수행한 워크로드를 나타낸다. 도 7의 (a) 및 (b)에서 볼 수 있듯, 파일 크기와 관계없이 SGX-SSD 시스템의 성능이 Project Almanac 보다 우수함을 알 수 있다. 두 경우 모두에서, SGX-SSD 시스템의 처리량(throughput)이 Project Almanac보다 높고, 메모리 용적률(capacity ratio)이 Project Almanac보다 낮았다. 이러한 경향은 도 7에서 볼 수 있듯, 파일의 크기가 클 때 두드러졌다.7 (a) and (b) show a workload in which overwriting is performed on a file of 20 MB and a file of 32 KB, respectively. As can be seen from (a) and (b) of Figure 7, it can be seen that the performance of the SGX-SSD system is superior to that of Project Almanac regardless of the file size. In both cases, the throughput of the SGX-SSD system was higher than that of Project Almanac, and the memory capacity ratio was lower than that of Project Almanac. As can be seen in FIG. 7 , this trend was conspicuous when the size of the file was large.

이러한 성능 차이는, Project Almanac에서는 파일 버전들의 보존기간이 일정해 덮어쓰기가 수행될수록 모든 파일에 버전 관리가 수행되지만, 본 실시예에 따른 SGX-SSD에서는 파일 중요도에 따라 보존기간이 달라져 덮어쓰기가 수행되어도 일부 파일에만 버전 관리가 수행되는 데서 발생한다. 파일 크기가 작을 수록 한 블록 내 부적합 페이지와 OV 페이지가 공존하는 경우가 많아지므로 가비지 콜랙션 오버헤드가 발생하여 각각에서 성능 차가 다소 줄어들게 된다.The difference in performance is that, in Project Almanac, the retention period of file versions is constant, and version control is performed on all files as overwriting is performed. Even if it is performed, it occurs because version control is performed only on some files. The smaller the file size, the more often the invalid page and the OV page coexist within one block, so garbage collection overhead occurs and the performance difference between each is somewhat reduced.

도 3 내지 도 6에서는 과정 각 과정들을 순차적으로 실행하는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서도 3 내지 도 6에 기재된 순서를 변경하여 실행하거나 각 과정 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3 내지 도 6의 시계열적인 순서로 한정되는 것은 아니다.Although it is described that each process is sequentially executed in FIGS. 3 to 6 , this is merely illustrative of the technical idea of an embodiment of the present invention. In other words, a person of ordinary skill in the art to which an embodiment of the present invention pertains may change the order described in 3 to 6 or execute at least one of each process without departing from the essential characteristics of an embodiment of the present invention. Since it will be possible to apply various modifications and variations by executing the process in parallel, it is not limited to the time series sequence of FIGS. 3 to 6 .

본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 디지털 전자 회로, 집적 회로, FPGA(field programmable gate array), ASIC(application specific integrated circuit), 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합으로 실현될 수 있다. 이러한 다양한 구현예들은 프로그래밍가능 시스템상에서 실행 가능한 하나 이상의 컴퓨터 프로그램들로 구현되는 것을 포함할 수 있다. 프로그래밍가능 시스템은, 저장 시스템, 적어도 하나의 입력 디바이스, 그리고 적어도 하나의 출력 디바이스로부터 데이터 및 명령들을 수신하고 이들에게 데이터 및 명령들을 전송하도록 결합되는 적어도 하나의 프로그래밍가능 프로세서(이것은 특수 목적 프로세서일 수 있거나 혹은 범용 프로세서일 수 있음)를 포함한다. 컴퓨터 프로그램들(이것은 또한 프로그램들, 소프트웨어, 소프트웨어 애플리케이션들 혹은 코드로서 알려져 있음)은 프로그래밍가능 프로세서에 대한 명령어들을 포함하며 "컴퓨터가 읽을 수 있는 기록매체"에 저장된다. Various implementations of the systems and techniques described herein may be implemented in digital electronic circuitry, integrated circuitry, field programmable gate array (FPGA), application specific integrated circuit (ASIC), computer hardware, firmware, software, and/or combination can be realized. These various implementations may include being implemented in one or more computer programs executable on a programmable system. The programmable system includes at least one programmable processor (which may be a special purpose processor) coupled to receive data and instructions from, and transmit data and instructions to, a storage system, at least one input device, and at least one output device. or may be a general-purpose processor). Computer programs (also known as programs, software, software applications or code) contain instructions for a programmable processor and are stored on a "computer-readable recording medium".

컴퓨터가 읽을 수 있는 기록매체는, 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 이러한 컴퓨터가 읽을 수 있는 기록매체는 ROM, CD-ROM, 자기 테이프, 플로피디스크, 메모리 카드, 하드 디스크, 광자기 디스크, 스토리지 디바이스 등의 비휘발성(non-volatile) 또는 비 일시적인(non-transitory) 매체일 수 있으며, 또한 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한, 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.The computer-readable recording medium includes all types of recording devices in which data readable by a computer system is stored. These computer-readable recording media are non-volatile or non-transitory, such as ROM, CD-ROM, magnetic tape, floppy disk, memory card, hard disk, magneto-optical disk, and storage device. It may be a medium, and may further include a transitory medium such as a data transmission medium. In addition, the computer-readable recording medium may be distributed in a network-connected computer system, and the computer-readable code may be stored and executed in a distributed manner.

본 명세서에 설명되는 시스템들 및 기법들의 다양한 구현예들은, 프로그램가능 컴퓨터에 의하여 구현될 수 있다. 여기서, 컴퓨터는 프로그램가능 프로세서, 데이터 저장 시스템(휘발성 메모리, 비휘발성 메모리, 또는 다른 종류의 저장 시스템이거나 이들의 조합을 포함함) 및 적어도 한 개의 커뮤니케이션 인터페이스를 포함한다. 예컨대, 프로그램가능 컴퓨터는 서버, 네트워크 기기, 셋탑 박스, 내장형 장치, 컴퓨터 확장 모듈, 개인용 컴퓨터, 랩탑, PDA(Personal Data Assistant), 클라우드 컴퓨팅 시스템 또는 모바일 장치 중 하나일 수 있다.Various implementations of the systems and techniques described herein may be implemented by a programmable computer. Here, the computer includes a programmable processor, a data storage system (including volatile memory, non-volatile memory, or other types of storage systems or combinations thereof), and at least one communication interface. For example, a programmable computer may be one of a server, a network appliance, a set-top box, an embedded device, a computer expansion module, a personal computer, a laptop, a Personal Data Assistant (PDA), a cloud computing system, or a mobile device.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and various modifications and variations will be possible without departing from the essential characteristics of the present embodiment by those skilled in the art to which this embodiment belongs. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present embodiment.

10: SGX-SSD 시스템 100: SPM
102: Kdev 120: PV-SSD
122: Kdev' 124: 검증부
126: 요청처리부 128: 정책매니저
129: 정책 메타데이터
200: 앱 202: 파일 시스템
220: OOB 222: VVB
10: SGX-SSD system 100: SPM
102:Kdev 120: PV-SSD
122:Kdev'124: verification unit
126: request processing unit 128: policy manager
129: Policy metadata
200: app 202: file system
220: OOB 222: VVB

Claims (20)

호스트 서버(host server) 상에서 구동되는 SGX(Software Guard Extension) 기반의 SPM(Secure Policy Manager) 및 상기 호스트 서버와 유선 또는 무선으로 연결된 SGX(Software Guard Extension) 기반의 PV-SSD(Policy-based file Versioning Solid State Disk)를 포함하는 SGX-SSD 시스템을 이용한 파일정책 관리방법에 있어서,
파일 정책(file policy)을 설정하기 위하여, 상기 호스트 서버 상에서 구동되는 유저 인터페이스(UI: User Interface)를 통해 사용자로부터 환경설정 변수(CP: Configuration Parameter)의 전부 또는 일부 및 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 요청하는 명령(command)을 입력받는 입력과정;
상기 SPM의 엔클레이브(enclave)에 저장된 고유의 키값인 Kdev를 이용하여 상기 SPM이 상기 입력을 암호화(encrypt)하여 상기 PV-SSD로 전송하는 전송과정; 및
상기 PV-SSD의 엔클레이브에 저장된 고유의 키값인 Kdev'를 이용하여 상기 PV-SSD가 상기 입력을 복호화(decrypt)하고, 복호화된 입력으로부터 추출한 상기 명령에 따라 상기 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 수행하는 정책관리과정을 포함하되,
상기 Kdev 및 상기 Kdev'는 동일한 키값을 갖고, 상기 SPM 및 상기 PV-SSD 각각에 하드코딩되는 것
을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
SGX (Software Guard Extension)-based SPM (Secure Policy Manager) running on a host server and SGX (Software Guard Extension)-based PV-SSD (Policy-based File Versioning) connected to the host server by wire or wirelessly In a file policy management method using an SGX-SSD system including a solid state disk,
In order to set a file policy, all or part of a configuration parameter (CP) from a user through a user interface (UI) driven on the host server and creation, change, and file policy an input process of receiving a command for requesting any one of deletion;
a transmission process in which the SPM encrypts the input using Kdev , which is a unique key value stored in an enclave of the SPM, and transmits it to the PV-SSD; and
The PV-SSD decrypts the input using Kdev' , which is a unique key value stored in the enclave of the PV-SSD, and creates, changes and deletes the file policy according to the command extracted from the decrypted input Including the policy management process to perform any one of
The Kdev and the Kdev' have the same key value, and are hard-coded to the SPM and the PV-SSD, respectively.
A file policy management method using the SGX-SSD system, characterized in that
호스트 서버(host server) 상에서 구동되는 SGX(Software Guard Extension) 기반의 SPM(Secure Policy Manager) 및 상기 호스트 서버와 유선 또는 무선으로 연결된 SGX(Software Guard Extension) 기반의 PV-SSD(Policy-based file Versioning Solid State Disk)를 포함하는 SGX-SSD 시스템을 이용한 파일정책 관리방법에 있어서,
파일 정책(file policy)을 설정하기 위하여, 상기 호스트 서버 상에서 구동되는 유저 인터페이스(UI: User Interface)를 통해 사용자로부터 환경설정 변수(CP: Configuration Parameter)의 전부 또는 일부 및 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 요청하는 명령(command)을 입력받는 입력과정;
상기 SPM의 엔클레이브(enclave)에 저장된 고유의 키값인 Kdev를 이용하여 상기 SPM이 상기 입력을 암호화(encrypt)하여 상기 PV-SSD로 전송하는 전송과정; 및
상기 PV-SSD의 엔클레이브에 저장된 고유의 키값인 Kdev'를 이용하여 상기 PV-SSD가 상기 입력을 복호화(decrypt)하고, 복호화된 입력으로부터 추출한 상기 명령에 따라 상기 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 수행하는 정책관리과정을 포함하되,
상기 Kdev 및 상기 Kdev'는 동일한 키값을 갖고,
상기 환경설정 변수는 정책 정보(policy information), 파일 경로(file path), 보존기간(RT, Retention Time), 백업 사이클(BC, Backup Cycle) 및 최대 버전 수(maximum number of versions)를 포함하되,
상기 입력은 적어도 상기 파일 경로를 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
SGX (Software Guard Extension)-based SPM (Secure Policy Manager) running on a host server and SGX (Software Guard Extension)-based PV-SSD (Policy-based File Versioning) connected to the host server by wire or wirelessly In a file policy management method using an SGX-SSD system including a solid state disk,
In order to set a file policy, all or part of a configuration parameter (CP) from a user through a user interface (UI) driven on the host server and creation, change, and file policy an input process of receiving a command for requesting any one of deletion;
a transmission process in which the SPM encrypts the input using Kdev , which is a unique key value stored in an enclave of the SPM, and transmits it to the PV-SSD; and
The PV-SSD decrypts the input using Kdev' , which is a unique key value stored in the enclave of the PV-SSD, and creates, changes and deletes the file policy according to the command extracted from the decrypted input Including the policy management process to perform any one of
The Kdev and the Kdev' have the same key value,
The environment setting variable includes policy information, a file path, a retention period (RT, Retention Time), a backup cycle (BC, Backup Cycle) and a maximum number of versions,
The file policy management method using the SGX-SSD system, characterized in that the input includes at least the file path.
제2항에 있어서,
상기 입력과정은,
상기 호스트 서버의 운영체제(OS: Operation System)를 포함한 모든 프로세서의 구동을 일시 중단하고, SMM(System Management Mode)이 실행되는 환경에서 입력받는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
3. The method of claim 2,
The input process is
A file policy management method using an SGX-SSD system, characterized in that the operation of all processors including the operating system (OS) of the host server is temporarily suspended, and input is received in an environment in which SMM (System Management Mode) is executed.
제3항에 있어서,
상기 입력과정은,
사용자의 입력이 끝나기 전 상기 SPM의 상기 엔클레이브와 상기 SMM 간 비밀 세션(secret session)을 형성하고,
상기 전송과정은,
상기 SMM이 상기 비밀 세션을 통해 상기 입력을 상기 SPM의 상기 엔클레이브에 보내는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
4. The method of claim 3,
The input process is
Forms a secret session between the enclave of the SPM and the SMM before the user's input ends,
The transmission process is
The file policy management method using the SGX-SSD system, characterized in that the SMM sends the input to the enclave of the SPM through the secret session.
제4항에 있어서,
상기 전송과정은,
상기 SPM가 상기 Kdev 를 이용하여 상기 입력을 암호화한 암호화 메시지를 생성하고, 상기 Kdev 및 상기 암호화 메시지를 기초로 메시지 인증 코드(MAC, Message Authentication Code)를 생성하여, 상기 암호화 메시지 및 상기 메시지 인증 코드를 상기 PV-SSD로 전송하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
5. The method of claim 4,
The transmission process is
The SPM generates an encrypted message by using the Kdev to encrypt the input, and generates a message authentication code (MAC, Message Authentication Code) based on the Kdev and the encrypted message, and the encrypted message and the message authentication code A file policy management method using an SGX-SSD system, characterized in that it is transmitted to the PV-SSD.
제5항에 있어서,
상기 정책관리과정은,
상기 PV-SSD가 상기 Kdev'를 이용하여 전송된 암호화 인증 코드를 검증하고, 검증 결과 상기 SPM이 신뢰할만한 경우, 상기 암호화 메시지를 파싱(parsing)하여 상기 입력으로부터 데이터를 추출하고, 추출된 데이터가 포함하는 상기 명령에 따라 정책 메타데이터(policy metadata)의 생성, 변경 및 삭제 중 어느 하나를 수행하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
6. The method of claim 5,
The policy management process is
The PV-SSD verifies the encrypted authentication code transmitted using the Kdev' , and if the verification result is that the SPM is reliable, the encrypted message is parsed to extract data from the input, and the extracted data is A file policy management method using an SGX-SSD system, characterized in that any one of creation, change, and deletion of policy metadata is performed according to the command including:
제6항에 있어서,
상기 정책 메타데이터는,
상기 파일 경로를 포함한 상기 환경설정 변수가 저장되는 데이터 구조인 정책 엔트리(policy entry)가 저장되는 해시 테이블(hash table)로 구현되고, 상기 해시 테이블은 상기 파일 경로가 이용되어 탐색되는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일정책 관리방법.
7. The method of claim 6,
The policy metadata is
It is implemented as a hash table in which a policy entry, which is a data structure in which the environment setting variable including the file path is stored, is stored, and the hash table is searched using the file path. File policy management method using SGX-SSD system.
호스트 서버와 유선 또는 무선으로 연결되고, 제1항에 따른 파일정책 관리방법을 수행하는 PV-SSD가 포함된 SGX-SSD 시스템을 이용한 파일 입출력 방법에 있어서,
상기 호스트 서버를 통해 사용자로부터 파일 입출력(file I/O)을 받는 과정;
상기 호스트 서버가 상기 파일 입출력을 기초로 피기백 셋(piggyback set)을 구성하여 상기 PV-SSD에 전송하는 피기백 전송과정;
상기 PV-SSD가 상기 피기백 셋을 파싱(parsing)하고, 파싱된 데이터의 전부 또는 일부를 상기 파일에 대응하는 물리 페이지(physical page)의 OOB 영역(Out-Of-Band region)에 저장하는 OOB 저장과정; 및
상기 PV-SSD가 상기 물리 페이지에 대응하는 VVB(Version Validity Bitmap) bit을 설정하는 VVB 설정과정을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 입출력 방법.
In a file input/output method using an SGX-SSD system that is connected to a host server by wire or wirelessly and includes a PV-SSD that performs the file policy management method according to claim 1,
receiving file I/O from a user through the host server;
a piggyback transmission process in which the host server constructs a piggyback set based on the file input/output and transmits it to the PV-SSD;
OOB in which the PV-SSD parses the piggyback set and stores all or part of the parsed data in an out-of-band region of a physical page corresponding to the file storage process; and
and a VVB setting process in which the PV-SSD sets a Version Validity Bitmap (VVB) bit corresponding to the physical page.
제8항에 있어서,
상기 피기백 전송과정은,
상기 호스트 서버 상 구동되는 파일 시스템(file system)이 상기 파일 입출력과 관련하여 상기 파일의 파일 경로(file path) 및 데이터 블록 오프셋(data block offset)이 포함되는 피기백 셋(piggyback set)을 구성하여, 상기 PV-SSD 내의 데이터 블록(data block)으로 피기백 전송(piggyback transfer)하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 입출력 방법.
9. The method of claim 8,
The piggyback transmission process is
A file system running on the host server configures a piggyback set including a file path and a data block offset of the file in relation to the file input/output. , A file input/output method using an SGX-SSD system, characterized in that piggyback transfer is performed to a data block in the PV-SSD.
제9항에 있어서,
상기 OOB 저장과정은,
상기 파일에 대응하는 정책이 없는 경우, 상기 OOB 영역에 상기 파일에 해당하는 LPA(Logical Page Address)를 저장하고,
상기 파일에 대응하는 정책이 있는 경우, 상기 OOB 영역에 상기 피기백 셋에 포함된 데이터의 전부 또는 일부, 상기 LPA, WT(Written Time) 및 BP(Back Pointer)를 저장하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 입출력 방법.
10. The method of claim 9,
The OOB storage process is
If there is no policy corresponding to the file, storing an LPA (Logical Page Address) corresponding to the file in the OOB area,
When there is a policy corresponding to the file, all or part of the data included in the piggyback set, the LPA, WT (Written Time) and BP (Back Pointer) are stored in the OOB area. File input/output method using SSD system.
제10항에 있어서,
상기 VVB 설정과정은,
상기 파일에 대응하는 정책이 없는 경우, 상기 VVB bit을 0으로 설정(set)하고,
상기 파일에 대응하는 정책이 있는 경우, 상기 VVB Bit을 1로 설정하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 입출력 방법.
11. The method of claim 10,
The VVB setting process is
If there is no policy corresponding to the file, the VVB bit is set to 0,
When there is a policy corresponding to the file, the file input/output method using the SGX-SSD system, characterized in that the VVB Bit is set to 1.
제8항에 따른 파일 입출력 방법을 수행하는 PV-SSD를 포함하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법에 있어서,
상기 PV-SSD가 빅팀 블록(victim block)을 결정하는 빅팀블록 결정과정; 및
상기 빅팀블록을 삭제(erase)하는 가비지 콜렉션(GC, Garbage Collection) 과정을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법.
In the selective version management method using the SGX-SSD system including the PV-SSD performing the file input/output method according to claim 8,
a victim block determination process in which the PV-SSD determines a victim block; and
The selective version management method using the SGX-SSD system, characterized in that it includes a garbage collection (GC, Garbage Collection) process of erasing the big team block.
제12항에 있어서,
상기 빅팀 블록이 결정된 후, 상기 빅팀 블록에 유효 페이지(valid page)가 포함된 경우, 상기 유효 페이지를 다른 블록에 복사하는 복사과정을 더 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법.
13. The method of claim 12,
Selective version management using the SGX-SSD system, characterized in that the method further includes a copying process of copying the valid page to another block when the valid page is included in the victim block after the victim block is determined Way.
제13항에 있어서,
상기 복사과정은,
상기 빅팀 블록에 포함된 페이지가 유효하지 않은 경우, 상기 페이지가 부적합 페이지(invalid page)인지 OV 페이지(Old Version page)인지 구분(differentiate)하여 OV 페이지인 경우 다른 블록에 복사하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법.
14. The method of claim 13,
The copy process is
SGX, characterized in that when the page included in the victim block is invalid, the page is differentiated whether the page is an invalid page or an OV page (Old Version page), and if the page is an OV page, the page is copied to another block -Optional version control method using SSD system.
제14항에 있어서,
상기 구분은,
상기 페이지가 어느 파일의 이전 버전(old version)이 저장된 것이고, 상기 파일에 대응하는 정책이 존재하며, 상기 정책 상 상기 페이지가 만료(expire)되지 않은 경우, 상기 페이지를 OV 페이지로 구분하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 선택적 버전관리 방법.
15. The method of claim 14,
The division is
When the page is an old version of a file stored, a policy corresponding to the file exists, and the page has not expired according to the policy, the page is classified as an OV page An optional version control method using the SGX-SSD system.
호스트 서버와 유선 또는 무선으로 연결되고, 제8항에 따른 파일 입출력 방법을 수행하는 PV-SSD를 포함하는 SGX-SSD 시스템을 이용한 파일 복원방법에 있어서,
상기 호스트 서버를 통해 사용자로부터 복원 시점 또는 복원 버전 중 어느 하나인 복원정보 및 복원 대상 파일의 파일 경로를 입력받는 복원요청과정;
상기 호스트 서버 상 구동되는 파일 시스템(file system)이 상기 복원 대상 파일에 대응하는 모든 LBA(Logical Block Address)를 로딩(loaing)하는 로딩과정;
상기 파일 경로, 상기 복원정보 및 로딩된 LBA 리스트가 저장된 메시지를 상기 PV-SSD에 전송하는 복원정보 전송과정;
전송된 LBA 리스트를 이용하여 상기 PV-SSD가 상기 복원정보에 대응하는 버전에 관하여, 상기 버전과 관련된 페이지를 찾는 페이지 탐색과정; 및
상기 OOB 영역에 저장된 데이터 블록 오프셋(data block offset)을 이용하여 상기 버전과 관련된 페이지들을 재구성(rearrange)하여 파일 콘텐트(file content)를 복원하는 파일콘텐트 복원과정을 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 복원방법.
In a file restoration method using an SGX-SSD system that is connected to a host server by wire or wirelessly and includes a PV-SSD that performs the file input/output method according to claim 8,
a restoration request process of receiving restoration information that is either restoration time point or restoration version and a file path of a restoration target file from a user through the host server;
a loading process in which a file system driven on the host server loads all LBAs (Logical Block Addresses) corresponding to the restoration target file;
a restoration information transmission process of transmitting a message in which the file path, the restoration information, and the loaded LBA list are stored to the PV-SSD;
a page search process in which the PV-SSD uses the transmitted LBA list to find a page related to the version with respect to the version corresponding to the restoration information; and
SGX-SSD comprising a file content restoration process of restoring file content by rearranging pages related to the version using a data block offset stored in the OOB area; How to restore files using the system.
제16항에 있어서,
상기 페이지 탐색과정은,
상기 LBA 리스트를 이용하여 상기 복원 대상 파일에 대응하는 논리 페이지(logical page)를 탐색하고, 상기 논리 페이지에 대응하는 LPN(Logical Page Number)을 내비게이션(navigation)함으로써 수행되는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 복원방법.
17. The method of claim 16,
The page navigation process is
SGX-SSD characterized in that it is performed by searching a logical page corresponding to the restoration target file using the LBA list and navigating an LPN (Logical Page Number) corresponding to the logical page. How to restore files using the system.
제16항에 있어서,
상기 PV-SSD가 상기 파일 콘텐트를 상기 호스트 서버로 전송하여 상기 복원 대상 파일을 덮어쓰는(overwrite) 덮어쓰기 과정을 더 포함하는 것을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 복원방법.
17. The method of claim 16,
The file restoration method using the SGX-SSD system, characterized in that the PV-SSD further comprises an overwrite process of overwriting the restoration target file by transmitting the file content to the host server.
제16항에 있어서,
상기 복원정보 전송과정은,
상기 파일 시스템의 신뢰성이 불분명한 경우, 상기 파일 경로 및 상기 복원정보가 저장된 메시지를 상기 PV-SSD로 전송하고,
상기 페이지 탐색과정은,
상기 복원 대상 파일에 대응하는 모든 물리 페이지를 탐색하여 상기 복원 대상 파일에 대응하는 모든 LPA(Logical Page Address)를 찾음으로써 수행되는 것
을 특징으로 하는 SGX-SSD 시스템을 이용한 파일 복원방법.
17. The method of claim 16,
The restoration information transmission process is
When the reliability of the file system is unclear, a message in which the file path and the restoration information are stored is transmitted to the PV-SSD,
The page navigation process is
What is performed by searching all physical pages corresponding to the restoration target file to find all LPAs (Logical Page Addresses) corresponding to the restoration target file
A file restoration method using the SGX-SSD system, characterized in that
엔클레이브(enclave)를 포함하는 SGX(Software Guard Extension) 기반의 SGX-SSD 시스템에 있어서,
호스트 서버(host server)와 유선 또는 무선으로 연결되고, 사용자로부터 설정된 고유의 키값인 Kdev'가 저장된 엔클레이브를 포함하며, 상기 호스트 서버로부터 전송된 데이터를 상기 Kdev'를 이용하여 복호화(decrypt)하는 SGX 기반의 PV-SSD(Policy-based file Versioning SSD); 및
상기 Kdev'와 동일한 키값인 Kdev가 저장된 엔클레이브를 포함하고, 사용자로부터 환경설정 변수(CP, Configuration Parameter)의 전부 또는 일부 및 파일 정책의 생성, 변경 및 삭제 중 어느 하나를 요청하는 명령(command)을 입력받아 상기 Kdev를 이용하여 암호화(encrypt)하여 상기 PV-SSD에 전송하는 SPM(Secure Policy Manager)을 포함하되,
상기 Kdev 및 상기 Kdev'는 상기 SPM 및 상기 PV-SSD 각각에 하드코딩되는 것을 포함하는 것을 특징으로 하는 SGX-SSD 시스템.


In the SGX (Software Guard Extension)-based SGX-SSD system including an enclave,
It is connected to a host server by wire or wirelessly, and includes an enclave in which Kdev' , which is a unique key value set by a user, is stored, and the data transmitted from the host server is decrypted using the Kdev' . SGX-based PV-SSD (Policy-based file Versioning SSD); and
A command that includes an enclave in which Kdev , which is the same key value as Kdev' , is stored, and requests any one of creation, change, and deletion of all or part of configuration parameters (CP) and file policies from the user including an SPM (Secure Policy Manager) that receives the input and encrypts it using the Kdev and transmits it to the PV-SSD,
The Kdev and the Kdev' are SGX-SSD system, characterized in that it comprises hard-coded in each of the SPM and the PV-SSD.


KR1020200074649A 2020-06-19 2020-06-19 Method And System for Policy-Based Versioning based on SGX-SSD KR102386219B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200074649A KR102386219B1 (en) 2020-06-19 2020-06-19 Method And System for Policy-Based Versioning based on SGX-SSD

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200074649A KR102386219B1 (en) 2020-06-19 2020-06-19 Method And System for Policy-Based Versioning based on SGX-SSD

Publications (2)

Publication Number Publication Date
KR20210156961A KR20210156961A (en) 2021-12-28
KR102386219B1 true KR102386219B1 (en) 2022-04-13

Family

ID=79178012

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200074649A KR102386219B1 (en) 2020-06-19 2020-06-19 Method And System for Policy-Based Versioning based on SGX-SSD

Country Status (1)

Country Link
KR (1) KR102386219B1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Hongliang Liang et al, "Establishing Trusted I/O Paths for SGX Client Systems with Aurora"(2019.)*
Robert Krahn et al, "Pesos: Policy Enhanced Secure Object Store"(2018.04.)*

Also Published As

Publication number Publication date
KR20210156961A (en) 2021-12-28

Similar Documents

Publication Publication Date Title
CN112074836B (en) Apparatus and method for protecting data through trusted execution environment
US9740639B2 (en) Map-based rapid data encryption policy compliance
US9336092B1 (en) Secure data deduplication
US9529735B2 (en) Secure data encryption in shared storage using namespaces
US11329814B2 (en) Self-encryption drive (SED)
KR101699998B1 (en) Secure storage of temporary secrets
US9165155B2 (en) Protecting the integrity and privacy of data with storage leases
US8689279B2 (en) Encrypted chunk-based rapid data encryption policy compliance
US10599842B2 (en) Deceiving attackers in endpoint systems
US20110016330A1 (en) Information leak prevention device, and method and program thereof
EP3103048B1 (en) Content item encryption on mobile devices
US11347717B2 (en) Generalized verification scheme for safe metadata modification
US20130173877A1 (en) Information processing device, data management method, and storage device
US20200089884A1 (en) Method and apparatus for ransomware detection
US8898807B2 (en) Data protecting method, mobile communication device, and memory storage device
US20230177197A1 (en) Persistent file system in a secure enclave
US8667278B2 (en) Information processing apparatus and data transmission method of information processing apparatus
Xie et al. Enabling accurate data recovery for mobile devices against malware attacks
US11468159B2 (en) Memory system
KR101761799B1 (en) Apparatus and method for managing data security of terminal
KR102386219B1 (en) Method And System for Policy-Based Versioning based on SGX-SSD
Chakraborti et al. Dm-x: protecting volume-level integrity for cloud volumes and local block devices
KR101467227B1 (en) Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same
KR101648262B1 (en) Method for managing encrypted files based on password with secure file deleting function suitable for ssd and system for managing encrypted files using the same
JP6107286B2 (en) Distributed storage system, node, data management method, and program

Legal Events

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