KR20220033109A - Kernel module for excuting encryption function - Google Patents

Kernel module for excuting encryption function Download PDF

Info

Publication number
KR20220033109A
KR20220033109A KR1020200115085A KR20200115085A KR20220033109A KR 20220033109 A KR20220033109 A KR 20220033109A KR 1020200115085 A KR1020200115085 A KR 1020200115085A KR 20200115085 A KR20200115085 A KR 20200115085A KR 20220033109 A KR20220033109 A KR 20220033109A
Authority
KR
South Korea
Prior art keywords
encryption
data
kernel module
file
decryption
Prior art date
Application number
KR1020200115085A
Other languages
Korean (ko)
Other versions
KR102430085B1 (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 KR1020200115085A priority Critical patent/KR102430085B1/en
Publication of KR20220033109A publication Critical patent/KR20220033109A/en
Application granted granted Critical
Publication of KR102430085B1 publication Critical patent/KR102430085B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/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/54Monitoring 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 adding security routines or objects to programs
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

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

Abstract

The present invention provides a kernel module performing an encryption function. The kernel module is executed through a preset encryption/decryption algorithm when an open function for data is called, is set to store file information including the data when the data is opened, and to perform encryption based on the stored file information, when a close function for the data is called.

Description

암호화 기능을 수행하는 커널 모듈{KERNEL MODULE FOR EXCUTING ENCRYPTION FUNCTION}Kernel module that performs cryptographic functions {KERNEL MODULE FOR EXCUTING ENCRYPTION FUNCTION}

본 발명은 암호화 기능을 수행하는 커널 모듈에 관한 것으로서, 보다 상세하게는 웹 어플리케이션 서버에서 동작하는 암호화 커널 모듈에 관한 것이다.The present invention relates to a kernel module that performs an encryption function, and more particularly, to an encryption kernel module operating in a web application server.

기업이나 업무용 컴퓨터의 경우, 기술 개발 결과물 또는 기술 개발에 관련된 중요한 데이터를 저장하고 있다. 또한, 개인용 컴퓨터의 경우에도 개인의 프라이버시와 관련된 데이터를 저장하고 있다.In the case of corporate or business computers, important data related to technology development results or technology are stored. In addition, even in the case of a personal computer, data related to personal privacy is stored.

이러한 중요 데이터에 대한 관리는 보안 시스템이 발달되면서 보다 철저한 솔루션으로서 제공되고 있다. 특히, 기업에서 관리중인 전자 문서의 반출 등에 있어서는 암호화/복호화 프로세스를 거쳐야 가능하다. Management of such important data is being provided as a more thorough solution as the security system develops. In particular, it is possible to go through an encryption/decryption process when exporting electronic documents managed by a company.

암호화 모듈의 경우, 특히 비정형 데이터(unstructed data)의 경우에 암/복호화된 데이터는 새로운 파일 형태로 저장될 수 있으며, 서버에 등록된 비정형 데이터의 암호화 정책정보는 암호화된 상태로 관리된다.In the case of the encryption module, especially in the case of unstructured data, encrypted/decrypted data may be stored in a new file format, and encryption policy information of unstructured data registered in the server is managed in an encrypted state.

기업/기관이 보호해야 할 데이터 중 비정형 데이터의 비중은 계속해서 증가될 것으로 전망되고 있으며, 이미 비정형 데이터가 차지하는 비율이 80%를 넘어선 것으로 나타나고 있다.The proportion of unstructured data among data that companies/institutions need to protect is expected to continue to increase, and the proportion of unstructured data has already exceeded 80%.

다만, 이러한 비정형 데이터의 암/복호화에 대하여 다양한 형태의 암/복호화 기법이 적용될 수 있으며, 본 발명에서는 효율적인 암/복호화 정책에 따르는 암/복호화 기능에 대하여 구체적으로 개시하기로 한다.However, various types of encryption/decryption techniques may be applied to encryption/decryption of such unstructured data, and in the present invention, an encryption/decryption function according to an efficient encryption/decryption policy will be specifically disclosed.

본 발명은 전술한 종래 기술의 문제점을 해결하기 위한 것으로서, 파일 암/복호화를 수행할 수 있다.The present invention is to solve the problems of the prior art described above, and can perform file encryption/decryption.

본 발명의 일 실시예는 암호화 기능을 수행하는 커널 모듈에 있어서, 상기 커널 모듈은, 데이터에 대한 open 함수가 호출되었을 때, 기설정된 암복호화 알고리즘을 거쳐 실행되고, 상기 데이터 open 시에 상기 데이터를 포함하는 파일 정보를 저장하고, 상기 데이터에 대한 close 함수가 호출되었을 때, 상기 저장된 파일 정보에 기초하여 암호화를 수행하도록 설정된다.In an embodiment of the present invention, in a kernel module performing an encryption function, when an open function for data is called, the kernel module is executed through a preset encryption/decryption algorithm, and the data is opened when the data is opened. It is set to store the file information including, and to perform encryption based on the stored file information when the close function for the data is called.

또한, 상기 커널 모듈은, 커널 라이브러리 호출 명령을 후킹(hooking)한 이후에 open 함수가 호출되는지를 판단하는 것을 특징으로 한다.In addition, the kernel module is characterized in that it is determined whether the open function is called after hooking the kernel library call command.

또한, 상기 저장된 파일 정보는, 해시맵(hashmap) 형식으로서, 파일의 키 값 및 밸류 값이 매칭되어 저장되는 것을 특징으로 한다.In addition, the stored file information, in the form of a hashmap, is characterized in that the key value and the value value of the file are matched and stored.

또한, 상기 커널 모듈은, 유닉스의 LD_PRELOAD를 이용하여 상기 기설정된 암복호화 알고리즘을 거쳐 실행되는 것을 특징으로 한다.In addition, the kernel module is characterized in that it is executed through the preset encryption/decryption algorithm using LD_PRELOAD of Unix.

본 발명은 암호화 기능을 수행하는 커널 모듈에 관한 것으로, 시스템의 수정을 최소화하여 암/복호화 기능을 제공할 수 있다.The present invention relates to a kernel module that performs an encryption function, and can provide an encryption/decryption function by minimizing system modifications.

본 발명에 따를 때, 커널 모듈 설정만으로 암/복호화를 수행할 수 있다.According to the present invention, encryption/decryption can be performed only by setting the kernel module.

본 발명에 따를 때, 커널 모듈에 오류 발생시 시스템에 영향이 없는 유리한 효과가 있다.According to the present invention, there is an advantageous effect that the system is not affected when an error occurs in the kernel module.

도 1은 본 발명의 일 예에 따르는 암호화 시스템을 개념적으로 나타내는 도면이다.
도 2는 본 발명의 일 실시예에 따르는 암호화 이전을 나타내는 도면이다.
도 3은 본 발명의 일 실시예에 따르는 암호화 이후를 나타내는 도면이다.
도 4는 본 발명의 일 실시예에 따르는 복호화 이후를 나타내는 도면이다.
1 is a diagram conceptually illustrating an encryption system according to an example of the present invention.
2 is a diagram illustrating encryption before encryption according to an embodiment of the present invention.
3 is a view showing after encryption according to an embodiment of the present invention.
4 is a view showing after decoding according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art can easily implement them. However, the present invention may be embodied in several different forms and is not limited to the embodiments described herein. And in order to clearly explain the present invention in the drawings, parts irrelevant to the description are omitted, and similar reference numerals are attached to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part is "connected" with another part, this includes not only the case of being "directly connected" but also the case of being "electrically connected" with another element interposed therebetween. . Also, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated.

본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다. 한편, '~부'는 소프트웨어 또는 하드웨어에 한정되는 의미는 아니며, '~부'는 어드레싱 할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 '~부'는 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 '~부'들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 '~부'들로 결합되거나 추가적인 구성요소들과 '~부'들로 더 분리될 수 있다. 뿐만 아니라, 구성요소들 및 '~부'들은 디바이스 또는 보안 멀티미디어카드 내의 하나 또는 그 이상의 CPU들을 재생시키도록 구현될 수도 있다.In this specification, a "part" includes a unit realized by hardware, a unit realized by software, and a unit realized using both. In addition, one unit may be implemented using two or more hardware, and two or more units may be implemented by one hardware. Meanwhile, '~ unit' is not limited to software or hardware, and '~ unit' may be configured to be in an addressable storage medium or to reproduce one or more processors. Accordingly, as an example, '~' indicates components such as software components, object-oriented software components, class components, and task components, and processes, functions, properties, and procedures. , subroutines, segments of program code, drivers, firmware, microcode, circuitry, data, databases, data structures, tables, arrays and variables. The functions provided in the components and '~ units' may be combined into a smaller number of components and '~ units' or further separated into additional components and '~ units'. In addition, components and '~ units' may be implemented to play one or more CPUs in a device or secure multimedia card.

이하에서 언급되는 "사용자 단말"은 네트워크를 통해 서버나 타 단말에 접속할 수 있는 컴퓨터나 휴대용 단말기로 구현될 수 있다. 여기서, 컴퓨터는 예를 들어, 웹 브라우저(WEB Browser)가 탑재된 노트북, 데스크톱(desktop), 랩톱(laptop) 등을 포함하고, 휴대용 단말기는 예를 들어, 휴대성과 이동성이 보장되는 무선 통신 장치로서, IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet), LTE(Long Term Evolution) 통신 기반 단말, 스마트폰, 태블릿 PC 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있다. 또한, “네트워크”는 근거리 통신망(Local Area Network; LAN), 광역 통신망(Wide Area Network; WAN) 또는 부가가치 통신망(Value Added Network; VAN) 등과 같은 유선 네트워크나 이동 통신망(mobile radio communication network) 또는 위성 통신망 등과 같은 모든 종류의 무선 네트워크로 구현될 수 있다. The "user terminal" referred to below may be implemented as a computer or portable terminal that can access a server or other terminal through a network. Here, the computer includes, for example, a laptop, a desktop, and a laptop equipped with a web browser (WEB Browser), and the portable terminal is, for example, a wireless communication device that ensures portability and mobility. , IMT (International Mobile Telecommunication)-2000, CDMA (Code Division Multiple Access)-2000, W-CDMA (W-Code Division Multiple Access), Wibro (Wireless Broadband Internet), LTE (Long Term Evolution) communication-based terminal, smart It may include all types of handheld-based wireless communication devices such as a phone, a tablet PC, and the like. In addition, “network” means a wired network such as a local area network (LAN), a wide area network (WAN) or a value added network (VAN), or a mobile radio communication network or satellite It may be implemented in any kind of wireless network such as a communication network.

