KR20230100850A - File copy leakage prevention method - Google Patents

File copy leakage prevention method Download PDF

Info

Publication number
KR20230100850A
KR20230100850A KR1020210190479A KR20210190479A KR20230100850A KR 20230100850 A KR20230100850 A KR 20230100850A KR 1020210190479 A KR1020210190479 A KR 1020210190479A KR 20210190479 A KR20210190479 A KR 20210190479A KR 20230100850 A KR20230100850 A KR 20230100850A
Authority
KR
South Korea
Prior art keywords
file
server
hash value
fclps
client
Prior art date
Application number
KR1020210190479A
Other languages
Korean (ko)
Other versions
KR102621657B1 (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 KR1020210190479A priority Critical patent/KR102621657B1/en
Publication of KR20230100850A publication Critical patent/KR20230100850A/en
Application granted granted Critical
Publication of KR102621657B1 publication Critical patent/KR102621657B1/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
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Landscapes

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

Abstract

본 발명은 파일 복사 유출 방지 방법에 관한 것으로, 더 상세하게는 기밀 파일 보호를 위해 기밀 파일의 허가받지 않은 복사 또는/및 이동을 차단하면서도 클라이언트 컴퓨터의 처리 부하를 최소화하는, 파일 복사 유출 방지 방법에 관한 것이다.
본 발명의 실시 예에 따르면, 사용자기기에서 파일에 대한 복사 또는 이동 이벤트가 발생하는지 탐지하는 단계; 상기 복사 또는 이동 이벤트가 탐지된 경우, 상기 파일의 해시값을 계산하는 단계; 상기 파일에 대해 무작위의 문자열을 대칭키로 생성하는 단계; 상기 파일을 상기 대칭키로 암호화하는 단계; 상기 파일의 해시값과 대칭키를 서버로 송신하는 단계; 상기 서버로부터 기밀 파일 여부를 수신받는 단계; 상기 파일이 기밀 파일인 경우: 상기 파일을 삭제하는 단계; 및 상기 파일이 일반 파일인 경우: 상기 파일을 복호화하는 단계;를 포함하는, 파일 복사 유출 방지 클라이언트 제어 방법을 제공한다.
The present invention relates to a file copy leakage prevention method, and more particularly, to a file copy leakage prevention method that minimizes the processing load of a client computer while blocking unauthorized copying or/and moving of confidential files for confidential file protection. it's about
According to an embodiment of the present invention, detecting whether a copy or move event for a file occurs in a user device; calculating a hash value of the file when the copy or move event is detected; generating a random character string as a symmetric key for the file; encrypting the file with the symmetric key; Transmitting the hash value and the symmetric key of the file to a server; Receiving whether or not a confidential file is received from the server; If the file is a confidential file: deleting the file; and when the file is a general file: decrypting the file.

Description

파일 복사 유출 방지 방법{File copy leakage prevention method}File copy leakage prevention method}

본 발명은 파일 복사 유출 방지 방법에 관한 것으로, 더 상세하게는 기밀 파일 보호를 위해 기밀 파일의 허가받지 않은 복사 또는/및 이동을 차단하면서도 클라이언트 컴퓨터의 처리 부하를 최소화하는, 파일 복사 유출 방지 방법에 관한 것이다.The present invention relates to a file copy leakage prevention method, and more particularly, to a file copy leakage prevention method that minimizes the processing load of a client computer while blocking unauthorized copying or/and moving of confidential files for confidential file protection. it's about

기업들의 기밀 기술은 영업비밀보호법, 산업기술유출방지법 등 관련 법률에 의해 보호받는다. 그러나 법률의 보호를 받음에도 기업들의 기밀 유출은 매년 증가하고 있다. 한국산업기술보호협회의 조사 결과, 산업기밀에 대한 경제적 피해액은 연평균 50조 원이며 중소기업 수천개의 연 매출액과 비슷한 수준이다.Confidential technologies of companies are protected by relevant laws such as the Trade Secret Protection Act and the Industrial Technology Leakage Prevention Act. However, despite being protected by the law, leaks of corporate secrets are increasing every year. As a result of the investigation by the Korea Industrial Technology Protection Association, the annual average economic damage to industrial secrets is 50 trillion won, which is similar to the annual sales of thousands of SMEs.

산업기밀 유출은 국가와 기업의 경쟁력은 물론 경제적으로도 심각한 피해를 초래할 수 있다. 대부분 기업들은 기밀 유출을 막기 위해 따로 조직과 인력, 그리고 예산이 부족하기 때문에 기밀 유출에 대응하기 힘들다. 특히 군사기밀 유출은 단 한 번이라도 발생하면 국방 안보뿐만 아니라 국가안보에도 영향을 미칠 수 있기 때문에 군사기밀의 외부 노출을 철저하게 차단할 필요가 있다.Leakage of industrial secrets can cause serious damage not only to the competitiveness of countries and companies, but also to the economy. Most companies find it difficult to respond to confidential leaks because they lack a separate organization, manpower, and budget to prevent leaks. In particular, it is necessary to thoroughly block the exposure of military secrets to the outside because leaking military secrets can affect not only national security but also national security if it occurs even once.

이러한 기밀 유출을 방지하기 위한 기술인 EDLP는: Detect Agent, Server, 그리고 Database로 구성된다. Detect Agent의 기능은 사용자의 이벤트 활동을 정책에 따라 탐지 및 차단하고 이벤트 활동 정보를 Server로 전송한다. Server의 기능은 Detect Agent에서 탐지한 이벤트 활동 정보를 Database에 저장한다. Database의 기능은 Detect Agent의 이벤트 활동에 대한 정보를 저장, Detect Agent 정보에 대한 결과를 Server로 송신한다. EDLP의 구성도는 도 19와 같다.EDLP, a technology to prevent such confidential leakage, consists of: Detect Agent, Server, and Database. The function of Detect Agent detects and blocks the user's event activity according to the policy and transmits the event activity information to the server. The function of the server stores the event activity information detected by the Detect Agent in the database. The function of the database is to store the information on the event activity of the detect agent and transmit the result of the detect agent information to the server. The configuration diagram of EDLP is shown in FIG. 19 .

신규진, “하둡 기반의 사용자 행위 분석을 통한 내부정보 유출방지 시스템”, 대전대학교, (2018).Kyoo Jin Shin, “Internal Information Leakage Prevention System through Hadoop-based User Behavior Analysis”, Daejeon University, (2018).

본 발명이 해결하고자 하는 과제는, 전술한 바와 같은 종래 기밀 유출 방지 기술의 한계점을 해결하기 위하여, 시스템 부하를 최소화하고 파일을 확장자로만 분류하는 것이 아니라 시그니처를 분석 후 판별하여 정확성을 개선할 수 있는 파일 복사 유출 방지 방법을 제공하는 것이다.The problem to be solved by the present invention is to minimize the system load and to improve the accuracy by analyzing and determining the signature rather than classifying the file only by the extension, in order to solve the limitations of the conventional confidential leakage prevention technology as described above. It is to provide a way to prevent file copy leakage.

본 발명은 전술한 바와 같은 종래 기밀 유출 방지 기술의 한계점을 해결하기 위하여, 사용자 기기에서 파일에 대한 복사 또는 이동 이벤트가 발생하는지 탐지하는 단계; 상기 복사 또는 이동 이벤트가 탐지된 경우, 상기 파일의 해시값을 계산하는 단계; 상기 파일에 대해 무작위의 문자열을 대칭키로 생성하는 단계; 상기 파일을 상기 대칭키로 암호화하는 단계; 상기 파일의 해시값과 대칭키를 서버로 송신하는 단계; 상기 서버로부터 기밀 파일 여부를 수신받는 단계; 상기 파일이 기밀 파일인 경우: 상기 파일을 삭제하는 단계; 및 상기 파일이 일반 파일인 경우: 상기 파일을 복호화하는 단계;를 포함하는, 파일 복사 유출 방지 클라이언트 제어 방법을 제공한다.The present invention, in order to solve the limitations of the conventional confidential leakage prevention technology as described above, detecting whether a copy or move event for a file occurs in a user device; calculating a hash value of the file when the copy or move event is detected; generating a random character string as a symmetric key for the file; encrypting the file with the symmetric key; Transmitting the hash value and the symmetric key of the file to a server; Receiving whether or not a confidential file is received from the server; If the file is a confidential file: deleting the file; and when the file is a general file: decrypting the file.

또한, 상기 파일의 해시값과 대칭키를 서버로 송신하는 단계는: 상기 파일의 해시값과 대칭키를 JSON 형태로 변환하는 단계; 상기 서버의 공개키로 [JSON 형태의 파일의 해시값과 대칭키]를 암호화하는 단계; 및 상기 서버로, [암호화된 JSON 형태의 파일의 해시값과 대칭키]를 송신하는 단계;로 구성될 수 있다.In addition, the step of transmitting the hash value and the symmetric key of the file to the server: converting the hash value and the symmetric key of the file into JSON format; Encrypting [hash value and symmetric key of a file in JSON format] with the public key of the server; and transmitting [a hash value of an encrypted JSON-type file and a symmetric key] to the server.

그리고, 서버의 최초 세팅 시, 서버의 공개키 및 개인키를 생성하는 단계; 클라이언트의 접속을 대기하는 단계; 상기 클라이언트에게 공개키를 송신하는 단계; 상기 클라이언트로부터 파일의 해시값과 대칭키를 수신하는 단계; 상기 파일의 해시값과 대칭키를 데이터베이스에 질의하는 단계; 및 데이터베이스 질의 결과에 따라 기밀 파일 여부를 클라이언트에 송신하는 단계;를 포함하는, 파일 복사 유출 방지 서버 제어 방법을 제공한다.Then, when the server is initially set, generating a public key and a private key of the server; waiting for a client to connect; sending a public key to the client; Receiving a hash value and a symmetric key of a file from the client; querying a database for a hash value and a symmetric key of the file; and transmitting to the client whether or not the confidential file is in accordance with the database query result.

아울러, 상기 클라이언트의 접속을 대기하는 단계는: 클라이언트가 서버에 접속한 경우, 동적으로 스레드를 생성하는 단계;를 포함하고, 상기 파일의 해시값과 대칭키를 데이터베이스에 질의하는 단계는: 상기 클라이언트로부터 수신한 [암호화된 JSON 형태의 파일의 해시값과 대칭키]를 상기 서버의 개인키로 복호화하는 단계; 및 복호화된 JSON 형태의 파일의 해시값과 대칭키를 파싱하여 데이터베이스에 질의하는 단계;로 구성되고, 상기 데이터베이스 질의 결과에 따라 기밀 파일 여부를 클라이언트에 송신하는 단계는: 상기 기밀 파일 여부에 대한 결과를 클라이언트의 공개키로 암호화하여 클라이언트에 송신하는 단계;를 포함할 수 있다.In addition, the step of waiting for the connection of the client includes: dynamically creating a thread when the client accesses the server, and the step of querying the database for the hash value and the symmetric key of the file: Decrypting the [hash value and symmetric key of the encrypted JSON-type file] received from the server with the private key of the server; and querying the database by parsing the hash value and the symmetric key of the decrypted JSON-formatted file. Encrypting with the public key of the client and transmitting to the client; may include.

또한, 클라이언트, 서버, 매니지먼트 모듈 및 데이터베이스를 포함하는, 파일 복사 유출 방지 시스템에 있어서: 상기와 같은 파일 복사 유출 방지 클라이언트 제어 방법 또는/및 파일 복사 유출 방지 서버 제어 방법을 이용하는, 파일 복사 유출 방지 시스템을 제공한다.In addition, in a file copy leakage prevention system including a client, a server, a management module, and a database: a file copy leakage prevention system using the above file copy leakage prevention client control method or/and file copy leakage prevention server control method provides

본 발명의 실시 예에 따르면, 기밀 파일 유출 방지 프로그램이 설치된 사용자 기기(PC 등)의 처리 부하를 최소화할 수 있다.According to an embodiment of the present invention, it is possible to minimize the processing load of a user device (PC, etc.) in which a confidential file leakage prevention program is installed.

또한, 파일을 확장자로만 분류하는 것이 아니라 시그니처를 분석 후 판별함으로써 문서 보안의 정확성을 향상시킬 수 있다.In addition, the accuracy of document security can be improved by analyzing and determining the signature instead of classifying files only by extension.

그리고, 기밀 문서 파일로 추측되는 파일 내에 문자열이나 이미지 속 문자열 추출을 통한 판별이 아닌 파일 자체의 해시값을 사전 등록 후 비교하여 판별하는 것으로 기밀성을 향상시킬 수 있다.In addition, confidentiality can be improved by comparing and comparing the hash value of the file itself, rather than determining by extracting a string in a file or an image in a file that is assumed to be a confidential document file.

도 1 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템(FCLPS) 구성도이다.
도 2 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템의 데이터 흐름도이다.
도 3 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 매니지먼트 모듈의 동작 흐름도이다.
도 4 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 매니지먼트 모듈의 의사코드이다.
도 5 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 매니지먼트 모듈 파일 해시 등록 화면이다.
도 6 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 매니지먼트 모듈 파일 해시 삭제 화면이다.
도 7 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 클라이언트 모듈의 동작 흐름도이다.
도 8 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 클라이언트 모듈의 구조도이다.
도 9 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 클라이언트 모듈의 의사코드이다.
도 10 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 클라이언트 모듈의 이벤트 결과를 나타낸 화면이다.
도 11 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 서버의 동작 흐름도이다.
도 12 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 서버의 구조도이다.
도 13 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 서버의 의사코드이다.
도 14 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 서버의 송수신 결과를 나타낸 화면이다.
도 15 는 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 데이터베이스의 SQL Info이다.
도 16 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템 데이터베이스 내용(저장된 데이터 값)을 나타낸 화면이다.
도 17 및 도 18 은 본 발명의 실시 예에 따른 파일 복사 유출 방지 시스템에서 대용량 파일 암호화 시 발생하는 병목현상 측정 결과이다.
도 19 는 종래 기밀 유출 방지 기술인 EDLP의 구성도이다.
1 is a block diagram of a file copy leakage prevention system (FCLPS) according to an embodiment of the present invention.
2 is a data flow diagram of a file copy leakage prevention system according to an embodiment of the present invention.
3 is an operation flowchart of a file copy leakage prevention system management module according to an embodiment of the present invention.
4 is pseudo code of a file copy leakage prevention system management module according to an embodiment of the present invention.
5 is a file hash registration screen of a file copy leakage prevention system management module according to an embodiment of the present invention.
6 is a file hash deletion screen of a file copy leakage prevention system management module according to an embodiment of the present invention.
7 is a flowchart illustrating an operation of a file copy leakage prevention system client module according to an embodiment of the present invention.
8 is a structural diagram of a file copy leakage prevention system client module according to an embodiment of the present invention.
9 is pseudo code of a file copy leakage prevention system client module according to an embodiment of the present invention.
10 is a screen showing event results of the file copy leakage prevention system client module according to an embodiment of the present invention.
11 is a flowchart of an operation of a file copy leakage prevention system server according to an embodiment of the present invention.
12 is a structural diagram of a file copy leakage prevention system server according to an embodiment of the present invention.
13 is pseudo code of a file copy leakage prevention system server according to an embodiment of the present invention.
14 is a screen showing transmission/reception results of the file copy leakage prevention system server according to an embodiment of the present invention.
15 is SQL Info of a file copy leakage prevention system database according to an embodiment of the present invention.
16 is a screen showing contents (stored data values) of a file copy leakage prevention system database according to an embodiment of the present invention.
17 and 18 are measurement results of a bottleneck occurring when encrypting a large file in the file copy leakage prevention system according to an embodiment of the present invention.
19 is a configuration diagram of EDLP, which is a conventional secret leak prevention technology.

이하, 본 문서의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시예의 다양한 변경(modifications), 균등물 (equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.Hereinafter, various embodiments of this document will be described with reference to the accompanying drawings. However, it should be understood that this is not intended to limit the technology described in this document to specific embodiments, and includes various modifications, equivalents, and/or alternatives of the embodiments of this document. . In connection with the description of the drawings, like reference numerals may be used for like elements.

본 문서에서, "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this document, expressions such as "comprises" or "may include" indicate the presence of corresponding features (eg, components such as numerical values, functions, operations, or parts), and do not exclude the presence of additional features. don't

본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상" 등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다.In this document, expressions such as “A or B,” “at least one of A and/and B,” or “one or more of A or/and B” may include all possible combinations of the items listed together. . For example, “A or B,” “at least one of A and B,” or “at least one of A or B” (1) includes at least one A, (2) includes at least one B, Or (3) may refer to all cases including at least one A and at least one B.

본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are only used to describe a specific embodiment, and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions unless the context clearly dictates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as commonly understood by a person of ordinary skill in the technical field described in this document. Among the terms used in this document, terms defined in a general dictionary may be interpreted as having the same or similar meaning as the meaning in the context of the related art, and unless explicitly defined in this document, an ideal or excessively formal meaning. not be interpreted as In some cases, even terms defined in this document cannot be interpreted to exclude the embodiments of this document.

본 발명의 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어져서는 안될 것이다.Of course, various modifications can be made by those skilled in the art without departing from the gist of the present invention claimed in the claims of the present invention, and these modifications are the technical spirit of the present invention or It should not be understood individually from the perspective.

또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드(프로그램)로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다.In addition, the method according to the present invention can be implemented as a computer readable code (program) on a computer readable recording medium. A computer-readable recording medium may include all types of recording devices storing data that can be read by a computer system. Examples of computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, and optical data storage devices, and also those implemented in the form of carrier waves (for example, transmission through the Internet). include In addition, the computer-readable recording medium may store computer-readable codes that can be executed in a distributed manner by distributed computer systems connected through a network.

본 발명의 설명에 기재된 "모듈"은, 정보처리 또는/및 제어를 위한 소프트웨어 또는/및 하드웨어의 조합으로 구성될 수 있다.The "module" described in the description of the present invention may be composed of a combination of software or/and hardware for information processing or/and control.

본 발명의 설명에 기재된 "사용자" 또는/및 "관리자"는 각각 "사용자 기기"와 "관리자 기기"를 의미할 수 있다."User" and/or "manager" described in the description of the present invention may mean a "user device" and a "manager device", respectively.

본 발명의 실시 예에 따르면, 기밀 문서 파일 유출 방지를 위한 중앙 제어 서버와 대상 통제 PC의 이벤트를 실시간으로 탐지할 수 있는 파일 복사 유출 방지 시스템(FCLPS : File Copy Leakage Prevention System)을 구성할 수 있다.According to an embodiment of the present invention, a file copy leakage prevention system (FCLPS) capable of detecting events of a central control server and a target control PC in real time for preventing the leakage of confidential document files can be configured. .

본 발명의 설명에서는 변수명, 클래스명 등 통상의 기술자에게 영문표기가 더 일반적인 경우에는 해당 단어를 영문 그대로 기재한다.In the description of the present invention, when English notation is more common to those skilled in the art, such as variable names and class names, the corresponding words are written in English.

본 발명의 실시 예에서는 본 발명의 기술적 사상을 구현하기 위한 시험을 위하여, CPU는 3.60GHz의 Octa Core, RAM은 16GB, 네트워크 환경은 1000Mbps, OS(Operation System)는 Microsoft의 Windows 10 Pro 20H2, Dev language는 Microsoft의 C# .Net Framework 4.7.2, 데이터베이스는 MySQL 8.0.24를 사용하였다.In the embodiment of the present invention, for a test to implement the technical idea of the present invention, the CPU is an Octa Core of 3.60 GHz, the RAM is 16 GB, the network environment is 1000 Mbps, the OS (Operation System) is Microsoft's Windows 10 Pro 20H2, Dev The language was Microsoft's C# .Net Framework 4.7.2, and the database used MySQL 8.0.24.

1. 파일 복사 유출 방지 시스템(FCLPS) 구성도1. File copy leakage prevention system (FCLPS) diagram

FCLPS는 도 1과 같이 클라이언트, 서버, 매니지먼트 모듈, 데이터베이스를 포함하여 구성된다.As shown in FIG. 1, FCLPS includes a client, a server, a management module, and a database.

FCLPS 매니지먼트 모듈은 관리자가 기밀 문서 파일을 데이터베이스로 등록하기 위해 제공되는 모듈로, 관리자는 매니지먼트 모듈에 로그인 후 기밀 파일을 지정하여 그 파일에 대한 해시값을 데이터베이스에 등록한다.The FCLPS management module is provided for administrators to register confidential document files in the database. After logging in to the management module, the administrator designates confidential files and registers the hash value of the files in the database.

FCLPS 클라이언트 모듈은 통제 대상 PC에서 파일 복사 또는/및 이동에 관한 이벤트를 탐지하고, 파일의 해시값을 계산하고, 중앙 제어 서버를 통해 기밀 문서 파일에 대한 해시값을 검증하고, 결과에 따라 해당 파일에 대해 삭제 또는 복호화를 진행한다.The FCLPS client module detects events related to file copying or/and moving on the controlled PC, calculates the hash value of the file, verifies the hash value of the confidential document file through the central control server, and based on the result, Deletion or decryption is performed on .

FCLPS 서버는 FCLPS 클라이언트 모듈(FCLPP)로부터 수신받은 파일의 해시값을 기반으로 데이터베이스를 통해 기밀 문서 파일 여부를 검증한다.The FCLPS server verifies whether the file is confidential through the database based on the hash value of the file received from the FCLPS client module (FCLPP).

데이터베이스에는 기밀 문서 파일의 해시값과 관리자의 계정정보 등이 저장된다.The database stores hash values of confidential document files and account information of administrators.

파일 복사 유출 방지 시스템(FCLPS)의 절차는 다음과 같다.The procedure of File Copy Leak Prevention System (FCLPS) is as follows.

① 관리자가 FCLPS 매니지먼트 모듈에 로그인하고, 데이터베이스에 기밀 문서 파일의 해시값을 등록한다.① The administrator logs in to the FCLPS management module and registers the hash value of the confidential document file in the database.

② FCLPS 클라이언트 모듈은 사용자가 기밀 문서 파일에 대한 복사 또는/및 이동 이벤트를 발생시키는 것을 실시간으로 탐지한다.② The FCLPS client module detects in real time when a user generates copy or/and move events for confidential document files.

③ FCLPS 클라이언트 모듈은 상기 이벤트를 탐지하고 해당 파일(이벤트가 발생된 파일)의 해시값을 자동으로 계산한다. 그리고 랜덤한 16자리의 문자열을 대칭키로 생성하고 파일을 대칭키로 암호화한다.③ The FCLPS client module detects the above event and automatically calculates the hash value of the file (the file where the event occurred). Then, a random 16-digit character string is generated as a symmetric key and the file is encrypted with the symmetric key.

④ FCLPS 클라이언트 모듈은 파일의 해시값과 대칭키를 FCLPS 서버로 송신하기 위해 파일의 해시값과 대칭키를 JSON 형태로 변환한다.④ The FCLPS client module converts the hash value and symmetric key of the file into JSON format to transmit the hash value and symmetric key of the file to the FCLPS server.

⑤ FCLPS 클라이언트 모듈은 FCLPS 서버의 공개키로 JSON 형태의 데이터를 암호화한 후 FCLPS 서버로 송신한다.⑤ The FCLPS client module encrypts JSON-type data with the public key of the FCLPS server and sends it to the FCLPS server.

⑥ FCLPS 클라이언트 모듈로부터 암호화 데이터를 수신받은 FCLPS 서버는 개인키로 암호화 데이터를 복호화한다.⑥ The FCLPS server that receives the encrypted data from the FCLPS client module decrypts the encrypted data with the private key.

⑦ FCLPS 서버는 개인키로 복호화에 성공한 파일의 해시값과 대칭키를 각각 변수에 저장한다.⑦ The FCLPS server stores the hash value of the file successfully decrypted with the private key and the symmetric key in variables.

⑧ FCLPS 서버에 저장된 변수값 중에서 파일의 해시값을 데이터베이스에 질의(Query)하여 기밀파일 여부를 확인한다.⑧ Among the variable values stored in the FCLPS server, the hash value of the file is queried to the database to check whether it is a confidential file.

⑨ FCLPS 서버는 데이터베이스로부터 질의에 대한 결과를 수신한다.⑨ The FCLPS server receives the query result from the database.

⑩ FCLPS 서버의 기밀 문서 파일 여부에 대한 결과(일반 파일인 경우 대칭키, 기밀 문서 파일인 경우 삭제 명령어)를 FCLPS 클라이언트 모듈의 공개키로 암호화하고 FCLPS 클라이언트 모듈로 송신한다.⑩ The result of whether the FCLPS server has a confidential document file (a symmetric key in case of a general file, or a delete command in case of a confidential document file) is encrypted with the public key of the FCLPS client module and transmitted to the FCLPS client module.

⑪ FCLPS 클라이언트 모듈은 개인키로 FCLPS 서버로부터 기밀 문서 파일 여부에 대한 결과값을 복호화하고 삭제 또는 복호화 작업을 진행한다.⑪ The FCLPS client module decrypts the result of confidential document file status from the FCLPS server with the private key, and proceeds with deletion or decryption.

2. FCLPS 데이터 흐름도2. FCLPS data flow diagram

모든 기밀 문서 파일에 대한 해시값은 FCLPS의 데이터베이스에 저장된다.Hash values for all confidential document files are stored in FCLPS's database.

새로운 기밀 문서 파일이 생성될 경우, 관리자가 FCLPS 매니지먼트 모듈을 통해 데이터베이스에 기밀 문서 파일 해시값을 저장한다. 파일 복사 유출 방지 방법은 도 2에서와 같이 사용자, OS(Operation System; 운영체제), FCLPS 클라이언트 모듈, FCLPS 서버 및 데이터베이스에 의해 진행된다.When a new confidential document file is created, the manager stores the hash value of the confidential document file in the database through the FCLPS management module. As shown in FIG. 2, the file copy leakage prevention method is performed by a user, an OS (Operation System), an FCLPS client module, an FCLPS server, and a database.

사용자는 인가받은 사용자(일반 사용자) 또는 인가받지 않은 사용자(악의적인 사용자)로서, 컴퓨터 등을 이용하여 파일에 대해 복사 또는/및 이동 명령어를 발생시킬 수 있다.A user, as an authorized user (general user) or an unauthorized user (malicious user), may issue a copy or/and move command for a file using a computer or the like.

이 때, 운영체제는 사용자로부터 받은 명령어를 수행하고 파일에 대한 권한을 검증 후, 파일 복사 또는 파일 이동 이벤트를 발생시킨다.At this time, the operating system executes the command received from the user, verifies the authority for the file, and generates a file copy or file move event.

FCLPS 클라이언트 모듈은 시스템을 지속적으로 모니터링하여, 파일에 대한 복사 또는/및 이동 이벤트가 발생할 경우 원본 파일에 대한 해시값을 계산하고 랜덤한 16자리 문자열의 대칭키를 생성하여 파일을 암호화 한다. 그리고 FCLPS 서버로 파일의 해시값과 암호화키를 FCLPS 서버의 공개키로 암호화하여 전송한다.The FCLPS client module continuously monitors the system, and when a file copy or/or move event occurs, it calculates a hash value for the original file and generates a symmetric key of a random 16-digit string to encrypt the file. Then, the hash value and encryption key of the file are encrypted with the FCLPS server's public key and transmitted to the FCLPS server.

FCLPS 서버는 FCLPS 클라이언트 모듈로부터 수신한 파일의 해시값을 데이터베이스에 질의하여 기밀 문서 파일 여부를 판별한다. 그 후 FCLPS 서버는 기밀 문서 파일 여부에 따라 일반 파일인 경우 FCLPS 클라이언트 모듈에 대칭키를 전송하고, 기밀 문서 파일인 경우 FCLPS 클라이언트 모듈에 삭제 명령어를 전송한다.The FCLPS server queries the database for the hash value of the file received from the FCLPS client module to determine whether it is a confidential document file. After that, the FCLPS server transmits a symmetric key to the FCLPS client module in the case of a general file, and transmits a delete command to the FCLPS client module in the case of a confidential document file.

3. FCLPS 구현3. FCLPS Implementation

FCLPS 클라이언트 모듈은 기밀 문서 파일 유출 탐지, 해시값 계산, 파일을 대칭키로 암호화하여 결과값에 따라 삭제 또는 복호화 기능을 수행한다.The FCLPS client module detects leakage of confidential document files, calculates the hash value, encrypts the file with a symmetric key, and performs deletion or decryption according to the result value.

FCLPS 서버는 공개키와 개인키의 키쌍을 생성, 클라이언트 접속 대기, 클라이언트 소켓 생성, 데이터베이스 요청 및 응답 기능을 수행한다.The FCLPS server generates a key pair of public and private keys, waits for client connection, creates client socket, and performs database request and response functions.

3.1 FCLPS 매니지먼트 모듈3.1 FCLPS management module

이하, 도 3을 참조하여 FCLPS 매니지먼트 모듈의 작동 방법을 설명한다.Hereinafter, the operation method of the FCLPS management module will be described with reference to FIG. 3 .

① 관리자가 아이디 및 패스워드를 입력한다.① The administrator enters the ID and password.

② 입력된 아이피 및 패스워드를 데이터베이스로부터 검증한다.② Verify the entered IP and password from the database.

③ 관리자의 문서 파일 삭제 또는 문서 파일 추가 명령에 따라 ④를 실행한다.③ Execute ④ according to the administrator's command to delete document files or add document files.

④ 삭제 명령일 경우 : 해당 문서 파일의 해시값을 데이터베이스에서 삭제하고 종료(⑦)한다. 추가 명령일 경우 : 선택된 파일의 해시값을 계산한다.④ In the case of a delete command: Delete the hash value of the document file from the database and exit (⑦). In case of additional commands: Calculate the hash value of the selected file.

⑤ 계산된 문서 파일의 해시값을 데이터베이스에 추가한다.⑤ Add the hash value of the calculated document file to the database.

⑥ 데이터베이스에 추가된 문서 파일의 해시값을 리스트 뷰로 출력한다.⑥ The hash value of the document file added to the database is displayed as a list view.

⑦ 종료한다.⑦ End.

변수 Admin ID와 변수 Admin Password는 .Net에서 제공하는 스트링 변수로, 변수 Admin ID에 관리자 아이디를 입력받고 변수 Admin Password에 관리자 비밀번호를 입력받는다.The variable Admin ID and variable Admin Password are string variables provided by .Net. The variable Admin ID receives the administrator ID and the variable Admin Password receives the administrator password.

이후 변수 Admin ID, 변수 Admin Password를 데이터베이스에 저장된 관리자 아이디, 관리자 비밀번호와 비교하여 로그인에 성공할 경우 리스트 뷰에 데이터베이스에 저장된 문서 파일의 해시값을 출력하고, 실패할 경우 관리자 아이디 및 관리자 비밀번호 확인 메시지를 출력한다.Then, the variable Admin ID and Admin Password are compared with the admin ID and password stored in the database. If login is successful, the hash value of the document file stored in the database is output in the list view. print out

매니지먼트 프로그램에서 문서 파일 추가 이벤트는 File Hash Value Add Event이고 문서 파일 삭제이벤트는 File Hash Value Delete Event 이다. File Hash Value Add Event에서 변수 FileInfo는 관리자가 해당 문서 파일을 선택할 경우, 파일의 경로가 입력되고 변수 FileHash는 문서 파일의 해시값을 계산하는 Calculate 함수를 이용하여 문서 파일의 해시값을 저장한다.In the management program, the document file addition event is the File Hash Value Add Event, and the document file deletion event is the File Hash Value Delete Event. In the File Hash Value Add Event, when the manager selects the corresponding document file, the file path is input to the variable FileInfo and the variable FileHash stores the hash value of the document file using the Calculate function that calculates the hash value of the document file.

이후 Insert 데이터베이스 함수를 통해 데이터베이스로 문서 파일의 해시값을 저장한다. 그리고 File Hash Value Delete Event에서 변수 ListView는 리스트 뷰에 출력된 문서 파일의 해시값을 관리자가 선택했을 경우, 해당 문서 파일의 경로를 저장하고 변수 FileHash는 관리자가 선택한 문서 파일의 해시값을 저장한다. 그리고 변수 FileHash에 저장된 문서 파일의 해시값을 Delete 데이터베이스 함수를 통해 삭제한다.Then, the hash value of the document file is stored in the database through the Insert database function. And in the File Hash Value Delete Event, the variable ListView stores the path of the document file when the administrator selects the hash value of the document file displayed in the list view, and the variable FileHash stores the hash value of the document file selected by the administrator. Then, the hash value of the document file stored in the variable FileHash is deleted through the Delete database function.

FCLPS 매니지먼트 모듈의 의사코드는 도 4와 같다.The pseudo code of the FCLPS management module is shown in FIG.

파일의 해시값을 등록하는 경우는 다음과 같다. 관리자가 FCLPS 매니지먼트 모듈에 접속하면 데이터베이스 저장된 파일의 해시값과 경로를 리스트 뷰에 출력하고 관리자의 필요에 따라 "새로고침"버튼을 통해 데이터베이스에 저장된 해시값을 갱신하여 리스트 뷰로 확인할 수 있다.The case of registering the hash value of a file is as follows. When an administrator accesses the FCLPS management module, the hash value and path of the file stored in the database are displayed in the list view, and the hash value stored in the database is updated through the "Refresh" button according to the administrator's needs, and can be checked in the list view.

FCLPS 서버 매니지먼트 기능 중에서 "파일 선택" 버튼은 데이터베이스로 등록할 파일을 지정하고 리스트 뷰를 통해 파일의 번호, 파일 경로, 파일 해시값을 확인할 수 있다. 리스트 뷰에서 파일의 번호는 파일의 순번이고 파일의 경로는 등록할 파일의 절대 경로로 파일의 위치, 파일의 이름, 파일의 확장자가 포함된다. 그리고 파일의 해시값은 지정한 파일에 대한 해시값을 자동으로 계산하여 리스트 뷰에 출력된다. FCLPS 서버 매니지먼트의 File hash registration 화면은 도 5와 같다.Among the FCLPS server management functions, the "Select File" button designates a file to be registered in the database, and the file number, file path, and file hash value can be checked through the list view. In the list view, the file number is the order of the file, and the file path is the absolute path of the file to be registered, including the file location, file name, and file extension. And the hash value of the file is automatically calculated and displayed in the list view. The File hash registration screen of FCLPS server management is shown in FIG. 5.

파일의 해시값을 삭제하는 경우는 다음과 같다. 관리자가 FCLPS 서버 매니지먼트로 접속한다. 리스트 뷰로 출력한 파일의 정보를 기반으로 삭제하고자 하는 파일의 해시값을 더블클릭하여 삭제이벤트를 실행한다. 리스트 뷰의 더블클릭에 대한 이벤트는 사전에 리스트 뷰에 지정된 이벤트로, 관리자가 해당 리스트 뷰 목록을 더블클릭했을 때 발생한다.The case of deleting the hash value of a file is as follows. The administrator connects to FCLPS Server Management. Based on the file information displayed in the list view, double-click the hash value of the file to be deleted to execute the delete event. The double-click event of the list view is an event specified in the list view in advance, and occurs when the manager double-clicks the corresponding list view list.

관리자가 데이터베이스로 요청한 해시값 삭제이벤트가 정상적으로 완료되면 리스트 뷰 목록에서 해당 해시값을 삭제한다. FCLPS 서버 매니지먼트의 Delete File Hash는 도 6과 같다.When the hash value deletion event requested by the administrator to the database is completed normally, the corresponding hash value is deleted from the list view list. The Delete File Hash of the FCLPS server management is shown in FIG. 6.

3.2 FCLPS 클라이언트 모듈3.2 FCLPS Client Module

이하, 도 7을 참조하여 FCLPS 클라이언트 모듈의 작동 방법을 설명한다.Hereinafter, a method of operating the FCLPS client module will be described with reference to FIG. 7 .

① 사용자 또는 악의적인 사용자가 기밀 문서 파일을 복사 또는/및 이동시키는 것을 탐지하기 위하여, FCLPS 클라이언트 모듈은 닷넷의 시스템 함수인 FileSystemWatch로 파일의 복사 또는/및 이동 이벤트를 지속적으로 탐지한다.① In order to detect that a user or a malicious user copies or/or moves a confidential document file, the FCLPS client module continuously detects file copying or/or moving events with FileSystemWatch, a system function of .Net.

② File Copy Event 모듈에서 파일의 복사 또는/및 이동 이벤트를 탐지한다.② Detect file copy or/and move events in the File Copy Event module.

③ 파일의 복사 또는/및 이동 이벤트가 탐지된 경우, FCLPS 클라이언트 모듈이 기밀 문서 파일에 대한 해시값을 계산한다.③ When a file copy or/and move event is detected, the FCLPS client module calculates the hash value for the confidential document file.

④ FCLPS 클라이언트 모듈은 랜덤한 16자리의 문자열의 대칭키를 생성한 후, Rijndael Managed의 암호화 함수를 사용하여 파일을 암호화 한다.④ The FCLPS client module generates a symmetric key of a random 16-digit character string and encrypts the file using Rijndael Managed's encryption function.

⑤ FCLPS 클라이언트 모듈은 파일의 해시값과 암호화키를 JSON 형태로 변환후 FCLPS 서버의 공개키로 암호화한다.⑤ The FCLPS client module converts the hash value and encryption key of the file into JSON format and encrypts it with the public key of the FCLPS server.

⑥ FCLPS 클라이언트 모듈은 공개키로 암호화한 결과값을 FCLPS 서버로 전송한다.⑥ The FCLPS client module transmits the result value encrypted with the public key to the FCLPS server.

⑦ FCLPS 서버는 FCLPS 클라이언트 모듈로부터 수신한 값을 개인키로 복호화한다. 그리고 결과값을 FCLPS 클라이언트 모듈로 송신한다.⑦ The FCLPS server decrypts the value received from the FCLPS client module with the private key. Then, the result value is transmitted to the FCLPS client module.

⑧ FCLPS 클라이언트 모듈은 검증 결과값에 따라 기밀 문서 파일을 삭제 또는 복호화를 진행한다. FCLPS 클라이언트 모듈은 종료한다.⑧ The FCLPS client module deletes or decrypts confidential document files according to the verification result. The FCLPS client module terminates.

FCLPS 클라이언트 모듈은 도 8과 같이 Network Module, Files Module, Encryption & Decryption Module, Watcher Module이 필요하다.The FCLPS client module requires Network Module, Files Module, Encryption & Decryption Module, and Watcher Module as shown in FIG.

Network Module은 FCLPS 서버와 신뢰성 기반의 TCP 통신을 위한 네트워크 클래스로 구현된다.The Network Module is implemented as a network class for TCP communication based on reliability with the FCLPS server.

Files Module은 시스템 모듈로 특정 파일의 유무와 파일에 대한 해시 계산, 그리고 대칭 암호의 암호화키를 생성 위한 랜덤 함수 등으로 구성된 모듈이다.The Files Module is a system module that consists of the existence of a specific file, hash calculation for the file, and a random function for generating an encryption key for symmetric encryption.

Encryption & Decryption Module은 공개키의 암ㆍ복호화 모듈로 FCLPS 서버와의 통신에서 중간자 공격을 방지하기 위해 공개키 암호로 암ㆍ복호화한다.The Encryption & Decryption Module is a public key encryption/decryption module that encrypts/decrypts with public key cryptography to prevent man-in-the-middle attacks in communication with the FCLPS server.

Watcher Module은 시스템의 이벤트 탐지 함수로 에이전트가 설치된 PC에서 파일 복사 또는/및 이동 이벤트가 발생했을 경우, 탐지하여 기밀 문서 파일 유출 방지를 수행하는 모듈이다.The Watcher Module is a system event detection function that detects when a file copy or/and move event occurs on the PC where the agent is installed, and prevents leakage of confidential document files.

FCLPS 클라이언트 모듈의 의사코드는 도 9와 같다.The pseudo code of the FCLPS client module is shown in FIG.

사용자 또는 악의적인 사용자가 파일의 복사 또는/및 이동 이벤트를 발생시킬 경우, 유출 대상 파일을 대칭키 암호로 암호화한다. 이때 대칭키 암호의 암호화키는 랜덤한 문자열 16자리로 구성된다. 이후, FCLPS 서버로 파일의 해시값과 암호화키를 송신한다. 기밀 문서 파일 유무에 따라 일반 파일은 복호화를 진행하고 기밀 문서 파일은 삭제한다. FCLPS 클라이언트 모듈의 이벤트 결과는 도 10과 같다.When a user or a malicious user generates a file copy or/or move event, the leaked file is encrypted with a symmetric key encryption. At this time, the encryption key of the symmetric key cryptography is composed of 16 random character strings. Then, the hash value and encryption key of the file are transmitted to the FCLPS server. Depending on the existence of confidential document files, general files are decrypted and confidential document files are deleted. The event result of the FCLPS client module is shown in FIG. 10 .

3.3 FCLPS 서버3.3 FCLPS Server

FCLPS 서버는 RSAPrivateKeyGen, RSAPublic -KeyGen, TCP Listener, Dynamic Thread Create, 데이터베이스 Query Request & Response으로 5단계로 진행된다. 그리고 의사코드는 FCLPS 서버의 의사코드는 Network Module, Encryption & Decryption Module로 2개의 필수 모듈을 적용하여 작성한다.The FCLPS server proceeds in 5 steps: RSAPrivateKeyGen, RSAPublic -KeyGen, TCP Listener, Dynamic Thread Create, and Database Query Request & Response. And the pseudo code of the FCLPS server is written by applying two essential modules: Network Module, Encryption & Decryption Module.

이하, 도 11을 참조하여 FCLPS 서버의 작동 방법을 설명한다.Hereinafter, a method of operating the FCLPS server will be described with reference to FIG. 11 .

① FCLPS 서버가 처음 실행될 때, 공개키와 개인키의 키쌍을 자동으로 생성한다. 여기서, RSAPrivateKeyGen는 개인키를 생성하고 RSAPublicKeyGen는 공개키를 생성하는 함수이다.① When the FCLPS server is first executed, a key pair of public and private keys is automatically generated. Here, RSAPrivateKeyGen is a function that generates a private key and RSAPublicKeyGen is a function that generates a public key.

② FCLPS 서버에서 TCP Listener는 기밀 문서 파일의 해시값 검증을 위해 FCLPS 클라이언트 모듈의 접속을 대기한다.② In the FCLPS server, the TCP listener waits for the connection of the FCLPS client module to verify the hash value of the confidential document file.

③ FCLPS 클라이언트 모듈이 FCLPS 서버에 접속할 경우, FCLPS 서버는 다수의 네트워크 접속을 관리하기 위해 동적으로 Thread를 생성한다. 그리고 FCLPS 서버는 FCLPS 클라이언트 모듈(FCLPP)에게 공개키를 전송한다.③ When the FCLPS client module connects to the FCLPS server, the FCLPS server dynamically creates threads to manage multiple network connections. Then, the FCLPS server transmits the public key to the FCLPS client module (FCLPP).

④ FCLPS 서버는 FCLPS 클라이언트 모듈에서 수신한 파일의 해시값과 암호 화키를 JSON으로 파싱하여 데이터베이스에 질의한다.④ The FCLPS server parses the hash value and encryption key of the file received from the FCLPS client module into JSON and queries the database.

⑤ FCLPS 서버는 데이터베이스 질의 결과에 따라 기밀 문서 파일의 검증 결과를 FCLPS 클라이언트 모듈에게 송신한다.⑤ The FCLPS server transmits the verification result of the confidential document file to the FCLPS client module according to the database query result.

FCLPS 서버는 도 12와 같이 Network Module, Encryption & Decryption Module, 데이터베이스 Module, TCP Listener Module로 4개의 필수 모듈이 필요하다.As shown in FIG. 12, the FCLPS server requires four essential modules: Network Module, Encryption & Decryption Module, Database Module, and TCP Listener Module.

Network Module은 FCLPS 클라이언트 모듈과 TCP 통신을 위한 네트워크 클래스로 구현된다.The Network Module is implemented as a network class for TCP communication with the FCLPS client module.

Encryption & Decrytion Module은 공개키 암호의 암ㆍ복호화 모듈로 FCLPS 클라이언트 모듈과 암ㆍ복호화 통신을 위해 사용한다.The Encryption & Decrytion Module is a public key cryptographic encryption/decryption module used for encryption/decryption communication with the FCLPS client module.

TCP Listener Module은 FCLPS 클라이언트 모듈에서 접속하는 네트워크 소켓을 관리하는 모듈로 지속적인 TCP 네트워크를 유지한다.The TCP Listener Module is a module that manages network sockets accessed by the FCLPS client module and maintains a continuous TCP network.

데이터베이스 Module은 FCLPS 클라이언트 모듈에서 수신받은 데이터를 기반으로 데이터베이스와 연동하는 모듈이다.The database module is a module that interoperates with the database based on the data received from the FCLPS client module.

변수 RSAPrivateKeyCreate은 Cryptographic Service Provider에서 제공하는 공개키 암호의 알고리즘 함수를 사용하여 공개키 암호의 개인키를 생성하고 저장한다. 그리고 변수 RSAPublicKeyCreate는 생성한 개인키를 기반으로 RSAParameters 함수를 사용하여 공개키를 생성하고 저장한다.The variable RSAPrivateKeyCreate creates and stores the private key of public key cryptography using the algorithm function of public key cryptography provided by the Cryptographic Service Provider. And the variable RSAPublicKeyCreate creates and stores the public key using the RSAParameters function based on the generated private key.

이후 TcpListener를 통해 FCLPS 클라이언트 모듈의 접속을 대기한다. FCLPS 클라이언트 모듈에서 접속할 경우, 생성한 공개키를 전송하고 응답을 기다린다.Afterwards, it waits for the connection of the FCLPS client module through the TcpListener. When accessing from the FCLPS client module, transmit the generated public key and wait for a response.

FCLPS 서버의 의사코드는 도 13과 같다.The pseudocode of the FCLPS server is shown in FIG. 13.

악의적인 사용자 또는 일반 사용자에 의해 파일의 복사 또는/및 이동 이벤트가 발생할 때, FCLPS 클라이언트 모듈은 파일에 대한 해시값과 대칭키 암호의 암호화 키를 FCLPS 서버에게 송ㆍ수신한다. FCLPS 서버는 수신받은 정보를 이용하여 데이터베이스에게 질의요청을 하고, 기밀 문서 파일 유무를 검증한 결과를 FCLPS 클라이언트 모듈에게 송신한다.When a file copy or/or move event occurs by a malicious user or a general user, the FCLPS client module transmits and receives the hash value of the file and the encryption key of the symmetric key encryption to and from the FCLPS server. The FCLPS server makes a query request to the database using the received information and transmits the result of verifying the existence of confidential document files to the FCLPS client module.

FCLPS 서버의 공개키 암호의 공개키 및 개인키는 FCLPS 클라이언트 모듈 (FCLPP)과의 통신에서 중간자 공격을 방지하기 위해 1,024비트의 암ㆍ 복호화 키를 생성한다. FCLPS 클라이언트 모듈 (FCLPP)이 FCLPS 서버로 최초로 접속할 때, FCLPS 서버의 공개키를 자동으로 송ㆍ수신하고 FCLPS 서버의 개인키로 FCLPS 클라이언트 모듈의 데이터를 암ㆍ복호화한다.The public and private keys of the public key encryption of the FCLPS server generate a 1,024-bit encryption/decryption key to prevent man-in-the-middle attacks in communication with the FCLPS client module (FCLPP). When the FCLPS client module (FCLPP) connects to the FCLPS server for the first time, it automatically transmits and receives the public key of the FCLPS server and encrypts/decrypts the data of the FCLPS client module with the private key of the FCLPS server.

FCLPS 클라이언트 모듈이 FCLPS 서버에게 송신한 파일에 대한 해시값의 정보는 FileHash의 변수값으로 설정하고 파일 암호화에 사용된 키값은 FileKey의 변수값으로 설정된다. FCLPS 서버의 송ㆍ수신 결과는 도 14와 같다.The hash value information about the file transmitted by the FCLPS client module to the FCLPS server is set as a variable value of FileHash, and the key value used for file encryption is set as a variable value of FileKey. The results of transmission and reception of the FCLPS server are shown in FIG. 14 .

3.4 데이터베이스3.4 Database

데이터베이스는 FCLPS의 기밀 파일의 해시값과 경로를 저장하기 위해서 MySQL v8.0.24를 사용하였다.The database used MySQL v8.0.24 to store the hash value and path of FCLPS confidential files.

FCLPS의 데이터베이스명은 "fclps_db"이고 테이블 이름은 "file_info"이다. "file_info"의 컬럼명은 No, File_Path, File_Hash, File_Date이고 문자열 포맷은 utf-8 unicode이다.The database name of FCLPS is "fclps_db" and the table name is "file_info". The column names of "file_info" are No, File_Path, File_Hash, File_Date, and the string format is utf-8 unicode.

그리고 컬럼들의 요소 중 No는 AUTO_INCREMENT 속성으로 테이블의 행이 추가될 때마다 값이 자동으로 증가하여 기밀 파일의 순번을 지정하고, File_Path, File_Hash는 파일의 경로, 파일의 해시값으로 최대 255 문자열까지 지원한다.And among the elements of the columns, No is the AUTO_INCREMENT attribute, and the value is automatically increased whenever a table row is added to specify the order of confidential files. do.

그리고 File_date는 관리자가 기밀 파일을 데이터베이스로 해시값을 저장할 때, 관리자가 기밀 문서 파일의 등록한 시점을 확인하기 위해 현재 날짜와 시간을 저장한다. 데이터베이스의 SQL Info는 도 15와 같다.And File_date stores the current date and time to confirm the time when the manager registered the confidential document file when the manager stores the hash value of the confidential file in the database. SQL Info of the database is shown in FIG. 15 .

FCLPS의 데이터베이스 결과는 도 16과 같다. FCLPS 서버 매니지먼트에서 기밀 파일을 선택하고 데이터베이스로 등록요청을 한경우, No, File_Path, File_Hash, File_date를 저장한다.The database results of FCLPS are shown in FIG. 16 . When a confidential file is selected in FCLPS server management and a registration request is made to the database, No, File_Path, File_Hash, and File_date are saved.

No는 기밀 파일의 순번이고 File_Path는 기밀 파일의 절대 경로이다.No is the sequence number of the confidential file and File_Path is the absolute path of the confidential file.

그리고 File_Hash는 기밀 파일의 해시값, File_date는 기밀 파일의 저장 날짜이다. 테이블의 컬럼 요소들은 유니코드를 지원하여 다양한 문자로 데이터베이스에 저장할 수 있다.And File_Hash is the hash value of the confidential file, and File_date is the storage date of the confidential file. Column elements of the table support Unicode and can be stored in the database in various characters.

4. 분석4. Analysis

일반 기업에서는 기밀 파일 유출을 방지하기 위해 EDLP를 사용한다.General enterprises use EDLP to prevent the leakage of confidential files.

EDLP는 모든 파일에 대한 이벤트를 탐지 및 추적하기 때문에 많은 리소스를 소모한다.EDLP consumes a lot of resources because it detects and tracks events for every file.

반면, 리소스 소모를 줄이기 위한 본 발명의 실시 예에서는 사전에 지정한 기밀 파일 대한 해시값을 서버에 저장하고 이벤트 발생 시 해시값을 비교 판단 한 뒤 암호화에 대한 복호화 작업 및 삭제를 진행한다.On the other hand, in an embodiment of the present invention for reducing resource consumption, a hash value for a previously specified confidential file is stored in the server, and when an event occurs, the hash value is compared and determined, and then encryption and decryption and deletion are performed.

이때 암호화 작업 중 시스템에서는 CPU에 대한 병목현상이 발생하기 때문에 암호화 작업 소요 시간 측정과 병목현상의 오차범위에 대해 분석한다.At this time, since a bottleneck for the CPU occurs in the system during encryption, the time required for encryption is measured and the error range of the bottleneck is analyzed.

4.1. 종래 기술과 정성적 비교4.1. Qualitative comparison with prior art

기업에서 기밀 파일 유출 방지를 위해 사용하는 여러 EDLP와 제안하는 FCLPS의 효율성에 대해 비교한다.We compare the efficiency of several EDLPs and the proposed FCLPS, which are used by companies to prevent leakage of confidential files.

국내ㆍ외 사용 중인 EDLP는 Secure genie사의 Gradius DLP, Symantec사의 Symantec DLP, WaterWall사의 WaterWall DLP, NicsTech사의 SafePC Enterprise, Comtrue Technologies 사의 Sherlock Holmes PC Information Security가 있다.EDLPs in use at home and abroad include Secure Genie's Gradius DLP, Symantec's Symantec DLP, WaterWall's WaterWall DLP, NicsTech's SafePC Enterprise, and Comtrue Technologies' Sherlock Holmes PC Information Security.

이 중에서 파일 내에 키워드를 기반으로 한 탐지 방식은 WaterWall DLP, Gradius DLP이고 파일 내에 컨텐츠 기반으로 탐지하는 방식은 SafePC Enterprise, Symantec DLP, Sherlock Holmes PC Information Security이다.Among them, keyword-based detection methods in files are WaterWall DLP and Gradius DLP, and content-based detection methods in files are SafePC Enterprise, Symantec DLP, and Sherlock Holmes PC Information Security.

파일에 대한 키워드 기반의 탐지 방식은 대상 PC에 에이전트가 설치되면 시스템 스케줄링으로 일정 시간마다 자동 스캔하여 "핵심", "기밀", "내부", "대외비" 등의 기업 내에 중요한 키워드가 파일 내부 데이터에 포함되어 있으면 이벤트를 차단한다.In the keyword-based detection method for files, when an agent is installed on the target PC, it is automatically scanned at regular intervals by system scheduling so that important keywords within the company, such as “core”, “confidential”, “internal”, and “confidential”, are detected in the internal data of the file. If included in , the event is blocked.

그리고 컨텐츠 기반으로 탐지하는 방식은 통제 대상 PC에 에이전트를 설치하고 시스템을 자동 스캔하여 파일 내부 데이터에 특정 키워드나 이미지 속 단어를 분석하여 기밀 관련 문자열이 포함되어 있으면 이벤트를 차단한다.In addition, the content-based detection method installs an agent on the controlled PC, automatically scans the system, analyzes specific keywords or words in images in the data inside the file, and blocks the event if confidential related strings are included.

기밀 파일 유출 방지를 위해 종래 기술에 따른 DLP 에이전트 실행시에는 과도한 리소스사용으로 인해 시스템 부하가 발생한다.When a DLP agent according to the prior art is executed to prevent leakage of confidential files, system load is generated due to excessive use of resources.

DLP 시스템은 기업 내의 모든 파일을 일정 시간마다 스캔하고 파일 내의 키워드 또는 이미지속 키워드가 포함되어 있으면 이벤트를 차단한다. 하지만 기업 내의 모든 파일을 분석하고 차단하는 것은 비효율적이므로 관리자에 의해 기밀 문서 파일을 사전 선별하여 관리하는 것이 효율적이다. 또한 기밀 문서 파일의 특성상 인가된 사용자만 접근이 가능하므로 DLP 에이전트에서도 동일하게 적용된다.The DLP system scans all files in the company at regular intervals and blocks events if keywords in files or keywords in images are included. However, since it is inefficient to analyze and block all files within a company, it is efficient to select and manage confidential document files in advance by administrators. Also, due to the nature of confidential document files, only authorized users can access them, so the same applies to DLP agents.

본 발명의 실시 예에 따른 탐지 방식은 파일 내에 키워드나 문구를 추출하지 않고 파일 자체의 해시값을 기반으로 서버를 통해 검증 후 판별한다. 본 발명의 실시 예에 따른 탐지 방식은 선택적 이벤트를 이용한 해시값 기반의 탐지 방식이다.The detection method according to an embodiment of the present invention does not extract keywords or phrases from files, but verifies and determines through a server based on the hash value of the file itself. A detection method according to an embodiment of the present invention is a hash value-based detection method using a selective event.

본 발명의 실시 예에서는 시스템의 부하를 최소화하기 위해 시스템 전체를 스캔하지 않고 실시간으로 특정 이벤트에 대해서만 모니터링하고 서버에서 검증한다.In an embodiment of the present invention, only specific events are monitored in real time and verified in the server without scanning the entire system in order to minimize the load on the system.

FCLPS에서는 이벤트에 대한 모니터링을 선택적으로 하여 시스템 부하를 최소화하고, 파일을 확장자로만 분류하는 것이 아닌 특정 시그니처로 판별하여 정확성을 개선했다.FCLPS minimizes system load by selectively monitoring events, and improves accuracy by identifying files by specific signatures instead of classifying files only by extension.

그리고 기밀 문서 파일로 추측되는 파일 내에 문자열이나 이미지 속 문자열 추출을 통한 판별이 아닌 기밀 문서 파일 자체의 해시값을 사전 등록한 해시값과 비교하여 판별하는 것으로 기밀성을 개선하였다.In addition, confidentiality is improved by comparing the hash value of the confidential document file itself with the pre-registered hash value, rather than determining by extracting a string in a file or an image in a file that is assumed to be a confidential document file.

4.2. 암호화 소요 시간4.2. encryption time

기밀 문서 파일 유출 방지를 위해 FCLPS의 클라이언트 안에 있는 Encryption & Decryption Module에서 문서 파일을 암호화를 할 경우, 높은 CPU 사용으로 병목현상이 발생하고 시스템 손상을 최소화하기 위해 CPU 속도와 전압을 강제로 낮추기 때문에 성능이 저하된다. 따라서 파일 종류 및 크기에 따라 암호화할 때 소요 시간을 분석한다.When encrypting document files in the Encryption & Decryption Module in the FCLPS client to prevent leakage of confidential document files, bottlenecks occur due to high CPU usage, and CPU speed and voltage are forcibly lowered to minimize system damage. this is lowered Therefore, the time required for encryption is analyzed according to the file type and size.

4.2.1 파일 종류별 암호화 소요 시간4.2.1 Encryption time by file type

파일의 종류마다 시그니처가 다르고 모든 기밀문서 파일의 크기가 다르기 때문에 암호화할 때 소요 시간을 파일의 종류와 크기별로 측정하였다. FCLPS를 이용하여 파일 종류별로 암호화할 때 소요 시간을 계산한다. 기밀 문서들은 대부분 문서 파일이므로, 문서 파일의 암호화 소요 시간을 분석하기 위해 PDF, HWP, DOC, PPT, XLS 확장자를 대상으로 측정하였다.Since each file type has a different signature and all confidential document files have different sizes, the time required for encryption was measured for each file type and size. Calculate the time required for encryption by file type using FCLPS. Since most confidential documents are document files, PDF, HWP, DOC, PPT, and XLS extensions were measured to analyze the time required for encryption of document files.

FCLPS 클라이언트 모듈 내의 모듈인 Encryption & Decryption Module 이용하여 기밀 문서 파일을 암호화한다.Confidential document files are encrypted using the Encryption & Decryption Module, a module within the FCLPS client module.

문서 파일을 암호화하기 위해 랜덤한 문자열 16자리 대칭키를 생성한다. 그리고 대칭키를 이용하여 각각 100개의 PDF, HWP, DOC, PPT, XLS 문서 파일을 총 10 round로 암호화하고 각 round는 동일한 과정을 반복한다. 여기서 1 round는 100개의 파일을 한 번 암호화할 때 소요되는 시간이다.Generates a symmetric key of 16 digits of random string to encrypt the document file. Then, using a symmetric key, 100 PDF, HWP, DOC, PPT, XLS document files are encrypted in a total of 10 rounds, and the same process is repeated for each round. Here, 1 round is the time required to encrypt 100 files once.

라운드마다 PDF, HWP, DOC, PPT, XLS 문서 파일을 암호화할 때 소요 시간은 .Net의 시간 측정 클래스인 Stopwatch 함수에서 Start와 Reset 메서드를 이용하고 결과값을 Milliseconds로 계산한다. Stopwatch 함수를 이용하여 각 라운드마다 암호화할 때 소요 시간을 계산한다.The time taken to encrypt PDF, HWP, DOC, PPT, and XLS document files per round is calculated by using the Start and Reset methods in the Stopwatch function, a time measurement class of .Net, and calculating the result in Milliseconds. The Stopwatch function is used to calculate the amount of time required for encryption in each round.

PDF, HWP, DOC, PPT, XLS의 문서 파일을 각각 100개씩 암호화할 때 소요 시간을

Figure pat00001
, 라운드 횟수를
Figure pat00002
, 전체 라운드의 평균 시간을
Figure pat00003
이라 한다. 전체 라운드의 평균 시간을 초 단위로 표현하기 위해서 천장함수를 사용한다. 이와 같은 계산은 수학식 1과 같다.Reduce the time required to encrypt 100 PDF, HWP, DOC, PPT, and XLS document files each.
Figure pat00001
, the number of rounds
Figure pat00002
, the average time for all rounds
Figure pat00003
It is called The ceiling function is used to express the average time of all rounds in seconds. Such calculation is as in Equation 1.

Figure pat00004
Figure pat00004

수학식 1에 의해 PDF, HWP, DOC, PPT, XLS의 문서 파일을 암호화할 때 소요 시간에 대한 평균을 계산한 결과, PDF는 5분 23초, HWP는 5분 40초, DOC는 5분 29초, PPT는 5분 22초, XLS는 5분 43초로 측정되었다. 문서 파일을 10 round 암호화할 때 소요 시간은 최소와 최대의 차이가 평균적으로 21초이다.As a result of calculating the average of the time taken to encrypt document files of PDF, HWP, DOC, PPT, and XLS by Equation 1, PDF was 5 minutes and 23 seconds, HWP was 5 minutes and 40 seconds, and DOC was 5 minutes and 29 seconds. Seconds, PPT was measured at 5 minutes and 22 seconds, and XLS at 5 minutes and 43 seconds. When encrypting a document file for 10 rounds, the difference between the minimum and maximum time required is 21 seconds on average.

문서 파일의 종류는 PDF, HWP, DOC, PPT, XLS이고 크기가 1MB, 3MB, 5MB, 10MB, 15MB인 문서 파일을 암호화할 때 소요 시간을 측정한 결과는 표 1과 같다.The types of document files are PDF, HWP, DOC, PPT, and XLS, and the results of measuring the time required to encrypt document files of 1MB, 3MB, 5MB, 10MB, and 15MB in size are shown in Table 1.

Type
Size
Type
Size
PDFPDF HWPHWP DOCDOC PPTPPT XLSXLS
1MB1MB 6969 6767 6666 6868 6464 3MB3MB 138138 140140 142142 142142 139139 5MB5MB 212212 212212 212212 221221 250250 10MB10MB 430430 515515 491491 414414 431431 15MB15MB 762762 761761 733733 764764 827827 AverageAverage 323323 340340 329329 322322 343343

(단위 : 초)(unit: seconds)

4.2.2 파일 크기별 암호화 소요 시간4.2.2 Encryption time by file size

파일 종류별과 동일한 방법을 이용하여 각 라운드에서 암호화할 때 소요 시간을

Figure pat00005
, 라운드 횟수를
Figure pat00006
, 전체 라운드의 평균 시간을
Figure pat00007
라 한다. 이와 같은 계산은 수학식 2와 같다.The time required for encryption in each round is reduced using the same method as for each file type.
Figure pat00005
, the number of rounds
Figure pat00006
, the average time for all rounds
Figure pat00007
say Such calculation is as shown in Equation 2.

Figure pat00008
Figure pat00008

수학식 2에 의해 PDF, HWP, DOC, PPT, XLS의 문서 파일을 암호화할 때 소요 시간에 대한 평균 결과 1MB는 1분 7초, 3MB는 2분 21초, 5MB는 3분 42초, 10MB는 7분 37초, 15MB는 12분 50초이다. 문서 파일을 10 round 암호화할 때 소요 시간의 최소와 최대 차이는 1MB는 5초, 3MB는 4초, 5MB는 38초, 10MB는 101초, 15MB는 94초이다.According to Equation 2, the average result for the time taken to encrypt document files of PDF, HWP, DOC, PPT, and XLS is 1 minute and 7 seconds for 1MB, 2 minutes and 21 seconds for 3MB, 3 minutes and 42 seconds for 5MB, and 3 minutes and 42 seconds for 10MB. 7 minutes 37 seconds, 15MB is 12 minutes 50 seconds. When encrypting a document file for 10 rounds, the minimum and maximum time difference is 5 seconds for 1MB, 4 seconds for 3MB, 38 seconds for 5MB, 101 seconds for 10MB, and 94 seconds for 15MB.

문서 파일 PDF, HWP, DOC, PPT, XLS의 크기가 각각 1MB, 3MB, 5MB, 10MB, 15MB일 때, 문서 파일을 암호화하는 소요 시간을 측정한 결과는 표 2와 같다.When the document file PDF, HWP, DOC, PPT, and XLS sizes are 1MB, 3MB, 5MB, 10MB, and 15MB, respectively, the results of measuring the time required to encrypt the document file are shown in Table 2.

Size
Type
Size
Type
1MB1MB 3MB3MB 5MB5MB 10MB10MB 15MB15MB
PDFPDF 6969 138138 212212 430430 762762 HWPHWP 6767 140140 212212 515515 761761 DOCDOC 6666 142142 212212 491491 733733 PPTPPT 6868 142142 221221 414414 764764 XLSXLS 6464 139139 250250 431431 827827 AverageAverage 6767 141141 222222 457457 770770

(단위 : 초)(unit: seconds)

4.2.3 병목현상4.2.3 Bottlenecks

기밀 문서 파일 유출 방지를 위해 FCLPS의 클라이언트 안에 있는 Encryption & Decryption Module에서 대용량의 문서 파일을 암호화를할 경우, 높은 CPU 사용으로 파일 암호화 소요 시간이 평균 암호화 소요 시간보다 증가하는 병목현상이 발생했다.When encrypting a large document file in the Encryption & Decryption Module in the FCLPS client to prevent the leakage of confidential document files, a bottleneck occurred in which the time required for file encryption increased than the average time required for encryption due to high CPU usage.

따라서 암호화 소요 시간을 측정하기 위한 암호화 반복 횟수를 100회로 변경하고 대용량 파일인 10MB, 15MB를 대상으로 병목현상이 발생한 구간을 분석한다.Therefore, the number of repetitions of encryption to measure the required encryption time is changed to 100, and the section where the bottleneck occurs is analyzed for large files of 10MB and 15MB.

첫 번째. 10MB 문서 파일의 병목현상에 대한 분석은 다음과 같다.first. The bottleneck analysis of the 10MB document file is as follows.

파일 종류별과 동일한 방법으로 각 라운드에서 암호화할 때 소요 시간을 소요 시간을

Figure pat00009
, 라운드 횟수를
Figure pat00010
, 전체 라운드의 평균 시간을
Figure pat00011
라 한다. 전체 라운드의 평균 시간을 초 단위로 표현하기 위해서 천장함수를 사용한다.In the same way as for each file type, the time required for encryption in each round is
Figure pat00009
, the number of rounds
Figure pat00010
, the average time for all rounds
Figure pat00011
say The ceiling function is used to express the average time of all rounds in seconds.

이와 같은 계산은 수학식 3과 같다.Such calculation is as in Equation 3.

Figure pat00012
Figure pat00012

수학식 3은 수학식 1에서 라운드 횟수(

Figure pat00013
) 10번을 100번으로 변경하여 전체 라운드의 평균 시간(
Figure pat00014
)을 계산하는 수식이다.Equation 3 is the number of rounds in Equation 1 (
Figure pat00013
) by changing 10 rounds to 100 rounds, the average time for all rounds (
Figure pat00014
) is the formula for calculating

10MB 문서 파일의 병목현상 측정결과로 평균값이 가장 낮은 HWP는 8라운드의 4,300초를 제외하고 나머지 1라운드부터 7라운드까지 4,000초, 9라운드부터 10라운드까지 4,000초로 일정하고 평균값이 가장 높은 DOC 는 6라운드의 5,800초, 7라운드의 5,800초를 제외한 나머지 라운드는 병목현상이 발생하여 문서 파일을 암호화하는 소요 시간이 일정하지 않다.As a result of measuring the bottleneck of the 10MB document file, the HWP with the lowest average value was constant at 4,000 seconds from rounds 1 to 7 and 4,000 seconds from rounds 9 to 10 except for 4,300 seconds in round 8, and the DOC with the highest average value was 6 Except for 5,800 seconds of round and 5,800 seconds of round 7, bottlenecks occur in the remaining rounds, and the time required to encrypt document files is not constant.

10MB 문서 파일의 병목현상 측정 결과는 도 17과 같다.The bottleneck measurement result of the 10MB document file is shown in FIG. 17 .

두 번째. 15MB 문서 파일의 병목현상에 대한 분석은 다음과 같다.second. The bottleneck analysis of the 15MB document file is as follows.

수학식 3과 동일한 방법을 이용하여 15MB인 문서 파일을 100번 암호화하여 병목현상 구간을 분석한다.Using the same method as in Equation 3, a 15MB document file is encrypted 100 times and the bottleneck section is analyzed.

15MB 문서 파일의 병목현상 결과로 평균값이 가장 낮은 PDF는 1라 운드의 5,810초, 3라운드의 5,790초, 6라운드의 5,810초를 제외하고 나머지 라운드는 5,800초로 일정하다. 그리고 평균값이 가장 높은 XLS는 5 라운드의 7,200초, 9라운드의 7,200초를 제외한 나머지 라운드는 병목현 상이 발생하여 문서 파일을 암호화하는 소요 시간이 일정하지 않다.As a result of the bottleneck of the 15MB document file, the PDF with the lowest average value is constant at 5,810 seconds for round 1, 5,790 seconds for round 3, and 5,810 seconds for round 6, and 5,800 seconds for the remaining rounds. In addition, the XLS with the highest average value has a bottleneck in all other rounds except for 7,200 seconds in round 5 and 7,200 seconds in round 9, so the time required to encrypt document files is not constant.

15MB 문서 파일의 병목현상 측정 결과는 도 18와 같다.The bottleneck measurement result of the 15MB document file is shown in FIG. 18 .

Claims (5)

사용자기기에서 파일에 대한 복사 또는 이동 이벤트가 발생하는지 탐지하는 단계;
상기 복사 또는 이동 이벤트가 탐지된 경우, 상기 파일의 해시값을 계산하는 단계;
상기 파일에 대해 무작위의 문자열을 대칭키로 생성하는 단계;
상기 파일을 상기 대칭키로 암호화하는 단계;
상기 파일의 해시값과 대칭키를 서버로 송신하는 단계;
상기 서버로부터 기밀 파일 여부를 수신받는 단계;
상기 파일이 기밀 파일인 경우: 상기 파일을 삭제하는 단계; 및
상기 파일이 일반 파일인 경우: 상기 파일을 복호화하는 단계;를 포함하는, 파일 복사 유출 방지 클라이언트 제어 방법
Detecting whether a copy or move event for a file occurs in a user device;
calculating a hash value of the file when the copy or move event is detected;
generating a random character string as a symmetric key for the file;
encrypting the file with the symmetric key;
Transmitting the hash value and the symmetric key of the file to a server;
Receiving whether or not a confidential file is received from the server;
If the file is a confidential file: deleting the file; and
If the file is a general file: decrypting the file; file copy leakage prevention client control method including
청구항 1항에 있어서,
상기 파일의 해시값과 대칭키를 서버로 송신하는 단계는:
상기 파일의 해시값과 대칭키를 JSON 형태로 변환하는 단계;
상기 서버의 공개키로 [JSON 형태의 파일의 해시값과 대칭키]를 암호화하는 단계; 및
상기 서버로, [암호화된 JSON 형태의 파일의 해시값과 대칭키]를 송신하는 단계;로 구성되는, 파일 복사 유출 방지 클라이언트 제어 방법
The method of claim 1,
The step of sending the hash value and symmetric key of the file to the server is:
converting the hash value and the symmetric key of the file into JSON format;
Encrypting [hash value and symmetric key of a file in JSON format] with the public key of the server; and
To the server, transmitting [hash value and symmetric key of the file in encrypted JSON format];
서버의 최초 세팅 시, 서버의 공개키 및 개인키를 생성하는 단계;
클라이언트의 접속을 대기하는 단계;
상기 클라이언트에게 공개키를 송신하는 단계;
상기 클라이언트로부터 파일의 해시값과 대칭키를 수신하는 단계;
상기 파일의 해시값과 대칭키를 데이터베이스에 질의하는 단계; 및
데이터베이스 질의 결과에 따라 기밀 파일 여부를 클라이언트에 송신하는 단계;를 포함하는, 파일 복사 유출 방지 서버 제어 방법
generating a public key and a private key of the server when initially setting the server;
waiting for a client to connect;
sending a public key to the client;
Receiving a hash value and a symmetric key of a file from the client;
querying a database for a hash value and a symmetric key of the file; and
A file copy leakage prevention server control method comprising the;
청구항 3항에 있어서,
상기 클라이언트의 접속을 대기하는 단계는:
클라이언트가 서버에 접속한 경우, 동적으로 스레드를 생성하는 단계;를 포함하고,
상기 파일의 해시값과 대칭키를 데이터베이스에 질의하는 단계는:
상기 클라이언트로부터 수신한 [암호화된 JSON 형태의 파일의 해시값과 대칭키]를 상기 서버의 개인키로 복호화하는 단계; 및
복호화된 JSON 형태의 파일의 해시값과 대칭키를 파싱하여 데이터베이스에 질의하는 단계;로 구성되고,
상기 데이터베이스 질의 결과에 따라 기밀 파일 여부를 클라이언트에 송신하는 단계는:
상기 기밀 파일 여부에 대한 결과를 클라이언트의 공개키로 암호화하여 클라이언트에 송신하는 단계;를 포함하는, 파일 복사 유출 방지 서버 제어 방법
The method of claim 3,
The step of waiting for the connection of the client is:
Dynamically creating a thread when the client accesses the server;
The step of querying the database for the hash value and symmetric key of the file is:
Decrypting the [hash value and symmetric key of the encrypted JSON-type file] received from the client with the private key of the server; and
Parsing the hash value and symmetric key of the decrypted JSON format file and querying the database;
The step of sending whether or not a confidential file is a confidential file according to the database query result to the client:
File copy leakage prevention server control method including; encrypting the result of whether the confidential file is determined by using the public key of the client and transmitting the result to the client.
클라이언트, 서버, 매니지먼트 모듈 및 데이터베이스를 포함하는, 파일 복사 유출 방지 시스템에 있어서:
청구항 1항 및 2항의 파일 복사 유출 방지 클라이언트 제어 방법, 청구항 3항 및 4항의 파일 복사 유출 방지 서버 제어 방법 중 어느 한 항의 제어 방법을 이용하는, 파일 복사 유출 방지 시스템
In the file copy leak prevention system, including a client, server, management module and database:
File copy leakage prevention system using any one of the file copy leakage prevention client control method of claims 1 and 2 and the file copy leakage prevention server control method of claims 3 and 4
KR1020210190479A 2021-12-29 2021-12-29 File copy leakage prevention method KR102621657B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210190479A KR102621657B1 (en) 2021-12-29 2021-12-29 File copy leakage prevention method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210190479A KR102621657B1 (en) 2021-12-29 2021-12-29 File copy leakage prevention method

Publications (2)

Publication Number Publication Date
KR20230100850A true KR20230100850A (en) 2023-07-06
KR102621657B1 KR102621657B1 (en) 2024-01-04

Family

ID=87185958

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210190479A KR102621657B1 (en) 2021-12-29 2021-12-29 File copy leakage prevention method

Country Status (1)

Country Link
KR (1) KR102621657B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040070382A (en) * 2003-02-03 2004-08-09 (주)디지탈센스 System and method for preventing outflow of document
KR20180074221A (en) * 2016-12-23 2018-07-03 한국인터넷진흥원 System for sharing profiling information based on rapi and method thereof
KR20200057900A (en) * 2018-11-16 2020-05-27 (주) 더존비즈온 Ciphering system and method for processing private information

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040070382A (en) * 2003-02-03 2004-08-09 (주)디지탈센스 System and method for preventing outflow of document
KR20180074221A (en) * 2016-12-23 2018-07-03 한국인터넷진흥원 System for sharing profiling information based on rapi and method thereof
KR20200057900A (en) * 2018-11-16 2020-05-27 (주) 더존비즈온 Ciphering system and method for processing private information

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
신규진, "하둡 기반의 사용자 행위 분석을 통한 내부정보 유출방지 시스템", 대전대학교, (2018).

Also Published As

Publication number Publication date
KR102621657B1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
US11089046B2 (en) Systems and methods for identifying and mapping sensitive data on an enterprise
US11082443B2 (en) Systems and methods for remote identification of enterprise threats
US11907366B2 (en) Introspection driven by incidents for controlling infiltration
US8166313B2 (en) Method and apparatus for dump and log anonymization (DALA)
US7748042B2 (en) Security vulnerability determination in a computer system
US20160182534A1 (en) Reliable selection of security countermeasures
US20070061885A1 (en) System and method for managing security testing
CN110889130B (en) Database-based fine-grained data encryption method, system and device
US20160036812A1 (en) Database Queries Integrity and External Security Mechanisms in Database Forensic Examinations
KR101620601B1 (en) Method for conducting security check, Computer program for the same, and Recording medium storing computer program for the same
KR102338998B1 (en) System and method for checking log integrity and proving forgery and alteration activity of log through the same
KR102621657B1 (en) File copy leakage prevention method
EP3704844B1 (en) Data generation for data protection
US9489158B1 (en) Print logging for use with terminal emulators
Murthy et al. Database Forensics and Security Measures to Defend from Cyber Threats
CN112118241B (en) Audit penetration testing method, testing node server, management server and system
CN111814143B (en) Method and system for dynamically monitoring SQL injection
CN115774581A (en) Method and related apparatus for executing robot feet
CN116633594B (en) Flamingo gateway security system
Popescu The influence of vulnerabilities on the information systems and methods of prevention
CN113037724B (en) Method and device for detecting illegal access
Archana Devi et al. Prevention and detection of SQL injection attacks using generic decryption
KR102611451B1 (en) Intelligent gateway-based personal information impact assessment automatic management system
WO2023160010A1 (en) Security detection method and apparatus, electronic device and storage medium
CN117150453B (en) Network application detection method, device, equipment, storage medium and program product

Legal Events

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