KR20190083160A - 암호화 통신 프로토콜 제어 모듈 - Google Patents

암호화 통신 프로토콜 제어 모듈 Download PDF

Info

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

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 암호화 통신 프로토콜 제어 모듈로서, 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 상기 암호화 통신 프로토콜의 연결이 발생하면 상기 암호화 통신 프로토콜의 목적지 정보를 변경하는 연결 감시부; 상기 변경된 목적지 정보에 따라 상기 암호화 통신 프로토콜의 연결을 형성하는 클라이언트 연결부; 상기 연결 감시부로부터 상기 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 상기 대상 서버와의 연결을 위한 연결정보를 전달하는 제어부; 및 상기 제어부로부터 전달받은 연결정보에 따라 상기 대상 서버에 연결을 요청하는 서버 연결부를 포함한다.

Description

암호화 통신 프로토콜 제어 모듈{MODULE FOR CONTROLLING ENCRYPTION COMMUNICATION PROTOCOL}
본 발명은 암호화 통신 프로토콜 제어 기술에 관한 것으로서, 보다 상세하게는, 개인컴퓨터에서 수행되는 정보를 기반으로 암호화 통신 프로토콜을 제어하는 암호화 통신 프로토콜 제어 모듈에 관한 것이다.
국내외 주요 인터넷 서비스에서는 사용자의 개인정보를 보호하기 위해 암호화 통신 프로토콜인 TLS/SSL을 웹서비스, 메일서비스에 적용하여 사용하고 있다. 암호화 통신 프로토콜을 사용하여 전송되는 암호화 트래픽은 외부의 스니핑 공격에 대하여 안전성을 확보하고 보안적인 측면에서 기밀성 강화를 기대할 수 있다. 그러나 대부분의 보안장비들이 암호화 트래픽의 분석이 불가능하여 인터넷 서비스에서 암호화 통신을 이용한 악의적인 행위를 통제할 수 없다.
암호화 통신을 이용한 인터넷 서비스상의 보안위협을 감소시키기 위한 암호화 통신 프로토콜 제어 방법으로는 통상적으로 프록시를 이용하는 방법, 네트워크 보안장비를 이용하는 방법 등이 있다. 프록시를 이용하여 제어하는 방법은 클라이언트와 목적지 사이에 프록시 서버를 두어 이 곳을 경유하는 암호화 트래픽을 복호화 하여 제어한다. 이 방법은 PC에 별도의 설정이 필요하여 가용성이 낮고 HTTPS 프로토콜을 사용하는 인터넷 브라우저와 일부 프로그램에만 적용이 가능하여 확장성이 낮다. 네트워크 보안장비를 이용하여 제어하는 방법은 인터넷 게이트웨이에서 암호화 트래픽 통신이 감지되면 복호화 하여 제어한다.
즉, 이 두 가지 방법은 IP주소, MAC 주소, PORT 번호, 트래픽 내용 등과 같은 인터넷 통신 정보를 기반으로 제어하나, 이 정보만으로는 암호화 트래픽을 발생시킨 PC의 확인만이 가능할 뿐, 해당 PC의 사용자는 정확히 식별될 수 없고, PC에서 통신에 사용한 프로세스 이름, 첨부로 전송 된 파일의 실제 경로 등의 정보도 알 수 없는 문제가 있다.
한국공개특허 제10-201-0106912호
본 발명의 목적은 개인컴퓨터에서 수행되는 정보를 기반으로 암호화 통신 프로토콜을 제어하는 암호화 통신 프로토콜 제어 모듈을 제공하는데 있다.
상기 목적을 달성하기 위한 본 발명의 제1 측면은, 암호화 통신 프로토콜 제어 모듈로서, 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 상기 암호화 통신 프로토콜의 연결이 발생하면 상기 암호화 통신 프로토콜의 목적지 정보를 변경하는 연결 감시부; 상기 변경된 목적지 정보에 따라 상기 암호화 통신 프로토콜의 연결을 형성하는 클라이언트 연결부; 상기 연결 감시부로부터 상기 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 상기 대상 서버와의 연결을 위한 연결정보를 전달하는 제어부; 및 상기 제어부로부터 전달받은 연결정보에 따라 상기 대상 서버에 연결을 요청하는 서버 연결부를 포함한다.
바람직하게, 상기 연결 감시부는, 상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 개인컴퓨터에서 실행되는지 여부를 감시하고, 상기 프로그램이 실행되면, 상기 프로그램에 DLL 인젝션을 하고 상기 프로그램의 연결 함수에 대하여 API 후킹을 하여 상기 목적지 정보를 변경하거나, 또는 상기 프로그램의 드라이버를 실행시켜 TDI 필터 드라이버를 등록하고 TDI 필터를 통한 감시를 통해 상기 목적지 정보를 획득하여 상기 목적지 정보를 변경하되, 상기 변경된 목적지 정보는 상기 클라이언트 연결부에 해당할 수 있다.
바람직하게, 상기 연결 감시부는, 상기 목적지 정보는 상기 제어부에 전달하고, 상기 변경된 목적지에 따라 상기 프로그램을 통하여 상기 클라이언트 연결부로 연결이 요청되도록 할 수 있다.
바람직하게, 상기 제어부는, 상기 목적지 정보를 포함하는 연결정보를 상기 서버 연결부에 전달하고, 서명정보에 해당하는 제1 개인키 및 제1 인증서를 생성하여 상기 개인컴퓨터에 등록할 수 있다.
바람직하게, 상기 서버 연결부는, 상기 연결정보에 따라 상기 대상 서버와 연결이 완료되면, 상기 암호화 통신 프로토콜의 공개정보로부터 주체이름 및 주체대체이름을 추출하여 상기 제어부에 전달할 수 있다.
바람직하게, 상기 제어부는, 상기 주체이름 및 주체대체이름을 기초로 공개정보에 해당하는 제2 인증서 및 비밀정보에 해당하는 제2 개인키를 생성하고, 상기 제1 개인키를 이용하여 상기 제2 인증서에 전자서명을 수행하고, 상기 제2 개인키 및 상기 전자서명이 수행된 제2 인증서를 상기 클라이언트 연결부에 전달할 수 있다.
바람직하게, 상기 클라이언트 연결부는, 상기 전자서명이 수행된 제2 인증서를 등록하고, 상기 프로그램으로부터 요청된 연결 요청을 수락하고, 상기 전자서명이 수행된 제2 인증서를 상기 프로그램에 전달할 수 있다.
바람직하게, 상기 프로그램에 의하여 상기 개인컴퓨터에 등록된 제1 인증서 및 상기 제2 인증서를 기초로, 상기 전자서명이 수행된 제2 인증서의 발급기관, 이름, 및 유효기간이 검사되면, 상기 클라이언트 연결부와의 연결이 완료될 수 있다.
바람직하게, 상기 클라이언트 연결부는, 상기 암호화 통신 프로토콜의 연결이 형성되면, 상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램으로부터 수신한 암호화 트래픽을 복호화하여 상기 제어부에 전달할 수 있다.
바람직하게, 상기 제어부는, 상기 복호화된 트래픽의 내용을 로그로 저장하고, 상기 트래픽의 내용을 검사한 후, 상기 서버 연결부에 트래픽을 전달하되, 상기 트래픽의 내용 검사에 따라 상기 트래픽의 내용이 부적합한 것으로 판단되면, 상기 트래픽의 내용이 변경된 후 상기 서버 연결부에 전달될 수 있다.
바람직하게, 상기 서버 연결부는, 상기 트래픽을 상기 대상 서버의 암호화 통신 프로토콜의 공개정보를 기초로 암호화 한 후, 암화된 트래픽을 상기 대상 서버에 전송할 수 있다.
바람직하게, 상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 접근하는 파일과 상기 프로그램이 읽는 파일의 내용을 감시하는 파일 감시부를 더 포함할 수 있다.
바람직하게, 상기 파일 감시부는, 상기 클라이언트 연결부와 상기 암호화 통신 프로토콜의 연결이 형성되면, 상기 프로그램에서 파일 읽기가 발생하는지 여부를 감시하고, 상기 프로그램에서 파일 읽기가 발생하면 상기 프로그램이 읽은 파일의 내용을 저장하되, 상기 프로그램이 읽은 파일의 내용은 상기 프로그램을 통하여 암호화 트래픽으로 상기 클라이언트 연결부에 전송될 수 있다.
바람직하게, 상기 클라이언트 연결부는, 상기 암호화 트래픽을 복호화하여 제어부에 전달하고, 상기 제어부는, 상기 복호화된 트래픽을 상기 파일 감시부로 전달할 수 있다.
바람직하게, 상기 파일 감시부는, 상기 제어부로부터 전달받은 트래픽의 내용이 상기 저장된 읽은 파일의 내용에 포함되는지 여부를 검사하고, 검사 결과를 제어부에 전달할 수 있다.
바람직하게, 상기 제어부는, 상기 검사 결과가 파일 유출 행위에 해당함을 나타내면, 상기 클라이언트 연결부에 암호화 통신 프로토콜의 연결 종료를 요청하고, 상기 클라이언트 연결부는 상기 연결 종료의 요청에 따라 암호화 통신 프로토콜의 연결을 종료할 수 있다.
상기한 바와 같이 본 발명에 의하면, 암호화 통신의 특징인 종단간의 기밀성은 유지하되, 기밀정보 유출을 방지하는 효과가 있다.
또한, 인증 시스템과 융합하여 암호화 트래픽을 발생시킨 사용자를 식별할 때 정확성을 높이고, 개인정보 유출감지 시스템과 융합하여 암호화 통신 프로토콜을 사용한 개인정보 파일의 유출을 감지하는 효과가 있다.
또한, 개인 컴퓨터에서 감시를 원하는 프로세스만 목적지 정보를 변경해 제어할 수 있는 효과가 있다.
또한, 종래의 프록시 방식과 비교하여, 개인 컴퓨터에 프록시 설정 없이 통제가 가능하고, 인터넷 브라우저 외에 다른 프로그램도 통제가 가능한 효과가 있고, 종래의 네트워크 보안 장비 방식과 비교하여, 네트워크 구성을 변경하지 않고 통제가 가능하고, IP 주소, MAC 주소, PORT번호, 트래픽 내용 등과 같은 인터넷 통신 정보 기반의 통제와 통신 프로세스 이름, 파일 정보 등과 같은 사용자의 개인 컴퓨터에서 발생하는 행위를 기반으로도 통제가 가능한 효과가 있다.
도 1은 본 발명의 바람직한 실시예에 따른 암호화 통신 프로토콜 제어 모듈의 블록도이다.
도 2는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 암호화 통신 프로토콜 연결이 형성되는 과정을 나타내는 흐름도이다.
도 3 및 도 4는 TDI 필터에서 수행되는 목적지 정보 변경을 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.
도 6은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 응답 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.
도 7은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 파일 전송이 제어되는 과정을 나타내는 흐름도이다.
도 8 및 도 9는 미니필터에서 수행되는 데이터 감시를 설명하기 위한 도면이다.
이하, 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
또한, 각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 “포함한다(comprises)" 및/또는 “포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
또한, 본 발명의 실시예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 그리고 후술되는 용어들은 본 발명의 실시예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 바람직한 실시예에 따른 암호화 통신 프로토콜 제어 모듈의 블록도이다.
도 1을 참조하면, 암호화 통신 프로토콜 제어 모듈(100)은 연결 감시부(110), 클라이언트 연결부(120), 제어부(130), 서버 연결부(140), 및 파일 감시부(150)를 포함한다.
연결 감시부(110)는 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 암호화 통신 프로토콜의 연결이 발생하면 암호화 통신 프로토콜의 목적지 정보를 변경한다. 바람직하게, 연결 감시부(110)는 암호화 통신 프로토콜의 목적지를 클라이언트 연결부(120)로 변경할 수 있고, 원래의 목적지 정보는 제어부(130)에 전달할 수 있다. 이를 통하여, 개인컴퓨터에서 수행되는 암호화 통신 프로토콜을 수행하는 프로그램이 대상 서버로 트래픽을 전송하거나 또는 파일을 읽는 경우에, 해당 정보들이 암호화 통신 프로토콜의 원래 목적지에 해당하는 대상 서버로 바로 전달되는 것이 아니라, 클라이언트 연결부(120)를 통하여 전달되는 것이다.
클라이언트 연결부(120)는 변경된 목적지 정보에 따라 암호화 통신 프로토콜의 연결을 형성한다. 바람직하게, 클라이언트 연결부(120)는 개인컴퓨터의 프로그램과 암호화 통신 프로토콜의 연결을 형성할 수 있고, 암호화 통신 프로토콜의 연결이 형성된 이후에는, 프로그램으로부터 암호화 트래픽을 수신하고 복호화 하여 제어부(130)에 전달할 수 있고, 대상 서버로부터 전송된 트래픽을 전달받아 암호화하여 클라이언트, 즉, 개인컴퓨터의 프로그램에 응답 트래픽으로 전송할 수 있다.
제어부(130)는 연결 감시부(110)로부터 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 대상 서버와의 연결을 위한 연결정보를 전달한다. 바람직하게, 개인컴퓨터의 프로그램과 클라이언트 연결부(120)의 연결이 완료된 후에는, 클라이언트 연결부(120)에서 전달받은 트래픽의 내용을 검사하여 차단 여부를 결정하거나, 트래픽의 내용을 파일 감시부(150)에 전달하여 검사 결과를 받을 수 있고, 검사 결과에 따라 클라이언트 연결부(120)에서 전달받은 트래픽을 그대로 서버 연결부(140)에 전달하거나 또는 전달받은 트래픽을 변경하여 전달할 수 있다. 또한, 제어부(130)는 서버 연결부(140)에서 전달 받은 트래픽을 클라이언트 연결부(120)에 그대로 전달하거나 또는 변경하여 전달할 수 있다.
서버 연결부(140)는 제어부(130)로부터 전달받은 연결정보에 따라 대상 서버에 연결을 요청한다. 바람직하게, 대상 서버와 연결이 완료되고, 프로그램과 클라이언트 연결부(120)의 연결이 완료되면, 서버 연결부(140)는 제어부(130)로부터 목적지 정보와 트래픽 내용을 전달받고, 트래픽을 암호화하여 대상 서버에 전달할 수 있고, 대상 서버로부터 응답에 대한 암호화 트래픽을 수신하여 복호화한 다음, 복호화된 트래픽을 제어부에 전달할 수 있다.
파일 감시부(150)는 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 접근하는 파일과 프로그램이 읽는 파일의 내용을 감시한다. 바람직하게, 파일 감시부(150)는 프로그램이 읽은 파일의 내용을 저장하고, 제어부(130)로부터 읽은 파일의 내용에 대한 트래픽 내용 검사를 요청 받으면, 트래픽 내용이 저장된 읽은 파일의 내용에 존재하는지 여부를 검사하고 검사 결과를 제어부(130)에 전달할 수 있다.
이하에서는, 암호화 통신 프로토콜 제어 모듈(100)에서 수행되는 암호화 통신 프로토콜 제어 방법에 대하여 설명할 것이며, 암호화 통신 프로토콜 제어 방법은 암호화 통신 프로토콜의 연결을 형성하는 과정과 암호화 통신 프로토콜의 연결이 형성된 후에 트래픽이나 파일 전송의 제어를 수행하는 과정으로 이루어 지는 바, 먼저, 도 2 내지 4를 참조하여 암호화 통신 프로토콜의 연결을 형성하는 과정을 설명하고, 도 5 내지 8을 참조하여 트래픽 및 파일 전송의 제어를 수행하는 과정을 설명한다.
도 2는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 암호화 통신 프로토콜 연결이 형성되는 과정을 나타내는 흐름도이다.
도 2를 참조하면, 연결 감시부(110)는 개인컴퓨터에서 암호화 통신 프로토콜 연결을 형성하는 프로그램이 실행되는지 여부를 감시하고 있다가 프로그램이 실행되면(단계 S201), 연결 감시부(110)는 프로그램의 실행을 감지한다(단계 S202).
연결 감시부(110)는 실행된 프로그램이 암호화 통신 프로토콜의 연결을 형성하고자 하는 목적지에 대한 정보를 제어부(130)에 전달하고(단계 S203), 목적지 정보를 변경한다(단계 S204). 여기에서, 목적지에 대한 정보는 IP와 포트(Port) 정보에 해당할 수 있고, 변경된 목적지 정보는 클라이언트 연결부(120)에 해당한다.
일 실시예에서, 연결 감시부(110)는 프로그램에 DLL 인젝션을 하고 프로그램의 연결 함수에 대하여 API 후킹을 하여 목적지 정보를 변경할 수 있다. 이와 같은 DLL 인젝션 및 API 후킹 방법은 특정 프로세스에 DLL을 강제로 삽입하고 특정 API가 호출되었을 때 지정된 코드를 실행하게 하여 원래 목적지가 아닌 다른 목적지로 변경하는 작업을 할 수 있도록 하는 것이다. 보다 구체적으로, 연결 감시부(110)는 프로그램에 DLL 인젝션(DLL Injection)을 하고 프로그램의 연결 함수에 API 후킹(API Hooking)을 하여 연결함수의 호출을 감시하고, 연결함수가 호출되는 것이 감지되면, 연결 감시부(110)는 목적지 정보를 클라이언트 연결부(120)로 변경하기 위한 지정된 코드를 실행한다. 즉, 지정된 코드의 실행으로 인하여 목적지 정보가 클라이언트 연결부(120)로 변경되는 것이다.
다른 실시예에서, 연결 감시부(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)로 변경한 후 통신을 진행할 수 있다.
연결 감시부(110)는 목적지 정보를 변경한 후, 프로그램에 암호화 통신 프로토콜의 연결을 호출하고(단계 S205), 프로그램은 클라이언트 연결부(120)에 암호화 통신 프로토콜의 연결을 요청한다(단계 S206). 즉, 단계 S204를 통하여 프로그램의 연결함수에서 목적지 정보가 클라이언트 연결부(120)로 변경되었는바, 연결 감시부(110)가 프로그램의 연결함수를 호출하면, 프로그램이 클라이언트 연결부(120)로 연결을 요청하게 되는 것이다.
클라이언트 연결부(120)는 프로그램으로부터 요청된 연결요청을 바로 수신한 후 이하에서 설명할 단계 S207 내지 S215가 수행될 때까지 대기하거나, 또는 단계 S207 내지 S216이 수행될 때까지 대기하고 있다가 연결요청을 수신할 수 있다. 이하에서는, 후자의 경우를 기준으로 설명한다.
단계 S203을 통하여 제어부(130)로 목적지 정보가 전달되면, 제어부(130)는 목적지 정보를 검사하고(단계 S207), 목적지에 대한 정보를 포함하는 연결정보를 서버 연결부(140)에 전달한다(단계 S208). 여기에서, 연결정보는 목적지 정보(IP, Port) 및 목적지 정보의 검사 결과값을 포함한다. 보다 구체적으로, 제어부(130)는 목적지 정보에 포함된 IP가 암호화 통신 프로토콜의 제어 대상인지 여부를 검사하고, IP가 암호화 통신 프로토콜의 제어 대상이 아닌 것으로 검사 되면, 암호화 통신 프로토콜의 연결 완료 후 수행되는 트래픽 및 파일 전송의 제어 과정에서 로그 저장 및 트래픽 변경을 수행하지 않는다. 또한, 제어부(130)는 목적지 정보에 포함된 IP가 허가된 목적지로 향하는 접속인지 여부를 검사하고, IP가 허가되지 않은 목적지로 향하는 접속인 것으로 검사되면, 암호화 통신 프로토콜의 연결 완료 후, 해당 연결을 종료할 수 있다.
서버 연결부(140)는 연결정보를 수신하여 목적지에 해당하는 대상 서버에 암호화 통신 프로토콜의 연결을 요청하고(단계 S209), 연결이 완료되면(단계 S210), 암호화 통신 프로토콜의 공개정보로부터 주체이름 및 주체대체이름을 추출한다(단계 S211). 여기에서, 공개정보는 공개키를 의미하는 것으로서, 공개정보는 SSL 인증서 형태로 되어 있고, 서버 연결부(140)는 인증서의 속성 안에 포함되어 있는 주체이름 및 주체대체이름을 추출하는 것이다. 예를 들어, 주체이름에는 google.com과 같은 대표 도메인 이름 값이 들어갈 수 있고, 주체대체이름에는, 다중 도메인이 사용되는 경우, 대표 도메인 외의 다중 도메인 이름 값이 들어갈 수 있다. 바람직하게, 주체이름 및 주체대체이름은, 암호화 통신 프로토콜에 접속한 URL과 공개키로 사용된 인증서의 주체이름이 동일한지 여부를 비교하여 해당 암호화 통신 프로토콜의 정규 여부를 확인하는데 이용될 수 있다.그 다음, 서버 연결부(140)는 주체이름 및 주체대체이름을 제어부(130)에 전달한다(S212).
제어부(130)는 서버 연결부(140)로부터 주체이름 및 주체대체이름을 전달받기 이전에 서명정보를 생성하여 등록할 수 있다(단계 S213). 바람직하게, 제어부(130)는 인증기관이 발행한 서명정보에 해당하는 제1 개인키 및 제1 인증서를 생성하여 개인컴퓨터에 등록할 수 있다.
제어부(130)는 단계 S212에서 전달받은 주체이름 및 주체대체이름을 기초로 공개정보 및 비밀정보를 생성하고 단계 S213에서 생성된 서명정보를 이용하여 공개정보를 전자서명한다(단계 S214). 바람직하게, 제어부(130)는 주체이름 및 주체대체이름을 기초로, 공개정보에 해당하는 제2 인증서 및 비밀정보에 해당하는 제2 개인키를 생성하고, 제1 개인키를 이용하여 제2 인증서에 전자서명을 수행할 수 있다. 여기에서, 제2 개인키 및 제2 인증서를 생성하는 방법은 종래의 opensslAPI가 활용될 수 있으나, 그 방법은 이에 한정되지 않는다.
제어부(130)는 공개정보에 해당하는 전자서명이 수행된 제2 인증서와 비밀정보에 해당하는 제2 개인키를 클라이언트 연결부(120)에 전달한다(단계 S215).
클라이언트 연결부(120)는 전자서명이 수행된 제2 인증서에 해당하는 공개정보를 등록하고(단계 S216), 단계 S206에서 프로그램으로부터 요청된 연결요청을 수신한다(단계 S217). 클라이언트 연결부(120)는 전자서명이 수행된 제2 인증서를 포함하는 공개정보를 프로그램에 전달한다(단계 S218).
프로그램은 전자서명이 수행된 제2 인증서를 포함하는 공개정보를 검사하고(단계 S219), 연결을 완료한다(단계 S220). 바람직하게, 프로그램은 단계 S213을 통하여 개인컴퓨터에 등록된 제1 인증서를 기초로 전자서명이 수행된 제2 인증성의 발급 기관을 검사하고, 전자서명이 수행된 제2 인증서의 이름과 암호화 통신 프로토콜의 접속 대상의 이름, 즉, 주체이름 및 주체대체이름을 비교하여 검사하고, 전자서명이 수행된 제2 인증서의 유효기간을 검사할 수 있다. 이와 같은 검사들이 통과되면, 프로그램과 클라이언트 연결부(120)의 암호화 통신 프로토콜의 연결은 완료된다.
도 5는 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.
도 5에 도시된 과정은 도 2에서 단계 S220을 통하여 프로그램과 클라이언트 연결부(120)의 암호화 통신 프로토콜의 연결이 완료된 후에 수행되는 것으로서, 도 5를 참조하면, 프로그램에서 클라이언트 연결부(120)로 암호화 트래픽을 전송한다(단계 S501).
클라이언트 연결부(120)는 암호화 트래픽을 복호화하고(단계 S502), 복호화한 트래픽을 제어부(130)에 전달한다(단계 S503). 바람직하게, 암호화 트래픽의 복호화는 종래의 암호화 패킷 수신 함수에 의하여 수행될 수 있고, 복호화를 하기 위한 정보에 해당하는 대칭키는, 도 2를 참조하여 설명된 단계 S218가 수행될 때 생성될 수 있다.
제어부(130)는 트래픽 내용을 로그로 저장하고(단계 S504), 트래픽 내용을 검사한 후(단계 S505), 트래픽을 서버 연결부(140)로 전달한다(단계 S506). 여기에서, 로그로 저장한다는 것은 감사기록을 남기는 것으로서, 제어부(130)는 트래픽 내용을 파일 형태로 저장할 수 있다.
일 실시예에서, 제어부(130)는 단계 S505의 수행 결과 트래픽의 내용이 부적합한 것으로 판단되면, 트래픽의 내용을 변경한 후 변경한 트래픽을 서버 연결부(140)로 전달할 수 있다. 보다 구체적으로, 제어부(130)는 부적합한 트래픽의 형태에 대한 패턴을 미리 정의하여 등록할 수 있고, 단계 S505에서 제어부(130)는 트래픽의 내용에 기등록된 부적합한 트래픽의 형태에 대한 패턴이 있는지 여부를 검사하여 트래픽의 내용이 부적합한 것인지 여부를 판단할 수 있다. 트래픽의 내용이 부적합한 것으로 판단되면, 제어부(130)는, 클라이언트 연결부(120)로부터 수신하여 메모리에 저장한 트래픽 내용의 전체 또는 일부를 변경한 후 서버 연결부(140)로 전달할 수 있다. 즉, 제어부(130)는 트래픽 내용의 전체 또는 일부를 변경하여 원래 목적의 트래픽이 대상 서버로 전달되지 못하게 하는 것이다.
서버 연결부(140)는 트래픽을 암호화 하고(단계 S507), 암호화한 트래픽을 대상 서버에 전달한다(단계 S508). 바람직하게, 서버 연결부(140)는 트래픽을 대상 서버의 암호화 통신 프로토콜의 공개정보를 기초로 암호화 할 수 있고, 여기에서, 트래픽을 암호화하는데 이용되는 공개정보는 대상 서버의 인증서이며, 서버 연결부(140)는 인증서를 이용하여 대칭키를 생성한 후 대칭키를 이용하여 트래픽을 암호화하거나 트래픽을 복호화할 수 있다.
대상 서버는 서버 연결부(140)로부터 암호화한 트래픽을 수신한다(단계 S509). 즉, 본 발명에 따르면, 대상 서버는 프로그램으로부터 암호화된 트래픽을 바로 수신하는 것이나 아니라, 클라이언트 연결부(120), 제어부(130), 및 서버 연결부(140)를 통하여 안전하다고 판단된 트래픽을 전달받는 것이다.
도 6은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 응답 트래픽 전송이 제어되는 과정을 나타내는 흐름도이다.
도 5의 단계 S501 내지 S509를 통하여 대상 서버가 암호화 트래픽을 수신한 후, 대상 서버는 수신한 암호화 트래픽에 대한 응답으로서 암호화 트래픽을 서버 연결부(140)에 전송한다(단계 S601). 여기에서, 대상서버가 서버 연결부(140)에 전송하는 암호화 트래픽은 대상서버가 수신한 암호화 트래픽에 대한 응답 트래픽으로서 서로 다른 트래픽에 해당한다.
서버 연결부(140)는 암호화 트래픽을 복호화 하고(단계 S602), 복호화한 트래픽을 제어부(130)에 전달한다(단계 S603). 바람직하게, 서버 연결부는, 상기 도 5를 참조하여 설명된 단계 S507에서 트래픽을 암호화하는데 이용된 대칭키를 이용하여 암호화 트래픽을 복호화할 수 있다.
제어부(130)는 복호화된 트래픽을 전달받고, 상기 도 5를 참조하여 설명된 단계 S505에서 수행된 트래픽 내용의 검사 결과에 따라 트래픽을 변경한다(단계 S604). 바람직하게, 단계 S505에서 트래픽의 내용이 부적합한 것으로 검사되어 트래픽이 변경된 경우에는, 제어부(130)는 트래픽 내용의 전체 또는 일부를 변경하여 프로그램이 대상 서버로부터 전송된 응답 트래픽을 수신했을 때 수행되는 동작이 변경되도록 할 수 있고, 단계 S505에서 트래픽의 내용이 적합한 것으로 검사된 경우에는, 제어부(130)는 트래픽 내용을 변경하지 않을 수 있다.
제어부(130)는 단계 S604의 수행에 따라 변경되거나 또는 변경되지 않은 트래픽을 클라이언트 연결부(120)에 전달한다(단계 S605).
클라이언트 연결부(120)는 트래픽을 암호화 하여(단계 S606), 프로그램에 전달하고(단계 S607), 프로그램은 암호화된 트래픽을 수신한다(단계 S608).
예를 들어, 프로그램에서 트래픽A를 전송하고 대상서버가 트래픽A를 수신한 후, 이에 대한 응답으로서 트래픽B를 전송한다고 가정하고, 서버 연결부(140)에서 암호화C 및 복호화D가 수행되고, 클라이언트 연결부에서 암호화C' 및 복호화D'이 수행된다고 가정하면, 도 5 및 도 6을 통하여 수행되는 트래픽 및 응답 트래픽의 전송 제어 과정은 다음과 같다.
프로그램으로부터 암호화된 트래픽 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)를 획득한다.
다른 예를 들어, 프로그램이 웹 브라우저이고, 대상 서버가 포털사이트(예를 들어, daum.net)에 해당하고, 메일 전송으로 판단될 수 있는 “subject”라는 내용이 트래픽에 있는 경우를 부적합한 트래픽에 해당하는 것으로 가정하면, 도 5 및 도 6을 통하여 수행되는 트래픽 및 응답 트래픽의 전송 제어 과정은 다음과 같다.
웹 브라우저에서 사용자에 의하여 메일 전송이 선택(클릭)되면, 웹 브라우저는 Request Headers의 내용과 Request Payload의 내용을 암호화 하여 클라이언트 연결부(120)에 전송한다. 클라이언트 연결부(120)는 암호화 트래픽을 복호화하여 제어부(130)에 전달하고, 복호화된 트래픽은 도 10의 (a)에 도시된 바와 같다. 제어부(130)는 트래픽의 내용을 로그로 저장하고, 트래픽 내용을 검사한다. 검사 결과 트래픽의 내용 중 “subject”라는 내용이 감지되는바 제어부(130)는 해당 트래픽을 부적합한 것으로 판단하고 트래픽을 변경한다. 예를 들어, 제어부(130)는 도 10의 (b)에 도시된 바와 같이, Request Payload의 752 Byte의 내용을 모두 Null로 변경할 수 있다. 제어부(130)는 변경된 트래픽을 서버 연결부(140)에 전달하고, 서버 연결부(140)는 트래픽을 암호화하여 포털사이트로 전송한다.
포털사이트는 서버 연결부(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)에 도시된 바와 같은 메일 전송 실패 페이지를 출력하게 된다.
도 7은 일 실시예에 따른 암호화 통신 프로토콜 제어 방법에서 파일 전송이 제어되는 과정을 나타내는 흐름도이다.
도 7에 도시된 과정은 도 2에서 단계 S220을 통하여 프로그램과 클라이언트 연결부(120)의 암호화 통신 프로토콜의 연결이 완료된 후에 수행되는 것으로서, 도 6을 참조하면, 파일 감시부(150)는 프로그램에서 파일 읽기가 수행되는지 여부를 감시하고(단계 S701), 프로그램에서 파일 읽기가 발생하면(단계 S702), 파일 감시부(150)는 프로그램에서 읽은 내용을 저장한다(단계 S703). 프로그램에서 파일을 전송하기 위해서는 파일을 읽고 다른 위치에 쓰거나 파일을 읽고 네트워크를 통해 패킷을 전송하는 방법을 취하게 되므로, 어떤 파일이 읽히는지를 감시하여 파일이 외부로 유출될 때 비교될 수 있는 대상이 되도록 프로그램에서 읽은 내용을 저장하는 것이다.
바람직하게, 파일 읽기가 수행되는지 여부의 감시는 미니필터(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 계층을 포함한다.
바람직하게, IRP_MJ_READ 함수에서 파일 읽기가 발생하는지 여부를 감시 할 때에는 PostOperation에서 감시할 수 있고, 파일 읽기가 발생하여 읽은 내용이 들어오면 읽은 내용의 일부분과 파일의 경로, 드라이브 정보, 및 프로세스 아이디 등의 정보가 저장될 수 있다.
일반적인 파일들은 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 함수에서 해당 파일 핸들이 종료될 때까지 유지된다.
프로그램은 읽은 내용을 암호화 트래픽으로 클라이언트 연결부(120)에 전송한다(단계 S704).
클라이언트 연결부(120)는 암호화 트래픽을 복호화하고(단계 S705), 복호화한 트래픽을 제어부(130)에 전달한다(단계 S706).
제어부(130)는 복호화된 트래픽 내용의 검사를 파일 감시부(150)에 요청한다(단계 S707).
파일 감시부(150)는 검사를 요청 받은 트래픽 내용과 단계 S603에서 저장한 읽은 내용을 비교하여(단계 S708), 파일 유출 행위 여부를 감지한다(단계 S709). 바람직하게, 파일 감시부(150)는 트래픽 내용이 읽은 내용에 포함되는지 여부를 검사할 수 있고, 읽은 내용이 트래픽 내용을 포함한다면 파일 유출 행위로 판단할 수 있다.
일 실시예에서, 파일 감시부(150)는 파일 유출 행위인 것으로 검사되면, 파일 유출 행위에 해당한다는 검사결과를 제어부(140)에 전달하고(단계 S710), 제어부(140)는 클라이언트 연결부(130)에 프로그램과의 암호화 통신 프로토콜의 연결 종료를 요청하고(단계 S711), 클라이언트 연결부(130)는 이에 따라 프로그램과의 암호화 통신 프로토콜의 연결을 종료할 수 있다(단계 S712).
다른 실시예에서, 파일 유출 행위에 해당하지 않는 것으로 검사되어 파일 감시부(150)가 해당 검사 결과를 제어부(130)에 전달하면, 제어부(130)는 트래픽을 서버 연결부(140)에 전달하고, 서버 연결부(140)는 전달받은 트래픽을 암호화한 후 대상 서버에 전달하여, 대상 서버가 암호화된 트래픽을 수신하도록 할 수 있다.
즉, 본 발명에 의하면, 프로그램으로부터 대상 서버로 파일이 바로 전송되는 것이 아니라, 클라이언트 연결부(120), 제어부(130), 서버 연결부(140), 및 파일 감시부(150)를 통하여 파일 유출 행위에 해당하지 않는 것으로 검사된 파일에 대해서만 대상 서버로 전송하고, 파일 유출 행위인 것으로 검사되면 암호화 통신 프로토콜의 연결을 종료하므로 보안이 유지될 수 있는 것이다.
전술한 본 발명에 따른 암호화 통신 프로토콜 제어 모듈에 대한 바람직한 실시예에 대하여 설명하였지만, 본 발명은 이에 한정되는 것이 아니고 특허청구범위와 발명의 상세한 설명 및 첨부한 도면의 범위 안에서 여러가지로 변형하여 실시하는 것이 가능하고 이 또한 본 발명에 속한다.
100: 암호화 통신 프로토콜 제어 모듈
110: 연결 감시부
120: 클라이언트 연결부
130: 제어부
140: 서버 연결부
150: 파일 감시부

Claims (16)

  1. 암호화 통신 프로토콜의 연결이 발생하는지 여부를 감시하고, 상기 암호화 통신 프로토콜의 연결이 발생하면 상기 암호화 통신 프로토콜의 목적지 정보를 변경하는 연결 감시부;
    상기 변경된 목적지 정보에 따라 상기 암호화 통신 프로토콜의 연결을 형성하는 클라이언트 연결부;
    상기 연결 감시부로부터 상기 목적지 정보를 전달받아 목적지에 해당하는 대상 서버와의 연결 여부를 결정하고 상기 대상 서버와의 연결을 위한 연결정보를 전달하는 제어부; 및
    상기 제어부로부터 전달받은 연결정보에 따라 상기 대상 서버에 연결을 요청하는 서버 연결부를 포함하는 암호화 통신 프로토콜 제어 모듈.
  2. 제1항에 있어서, 상기 연결 감시부는,
    상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 개인컴퓨터에서 실행되는지 여부를 감시하고,
    상기 프로그램이 실행되면, 상기 프로그램에 DLL 인젝션을 하고 상기 프로그램의 연결 함수에 대하여 API 후킹을 하여 상기 목적지 정보를 변경하거나, 또는 상기 프로그램의 드라이버를 실행시켜 TDI 필터 드라이버를 등록하고 TDI 필터를 통한 감시를 통해 상기 목적지 정보를 획득하여 상기 목적지 정보를 변경하되,
    상기 변경된 목적지 정보는 상기 클라이언트 연결부에 해당하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  3. 제2항에 있어서, 상기 연결 감시부는,
    상기 목적지 정보는 상기 제어부에 전달하고,
    상기 변경된 목적지에 따라 상기 프로그램을 통하여 상기 클라이언트 연결부로 연결이 요청되도록 하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  4. 제3항에 있어서, 상기 제어부는,
    상기 목적지 정보를 포함하는 연결정보를 상기 서버 연결부에 전달하고,
    서명정보에 해당하는 제1 개인키 및 제1 인증서를 생성하여 상기 개인컴퓨터에 등록하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  5. 제4항에 있어서, 상기 서버 연결부는,
    상기 연결정보에 따라 상기 대상 서버와 연결이 완료되면, 상기 암호화 통신 프로토콜의 공개정보로부터 주체이름 및 주체대체이름을 추출하여 상기 제어부에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  6. 제5항에 있어서, 상기 제어부는,
    상기 주체이름 및 주체대체이름을 기초로 공개정보에 해당하는 제2 인증서 및 비밀정보에 해당하는 제2 개인키를 생성하고, 상기 제1 개인키를 이용하여 상기 제2 인증서에 전자서명을 수행하고, 상기 제2 개인키 및 상기 전자서명이 수행된 제2 인증서를 상기 클라이언트 연결부에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  7. 제6항에 있어서, 상기 클라이언트 연결부는,
    상기 전자서명이 수행된 제2 인증서를 등록하고, 상기 프로그램으로부터 요청된 연결 요청을 수락하고, 상기 전자서명이 수행된 제2 인증서를 상기 프로그램에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  8. 제7항에 있어서,
    상기 프로그램에 의하여 상기 개인컴퓨터에 등록된 제1 인증서 및 상기 제2 인증서를 기초로, 상기 전자서명이 수행된 제2 인증서의 발급기관, 이름, 및 유효기간이 검사되면, 상기 클라이언트 연결부와의 연결이 완료되는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  9. 제1항에 있어서, 상기 클라이언트 연결부는,
    상기 암호화 통신 프로토콜의 연결이 형성되면,
    상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램으로부터 수신한 암호화 트래픽을 복호화하여 상기 제어부에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  10. 제9항에 있어서, 상기 제어부는,
    상기 복호화된 트래픽의 내용을 로그로 저장하고, 상기 트래픽의 내용을 검사한 후, 상기 서버 연결부에 트래픽을 전달하되,
    상기 트래픽의 내용 검사에 따라 상기 트래픽의 내용이 부적합한 것으로 판단되면, 상기 트래픽의 내용이 변경된 후 상기 서버 연결부에 전달되는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  11. 제10항에 있어서, 상기 서버 연결부는,
    상기 트래픽을 상기 대상 서버의 암호화 통신 프로토콜의 공개정보를 기초로 암호화 한 후, 암화된 트래픽을 상기 대상 서버에 전송하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  12. 제1항에 있어서,
    상기 암호화 통신 프로토콜의 연결을 수행하는 프로그램이 접근하는 파일과 상기 프로그램이 읽는 파일의 내용을 감시하는 파일 감시부를 더 포함하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  13. 제12항에 있어서, 상기 파일 감시부는,
    상기 클라이언트 연결부와 상기 암호화 통신 프로토콜의 연결이 형성되면,
    상기 프로그램에서 파일 읽기가 발생하는지 여부를 감시하고, 상기 프로그램에서 파일 읽기가 발생하면 상기 프로그램이 읽은 파일의 내용을 저장하되,
    상기 프로그램이 읽은 파일의 내용은 상기 프로그램을 통하여 암호화 트래픽으로 상기 클라이언트 연결부에 전송되는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  14. 제13항에 있어서,
    상기 클라이언트 연결부는, 상기 암호화 트래픽을 복호화하여 제어부에 전달하고, 상기 제어부는, 상기 복호화된 트래픽을 상기 파일 감시부로 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  15. 제14항에 있어서, 상기 파일 감시부는,
    상기 제어부로부터 전달받은 트래픽의 내용이 상기 저장된 읽은 파일의 내용에 포함되는지 여부를 검사하고, 검사 결과를 제어부에 전달하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
  16. 제15항에 있어서,
    상기 제어부는, 상기 검사 결과가 파일 유출 행위에 해당함을 나타내면, 상기 클라이언트 연결부에 암호화 통신 프로토콜의 연결 종료를 요청하고,
    상기 클라이언트 연결부는 상기 연결 종료의 요청에 따라 암호화 통신 프로토콜의 연결을 종료하는 것을 특징으로 하는 암호화 통신 프로토콜 제어 모듈.
KR1020180000756A 2018-01-03 2018-01-03 암호화 통신 프로토콜 제어 모듈 KR102042086B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180000756A KR102042086B1 (ko) 2018-01-03 2018-01-03 암호화 통신 프로토콜 제어 모듈

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180000756A KR102042086B1 (ko) 2018-01-03 2018-01-03 암호화 통신 프로토콜 제어 모듈

Publications (2)

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

Family

ID=67254354

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180000756A KR102042086B1 (ko) 2018-01-03 2018-01-03 암호화 통신 프로토콜 제어 모듈

Country Status (1)

Country Link
KR (1) KR102042086B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210045545A (ko) * 2019-10-16 2021-04-27 (주)소만사 엔드포인트의 트래픽에 대한 포워딩 시스템 및 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010091596A (ko) * 2000-03-16 2001-10-23 강태교 실시간 보안 인증 전화 시스템
KR20100024723A (ko) * 2008-08-26 2010-03-08 주식회사 케이티 정책기반 라우팅을 이용한 선택적인 인터넷 트래픽 분석 시스템 및 그 방법
KR20100063777A (ko) * 2007-10-25 2010-06-11 후지쯔 가부시끼가이샤 정보 제공 방법, 중계 방법, 정보 유지 장치, 중계기
KR20100106912A (ko) 2009-03-24 2010-10-04 가부시끼가이샤 도시바 비휘발성 메모리 장치의 제조 방법
KR20120073021A (ko) * 2010-12-24 2012-07-04 한국인터넷진흥원 특정 프로세스에 대한 네트워크 행위 모니터링 시스템 및 그 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010091596A (ko) * 2000-03-16 2001-10-23 강태교 실시간 보안 인증 전화 시스템
KR20100063777A (ko) * 2007-10-25 2010-06-11 후지쯔 가부시끼가이샤 정보 제공 방법, 중계 방법, 정보 유지 장치, 중계기
KR20100024723A (ko) * 2008-08-26 2010-03-08 주식회사 케이티 정책기반 라우팅을 이용한 선택적인 인터넷 트래픽 분석 시스템 및 그 방법
KR20100106912A (ko) 2009-03-24 2010-10-04 가부시끼가이샤 도시바 비휘발성 메모리 장치의 제조 방법
KR20120073021A (ko) * 2010-12-24 2012-07-04 한국인터넷진흥원 특정 프로세스에 대한 네트워크 행위 모니터링 시스템 및 그 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210045545A (ko) * 2019-10-16 2021-04-27 (주)소만사 엔드포인트의 트래픽에 대한 포워딩 시스템 및 방법

Also Published As

Publication number Publication date
KR102042086B1 (ko) 2019-11-27

Similar Documents

Publication Publication Date Title
US10305903B2 (en) Bypassing certificate pinning
US7627896B2 (en) Security system providing methodology for cooperative enforcement of security policies during SSL sessions
US20190089527A1 (en) System and method of enforcing a computer policy
US8356333B2 (en) System and method for verifying networked sites
US6874084B1 (en) Method and apparatus for establishing a secure communication connection between a java application and secure server
US6510523B1 (en) Method and system for providing limited access privileges with an untrusted terminal
US8312261B2 (en) Method and system for verification of an endpoint security scan
US8302170B2 (en) Method for enhancing network application security
US7069434B1 (en) Secure data transfer method and system
US9197420B2 (en) Using information in a digital certificate to authenticate a network of a wireless access point
KR100621420B1 (ko) 네트워크 접속 시스템
US20080022085A1 (en) Server-client computer network system for carrying out cryptographic operations, and method of carrying out cryptographic operations in such a computer network system
US7590844B1 (en) Decryption system and method for network analyzers and security programs
US10257171B2 (en) Server public key pinning by URL
CN112261012A (zh) 一种浏览器、服务器以及网页访问方法
Badra et al. Phishing attacks and solutions
CN117081815A (zh) 数据安全传输的方法、装置、计算机设备及存储介质
CN111611620B (zh) 一种访问平台的访问请求处理方法及相关装置
US20100146605A1 (en) Method and system for providing secure online authentication
CN109587134B (zh) 接口总线的安全认证的方法、装置、设备和介质
KR102042086B1 (ko) 암호화 통신 프로토콜 제어 모듈
JP4921614B2 (ja) 中間者によるコンピュータのハッキング技法を防止するための方法およびシステム
Claessens et al. A tangled world wide web of security issues
KR20160012546A (ko) 이동단말기의 원격제어시스템
KR20230111434A (ko) 마이데이터 서비스 인증 방법 및 그 시스템

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)