도 1은 본 발명의 일 예에 따르는 암호화 시스템을 개념적으로 나타내는 도면이다.1 is a diagram conceptually illustrating an encryption system according to an example of the present invention.

도 1에 도시된 바와 같이 암호화 시스템은 보안 관리자가 관리자 서버를 통해 암호화키 관리/정책 서버를 관리하며, 암호화키 관리/정책 서버는 고객 시스템에 대한 데이터를 암호화 및 관리한다.1, in the encryption system, the security manager manages the encryption key management/policy server through the administrator server, and the encryption key management/policy server encrypts and manages data for the customer system.

정보보안 담당자가 암/복호화 정책 설정 서버에 접속하여, 키를 비롯한 암복호화에 대한 정보를 입력하고, 각 서버에 암/복호화 정보가 도달할 수 있도록 한다.The information security officer accesses the encryption/decryption policy setting server, inputs encryption/decryption information including the key, and allows encryption/decryption information to reach each server.

웹 어플리케이션 서버(Web Application Server; WAS) 필터에서는 사용자가 올린 비정형 데이터를 확인하고 해당 데이터가 암호화 대상인지 여부를 URI, request/response 헤더, 디렉토리 정보 등 정책 정보를 검토한다.In the Web Application Server (WAS) filter, the unstructured data uploaded by the user is checked and policy information such as URI, request/response header, and directory information is reviewed to determine whether the data is an encryption target.

암/복호화 대상일 경우에는 해당 비정형 데이터는 API를 통해서 암/복호화가 이루어지고 암/복호화된 데이터는 새로운 파일 형태로 서버에 저장된다.In the case of encryption/decryption target, the unstructured data is encrypted/decrypted through API, and the encrypted/decrypted data is stored in the server in the form of a new file.

서버에 등록된 비정형 데이터의 암호화 정책 정보는 암호화된 상태로 관리된다.Encryption policy information of unstructured data registered in the server is managed in an encrypted state.

일반 사용자가 서버에 저장된 암호화된 비정형 데이터를 확인하게 되었을 때, 일반적인 암호화일 경우, 알 수 없는 값들로만 확인이 가능하다.When a general user checks the encrypted unstructured data stored in the server, in the case of general encryption, it is possible to check only unknown values.

이미지 익명화나 선택적 이미지 암호화의 경우에는 정의된 이미지를 확인함으로서 해당 파일 또는 비정형 데이터가 암호화되어 있음을 인지할 수 있다.In the case of image anonymization or selective image encryption, you can recognize that the file or unstructured data is encrypted by checking the defined image.

권한이 있는 사용자가 암호화된 비정형 데이터를 확인하게 되면 WAS 필터 모듈에서 해당 암호화 데이터를 확인하여 사용자의 권한에 따라 데이터를 복호화하고 사용자의 PC에 원본 비정형 데이터를 저장한다.When an authorized user checks the encrypted unstructured data, the WAS filter module checks the encrypted data, decrypts the data according to the user's authority, and stores the original unstructured data in the user's PC.

권한있는 사용자는 복호화된 비정형 데이터를 정상적으로 확인할 수 있다.Authorized users can check the decrypted unstructured data normally.

본 발명에 따르는 커널 모듈은 암호화 모듈로서, 사용자 또는 관리자가 정의한 커널 정책에 따라 암/복호화 정책을 저장한다. The kernel module according to the present invention is an encryption module and stores encryption/decryption policies according to a kernel policy defined by a user or an administrator.

본 발명에 따르는 커널 모듈은 파일의 open 또는 close 함수를 통해 수행되며, 해당 커널 모듈이 호출되었을 때, 암호화 모듈이 동작한다.The kernel module according to the present invention is performed through an open or close function of a file, and when the corresponding kernel module is called, the encryption module operates.

암호화 기능을 수행하는 커널 모듈에 있어서, 상기 커널 모듈은, 데이터에 대한 open 함수가 호출되었을 때, 기설정된 암복호화 알고리즘을 거쳐 실행되고, 상기 데이터 open 시에 상기 데이터를 포함하는 파일 정보를 저장하고, 상기 데이터에 대한 close 함수가 호출되었을 때, 상기 저장된 파일 정보에 기초하여 암호화를 수행하도록 설정된다.In the kernel module performing an encryption function, when the open function for data is called, the kernel module is executed through a preset encryption/decryption algorithm, and stores file information including the data when the data is opened, , when the close function for the data is called, it is set to perform encryption based on the stored file information.

또한, 상기 커널 모듈은, 커널 라이브러리 호출 명령을 후킹(hooking)한 이후에 open 함수가 호출되는지를 판단한다.Also, the kernel module determines whether the open function is called after hooking the kernel library call command.

또한, 상기 저장된 파일 정보는, 해시맵(hashmap) 형식으로서, 파일의 키 값 및 밸류 값이 매칭되어 저장된다.In addition, the stored file information is stored in a hashmap format in which a key value and a value value of the file are matched.

또한, 상기 커널 모듈은, 유닉스의 LD_PRELOAD를 이용하여 상기 기설정된 암복호화 알고리즘을 거쳐 실행된다.In addition, the kernel module is executed through the preset encryption/decryption algorithm using LD_PRELOAD of Unix.

상기와 같은 커널 모듈은 하기 표1과 같이 솔루션의 형태로 설정될 수 있다.The above-mentioned kernel module may be set in the form of a solution as shown in Table 1 below.

구분division 내용Contents 비고note certcert rootca.crtrootca.crt KMS 서버와 SSL 통신 시 사용Used for SSL communication with KMS server sapi_root/confsapi_root/conf sapi.cfgsapi.cfg Smartguard 설정파일Smartguard configuration file ap-kernel.cfgap-kernel.cfg Kernel 설정파일Kernel configuration file sapi_root/datasapi_root/data 암/복호화 키 파일 생성위치Location of encryption/decryption key file creation sapi__root/data/seedsapi__root/data/seed policySeed.sopolicySeed.so sapi_root/logsapi_root/log 로그가 쌓이는 위치where the logs are stacked lib/linux_x86_32lib/linux_x86_32 libap_smart.solibap_smart.so 클라이언트 라이브러리client library Linux/32 bitLinux/32 bit libap_crypto.solibap_crypto.so Crypto 라이브러리Crypto library Linux/32 bitLinux/32 bit libap_kernel.solibap_kernel.so Kernel 라이브러리Kernel library Linux/32 bitLinux/32 bit lib/linux_x86_64lib/linux_x86_64 libap_smart.solibap_smart.so 클라이언트 라이브러리client library Linux/64 bitLinux/64 bit libap_crypto.solibap_crypto.so Crypto 라이브러리Crypto library Linux/64 bitLinux/64 bit libap_kernel.solibap_kernel.so Kernel 라이브러리Kernel library Linux/64 bitLinux/64 bit

또한, 본 발명에 따르는 커널 모듈을 사용하기 위해서는 ${SAPI_ROOT}/conf 디렉토리에 sapi.cfg 파일이 있어야 하며, 다음과 같은 라이브러리 값들이 올바르게 설정되어 있어야 한다.In addition, in order to use the kernel module according to the present invention, a sapi.cfg file must exist in the ${SAPI_ROOT}/conf directory, and the following library values must be set correctly.

