KR102621657B1 - File copy leakage prevention method - Google Patents

File copy leakage prevention method Download PDF

Info

Publication number
KR102621657B1
KR102621657B1 KR1020210190479A KR20210190479A KR102621657B1 KR 102621657 B1 KR102621657 B1 KR 102621657B1 KR 1020210190479 A KR1020210190479 A KR 1020210190479A KR 20210190479 A KR20210190479 A KR 20210190479A KR 102621657 B1 KR102621657 B1 KR 102621657B1
Authority
KR
South Korea
Prior art keywords
file
server
hash value
fclps
client module
Prior art date
Application number
KR1020210190479A
Other languages
Korean (ko)
Other versions
KR20230100850A (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

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

Abstract

본 발명은 파일 복사 유출 방지 방법에 관한 것으로, 더 상세하게는 기밀 파일 보호를 위해 기밀 파일의 허가받지 않은 복사 또는/및 이동을 차단하면서도 클라이언트 컴퓨터의 처리 부하를 최소화하는, 파일 복사 유출 방지 방법에 관한 것이다.
본 발명의 실시 예에 따르면, 사용자기기에서 파일에 대한 복사 또는 이동 이벤트가 발생하는지 탐지하는 단계; 상기 복사 또는 이동 이벤트가 탐지된 경우, 상기 파일의 해시값을 계산하는 단계; 상기 파일에 대해 무작위의 문자열을 대칭키로 생성하는 단계; 상기 파일을 상기 대칭키로 암호화하는 단계; 상기 파일의 해시값과 대칭키를 서버로 송신하는 단계; 상기 서버로부터 기밀 파일 여부를 수신받는 단계; 상기 파일이 기밀 파일인 경우: 상기 파일을 삭제하는 단계; 및 상기 파일이 일반 파일인 경우: 상기 파일을 복호화하는 단계;를 포함하는, 파일 복사 유출 방지 클라이언트 제어 방법을 제공한다.
The present invention relates to a method for preventing file copy leakage, and more specifically, to a method for preventing file copy leakage, which minimizes the processing load on client computers while blocking unauthorized copying and/or movement of confidential files to protect confidential files. 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 string as a symmetric key for the file; encrypting the file with the symmetric key; transmitting the hash value and symmetric key of the file to a server; Receiving whether or not a confidential file is confidential from the server; If the file is a confidential file: deleting the file; and if the file is a normal file: decrypting the file.

Description

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

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

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

산업기밀 유출은 국가와 기업의 경쟁력은 물론 경제적으로도 심각한 피해를 초래할 수 있다. 대부분 기업들은 기밀 유출을 막기 위해 따로 조직과 인력, 그리고 예산이 부족하기 때문에 기밀 유출에 대응하기 힘들다. 특히 군사기밀 유출은 단 한 번이라도 발생하면 국방 안보뿐만 아니라 국가안보에도 영향을 미칠 수 있기 때문에 군사기밀의 외부 노출을 철저하게 차단할 필요가 있다.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 separate organizations, manpower, and budget to prevent confidential leaks. In particular, it is necessary to thoroughly block external exposure of military secrets because even a single leak of military secrets can affect not only national defense security but also national security.

이러한 기밀 유출을 방지하기 위한 기술인 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 leaks, consists of: Detect Agent, Server, and Database. The Detect Agent function detects and blocks user event activity according to policy and transmits event activity information to the server. The server function stores event activity information detected by the Detect Agent in the database. The function of the database stores information about the event activities of the Detect Agent and transmits the results of the Detect Agent information to the server. The configuration diagram of EDLP is shown in Figure 19.

신규진, “하둡 기반의 사용자 행위 분석을 통한 내부정보 유출방지 시스템”, 대전대학교, (2018).Shin Gyu-jin, “Internal information leak prevention system through Hadoop-based user behavior analysis”, Daejeon University, (2018).

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

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

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

그리고, 서버의 최초 세팅 시, 서버의 공개키 및 개인키를 생성하는 단계; 클라이언트의 접속을 대기하는 단계; 상기 클라이언트에게 공개키를 송신하는 단계; 상기 클라이언트로부터 파일의 해시값과 대칭키를 수신하는 단계; 상기 파일의 해시값과 대칭키를 데이터베이스에 질의하는 단계; 및 데이터베이스 질의 결과에 따라 기밀 파일 여부를 클라이언트에 송신하는 단계;를 포함하는, 파일 복사 유출 방지 서버 제어 방법을 제공한다.And, upon initial setup of the server, generating the server's public key and private key; Waiting for a client to connect; transmitting a public key to the client; Receiving a hash value and a symmetric key of a file from the client; querying a database for the hash value and symmetric key of the file; and transmitting to the client whether or not the file is confidential according to the results of the database query. It provides a server control method for preventing file copy leakage.

아울러, 상기 클라이언트의 접속을 대기하는 단계는: 클라이언트가 서버에 접속한 경우, 동적으로 스레드를 생성하는 단계;를 포함하고, 상기 파일의 해시값과 대칭키를 데이터베이스에 질의하는 단계는: 상기 클라이언트로부터 수신한 [암호화된 JSON 형태의 파일의 해시값과 대칭키]를 상기 서버의 개인키로 복호화하는 단계; 및 복호화된 JSON 형태의 파일의 해시값과 대칭키를 파싱하여 데이터베이스에 질의하는 단계;로 구성되고, 상기 데이터베이스 질의 결과에 따라 기밀 파일 여부를 클라이언트에 송신하는 단계는: 상기 기밀 파일 여부에 대한 결과를 클라이언트의 공개키로 암호화하여 클라이언트에 송신하는 단계;를 포함할 수 있다.In addition, the step of waiting for the client to connect includes: dynamically creating a thread when the client connects to the server, and the step of querying the database for the hash value and symmetric key of the file includes: the client Decrypting [the hash value and symmetric key of the encrypted JSON format file] received from 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 transmitting to the client whether the file is confidential according to the database query result is: Result of whether the file is confidential. It may include encrypting with the client's public key and transmitting it to the client.

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

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

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

그리고, 기밀 문서 파일로 추측되는 파일 내에 문자열이나 이미지 속 문자열 추출을 통한 판별이 아닌 파일 자체의 해시값을 사전 등록 후 비교하여 판별하는 것으로 기밀성을 향상시킬 수 있다.In addition, confidentiality can be improved by pre-registering and comparing the hash value of the file itself, rather than by extracting strings from a string or image within a file presumed 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 configuration diagram of a file copy leak prevention system (FCLPS) according to an embodiment of the present invention.
Figure 2 is a data flow diagram of a file copy leak prevention system according to an embodiment of the present invention.
Figure 3 is an operation flowchart of a file copy leak prevention system management module according to an embodiment of the present invention.
Figure 4 is pseudocode of a file copy leak prevention system management module according to an embodiment of the present invention.
Figure 5 is a file hash registration screen for the file copy leak prevention system management module according to an embodiment of the present invention.
Figure 6 is a file hash deletion screen of the file copy leak prevention system management module according to an embodiment of the present invention.
Figure 7 is an operation flowchart of the file copy leak prevention system client module according to an embodiment of the present invention.
Figure 8 is a structural diagram of a file copy leak prevention system client module according to an embodiment of the present invention.
Figure 9 is pseudocode of a file copy leak prevention system client module according to an embodiment of the present invention.
Figure 10 is a screen showing the event results of the file copy leak prevention system client module according to an embodiment of the present invention.
Figure 11 is an operation flowchart of a file copy leak prevention system server according to an embodiment of the present invention.
Figure 12 is a structural diagram of a file copy leak prevention system server according to an embodiment of the present invention.
Figure 13 is a pseudocode of a file copy leak prevention system server according to an embodiment of the present invention.
Figure 14 is a screen showing the transmission and reception results of the file copy leak prevention system server according to an embodiment of the present invention.
Figure 15 is SQL Info of the file copy leak prevention system database according to an embodiment of the present invention.
Figure 16 is a screen showing database contents (stored data values) of a file copy leak prevention system according to an embodiment of the present invention.
Figures 17 and 18 show the results of measuring bottlenecks that occur when encrypting large files in a file copy leak prevention system according to an embodiment of the present invention.
Figure 19 is a configuration diagram of EDLP, a conventional confidentiality leak prevention technology.

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

본 문서에서, "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.In this document, expressions such as "comprises" or "may include" refer to the presence of the corresponding feature (e.g., a numerical value, function, operation, or component, etc.) and do not exclude the presence of additional features. No.

본 문서에서, "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 or/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” includes (1) at least one A, (2) at least one B, or (3) it may refer to all cases including both at least one A and at least one B.

본 문서에서 사용된 용어들은 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 다른 실시 예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시 예들을 배제하도록 해석될 수 없다.Terms used in this document are merely used to describe specific embodiments and may not be intended to limit the scope of other embodiments. Singular expressions may include plural expressions, unless the context clearly indicates 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 general dictionaries may be interpreted to have the same or similar meaning as the meaning they have in the context of related technology, and unless clearly defined in this document, have an ideal or excessively formal meaning. It is not interpreted as In some cases, even terms defined in this document cannot be interpreted to exclude 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 as claimed in the claims of the present invention, and these modifications do not reflect the technical idea or the technical spirit of the present invention. It should not be understood in isolation from the perspective.

또한, 본 발명에 따르는 방법은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드(프로그램)로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록 장치를 포함할 수 있다. 컴퓨터가 읽을 수 있는 기록 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광 데이터 저장 장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 분산 컴퓨터 시스템에 의하여 분산 방식으로 실행될 수 있는 컴퓨터가 읽을 수 있는 코드를 저장할 수 있다.Additionally, the method according to the present invention can be implemented as computer-readable code (program) on a computer-readable recording medium. Computer-readable recording media may include all types of recording devices that store 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 can also be implemented in the form of a carrier wave (e.g., transmitted via the Internet). Includes. Additionally, the computer-readable recording medium may store computer-readable code that can be executed in a distributed manner by a distributed computer system connected to 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 “administrator” described in the description of the present invention may mean “user device” and “administrator device,” respectively.

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

본 발명의 설명에서는 변수명, 클래스명 등 통상의 기술자에게 영문표기가 더 일반적인 경우에는 해당 단어를 영문 그대로 기재한다.In the description of the present invention, in cases where English notation is more common for those skilled in the art, such as variable names and class names, the words are written as they are 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 an embodiment of the present invention, for testing to implement the technical idea of the present invention, the CPU is Octa Core of 3.60GHz, RAM is 16GB, the network environment is 1000Mbps, and 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 was MySQL 8.0.24.

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

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

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

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

FCLPS 서버는 FCLPS 클라이언트 모듈(FCLPP)로부터 수신받은 파일의 해시값을 기반으로 데이터베이스를 통해 기밀 문서 파일 여부를 검증한다.The FCLPS server verifies whether a confidential document file exists 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 administrator account information.

파일 복사 유출 방지 시스템(FCLPS)의 절차는 다음과 같다.The procedures of the File Copy Leakage Prevention System (FCLPS) are 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 users generate copy or/and move events for confidential document files.

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

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

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

⑥ FCLPS 클라이언트 모듈로부터 암호화 데이터를 수신받은 FCLPS 서버는 개인키로 암호화 데이터를 복호화한다.⑥ The FCLPS server, which 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 and symmetric key of the file successfully decrypted with the private key in variables, respectively.

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

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

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

⑪ FCLPS 클라이언트 모듈은 개인키로 FCLPS 서버로부터 기밀 문서 파일 여부에 대한 결과값을 복호화하고 삭제 또는 복호화 작업을 진행한다.⑪ The FCLPS client module decrypts the result of the confidential document file from the FCLPS server using 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' database.

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

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

이 때, 운영체제는 사용자로부터 받은 명령어를 수행하고 파일에 대한 권한을 검증 후, 파일 복사 또는 파일 이동 이벤트를 발생시킨다.At this time, the operating system executes the command received from the user, verifies permissions 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 copy or/and move event occurs for a file, it calculates the hash value for the original file and generates a symmetric key of a random 16-character string to encrypt the file. Then, the hash value and encryption key of the file are encrypted with the public key of the FCLPS server and sent 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. Afterwards, depending on whether the file is a confidential document, the FCLPS server transmits a symmetric key to the FCLPS client module if it is a regular file, and a delete command to the FCLPS client module if it is a confidential document file.

3. FCLPS 구현3. FCLPS implementation

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

FCLPS 서버는 공개키와 개인키의 키쌍을 생성, 클라이언트 접속 대기, 클라이언트 소켓 생성, 데이터베이스 요청 및 응답 기능을 수행한다.The FCLPS server generates a key pair of public and private keys, waits for client connection, creates a 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 address and password from the database.

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

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

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

⑥ 데이터베이스에 추가된 문서 파일의 해시값을 리스트 뷰로 출력한다.⑥ The hash value of the document file added to the database is displayed in 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 administrator ID is entered in the variable Admin ID and the administrator password is entered in the variable Admin Password.

이후 변수 Admin ID, 변수 Admin Password를 데이터베이스에 저장된 관리자 아이디, 관리자 비밀번호와 비교하여 로그인에 성공할 경우 리스트 뷰에 데이터베이스에 저장된 문서 파일의 해시값을 출력하고, 실패할 경우 관리자 아이디 및 관리자 비밀번호 확인 메시지를 출력한다.Afterwards, the variable Admin ID and variable Admin Password are compared with the administrator ID and administrator password saved in the database. If login is successful, the hash value of the document file saved in the database is displayed in the list view. If login is not successful, a message to confirm the administrator ID and administrator password is displayed. 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, the file path is entered into the variable FileInfo when the administrator selects the document file, 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 데이터베이스 함수를 통해 삭제한다.Afterwards, 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. And the hash value of the document file stored in the variable FileHash is deleted through the Delete database function.

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

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

FCLPS 서버 매니지먼트 기능 중에서 "파일 선택" 버튼은 데이터베이스로 등록할 파일을 지정하고 리스트 뷰를 통해 파일의 번호, 파일 경로, 파일 해시값을 확인할 수 있다. 리스트 뷰에서 파일의 번호는 파일의 순번이고 파일의 경로는 등록할 파일의 절대 경로로 파일의 위치, 파일의 이름, 파일의 확장자가 포함된다. 그리고 파일의 해시값은 지정한 파일에 대한 해시값을 자동으로 계산하여 리스트 뷰에 출력된다. FCLPS 서버 매니지먼트의 File hash registration 화면은 도 5와 같다.Among the FCLPS server management functions, the "Select File" button specifies the file to be registered in the database and allows you to check the file number, file path, and file hash value through the list view. In the list view, the file number is the sequential number 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 Figure 5.

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

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

3.2 FCLPS 클라이언트 모듈3.2 FCLPS client module

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

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

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

③ 파일의 복사 또는/및 이동 이벤트가 탐지된 경우, 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-character string and then 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 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. And the result is sent to the FCLPS client module.

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

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

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

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

Encryption & Decryption Module은 공개키의 암ㆍ복호화 모듈로 FCLPS 서버와의 통신에서 중간자 공격을 방지하기 위해 공개키 암호로 암ㆍ복호화한다.The Encryption & Decryption Module is a public key encryption and decryption module that encrypts and decrypts using public key encryption 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 pseudocode of the FCLPS client module is shown in Figure 9.

사용자 또는 악의적인 사용자가 파일의 복사 또는/및 이동 이벤트를 발생시킬 경우, 유출 대상 파일을 대칭키 암호로 암호화한다. 이때 대칭키 암호의 암호화키는 랜덤한 문자열 16자리로 구성된다. 이후, FCLPS 서버로 파일의 해시값과 암호화키를 송신한다. 기밀 문서 파일 유무에 따라 일반 파일은 복호화를 진행하고 기밀 문서 파일은 삭제한다. FCLPS 클라이언트 모듈의 이벤트 결과는 도 10과 같다.When a user or a malicious user causes a file copy or/and move event, the leaked file is encrypted with a symmetric key encryption. At this time, the encryption key for symmetric key encryption consists of a 16-digit random string. Afterwards, the hash value and encryption key of the file are sent to the FCLPS server. Depending on the presence or absence of confidential document files, general files are decrypted and confidential document files are deleted. The event results of the FCLPS client module are shown in Figure 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 five steps: RSAPrivateKeyGen, RSAPublic -KeyGen, TCP Listener, Dynamic Thread Create, and database Query Request & Response. And the pseudocode of the FCLPS server is written by applying two essential modules: Network Module and Encryption & Decryption Module.

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

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

② FCLPS 서버에서 TCP Listener는 기밀 문서 파일의 해시값 검증을 위해 FCLPS 클라이언트 모듈의 접속을 대기한다.② On the FCLPS server, the TCP Listener waits for the FCLPS client module to connect 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. And 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 sends 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 Figure 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 an encryption/decryption module for public key encryption and is 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 interfaces with the database based on data received from the FCLPS client module.

변수 RSAPrivateKeyCreate은 Cryptographic Service Provider에서 제공하는 공개키 암호의 알고리즘 함수를 사용하여 공개키 암호의 개인키를 생성하고 저장한다. 그리고 변수 RSAPublicKeyCreate는 생성한 개인키를 기반으로 RSAParameters 함수를 사용하여 공개키를 생성하고 저장한다.The variable RSAPrivateKeyCreate creates and stores the private key of the public key encryption using the algorithm function of the public key encryption provided by the Cryptographic Service Provider. And the variable RSAPublicKeyCreate creates and stores a 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 TcpListener. When connecting 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 Figure 13.

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

FCLPS 서버의 공개키 암호의 공개키 및 개인키는 FCLPS 클라이언트 모듈 (FCLPP)과의 통신에서 중간자 공격을 방지하기 위해 1,024비트의 암ㆍ 복호화 키를 생성한다. FCLPS 클라이언트 모듈 (FCLPP)이 FCLPS 서버로 최초로 접속할 때, FCLPS 서버의 공개키를 자동으로 송ㆍ수신하고 FCLPS 서버의 개인키로 FCLPS 클라이언트 모듈의 데이터를 암ㆍ복호화한다.The public key and private key of the FCLPS server's public key encryption generate a 1,024-bit encryption and decryption key to prevent man-in-the-middle attacks in communication with the FCLPS client module (FCLPP). When the FCLPS client module (FCLPP) first connects to the FCLPS server, it automatically transmits and receives the public key of the FCLPS server and encrypts and 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 for the file sent from the FCLPS client module to the FCLPS server is set as the variable value of FileHash, and the key value used to encrypt the file is set as the variable value of FileKey. The transmission and reception results of the FCLPS server are shown in Figure 14.

3.4 데이터베이스3.4 Database

데이터베이스는 FCLPS의 기밀 파일의 해시값과 경로를 저장하기 위해서 MySQL v8.0.24를 사용하였다.The database used MySQL v8.0.24 to store hash values and paths 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, and 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 an AUTO_INCREMENT attribute whose value automatically increases each time a row in the table is added, specifying the sequence number of the confidential file. File_Path and File_Hash are the path to the file and the hash value of the file, supporting up to 255 strings. do.

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

FCLPS의 데이터베이스 결과는 도 16과 같다. FCLPS 서버 매니지먼트에서 기밀 파일을 선택하고 데이터베이스로 등록요청을 한경우, No, File_Path, File_Hash, File_date를 저장한다.The database results of FCLPS are shown in Figure 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 sequential number of the confidential file, and File_Path is the absolute path to 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 as various characters.

4. 분석4. Analysis

일반 기업에서는 기밀 파일 유출을 방지하기 위해 EDLP를 사용한다.General companies use EDLP to prevent confidential file leaks.

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 to reduce resource consumption, hash values for pre-designated confidential files are stored on the server, and when an event occurs, hash values are compared and determined, and then encryption and decryption operations and deletion are performed.

이때 암호화 작업 중 시스템에서는 CPU에 대한 병목현상이 발생하기 때문에 암호화 작업 소요 시간 측정과 병목현상의 오차범위에 대해 분석한다.At this time, since a bottleneck occurs in the CPU during the encryption process, the time required for the encryption process 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 the proposed FCLPS with several EDLPs used by companies to prevent confidential file leaks.

국내ㆍ외 사용 중인 EDLP는 Secure genie사의 Gradius DLP, Symantec사의 Symantec DLP, WaterWall사의 WaterWall DLP, NicsTech사의 SafePC Enterprise, Comtrue Technologies 사의 Sherlock Holmes PC Information Security가 있다.EDLP in use at home and abroad includes 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 these, detection methods based on keywords within files are WaterWall DLP and Gradius DLP, and detection methods based on content within files are SafePC Enterprise, Symantec DLP, and Sherlock Holmes PC Information Security.

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

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

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

DLP 시스템은 기업 내의 모든 파일을 일정 시간마다 스캔하고 파일 내의 키워드 또는 이미지속 키워드가 포함되어 있으면 이벤트를 차단한다. 하지만 기업 내의 모든 파일을 분석하고 차단하는 것은 비효율적이므로 관리자에 의해 기밀 문서 파일을 사전 선별하여 관리하는 것이 효율적이다. 또한 기밀 문서 파일의 특성상 인가된 사용자만 접근이 가능하므로 DLP 에이전트에서도 동일하게 적용된다.The DLP system scans all files within a company at regular intervals and blocks events if they contain keywords in the file or in the image. However, since it is inefficient to analyze and block all files within a company, it is more efficient for administrators to pre-screen and manage confidential document files. Additionally, 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 the file, but verifies and determines them through the server based on the hash value of the file itself. The detection method according to an embodiment of the present invention is a hash value-based detection method using selective events.

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

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

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

4.2. 암호화 소요 시간4.2. Encryption time taken

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

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

파일의 종류마다 시그니처가 다르고 모든 기밀문서 파일의 크기가 다르기 때문에 암호화할 때 소요 시간을 파일의 종류와 크기별로 측정하였다. FCLPS를 이용하여 파일 종류별로 암호화할 때 소요 시간을 계산한다. 기밀 문서들은 대부분 문서 파일이므로, 문서 파일의 암호화 소요 시간을 분석하기 위해 PDF, HWP, DOC, PPT, XLS 확장자를 대상으로 측정하였다.Since the signature is different for each type of file and the size of all confidential document files is different, the time required for encryption was measured by type and size of file. Calculate the time required to encrypt each file type using FCLPS. Since most confidential documents are document files, the 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개의 파일을 한 번 암호화할 때 소요되는 시간이다.To encrypt document files, a 16-character random string symmetric key is generated. Then, using a symmetric key, 100 PDF, HWP, DOC, PPT, and XLS document files are encrypted in a total of 10 rounds, and the same process is repeated in 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 함수를 이용하여 각 라운드마다 암호화할 때 소요 시간을 계산한다.When encrypting PDF, HWP, DOC, PPT, and XLS document files for each round, the time required is calculated by using the Start and Reset methods in the Stopwatch function, a time measurement class in .Net, and calculating the result in milliseconds. The stopwatch function is used to calculate the time required for encryption for each round.

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

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

Figure 112021151903613-pat00004
Figure 112021151903613-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 time required when encrypting document files of PDF, HWP, DOC, PPT, and XLS according to Equation 1, the result was 5 minutes 23 seconds for PDF, 5 minutes 40 seconds for HWP, and 5 minutes 29 seconds for DOC. seconds, PPT was measured at 5 minutes 22 seconds, and XLS was measured at 5 minutes 43 seconds. When encrypting a document file 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 with sizes of 1MB, 3MB, 5MB, 10MB, and 15MB 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 15MB15 MB 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 112021151903613-pat00005
, 라운드 횟수를
Figure 112021151903613-pat00006
, 전체 라운드의 평균 시간을
Figure 112021151903613-pat00007
라 한다. 이와 같은 계산은 수학식 2와 같다.The time required for encryption in each round is calculated using the same method as for each file type.
Figure 112021151903613-pat00005
, the number of rounds
Figure 112021151903613-pat00006
, the average time of the entire round is
Figure 112021151903613-pat00007
It is said that Such calculation is as shown in Equation 2.

Figure 112021151903613-pat00008
Figure 112021151903613-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 when encrypting document files of PDF, HWP, DOC, PPT, XLS is 1 minute and 7 seconds for 1MB, 2 minutes and 21 seconds for 3MB, 3 minutes and 42 seconds for 5MB, and 10MB is 1 minute and 7 seconds. 7 minutes 37 seconds, 15MB is 12 minutes 50 seconds. When encrypting a document file 10 rounds, the minimum and maximum difference in time required 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와 같다.Table 2 shows the results of measuring the time required to encrypt document files when the sizes of document files PDF, HWP, DOC, PPT, and XLS are 1MB, 3MB, 5MB, 10MB, and 15MB, respectively.

Size
Type
Size
Type
1MB1MB 3MB3MB 5MB5MB 10MB10MB 15MB15 MB
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 Bottleneck phenomenon

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

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

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

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

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

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

Figure 112021151903613-pat00012
Figure 112021151903613-pat00012

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

Figure 112021151903613-pat00013
) 10번을 100번으로 변경하여 전체 라운드의 평균 시간(
Figure 112021151903613-pat00014
)을 계산하는 수식이다.Equation 3 is the number of rounds in Equation 1 (
Figure 112021151903613-pat00013
) Change 10 times to 100 times to get the average time for the entire round (
Figure 112021151903613-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 phenomenon of a 10MB document file, HWP with the lowest average value is constant at 4,000 seconds from round 1 to round 7 and 4,000 seconds from round 9 to round 10, except for 4,300 seconds in round 8, and DOC with the highest average value is 6. Except for 5,800 seconds of the first round and 5,800 seconds of the 7th round, a bottleneck occurs in the remaining rounds, so the time required to encrypt the document file is not constant.

10MB 문서 파일의 병목현상 측정 결과는 도 17과 같다.The results of measuring the bottleneck phenomenon of a 10MB document file are shown in Figure 17.

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

수학식 3과 동일한 방법을 이용하여 15MB인 문서 파일을 100번 암호화하여 병목현상 구간을 분석한다.Using the same method as 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,800 seconds for the remaining rounds, except for 5,810 seconds in round 1, 5,790 seconds in round 3, and 5,810 seconds in round 6. In addition, XLS, which has the highest average value, has a bottleneck in the remaining rounds except for 7,200 seconds in the 5th round and 7,200 seconds in the 9th round, so the time required to encrypt the document file is not constant.

15MB 문서 파일의 병목현상 측정 결과는 도 18와 같다.The results of measuring the bottleneck phenomenon of a 15MB document file are shown in Figure 18.

Claims (5)

(a) 사용자기기에서 기밀 문서 파일을 복사 또는 이동시키는 것을 탐지하기 위하여 File Copy Event 모듈에서 파일의 복사 또는 이동 이벤트를 지속적으로 탐지하는 단계와;
(b) 파일의 복사 또는 이동 이벤트가 탐지된 경우, 기밀 문서 파일에 대한 해시값을 계산하는 단계와;
(c) 랜덤한 16자리의 문자열의 대칭키를 생성한 후, 암호화 함수를 사용하여 파일을 암호화 하는 단계와;
(d) 파일의 해시값과 암호화키를 JSON 형태로 변환후 서버의 공개키로 암호화하는 단계와;
(e) 공개키로 암호화한 결과값을 상기 서버로 전송하는 단계와;
(f) 상기 서버는 수신한 값을 개인키로 복호화하고 결과값을 송신하는 단계와;
(g) 검증 결과값에 따라 기밀 문서 파일을 삭제 또는 복호화를 진행하는 단계;를 포함하는 것을 특징으로 하는 파일 복사 유출 방지 클라이언트 제어 방법.
(a) continuously detecting file copy or move events in the File Copy Event module to detect copying or moving confidential document files on the user device;
(b) calculating a hash value for the confidential document file when a copy or move event of the file is detected;
(c) generating a symmetric key of a random 16-character string and then encrypting the file using an encryption function;
(d) converting the hash value and encryption key of the file into JSON format and then encrypting it with the server's public key;
(e) transmitting the result of encryption with a public key to the server;
(f) the server decrypts the received value with a private key and transmits the result;
(g) deleting or decrypting the confidential document file according to the verification result; a file copy leak prevention client control method comprising:
삭제delete (A) 처음 실행될 때, 공개키와 개인키의 키쌍을 자동으로 생성하는 단계와;
(B) TCP Listener는 기밀 문서 파일의 해시값 검증을 위해 클라이언트 모듈의 접속을 대기하는 단계와;
(C) 상기 클라이언트 모듈이 접속할 경우, 다수의 네트워크 접속을 관리하기 위해 동적으로 Thread를 생성하고, 상기 클라이언트 모듈에게 공개키를 전송하는 단계와;
(D) 상기 클라이언트 모듈에서 수신한 파일의 해시값과 암호 화키를 JSON으로 파싱하여 데이터베이스에 질의하는 단계와;
(E) 상기 데이터베이스 질의 결과에 따라 기밀 문서 파일의 검증 결과를 상기 클라이언트 모듈에게 송신하는 단계;를 포함하는 것을 특징으로 하는 파일 복사 유출 방지 서버 제어 방법.
(A) automatically generating a key pair of a public key and a private key when first executed;
(B) TCP Listener waiting for the client module to connect to verify the hash value of the confidential document file;
(C) when the client module connects, dynamically creating a Thread to manage multiple network connections and transmitting a public key to the client module;
(D) parsing the hash value and encryption key of the file received from the client module into JSON and querying the database;
(E) transmitting a verification result of a confidential document file to the client module according to the database query result. A file copy leak prevention server control method comprising a.
삭제delete 클라이언트 모듈, 서버, 매니지먼트 모듈 및 데이터베이스를 포함하는 파일 복사 유출 방지 시스템에 있어서,
상기 데이터베이스에 기밀 문서 파일의 해시값이 등록되면,
상기 클라이언트 모듈은, 사용자가 기밀 문서 파일에 대한 복사 또는 이동 이벤트를 발생시키는 것을 실시간으로 탐지하고, 상기 이벤트를 탐지하고 해당 파일의 해시값을 자동으로 계산하고, 랜덤한 16자리의 문자열을 대칭키로 생성하고 파일을 대칭키로 암호화하며, 파일의 해시값과 대칭키를 상기 서버로 송신하기 위해 파일의 해시값과 대칭키를 JSON 형태로 변환하고, 상기 서버의 공개키로 JSON 형태의 데이터를 암호화한 후 상기 서버로 송신하며,
상기 서버는, 상기 클라이언트로부터 암호화 데이터를 수신받고, 개인키로 암호화 데이터를 복호화하고, 개인키로 복호화에 성공한 파일의 해시값과 대칭키를 각각 변수에 저장하고, 상기 서버에 저장된 변수값 중에서 파일의 해시값을 상기 데이터베이스에 질의(Query)하여 기밀파일 여부를 확인하고, 상기 데이터베이스로부터 질의에 대한 결과를 수신하되,
상기 서버의 기밀 문서 파일 여부에 대한 결과(일반 파일인 경우 대칭키, 기밀 문서 파일인 경우 삭제 명령어)를 상기 클라이언트 모듈의 공개키로 암호화하고 상기 클라이언트 모듈로 송신하고,
상기 클라이언트 모듈은 개인키로 상기 서버로부터 기밀 문서 파일 여부에 대한 결과값을 복호화하고 삭제 또는 복호화 작업을 진행하는 것을 특징으로 하는 파일 복사 유출 방지 시스템.
In a file copy leak prevention system including a client module, server, management module, and database,
When the hash value of a confidential document file is registered in the database,
The client module detects in real time when a user generates a copy or move event for a confidential document file, detects the event, automatically calculates the hash value of the file, and uses a random 16-character string as a symmetric key. Create and encrypt the file with a symmetric key, convert 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 server, and encrypt the data in JSON format with the public key of the server. Sent to the server,
The server receives encrypted data from the client, decrypts the encrypted data with a private key, stores the hash value and the symmetric key of the file successfully decrypted with the private key in variables, and hashes of the file among the variable values stored in the server. Query the value to the database to check whether it is a confidential file, and receive the result of the query from the database,
Encrypt the result of whether the server has a confidential document file (symmetric key for a normal file, delete command for a confidential document file) with the public key of the client module and transmit it to the client module,
The client module is a file copy leak prevention system, characterized in that the client module decrypts a result of whether a confidential document file exists from the server using a private key and performs a deletion or decryption operation.
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 KR20230100850A (en) 2023-07-06
KR102621657B1 true 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)

Family Cites Families (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
KR101909268B1 (en) * 2016-12-23 2018-10-17 한국인터넷진흥원 System for sharing profiling information based on rapi and method thereof
KR102156076B1 (en) * 2018-11-16 2020-09-16 (주) 더존비즈온 Ciphering system and method for processing private information

Also Published As

Publication number Publication date
KR20230100850A (en) 2023-07-06

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
Alwan et al. Detection and prevention of SQL injection attack: a survey
US9275222B2 (en) Reliable selection of security countermeasures
US11907366B2 (en) Introspection driven by incidents for controlling infiltration
US8166313B2 (en) Method and apparatus for dump and log anonymization (DALA)
US8146165B2 (en) Method and apparatus for providing a data masking portal
US20190081787A1 (en) Identification of related tokens in a byte stream using structured signature data
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
CN113468576B (en) Role-based data security access method and device
KR101620601B1 (en) Method for conducting security check, Computer program for the same, and Recording medium storing computer program for the same
RU2693330C2 (en) Method and system for authorizing a user to perform an action in an electronic service
KR102621657B1 (en) File copy leakage prevention method
Shrivastava et al. SQL injection attacks: Technique and prevention mechanism
Murthy et al. Database Forensics and Security Measures to Defend from Cyber Threats
US9489158B1 (en) Print logging for use with terminal emulators
CN108134781B (en) Important information data secrecy monitoring system
Bolívar et al. Modeling cloud computing security scenarios through attack trees
Algarni et al. An open tool architecture for security testing of NoSQL-based applications
CN116633594B (en) Flamingo gateway security system
Archana Devi et al. Prevention and detection of SQL injection attacks using generic decryption
George et al. A proposed architecture for query anomaly detection and prevention against SQL injection attacks
US20240154989A1 (en) Systems and methods for identifying and mapping sensitive data on an enterprise
Mejri et al. Cloud Security Issues and Log-based Proactive Strategy

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