KR102042086B1 - Module for controlling encryption communication protocol - Google Patents

Module for controlling encryption communication protocol Download PDF

Info

Publication number
KR102042086B1
KR102042086B1 KR1020180000756A KR20180000756A KR102042086B1 KR 102042086 B1 KR102042086 B1 KR 102042086B1 KR 1020180000756 A KR1020180000756 A KR 1020180000756A KR 20180000756 A KR20180000756 A KR 20180000756A KR 102042086 B1 KR102042086 B1 KR 102042086B1
Authority
KR
South Korea
Prior art keywords
connection
traffic
communication protocol
program
unit
Prior art date
Application number
KR1020180000756A
Other languages
Korean (ko)
Other versions
KR20190083160A (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 KR1020180000756A priority Critical patent/KR102042086B1/en
Publication of KR20190083160A publication Critical patent/KR20190083160A/en
Application granted granted Critical
Publication of KR102042086B1 publication Critical patent/KR102042086B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Abstract

본 발명은 암호화 통신 프로토콜 제어 모듈로서, 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 상기 암호화 통신 프로토콜의 연결이 발생하면 상기 암호화 통신 프로토콜의 목적지 정보를 변경하는 연결 감시부; 상기 변경된 목적지 정보에 따라 상기 암호화 통신 프로토콜의 연결을 형성하는 클라이언트 연결부; 상기 연결 감시부로부터 상기 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 상기 대상 서버와의 연결을 위한 연결정보를 전달하는 제어부; 및 상기 제어부로부터 전달받은 연결정보에 따라 상기 대상 서버에 연결을 요청하는 서버 연결부를 포함한다.The present invention provides an encryption communication protocol control module, comprising: a connection monitoring unit configured to monitor whether a connection of an encryption communication protocol occurs and to change destination information of the encryption communication protocol when the connection of the encryption communication protocol occurs; A client connection unit forming a connection of the encrypted communication protocol according to the changed destination information; A control unit which receives the destination information from the connection monitoring unit, determines whether to connect with a target server corresponding to a destination, and transmits connection information for connection with the target server; And a server connection unit requesting a connection to the target server according to the connection information received from the controller.

Description

암호화 통신 프로토콜 제어 모듈{MODULE FOR CONTROLLING ENCRYPTION COMMUNICATION PROTOCOL}Cryptographic Communication Protocol Control Module {MODULE FOR CONTROLLING ENCRYPTION COMMUNICATION PROTOCOL}

본 발명은 암호화 통신 프로토콜 제어 기술에 관한 것으로서, 보다 상세하게는, 개인컴퓨터에서 수행되는 정보를 기반으로 암호화 통신 프로토콜을 제어하는 암호화 통신 프로토콜 제어 모듈에 관한 것이다.The present invention relates to an encryption communication protocol control technology, and more particularly, to an encryption communication protocol control module for controlling an encryption communication protocol based on information performed on a personal computer.

국내외 주요 인터넷 서비스에서는 사용자의 개인정보를 보호하기 위해 암호화 통신 프로토콜인 TLS/SSL을 웹서비스, 메일서비스에 적용하여 사용하고 있다. 암호화 통신 프로토콜을 사용하여 전송되는 암호화 트래픽은 외부의 스니핑 공격에 대하여 안전성을 확보하고 보안적인 측면에서 기밀성 강화를 기대할 수 있다. 그러나 대부분의 보안장비들이 암호화 트래픽의 분석이 불가능하여 인터넷 서비스에서 암호화 통신을 이용한 악의적인 행위를 통제할 수 없다.In order to protect user's personal information, major domestic and foreign internet services use TLS / SSL, which is an encryption communication protocol, for web service and mail service. Encrypted traffic transmitted using an encrypted communication protocol can be secured against external sniffing attacks and can be expected to enhance confidentiality in terms of security. However, most security devices cannot analyze the encrypted traffic and cannot control malicious behavior using encrypted communication in Internet services.

암호화 통신을 이용한 인터넷 서비스상의 보안위협을 감소시키기 위한 암호화 통신 프로토콜 제어 방법으로는 통상적으로 프록시를 이용하는 방법, 네트워크 보안장비를 이용하는 방법 등이 있다. 프록시를 이용하여 제어하는 방법은 클라이언트와 목적지 사이에 프록시 서버를 두어 이 곳을 경유하는 암호화 트래픽을 복호화 하여 제어한다. 이 방법은 PC에 별도의 설정이 필요하여 가용성이 낮고 프록시 서버를 설정할 수 있는 인터넷 브라우저와 일부 프로그램에만 적용이 가능하여 확장성이 낮다. 네트워크 보안장비를 이용하여 제어하는 방법은 인터넷 게이트웨이에서 암호화 트래픽 통신이 감지되면 복호화 하여 제어한다.As a method of controlling an encryption communication protocol for reducing security threats on an Internet service using encryption communication, there is a method using a proxy or a method using a network security device. In the control method using a proxy, a proxy server is placed between a client and a destination to decrypt and control encrypted traffic passing through the location. This method is low in availability because it requires a separate setting on the PC and is only applicable to Internet browsers and some programs that can set up a proxy server. The control method using the network security equipment decrypts and controls the encrypted traffic communication when the internet gateway is detected.

즉, 이 두 가지 방법은 IP주소, MAC 주소, PORT 번호, 트래픽 내용 등과 같은 인터넷 통신 정보를 기반으로 제어하나, 이 정보만으로는 암호화 트래픽을 발생시킨 PC의 확인만이 가능할 뿐, 해당 PC의 사용자는 정확히 식별될 수 없고, PC에서 통신에 사용한 프로세스 이름, 첨부로 전송 된 파일의 실제 경로 등의 정보도 알 수 없는 문제가 있다.In other words, these two methods are controlled based on internet communication information such as IP address, MAC address, PORT number, traffic contents, etc.But only this information can be used to identify the PC that generated the encrypted traffic. There is a problem that cannot be correctly identified, and information such as the process name used for communication on the PC and the actual path of the file transmitted as an attachment is unknown.

한국공개특허 제10-201-0106912호Korean Patent Publication No. 10-201-0106912

본 발명의 목적은 개인컴퓨터에서 수행되는 정보를 기반으로 암호화 통신 프로토콜을 제어하는 암호화 통신 프로토콜 제어 모듈을 제공하는데 있다.An object of the present invention is to provide an encryption communication protocol control module for controlling an encryption communication protocol based on information performed in a personal computer.

상기 목적을 달성하기 위한 본 발명의 제1 측면은, 암호화 통신 프로토콜 제어 모듈로서, 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 상기 암호화 통신 프로토콜의 연결이 발생하면 상기 암호화 통신 프로토콜의 목적지 정보를 변경하는 연결 감시부; 상기 변경된 목적지 정보에 따라 상기 암호화 통신 프로토콜의 연결을 형성하는 클라이언트 연결부; 상기 연결 감시부로부터 상기 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 상기 대상 서버와의 연결을 위한 연결정보를 전달하는 제어부; 및 상기 제어부로부터 전달받은 연결정보에 따라 상기 대상 서버에 연결을 요청하는 서버 연결부를 포함한다.A first aspect of the present invention for achieving the above object is an encryption communication protocol control module, which monitors whether a connection of an encryption communication protocol occurs, and if the connection of the encryption communication protocol occurs, destination information of the encryption communication protocol. Connection monitoring unit to change; A client connection unit forming a connection of the encrypted communication protocol according to the changed destination information; A control unit which receives the destination information from the connection monitoring unit, determines whether to connect with a target server corresponding to a destination, and transmits connection information for connection with the target server; And a server connection unit requesting a connection to the target server according to the connection information received from the controller.

바람직하게, 상기 연결 감시부는, 상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 개인컴퓨터에서 실행되는지 여부를 감시하고, 상기 프로그램이 실행되면, 상기 프로그램에 DLL 인젝션을 하고 상기 프로그램의 연결 함수에 대하여 API 후킹을 하여 상기 목적지 정보를 변경하거나, 또는 상기 프로그램의 드라이버를 실행시켜 TDI 필터 드라이버를 등록하고 TDI 필터를 통한 감시를 통해 상기 목적지 정보를 획득하여 상기 목적지 정보를 변경하되, 상기 변경된 목적지 정보는 상기 클라이언트 연결부에 해당할 수 있다.Preferably, the connection monitoring unit monitors whether a program that performs the connection of the encryption communication protocol is executed on a personal computer, and when the program is executed, injects a DLL into the program and APIs for the connection function of the program. Hooking to change the destination information, or to execute the driver of the program to register the TDI filter driver and obtain the destination information through monitoring through a TDI filter to change the destination information, the changed destination information is It may correspond to a client connection.

바람직하게, 상기 연결 감시부는, 상기 목적지 정보는 상기 제어부에 전달하고, 상기 변경된 목적지에 따라 상기 프로그램을 통하여 상기 클라이언트 연결부로 연결이 요청되도록 할 수 있다.Preferably, the connection monitoring unit may transmit the destination information to the control unit and allow a connection request to the client connection unit through the program according to the changed destination.

바람직하게, 상기 제어부는, 상기 목적지 정보를 포함하는 연결정보를 상기 서버 연결부에 전달하고, 서명정보에 해당하는 제1 개인키 및 제1 인증서를 생성하여 상기 개인컴퓨터에 등록할 수 있다.Preferably, the control unit may transmit connection information including the destination information to the server connection unit, generate a first private key and a first certificate corresponding to signature information, and register the same with the personal computer.

바람직하게, 상기 서버 연결부는, 상기 연결정보에 따라 상기 대상 서버와 연결이 완료되면, 상기 암호화 통신 프로토콜의 공개정보로부터 주체이름 및 주체대체이름을 추출하여 상기 제어부에 전달할 수 있다.Preferably, when the connection with the target server is completed according to the connection information, the server connection unit may extract the subject name and the subject alternative name from the public information of the encryption communication protocol and transfer it to the controller.

바람직하게, 상기 제어부는, 상기 주체이름 및 주체대체이름을 기초로 공개정보에 해당하는 제2 인증서 및 비밀정보에 해당하는 제2 개인키를 생성하고, 상기 제1 개인키를 이용하여 상기 제2 인증서에 전자서명을 수행하고, 상기 제2 개인키 및 상기 전자서명이 수행된 제2 인증서를 상기 클라이언트 연결부에 전달할 수 있다.Preferably, the controller generates a second private key corresponding to the second certificate and secret information corresponding to the public information based on the subject name and the subject alternative name, and uses the first private key to generate the second private key. The electronic signature may be performed on the certificate, and the second private key and the second certificate on which the electronic signature is performed may be transferred to the client connection unit.

바람직하게, 상기 클라이언트 연결부는, 상기 전자서명이 수행된 제2 인증서를 등록하고, 상기 프로그램으로부터 요청된 연결 요청을 수락하고, 상기 전자서명이 수행된 제2 인증서를 상기 프로그램에 전달할 수 있다.Preferably, the client connection unit may register a second certificate on which the digital signature is performed, accept a connection request requested from the program, and transfer the second certificate on which the digital signature is performed to the program.

바람직하게, 상기 프로그램에 의하여 상기 개인컴퓨터에 등록된 제1 인증서 및 상기 제2 인증서를 기초로, 상기 전자서명이 수행된 제2 인증서의 발급기관, 이름, 및 유효기간이 검사되면, 상기 클라이언트 연결부와의 연결이 완료될 수 있다.Preferably, based on the first certificate and the second certificate registered in the personal computer by the program, if the issuer, name, and validity period of the second certificate for which the electronic signature was performed are checked, the client connection unit The connection with can be completed.

바람직하게, 상기 클라이언트 연결부는, 상기 암호화 통신 프로토콜의 연결이 형성되면, 상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램으로부터 수신한 암호화 트래픽을 복호화하여 상기 제어부에 전달할 수 있다.Preferably, when the connection of the encrypted communication protocol is formed, the client connection unit may decrypt the encrypted traffic received from a program that performs the connection of the encrypted communication protocol and transmit the decrypted traffic to the controller.

바람직하게, 상기 제어부는, 상기 복호화된 트래픽의 내용을 로그로 저장하고, 상기 트래픽의 내용을 검사한 후, 상기 서버 연결부에 트래픽을 전달하되, 상기 트래픽의 내용 검사에 따라 상기 트래픽의 내용이 부적합한 것으로 판단되면, 상기 트래픽의 내용이 변경된 후 상기 서버 연결부에 전달될 수 있다.Preferably, the control unit stores the contents of the decoded traffic as a log, inspects the contents of the traffic, and then delivers the traffic to the server connection unit, wherein the contents of the traffic are inappropriate according to the contents inspection of the traffic. If it is determined that the contents of the traffic is changed, it may be delivered to the server connection unit.

바람직하게, 상기 서버 연결부는, 상기 트래픽을 상기 대상 서버의 암호화 통신 프로토콜의 공개정보를 기초로 암호화 한 후, 암화된 트래픽을 상기 대상 서버에 전송할 수 있다.Preferably, the server connection unit, after encrypting the traffic based on the public information of the encryption communication protocol of the target server, may transmit the encrypted traffic to the target server.

바람직하게, 상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 접근하는 파일과 상기 프로그램이 읽는 파일의 내용을 감시하는 파일 감시부를 더 포함할 수 있다.Preferably, the method may further include a file monitoring unit for monitoring a file accessed by a program that performs the connection of the encrypted communication protocol and contents of a file read by the program.

바람직하게, 상기 파일 감시부는, 상기 클라이언트 연결부와 상기 암호화 통신 프로토콜의 연결이 형성되면, 상기 프로그램에서 파일 읽기가 발생하는지 여부를 감시하고, 상기 프로그램에서 파일 읽기가 발생하면 상기 프로그램이 읽은 파일의 내용을 저장하되, 상기 프로그램이 읽은 파일의 내용은 상기 프로그램을 통하여 암호화 트래픽으로 상기 클라이언트 연결부에 전송될 수 있다.Preferably, the file monitoring unit monitors whether a file read occurs in the program when the client connection unit and the encryption communication protocol are connected, and contents of a file read by the program when a file read occurs in the program. Store the contents of the file read by the program may be transmitted to the client connection as encrypted traffic through the program.

바람직하게, 상기 클라이언트 연결부는, 상기 암호화 트래픽을 복호화하여 제어부에 전달하고, 상기 제어부는, 상기 복호화된 트래픽을 상기 파일 감시부로 전달할 수 있다.Preferably, the client connection unit may decrypt the encrypted traffic and transmit the decrypted traffic to the control unit, and the control unit may transmit the decrypted traffic to the file monitoring unit.

바람직하게, 상기 파일 감시부는, 상기 제어부로부터 전달받은 트래픽의 내용이 상기 저장된 읽은 파일의 내용에 포함되는지 여부를 검사하고, 검사 결과를 제어부에 전달할 수 있다.Preferably, the file monitoring unit may check whether the content of the traffic received from the controller is included in the content of the stored read file, and may transmit the test result to the controller.

바람직하게, 상기 제어부는, 상기 검사 결과가 파일 유출 행위에 해당함을 나타내면, 상기 클라이언트 연결부에 암호화 통신 프로토콜의 연결 종료를 요청하고, 상기 클라이언트 연결부는 상기 연결 종료의 요청에 따라 암호화 통신 프로토콜의 연결을 종료할 수 있다.Preferably, the control unit, when indicating that the check result corresponds to a file leaking behavior, requests the client connection unit to terminate the connection of the encryption communication protocol, and the client connection unit terminates the connection of the encryption communication protocol according to the request for termination of the connection. You can exit.

상기한 바와 같이 본 발명에 의하면, 암호화 통신의 특징인 종단간의 기밀성은 유지하되, 기밀정보 유출을 방지하는 효과가 있다.As described above, according to the present invention, the end-to-end confidentiality which is a characteristic of the encrypted communication is maintained, but there is an effect of preventing the leakage of confidential information.

또한, 인증 시스템과 융합하여 암호화 트래픽을 발생시킨 사용자를 식별할 때 정확성을 높이고, 개인정보 유출감지 시스템과 융합하여 암호화 통신 프로토콜을 사용한 개인정보 파일의 유출을 감지하는 효과가 있다.In addition, the accuracy of identifying the user who generated the encryption traffic by fusion with the authentication system is improved, and the personal information leakage detection system has the effect of detecting the leakage of the personal information file using the encryption communication protocol.

또한, 개인 컴퓨터에서 감시를 원하는 프로세스만 목적지 정보를 변경해 제어할 수 있는 효과가 있다. In addition, only a process that a user wants to monitor on the personal computer can change and control the destination information.

또한, 종래의 프록시 방식과 비교하여, 개인 컴퓨터에 프록시 설정 없이 통제가 가능하고, 인터넷 브라우저 외에 다른 프로그램도 통제가 가능한 효과가 있고, 종래의 네트워크 보안 장비 방식과 비교하여, 네트워크 구성을 변경하지 않고 통제가 가능하고, IP 주소, MAC 주소, PORT번호, 트래픽 내용 등과 같은 인터넷 통신 정보 기반의 통제와 통신 프로세스 이름, 파일 정보 등과 같은 사용자의 개인 컴퓨터에서 발생하는 행위를 기반으로도 통제가 가능한 효과가 있다.In addition, compared to the conventional proxy method, it is possible to control the personal computer without proxy setting, and to control other programs besides the Internet browser, and compared with the conventional network security equipment method, without changing the network configuration. It is possible to control and control based on Internet communication information based control such as IP address, MAC address, PORT number, traffic content, etc., and actions occurring on user's personal computer such as communication process name and file information. have.

도 1은 본 발명의 바람직한 실시예에 따른 암호화 통신 프로토콜 제어 모듈의 블록도이다.
도 2는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 암호화 통신 프로토콜 연결이 형성되는 과정을 나타내는 흐름도이다.
도 3 및 도 4는 TDI 필터에서 수행되는 목적지 정보 변경을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.
도 6은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 응답 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.
도 7은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 파일 전송이 제어되는 과정을 나타내는 흐름도이다.
도 8 및 도 9는 미니필터에서 수행되는 데이터 감시를 설명하기 위한 도면이다.
1 is a block diagram of a cryptographic communication protocol control module according to a preferred embodiment of the present invention.
2 is a flowchart illustrating a process of forming an encrypted communication protocol connection in a method of controlling an encrypted communication protocol according to an exemplary embodiment.
3 and 4 are diagrams for explaining change of destination information performed in a TDI filter.
5 is a flowchart illustrating a process of controlling traffic transmission in an encryption communication protocol control method according to an embodiment.
6 is a flowchart illustrating a process in which response traffic transmission is controlled in an encryption communication protocol control method according to an embodiment.
7 is a flowchart illustrating a process of controlling file transfer in an encryption communication protocol control method according to an embodiment.
8 and 9 are diagrams for explaining data monitoring performed in the minifilter.

이하, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.Advantages and features of the present invention, and a method of achieving them will be apparent from the following detailed description with reference to the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but will be implemented in various forms, and only the present embodiments are intended to complete the disclosure of the present invention, and the general knowledge in the art to which the present invention pertains. It is provided to fully convey the scope of the invention to those skilled in the art, and the present invention is defined only by the scope of the claims. Like reference numerals refer to like elements throughout. “And / or” includes each and all combinations of one or more of the items mentioned.

비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.Although the first, second, etc. are used to describe various elements, components and / or sections, these elements, components and / or sections are of course not limited by these terms. These terms are only used to distinguish one element, component or section from another element, component or section. Therefore, the first device, the first component, or the first section mentioned below may be a second device, a second component, or a second section within the technical spirit of the present invention.

또한, 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.In addition, in each step, an identification code (eg, a, b, c, etc.) is used for convenience of description, and the identification code does not describe the order of the steps, and each step is clearly specified in context. Unless stated in order, it may occur differently from the stated order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다(comprises)" 및/또는 “포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and / or “comprising” refers to the presence of one or more other components, steps, operations and / or elements. Or does not exclude additions.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used in a sense that can be commonly understood by those skilled in the art. In addition, the terms defined in the commonly used dictionaries are not ideally or excessively interpreted unless they are specifically defined clearly.

또한, 본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.In describing the embodiments of the present invention, when it is determined that a detailed description of a known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description thereof will be omitted. In addition, terms to be described below are terms defined in consideration of functions in the embodiments of the present invention, which may vary according to intentions or customs of users and operators. Therefore, the definition should be made based on the contents throughout the specification.

도 1은 본 발명의 바람직한 실시예에 따른 암호화 통신 프로토콜 제어 모듈의 블록도이다.1 is a block diagram of a cryptographic communication protocol control module according to a preferred embodiment of the present invention.

도 1을 참조하면, 암호화 통신 프로토콜 제어 모듈(100)은 연결 감시부(110), 클라이언트 연결부(120), 제어부(130), 서버 연결부(140), 및 파일 감시부(150)를 포함한다. Referring to FIG. 1, the encryption communication protocol control module 100 includes a connection monitoring unit 110, a client connection unit 120, a control unit 130, a server connection unit 140, and a file monitoring unit 150.

연결 감시부(110)는 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 암호화 통신 프로토콜의 연결이 발생하면 암호화 통신 프로토콜의 목적지 정보를 변경한다. 바람직하게, 연결 감시부(110)는 암호화 통신 프로토콜의 목적지를 클라이언트 연결부(120)로 변경할 수 있고, 원래의 목적지 정보는 제어부(130)에 전달할 수 있다. 이를 통하여, 개인컴퓨터에서 수행되는 암호화 통신 프로토콜을 수행하는 프로그램이 대상 서버로 트래픽을 전송하거나 또는 파일을 읽는 경우에, 해당 정보들이 암호화 통신 프로토콜의 원래 목적지에 해당하는 대상 서버로 바로 전달되는 것이 아니라, 클라이언트 연결부(120)를 통하여 전달되는 것이다.The connection monitoring unit 110 monitors whether the connection of the encryption communication protocol occurs, and changes the destination information of the encryption communication protocol when the connection of the encryption communication protocol occurs. Preferably, the connection monitoring unit 110 may change the destination of the encryption communication protocol to the client connection unit 120, and the original destination information may be transmitted to the controller 130. Through this, when a program that executes an encryption communication protocol performed on a personal computer transmits traffic to a target server or reads a file, the information is not transferred directly to the target server corresponding to the original destination of the encryption communication protocol. It is delivered through the client connection unit 120.

클라이언트 연결부(120)는 변경된 목적지 정보에 따라 암호화 통신 프로토콜의 연결을 형성한다. 바람직하게, 클라이언트 연결부(120)는 개인컴퓨터의 프로그램과 암호화 통신 프로토콜의 연결을 형성할 수 있고, 암호화 통신 프로토콜의 연결이 형성된 이후에는, 프로그램으로부터 암호화 트래픽을 수신하고 복호화 하여 제어부(130)에 전달할 수 있고, 대상 서버로부터 전송된 트래픽을 전달받아 암호화하여 클라이언트, 즉, 개인컴퓨터의 프로그램에 응답 트래픽으로 전송할 수 있다.The client connection unit 120 forms a connection of the encryption communication protocol according to the changed destination information. Preferably, the client connection unit 120 may form a connection between the program of the personal computer and the encryption communication protocol. After the connection of the encryption communication protocol is formed, the client connection unit 120 receives the encrypted traffic from the program, decrypts it, and delivers it to the control unit 130. In addition, the traffic transmitted from the target server may be received, encrypted, and transmitted as response traffic to a client, that is, a program of a personal computer.

제어부(130)는 연결 감시부(110)로부터 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 대상 서버와의 연결을 위한 연결정보를 전달한다. 바람직하게, 개인컴퓨터의 프로그램과 클라이언트 연결부(120)의 연결이 완료된 후에는, 클라이언트 연결부(120)에서 전달받은 트래픽의 내용을 검사하여 차단 여부를 결정하거나, 트래픽의 내용을 파일 감시부(150)에 전달하여 검사 결과를 받을 수 있고, 검사 결과에 따라 클라이언트 연결부(120)에서 전달받은 트래픽을 그대로 서버 연결부(140)에 전달하거나 또는 전달받은 트래픽을 변경하여 전달할 수 있다. 또한, 제어부(130)는 서버 연결부(140)에서 전달 받은 트래픽을 클라이언트 연결부(120)에 그대로 전달하거나 또는 변경하여 전달할 수 있다.The controller 130 receives the destination information from the connection monitoring unit 110 and determines whether to connect to the target server corresponding to the destination, and transmits the connection information for the connection with the target server. Preferably, after the connection between the program of the personal computer and the client connection unit 120 is completed, examine the contents of the traffic received from the client connection unit 120 to determine whether to block, or the content of the traffic file monitoring unit 150 It can be delivered to the test result, and according to the test result, the traffic received from the client connection unit 120 can be delivered to the server connection unit 140 as it is, or can be delivered by changing the received traffic. In addition, the controller 130 may transfer the traffic received from the server connector 140 to the client connector 120 as it is or change it.

서버 연결부(140)는 제어부(130)로부터 전달받은 연결정보에 따라 대상 서버에 연결을 요청한다. 바람직하게, 대상 서버와 연결이 완료되고, 프로그램과 클라이언트 연결부(120)의 연결이 완료되면, 서버 연결부(140)는 제어부(130)로부터 목적지 정보와 트래픽 내용을 전달받고, 트래픽을 암호화하여 대상 서버에 전달할 수 있고, 대상 서버로부터 응답에 대한 암호화 트래픽을 수신하여 복호화한 다음, 복호화된 트래픽을 제어부에 전달할 수 있다. The server connection unit 140 requests a connection to the target server according to the connection information received from the controller 130. Preferably, when the connection with the target server is completed, and the connection between the program and the client connection unit 120 is completed, the server connection unit 140 receives the destination information and the traffic content from the control unit 130, encrypts the traffic, and the target server. It can be delivered to, and after receiving and decrypting the encrypted traffic for the response from the target server, the decrypted traffic can be delivered to the controller.

파일 감시부(150)는 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 접근하는 파일과 프로그램이 읽는 파일의 내용을 감시한다. 바람직하게, 파일 감시부(150)는 프로그램이 읽은 파일의 내용을 저장하고, 제어부(130)로부터 읽은 파일의 내용에 대한 트래픽 내용 검사를 요청 받으면, 트래픽 내용이 저장된 읽은 파일의 내용에 존재하는지 여부를 검사하고 검사 결과를 제어부(130)에 전달할 수 있다.The file monitoring unit 150 monitors the file accessed by the program that performs the connection of the encryption communication protocol and the contents of the file read by the program. Preferably, the file monitoring unit 150 stores the contents of the file read by the program, and when the traffic content check is requested for the contents of the file read from the controller 130, whether the traffic contents exist in the contents of the stored read file. The test result may be transmitted to the control unit 130.

이하에서는, 암호화 통신 프로토콜 제어 모듈(100)에서 수행되는 암호화 통신 프로토콜 제어 방법에 대하여 설명할 것이며, 암호화 통신 프로토콜 제어 방법은 암호화 통신 프로토콜의 연결을 형성하는 과정과 암호화 통신 프로토콜의 연결이 형성된 후에 트래픽이나 파일 전송의 제어를 수행하는 과정으로 이루어 지는 바, 먼저, 도 2 내지 4를 참조하여 암호화 통신 프로토콜의 연결을 형성하는 과정을 설명하고, 도 5 내지 8을 참조하여 트래픽 및 파일 전송의 제어를 수행하는 과정을 설명한다.Hereinafter, an encryption communication protocol control method performed by the encryption communication protocol control module 100 will be described. The encryption communication protocol control method includes a process of forming a connection of the encryption communication protocol and a traffic after the connection of the encryption communication protocol is formed. Or a process of controlling file transfer. First, a process of forming a connection of an encryption communication protocol will be described with reference to FIGS. 2 to 4, and control of traffic and file transfer will be described with reference to FIGS. 5 to 8. Describe the process to be performed.

도 2는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 암호화 통신 프로토콜 연결이 형성되는 과정을 나타내는 흐름도이다. 2 is a flowchart illustrating a process of forming an encrypted communication protocol connection in a method of controlling an encrypted communication protocol according to an exemplary embodiment.

도 2를 참조하면, 연결 감시부(110)는 개인컴퓨터에서 암호화 통신 프로토콜 연결을 형성하는 프로그램이 실행되는지 여부를 감시하고 있다가 프로그램이 실행되면(단계 S201), 연결 감시부(110)는 프로그램의 실행을 감지한다(단계 S202).Referring to FIG. 2, the connection monitoring unit 110 monitors whether a program for forming an encrypted communication protocol connection is executed in a personal computer, and when the program is executed (step S201), the connection monitoring unit 110 executes a program. Is detected (step S202).

연결 감시부(110)는 실행된 프로그램이 암호화 통신 프로토콜의 연결을 형성하고자 하는 목적지에 대한 정보를 제어부(130)에 전달하고(단계 S203), 목적지 정보를 변경한다(단계 S204). 여기에서, 목적지에 대한 정보는 IP와 포트(Port) 정보에 해당할 수 있고, 변경된 목적지 정보는 클라이언트 연결부(120)에 해당한다.The connection monitoring unit 110 transmits the information about the destination to which the executed program forms a connection of the encryption communication protocol to the control unit 130 (step S203), and changes the destination information (step S204). Here, the information on the destination may correspond to IP and port information, and the changed destination information corresponds to the client connection unit 120.

일 실시예에서, 연결 감시부(110)는 프로그램에 DLL 인젝션을 하고 프로그램의 연결 함수에 대하여 API 후킹을 하여 목적지 정보를 변경할 수 있다. 이와 같은 DLL 인젝션 및 API 후킹 방법은 특정 프로세스에 DLL을 강제로 삽입하고 특정 API가 호출되었을 때 지정된 코드를 실행하게 하여 원래 목적지가 아닌 다른 목적지로 변경하는 작업을 할 수 있도록 하는 것이다. 보다 구체적으로, 연결 감시부(110)는 프로그램에 DLL 인젝션(DLL Injection)을 하고 프로그램의 연결 함수에 API 후킹(API Hooking)을 하여 연결함수의 호출을 감시하고, 연결함수가 호출되는 것이 감지되면, 연결 감시부(110)는 목적지 정보를 클라이언트 연결부(120)로 변경하기 위한 지정된 코드를 실행한다. 즉, 지정된 코드의 실행으로 인하여 목적지 정보가 클라이언트 연결부(120)로 변경되는 것이다. In one embodiment, the connection monitoring unit 110 may inject a DLL into the program and change the destination information by API hooking to the connection function of the program. This DLL injection and API hooking method is to force the DLL into a specific process and execute the specified code when a specific API is called, allowing the user to change to a destination other than the original destination. More specifically, the connection monitoring unit 110 performs a DLL injection to the program and monitors the call of the connection function by API hooking the connection function of the program, and when it is detected that the connection function is called. The connection monitoring unit 110 executes the designated code for changing the destination information to the client connection unit 120. That is, the destination information is changed to the client connection unit 120 due to the execution of the designated code.

다른 실시예에서, 연결 감시부(110)는 프로그램의 드라이버를 실행시켜 TDI 필터 드라이버를 등록하고 TDI 필터를 통한 감시를 통해 목적지 정보를 획득하여 목적지 정보를 변경할 수 있다. 이와 같은 방법은, 도 3에 도시된 바와 같은, 윈도우의 네트워크 계층에서 TDI Filter 계층에 드라이버를 등록시킨 후 감시를 하는 것이고, 이를 통하여 TCP 연결 요청 신호가 들어왔을 때, 목적지 정보를 원래 목적지가 아닌 다른 곳으로 변경하는 작업이 수행되도록 하는 것이다. 보다 구체적으로, 연결 감시부(110)는 프로그램에서 드라이버(Driver)를 실행시키고, 드라이버의 실행에 따라 TDI 필터 드라이버(TDI Filter Driver)의 등록 및 TDI 필터(Filter)에 의한 감시가 시작되도록 한다. 여기에서, TDI 필터는 네트워크로 나가는 패킷을 감시하기 위하여 TCP, IP, UDP, RawIP 디바이스에 추가되어 해당 장치의 네트워크 연결을 감시하게 된다. 도 4를 참조하면, 연결을 감시하기 위한 커널(Kernel) 구조로서, TDI Filter에서 네트워크 연결이 감지되면, TDI_CONNECT 함수를 이용하여 통신하게 되고, 여기에서, TDI_CONNECT 함수는 연결(통신)하고자 하는 목적지에 연결을 요청하는 함수이고, TDI_CONNECT 함수를 통하여 접속하는 IP와 포트 정보가 목적지에 대한 정보에 해당된다. 그 다음, 네트워크를 통하여 통신하려고 하는 프로세스는 감시 대상 항목으로 추가되고, 예를 들어, iexplore.exe가 실행될 시 해당 프로세스가 통신을 하려고 시도하는 것이므로 iexplore.exe가 감시 대상 항목으로 추가될 수 있다. 그 다음, 감시 대상 항목이 목적지 정보를 변경하기 위하여 기등록된 프로세스인지 여부가 확인되고, 목적지 정보를 변경하기 위하여 기등록된 프로세스이면, 연결 감시부(110)는 IP와 포트(Port)를 변경하여 목적지를 클라이언트 연결부(120)로 변경한 후 통신을 진행할 수 있다.In another embodiment, the connection monitoring unit 110 may execute a driver of a program to register a TDI filter driver, obtain destination information through monitoring through the TDI filter, and change the destination information. In this method, the driver is registered in the TDI Filter layer and monitored in the network layer of Windows, as shown in FIG. 3. When the TCP connection request signal is received, the destination information is not the original destination. To make the change to something else. More specifically, the connection monitoring unit 110 executes a driver in a program, and registers the TDI filter driver and monitors the TDI filter according to the execution of the driver. Here, the TDI filter is added to the TCP, IP, UDP, RawIP device to monitor the outgoing packet to the network to monitor the network connection of the device. Referring to FIG. 4, as a kernel structure for monitoring a connection, when a network connection is detected by the TDI filter, the TDI_CONNECT function communicates using a TDI_CONNECT function, where the TDI_CONNECT function is connected to a destination to be connected (communicated). This is a function for requesting a connection, and IP and port information connected through the TDI_CONNECT function correspond to information on a destination. Then, the process that wants to communicate over the network is added to the monitored item. For example, iexplore.exe can be added as the monitored item because the process tries to communicate when iexplore.exe is executed. Then, it is checked whether the monitored item is a process registered in advance to change the destination information, and if the process is registered in advance to change the destination information, the connection monitoring unit 110 changes the IP and the port. To change the destination to the client connection unit 120 and then proceed with communication.

연결 감시부(110)는 목적지 정보를 변경한 후, 프로그램에 암호화 통신 프로토콜의 연결을 호출하고(단계 S205), 프로그램은 클라이언트 연결부(120)에 암호화 통신 프로토콜의 연결을 요청한다(단계 S206). 즉, 단계 S204를 통하여 프로그램의 연결함수에서 목적지 정보가 클라이언트 연결부(120)로 변경되었는바, 연결 감시부(110)가 프로그램의 연결함수를 호출하면, 프로그램이 클라이언트 연결부(120)로 연결을 요청하게 되는 것이다. After changing the destination information, the connection monitoring unit 110 calls the program to connect the encrypted communication protocol (step S205), and the program requests the client connection unit 120 to connect the encrypted communication protocol (step S206). That is, the destination information is changed to the client connection unit 120 in the connection function of the program through step S204. When the connection monitoring unit 110 calls the connection function of the program, the program requests the connection to the client connection unit 120. It is done.

클라이언트 연결부(120)는 프로그램으로부터 요청된 연결요청을 바로 수신한 후 이하에서 설명할 단계 S207 내지 S215가 수행될 때까지 대기하거나, 또는 단계 S207 내지 S216이 수행될 때까지 대기하고 있다가 연결요청을 수신할 수 있다. 이하에서는, 후자의 경우를 기준으로 설명한다.The client connection unit 120 immediately receives the requested connection request from the program and waits until steps S207 to S215 described below are performed, or waits until steps S207 to S216 are performed, and then waits for a connection request. Can be received. Hereinafter, the latter case will be described as a reference.

단계 S203을 통하여 제어부(130)로 목적지 정보가 전달되면, 제어부(130)는 목적지 정보를 검사하고(단계 S207), 목적지에 대한 정보를 포함하는 연결정보를 서버 연결부(140)에 전달한다(단계 S208). 여기에서, 연결정보는 목적지 정보(IP, Port) 및 목적지 정보의 검사 결과값을 포함한다. 보다 구체적으로, 제어부(130)는 목적지 정보에 포함된 IP가 암호화 통신 프로토콜의 제어 대상인지 여부를 검사하고, IP가 암호화 통신 프로토콜의 제어 대상이 아닌 것으로 검사 되면, 암호화 통신 프로토콜의 연결 완료 후 수행되는 트래픽 및 파일 전송의 제어 과정에서 로그 저장 및 트래픽 변경을 수행하지 않는다. 또한, 제어부(130)는 목적지 정보에 포함된 IP가 허가된 목적지로 향하는 접속인지 여부를 검사하고, IP가 허가되지 않은 목적지로 향하는 접속인 것으로 검사되면, 암호화 통신 프로토콜의 연결 완료 후, 해당 연결을 종료할 수 있다.When the destination information is transmitted to the controller 130 through step S203, the controller 130 checks the destination information (step S207), and transmits the connection information including the information on the destination to the server connection unit 140 (step S208). Here, the connection information includes the destination information (IP, Port) and the test result value of the destination information. More specifically, the controller 130 checks whether the IP included in the destination information is the control target of the encryption communication protocol, and if it is determined that the IP is not the control target of the encryption communication protocol, the controller 130 performs the connection after the completion of the connection of the encryption communication protocol. Log storage and traffic changes are not performed during the control of traffic and file transfers. In addition, the controller 130 checks whether the IP included in the destination information is a connection to an authorized destination, and if it is determined that the IP is a connection to an unauthorized destination, after the connection of the encryption communication protocol is completed, the connection is performed. Can be terminated.

서버 연결부(140)는 연결정보를 수신하여 목적지에 해당하는 대상 서버에 암호화 통신 프로토콜의 연결을 요청하고(단계 S209), 연결이 완료되면(단계 S210), 암호화 통신 프로토콜의 공개정보로부터 주체이름 및 주체대체이름을 추출한다(단계 S211). 여기에서, 공개정보는 공개키를 의미하는 것으로서, 공개정보는 SSL 인증서 형태로 되어 있고, 서버 연결부(140)는 인증서의 속성 안에 포함되어 있는 주체이름 및 주체대체이름을 추출하는 것이다. 예를 들어, 주체이름에는 google.com과 같은 대표 도메인 이름 값이 들어갈 수 있고, 주체대체이름에는, 다중 도메인이 사용되는 경우, 대표 도메인 외의 다중 도메인 이름 값이 들어갈 수 있다. 바람직하게, 주체이름 및 주체대체이름은, 암호화 통신 프로토콜에 접속한 URL과 공개키로 사용된 인증서의 주체이름이 동일한지 여부를 비교하여 해당 암호화 통신 프로토콜의 정규 여부를 확인하는데 이용될 수 있다.그 다음, 서버 연결부(140)는 주체이름 및 주체대체이름을 제어부(130)에 전달한다(S212).The server connection unit 140 receives the connection information and requests a connection of the encryption communication protocol to the target server corresponding to the destination (step S209), and when the connection is completed (step S210), the subject name and the public name of the encryption communication protocol are disclosed. The subject alternative name is extracted (step S211). Herein, the public information means a public key, and the public information is in the form of an SSL certificate, and the server connection unit 140 extracts a subject name and a subject substitute name included in the attribute of the certificate. For example, the subject name may include a representative domain name value such as google.com, and the subject alternative name may include a multi-domain name value other than the representative domain when multiple domains are used. Preferably, the subject name and the subject alternative name may be used to check whether the encryption communication protocol is regular by comparing whether the URL connected to the encryption communication protocol and the subject name of the certificate used as the public key are the same. Next, the server connection unit 140 transmits the subject name and the subject alternative name to the controller 130 (S212).

제어부(130)는 서버 연결부(140)로부터 주체이름 및 주체대체이름을 전달받기 이전에 서명정보를 생성하여 등록할 수 있다(단계 S213). 바람직하게, 제어부(130)는 인증기관이 발행한 서명정보에 해당하는 제1 개인키 및 제1 인증서를 생성하여 개인컴퓨터에 등록할 수 있다.The controller 130 may generate and register signature information before receiving the subject name and the subject substitute name from the server connection unit 140 (step S213). Preferably, the controller 130 may generate a first private key and a first certificate corresponding to signature information issued by a certification authority and register the same with a personal computer.

제어부(130)는 단계 S212에서 전달받은 주체이름 및 주체대체이름을 기초로 공개정보 및 비밀정보를 생성하고 단계 S213에서 생성된 서명정보를 이용하여 공개정보를 전자서명한다(단계 S214). 바람직하게, 제어부(130)는 주체이름 및 주체대체이름을 기초로, 공개정보에 해당하는 제2 인증서 및 비밀정보에 해당하는 제2 개인키를 생성하고, 제1 개인키를 이용하여 제2 인증서에 전자서명을 수행할 수 있다. 여기에서, 제2 개인키 및 제2 인증서를 생성하는 방법은 종래의 opensslAPI가 활용될 수 있으나, 그 방법은 이에 한정되지 않는다. The controller 130 generates public information and secret information based on the subject name and subject substitution name received in step S212, and digitally signs the public information using the signature information generated in step S213 (step S214). Preferably, the controller 130 generates a second certificate corresponding to the public information and a second private key corresponding to the secret information based on the subject name and the subject substitution name, and uses the first private key to generate the second certificate. Digital signatures can be performed at. Here, the method of generating the second private key and the second certificate may use a conventional opensslAPI, but the method is not limited thereto.

제어부(130)는 공개정보에 해당하는 전자서명이 수행된 제2 인증서와 비밀정보에 해당하는 제2 개인키를 클라이언트 연결부(120)에 전달한다(단계 S215).The controller 130 transmits the second certificate with the electronic signature corresponding to the public information and the second private key corresponding to the secret information to the client connection unit 120 (step S215).

클라이언트 연결부(120)는 전자서명이 수행된 제2 인증서에 해당하는 공개정보를 등록하고(단계 S216), 단계 S206에서 프로그램으로부터 요청된 연결요청을 수신한다(단계 S217). 클라이언트 연결부(120)는 전자서명이 수행된 제2 인증서를 포함하는 공개정보를 프로그램에 전달한다(단계 S218).The client connection unit 120 registers public information corresponding to the second certificate on which the digital signature was performed (step S216), and receives a connection request requested from the program in step S206 (step S217). The client connection unit 120 transmits the public information including the second certificate on which the digital signature was performed (step S218).

프로그램은 전자서명이 수행된 제2 인증서를 포함하는 공개정보를 검사하고(단계 S219), 연결을 완료한다(단계 S220). 바람직하게, 프로그램은 단계 S213을 통하여 개인컴퓨터에 등록된 제1 인증서를 기초로 전자서명이 수행된 제2 인증성의 발급 기관을 검사하고, 전자서명이 수행된 제2 인증서의 이름과 암호화 통신 프로토콜의 접속 대상의 이름, 즉, 주체이름 및 주체대체이름을 비교하여 검사하고, 전자서명이 수행된 제2 인증서의 유효기간을 검사할 수 있다. 이와 같은 검사들이 통과되면, 프로그램과 클라이언트 연결부(120)의 암호화 통신 프로토콜의 연결은 완료된다.The program checks the public information including the second certificate on which the digital signature was performed (step S219), and completes the connection (step S220). Preferably, the program checks the issuing authority of the second authenticity in which the digital signature was performed based on the first certificate registered in the personal computer through step S213, and determines the name of the second certificate in which the digital signature was performed and the encryption communication protocol. The name of the object to be accessed, that is, the subject name and the subject alternative name may be compared and checked, and the validity period of the second certificate on which the digital signature is performed may be checked. If such checks pass, the connection of the encryption communication protocol of the program and the client connection unit 120 is completed.

도 5는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.5 is a flowchart illustrating a process of controlling traffic transmission in an encryption communication protocol control method according to an embodiment.

도 5에 도시된 과정은 도 2에서 단계 S220을 통하여 프로그램과 클라이언트 연결부(120)의 암호화 통신 프로토콜의 연결이 완료된 후에 수행되는 것으로서, 도 5를 참조하면, 프로그램에서 클라이언트 연결부(120)로 암호화 트래픽을 전송한다(단계 S501).The process shown in FIG. 5 is performed after the connection between the program and the encrypted communication protocol of the client connection unit 120 is completed through step S220 in FIG. 2. Referring to FIG. 5, the encrypted traffic from the program to the client connection unit 120 is described. (Step S501).

클라이언트 연결부(120)는 암호화 트래픽을 복호화하고(단계 S502), 복호화한 트래픽을 제어부(130)에 전달한다(단계 S503). 바람직하게, 암호화 트래픽의 복호화는 종래의 암호화 패킷 수신 함수에 의하여 수행될 수 있고, 복호화를 하기 위한 정보에 해당하는 대칭키는, 도 2를 참조하여 설명된 단계 S218가 수행될 때 생성될 수 있다.The client connection unit 120 decrypts the encrypted traffic (step S502), and transmits the decrypted traffic to the controller 130 (step S503). Preferably, decryption of the encrypted traffic may be performed by a conventional encrypted packet reception function, and a symmetric key corresponding to information for decryption may be generated when step S218 described with reference to FIG. 2 is performed. .

제어부(130)는 트래픽 내용을 로그로 저장하고(단계 S504), 트래픽 내용을 검사한 후(단계 S505), 트래픽을 서버 연결부(140)로 전달한다(단계 S506). 여기에서, 로그로 저장한다는 것은 감사기록을 남기는 것으로서, 제어부(130)는 트래픽 내용을 파일 형태로 저장할 수 있다.The controller 130 stores the traffic content as a log (step S504), examines the traffic content (step S505), and then passes the traffic to the server connection unit 140 (step S506). Here, storing as a log leaves an audit record, and the controller 130 may store traffic contents in a file form.

일 실시예에서, 제어부(130)는 단계 S505의 수행 결과 트래픽의 내용이 부적합한 것으로 판단되면, 트래픽의 내용을 변경한 후 변경한 트래픽을 서버 연결부(140)로 전달할 수 있다. 보다 구체적으로, 제어부(130)는 부적합한 트래픽의 형태에 대한 패턴을 미리 정의하여 등록할 수 있고, 단계 S505에서 제어부(130)는 트래픽의 내용에 기등록된 부적합한 트래픽의 형태에 대한 패턴이 있는지 여부를 검사하여 트래픽의 내용이 부적합한 것인지 여부를 판단할 수 있다. 트래픽의 내용이 부적합한 것으로 판단되면, 제어부(130)는, 클라이언트 연결부(120)로부터 수신하여 메모리에 저장한 트래픽 내용의 전체 또는 일부를 변경한 후 서버 연결부(140)로 전달할 수 있다. 즉, 제어부(130)는 트래픽 내용의 전체 또는 일부를 변경하여 원래 목적의 트래픽이 대상 서버로 전달되지 못하게 하는 것이다.In an embodiment, if it is determined that the contents of the traffic are inappropriate as a result of performing step S505, the controller 130 may transfer the changed traffic to the server connection unit 140 after changing the contents of the traffic. More specifically, the controller 130 may predefine and register the pattern for the inappropriate traffic type, and in step S505, the controller 130 determines whether there is a pattern for the inappropriate traffic type previously registered in the content of the traffic. Can be determined to determine whether the contents of the traffic are inappropriate. If it is determined that the contents of the traffic are inappropriate, the controller 130 may change all or part of the contents of the traffic received from the client connection unit 120 and store them in the memory, and transmit the changed contents to the server connection unit 140. That is, the controller 130 changes the whole or part of the traffic content so that the original destination traffic cannot be delivered to the target server.

서버 연결부(140)는 트래픽을 암호화 하고(단계 S507), 암호화한 트래픽을 대상 서버에 전달한다(단계 S508). 바람직하게, 서버 연결부(140)는 트래픽을 대상 서버의 암호화 통신 프로토콜의 공개정보를 기초로 암호화 할 수 있고, 여기에서, 트래픽을 암호화하는데 이용되는 공개정보는 대상 서버의 인증서이며, 서버 연결부(140)는 인증서를 이용하여 대칭키를 생성한 후 대칭키를 이용하여 트래픽을 암호화하거나 트래픽을 복호화할 수 있다.The server connection unit 140 encrypts the traffic (step S507), and transmits the encrypted traffic to the target server (step S508). Preferably, the server connection unit 140 may encrypt the traffic based on the public information of the encryption communication protocol of the target server, wherein the public information used to encrypt the traffic is a certificate of the target server, and the server connection unit 140 ) Can generate a symmetric key using a certificate and then encrypt or decrypt the traffic using the symmetric key.

대상 서버는 서버 연결부(140)로부터 암호화한 트래픽을 수신한다(단계 S509). 즉, 본 발명에 따르면, 대상 서버는 프로그램으로부터 암호화된 트래픽을 바로 수신하는 것이나 아니라, 클라이언트 연결부(120), 제어부(130), 및 서버 연결부(140)를 통하여 안전하다고 판단된 트래픽을 전달받는 것이다.The target server receives the encrypted traffic from the server connection unit 140 (step S509). That is, according to the present invention, the target server does not directly receive the encrypted traffic from the program, but receives the traffic determined to be secure through the client connection unit 120, the control unit 130, and the server connection unit 140. .

도 6은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 응답 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.6 is a flowchart illustrating a process in which response traffic transmission is controlled in an encryption communication protocol control method according to an embodiment.

도 5의 단계 S501 내지 S509를 통하여 대상 서버가 암호화 트래픽을 수신한 후, 대상 서버는 수신한 암호화 트래픽에 대한 응답으로서 암호화 트래픽을 서버 연결부(140)에 전송한다(단계 S601). 여기에서, 대상서버가 서버 연결부(140)에 전송하는 암호화 트래픽은 대상서버가 수신한 암호화 트래픽에 대한 응답 트래픽으로서 서로 다른 트래픽에 해당한다.After the target server receives the encrypted traffic through steps S501 to S509 of FIG. 5, the target server transmits the encrypted traffic to the server connection unit 140 as a response to the received encrypted traffic (step S601). Here, the encryption traffic transmitted by the target server to the server connection unit 140 corresponds to different traffic as response traffic to the encryption traffic received by the target server.

서버 연결부(140)는 암호화 트래픽을 복호화 하고(단계 S602), 복호화한 트래픽을 제어부(130)에 전달한다(단계 S603). 바람직하게, 서버 연결부는, 상기 도 5를 참조하여 설명된 단계 S507에서 트래픽을 암호화하는데 이용된 대칭키를 이용하여 암호화 트래픽을 복호화할 수 있다.The server connection unit 140 decrypts the encrypted traffic (step S602), and transmits the decrypted traffic to the controller 130 (step S603). Preferably, the server connection unit may decrypt the encrypted traffic using the symmetric key used to encrypt the traffic in step S507 described with reference to FIG.

제어부(130)는 복호화된 트래픽을 전달받고, 상기 도 5를 참조하여 설명된 단계 S505에서 수행된 트래픽 내용의 검사 결과에 따라 트래픽을 변경한다(단계 S604). 바람직하게, 단계 S505에서 트래픽의 내용이 부적합한 것으로 검사되어 트래픽이 변경된 경우에는, 제어부(130)는 트래픽 내용의 전체 또는 일부를 변경하여 프로그램이 대상 서버로부터 전송된 응답 트래픽을 수신했을 때 수행되는 동작이 변경되도록 할 수 있고, 단계 S505에서 트래픽의 내용이 적합한 것으로 검사된 경우에는, 제어부(130)는 트래픽 내용을 변경하지 않을 수 있다.The control unit 130 receives the decrypted traffic and changes the traffic according to the inspection result of the traffic content performed in step S505 described with reference to FIG. 5 (step S604). Preferably, when the content of the traffic is checked as inappropriate in step S505 and the traffic is changed, the control unit 130 changes the whole or part of the traffic content to perform an operation performed when the program receives the response traffic transmitted from the target server. If the content of the traffic is checked to be appropriate in step S505, the controller 130 may not change the content of the traffic.

제어부(130)는 단계 S604의 수행에 따라 변경되거나 또는 변경되지 않은 트래픽을 클라이언트 연결부(120)에 전달한다(단계 S605).The controller 130 transmits the traffic changed or unchanged according to the performance of step S604 to the client connection unit 120 (step S605).

클라이언트 연결부(120)는 트래픽을 암호화 하여(단계 S606), 프로그램에 전달하고(단계 S607), 프로그램은 암호화된 트래픽을 수신한다(단계 S608).The client connection unit 120 encrypts the traffic (step S606), delivers it to the program (step S607), and the program receives the encrypted traffic (step S608).

예를 들어, 프로그램에서 트래픽A를 전송하고 대상서버가 트래픽A를 수신한 후, 이에 대한 응답으로서 트래픽B를 전송한다고 가정하고, 서버 연결부(140)에서 암호화C 및 복호화D가 수행되고, 클라이언트 연결부에서 암호화C' 및 복호화D'이 수행된다고 가정하면, 도 5 및 도 6을 통하여 수행되는 트래픽 및 응답 트래픽의 전송 제어 과정은 다음과 같다.For example, assuming that the program transmits traffic A and the target server receives the traffic A, and then sends traffic B as a response thereto, encryption C and decryption D are performed at the server connection unit 140, and the client connection unit is performed. Assuming encryption C 'and decryption D' are performed in FIG. 5, the transmission control process of the traffic and response traffic performed through FIGS. 5 and 6 is as follows.

프로그램으로부터 암호화된 트래픽 C'(A)가 클라이언트 연결부(120)에 전송되고, 클라이언트 연결부(120)는 암호화 트래픽을 복호화하여 D'(C'(A))(=A)를 제어부(130)에 전달하고, 제어부(130)는 트래픽A의 내용을 로그로 저장하고 내용을 검사한 후 트래픽 A를 서버 연결부(140)에 전달하고, 서버 연결부는 트래픽을 암호화 하여 C(A)를 대상서버에 전달하고, 대상서버는 암호화 트래픽을 복화하하여 D(C(A))(=A)를 획득한다. 그 다음, 대상서버는 트래픽A에 대한 응답으로서 트래픽B를 암호화하여 C(B)를 서버 연결부(140)에 전송하고, 서버 연결부(140)는 암호화 트래픽을 복호화 하여 D(C(B))(=B)를 제어부(130)에 전달하고, 제어부(130)는 검사 결과에 따라 트래픽B를 변경한 후 클라이언트 연결부(120)에 전달하고, 클라이언트 연결부(120)는 트래픽B를 암호화 하여 C'(B)를 프로그램에 전달하고, 프로그램은 암호화 트래픽을 복호화하여 D'(C'(B))(=B)를 획득한다.The encrypted traffic C '(A) from the program is transmitted to the client connection unit 120, and the client connection unit 120 decrypts the encrypted traffic and transmits D' (C '(A)) (= A) to the control unit 130. The controller 130 stores the contents of the traffic A as a log and inspects the contents, and then passes the traffic A to the server connection unit 140. The server connection unit encrypts the traffic and delivers the C (A) to the target server. The target server then decodes the encrypted traffic to obtain D (C (A)) (= A). Then, the target server encrypts traffic B as a response to traffic A, and transmits C (B) to the server connection unit 140, and the server connection unit 140 decrypts the encrypted traffic to D (C (B)) ( = B) is transmitted to the controller 130, and the controller 130 changes the traffic B according to the inspection result and then transfers the traffic B to the client connection unit 120, and the client connection unit 120 encrypts the traffic B to C '( B) is passed to the program, which decrypts the encrypted traffic to obtain D '(C' (B)) (= B).

다른 예를 들어, 프로그램이 웹 브라우저이고, 대상 서버가 포털사이트(예를 들어, daum.net)에 해당하고, 메일 전송으로 판단될 수 있는 “subject”라는 내용이 트래픽에 있는 경우를 부적합한 트래픽에 해당하는 것으로 가정하면, 도 5 및 도 6을 통하여 수행되는 트래픽 및 응답 트래픽의 전송 제어 과정은 다음과 같다.In another example, if the program is a web browser, the target server corresponds to a portal site (eg daum.net), and there is a "subject" in the traffic that can be determined to send mail, Assuming that this is the case, the transmission control process of traffic and response traffic performed through FIGS. 5 and 6 is as follows.

웹 브라우저에서 사용자에 의하여 메일 전송이 선택(클릭)되면, 웹 브라우저는 Request Headers의 내용과 Request Payload의 내용을 암호화 하여 클라이언트 연결부(120)에 전송한다. 클라이언트 연결부(120)는 암호화 트래픽을 복호화하여 제어부(130)에 전달하고, 복호화된 트래픽은 도 10의 (a)에 도시된 바와 같다. 제어부(130)는 트래픽의 내용을 로그로 저장하고, 트래픽 내용을 검사한다. 검사 결과 트래픽의 내용 중 “subject”라는 내용이 감지되는바 제어부(130)는 해당 트래픽을 부적합한 것으로 판단하고 트래픽을 변경한다. 예를 들어, 제어부(130)는 도 10의 (b)에 도시된 바와 같이, Request Payload의 752 Byte의 내용을 모두 Null로 변경할 수 있다. 제어부(130)는 변경된 트래픽을 서버 연결부(140)에 전달하고, 서버 연결부(140)는 트래픽을 암호화하여 포털사이트로 전송한다.When the mail transmission is selected (clicked) by the user in the web browser, the web browser encrypts the contents of the request headers and the contents of the request payload and transmits the contents to the client connection unit 120. The client connection unit 120 decrypts the encrypted traffic and transmits the encrypted traffic to the controller 130, and the decrypted traffic is as shown in FIG. The controller 130 stores the contents of the traffic as a log and inspects the contents of the traffic. As a result of the inspection, the content of the “subject” is detected, and the controller 130 determines that the traffic is inappropriate and changes the traffic. For example, as shown in FIG. 10B, the controller 130 may change all of the contents of 752 bytes of the request payload to Null. The controller 130 transfers the changed traffic to the server connection unit 140, and the server connection unit 140 encrypts the traffic and transmits the traffic to the portal site.

포털사이트는 서버 연결부(140)로부터 수신한 트래픽에 대한 응답으로 도 10의 (c)에 도시된 바와 같은 응답 트래픽을 암호화 하여 서버 연결부(140)로 전송한다. 서버 연결부(140)는 암호화 트래픽을 복호화 하여 제어부(130)에 전달한다. 여기에서, 복호화된 트래픽은 도 10의 (c)에 도시된 바와 같다. 웹 브라운저로부터 트래픽이 전달될 때 제어부(130)에서 해당 트래픽은 부적절한 것으로 판단하여 변경되었으므로, 제어부(130)는 웹 브라우저가 암호화 통신 연결을 종료하도록 포털사이트로부터 전송된 응답 트래픽을 변경한다. 예를 들어, 제어부(130)는 도 10의 (c)에 도시된 바와 같은 HTTP 프로토콜 요청의 성공을 의미하는 트래픽을 도 10의 (d)에 도시된 바와 같은 트래픽으로 변경할 수 있고, “HTTP/1.1 400”은 HTTP 프로토콜 요청의 실패를 의미한다. 제어부(130)는 변경된 트래픽을 클라이언트 연결부(120)에 전달하고, 클라이언트 연결부(120)는 해당 트래픽을 암호화 하여 웹 브라우저에 전송한다. 결과적으로, 웹 브라우저는 도 10의 (d)에 도시된 트래픽을 수신하고, 도 10의 (e)에 도시된 바와 같은 메일 전송 실패 페이지를 출력하게 된다.The portal site encrypts the response traffic as shown in (c) of FIG. 10 in response to the traffic received from the server connection unit 140 and transmits it to the server connection unit 140. The server connection unit 140 decrypts the encrypted traffic and transmits the encrypted traffic to the controller 130. Here, the decrypted traffic is as shown in FIG. When the traffic is transmitted from the web browser, the controller 130 determines that the traffic is inappropriate, and thus the controller 130 changes the response traffic transmitted from the portal site so that the web browser terminates the encrypted communication connection. For example, the controller 130 may change the traffic indicating the success of the HTTP protocol request as shown in (c) of FIG. 10 into traffic as shown in (d) of FIG. 1.1 400 ”means failure of an HTTP protocol request. The controller 130 transmits the changed traffic to the client connection unit 120, and the client connection unit 120 encrypts the traffic and transmits the traffic to the web browser. As a result, the web browser receives the traffic shown in Fig. 10D, and outputs a mail transmission failure page as shown in Fig. 10E.

도 7은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 파일 전송이 제어되는 과정을 나타내는 흐름도이다.7 is a flowchart illustrating a process of controlling file transfer in an encryption communication protocol control method according to an embodiment.

도 7에 도시된 과정은 도 2에서 단계 S220을 통하여 프로그램과 클라이언트 연결부(120)의 암호화 통신 프로토콜의 연결이 완료된 후에 수행되는 것으로서, 도 6을 참조하면, 파일 감시부(150)는 프로그램에서 파일 읽기가 수행되는지 여부를 감시하고(단계 S701), 프로그램에서 파일 읽기가 발생하면(단계 S702), 파일 감시부(150)는 프로그램에서 읽은 내용을 저장한다(단계 S703). 프로그램에서 파일을 전송하기 위해서는 파일을 읽고 다른 위치에 쓰거나 파일을 읽고 네트워크를 통해 패킷을 전송하는 방법을 취하게 되므로, 어떤 파일이 읽히는지를 감시하여 파일이 외부로 유출될 때 비교될 수 있는 대상이 되도록 프로그램에서 읽은 내용을 저장하는 것이다. The process shown in FIG. 7 is performed after the connection between the program and the encryption communication protocol of the client connection unit 120 is completed through step S220 in FIG. 2. Referring to FIG. 6, the file monitoring unit 150 stores a file in a program. It is monitored whether or not reading is performed (step S701), and if file reading occurs in the program (step S702), the file monitoring unit 150 stores the content read by the program (step S703). In order to transfer a file, the program reads the file, writes it to another location, or reads the file and transmits the packet over the network. Therefore, it is possible to monitor which file is being read and compare it when the file is leaked to the outside. Try to save what you read in the program.

바람직하게, 파일 읽기가 수행되는지 여부의 감시는 미니필터(Minifilter)를 통하여 수행될 수 있다. 파일 시스템 필터 드라이버의 계층 구조를 나타낸 도 8을 참조하면, 미니필터는 Filter Manager Frame과 연결되어, 파일 시스템에 대한 요청을 가로채어 원래 의도했던 대상에 도달하기 전에 차단하거나 변경을 하는 작업을 수행할 수 있다. 보다 구체적으로, 도 9를 참조하면, 미니필터를 통하여 수행되는 동작을 설명하기 위한 것으로서 파일 읽기의 발생을 감지하고 읽은 내용을 저장하는 부분에 대한 커널 구조를 나타낸다. 프로그램은 ReadFile 함수와 createFilemapping 함수를 이용하여 파일을 읽으므로, 필터 드라이버에서 파일을 읽는 것을 감시하기 위해 미니필터에는 ReadFile 함수와 createFilemapping 함수 각각에 매칭되는 함수인 IRP_MJ_READ 함수와 IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 함수를 등록하여 프로그램이 파일을 읽는지 여부를 감시할 수 있다. 여기에서, IRP_MJ_READ 함수와 IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 함수 각각은 데이터가 목표 드라이버(File system Driver)에 도달하기 전에 데이터를 획득하여 감시하는 PreOperation 계층과 데이터가 목표 드라이버에 도달한 후에 데이터를 획득하여 감시하는 PostOperation 계층을 포함한다.Preferably, monitoring whether file reading is performed may be performed through a minifilter. Referring to FIG. 8, which shows the hierarchical structure of the file system filter driver, the minifilter is connected with a Filter Manager Frame to intercept a request for a file system and perform an operation of blocking or changing before reaching the intended destination. Can be. More specifically, referring to FIG. 9, it illustrates a kernel structure for a part for detecting the occurrence of file reading and storing the read content, for explaining an operation performed through the minifilter. Since the program reads the file using the ReadFile and createFilemapping functions, the minifilter registers the IRP_MJ_READ and IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION functions in the minifilter to monitor reading the file from the filter driver. You can monitor whether or not you read. Here, each of the IRP_MJ_READ and IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION functions includes a PreOperation layer that acquires and monitors data before it reaches the file system driver, and a PostOperation layer that acquires and monitors the data after it reaches the target driver. do.

바람직하게, IRP_MJ_READ 함수에서 파일 읽기가 발생하는지 여부를 감시 할 때에는 PostOperation에서 감시할 수 있고, 파일 읽기가 발생하여 읽은 내용이 들어오면 읽은 내용의 일부분과 파일의 경로, 드라이브 정보, 및 프로세스 아이디 등의 정보가 저장될 수 있다.Preferably, when monitoring whether file reading occurs in IRP_MJ_READ function, it can be monitored by PostOperation. When a file read occurs and the read comes in, the part of the read and the path of the file, drive information, process ID, etc. Information can be stored.

일반적인 파일들은 Create, Open, Read, Write 함수를 이용하므로 드라이버 단에서 파일의 데이터 확인이 가능하나, 특정 조건에서 발생하는 IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 함수에서는 데이터가 직접 읽혀지는게 아니기 때문에, 즉, Create, Open, Read, Write와 같은 함수들이 호출되지 않기 때문에, IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION 함수에서는 임의로 OpenFile, ReadFile과 같은 함수를 호출하여 직접 파일을 열고 데이터를 직접 읽는 것을 시도하게 된다. 해당 작업은 파일 핸들이 열리기 전인 PreOperation 에서 감시가 이루어 진다. 여기에서, 파일 핸들은 프로그램에 사용되는 각각의 파일을 식별하기 위하여 부여되는 고유의 ID에 해당한다. ZwOpenFile 함수를 이용하여 파일 핸들을 얻고 ZwReadfile 함수를 이용하여 파일의 데이터 일부분을 가지고 온다. 읽은 데이터는 파일의 경로와 드라이브 정보와 프로세스 아이디 등의 정보를 저장해 놓는다. 또한, 저장된 데이터 정보가 발생할 때마다 유저 단의 어플리케이션과 통신을 하여 어플리케이션의 메모리에 Read 된 파일 목록들을 저장하여 두고, 저장된 데이터는 IRP_MJ_CLEANUP 함수에서 해당 파일 핸들이 종료될 때까지 유지된다.Since general files use Create, Open, Read, and Write functions, the data of the file can be checked in the driver stage, but since IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION function does not read data directly, that is, Create, Open, Read, Write Since functions such as are not called, IRP_MJ_ACQUIRE_FOR_SECTION_SYNCHRONIZATION will randomly call functions such as OpenFile and ReadFile to open the file and read the data directly. The operation is monitored in PreOperation before the file handle is opened. Here, the file handle corresponds to a unique ID assigned to identify each file used for the program. Get the file handle using ZwOpenFile and get the data portion of the file using ZwReadfile. The read data stores information such as file path, drive information, and process ID. In addition, whenever the stored data information occurs, it communicates with the application of the user end to store the list of files read in the application memory, and the stored data is maintained until the file handle is terminated in the IRP_MJ_CLEANUP function.

프로그램은 읽은 내용을 암호화 트래픽으로 클라이언트 연결부(120)에 전송한다(단계 S704).The program transmits the read content to the client connection unit 120 as encrypted traffic (step S704).

클라이언트 연결부(120)는 암호화 트래픽을 복호화하고(단계 S705), 복호화한 트래픽을 제어부(130)에 전달한다(단계 S706).The client connection unit 120 decrypts the encrypted traffic (step S705), and transfers the decrypted traffic to the controller 130 (step S706).

제어부(130)는 복호화된 트래픽 내용의 검사를 파일 감시부(150)에 요청한다(단계 S707).The control unit 130 requests the file monitoring unit 150 to inspect the decrypted traffic content (step S707).

파일 감시부(150)는 검사를 요청 받은 트래픽 내용과 단계 S603에서 저장한 읽은 내용을 비교하여(단계 S708), 파일 유출 행위 여부를 감지한다(단계 S709). 바람직하게, 파일 감시부(150)는 트래픽 내용이 읽은 내용에 포함되는지 여부를 검사할 수 있고, 읽은 내용이 트래픽 내용을 포함한다면 파일 유출 행위로 판단할 수 있다. The file monitoring unit 150 compares the contents of the traffic requested for inspection with the contents of the reading stored in step S603 (step S708) and detects whether the file is leaked (step S709). Preferably, the file monitoring unit 150 may check whether the traffic content is included in the read content, and if the read content includes the traffic content, may determine that the file is leaked.

일 실시예에서, 파일 감시부(150)는 파일 유출 행위인 것으로 검사되면, 파일 유출 행위에 해당한다는 검사결과를 제어부(140)에 전달하고(단계 S710), 제어부(140)는 클라이언트 연결부(130)에 프로그램과의 암호화 통신 프로토콜의 연결 종료를 요청하고(단계 S711), 클라이언트 연결부(130)는 이에 따라 프로그램과의 암호화 통신 프로토콜의 연결을 종료할 수 있다(단계 S712). In one embodiment, if the file monitoring unit 150 is determined to be a file leakage activity, the file monitoring unit 150 transmits a test result corresponding to the file leakage activity to the control unit 140 (step S710), the control unit 140 is a client connection unit 130 Request to terminate the connection of the encrypted communication protocol with the program (step S711), and the client connection unit 130 may terminate the connection of the encrypted communication protocol with the program accordingly (step S712).

다른 실시예에서, 파일 유출 행위에 해당하지 않는 것으로 검사되어 파일 감시부(150)가 해당 검사 결과를 제어부(130)에 전달하면, 제어부(130)는 트래픽을 서버 연결부(140)에 전달하고, 서버 연결부(140)는 전달받은 트래픽을 암호화한 후 대상 서버에 전달하여, 대상 서버가 암호화된 트래픽을 수신하도록 할 수 있다.In another embodiment, when the file monitoring unit 150 is determined to not correspond to the file leakage activity and the file monitoring unit 150 transmits the inspection result to the control unit 130, the control unit 130 transmits the traffic to the server connection unit 140, The server connection unit 140 may encrypt the received traffic and transfer the encrypted traffic to the target server so that the target server receives the encrypted traffic.

즉, 본 발명에 의하면, 프로그램으로부터 대상 서버로 파일이 바로 전송되는 것이 아니라, 클라이언트 연결부(120), 제어부(130), 서버 연결부(140), 및 파일 감시부(150)를 통하여 파일 유출 행위에 해당하지 않는 것으로 검사된 파일에 대해서만 대상 서버로 전송하고, 파일 유출 행위인 것으로 검사되면 암호화 통신 프로토콜의 연결을 종료하므로 보안이 유지될 수 있는 것이다.That is, according to the present invention, the file is not directly transmitted from the program to the target server, but the file leaking activity is performed through the client connection unit 120, the control unit 130, the server connection unit 140, and the file monitoring unit 150. Only files scanned as not applicable are transmitted to the target server, and if the file is leaked, the connection of the encryption communication protocol is terminated, thereby maintaining security.

전술한 본 발명에 따른 암호화 통신 프로토콜 제어 모듈에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.While a preferred embodiment of the cryptographic communication protocol control module according to the present invention has been described above, the present invention is not limited thereto, and the present invention is not limited thereto, and various modifications can be made within the scope of the claims and the detailed description of the invention and the accompanying drawings. It is possible and this also belongs to the present invention.

100: 암호화 통신 프로토콜 제어 모듈
110: 연결 감시부
120: 클라이언트 연결부
130: 제어부
140: 서버 연결부
150: 파일 감시부
100: encrypted communication protocol control module
110: connection monitoring unit
120: client connection
130: control unit
140: server connection
150: file monitor

Claims (16)

개인컴퓨터의 프로그램에서 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 상기 암호화 통신 프로토콜의 연결이 발생하면 상기 암호화 통신 프로토콜의 목적지 정보를 변경하는 연결 감시부;
상기 변경된 목적지 정보에 따라 상기 암호화 통신 프로토콜의 연결을 형성하는 클라이언트 연결부;
상기 연결 감시부로부터 상기 목적지 정보를 전달받아 목적지 정보에 포함된 IP가 암호화 통신 프로토콜의 제어 대상인지 여부를 검사하고, IP가 암호화 통신 프로토콜의 제어 대상이 아닌 것으로 검사 되면, 암호화 통신 프로토콜의 연결 완료 후 수행되는 트래픽 및 파일 전송의 제어 과정에서 로그 저장 및 트래픽 변경을 수행하지 않고, IP가 암호화 통신 프로토콜의 제어 대상인 것으로 검사 되면, 목적지에 해당하는 대상 서버와의 연결을 위한 연결정보를 전달하는 제어부; 및
상기 제어부로부터 전달받은 연결정보에 따라 상기 대상 서버에 연결을 요청하는 서버 연결부를 포함하는 암호화 통신 프로토콜 제어 모듈로서,
상기 연결 감시부는,
상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 개인컴퓨터에서 실행되는지 여부를 감시하고,
상기 프로그램이 실행되면, 상기 프로그램에 DLL 인젝션을 하고 상기 프로그램의 연결 함수에 대하여 API 후킹을 하여 상기 목적지 정보를 변경하거나, 또는 상기 프로그램의 드라이버를 실행시켜 TDI 필터 드라이버를 등록하고 TDI 필터를 통한 감시를 통해 상기 목적지 정보를 획득하여 상기 목적지 정보를 상기 클라이언트 연결부로 변경하고,
상기 변경된 목적지 정보를 상기 제어부에 전달하고, 상기 변경된 목적지에 따라 상기 프로그램을 통하여 상기 클라이언트 연결부로 연결이 요청되도록 하고,
상기 제어부는,
상기 변경된 목적지 정보를 포함하는 연결정보를 상기 서버 연결부에 전달하고, 서명정보에 해당하는 제1 개인키 및 제1 인증서를 생성하여 상기 개인컴퓨터에 등록하고
상기 서버 연결부는,
상기 변경된 연결정보에 따라 상기 대상 서버와 연결이 완료되면, 상기 암호화 통신 프로토콜의 공개정보로부터 주체이름 및 주체대체이름을 추출하여 상기 제어부에 전달하고
상기 제어부는,
상기 주체이름 및 주체대체이름을 기초로 공개정보에 해당하는 제2 인증서 및 비밀정보에 해당하는 제2 개인키를 생성하고, 상기 제1 개인키를 이용하여 상기 제2 인증서에 전자서명을 수행하고, 상기 제2 개인키 및 상기 전자서명이 수행된 제2 인증서를 상기 클라이언트 연결부에 전달하고
상기 클라이언트 연결부는,
상기 전자서명이 수행된 제2 인증서를 등록하고, 상기 프로그램으로부터 요청된 연결 요청을 수락하고, 상기 전자서명이 수행된 제2 인증서를 상기 프로그램에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
A connection monitoring unit that monitors whether a connection of the encryption communication protocol occurs in a program of the personal computer, and changes destination information of the encryption communication protocol when the connection of the encryption communication protocol occurs;
A client connection unit forming a connection of the encrypted communication protocol according to the changed destination information;
Upon receiving the destination information from the connection monitoring unit, it is checked whether the IP included in the destination information is the control target of the encryption communication protocol, and if it is determined that the IP is not the control target of the encryption communication protocol, the connection of the encryption communication protocol is completed. Control unit that transmits connection information for connection with the target server corresponding to the destination when the IP is checked to be the control target of the encryption communication protocol without performing log storage and traffic change in the control process of the traffic and file transfer performed afterwards. ; And
An encryption communication protocol control module including a server connection unit for requesting connection to the target server according to the connection information received from the control unit.
The connection monitoring unit,
Monitoring whether a program that performs the connection of the encrypted communication protocol is executed on the personal computer,
When the program is executed, DLL injection is made to the program and API hooking is performed on the link function of the program to change the destination information, or the driver of the program is registered to register the TDI filter driver and monitor through the TDI filter. Acquire the destination information through to change the destination information to the client connection,
Deliver the changed destination information to the controller, and request a connection to the client connection unit through the program according to the changed destination;
The control unit,
Transfer the connection information including the changed destination information to the server connection unit, generate a first private key and a first certificate corresponding to signature information, and register the same with the personal computer;
The server connection unit,
When the connection with the target server is completed according to the changed connection information, the subject name and the subject substitute name are extracted from the public information of the encryption communication protocol and transferred to the controller.
The control unit,
Generate a second certificate corresponding to the public information and a second private key corresponding to the secret information based on the subject name and the subject alternative name, and perform an electronic signature on the second certificate using the first private key; And transmitting the second private key and the second certificate on which the digital signature is performed, to the client connection unit.
The client connection unit,
And registering the second certificate on which the digital signature was performed, accepting the connection request requested from the program, and transferring the second certificate on which the digital signature was performed to the program.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 제1항에 있어서,
상기 프로그램에 의하여 상기 개인컴퓨터에 등록된 제1 인증서 및 상기 제2 인증서를 기초로, 상기 전자서명이 수행된 제2 인증서의 발급기관, 이름, 및 유효기간이 검사되면, 상기 클라이언트 연결부와의 연결이 완료되는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 1,
If the issuer, name, and expiration date of the second certificate on which the electronic signature is performed are checked based on the first certificate and the second certificate registered in the personal computer by the program, connection with the client connection unit The encryption communication protocol control module, characterized in that is completed.
제1항에 있어서, 상기 클라이언트 연결부는,
상기 암호화 통신 프로토콜의 연결이 형성되면,
상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램으로부터 수신한 암호화 트래픽을 복호화하여 상기 제어부에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 1, wherein the client connection unit,
Once the connection of the cryptographic communication protocol is established,
Cryptographic communication protocol control module, characterized in that for decrypting the encrypted traffic received from the program that performs the connection of the encrypted communication protocol and forwarded to the controller.
제9항에 있어서, 상기 제어부는,
상기 복호화된 트래픽의 내용을 로그로 저장하고, 상기 트래픽의 내용을 검사한 후, 상기 서버 연결부에 트래픽을 전달하되,
상기 트래픽의 내용 검사에 따라 상기 트래픽의 내용이 부적합한 것으로 판단되면, 상기 트래픽의 내용이 변경된 후 상기 서버 연결부에 전달되는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 9, wherein the control unit,
After storing the contents of the decrypted traffic as a log, inspecting the contents of the traffic, and forwards the traffic to the server connection,
And if it is determined that the contents of the traffic are inappropriate according to the inspection of the contents of the traffic, the contents of the traffic are changed and then transmitted to the server connection unit.
제10항에 있어서, 상기 서버 연결부는,
상기 트래픽을 상기 대상 서버의 암호화 통신 프로토콜의 공개정보를 기초로 암호화 한 후, 암호화된 트래픽을 상기 대상 서버에 전송하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 10, wherein the server connection unit,
Encrypting the traffic based on the public information of the encryption communication protocol of the target server, and then transmitting the encrypted traffic to the target server.
제1항에 있어서,
상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 접근하는 파일과 상기 프로그램이 읽는 파일의 내용을 감시하는 파일 감시부를 더 포함하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 1,
And a file monitoring unit configured to monitor a file accessed by a program executing the connection of the encrypted communication protocol and contents of a file read by the program.
제12항에 있어서, 상기 파일 감시부는,
상기 클라이언트 연결부와 상기 암호화 통신 프로토콜의 연결이 형성되면,
상기 프로그램에서 파일 읽기가 발생하는지 여부를 감시하고, 상기 프로그램에서 파일 읽기가 발생하면 상기 프로그램이 읽은 파일의 내용을 저장하되,
상기 프로그램이 읽은 파일의 내용은 상기 프로그램을 통하여 암호화 트래픽으로 상기 클라이언트 연결부에 전송되는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 12, wherein the file monitoring unit,
When the connection between the client connection unit and the encrypted communication protocol is formed,
Monitor whether or not a file read occurs in the program, and if a file read occurs in the program, store the contents of the file read by the program,
The contents of the file read by the program are transmitted to the client connection unit in encrypted traffic through the program.
제13항에 있어서,
상기 클라이언트 연결부는, 상기 암호화 트래픽을 복호화하여 제어부에 전달하고, 상기 제어부는, 상기 복호화된 트래픽을 상기 파일 감시부로 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 13,
And the client connection unit decrypts the encrypted traffic and transmits the encrypted traffic to a control unit, and the control unit transmits the decrypted traffic to the file monitoring unit.
제14항에 있어서, 상기 파일 감시부는,
상기 제어부로부터 전달받은 트래픽의 내용이 상기 저장된 읽은 파일의 내용에 포함되는지 여부를 검사하고, 검사 결과를 제어부에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 14, wherein the file monitoring unit,
And checking whether the contents of the traffic received from the controller are included in the contents of the stored read file, and transmitting the test result to the controller.
제15항에 있어서,
상기 제어부는, 상기 검사 결과가 파일 유출 행위에 해당함을 나타내면, 상기 클라이언트 연결부에 암호화 통신 프로토콜의 연결 종료를 요청하고,
상기 클라이언트 연결부는 상기 연결 종료의 요청에 따라 암호화 통신 프로토콜의 연결을 종료하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
The method of claim 15,
If the control unit indicates that the check result corresponds to a file leakage activity, the controller requests the client connection unit to terminate the connection of the encryption communication protocol.
And the client connection unit terminates the connection of the encryption communication protocol according to the request for terminating the connection.
KR1020180000756A 2018-01-03 2018-01-03 Module for controlling encryption communication protocol KR102042086B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180000756A KR102042086B1 (en) 2018-01-03 2018-01-03 Module for controlling encryption communication protocol

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180000756A KR102042086B1 (en) 2018-01-03 2018-01-03 Module for controlling encryption communication protocol

Publications (2)

Publication Number Publication Date
KR20190083160A KR20190083160A (en) 2019-07-11
KR102042086B1 true KR102042086B1 (en) 2019-11-27

Family

ID=67254354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180000756A KR102042086B1 (en) 2018-01-03 2018-01-03 Module for controlling encryption communication protocol

Country Status (1)

Country Link
KR (1) KR102042086B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102263755B1 (en) * 2019-10-16 2021-06-11 (주)소만사 System and method forwarding for end point traffic

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010091596A (en) * 2000-03-16 2001-10-23 강태교 Real-time security telecomunication system on certification
KR101124551B1 (en) * 2007-10-25 2012-03-16 후지쯔 가부시끼가이샤 Information providing method, relay method, information holding device and relay device
KR101469285B1 (en) * 2008-08-26 2014-12-04 주식회사 케이티 System and method for analyzing alternative internet traffic using routing based on policy
JP4875118B2 (en) 2009-03-24 2012-02-15 株式会社東芝 Method for manufacturing nonvolatile memory device
KR101188307B1 (en) * 2010-12-24 2012-10-09 (주) 세인트 시큐리티 System and method of network activity monitoring to particular process

Also Published As

Publication number Publication date
KR20190083160A (en) 2019-07-11

Similar Documents

Publication Publication Date Title
US10305903B2 (en) Bypassing certificate pinning
US9813444B2 (en) Reliable selection of security countermeasures
US7627896B2 (en) Security system providing methodology for cooperative enforcement of security policies during SSL sessions
Sun et al. The devil is in the (implementation) details: an empirical analysis of OAuth SSO systems
US6874084B1 (en) Method and apparatus for establishing a secure communication connection between a java application and secure server
US8316429B2 (en) Methods and systems for obtaining URL filtering information
US8356333B2 (en) System and method for verifying networked sites
Kiljan et al. A survey of authentication and communications security in online banking
US8776238B2 (en) Verifying certificate use
US20020112167A1 (en) Method and apparatus for transparent encryption
US7421576B1 (en) Interception and modification of network authentication packets with the purpose of allowing alternative authentication modes
Ravindran et al. A Review on Web Application Vulnerability Assessment and Penetration Testing.
KR102042086B1 (en) Module for controlling encryption communication protocol
CN117081815A (en) Method, device, computer equipment and storage medium for data security transmission
CN111611620A (en) Access request processing method of access platform and related device
KR101893100B1 (en) Scada control system for building facilities management and method for managing security policies of the system
Claessens et al. A tangled world wide web of security issues
JP2005309846A (en) Database protection system
KR101788019B1 (en) Apparatus and method for preventing data loss
Chen et al. Path leaks of HTTPS Side-Channel by cookie injection
Phumkaew et al. Android forensic and security assessment for hospital and stock-and-trade applications in thailand
CN106130996A (en) A kind of website attack protection checking system and method
Sorge IT Security measures and their relation to data protection
Radholm et al. Ethical Hacking of an IoT-device: Threat Assessment and Penetration Testing: A Survey on Security of a Smart Refrigerator
CN114157503A (en) Access request authentication method and device, API gateway equipment and storage medium

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)