설정Set 설명explanation Loglevellog level Event 로그 기록 레벨을 설정합니다.
1. FATAL : 심각한 에러를 로그에 남깁니다.
2. WARNING : FATAL을 포함한 경고(비즈니스 로직 에러)를 로그에 남깁니다.
3. INFO : 에러 정보가 간략한 정보를 로그에 남깁니다.
4. TRACE : 에러, 정보, 추가 처리 상황을 로그에 남깁니다.
Sets the event logging level.
1. FATAL : Logs fatal errors.
2. WARNING : Logs warnings (business logic errors) including FATAL.
3. INFO: Logs brief information of error information.
4. TRACE : Logs errors, information, and additional processing status.
Logpathlogpath 로그 파일이 위치할 경로를 설정합니다.Set the path where the log file will be located. Datapathdatapath 키 파일이 위치할 경로를 설정합니다.Set the path where the key file will be located. Updatetypeupdatetype 키 업데이트 수행 여부를 설정합니다.
1. online : 업데이트를 수행합니다.
2. offline : 업데이트를 수행하지 않습니다.
Set whether to perform key update.
1. online : Performs an update.
2. offline : Update is not performed.
Updateintervalupdateinterval 키 업데이트 수행 간격을 설정합니다.(초 단위)Set the key update interval (in seconds). UpdateAuthUpdateAuth 키 업데이트 시 암/복호화 권한을 포함할지 여부를 설정합니다.
1. true : 권한 관리 설정을 업데이트합니다.
2. false : 권한 관리 설정을 업데이트하지 않습니다.
Set whether to include encryption/decryption permission when updating the key.
1. true : Update permission management settings.
2. false : Do not update permission management settings.
SaveseedSaved PolicySeed 저장 여부를 설정합니다.
1. true : PolicySeed를 저장합니다.
2. false : PolicySeed를 저장하지 않습니다.
(필요시 온라인으로 받아옵니다.)
Set whether to save PolicySeed.
1. true : Save PolicySeed.
2. false : Do not save PolicySeed.
(If necessary, you can get it online.)
ConfrewriteConfrewrite 설정파일을 다시 쓸지 여부를 설정합니다.
1. true : password를 지우기 위해 다시 씁니다.
2. false : 설정파일을 읽기만 합니다.
Set whether to rewrite the configuration file.
1. true : Rewrite the password to clear it.
2. false : Only read the configuration file.

상기의 경우, 암복호화 라이브러리의 무결성 검증을 위한 설정은 하기 표 3과 같이 정의될 수 있다.In this case, the settings for verifying the integrity of the encryption/decryption library may be defined as shown in Table 3 below.

설정Set 설명explanation checkBinarycheckBinary αSmartGuard 라이브러리의 무결성 체크 여부를 설정합니다.
1. true : 무결성 검증을 사용합니다.
2. false : 무결성 검증을 사용하지 않습니다.
α Set whether to check the integrity of the SmartGuard library.
1. true : Integrity verification is enabled.
2. false : Integrity verification is not used.

또한, 키 관리 시스템(Key Management Syetem; KMS) 접근 계정 정보를 설정하는 것은 하기 표 4와 같이 정의될 수 있다.In addition, setting the key management system (Key Management System; KMS) access account information may be defined as shown in Table 4 below.

설정Set 설명explanation accountIDaccountID KMS 접근 ID를 설정합니다.Set the KMS access ID. accountPWaccountPW 계정 패스워드를 설정합니다.Set the account password.

또한, 키 관리 서버 접속 정보의 설정은 하기 표 5와 같이 정의될 수 있다.In addition, the setting of key management server access information may be defined as shown in Table 5 below.

설정Set 설명explanation IPIP KMS 서버 접속 주소를 설정합니다.Set the KMS server connection address. PortPort KMS 서버 접속 포트를 설정합니다.Set the KMS server connection port. UsesslUsessl KMS 서버 접속 시 SSL 통신 사용 여부를 설정합니다.
1. true : SSL 통신을 사용합니다.
2. false : SSL 통신을 사용하지 않습니다.
Set whether to use SSL communication when connecting to the KMS server.
1. true : Use SSL communication.
2. false : SSL communication is not used.
SSLHostnameSSLHostname 등록서버 호스트명을 설정합니다.
(등록서버 인증서의 CN 값과 동일해야 합니다.)
파일 형식은 PEM, DER 모두 지원합니다.
Ex) cn=alphabit.co.kr, o=apg, c=kr 일경우 alphabit.co.kr
Set the registration server host name.
(It must be the same as the CN value of the registration server certificate.)
Both PEM and DER file formats are supported.
Ex) cn=alphabit.co.kr, o=apg, c=kr alphabit.co.kr
SSLCAFileSSLCAFile 등록서버 SSL CA인증서 파일 경로를 설정합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore/alphabit_ca.crt
Set the registration server SSL CA certificate file path.
Both PEM and DER file formats are supported.
Ex) /certstore/alphabit_ca.crt
SSLCAPathSSLCAPath 등록서버 SSL CA 인증서 경로를 설정합니다.
해당 디렉토리에 있는 모든 인증서를 읽어 들여 처리합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore
Set the registration server SSL CA certificate path.
All certificates in that directory are read and processed.
Both PEM and DER file formats are supported.
Ex) /certstore
SSLCliCertSSLCliCert 클라이언트 SSL 인증서 파일 경로를 설정합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore/alphabit_test_server.crt
Sets the client SSL certificate file path.
Both PEM and DER file formats are supported.
Ex) /certstore/alphabit_test_server.crt
SSLCliKeySSLCliKey 클라이언트 SSL 인증서 키 파일 경로를 설정합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore/alphabit_test_server.key
Sets the client SSL certificate key file path.
Both PEM and DER file formats are supported.
Ex) /certstore/alphabit_test_server.key
SSLPSKeySSLPSKey 미리 공유된 키 값을 설정합니다.(HEX 인코딩)Set the pre-shared key value. (HEX encoding) TimeoutTimeout 정책 서버 접속 제한시간을 설정합니다.(초 단위)Set the policy server access timeout (in seconds).

또한, 이중화 키 관리 서버 접속 정보의 설정은 하기 표 6과 같이 정의될 수 있다.In addition, the setting of the redundant key management server connection information may be defined as shown in Table 6 below.

설정Set 설명explanation IPIP KMS 서버 접속 주소를 설정합니다.Set the KMS server connection address. PortPort KMS 서버 접속 포트를 설정합니다.Set the KMS server connection port. UsesslUsessl KMS 서버 접속 시 SSL 통신 사용 여부를 설정합니다.
1. true : SSL 통신을 사용합니다.
2. false : SSL 통신을 사용하지 않습니다.
Set whether to use SSL communication when connecting to the KMS server.
1. true : Use SSL communication.
2. false : SSL communication is not used.
SSLHostnameSSLHostname 등록서버 호스트명을 설정합니다.
(등록서버 인증서의 CN 값과 동일해야 합니다.)
파일 형식은 PEM, DER 모두 지원합니다.
Ex) cn=alphabit.co.kr, o=apg, c=kr 일경우 alphabit.co.kr
Set the registration server host name.
(It must be the same as the CN value of the registration server certificate.)
Both PEM and DER file formats are supported.
Ex) cn=alphabit.co.kr, o=apg, c=kr alphabit.co.kr
SSLCAFileSSLCAFile 등록서버 SSL CA인증서 파일 경로를 설정합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore/alphabit_ca.crt
Set the registration server SSL CA certificate file path.
Both PEM and DER file formats are supported.
Ex) /certstore/alphabit_ca.crt
SSLCAPathSSLCAPath 등록서버 SSL CA 인증서 경로를 설정합니다.
해당 디렉토리에 있는 모든 인증서를 읽어 들여 처리합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore
Set the registration server SSL CA certificate path.
All certificates in that directory are read and processed.
Both PEM and DER file formats are supported.
Ex) /certstore
SSLCliCertSSLCliCert 클라이언트 SSL 인증서 파일 경로를 설정합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore/alphabit_test_server.crt
Sets the client SSL certificate file path.
Both PEM and DER file formats are supported.
Ex) /certstore/alphabit_test_server.crt
SSLCliKeySSLCliKey 클라이언트 SSL 인증서 키 파일 경로를 설정합니다.
파일 형식은 PEM, DER 모두 지원합니다.
Ex) /certstore/alphabit_test_server.key
Sets the client SSL certificate key file path.
Both PEM and DER file formats are supported.
Ex) /certstore/alphabit_test_server.key
SSLPSKeySSLPSKey 미리 공유된 키 값을 설정합니다.(HEX 인코딩)Set the pre-shared key value (HEX encoding) TimeoutTimeout 정책 서버 접속 제한시간을 설정합니다.(초 단위)Set the policy server access timeout (in seconds).

또한, 본 발명에 따르는 커널 라이브러리의 일반적인 설정은 하기 표 7과 같이 정의될 수 있다.In addition, general settings of the kernel library according to the present invention may be defined as shown in Table 7 below.

설정Set 설명explanation Loglevellog level Event 로그 기록 레벨을 설정합니다.
1. FATAL : 심각한 에러를 로그에 남깁니다.
2. WARNING : FATAL을 포함한 경고(비즈니스 로직 에러)를 로그에 남깁니다.
3. INFO : 에러 정보가 간략한 정보를 로그에 남깁니다.
4. TRACE : 에러, 정보, 추가 처리 상황을 로그에 남깁니다.
Sets the event logging level.
1. FATAL : Logs fatal errors.
2. WARNING : Logs warnings (business logic errors) including FATAL.
3. INFO: Logs brief information of error information.
4. TRACE : Logs errors, information, and additional processing status.
Logpathlogpath 로그 파일이 위치할 경로를 설정합니다.Set the path where the log file will be located.

또한, 본 발명에 따르는 암/복호화 정책 ID 및 감시 디렉토리 설정은 하기 표 8과 같이 정의될 수 있다.In addition, the encryption/decryption policy ID and monitoring directory settings according to the present invention may be defined as shown in Table 8 below.

설정Set 설명explanation ConfcountConfcount 분석할 개수를 설정합니다.Set the number to be analyzed. policyIDpolicyID 적용할 정책의 ID를 설정합니다.Set the ID of the policy to be applied. DirectoryDirectory 감시할 디렉토리를 설정합니다.Set the directory to be monitored.

또한, 본 발명에 따른 정책에 대한 설정은 하기 표 9와 같이 정의될 수 있다.In addition, the settings for the policy according to the present invention may be defined as shown in Table 9 below.

설정Set 설명explanation ConfcountConfcount 정책의 개수를 설정합니다.Set the number of policies. policyIDpolicyID 정책 ID를 설정합니다.Set the policy ID. ModeMode 암호화 또는 복호화 모드를 설정합니다.
1. encrypt : 암호화 모드
2. decrypt : 복호화 모드
Set the encryption or decryption mode.
1. encrypt : encryption mode
2. decrypt : Decryption mode
extDeleteextDelete 암/복호화 수행 이후 원본 파일의 확장자 삭제 여부를 설정합니다.
1. true : 원본 파일의 확장자를 삭제합니다.
2. false : 원본 파일의 확장자를 삭제하지 않습니다.
Set whether to delete the extension of the original file after encryption/decryption is performed.
1. true : Delete the extension of the original file.
2. false : The extension of the original file is not deleted.
extResultextResult 암/복호화 수행 이후 결과 파일의 확장자를 설정합니다.
1. nop : 원본파일의 확장자를 따라갑니다.
Set the extension of the result file after encryption/decryption is performed.
1. nop : Follows the extension of the original file.
Passprefixpassprefix 해당 파일 이름이 passprefix에 설정된 문자열로 시작하면 pass합니다.
여러 개의 문자열을 등록할 수 있으며, 구분은 콤마(“”)로 구분합니다.
Pass if the file name begins with the string set in passprefix.
Multiple character strings can be registered, separated by commas (“”).
passsuffixpasssuffix 해당 파일 이름이 passsuffix에 설정된 문자열로 끝나면 pass합니다.
여러 개의 문자열을 등록할 수 있으며, 구분은 콤마(“”)로 구분합니다.
Pass if the file name ends with the string set in passsuffix.
Multiple character strings can be registered, separated by commas (“”).
MatchprefixMatchprefix 해당 파일 이름이 matchprefix에 설정된 문자열로 시작하면 암/복호화 수행합니다.
여러 개의 문자열을 등록할 수 있으며, 구분은 콤마(“”)로 구분합니다.
If the file name starts with the string set in matchprefix, encryption/decryption is performed.
Multiple character strings can be registered, separated by commas (“”).
MatchsuffixMatchsuffix 해당 파일 이름이 matchsuffix에 설정된 문자열로 끝나면 암/복호화 수행합니다.
여러 개의 문자열을 등록할 수 있으며, 구분은 콤마(“”)로 구분합니다.
If the file name ends with the string set in matchsuffix, encryption/decryption is performed.
Multiple character strings can be registered, separated by commas (“”).
LimitsizeLimitsize 파일의 제한 용량을 설정합니다.Set the limit on the file size.

이러한 암복호화 결과는 도 2 내지 도 4의 도면을 통해 확인할 수 있다. These encryption/decryption results can be confirmed through the drawings of FIGS. 2 to 4 .

도 2는 본 발명의 암복호화가 수행되기 이전의 원본 파일에 대한 도면이고, 도 3은 암호화가 수행된 이후의 파일을 나타낸 도면으로서, 일반 사용자가 알아보기 어려운 형태로 변환된 것을 확인할 수 있다.FIG. 2 is a view of the original file before encryption/decryption of the present invention is performed, and FIG. 3 is a view showing the file after encryption is performed, and it can be confirmed that it has been converted into a form that is difficult for a general user to recognize.

도 4는 암호화된 파일이 복호화된 후의 도면으로서, 원본 파일과 동일한 형태로 표시되는 것을 확인할 수 있다.4 is a view after the encrypted file is decrypted, and it can be seen that the encrypted file is displayed in the same form as the original file.

본 발명의 일 실시예는 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다. An embodiment of the present invention may also be implemented in the form of a recording medium including instructions executable by a computer, such as a program module to be executed by a computer. Computer-readable media can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, computer-readable media may include both computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Communication media typically includes computer readable instructions, data structures, program modules, or other data in a modulated data signal such as a carrier wave, or other transport mechanism, and includes any information delivery media.

본 발명의 방법 및 시스템은 특정 실시예와 관련하여 설명되었지만, 그것들의 구성 요소 또는 동작의 일부 또는 전부는 범용 하드웨어 아키텍쳐를 갖는 컴퓨터 시스템을 사용하여 구현될 수 있다.Although the methods and systems of the present invention have been described with reference to specific embodiments, some or all of their components or operations may be implemented using a computer system having a general purpose hardware architecture.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The description of the present invention described above is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may also be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

Claims (4)

암호화 기능을 수행하는 커널 모듈에 있어서,
상기 커널 모듈은,
데이터에 대한 open함수가 호출되었을 때, 기설정된 암복호화 알고리즘을 거쳐 실행되고,
상기 데이터 open 시에 상기 데이터를 포함하는 파일 정보를 저장하고,
상기 데이터에 대한 close 함수가 호출되었을 때, 상기 저장된 파일 정보에 기초하여 암호화를 수행하도록 설정되는, 커널 모듈.
In the kernel module performing an encryption function,
The kernel module is
When the open function for data is called, it is executed through a preset encryption/decryption algorithm,
When the data is opened, the file information including the data is stored,
When the close function for the data is called, the kernel module is set to perform encryption based on the stored file information.
제1항에 있어서,
상기 커널 모듈은,
커널 라이브러리 호출 명령을 후킹(hooking)한 이후에 open 함수가 호출되는지를 판단하는 것을 특징으로 하는, 커널 모듈.
The method of claim 1,
The kernel module is
Kernel module, characterized in that it determines whether the open function is called after hooking the kernel library call command.
제1항에 있어서,
상기 저장된 파일 정보는,
해시맵(hashmap) 형식으로서, 파일의 키 값 및 밸류 값이 매칭되어 저장되는 것을 특징으로 하는, 커널 모듈.
The method of claim 1,
The stored file information is
As a hashmap format, the kernel module, characterized in that the key value and the value value of the file are matched and stored.
제1항에 있어서,
상기 커널 모듈은,
유닉스의 LD_PRELOAD를 이용하여 상기 기설정된 암복호화 알고리즘을 거쳐 실행되는 것을 특징으로 하는, 커널 모듈.
The method of claim 1,
The kernel module is
A kernel module, characterized in that it is executed through the preset encryption/decryption algorithm using LD_PRELOAD of Unix.
KR1020200115085A 2020-09-09 2020-09-09 Kernel module for excuting encryption function KR102430085B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200115085A KR102430085B1 (en) 2020-09-09 2020-09-09 Kernel module for excuting encryption function

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200115085A KR102430085B1 (en) 2020-09-09 2020-09-09 Kernel module for excuting encryption function

Publications (2)

Publication Number Publication Date
KR20220033109A true KR20220033109A (en) 2022-03-16
KR102430085B1 KR102430085B1 (en) 2022-08-05

Family

ID=80937667

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200115085A KR102430085B1 (en) 2020-09-09 2020-09-09 Kernel module for excuting encryption function

Country Status (1)

Country Link
KR (1) KR102430085B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100547556B1 (en) * 2004-01-30 2006-01-31 주식회사 전유시스템 Secure kernel system supporting encrypted file system
KR101613146B1 (en) * 2015-03-24 2016-04-18 주식회사 티맥스데이터 Method for encrypting database
KR101710328B1 (en) * 2016-08-18 2017-02-27 주식회사 시큐브 Os security kernel system supporting dynamic reconfiguration and change and method thereof

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100547556B1 (en) * 2004-01-30 2006-01-31 주식회사 전유시스템 Secure kernel system supporting encrypted file system
KR101613146B1 (en) * 2015-03-24 2016-04-18 주식회사 티맥스데이터 Method for encrypting database
KR101710328B1 (en) * 2016-08-18 2017-02-27 주식회사 시큐브 Os security kernel system supporting dynamic reconfiguration and change and method thereof

Also Published As

Publication number Publication date
KR102430085B1 (en) 2022-08-05

Similar Documents

Publication Publication Date Title
US10671734B1 (en) Virtual machine manager for protecting against unauthorized access by computing devices
CN110892691B (en) Secure execution platform cluster
US8769605B2 (en) System and method for dynamically enforcing security policies on electronic files
US8181221B2 (en) Method and system for masking data
US20140164758A1 (en) Secure cloud database platform
CN110889130B (en) Database-based fine-grained data encryption method, system and device
Industry Data security standard
US20190138621A1 (en) High-speed secure virtual file system
EP1669837A2 (en) Believably trustworthy enforcement of privacy enhancing technologies in data processing
JP2016531508A (en) Data secure storage
US20210143998A1 (en) Electronic system to enable rapid acquisition and delivery of services and to provide strong protection of security and privacy
US11227041B2 (en) Identification service based authorization
US11647053B2 (en) Compliance verification system
US11711213B2 (en) Master key escrow process
US7412603B2 (en) Methods and systems for enabling secure storage of sensitive data
WO2019174647A1 (en) Data protection system and method for disk array
CN111539042B (en) Safe operation method based on trusted storage of core data files
KR102386044B1 (en) Filter module for excuting encryption function
CN110263008B (en) Terminal off-line log management system, method, device and storage medium
KR102430085B1 (en) Kernel module for excuting encryption function
US20220086000A1 (en) Cryptographic systems
Karlzén An Analysis of Security Information and Event Management Systems-The Use or SIEMs for Log Collection, Management and Analysis
KR102351471B1 (en) Method and system for managing encryption policy
CN116647413B (en) Application login method, device, computer equipment and storage medium
US11032320B1 (en) Systems and methods for dynamic application level encryption

Legal Events

Date Code Title Description
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant