KR101875093B1 - Performance Enhancing System for HTTPs Packet Analysis Processing - Google Patents

Performance Enhancing System for HTTPs Packet Analysis Processing Download PDF

Info

Publication number
KR101875093B1
KR101875093B1 KR1020180021919A KR20180021919A KR101875093B1 KR 101875093 B1 KR101875093 B1 KR 101875093B1 KR 1020180021919 A KR1020180021919 A KR 1020180021919A KR 20180021919 A KR20180021919 A KR 20180021919A KR 101875093 B1 KR101875093 B1 KR 101875093B1
Authority
KR
South Korea
Prior art keywords
packet
https
packets
nic
transmission
Prior art date
Application number
KR1020180021919A
Other languages
Korean (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 KR1020180021919A priority Critical patent/KR101875093B1/en
Application granted granted Critical
Publication of KR101875093B1 publication Critical patent/KR101875093B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/901Buffering arrangements using storage descriptor, e.g. read or write pointers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal
    • H04L49/9068Intermediate storage in different physical parts of a node or terminal in the network interface card
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/166IP fragmentation; TCP segmentation

Abstract

The present invention is to provide a system for processing HTTPs packet analysis, which is able to simplify a processing process for packet recombination by excluding a kernel area in an HTTPs packet analysis module, and transmitting and receiving packets. The system comprises: a web server which can conduct HTTPs encoding communications; and an HTTPs security facility which is positioned between client terminals connected to the relevant web server. In addition, the HTTPs security facility includes a network interface card (NIC) which has a physical port for inputting and outputting incoming packets. The NIC checks port information of an incoming raw packet, checks the existence of HTTPs traffic according to ip/port rule, determines whether to drop or not the relevant packet, and directly delivers a received Rx/Tx packet to a user space for packet analysis without passing a kernel space from the physical port of the NIC. Therefore, the system for processing HTTPs packet analysis can minimize consumption of system resources (CPU/memory) required during an HTTPs analysis process, by removing a packet processing process conducted in a kernel space to be implemented in a user space.

Description

HTTPs 패킷분석 처리성능 향상 시스템 { Performance Enhancing System for HTTPs Packet Analysis Processing }[0001] The present invention relates to an HTTPs packet processing method,

본 발명은 월드와이드 웹 통신 프로토콜인 HTTPs의 패킷을 분석하여 처리하기 위한 것으로, HTTPs 패킷분석 모듈에서 커널 영역을 배제하고 패킷을 송수신하여, 패킷의 처리과정을 단순화 및 간소화시키는 HTTPs 패킷분석 처리 시스템을 제공하고자 하는 것이다.The present invention relates to an HTTPs packet analysis processing system for analyzing and processing a packet of HTTPs, which is a world wide web communication protocol, in which an HTTPs packet analysis module excludes a kernel area and transmits and receives a packet, simplifying and simplifying a process of a packet .

웹통신의 프로토콜인 HTTP는 해커의 공격 및 스니핑(sniffing)에 취약한 프로토콜이다. 이에 안전한 웹서비스를 위해서, 사용자와 그 사용자와 연결된 서버사이에 전송되는 패킷내용을 보호하기 위하여, 기존에 사용하던 HTTP 프로토콜 대신에 암호화된 HTTPs 프로토콜이 적용되고 있다.HTTP, a protocol for Web communications, is a protocol vulnerable to attack and sniffing by hackers. In order to protect the contents of the packet transmitted between the user and the server connected to the user for the secure web service, the encrypted HTTPs protocol is applied instead of the HTTP protocol which has been used.

HTTPs 암호화 통신을 사용함으로써 1) TLS프로토콜이 적용되어 송수신하는 데이터 스니핑 방지되고(데이터 암호화), 2) 송수신 되는 데이터에 대한 무결성 확보(데이터 무결성) 그리고 3) 전자서명이 포함된 보안인증서를 사용하여 사이트 신뢰성 확보(사이트 신뢰성)되는 효과가 있어, 최근 대부분의 웹사이트들은 보안목적을 위해서 HTTPs 프로토콜을 사용하고 있는 실정이다.By using HTTPs encryption communication, 1) TLS protocol is applied to prevent data sniffing (data encryption), 2) ensuring integrity of data to be transmitted and received (data integrity), and 3) Most websites use HTTPs protocol for security purposes because they have the effect of securing site reliability (site reliability).

도 1에 도시된 바와 같이, 전자상거래업체, 정부/금융기관, 대기업의 홈페이지 등 주요 홈페이지들은 이미 HTTPs를 이용하여 일반 사용자의 보안에 대한 불안감을 해소해주고 있다.As shown in FIG. 1, major homepages such as e-commerce companies, government / financial institutions, large corporations' homepages have already relieved the anxiety of security of general users by using HTTPs.

한편, 표준화기구인 IETF( Internet Engineering Task Force)에서는 이와 같은 HTTPs 사용추세에 따라, 도 2에 도시된 바와 같이, HTTPs로 전환된 홈페이지들은 브라우저 상단의 주소록에서 녹색자물쇠 모양의 안전로고를 보여줄 수 있도록 하여 사용자들이 이용하는 웹서비스가 보안상 안전한 사이트인지 구별할 수 있도록 해주고 있다.Meanwhile, according to the Internet Engineering Task Force (IETF) standardization organization, as shown in FIG. 2, homepages converted into HTTPs are displayed in the address book at the top of the browser so as to show a safety logo in the form of a green padlock So that it is possible to distinguish whether the web service used by the users is a secure site.

이와 같이 HTTPs 홈페이지가 광범위하게 사용됨에 따라, 패킷감청장비 또는 패킷분석장비에서는 HTTPs에 따른 암/복호화 작업에 시스템 리소스가 많이 소모되면서 CPU부하 / 메모리 점유 등의 서버 자원( Server Resource)소모가 HTTPs를 사용하지 않을 때보다 몇 배로 증가하게 되었다.As the HTTPs homepage is widely used, the packet interception device or the packet analyzing device consumes a large amount of system resources for the encryption / decryption according to the HTTPs, so that the server resource consumption such as the CPU load / It increased several times more than when not in use.

이러한 부하증가로 인해서, Firewall / IDS / IPS 등의 패킷분석처리를 담당하는 보안장비에서는 HTTPs 트래픽의 암/복호화 작업을 효율적으로 수행할 수 있도록 하기 위해, 하드웨어적인 성능향상방법과 소프트웨어적인 성능향상방법을 병행하여 패킷분석을 위한 성능개선 작업에 관심을 기울이고 있다.In order to efficiently perform encryption / decryption of HTTPs traffic in a security device that handles packet analysis such as Firewall / IDS / IPS due to such load increase, a hardware performance improvement method and a software performance improvement method And to improve performance for packet analysis.

먼저, 하드웨어 성능향상 방법으로는, 패킷분석 성능을 높이기 위하여 NPU(Network Processing Unit)가 장착된 전용 NIC(Network Interface card)카드를 사용하는 등, 서버용 하드웨어 자원의 사양(specification)을 높여서 고성능서버를 개발하는 방향으로 진행되었다. First, as a hardware performance improvement method, a special NIC (Network Interface Card) card equipped with a NPU (Network Processing Unit) is used to increase the packet analysis performance, And to develop it.

도 3에 도시된 바와 같이, 하드웨어 관점에서 성능향상의 경우, 방화벽이나 IDS/IPS와 같은 기존 보안장비에서의 기본적인 패킷처리 방식, 즉 'NIC카드에서 ethernet 포트로 들어오는 패킷을 하드웨어 드라이버 레벨에서 패킷 frame 단위로 수집하여 Kernel 영역에서 패킷처리과정(packet processing)을 거치면서 패킷구조에 대한 메모리 할당, 메모리 복사작업등을 거치면서 User 공간으로 전송하는 과정은 그대로 유지한다. 즉, 패킷처리과정은 종래의 방식을 그대로 유지하면서 하드웨어 장비의 성능확장에 의존하는 방법을 말한다.As shown in FIG. 3, in the case of performance enhancement from a hardware point of view, a basic packet processing method in an existing security device such as a firewall or an IDS / IPS, that is, a packet arriving at the ethernet port from the NIC card, And then the process of transferring the packet structure to the user space is performed while the memory allocation and the memory copying operation of the packet structure are performed through the packet processing in the kernel area. That is, the packet processing is a method of relying on the performance enhancement of a hardware device while maintaining the conventional method.

다음으로, 소프트웨어 관점에서 성능향상 방식은, 하드웨어적인 방법과 달리, 주어질 물리적인 환경이나 네트워크 환경하에서 Throughput, Latency의 개선을 목표로 해서, 스택병렬처리 / 스택내부 제어흐름관리 및 header prediction, checksum offload와 같은 프로토콜 자체의 기능개선을 통한 성능향상을 다루고 있다.Next, from a software point of view, the performance enhancement method, unlike the hardware method, aims at improvement of the throughput and latency in the physical environment or network environment to be given, stack parallel processing / stack control flow management, header prediction, And the performance improvement of the protocol itself.

한편, 소프트웨어 관점에서 성능향상 방식을 고려할 때, 기존 설계방식에서 부하발생 원인을 파악해야 하며, 본 발명에서는 raw패킷 처리시, 기존 시스템의 부하발생 주요 요인 및 부하의 상대비율을 아래 표1과 같이 정리할 수 있다. In the present invention, in the present invention, when the raw packet is processed, the main factors of the load of the existing system and the relative ratios of the loads are shown in Table 1 below You can organize.

raw 패킷처리시 부하 발생 주요 요인Main factors of load generation in raw packet processing UDP 패킷의 경우For UDP packets TCP 패킷의 경우For TCP packets system call시스템 회 약 50%About 50% 약 20%About 20% 메모리 할당Memory allocation 약 30%About 30% 약 60%About 60% 메모리 복사Copy Memory 약 10%About 10% 약 10%About 10% 기타Other 약 10%About 10% 약 10%About 10%

위의 표에서 보는 바와 같이,  TCP패킷에 대해서는 1)system call( 전체 부하에서 20% 차지)을 줄이거나, 2)TCP 메모리할당에 소요되는 시간( 전체 부하에서 60% 차지)을 줄이도록 설계하는 것이 패킷분석 작업시, 성능향상의 주요한 개선방향이 될 수 있다. As shown in the above table, the TCP packet is designed to reduce 1) system calls (20% of the total load) or 2) reduce the time required for TCP memory allocation (60% of the total load) This can be a major improvement in performance improvement in packet analysis work.

(001) 대한민국 등록 특허 제10-1458231호(001) Korean Patent No. 10-1458231

본 발명은 HTTPs 프로토콜 분석을 위한 시스템 부하발생을 경감할 수 있도록 하기 위한 것으로, raw패킷 분석 처리를 위한 효율적인 S/W 구조 설계시스템을 제공하여 HTTPs보안장비에서의 패킷 송신/수신 처리시 발생하는 overhead 문제를 해결하고자 한다.The present invention provides an efficient S / W structure design system for raw packet analysis processing in order to reduce system load for analyzing HTTPs protocol, so that overhead I want to solve the problem.

1. TCP segment 생성후 TCP Host Stack(layer) 이동에 따른 overhead 1. Overhead due to TCP Host Stack (layer) movement after TCP segment creation

본 발명은 메모리 버퍼에서 Kernel 공간으로 전송된 패킷은 Host Stack에서 TCP/IP연결을 위해서, Ethernet header / IP Header 정보를 삽입(encapsulation) 및 제거(decapsulation)하는 작업을 모든 패킷유닛(PDU:packet data unit)에 대하여 반복적으로 수행함에 따라 NIC 드라이버에서 Kernel 공간으로 수신된 패킷을 상위 layer로 전달하기 위해서 운영체제가 이해할 수 있는 패킷구조체로 변경하는 작업을 위해 시스템 리소스의 과도한 할당문제를 해결하고자 한다.In the present invention, a packet transmitted from a memory buffer to a kernel space is used to encapsulate and decode Ethernet header / IP header information for TCP / IP connection in the Host Stack to all packet units (PDUs) unit), the NIC driver tries to solve the problem of over-allocation of system resources in order to change the packet structure received by the operating system into an understandable packet structure in order to forward the packet received in the kernel space to the upper layer.

2. 2. 모드전환(Context Switching)으로Context Switching 인한 오버헤드 Overhead caused by

본 발명은 User 공간의 application에서 호출되는 시스템콜(read / write 함수 등)로 인해서 사용자 영역의 메모리와 커널영역의 메모리를 접근(access) 하기 위한 컨텍스트 스위칭(Context Switching)작업이 반복적으로 이루어짐에 따라 kernel/User 공간 사이의 빈번한 전환작업으로 인한 오버헤드를 줄여서 대기시간을 감소시키고 시스템 부하를 경감시키고자 한다.Since the context switching operation for accessing the memory of the user area and the memory of the kernel area is repeated due to the system call (read / write function, etc.) called in the application of the user space To reduce the overhead caused by frequent switching between kernel / user space, it is necessary to reduce the waiting time and reduce the system load.

3. 메모리 복사 능력 향상 / 복사 횟수 줄이기 3. Improve memory copy ability / reduce copy count

본 발명은 하나의 장비가 패킷을 처리하는 데 소요되는 메모리 사용량, 메모리 접근 수 등을 줄여서 초당 처리할 수 있는 최대 패킷 개수를 증가시기 위한 것이다.The present invention is intended to increase the maximum number of packets that can be processed per second by reducing the memory usage, the number of memory accesses, and the like required for one device to process a packet.

상기한 바와 같은 목적을 달성하기 위한 본 발명의 특징에 따르면, 본 발명은, HTTPs 암호화 통신이 가능한 웹서버와 해당 웹서버에 접속한 클라이언트 브라우저 사이에 위치하는 HTTPs 보안장비를 포함하여 구성되고, 상기 HTTPs 보안장비는 User 영역과 NIC 영역을 포함하여 구성되며, 상기 NIC 영역은, 패킷의 수신 및 송신을 입출력하는 물리포트와; 수신된 수신 패킷 및 송신할 송신 패킷을 저장하는 원형큐를 포함하여 구성되는 NIC 카드를 포함하여 구성되고, 상기 User 영역은, 패킷 프로세싱을 수행하기 위한 캡슐레이터를 포함하여 구성되는 HTTPs패킷분석모듈을 포함하여 구성되고: 상기 패킷 프로세싱은, 송수신패킷에 대하여 TCP/IP규약에 의거 MAC, IP 및 Header정보의 삽입 및 제거를 통해 패킷의 재조립 또는 재구성하는 과정을 말한다.According to an aspect of the present invention, there is provided an HTTPS security device located between a web server capable of HTTPs encryption communication and a client browser connected to the web server, The HTTPs security device is configured to include a User area and a NIC area, the NIC area including: a water report for inputting and outputting a packet reception and transmission; And a circular queue for storing received packets and transmission packets to be transmitted, wherein the User area comprises an encapsulator for performing packet processing, and an HTTPs packet analysis module including an encapsulator for performing packet processing, The packet processing refers to a process of reassembling or reconfiguring a packet by inserting and removing MAC, IP, and Header information according to the TCP / IP protocol for a transmission / reception packet.

여기서, 상기 캡슐레이터는, TCP/IP규약에 의해 인입된 패킷을 순서에 맞추어 패킷을 조립하는 패킷조립모듈과; 사용자 응용프로그램이 활용할 수 있도록 MAC/IP/기타 Header 정보를 제거 또는 삽입하는 제거삽입모듈을 포함하여 구성될 수도 있다.Here, the encapsulator may include a packet assembling module for assemble the packets according to the order of the packets entered by the TCP / IP protocol; And a removal insertion module for removing or inserting MAC / IP / other Header information for use by the user application.

그리고 상기 HTTPs패킷분석모듈은, 상기 원형큐에 수신된 패킷을 상기 User 영역에 저장할 수 있는 공유메모리를 더 포함하여 구성될 수도 있다.The HTTPs packet analysis module may further comprise a shared memory capable of storing packets received in the circular queue in the User area.

또한, 상기 원형큐는, 수신된 패킷을 전송하기 위해, 수신 물리포트에 대응하는 Rx원형수신큐와; 송신할 패킷을 전송하기 위해, 송신 물리포트에 대응하는 Tx원형송신큐를 포함하여 구성될 수도 있다.The circular queue also includes an Rx circular receive queue corresponding to a receipt report to transmit the received packet; And a Tx circular transmission queue corresponding to the transmission report to transmit the packet to be transmitted.

그리고 상기 원형큐는, 수신된 패킷(incomming packet)의 위치를 지정하는 내부포인터와, 발신된 패킷(outgoing packet)의 위치를 지정하는 외부포인터를 이용하여 송수신패킷이 관리될 수도 있다.The circular queue may be managed by using an internal pointer that specifies the location of the received packet (incomming packet) and an external pointer that specifies the location of the outgoing packet.

또한, 상기 원형큐의 패킷데이터 송수신은, 시스템의 '/dev/' 장치파일을 사용한 제어신호에 의해 동기화되어 수행될 수도 있다.Also, packet data transmission / reception of the circular queue may be performed in synchronization with a control signal using the '/ dev /' device file of the system.

그리고 상기 HTTPs패킷분석모듈은, 상기 공유메모리에 저장된 패킷의 종류를 판별하여, HTTPs패킷 만을 선별적으로 선택하는 IP/Port 선택부를 더 포함하여 구성될 수도 있다.The HTTPs packet analysis module may further comprise an IP / Port selection unit for discriminating the types of packets stored in the shared memory and selectively selecting only HTTPs packets.

또한, 상기 HTTPs패킷분석모듈은, 상기 원형큐로부터 제공되는 패킷의 종류를 판별하여, HTTPs패킷 만을 선별적으로 선택하여 상기 공유메모리에 제공하는 IP/Port 선택부를 더 포함하여 구성될 수도 있다.The HTTPs packet analysis module may further comprise an IP / Port selection unit for determining the type of packets provided from the circular queue, selectively selecting only HTTPs packets, and providing the selected HTTPs packets to the shared memory.

본 발명에 의한 HTTPs 패킷분석 처리 시스템에서는 다음과 같은 효과를 기대할 수 있다.The following effects can be expected in the HTTPs packet analysis processing system according to the present invention.

즉, 본 발명에서는 HTTPs 분석과정 중에 소요되는 시스템자원( CPU/Memory 자원)의 소모를 최소화하기 위하여 Kernel 공간에서 이루어지는 패킷프로세싱과정을 생략하고, User 공간에서 패킷을 분석/처리하도록 구현하여, 처리 성능의 향상효과를 기대할 수 있다. 예를 들어 10 Gigabit /s의 속도로 데이터가 전달될 경우 초당 백 만개 이상의 패킷에 대하여 구조체를 생성(allocation), 반환(free)하는 작업을 해야 하는데 이와 같은 작업에 소요되는 메모리할당작업, 메모리 복사작업을 줄일 수 있어, raw 패킷처리의 효율이 향상된다. That is, in order to minimize the consumption of system resources (CPU / memory resources) consumed during the HTTPs analysis process, the packet processing process in the kernel space is omitted and the packet is analyzed / processed in the user space, Can be expected. For example, when data is transmitted at a rate of 10 Gigabit / s, a structure must be created and returned for more than one million packets per second. In this case, Work can be reduced, and the efficiency of raw packet processing is improved.

또한, raw packet 데이터를 공유메모리 영역을 지정하여 저장함으로써 메모리 복사에 따른 부하를 감소시킬 수 있다. In addition, by storing the raw packet data in the shared memory area, it is possible to reduce the load due to the memory copy.

도 1은 웹페이지 상에서 HTTPs 프로토콜 적용 예를 도시한 예시도.
도 2는 웹페이지 상에서 HTTPs 프로토콜 적용 여부가 표시된 예를 도시한 예시도.
도 3은 종래기술에 의한 HTTPs 패킷분석 처리 시스템에 의한 패킷 분석 방법을 도시한 예시도.
도 4는 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 패킷분석 방법을 도시한 흐름도.
도 5는 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 구성을 도시한 블록도.
도 6은 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 Raw 패킷의 복사 및 캡슐레이터 동작을 설명한 개념도.
도 7은 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 NIC 메모리 버퍼와 User 영역의 공유메모리 공유과정을 도시한 개념도.
1 is an exemplary diagram illustrating an example of application of HTTPs protocol on a web page;
FIG. 2 is an exemplary diagram showing an example in which the HTTPs protocol is applied on a web page; FIG.
3 is a diagram illustrating an example of a packet analysis method by the HTTPs packet analysis processing system according to the related art.
4 is a flowchart showing a packet analysis method of the HTTPs packet analysis processing system according to the present invention.
5 is a block diagram showing a configuration of an HTTPs packet analysis processing system according to the present invention;
FIG. 6 is a conceptual diagram illustrating copying and encapsulator operations of Raw packets in the HTTPs packet analysis processing system according to the present invention. FIG.
7 is a conceptual diagram illustrating a process of sharing a shared memory of a NIC memory buffer and a user area in an HTTPs packet analysis processing system according to the present invention.

이하에서는 첨부된 도면을 참조하여 본 발명의 구체적인 실시예에 의한 HTTPs 패킷분석 처리시스템을 살펴보기로 한다.Hereinafter, an HTTPs packet analysis processing system according to a specific embodiment of the present invention will be described with reference to the accompanying drawings.

설명에 앞서 먼저, 본 발명의 효과, 특징 및 이를 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예에서 명확해진다. 그러나 본 발명은 이하에서 개시되는 실시 예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. BRIEF DESCRIPTION OF THE DRAWINGS The above and other objects, features and advantages of the present invention will be more apparent from the following detailed description taken in conjunction with the accompanying drawings, in which: FIG. The present invention may, however, be embodied in many different forms and should not be construed as being limited to the embodiments set forth herein. Rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Is provided to fully convey the scope of the invention to those skilled in the art, and the invention is only defined by the scope of the claims.

본 발명의 실시 예들을 설명함에 있어서 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이며, 후술되는 용어들은 본 발명의 실시 예에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS In the following description of the present invention, detailed description of known functions and configurations incorporated herein will be omitted when it may make the subject matter of the present invention rather unclear. , Which may vary depending on the intention or custom of the user, the operator, and the like. Therefore, the definition should be based on the contents throughout this specification.

첨부된 블록도의 각 블록과 흐름도의 각 단계의 조합들은 컴퓨터 프로그램 인스트럭션들(실행 엔진)에 의해 수행될 수도 있으며, 이들 컴퓨터 프로그램 인스트럭션들은 범용 컴퓨터, 특수용 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서에 탑재될 수 있으므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비의 프로세서를 통해 수행되는 그 인스트럭션들이 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능들을 수행하는 수단을 생성하게 된다.Each block of the accompanying block diagrams and combinations of steps of the flowcharts may be performed by computer program instructions (execution engines), which may be stored in a general-purpose computer, special purpose computer, or other processor of a programmable data processing apparatus The instructions that are executed through the processor of the computer or other programmable data processing equipment will generate means for performing the functions described in each block or flowchart of the block diagram.

이들 컴퓨터 프로그램 인스트럭션들은 특정 방식으로 기능을 구현하기 위해 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 지향할 수 있는 컴퓨터 이용 가능 또는 컴퓨터 판독 가능 메모리에 저장되는 것도 가능하므로, 그 컴퓨터 이용가능 또는 컴퓨터 판독 가능 메모리에 저장된 인스트럭션들은 블록도의 각 블록 또는 흐름도의 각 단계에서 설명된 기능을 수행하는 인스트럭션 수단을 내포하는 제조 품목을 생산하는 것도 가능하다.These computer program instructions may also be stored in a computer usable or computer readable memory capable of directing a computer or other programmable data processing apparatus to implement the functionality in a particular manner so that the computer usable or computer readable memory It is also possible for the instructions stored in the block diagram to produce an article of manufacture containing instruction means for performing the functions described in each block or flowchart of the flowchart.

그리고 컴퓨터 프로그램 인스트럭션들은 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에 탑재되는 것도 가능하므로, 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비 상에서 일련의 동작 단계들이 수행되어 컴퓨터로 실행되는 프로세스를 생성하여 컴퓨터 또는 기타 프로그램 가능한 데이터 프로세싱 장비를 수행하는 인스트럭션들은 블록도의 각 블록 및 흐름도의 각 단계에서 설명되는 기능들을 실행하기 위한 단계들을 제공하는 것도 가능하다.And computer program instructions may be loaded onto a computer or other programmable data processing equipment so that a series of operating steps may be performed on a computer or other programmable data processing equipment to create a computer- It is also possible that the instructions that perform the data processing equipment provide the steps for executing the functions described in each block of the block diagram and at each step of the flowchart.

또한, 각 블록 또는 각 단계는 특정된 논리적 기능들을 실행하기 위한 하나 이상의 실행 가능한 인스트럭션들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있으며, 몇 가지 대체 실시 예들에서는 블록들 또는 단계들에서 언급된 기능들이 순서를 벗어나서 발생하는 것도 가능하다.Also, each block or step may represent a portion of a module, segment, or code that includes one or more executable instructions for executing the specified logical functions, and in some alternative embodiments, It is also possible for functions to occur out of order.

즉, 도시된 두 개의 블록들 또는 단계들은 사실 실질적으로 동시에 수행되는 것도 가능하며, 또한 그 블록들 또는 단계들이 필요에 따라 해당하는 기능의 역순으로 수행되는 것도 가능하다.That is, it is also possible that the two blocks or steps shown are actually concurrently performed, and that the blocks or steps are performed in the reverse order of the function as required.

본 발명에 의한 HTTPs 패킷분석 처리 시스템의 설명은, 설명의 편의와 이해를 위해, 규격화된 기존 HTTPs 패킷분석 처리 시스템과 대비하여 설명하기로 한다.The description of the HTTPs packet analysis processing system according to the present invention will be described in comparison with a standardized existing HTTPs packet analysis processing system for convenience and understanding.

도 3은 종래기술에 의한 HTTPs 패킷분석 처리 시스템에 의한 패킷 분석 방법을 도시한 예시도이고, 도 4는 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 패킷분석 방법을 도시한 흐름도이며, 도 5는 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 구성을 도시한 블록도이고, 도 6은 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 Raw 패킷의 복사 및 캡슐레이터 동작을 설명한 개념도이며, 도 7은 본 발명에 의한 HTTPs 패킷분석 처리 시스템의 NIC 메모리 버퍼와 User 영역의 공유메모리 공유과정을 도시한 개념도이다.4 is a flowchart illustrating a method of analyzing a packet in the HTTPs packet analysis processing system according to the present invention. FIG. 5 is a flowchart illustrating a method of analyzing a packet in the HTTPs packet analysis processing system according to the present invention. FIG. 6 is a conceptual diagram illustrating a copying and encapsulating operation of a raw packet in the HTTPs packet analysis processing system according to the present invention. FIG. FIG. 4 is a conceptual diagram illustrating a process of sharing a shared memory of the NIC memory buffer and the user area of the HTTPs packet analysis processing system. FIG.

먼저, 종래기술에 의한 HTTPs 패킷분석 처리 시스템은 도 3에 도시된 바와 같이, HTTPs 보안장비(10)를 포함하여 구성되고, 상기 HTTPs 보안장비(10)는 Network 구조상에서 Client Browser(50)와 web server 사이에 위치하며, 입출력 물리포트(44)를 포함하여 구성되는 NIC(40)을 포함하여 구성된다.As shown in FIG. 3, the HTTPs packet analysis processing system according to the related art includes an HTTPs security device 10, and the HTTPs security device 10 includes a client browser 50 and a web browser and an NIC 40 including an input / output report 44, which are located between the servers.

Client browser(50)에서는 통상적으로 웹서버 인증서의 암호화키를 이용하여 암호화된 패킷을 웹서버로 전송한다. The client browser 50 typically transmits the encrypted packet to the web server using the encryption key of the web server certificate.

그리고 HTTPs 패킷분석모듈이 해당 패킷을 복호화하여 사용자 요청이나 웹서버응답내용을 분석하게 된다. The HTTPs packet analysis module decodes the packet and analyzes the user request or web server response contents.

이때, 분석된 내용은 다시 암호화하여 web server 또는 client browser로 전달하게 된다. At this time, the analyzed contents are encrypted again and transmitted to a web server or a client browser.

구체적으로, 종래기술에 의한 HTTPs 패킷분석 처리 시스템의 패킷처리 과정을 설명하면, HTTPs보안장비(10)는 외부로부터 인입되는 Incomming packet(60)을 NIC카드(40)에서 수신하게 된다.Specifically, the packet processing process of the HTTPs packet analysis processing system according to the related art will be described. The HTTPs security device 10 receives the incoming com- munication packet 60 from the NIC card 40.

이때, 상기 NIC카드(40)의 물리포트(eth0, 44)에서 수신된 raw패킷은 Host영역의 Kernel공간(30)으로 전달된다. 여기에서 Kernel STACK(32)은 TCP/IP규약에 따른 패킷프로세싱작업을 진행한다. At this time, the raw packet received from the water report (eth0, 44) of the NIC card 40 is transferred to the kernel space 30 of the host area. Here, the Kernel STACK 32 performs a packet processing operation according to the TCP / IP protocol.

즉, 인입된 raw패킷에 대하여 시간과 세션기준으로 패킷을 재조립하기 위하여, MAC/IP/기타 Header정보의 삭제 및 삽입작업을 진행하여 raw패킷의 재구성작업을 수행한다. That is, in order to reassemble the packets based on the time and the session, the MAC / IP / other header information is deleted and inserted into the raw packet to reconstruct the raw packet.

이에 따라 User 공간과 Kernel 공간에서 조립된 패킷을 읽거나, 저장하기 위하여 시스템콜함수(read/write)가 반복 호출되면서, mode change(context switching)에 따른 시스템 성능의 저하가 발생하게 된다. Accordingly, the system call function (read / write) is repeatedly called to read or store the assembled packet in the user space and the kernel space, and system performance is degraded due to mode change (context switching).

한편, 재조립된 패킷은 User 공간(20)의 Application(22)로 전달되어서 HTTPs 패킷에 대하여 통상의 패킷 암/복호화작업을 수행하게 된다. Meanwhile, the reassembled packet is transmitted to the application 22 of the user space 20 to perform a normal packet encryption / decryption operation on the HTTPs packet.

이에 대비하여 본 발명에 의한 HTTPs 패킷분석 처리 시스템은 도 4에 도시된 바와 같이, 외부 클라이언트 브라우저(200)에서 웹서버(300)에 요청하는 incomming packet(60)은 물리포트(133)를 포함하고 있는 NIC(130)으로 인입된다. In contrast, as shown in FIG. 4, the HTTPs packet analysis processing system according to the present invention includes an incomming packet 60 requesting the web server 300 from the external client browser 200 to include a water report 133 Lt; RTI ID = 0.0 > 130 < / RTI >

그리고 인입된 패킷은 Kernel공간(120)을 거치지 않고, User공간(110)의 캡슐레이터(psulator, 113)로 전달된다. The incoming packet is delivered to the encapsulator (113) of the user space (110) without passing through the kernel space (120).

상기 캡슐레이터(113)는 패킷프로세싱 작업을 수행하기 위한 것으로 User공간(110)에 구비된다.The encapsulator 113 is provided in the user space 110 to perform a packet processing operation.

즉, 상기 캡슐레이터(113)는 raw패킷에 대하여 TCP/IP규약에 의거, 우선적으로 인입된 패킷에 대하여 MAC/IP/Header정보 삽입/제거작업을 진행하여, raw패킷의 재조립, 재구성과정을 처리한다. That is, the encapsulator 113 performs MAC / IP / Header information inserting / removing operations on the raw packet, based on the TCP / IP protocol for the raw packet, and reassembles and reconfigures the raw packet .

본 발명은 이와 같이, Use공간(110)에서 패킷프로세싱과정이 처리될 수 있도록 변경됨으로서 시스템콜함수( read/write)가 반복되어 오버헤드가 발생했던 부분을 회피할 수 있게 된다.As described above, since the packet processing process is changed in the use space 110, the system call function (read / write) is repeated to avoid a portion where overhead has occurred.

본 발명에 의한 HTTPs 패킷분석 처리 시스템의 구성을 상세히 살펴보면, 본 발명에 의한 HTTPs 패킷분석 처리 시스템은 도 5에 도시된 바와 같이, Client Browser(200)와 web server(300) 사이에 위치하는 HTTPs 보안장비(100)를 포함하고, 상기 HTTPs 보안장비(100)는 인라인 프락시 방식 또는 패킷 미러링 방식을 포함하여 Network 상에서 구성될 수 있다.5, the HTTPs packet analysis processing system according to the present invention includes HTTPs security (HTTPS) security processing between the client browser 200 and the web server 300, Equipment 100, and the HTTPs security appliance 100 may be configured on a network including an inline proxy method or a packet mirroring method.

즉, 상기 client 브라우저(200)에서 요청한 패킷은 HTTPs 보안장비(100)를 지나서 웹서버(300)로 전달된다. 이때, 상기 HTTPs 보안 장비(100)는 물리적인 이더넷(ethernet) 포트를 포함하고 있는 NIC(Network Interface Card, 130)과, 기타 장치(전원공급장치, 그래픽카드 등의 하드웨어 장비)를 포함하여 구성된다. That is, the packet requested by the client browser 200 is transmitted to the web server 300 through the HTTPS security device 100. At this time, the HTTPs security device 100 includes a NIC (Network Interface Card) 130 including a physical Ethernet port and other devices (hardware devices such as a power supply device and a graphic card) .

본 발명에 의한 상기 HTTPs 보안 장비(100)는 자체적인 OS(Operating System)를 통하여 구동되는 범용서버이며, HTTPs 패킷 분석 기능을 주기능으로 보유한다. The HTTPs security device 100 according to the present invention is a general-purpose server driven through its own operating system (OS) and has a HTTPs packet analysis function as its main function.

이때, 상기 HTTPs 보안장비(100)에서 제공하는 패킷분석기능은 사용자영역(User Space, 110), 디바이스영역(Device Space)에 걸쳐, NIC(130)과 OS, User 공간의 응용프로그램이 모두 관여해서 처리하는 구조를 갖는다.At this time, the packet analysis function provided by the HTTPs security device 100 includes both the NIC 130 and the application programs of the OS and the User space through the user space 110 and the device space .

본 발명에서 언급되는 HTTPs패킷 분석장비(100)는, User영역(110)에서 HTTPs패킷분석모듈(117)을 포함하고, 상기 HTTPs패킷분석모듈(117)은 MAC/IP/기타Header정보의 삽입/제거 모듈인 capsulator(113)와 IP/port rule에 의해 패킷을 선별하는 IP/port 선택부(115) 및 공유메모리(shared Memory, 140)을 포함하여 구성된다.The HTTPs packet analyzing apparatus 100 referred to in the present invention includes an HTTPs packet analyzing module 117 in the user area 110. The HTTPs packet analyzing module 117 analyzes the insertion / An IP / port selector 115 and a shared memory 140 for selecting packets according to an IP / port rule.

그리고 NIC영역(130)은 패킷수신을 위한 물리포트, 드라이버, 버퍼구조 및 버퍼메모리를 갖고 있는 하드웨어와 소프트웨어를 포함하고 있는 영역으로, Host영역을 제외한 영역 중 패킷수신과 관련된 영역을 말한다.The NIC area 130 is an area including hardware and software having a water report, a driver, a buffer structure, and a buffer memory for packet reception, and refers to an area related to packet reception among areas excluding the Host area.

이때 상기 NIC영역(130)은 이더넷 수신포트에 대응하는 Rx원형수신큐(135A), 이더넷 송신포트에 대응하는 Tx원형송신큐(135B)를 포함하여 구성되며, 물리적인 device에 대응하는 장치파일(예를 들면, /Dev/HSdevice)을 통해서 제어명령을 통해서 raw패킷 전송과 수신 등의 패킷처리 동기화 작업을 담당하는 장치파일관리자를 포함한다. The NIC area 130 includes an Rx circular reception queue 135A corresponding to the Ethernet reception port and a Tx circular transmission queue 135B corresponding to the Ethernet transmission port. The device file corresponding to the physical device For example, / Dev / HSdevice), a device file manager is responsible for synchronizing packet processing such as raw packet transmission and reception through a control command.

상기 Client browser(200)로부터 incomming packet(60)이 HTTPs 보안장비(100)로 인입될 때, packet flow를 설명하면, 물리포트(133)를 경유해서 인입된 패킷은 Rx원형수신큐(135A)에서 수신되고, 해당 원형 버퍼에 적재된 raw패킷은 다시 User 영역과 공유하고 있는 shared Memory영역(140)에 raw 패킷이 저장된다. When an incomming packet 60 is received from the client browser 200 into the HTTPS security device 100, a packet flow is described. A packet received via the water report 133 is transmitted to the Rx circular reception queue 135A And the raw packet stored in the circular buffer is stored in the shared memory area 140 shared with the user area.

그리고 저장된 raw packet data는 수신용 capsulator(113)에서, TCP/IP 규약에 의거, 인입된 raw패킷에 대하여 시간과 세션기준으로 패킷을 재조립하기 위하여 MAC/IP/기타Header정보의 삭제작업을 진행하여 raw패킷의 재구성작업을 수행한다.Then, the stored raw packet data is subjected to deletion of MAC / IP / other header information in order to reassemble the packet based on the time and the session based on the TCP / IP protocol in the receiving capsulator 113 And reconstructs the raw packet.

이를 위해, 도 5에 도시된 바와 같이, 상기 캡슐레이터(capsulator, 113)는 TCP/IP규약에 의해 인입된 패킷을 순서에 맞추어 패킷을 조립하는 패킷조립모듈(113A) 및 사용자 응용프로그램이 활용할 수 있도록 MAC/IP/기타 Header 정보를 제거 또는 삽입하는 제거삽입모듈(113B)을 포함하여 구성될 수 있다.5, the capsulator 113 includes a packet assembling module 113A for assembling packets according to the TCP / IP protocol in order and a user application program And a removal insertion module 113B for removing or inserting MAC / IP / other Header information so that the MAC / IP / other header information is removed.

또한, User영역(110)에서 재조립된 패킷들은 다시 IP/Port 선택부(115)로 전송되고, HTTPs패킷(일반적으로 443포트)이 아닌 경우, IP/Port 선택부(115)에서 해당 패킷이 버려지게 된다(packet drop).The reassembled packets in the user area 110 are transmitted to the IP / Port selector 115 again. If the packets are not HTTPs packets (generally 443 ports), the IP / It is dropped (packet drop).

이와 같이 443포트(HTTPs 패킷)로 확인된 패킷들만 재조립되어서 사용자 응용프로그램(111)(물리적으로는 HTTPs패킷분석 모듈(117)을 말한다)으로 전달되어 복호화/패킷분석/암호화 과정을 거친다. Only the packets identified as the 443 port (HTTPs packet) are reassembled and transferred to the user application program 111 (physically referring to the HTTPs packet analysis module 117) to undergo decryption / packet analysis / encryption.

상기 HTTPs패킷분석모듈(117)에서 분석이 끝나고 암호화된 패킷은 다시 MAC/IP/기타Header정보의 삽입작업을 위해서 capsulator(113)로 전달되고, TCP/IP규약에 따른 패킷프로세싱작업을 진행한다. After the HTTPS packet analysis module 117 analyzes the packet, the encrypted packet is transmitted to the capsulator 113 for insertion of the MAC / IP / other header information, and the packet processing operation according to the TCP / IP protocol is performed.

그리고 해당 패킷은 shared memory(140)에 저장되어서 바로 NIC영역(130)의 송신큐(135B)가 해당 packet 정보를 이용하여 물리포트(eth02, 133B)를 통해 웹서버(300)로 outgoing packet(70)을 전달하게 된다. Then, the corresponding packet is stored in the shared memory 140, and the transmission queue 135B of the NIC area 130 directly transmits the outgoing packet 70 (70) to the web server 300 via the water report (eth02, 133B) ).

이하에서는 도 6을 참조하여, NIC(130)에서 패킷이 수신되는 경우, 패킷 처리 과정을 설명한다. Hereinafter, with reference to FIG. 6, a description will be given of a packet process when a packet is received from the NIC 130. FIG.

상기 NIC카드(130)는 물리포트 Eth0(133A), Eth1(133B)외에 송수신용원형큐(135A, 135B)를 각각 포함하여 구성되며, 상기 원형큐(135)는 내부포인터와 외부포인터를 이용하여 수신패킷과 송신패킷을 각각 관리한다. The NIC card 130 includes circular circles 135A and 135B for transmission and reception in addition to the water reports Eth0 133A and Eth1 133B and the circular queue 135 uses an internal pointer and an external pointer And manages the received packet and the transmitted packet, respectively.

상기 원형큐(135)에서 수신된 패킷이 모두 송신될 경우, 수신된 내부포인터의 위치와 송신된 외부포인터의 위치는 동일하며, 이때 상기 원형큐는 수신패킷을 대기하는 상황이 된다. When all the packets received in the circular queue 135 are transmitted, the positions of the received internal pointers and the transmitted external pointers are the same, and the circular queue is in a state of waiting for the received packets.

한편, User영역(110)에서, 공유메모리(140)는 수신패킷을 저장하는 공유메모리영역과 송신패킷을 저장하는 공유메모리영역이 Rx영역(수신부)과 Tx영역(송신부)으로 각각 물리적으로 구분된다. Meanwhile, in the user area 110, the shared memory area for storing the received packet and the shared memory area for storing the transmitted packet are physically divided into the Rx area (receiving part) and the Tx area (transmitting part), respectively .

그리고 상기 캡슐레이터(113)는 De-capsulator (제거모듈)과 en-capsulator (삽입모듈)로 구분되어, 각각 TCP/IP규약에 의거 패킷프로세싱작업을 진행하며, 인입된 raw패킷에 대하여 시간과 세션기준으로 패킷을 재조립하기 위해 MAC/IP/기타Header정보의 삭제 및 삽입작업을 진행하여 raw패킷의 재구성작업을 수행한다. The encapsulator 113 is divided into a de-capsulator (removal module) and an en-capsulator (insertion module). The encapsulator 113 performs a packet processing operation according to the TCP / IP protocol, In order to reassemble the packet based on the criteria, the MAC / IP / other header information is deleted and inserted, and the reconstruction work of the raw packet is performed.

다음으로, 도 7을 참조하여 NIC카드(130)의 원형큐(135) 구조 및 동작에 대하여 설명하면, 외부 물리포트에서 인입된 패킷(60)이 수신용 원형큐(135A)의 slot들(#1,#2,#3,#4,#5…)에 위치하여 저장된다. Next, the structure and operation of the circular queue 135 of the NIC card 130 will be described with reference to FIG. 7. The packet 60 received from the external data report is transmitted to the slots # 1, # 2, # 3, # 4, # 5 ...).

상기 수신용 원형큐(135A)는 패킷수신과 송신을 동일 패킷 buffer에서 수행하기 때문에, 내부포인터와 외부포인터를 사용하여 이를 관리한다. Since the receiving circular queue 135A performs packet reception and transmission in the same packet buffer, it manages it using an internal pointer and an external pointer.

즉, 수신된 raw패킷은 내부포인터를 사용하여 수신용 원형큐(135A)에 raw패킷을 적재하고, 외부포인터를 사용하여 적재된 raw패킷을 공유메모리영역(140)으로 전송한다.That is, the received raw packet loads the raw packet into the receiving circular queue 135A using the internal pointer, and transmits the loaded raw packet to the shared memory area 140 using the external pointer.

이때 저장되는 패킷데이터를 정의하는 Queue 버퍼의 데이터송신구조체는 원형큐(135)의 각 slot마다 pointer정보/ offset정보/ IP,MAC,기타 헤더정보/ 패킷길이정보/ payload 정보를 갖춘 배열구조(array)이다. At this time, the data transmission structure of the queue buffer that defines the packet data to be stored includes an array structure having pointer information / offset information / IP, MAC, and other header information / packet length information / payload information for each slot of the circular queue 135 )to be.

데이터송신구조체에서 정의된 패킷구조체 데이터들은 공유메모리 영역(140)에 동일한 구조체 형식으로 저장된다. User 영역(110)의 capsulator(113)는, TCP/IP규약에 의거 packet processing 작업을 진행하며, 데이터 수신구조체에 정의되는 형태는, 데이터송신구조체와 동일한 구조이나, 경우에 따라서 물리 메모리 번지대역을 나타내는 point 정보만 다른 정보를 갖게 될 수도 있다.The packet structure data defined in the data transmission structure is stored in the same structure format in the shared memory area 140. The capsulator 113 of the user area 110 carries out a packet processing operation according to the TCP / IP protocol. The type defined in the data receiving structure is the same as that of the data transmitting structure, Only the point information that represents it may have different information.

이와 같은 본 발명은 특정한 사양의 하드웨어나 driver에 의존하지 않고 범용장비에 쉽게 적용할 수 있고, 패킷처리 프로세싱이 일어나는 host 영역(Kernel공간+User공간)에서 작업을 최소한으로 줄여서 데이터 복사, 패킷전달을 위한 구조체 생성, 메모리할당 작업 등을 배제시킬 수 있으며, NIC의 버퍼메모리영역 Kernel메모리영역, User메모리영역으로 복사되어 전달되는 과정을 간소화하고, Kernel 공간에서 이루어지는 패킷 encapsulation / decapsulation 작업 등에 소요되는 메모리 할당 및 복사과정을 간소화하여 패킷 분석 처리작업에 소요되는 overhead를 감소시킬 수 있다.The present invention can be easily applied to general-purpose equipment without depending on hardware or driver of a specific specification, and minimizes the work in the host area (kernel space + user space) where packet processing processing is performed. The memory allocation and operation of the NIC can be eliminated. The NIC buffer memory area and the User memory area can be simplified by simplifying the process of copying and transferring the memory, and the memory allocation for the encapsulation / decapsulation operations in the kernel space And the copying process can be simplified, thereby reducing the overhead required for packet analysis processing.

즉, 본 발명에서는 패킷전달 경로(packet flow) 변경함으로써 HTTPs보안장비의 성능향상에 기여할 수 있다.That is, in the present invention, by changing the packet flow path, the performance of the HTTPs security device can be improved.

구체적으로, 본 발명은 Kernel영역이 아니라 User영역에서 TCP/IP규약에 따른 패킷프로세싱작업을 진행한다. 이에 따라 인입된 raw 패킷을 조립하는 작업을 진행하기 위하여 raw패킷에 대하여 MAC/IP/기타Header정보 삽입 및 삭제작업을 진행하여, raw패킷의 재조립, 재구성과정을 진행한다. Specifically, the present invention performs a packet processing operation according to a TCP / IP protocol in a user area, not in a kernel area. Accordingly, in order to assemble the raw packets, the MAC / IP / other header information insertion and deletion operations are performed on the raw packets, and the reassembling and reconfiguration process of the raw packets is performed.

이와 같이 User공간에서 작업을 수행함으로써 외부에서 인입되는 패킷이 기존 Kernel공간을 바이패스하고 User공간으로 직접 전달되어서, 관련 패킷작업에 소요되는 부하를 줄임으로서 HTTPs보안장비의 성능향상에 기여할 수 있다.By performing the operation in the user space, externally incoming packets bypass the existing kernel space and are directly transmitted to the user space, thereby reducing the load on the related packet operations, thereby contributing to the performance improvement of the HTTPs security equipment.

또한, 본 발명에서는 Memory Mapped packet data를 이용하여 HTTPs보안장비의 성능향상에 기여할 수 있다.Also, in the present invention, it is possible to contribute to the performance improvement of HTTPs security equipment by using memory mapped packet data.

구체적으로, 본 발명은 User 영역의 공유메모리를 지정하여, 1) 수신된 raw packet을 저장하여 사용자 응용프로그램이 바로 이용하거나, 반대로 2) 사용자 영역의 Application이 생성한 데이터를 공유메모리 영역에 실어서, 물리포트를 통해서 외부로 인출할 수 있도록 하여 패킷복사과정을 간소화하여 HTTPs보안장비의 성능향상에 기여할 수 있다. Specifically, the present invention designates a shared memory of the User area to 1) store the received raw packet and directly use the user application program, or 2) store the data generated by the application of the user area in the shared memory area , And it can contribute to the performance improvement of HTTPs security equipment by simplifying the packet copying process by allowing it to be drawn out through the water report.

또한, 물리포트로 raw packet 송수신시, 공유메모리에 적재하기 위하여 시스템의 장치파일 (/dev/)을 이용하여 제어신호를 입력함으로써 패킷수신 및 발송시 관련 작업을 일정크기의 패킷그룹 단위로 동기화시켜 packet 처리작업의 효율성을 높인다.In addition, when sending and receiving raw packets to a water report, control signals are input by using the device file (/ dev /) of the system to load the packets in the shared memory, Increase the efficiency of packet processing.

즉, 디바이스장치들은 파일시스템상에서 "/dev" 디렉토리 하위에 존재하며, 이것은 실제 하드웨어(Hardware)를 추상화시켜 놓은 파일이며, 본 발명에서는 이러한 문자형 디바이스 장치파일들을 활용하여 raw packet data를 제어하는 용도로 사용한다.That is, the device devices exist under the directory "/ dev" on the file system, and this is an abstraction of actual hardware. In the present invention, the use of these character device files to control raw packet data use.

본 발명의 권리는 위에서 설명된 실시예에 한정되지 않고 청구범위에 기재된 바에 의해 정의되며, 본 발명의 분야에서 통상의 지식을 가진 자가 청구범위에 기재된 권리범위 내에서 다양한 변형과 개작을 할 수 있다는 것은 자명하다.It is to be understood that the invention is not limited to the disclosed embodiment, but is capable of many modifications and variations within the scope of the appended claims. It is self-evident.

예를 들어, 본 발명에 의한 IP/Port 선택부는 원형큐와 공유메모리 사이에 구비되어, 상기 원형큐로부터 제공되는 패킷의 종류를 판별하여, HTTPs패킷 만을 선별적으로 선택하여 상기 공유메모리에 제공할 수 있다.For example, the IP / Port selection unit according to the present invention is provided between the circular queue and the shared memory to discriminate the types of packets provided from the circular queue, selectively select only HTTPs packets and provide them to the shared memory .

이 경우, HTTPs패킷 이외의 패킷만이 선별되어 상기 공유메모리에 공유되므로, 상기 공유메모리에 대한 부하를 더 감소시킬 수 있다. In this case, only packets other than the HTTPs packet are selected and shared in the shared memory, so that the load on the shared memory can be further reduced.

본 발명은 HTTPs 패킷분석 모듈에서 커널 영역을 배제하고 패킷을 송수신하여, 패킷의 처리과정을 단순화 및 간소화시키는 HTTPs 패킷분석 처리 시스템을 제공하기 위한 것으로, 본 발명에 의하면 HTTPs 분석과정 중에 소요되는 시스템자원( CPU/Memory)의 소모를 최소화하기 위하여 Kernel 공간에서 이루어지는 패킷프로세싱과정을 간소화하여 User 공간에서 구현하도록 하여, 패킷프로세싱 관련된 성능이 향상되는 효과가 있다.The present invention provides an HTTPs packet analysis processing system that excludes a kernel region in a HTTPs packet analysis module and transmits and receives a packet to simplify and simplify a processing procedure of a packet. According to the present invention, In order to minimize the consumption of the CPU / memory, the packet processing process in the kernel space is simplified and implemented in the user space, thereby improving the performance related to the packet processing.

100 : HTTPs 패킷분석 보안장비 110 : User 영역
111 : Application 113 : Capsulator
113A : 패킷조립모듈 113B : 제거삽입모듈
115 : IP/PORT 선택부 117 : HTTPs 패킷분석모듈
120 : Kernel 영역 130 : NIC 영역
131 : NIC 카드 133 : 물리포트
135 : 원형큐 140 : 공유메모리
200 : 클라이언트 브라우저 300 : 웹서버
60 : 수신패킷 70 : 송신패킷
100: HTTPs packet analysis security device 110: User area
111: Application 113: Capsulator
113A: Packet assembling module 113B: Removing insertion module
115: IP / PORT selection unit 117: HTTPs packet analysis module
120: Kernel area 130: NIC area
131: NIC card 133: water report
135: circular queue 140: shared memory
200: client browser 300: web server
60: received packet 70: transmitted packet

Claims (6)

HTTPs 암호화 통신이 가능한 웹서버와 해당 웹서버에 접속한 클라이언트 브라우저 사이에 위치하는 HTTPs 보안장비를 포함하여 구성되고,
상기 HTTPs 보안장비는 User 영역과 NIC 영역을 포함하여 구성되며,
상기 NIC 영역은,
패킷의 수신 및 송신을 입출력하는 물리포트와;
상기 User 영역과 직접 송수신할 수신 패킷 및 송신 패킷을 저장하는 원형큐를 포함하여 구성되는 NIC 카드를 포함하여 구성되고,
상기 User 영역은,
패킷 프로세싱을 수행하기 위한 캡슐레이터(Capsulator)를 포함하여 구성되는 HTTPs패킷분석모듈을 포함하여 구성되고:
상기 패킷 프로세싱은,
송수신패킷에 대하여 TCP/IP규약에 의거 MAC, IP 및 Header정보의 삽입 및 제거를 통해 패킷의 재조립 또는 재구성하는 과정이고:
상기 캡슐레이터는,
TCP/IP규약에 의해 인입된 패킷을 순서에 맞추어 패킷을 조립하는 패킷조립모듈과;
사용자 응용프로그램이 활용할 수 있도록 MAC/IP/기타 Header 정보를 제거 또는 삽입하는 제거삽입모듈을 포함하여 구성되며:
상기 HTTPs패킷분석모듈은,
상기 원형큐에 수신된 패킷을 상기 User 영역에 저장하는 공유메모리와;
상기 공유메모리에 저장된 패킷의 종류를 판별하여, HTTPs패킷 만을 선별적으로 선택하는 IP/Port 선택부를 포함하여 구성됨을 특징으로 하는 HTTPs 패킷분석 처리성능 향상 시스템.
And an HTTPs security device located between a web server capable of HTTPs encryption communication and a client browser connected to the web server,
The HTTPs security device includes a User area and a NIC area,
Wherein the NIC area comprises:
A water report for inputting and outputting a packet reception and transmission;
And a circular queue for storing a reception packet and a transmission packet to be directly transmitted and received to the User area,
The " User "
And an HTTPs packet analysis module configured with an encapsulator for performing packet processing, the packet analysis module comprising:
The packet processing includes:
The process of reassembling or reconfiguring a packet by inserting and removing MAC, IP, and Header information according to the TCP / IP protocol for a transmission / reception packet,
Wherein the encapsulator comprises:
A packet assembling module for assembling packets according to the order of the packets received by the TCP / IP protocol;
It consists of an Uninstall Insert module that removes or inserts MAC / IP / Other Header information for your application to take advantage of:
The HTTPs packet analysis module,
A shared memory for storing packets received in the circular queue in the User area;
And an IP / Port selection unit for discriminating the type of packets stored in the shared memory and selectively selecting only HTTPs packets.
삭제delete 삭제delete 제 1 항에 있어서,
상기 원형큐는,
수신된 패킷을 전송하기 위해, 수신 물리포트에 대응하는 Rx원형수신큐와;
송신할 패킷을 전송하기 위해, 송신 물리포트에 대응하는 Tx원형송신큐를 포함하여 구성됨을 특징으로 하는 HTTPs 패킷분석 처리성능 향상 시스템
The method according to claim 1,
The circular queue includes:
An Rx circular receive queue corresponding to a receipt report to transmit a received packet;
And a Tx circular transmission queue corresponding to a transmission report to transmit a packet to be transmitted.
제 4 항에 있어서,
상기 원형큐는,
수신된 패킷의 위치를 지정하는 내부포인터와, 발신된 패킷의 위치를 지정하는 외부포인터를 이용하여 송수신패킷이 관리됨을 특징으로 하는 HTTPs 패킷분석 처리성능 향상 시스템.
5. The method of claim 4,
The circular queue includes:
Wherein the transmission / reception packet is managed using an internal pointer that designates a location of a received packet and an external pointer that designates a location of the transmitted packet.
제 5 항에 있어서,
상기 원형큐의 패킷데이터 송수신은,
시스템의 '/dev/' 장치파일을 사용한 제어신호에 의해 동기화되어 수행됨을 특징으로 하는 HTTPs 패킷분석 처리성능 향상 시스템.
6. The method of claim 5,
Wherein the packet data transmission /
The device is synchronized with a control signal using the '/ dev /' device file of the system.
KR1020180021919A 2018-02-23 2018-02-23 Performance Enhancing System for HTTPs Packet Analysis Processing KR101875093B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180021919A KR101875093B1 (en) 2018-02-23 2018-02-23 Performance Enhancing System for HTTPs Packet Analysis Processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180021919A KR101875093B1 (en) 2018-02-23 2018-02-23 Performance Enhancing System for HTTPs Packet Analysis Processing

Publications (1)

Publication Number Publication Date
KR101875093B1 true KR101875093B1 (en) 2018-07-05

Family

ID=62920541

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180021919A KR101875093B1 (en) 2018-02-23 2018-02-23 Performance Enhancing System for HTTPs Packet Analysis Processing

Country Status (1)

Country Link
KR (1) KR101875093B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140059537A1 (en) * 2012-08-21 2014-02-27 International Business Machines Corporation Processing of overlay networks using an accelerated network interface card
KR101458231B1 (en) * 2006-09-26 2014-11-04 마이크로소프트 코포레이션 Secure tunnel over https connection

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101458231B1 (en) * 2006-09-26 2014-11-04 마이크로소프트 코포레이션 Secure tunnel over https connection
US20140059537A1 (en) * 2012-08-21 2014-02-27 International Business Machines Corporation Processing of overlay networks using an accelerated network interface card

Similar Documents

Publication Publication Date Title
EP1494426B1 (en) Secure network processing
US10250571B2 (en) Systems and methods for offloading IPSEC processing to an embedded networking device
KR100908765B1 (en) Packet Encryption System and Method
US7948921B1 (en) Automatic network optimization
US6717943B1 (en) System and method for routing and processing data packets
CN109756501B (en) High-privacy network proxy method and system based on HTTP (hyper text transport protocol)
US20050060427A1 (en) Object-aware transport-layer network processing engine
US11431681B2 (en) Application aware TCP performance tuning on hardware accelerated TCP proxy services
WO2020236782A2 (en) Systems and methods for managing streams of packets via intermediary devices
AU2019391798B2 (en) Detecting attacks using handshake requests systems and methods
US20210240817A1 (en) System and method for facilitating stateful processing of a middlebox module implemented in a trusted execution environment
US20090089351A1 (en) Method and system for onloading network services
Ullah et al. IPsec for high speed network links: Performance analysis and enhancements
CN115622772A (en) Financial data transmission method and application gateway for financial business service
US9219712B2 (en) WAN optimization without required user configuration for WAN secured VDI traffic
CN112035900B (en) High-performance password card and communication method thereof
KR101875093B1 (en) Performance Enhancing System for HTTPs Packet Analysis Processing
CN113810397B (en) Protocol data processing method and device
US20030204586A1 (en) Intelligent data replicator
US11201887B1 (en) Systems and methods for low latency stateful threat detection and mitigation
Baymani et al. Exploring RapidIO technology within a DAQ system event building network
CN115134171B (en) Method, device, system and medium for encrypting storage message under isolated network environment
Wang Design and Implementation of TCPHA
CN117714548A (en) Data processing method, device and processing equipment based on user mode protocol stack
WO2015119684A2 (en) System and method for security over a network

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant