KR102476672B1 - Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network - Google Patents

Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network Download PDF

Info

Publication number
KR102476672B1
KR102476672B1 KR1020220073438A KR20220073438A KR102476672B1 KR 102476672 B1 KR102476672 B1 KR 102476672B1 KR 1020220073438 A KR1020220073438 A KR 1020220073438A KR 20220073438 A KR20220073438 A KR 20220073438A KR 102476672 B1 KR102476672 B1 KR 102476672B1
Authority
KR
South Korea
Prior art keywords
server
port
client
address
anonymous
Prior art date
Application number
KR1020220073438A
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 KR1020220073438A priority Critical patent/KR102476672B1/en
Application granted granted Critical
Publication of KR102476672B1 publication Critical patent/KR102476672B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2539Hiding addresses; Keeping addresses anonymous
    • 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
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2546Arrangements for avoiding unnecessary translation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks

Landscapes

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

Abstract

The present invention relates to an address change method with an unrecognized NIC function in a 5G massive network, especially, performed in a physical Ethernet driver, and more specifically to the address change method performed in an Ethernet driver, with an unrecognized NIC function in a 5G massive network to avoid being a target of attack on the network. According to some embodiments, the address change method performed in an Ethernet driver comprises the steps of: creating each of the same anonymous server IP, the same anonymous server port, and the same anonymous client port in a server NIC driver and a client NIC driver with the same secret key shared between the server NIC driver and the client NIC driver (a step of creating an anonymous address); modifying a server IP with the created anonymous server IP, modifying a server port with the created anonymous server port, and modifying a client port with the created anonymous client port (a step of modifying an address); and storing information of the anonymous server IP, the anonymous server port, and the anonymous client port, which is used in the step of modifying an address, in a first session table which is a hash structure based on an IP and port (a step of creating a session table on a sending side). Accordingly, an external attack can be actively prevented.

Description

5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법 {NETWORK ADDRESS MUTATION METHOD PERFORMED BY ETHERNET DRIVER WITH UNRECOGNIZED NIC FUNCTION IN 5G MASSIVE NETWORK}Address shift method performed by Ethernet driver with non-recognizing NIC function in 5G Massive network {NETWORK ADDRESS MUTATION METHOD PERFORMED BY ETHERNET DRIVER WITH UNRECOGNIZED NIC FUNCTION IN 5G MASSIVE NETWORK}

본 발명은 5G Massive망에서 비인식 NIC 기능을 갖는, 특히 물리적 이더넷 드라이버에서 수행되는 주소 변이 방법에 관한 것으로, 더욱 상세하게는 네트워크 상의 공격의 대상 회피를 위한 5G Massive망에서 비인식 NIC 기능을 갖는, 이더넷 드라이버에서 수행되는 주소 변이 방법에 관한 것이다.The present invention relates to an address variation method having an unaware NIC function in a 5G Massive network, particularly performed in a physical Ethernet driver, and more particularly, having an unaware NIC function in a 5G Massive network for avoiding a target of an attack on a network , It relates to the address transition method performed in the Ethernet driver.

이더넷(ethernet) 액세스를 위해서는 NIC가 필요하다. NIC는 제조시 할당된 고유의 MAC 어드레스를 이용하여 이더넷에 액세스한다. 한편, 호스트는 호스트네임에 해당하는 고유의 IP 어드레스가 할당되어 있다.A NIC is required for ethernet access. The NIC accesses Ethernet using a unique MAC address assigned at the time of manufacture. On the other hand, the host is assigned a unique IP address corresponding to the host name.

TCP/IP 프로토콜을 이용하여 이더넷에 액세스할 경우 IP 어드레스를 MAC어드레스로 변환할 필요가 있으며 이에 따라 실제 IP 어드레스와 실제 MAC 어드레스가 매핑 된다.When accessing Ethernet using the TCP/IP protocol, it is necessary to convert the IP address into a MAC address, and the real IP address and the real MAC address are mapped accordingly.

도 1은 종래의 어드레스 할당 방법을 이용하여 이더넷 액세스를 하는 호스트 장치의 구성을 보이는 블록도이다. 도 1에 있어서 굵은 실선의 상측은 호스트에 속한 부재들을 나타내고, 하측은 상대방 호스트에 속한 부재들을 나타낸다. FTP(File Transfer Protocol)처리기(102)는 호스트 네임(hostname)을 DNS(Domain Name System)을 이용해서 32비트의 IP 어드레스로 변환한다. FTP처리기(102)는 주어진 IP 어드레스로 TCP(Transmission Control Protocol) 처리기 (104)로 연결을 시도한다. TCP처리기(104)는 연결 요청 세그먼트(connection request segment)를 IP data gram으로 변환하여 IP 처리기(106)로 전달한다.1 is a block diagram showing the configuration of a host device that performs Ethernet access using a conventional address assignment method. In FIG. 1 , the upper side of the thick solid line represents members belonging to the host, and the lower side represents members belonging to the other host. FTP (File Transfer Protocol) processor 102 converts a hostname into a 32-bit IP address using DNS (Domain Name System). The FTP processor 102 attempts to connect to the TCP (Transmission Control Protocol) processor 104 with the given IP address. The TCP processor 104 converts the connection request segment into IP datagram and transmits it to the IP processor 106.

IP 레이어(layer)에서 상대방 호스트가 로컬 네트웍(local network)에 속한 것이면 IP datagram은 곧바로 호스트에게 보내진다. 한편, 상대방 호스트가 원격 네트웍이면 IP 라우팅 기능(routing function)을 통해 다음 라우터(router)로 전달된다.In the IP layer, if the other host belongs to the local network, the IP datagram is sent directly to the host. On the other hand, if the other host is a remote network, it is transferred to the next router through the IP routing function.

IP datagram은 IP 레이어에서 송수신되는 데이터 단위를 말하는 것으로서 이더넷의 패킷(packet)에 해당한다. 이더넷(ethernet)에서는 48비트 어드레스를 사용하므로 32비트의 IP 어드레스를 48비트로 변환하여야 하는데 이러한 기능을 ARP(Address Resolution Protocol)이라고 한다.IP datagram refers to a unit of data transmitted and received in the IP layer and corresponds to an Ethernet packet. Since Ethernet uses 48-bit addresses, 32-bit IP addresses must be converted to 48-bit addresses. This function is called ARP (Address Resolution Protocol).

ARP 처리기(108)는 32비트의 IP 어드레스를 48비트의 이더넷 어드레스로 변환하거나 그 역의 동작을 수행한다. 호스트(100)에서 어떤 상대방 호스트로 전송하고자 하는 경우 ARP 처리기(108)는 Arp Request Frame을 모든 호스트에 전달(broadcast)한다. 상대방 호스트의 ARP 처리기(118)에서는 ARP 처리기(108)에서 전달된 Arp Request Frame를 수신하고, 이에 응답하여 자신의 하드웨어 주소(이더넷 주소)를 담은 Arp Reply Frame을 ARP 처리기(108)로 전달한다. ARP 처리기(108)는 상대방 호스트의 ARP 처리기(118)에서 전송하는 Arp Reply Frame을 받으면 IP datagram을 보낼 준비를 한다. 이후 IP datagram은 상대방 호스트에게 전달된다.The ARP processor 108 converts a 32-bit IP address into a 48-bit Ethernet address or vice versa. When transmission is desired from the host 100 to any other host, the ARP processor 108 broadcasts the Arp Request Frame to all hosts. The ARP processor 118 of the other host receives the Arp Request Frame transmitted from the ARP processor 108, and in response, sends an Arp Reply Frame containing its own hardware address (Ethernet address) to the ARP processor 108. When the ARP processor 108 receives an Arp Reply Frame transmitted from the ARP processor 118 of the other host, it prepares to send an IP datagram. The IP datagram is then forwarded to the other host.

이더넷 드라이버(110)는 NIC에 해당하며 물리 계층의 데이터 전송을 담당한다. 여기서, 모든 NIC에는 고유한 48비트 이더넷 어드레스를 가지며 또한, 호스트는 32비트 IP 어드레스를 가지며, 실제 IP 어드레스와 실제 MAC 어드레스가 매핑 된다.The Ethernet driver 110 corresponds to a NIC and is responsible for data transmission in the physical layer. Here, every NIC has a unique 48-bit Ethernet address, and a host has a 32-bit IP address, and an actual IP address and an actual MAC address are mapped.

그러나, 종래의 IP 어드레스 할당 방법에 의하면 호스트에서 고정된 IP주소를 갖게 되어 외부로 노출되므로 외부 공격에 취약하다는 문제점이 있다. 또한 이에 따라 대한민국 특허 공개공보 제10-2020-0002599와 같이 IP주소를 주기적으로 변경하여 외부 공격의 난이도를 높이는 방법이 제안되고 있다. 상기 공개공보에서는 서버 장치와 클라이언트 장치 간에 공유되는 세션 키를 이용하여 익명 주소 정보를 생성하고 동기화하는 단계에 대하여 개시하고 있다. 또한 상기 익명 주소 정보를 이용하여 주기에 따라 지속적으로 외부 주소를 변경하여 외부의 공격자가 서버의 실제 IP를 찾기 어렵게 하여 공격을 방어하고 있다.However, according to the conventional IP address allocation method, since the host has a fixed IP address and is exposed to the outside, there is a problem in that it is vulnerable to external attacks. In addition, a method of increasing the difficulty of an external attack by periodically changing an IP address has been proposed, as disclosed in Korean Patent Publication No. 10-2020-0002599. The publication discloses a step of generating and synchronizing anonymous address information using a session key shared between a server device and a client device. In addition, by using the anonymous address information, the external address is continuously changed according to the cycle, so that it is difficult for an external attacker to find the real IP of the server, thereby defending against attacks.

다만 상기 종래기술에서는 특정 OS에서 구동되는 IP Tables 및 가상 인터페이스를 이용하여 주소 변이를 시도하고 있어 해당 OS 또는 해당 응용프로그램의 구동이 어려운 IOT 장비나 소형 임베디드 시스템에 적용하기 어렵다는 단점을 보유한다. 또한 상기 종래기술에서는 IP Tables를 사용함에 따라, 실제 IP 변조에 사용되지 않는 IP Tables의 INPUT/OUTPUT/PREROUTING/POSTROUTING 모든 블록을 모든 패킷이 거치게 되고, 가상 인터페이스 사용으로 인해 성능저하 및 지연이 발생할 수 있다. 또한 상기 종래기술에서는 IP가 변경될 때마다 ARP 절차가 필요하며 이로 인해 트래픽 송/수신 중 IP 가 변경될 경우, ARP Request/Response 절차 완료 전까지 트래픽 멈춤이 발생하고, 매번 ARP 테이블을 검색하며 네트워크 과부하 및 지연이 발생할 수 있다.However, in the prior art, address variation is attempted using IP Tables and virtual interfaces running in a specific OS, so it is difficult to apply to IOT equipment or small embedded systems that are difficult to drive the corresponding OS or application program. In addition, in the prior art, as IP Tables are used, all packets pass through all INPUT/OUTPUT/PREROUTING/POSTROUTING blocks of IP Tables that are not used for actual IP modulation, and performance degradation and delay may occur due to the use of virtual interfaces. have. In addition, in the prior art, an ARP procedure is required every time the IP is changed, and when the IP is changed during traffic transmission / reception, traffic stops until the ARP Request / Response procedure is completed, and the ARP table is searched each time to prevent network overload and delays may occur.

윈도우즈나 리눅스와 같은 고차원 OS를 탑재할 수 있는 서버나 PC의 경우, 상기 단점이 부각되지 않을 수 있다. 그러나 최근 대두되고 있는 5G Massive망과 같이, 다수의 소형기기들이 항상 연결되는, 초연결성을 특징으로 하는 네트워크에서는, 상기와 같은 종래의 전통적인 네트워크 환경을 가정하여 개발된 주소 변이 기술은 적용이 거의 불가능하다.In the case of a server or PC capable of mounting a high-level OS such as Windows or Linux, the above disadvantages may not be highlighted. However, in a network characterized by hyper-connectivity, in which a large number of small devices are always connected, such as the recently emerging 5G Massive network, the address shifting technology developed assuming the conventional network environment is hardly applicable. do.

본 발명은 상기와 같은 종래기술의 문제점과 과거로부터 요청되어온 기술적 과제를 해결하는 것을 목적으로 한다.An object of the present invention is to solve the problems of the prior art and the technical problems that have been requested from the past.

본 출원의 발명자들은 심도 있는 연구와 다양한 실험을 거듭한 끝에, 이후 설명하는 바와 같이, 공격자가 인식할 수 없는 비인식 NIC를 구현하여 네트워크 상에서 공격 대상의 IP 주소를 변경함으로써, 외부의 공격을 능동적으로 방지할 수 있는 5G Massive망에서 비인식 NIC 기능을 갖는, 특히 물리적 이더넷 드라이버에서 수행되는 주소 변이 방법을 제공하는 것을 목적으로 한다.The inventors of the present application, as will be described later, after in-depth research and various experiments, implement an unrecognized NIC that an attacker cannot recognize and change the IP address of an attack target on the network to actively prevent external attacks. Its purpose is to provide an address transformation method that has an unaware NIC function in a 5G Massive network that can be prevented by a physical Ethernet driver.

또한 본 발명은, IP Tables 및 가상 인터페이스를 요구하지 않고, 최소한의 리소스만을 사용하여 주소를 변이하고 서버와 클라이언트 간에 이를 동기화할 수 있는, 이더넷 드라이버에서 수행되는 주소 변이 방법을 제공하는 것을 목적으로 한다.In addition, an object of the present invention is to provide an address shift method performed by an Ethernet driver, which can shift an address using only minimal resources and synchronize it between a server and a client without requiring IP Tables and virtual interfaces. .

본 발명의 어느 실시예의, 이더넷 드라이버에서 수행되는 주소 변이 방법은, 서로 간 통신하기 위한, 변조되기 전의 본래의 IP와 포트(port)를 가진, 서버와 클라이언트의 물리적 NIC에서 수행되기 위한 방법에 있어서, 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버 간 서로 공유되는 동일한 비밀 키로, 동일한 익명의 서버 IP와 동일한 익명의 서버 포트(port)와 동일한 익명의 클라이언트 포트(port)를 서버 NIC 드라이버와 클라이언트 NIC 드라이버에서 각각 생성하는 단계(익명 주소 생성 단계), 생성한 익명의 서버 IP로 서버의 IP를 변조하고, 생성한 익명의 서버 포트(port)로 서버의 포트(port)를 변조하고, 생성한 익명의 클라이언트 포트(port)로 클라이언트의 포트(port)를 변조하는 단계(주소 변조 단계), 주소 변조 단계에서 변조에 사용된 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port) 정보를 IP 또는 포트(port) 기반의 해쉬 구조인 제1 세션 테이블(table)에 저장하는 단계(송신측 세션 테이블 작성 단계), 변조된 서버 IP와, 변조된 서버 포트(port)와, 변조된 클라이언트 포트(port) 정보를 포함하는 패킷을 전송하는 단계(패킷 송출 단계), 전송받은 패킷에 담긴 서버 IP와, 서버 포트와, 클라이언트 포트 정보가 익명 주소 생성 단계에서 생성한 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port)와 일치하는지 판단하는 단계(패킷 판단 단계), 패킷 판단 단계에서 판단한 결과, 일치하는 것으로 판단한 경우, 해당 전송받은 패킷에 담긴 서버 IP와 서버 포트(port)와 클라이언트 포트(port) 정보를 IP 또는 포트(port) 기반의 해쉬 구조인 제2 세션 테이블(table)에 저장하는 단계(수신측 세션 테이블 작성 단계) 및 서버와 클라이언트의 운영체제(OS)에서 수행되는 단계로서, 서버와 클라이언트의 IP 주소를 물리적 주소인 MAC 주소로 대응시키기 위한 ARP 절차 수행 단계를 포함하고, ARP 절차 수행 단계에서, 서버와 클라이언트의 MAC 주소는 서버와 클라이언트의 물리적 NIC의 변조되기 전의 본래의 IP에 대응되는 것을 특징으로 한다.In an embodiment of the present invention, an address transformation method performed in an Ethernet driver is a method for performing in physical NICs of a server and a client, which have original IPs and ports before being modulated, for communication between each other. , with the same secret key shared between the NIC driver of the server and the NIC driver of the client, the same anonymous server IP, the same anonymous server port, and the same anonymous client port are shared between the server NIC driver and the client NIC driver. Each generation step (anonymous address generation step), the server IP is modulated with the created anonymous server IP, the server port is modulated with the created anonymous server port, and the created anonymous client Modifying the port of the client with a port (address modification step), information on the anonymous server IP, anonymous server port, and anonymous client port used for modification in the address modification step in a first session table, which is an IP or port-based hash structure (creating a sender-side session table), modulated server IP, modulated server port, and modulated client The step of transmitting a packet including port information (packet transmission step), the server IP, server port, and client port information included in the transmitted packet are the anonymous server IP created in the anonymous address generation step and the anonymous The step of determining whether the server port and the anonymous client port match (packet determination step). As a result of the determination in the packet determination step, if it is determined that they match, the server IP and server port contained in the transmitted packet ( port) and client port information in a second session table, which is a hash structure based on IP or port (reception side session table creation step) and in the operating system (OS) of the server and the client. A step performed, in which the IP address of the server and the client are mapped to the MAC address, which is the physical address. In the ARP procedure performing step, the MAC addresses of the server and the client correspond to the original IPs of the physical NICs of the server and the client before being tampered with.

또한 본 발명의 어느 실시예의, 이더넷 드라이버에서 수행되는 주소 변이 방법은, 익명 주소 생성 단계는 소정의 주기마다 반복 수행되는 것을 특징으로 한다.In addition, in an address transition method performed by an Ethernet driver according to an embodiment of the present invention, the step of generating an anonymous address is repeatedly performed at predetermined intervals.

또한 본 발명의 어느 실시예의, 이더넷 드라이버에서 수행되는 주소 변이 방법은, 패킷 판단 단계에서 판단한 결과, 일치하지 않는 것으로 판단한 경우, 해당 전송받은 패킷을 차단하는 단계(패킷 필터링 단계)를 추가로 포함하는 것을 특징으로 한다.In addition, in an embodiment of the present invention, the address variation method performed by the Ethernet driver further includes a step of blocking the transmitted packet (packet filtering step) when it is determined that they do not match as a result of the determination in the packet determination step characterized by

또한 본 발명의 어느 실시예의, 이더넷 드라이버에서 수행되는 주소 변이 방법은, 패킷 판단 단계에서 판단한 결과, 일치하는 것으로 판단한 경우, 전송받은 패킷에 담긴 서버 IP와 서버 포트(port)와 클라이언트 포트(port)를 변조되기 전의 본래의 서버 IP와 본래의 서버 포트(port)와 본래의 클라이언트 포트(port)로 복구하는 단계(주소 복구 단계)를 추가로 포함하는 것을 특징으로 한다.In addition, in the address variation method performed by the Ethernet driver according to an embodiment of the present invention, as a result of the determination in the packet determination step, if it is determined that they match, the server IP, server port, and client port included in the transmitted packet It is characterized in that it further comprises a step of restoring (address recovery step) to the original server IP, original server port and original client port before being tampered with.

또한 본 발명의 어느 실시예의, 이더넷 드라이버에서 수행되는 주소 변이 방법은, 송신측 세션 테이블 작성 단계와 수신측 세션 테이블 작성 단계에 있어서, 제1 세션 테이블과 제2 세션 테이블 중 클라이언트의 NIC 드라이버에 저장되는 세션 테이블은 서버의 변조된 포트 기반의 해쉬 구조이며, 서버의 NIC 드라이버에 저장되는 세션 테이블은 클라이언트의 본래의 IP 기반의 해쉬 구조이며, 연결된 서버와 클라이언트 간의 세션은 제1 세션 테이블(table)과 제2 세션 테이블(table)을 통하여 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버에 의해서 유지되는 것을 특징으로 한다.In addition, according to an embodiment of the present invention, in the address variation method performed by the Ethernet driver, in the sending-side session table creation step and the reception-side session table creation step, the first session table and the second session table are stored in the NIC driver of the client The session table is a hash structure based on the modified port of the server, the session table stored in the NIC driver of the server is the hash structure based on the original IP of the client, and the session between the connected server and the client is a first session table and maintained by the NIC driver of the server and the NIC driver of the client through the second session table.

이상 설명한 바와 같이, 본 발명에 따른 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법은 사용자 인식할 수 없는 비인식 NIC를 구현하여 네트워크 상에서 공격 대상의 IP 주소를 변경함으로써, 외부의 공격을 능동적으로 방지할 수 있는 효과를 제공할 수 있다.As described above, in the 5G Massive network according to the present invention, the address variation method performed by the Ethernet driver having the non-recognized NIC function implements the non-recognized NIC and changes the IP address of the attack target on the network, An effect capable of actively preventing an external attack may be provided.

또한 본 발명에 따르면, 물리적 NIC의 드라이버에서 주소를 변이시키므로, OS와 관계없이 주소 변이가 가능하고, IP Tables 및 가상 인터페이스를 사용하지 않아, 응용프로그램이나 많은 리소스를 요구하지 않으며, 이에 따라 소형 임베디드 시스템에 적용하기 유리하다.In addition, according to the present invention, since the driver of the physical NIC shifts the address, the address shift is possible regardless of the OS, and since IP Tables and virtual interfaces are not used, applications or many resources are not required, and thus small embedded It is advantageous to apply to the system.

또한 본 발명에 따르면, 클라이언트의 본래의 IP 또는 서버의 변조된 port(포트)를 이용하여 해시 구조의 세션 Table(테이블)을 빠르게 검색할 수 있어 성능저하 및 지연을 최소화할 수 있다.In addition, according to the present invention, a session table having a hash structure can be quickly searched using the original IP of a client or a modulated port of a server, thereby minimizing performance degradation and delay.

또한 본 발명에 따르면, 주기적으로 변조되는 모든 IP에 대해 ARP 절차를 수행하지 않고, 최종적으로 복원된 실제 IP에 대해서만 ARP 절차를 수행하여 트래픽 중단의 문제가 발생하지 않고, ARP Table(테이블)을 매번 검색하며 발생할 수 있는 네트워크 과부하 및 지연을 방지할 수 있다.In addition, according to the present invention, the ARP procedure is not performed for all IPs that are periodically modulated, but the ARP procedure is performed only for the finally restored real IP, so that traffic interruption does not occur and the ARP Table is checked every time. You can prevent network overload and delay that may occur while searching.

도 1은 종래의 어드레스 할당 방법을 이용하여 이더넷 액세스를 하는 호스트 장치의 구성을 보이는 블록도,
도 2는 본 발명의 주소 변이 방법을 수행하기 위한 기능 블록들을 도시한 블록도,
도 3은 본 발명의 주소 변이 방법을 수행하기 위한 기능 블록들의 작업 수행 방법을 도시한 순서도,
도 4는 본 발명의 일 실시예에 따른 주소 변이 방법을 설명하기 위한 순서도,
도 5는 본 발명의 일 실시예에 따른 주소 변이 방법의 세션 테이블(table) 생성 과정을 나타낸 데이터 흐름도,
도 6은 본 발명의 일 실시예에 따른 주소 변이 방법의 주소 변이를 이용한 데이터 교환 과정을 나타낸 데이터 흐름도,
도 7은 본 발명의 일 실시예에 따른 주소 변이 방법의 ARP 테이블(table) 작성 과정을 나타낸 데이터 흐름도이다.
1 is a block diagram showing the configuration of a host device that performs Ethernet access using a conventional address assignment method;
2 is a block diagram showing functional blocks for performing the address variation method of the present invention;
3 is a flowchart illustrating a method of performing tasks of functional blocks for performing the address variation method of the present invention;
4 is a flowchart for explaining an address variation method according to an embodiment of the present invention;
5 is a data flow diagram illustrating a session table creation process of an address variation method according to an embodiment of the present invention;
6 is a data flow diagram illustrating a data exchange process using address variation in an address variation method according to an embodiment of the present invention;
7 is a data flow diagram illustrating a process of creating an ARP table in an address variation method according to an embodiment of the present invention.

이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세하게 설명한다. 다만, 실시예가 본 발명의 범위를 제한하는 것은 아니며, 이는 본 발명의 이해를 돕기 위한 것으로 해석되어야 할 것이다.Hereinafter, with reference to the accompanying drawings, embodiments of the present invention will be described in detail so that those skilled in the art can easily carry out the present invention. However, the examples are not intended to limit the scope of the present invention, which should be interpreted to aid understanding of the present invention.

실시 예에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 실시 예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the embodiments are only used to describe specific embodiments, and are not intended to limit the embodiments. Singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, terms such as "include" or "have" are intended to designate that there is a feature, number, step, operation, component, part, or combination thereof described in the specification, but one or more other features It should be understood that the presence or addition of numbers, steps, operations, components, parts, or combinations thereof is not precluded.

한편, 본 발명을 설명함에 있어서, 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는, 그 상세한 설명을 생략할 것이다. 그리고, 본 명세서에서 사용되는 용어(terminology)들은 본 발명의 실시 예를 적절히 표현하기 위해 사용된 용어들로써, 이는 사용자, 운용자의 의도 또는 본 발명이 속하는 분야의 관례 등에 따라 달라질 수 있다. 따라서, 본 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Meanwhile, in describing the present invention, if it is determined that a detailed description of a related known function or configuration may unnecessarily obscure the gist of the present invention, the detailed description will be omitted. In addition, the terminology used in this specification is a term used to appropriately express the embodiment of the present invention, which may vary according to the intention of a user or operator or customs in the field to which the present invention belongs. Therefore, definitions of these terms will have to be made based on the content throughout this specification.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시 예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in commonly used dictionaries should be interpreted as having a meaning consistent with the meaning in the context of the related art, and unless explicitly defined in this specification, they should not be interpreted in an ideal or excessively formal meaning. don't

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시 예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시 예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are given to the same components regardless of reference numerals, and overlapping descriptions thereof will be omitted. In describing the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the subject matter of the embodiment, the detailed description will be omitted.

먼저, 하기 NIC는 예를 들어 IEEE(Institute of Electrical and Electronics Engineers) 802.11 무선랜(Wireless LAN; WLAN) 표준에 기반한 것일 수 있다.First, the following NIC may be based on, for example, an Institute of Electrical and Electronics Engineers (IEEE) 802.11 wireless LAN (WLAN) standard.

도 2는 본 발명의 주소 변이 방법을 수행하기 위한 기능 블록들의 블록도를 도시한 것이다. 상기 기능 블록들은 논리적 요소로서, 서버측의 물리적 NIC(Network Interface Card)의 펌웨어 내지 드라이버에 존재할 수 있다. 또한 동일하게 클라이언트측의 물리적 NIC(Network Interface Card)의 펌웨어 내지 드라이버에 존재할 수 있다. 본 발명의 주소 변이 방법은 가상 인터페이스가 아닌, 서로 간 통신하기 위한 서버와 클라이언트의 물리적 NIC에서 수행된다. 서버측과 클라이언트측 양쪽에서 서로 패킷의 수신과 송신을 교번하며 대칭적으로 수행될 수 있으며 따라서 도 2의 기능 블록들은 서버측과 클라이언트측 양측에 각기 존재할 수 있다.2 is a block diagram of functional blocks for performing the address variation method of the present invention. The functional blocks are logical elements, and may exist in the firmware or driver of a physical NIC (Network Interface Card) on the server side. Also, the same may exist in the firmware or driver of a physical NIC (Network Interface Card) on the client side. The address shift method of the present invention is performed in physical NICs of servers and clients for mutual communication, not virtual interfaces. Reception and transmission of packets can be performed alternately and symmetrically on both the server side and the client side, and thus the functional blocks of FIG. 2 can exist on both the server side and the client side, respectively.

먼저, 랜덤 값 생성 블록(RVGB, 10)는 Key 저장소(1)에서 비밀 키(해쉬 key)를 로드하고 익명 IP/Port 생성을 위한 비밀 값을 생성한다. 익명 IP 생성 블록(PIGB, 20)은 상기 비밀 값을 이용하여 익명의 IP를 생성한다. 또한 동시에 익명 Port 생성 블록(PPGB, 30)은 상기 비밀 값을 이용하여 익명의 포트(port)를 생성한다. 이와 같은 과정으로, 상기 랜덤 값 생성 블록(RVGB, 10)과 익명 IP 생성 블록(PIGB, 20), 익명 Port 생성 블록(PPGB, 30)은 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port)를 생성한다. 또한 상기 익명 주소 생성 단계는 서버의 물리적 NIC와 클라이언트의 물리적 NIC에서 동시에 수행되며, 또한 양측에서 각각 동일한 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port)를 생성한다.First, the random value generation block (RVGB, 10) loads a secret key (hash key) from the key storage (1) and generates a secret value for generating an anonymous IP/Port. An anonymous IP generation block (PIGB, 20) generates an anonymous IP using the secret value. At the same time, the anonymous port generation block (PPGB, 30) creates an anonymous port using the secret value. In this process, the random value generation block (RVGB, 10), anonymous IP generation block (PIGB, 20), and anonymous port generation block (PPGB, 30) generate an anonymous server IP, an anonymous server port, and an anonymous server port. Creates a client port for In addition, the anonymous address generation step is simultaneously performed in the physical NIC of the server and the physical NIC of the client, and the same anonymous server IP, anonymous server port, and anonymous client port are created on both sides, respectively.

이렇게 랜덤 값 생성 블록(RVGB, 10)과 익명 IP 생성 블록(PIGB, 20), 익명 Port 생성 블록(PPGB, 30)이 동일한 익명 주소를 생성하기 위하여, 상기 서버측 NIC와 상기 클라이언트측 NIC는 동일한 Key 저장소(1)와 동일한 해쉬 함수를 보유할 수 있다. NIC의 제조 단계에서 이것이 고려되어 제조될 수 있다. 또는 NIC의 펌웨어 업데이트를 통하여 동일한 Key 저장소(1)와 해쉬 함수가 배포될 수 있다. 또는 중앙 인증 서버에서 서버의 NIC와 클라이언트의 NIC를 인증한 후 배포할 수 있다. 또는 NIC의 드라이버 배포를 통하여 동일한 Key 저장소(1)와 해쉬 함수가 배포될 수 있다.In order to generate the same anonymous address with the random value generation block (RVGB, 10), the anonymous IP generation block (PIGB, 20), and the anonymous port generation block (PPGB, 30), the server-side NIC and the client-side NIC are the same It can have the same hash function as the key storage (1). This can be taken into account and manufactured in the manufacturing stage of the NIC. Alternatively, the same key storage 1 and hash function may be distributed through firmware update of the NIC. Alternatively, the central authentication server can authenticate the server's NIC and the client's NIC before distributing it. Alternatively, the same key storage 1 and hash function can be distributed through NIC driver distribution.

시간 동기화 블록(TSB, 40)은 주소 변이의 시작 시간 및 주기를 제어하는 블록이며, 예를 들어 시간 동기화를 위한 기준 값이나 주소 변이의 주기 값이 저장된 Policy 저장소(2)를 서버측 NIC와 클라이언트측 NIC가 상기 Key 저장소(1)와 마찬가지로 서로 공유하는 것으로, 상기의 주소 변이의 시작 시간 및 주기가 서버측 NIC와 클라이언트측 NIC 간에 동기화될 수 있다. 네트워크 설정 업데이트 블록(NCUB, 50)은 시간 동기화 블록(TSB, 40)의 동기화 신호에 맞추어 변조 IP/Port를 업데이트 한다. 패킷 처리부(PPB, 60)는 서버나 클라이언트의 OS(운영체제)로부터 또는 외부에서 서버나 클라이언트의 NIC으로 수신되는 패킷을 처리하여 목적지(OS 또는 NIC)로 송신하는 블록이다.Time Synchronization Block (TSB, 40) is a block that controls the start time and period of address variation. Since the side NICs share each other like the key storage 1, the start time and period of the address variation can be synchronized between the server-side NIC and the client-side NIC. The network setting update block (NCUB, 50) updates the modulation IP/Port according to the synchronization signal of the time synchronization block (TSB, 40). The packet processing unit (PPB, 60) is a block that processes packets received from an OS (operating system) of a server or client or from the outside to a NIC of a server or client and transmits the packet to a destination (OS or NIC).

Policy 저장소(2)의 자료 구조의 예시를 표 1로 나타냈다.Table 1 shows an example of the data structure of the policy repository (2).

Element NameElement Name mutationPolicymutationPolicy DefinitionDefinition Server/Client 동일하게 공유되는 주소변이 정책(시간 및 서비스 Port 등) 정보를 나타냄Indicates server/client shared address variation policy (time and service port, etc.) information PropertiesProperties NameName TypeType DefinitionDefinition idid stringstring 서버의 IDID of the server namename stringstring 서버의 도메인 이름domain name of the server serviceAddressserviceAddress unsigned intunsigned int 서비스(서버) 주소변조 기능을 사용할 서버의 IP 주소.Service (Server) The IP address of the server to use the address manipulation function. networkSpacenetworkSpace stringstring 서버가 속한 네트워크 주소Network address to which the server belongs timeSyncBasistimeSyncBasis unsigned intunsigned int 시간 동기화를 위한 기준 값Reference value for time synchronization mutationIntervalmutationInterval unsigned intunsigned int 주소변이 주기address change cycle ports:portports:port unsigned shortunsigned short 주소변이를 수행할 서비스 포트 목록List of service ports to perform address variation ports:serviceports:service stringstring 주소변이를 수행할 서비스 포트의 이름 목록List of service port names to perform address translation ipMutationStartAddripMutationStartAddr unsigned intunsigned int 주소변이 시작 주소Address Variant Start Address ipMutationEndAddripMutationEndAddr unsigned intunsigned int 주소변이 마지막 주소address is the last address lifetimelifetime unsigned intunsigned int 주소변이가 시작한 뒤부터 끝나는 시간을 초로 환산한 값A value obtained by converting the time from the start of the address change to the end in seconds

변조 IP/Port 저장소(3)는 네트워크 설정 업데이트 블록(NCUB, 50)이 익명 IP 생성 블록(PIGB, 20)과 익명 Port 생성 블록(PPGB, 30)이 생성한 익명 주소를 이용하여 서버 및 클라이언트의 IP와 포트(port)를 변조한 경우, 상기 변조 IP와 포트(port) 정보를 저장하는 저장소이다. 전술한 대로, 서버측 NIC와 상기 클라이언트측 NIC는 동일한 비밀 값으로 서로 동일한 익명 주소를 생성하므로, 서버 NIC의 변조 IP/Port 저장소와 클라이언트 NIC의 변조 IP/Port 저장소에는 동일한 시간에 서로 동일한 변조 정보가 담기게 된다. 변조 IP/Port 저장소(3)의 자료 구조의 예시를 표 2로 나타냈다.The modulated IP/Port storage (3) uses the anonymous address generated by the network setting update block (NCUB, 50) to create an anonymous IP block (PIGB, 20) and anonymous port creation block (PPGB, 30) to store information about servers and clients. When IP and port are modulated, it is a storage for storing the modulated IP and port information. As described above, since the server-side NIC and the client-side NIC generate the same anonymous address with the same secret value, the same modulation information is stored in the modulation IP/Port storage of the server NIC and the modulation IP/Port storage of the client NIC at the same time. will be included Table 2 shows an example of the data structure of the modulation IP/Port storage (3).

Element NameElement Name mutationIPPortmutationIPPort DefinitionDefinition NCUB에 의해 업데이트 되는 변조 IP/Port 정보를 나타냄Indicates modulated IP/Port information updated by NCUB PropertiesProperties NameName TypeType DefinitionDefinition idid stringstring 서버의 IDID of the server namename stringstring 서버의 도메인 이름domain name of the server timestamptimestamp unsigned longunsigned long 해당 상태정보가 발생된 시간 Time when the corresponding status information was generated networkSpacenetworkSpace stringstring 서버가 속한 네트워크 주소Network address to which the server belongs ipip stringstring timestamp 시점에 서버의 주소Address of the server at the time of timestamp ports:portports:port unsigned shortunsigned short timestamp 시점에 서버의 open 포트server's open port at timestamp ports:serviceports:service stringstring timestamp 시점에 서버의 open 포트에 해당하는 서비스 이름The service name corresponding to the server's open port at the time of timestamp connections:typeconnections:type stringstring 서버에 연결된 클라이언트 연결의 4계층 타입Layer 4 type of client connection to server connections:localAddressconnections:localAddress stringstring 서버에 연결된 클라이언트 연결이 접속할 서비스의 내부 포트The internal port of the service to which client connections connected to the server will connect. connections:foreignAddressconnections:foreignAddress stringstring 서버에 연결된 클라이언트 주소The address of the client connected to the server connections:stateconnections:state stringstring 클라이언트 연결의 TCP 상태TCP state of client connection connections:serviceNameconnections:serviceName stringstring 클라이언트가 접속한 서비스 이름The name of the service the client connected to

세션 Table(테이블) 저장소(4)에는 전술한 변조 정보와 함께 현재 서버와 클라이언트 간에 수립된 세션 정보가 저장된다. 세션 Table(테이블) 저장소(4)의 자료 구조의 예시를 표 3으로 나타냈다. 본 발명에서 세션 Table(테이블)은, IP 또는 포트(port) 기반의 해쉬 구조로 상기 자료를 저장하며, 서버의 NIC와 클라이언트의 NIC에 각각 하나씩 생성될 수 있다.In the session table storage 4, session information established between the current server and the client is stored together with the above-described modulation information. Table 3 shows an example of the data structure of the session table storage (4). In the present invention, the session table (table) stores the data in an IP or port-based hash structure, and can be created in each of the NIC of the server and the NIC of the client.

Element NameElement Name SessionTableSessionTable DefinitionDefinition Server/Client 간 TCP 연결이 완료된 Session 정보를 나타내며, Session 별 변조 및 실제 IP/Port 정보 나타냄Indicates session information for which TCP connection between Server/Client has been completed, and indicates modulation and actual IP/Port information for each session. PropertiesProperties NameName TypeType DefinitionDefinition SeqSeq unsigned intunsigned int TCP 세션의 sequence 번호TCP = Session sequence number AckSeqAckSeq unsigned intunsigned int TCP 세션의 ack sequence 번호TCP = Session ack sequence number OrgSrcIpOrgSrcIp unsigned intunsigned int 실제 Source IPActual Source IP OrgDestIpOrgDestIp unsigned intunsigned int 실제 Destination IPActual Destination IP OrgSrcPortOrgSrcPort unsigned shortunsigned short 실제 Source PortActual Source Port OrgDestPortOrgDestPort unsigned shortunsigned short 실제 Destination PortActual Destination Port NewDestIpNewDestIp unsigned intunsigned int 변조 Destination IPModulation Destination IP NewSrcPortNewSrcPort unsigned shortunsigned short 변조 Source PortModulation Source Port NewDestPortNewDestPort unsigned shortunsigned short 변조 Destination PortModulation Destination Port isFinisFin unsigned charunsigned char TCP Finish 수신 여부Whether to receive TCP Finish

도 3은 본 발명의 주소 변이 방법을 수행하기 위한 기능 블록들의 작업 수행 순서도를 도시한 것이다. 먼저, 랜덤 값 생성 블록(RVGB, 10)는 Key 저장소(1)에서 비밀 키(해쉬 key)를 로드(load)하고 익명 IP/Port 생성을 위한 비밀 값을 생성하고 이를 익명 IP 생성 블록(PIGB, 20)과 익명 Port 생성 블록(PPGB, 30)으로 전달한다. 익명 IP 생성 블록(PIGB, 20)은 전달받은 비밀 값을 이용하여, 서버의 IP를 변조하기 위해 사용할 익명의 IP를 생성하고, 또한 동시에 익명 Port 생성 블록(PPGB, 30)은 전달받은 비밀 값을 이용하여 익명의 포트(port)를 서버용 1개와 클라이언트용 1개로 각각 생성한다.3 is a flowchart illustrating a task execution of functional blocks for performing the address variation method of the present invention. First, the random value generation block (RVGB, 10) loads a secret key (hash key) from the key storage (1), creates a secret value for generating an anonymous IP/Port, and generates an anonymous IP generation block (PIGB, 20) and an anonymous port creation block (PPGB, 30). The anonymous IP generation block (PIGB, 20) uses the received secret value to generate an anonymous IP to be used to modify the server's IP, and at the same time, the anonymous port generation block (PPGB, 30) uses the received secret value to create one anonymous port for the server and one for the client.

생성된 익명 주소(익명 IP와 익명 포트)는 네트워크 설정 업데이트 블록(NCUB, 50)으로 전달되고, 시간 동기화 블록(TSB, 40)이 생성한 동기화 정보에 따라 네트워크 설정 업데이트 블록(NCUB, 50)은 전달받은 익명 주소를 바탕으로 변조 IP/Port 저장소(3)를 업데이트한다. 이러한 변조 IP/Port 저장소(3)의 업데이트는 시간 동기화 블록(TSB, 40)의 동기화 정보에 따라 주기적으로 반복될 수 있다. 패킷 처리부(PPB, 60)는 실제로 NIC 외부로 내보낼 패킷을 설계하는데, 특히 변조 IP/Port 저장소(3)에 접근하여 변조 IP와 변조 포트(port)를 전달받아 변조된 IP와 포트를 상기 패킷에 담아 실제 주소 변이를 시행한다. 또한 패킷 처리부(PPB, 60)는 패킷을 만들 때, 변조한 IP와 포트 정보를 세션 Table(테이블) 저장소(4)에 저장한다.The generated anonymous address (anonymous IP and anonymous port) is transmitted to the network setting update block (NCUB, 50), and according to the synchronization information generated by the time synchronization block (TSB, 40), the network setting update block (NCUB, 50) Modified IP/Port storage (3) is updated based on the received anonymous address. The update of the modulation IP/Port storage 3 may be periodically repeated according to the synchronization information of the time synchronization block (TSB, 40). The packet processing unit (PPB, 60) actually designs packets to be exported to the outside of the NIC. In particular, it accesses the modulated IP/Port storage 3 and receives the modulated IP and modulated port and adds the modulated IP and port to the packet. and implement real address mutation. In addition, when the packet processing unit (PPB, 60) creates a packet, it stores modulated IP and port information in the session table storage (4).

도 4는 본 발명의 일 실시예에 따른 주소 변이 방법을 설명하기 위한 순서도이다. 이하에서 설명하는 주소 변이 방법은 기능 블록들의 구성과 기능과 관련하여 앞서 설명한 내용들로 뒷받침된다. 먼저 익명 주소 생성 단계(s110 단계)에서 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버 간 서로 공유되는 동일한 비밀 키로, 동일한 익명의 서버 IP와 동일한 익명의 서버 포트(port)와 동일한 익명의 클라이언트 포트(port)를 서버 NIC 드라이버와 클라이언트 NIC 드라이버에서 각각 생성한다. 전술한 대로, 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버는 동일한 비밀 키 및/또는 동일한 해쉬 함수 및/또는 동일한 시간 값을 공유하므로, 결국 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버가 각각 생성하는 익명의 IP 값과 익명의 포트 값은 서로 동일하다.4 is a flowchart illustrating an address variation method according to an embodiment of the present invention. The address variation method described below is supported by the contents described above in relation to the configuration and functions of functional blocks. First, in the anonymous address generation step (step s110), the same secret key shared between the NIC driver of the server and the NIC driver of the client, the same anonymous server IP, the same anonymous server port, and the same anonymous client port are created in the server NIC driver and the client NIC driver respectively. As mentioned above, the server's NIC driver and the client's NIC driver share the same secret key and/or the same hash function and/or the same time value, resulting in an anonymous IP that the server's NIC driver and the client's NIC driver respectively generate. The value and the anonymous port value are identical to each other.

다음으로 주소 변조 단계(s120 단계)가 수행될 수 있다. 주소 변조 단계(s120 단계)에서, 익명 주소 생성 단계(s110 단계)에서 생성한 익명의 서버 IP로 서버의 본래의 IP를 변조하여 송신할 패킷에 담고, 생성한 익명의 서버 포트(port)로 서버의 본래의 포트(port)를 변조하여 송신할 패킷에 담고, 생성한 익명의 클라이언트 포트(port)로 클라이언트의 본래의 포트(port)를 변조하여 송신할 패킷에 담는다. 즉 실제적인 주소 변이가 발생하는 단계이다.Next, an address modulation step (step s120) may be performed. In the address modulation step (step s120), the original IP of the server is modulated with the anonymous server IP generated in the anonymous address generation step (step s110), put in a packet to be transmitted, and the created anonymous server port. Modulates the original port of and puts it in the packet to be transmitted, and modulates the original port of the client with the created anonymous client port and puts it in the packet to be sent. That is, this is the step in which actual address variation occurs.

주소 변조 단계(s120 단계)의 직전, 또는 직후 또는 그와 동시에 송신측 세션 테이블 작성 단계(s130 단계)가 수행될 수 있다. 본 단계에서, 주소 변조 단계(s120 단계)에서 변조에 사용된, 또는 사용될 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port) 정보를 IP 또는 포트(port) 기반의 해쉬 구조인 제1 세션 테이블(table)에 저장한다. 상기 제1 세션 테이블(table)은 송신측의 NIC 드라이버가 보유하는 송신측 세션 테이블이 된다. 세션 테이블이 저장하는 저장 항목들은 전술한 세션 Table 저장소(4)의 설명과 예시를 참조할 수 있다. 송신측이 클라이언트인 경우, 제1 세션 테이블(table)은 수신측, 즉 서버의 변조된 포트(port)를 key 값으로 사용하는 해쉬 구조로 자료가 저장되며, 서로 연결되는 서버와 클라이언트 간의 세션 연결 유지를 위하여 지속적으로 사용될 수 있다.Before, immediately after, or at the same time as the address modulation step (step s120), the sender side session table creation step (step s130) may be performed. In this step, the IP or port-based hash of the anonymous server IP, anonymous server port, and anonymous client port information used or to be used for modulation in the address modulation step (step s120) It is stored in the structure of the first session table. The first session table becomes a sender-side session table held by the sender's NIC driver. The storage items stored in the session table may refer to the description and example of the session table storage 4 described above. When the sender is a client, the first session table stores data in a hash structure using the modulated port of the receiver, that is, the server, as a key value, and session connection between the server and the client connected to each other. It can be used continuously for maintenance.

다음으로 패킷 송출 단계(s140 단계)에서는 변조된 서버 IP와, 변조된 서버 포트(port)와, 변조된 클라이언트 포트(port) 정보를 포함하는 패킷을 NIC의 외부로 전송한다.Next, in the packet transmission step (step s140), a packet including modulated server IP, modulated server port, and modulated client port information is transmitted to the outside of the NIC.

다음으로, 상기 주소 변이된 패킷을 수신하는 패킷 수신 및 패킷 판단 단계(s150 단계)가 수행될 수 있다. 클라이언트의 NIC가 상기 주소 변이된 패킷을 송신한 경우, 수신측은 서버 NIC가 되며, 반대로 서버 NIC가 상기 주소 변이된 패킷을 송신한 경우, 수신측은 클라이언트 NIC가 되는 것은 당연하다. 수신측의 NIC는 전송받은 패킷에 담긴 서버 IP와 서버 포트와 클라이언트 포트 정보를 수신측의 NIC가 익명 주소 생성 단계(s110 단계)에서 생성한 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port)와 일치하는지 판단한다. 상기 판단 결과가 일치하는 것으로 도출된 경우에는, 동일한 비밀 키로 생성된 변이 주소임이 확인된 것이므로 상기 전송받은 패킷을 정당한 송신자가 송신한 패킷으로 간주할 수 있다. 따라서 이때는 수신측 세션 테이블 작성 단계(s160 단계)와 주소 복구 단계(s170)가 수행될 수 있다.Next, a packet reception and packet determination step (step s150) for receiving the address-shifted packet may be performed. When the client's NIC transmits the address-shifted packet, the receiver becomes the server NIC. Conversely, when the server NIC transmits the address-shifted packet, the receiver becomes the client NIC. The receiving side's NIC converts the server IP, server port, and client port information contained in the transmitted packet into the anonymous server IP, anonymous server port, and anonymous server port created by the receiving side's NIC in the anonymous address generation step (step s110) Determines whether it matches the client port of . If the determination result is determined to be identical, it is confirmed that the variant address is generated with the same secret key, and thus the transmitted packet can be regarded as a packet transmitted by a legitimate sender. Accordingly, at this time, the reception side session table creation step (step s160) and address recovery step (s170) may be performed.

수신측 세션 테이블 작성 단계(s160 단계)에서는 해당 전송받은 패킷에 담긴 서버 IP와 서버 포트(port)와 클라이언트 포트(port) 정보, 즉 동일한 비밀 키로 생성된 변이 주소 정보를 IP 또는 포트(port) 기반의 해쉬 구조인 제2 세션 테이블(table)에 저장한다. 상기 제2 세션 테이블(table)은 수신측의 NIC 드라이버가 보유하는 수신측 세션 테이블이 된다. 수신측이 서버인 경우, 제2 세션 테이블(table)은 송신측, 즉 클라이언트의 본래의 IP를 key 값으로 사용하는 해쉬 구조로 자료가 저장되며, 서로 연결되는 서버와 클라이언트 간의 세션 연결 유지를 위하여, 제1 세션 테이블과 함께 지속적으로 사용될 수 있다.In the receiving-side session table creation step (step s160), the server IP, server port, and client port information contained in the received packet, that is, the variant address information generated with the same secret key, is stored on the IP or port basis. stored in the second session table, which is a hash structure of The second session table becomes a reception-side session table held by the reception-side NIC driver. When the receiving side is a server, data is stored in the second session table in a hash structure using the original IP of the sending side, that is, the client, as a key value, and to maintain session connection between the server and the client connected to each other. , can be continuously used with the first session table.

주소 복구 단계(s170)에서는 제2 세션 테이블에 저장된 정보를 이용하여, 전송받은 패킷에 담긴 서버 IP와 서버 포트(port)와 클라이언트 포트(port)를 변조되기 전의 본래의 서버 IP와 본래의 서버 포트(port)와 본래의 클라이언트 포트(port)로 복구한다. 이로써 본래의 주소 정보를 회복한 패킷은 OS와 어플리케이션으로 차례로 전달될 수 있다.In the address recovery step (s170), the server IP, server port, and client port contained in the received packet are changed to the original server IP and original server port before being altered by using the information stored in the second session table. (port) and the original client port (port). As a result, packets with original address information recovered can be sequentially delivered to the OS and applications.

패킷 수신 및 패킷 판단 단계(s150 단계)에서 판단한 결과, 변이 주소가 일치하지 않는 것으로 판단한 경우에는, 해당 패킷을 차단하는 패킷 필터링 단계(s180 단계)가 수행될 수 있다. 이 경우, 수신측의 NIC 드라이버가 생성한 익명 주소와, 전송받은 패킷에 담긴 주소 정보(변이 주소)가 일치하지 않는 것으로, 송신측의 정당성 여부를 확인할 수 없는 경우이므로 전송받은 패킷을 차단하여 혹시 모를 공격을 방어할 수 있다. 예를 들어, 수신한 TCP SYN 패킷을 TCP FIN 패킷으로 변조하여 수신측 상위 어플리케이션으로의 TCP 연결이 수립되지 않도록 할 수 있다.As a result of the determination in the packet reception and packet determination step (step s150), when it is determined that the variant addresses do not match, a packet filtering step (step s180) of blocking the corresponding packet may be performed. In this case, since the anonymous address generated by the NIC driver of the receiving side and the address information (variant address) included in the transmitted packet do not match, it is impossible to verify the legitimacy of the sending side, so the transmitted packet is blocked and You can defend against unknown attacks. For example, a received TCP SYN packet may be modulated into a TCP FIN packet to prevent establishment of a TCP connection to a higher-level application on the receiving side.

실시예에 따라, 본 발명의 주소 변이 방법은 서버 및/또는 클라이언트의 운영체제(OS)에서 수행되는 단계로서, 서버와 클라이언트의 IP 주소를 물리적 주소인 MAC 주소로 대응시키기 위한 ARP 절차 수행 단계를 포함할 수 있다. ARP 절차 수행 단계에서 서버와 클라이언트의 MAC 주소는 서버와 클라이언트의 물리적 NIC의 변조되기 전의 본래의 IP와 대응되는 것이 바람직하다. 즉, 서버와 클라이언트가 각각 저장하는 ARP 테이블(table)은, 주기적으로 매번 변경될 수 있는 변이 주소에 대하여 작성되는 것이 아닌, 서버와 클라이언트 각각의 본래의 IP에 대하여 작성된다. 이에 따라, 주기적으로 변경되는 변이 주소 전부에 대한 ARP 테이블을 작성할 필요가 없어 ARP 테이블이 단순해지고 검색 시간이 단축되며, 주소 변이가 일어날 때마다 변이 주소에 대응되는 MAC 주소를 찾기 위한 ARP 테이블 검색을 수행할 필요가 없어, ARP 테이블 검색에 따른 연결 지연이 발생하지 않는다. 예를 들어, 서버, 클라이언트 간 최초 연결 수립을 위해 교환되는 ARP Request 패킷과 ARP Response 패킷에는 변이 주소가 아닌, 서버 또는 클라이언트의 본래의 IP 주소를 담아 송수신하여, ARP 테이블을 작성하는 것으로 이를 달성할 수 있다. 또한 예를 들어, 연결이 이미 수립된 서버와 클라이언트 간에는 상기 주소 복구 단계(s170) 이후에 복구된 IP에 대하여 ARP 테이블 검색을 실시하는 것으로 이를 달성할 수 있다.According to an embodiment, the address variation method of the present invention is a step performed in an operating system (OS) of a server and/or a client, and includes performing an ARP procedure for matching IP addresses of servers and clients with MAC addresses, which are physical addresses. can do. In the ARP procedure execution step, it is desirable that the MAC addresses of the server and the client correspond to the original IPs of the physical NICs of the server and the client before being tampered with. That is, the ARP table stored by the server and the client, respectively, is created for the original IP of each server and client, not for a variable address that can be changed periodically. Accordingly, there is no need to create an ARP table for all of the variant addresses that change periodically, which simplifies the ARP table and shortens the search time. connection delay due to ARP table search does not occur. For example, ARP Request packets and ARP Response packets exchanged for the initial connection establishment between the server and the client contain the original IP address of the server or client, not the variant address, and create an ARP table to achieve this. can In addition, for example, this can be achieved by performing an ARP table search for the recovered IP after the address recovery step (s170) between the server and the client for which a connection has already been established.

도 5는 본 발명의 일 실시예에 따른 주소 변이 방법의 세션 테이블(table) 생성 과정을 나타낸 데이터 흐름도이다. 제1 세션 테이블(table)과 제2 세션 테이블(table)은 전술한 대로, 클라이언트 본래 IP 또는 서버의 변조 Port 주소 기반 해시 구조로 되어 있으며, 서로 간 통신하기 위한 서버와 클라이언트 간 TCP 세션 생성 과정의 TCP SYN, SYN/ACK 통해 생성된다. 또한 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버가 서로 공유하는 동일한 IP 값과 익명의 포트 값을 매개로 하여 서버와 클라이언트 간 동일한 값을 저장할 수 있게 된다. 세션 테이블(table) 생성 과정은 다음과 같다.5 is a data flow diagram illustrating a process of generating a session table in an address variation method according to an embodiment of the present invention. As described above, the first session table and the second session table have a hash structure based on the original IP of the client or the modulated Port address of the server, and the process of creating a TCP session between the server and the client for communication with each other. Generated through TCP SYN and SYN/ACK. In addition, the same IP value and anonymous port value shared by the NIC driver of the server and the NIC driver of the client can be used to store the same value between the server and the client. The session table creation process is as follows.

서버와 클라이언트의 어플리케이션(application) 간 TCP 연결을 위해, 클라이언트 어플리케이션에서 TCP SYN 패킷을 전송할 경우, OS(운영체제)를 거쳐 ①과 같은 TCP SYN 패킷이 클라이언트의 NIC 드라이버로 전달된다. TCP SYN 패킷 ①을 수신한 클라이언트의 NIC 드라이버의 NAT(②)는 도 4의 실시예의 익명 주소 생성 단계(s110 단계)에서 비밀 키로 생성한 현재 변조 IP/Port를, 서버의 변조 포트(port)를 기준으로 제1 세션 테이블에 등록하고(송신측 세션 테이블 작성 단계(s130 단계)), 현재 변조 IP/Port 저장소에 저장된 IP/Port를 이용하여 패킷의 SRC(소스) Port 및 DST(목적지) IP/Port를 변조한다. 다음으로 변조된 TCP SYN 패킷 ③을 네트워크로 송출하기 위해 NIC으로 전달한다. NIC은 수신된 TCP SYN 패킷 ③을 그대로 네트워크로 송출하며 패킷은 ④와 같다(패킷 송출 단계(s140 단계)).For the TCP connection between the server and the client application, when the client application transmits a TCP SYN packet, the TCP SYN packet as shown in ① is transmitted to the NIC driver of the client through the OS (Operating System). The NAT (②) of the NIC driver of the client receiving the TCP SYN packet ① converts the current modulated IP/Port generated with the secret key in the anonymous address generation step (step s110) of the embodiment of FIG. 4 to the modulated port of the server. It is registered in the first session table as a standard (transmitting side session table creation step (step s130)), and the SRC (source) Port and DST (destination) IP/ modulate the port Next, the modulated TCP SYN packet ③ is transmitted to the NIC to be transmitted to the network. The NIC transmits the received TCP SYN packet ③ to the network as it is, and the packet is as in ④ (packet transmission step (step s140)).

서버의 NIC이 수신한 TCP SYN 패킷 ④는 그대로 서버의 NIC 드라이버로 전달되며 패킷은 ⑤와 같다. 패킷 수신 및 패킷 판단 단계(s150 단계)에서 TCP SYN 패킷 ⑤을 수신한 서버의 NIC 드라이버의 NAT(⑥)는 SRC(소스) Port 및 DST(목적지) IP/Port 번호가 변조 IP/Port와 동일한지 판단하고, 만약 동일한 경우, 변조 IP/Port를 SRC(소스) IP를 기준으로 세션 테이블(table)에 등록하고(수신측 세션 테이블 작성 단계(s160 단계)), DST(목적지) IP/Port를 원래의 IP/Port로 복구한다. 다음으로, 복구된 TCP SYN 패킷 ⑦을 OS로 전달하여 서버 어플리케이션(application)으로 전달될 수 있게 한다. The TCP SYN packet ④ received by the server's NIC is transmitted to the server's NIC driver as it is, and the packet is as in ⑤. In the packet reception and packet judgment step (step s150), the NAT (⑥) of the NIC driver of the server that received the TCP SYN packet ⑤ checks whether the SRC (source) Port and DST (destination) IP/Port numbers are the same as the modulation IP/Port. and, if the same, the modulation IP/Port is registered in the session table based on the SRC (source) IP (reception side session table creation step (step s160)), and the DST (destination) IP/Port is originally Restore to the IP/Port of Next, the recovered TCP SYN packet ⑦ is delivered to the OS so that it can be delivered to the server application.

TCP SYN 패킷을 수신한 서버 어플리케이션(application)은 TCP SYN/ACK를 송출하며, OS를 거쳐 ⑧과 같은 TCP SYN/ACK 패킷이 서버의 NIC 드라이버로 전달된다. TCP SYN/ACK 패킷 ⑧을 수신한 NAT(⑨)는 DST(목적지) IP(클라이언트 IP)를 이용하여 세션 테이블(table)을 검색하고, 검색된 세션 테이블(table)의 IP/Port 정보를 이용하여 패킷의 SRC(소스) IP/Port를 변조한다. The server application receiving the TCP SYN packet transmits the TCP SYN/ACK, and the TCP SYN/ACK packet as in ⑧ is transmitted to the NIC driver of the server through the OS. Upon receiving the TCP SYN/ACK packet ⑧, the NAT(⑨) searches the session table using the DST (destination) IP (client IP), and uses the IP/Port information of the searched session table to retrieve the packet modulates the SRC (source) IP/Port of

이후, 변조된 패킷 ⑩을 네트워크로 송출하기 위해 서버측(송신측) NIC으로 전달한다. NIC은 수신된 패킷 ⑩을 그대로 네트워크로 송출하며, 패킷은 ⑪과 같다. ⑪ 패킷을 수신한 클라이언트측(수신측) NIC은 그대로 NIC 드라이버로 해당 패킷을 송출하며 패킷은 ⑫와 같다. TCP SYN/ACK 패킷 ⑫을 수신한 NAT(⑬)는 SRC(소스) Port(서버 Port)를 이용하여 세션 테이블(table)을 검색하고, 검색된 세션 테이블(table)의 IP/Port 정보를 이용하여 패킷의 SRC(소스) IP/Port 및 DST(목적지) Port를 원래의 SRC(소스)/DST(목적지) IP/Port로 복구한다.Then, the modulated packet ⑩ is transmitted to the server side (transmitting side) NIC to be transmitted to the network. The NIC transmits the received packet ⑩ to the network as it is, and the packet is the same as ⑪. ⑪ The client side (receiving side) NIC that received the packet transmits the packet to the NIC driver as it is, and the packet is as in ⑫. Upon receiving the TCP SYN/ACK packet ⑫, the NAT (⑬) searches the session table using the SRC (source) Port (server port), and uses the IP/Port information of the searched session table to retrieve the packet. Restores the SRC (source) IP/Port and DST (destination) Port of the original SRC (source)/DST (destination) IP/Port.

최종적으로, 복구된 TCP SYN/ACK 패킷 ⑭는 OS(eth0 포함)로 전달하여 클라이언트 어플리케이션(application)으로 전달된다.Finally, the recovered TCP SYN/ACK packet ⑭ is delivered to the OS (including eth0) and delivered to the client application.

도 6은 본 발명의 일 실시예에 따른 주소 변이 방법의 주소 변이를 이용한 데이터 교환 과정을 나타낸 데이터 흐름도이다. 먼저, 클라이언트 어플리케이션(application)에서 서버 어플리케이션(application)으로 패킷을 전송할 경우, OS(운영체제)를 거쳐 ①과 같은 패킷이 클라이언트의 NIC 드라이버로 전달된다. ① 패킷을 수신한 NAT(②)는 패킷의 DST(목적지) Port, 즉 서버의 변조된 포트(port)를 이용하여 세션 테이블(table)을 검색하고, 세션 테이블(table)의 IP/Port를 이용하여 패킷의 SRC(소스) Port 및 DST(목적지) IP/Port를 변조한다. 다음으로 변조된 패킷 ③을 네트워크로 송출하기 위해 NIC으로 전달한다. NIC은 수신된 패킷 ③을 그대로 네트워크로 송출하며 패킷은 ④와 같다.6 is a data flow diagram illustrating a data exchange process using address variation in an address variation method according to an embodiment of the present invention. First, when a packet is transmitted from a client application to a server application, the packet as shown in ① is transferred to the NIC driver of the client through the OS (Operating System). ① The NAT (②) receiving the packet searches the session table using the DST (destination) port of the packet, that is, the modified port of the server, and uses the IP/Port of the session table. and modulates the SRC (source) Port and DST (destination) IP/Port of the packet. Next, the modulated packet ③ is transmitted to the NIC for transmission to the network. The NIC transmits the received packet ③ to the network as it is, and the packet is the same as ④.

서버의 NIC이 수신한 패킷 ④는 그대로 서버의 NIC 드라이버로 전달되며 패킷은 ⑤와 같다. ⑤ 패킷을 수신한 서버의 NIC 드라이버의 NAT(⑥)는 SRC(소스) IP, 즉 클라이언트의 본래의 IP를 이용하여 세션 Table을 검색하고, 세션 테이블(table)의 IP/Port를 이용하여 패킷의 DST(목적지) IP/Port를 복구한다. 다음으로, 복구된 패킷 ⑦을 OS로 전달하여 서버 어플리케이션(application)으로 전달될 수 있게 한다.The packet ④ received by the server's NIC is transmitted to the server's NIC driver as it is, and the packet is the same as ⑤. ⑤ The NAT (⑥) of the NIC driver of the server that received the packet searches the session table using the SRC (source) IP, that is, the original IP of the client, and uses the IP/Port of the session table to retrieve the packet. Restore DST (Destination) IP/Port. Next, the recovered packet ⑦ is delivered to the OS so that it can be delivered to the server application.

다음으로, 서버 어플리케이션(application)에서 클라이언트 어플리케이션(application)으로 패킷을 전송할 경우, OS를 거쳐 ⑧과 같은 패킷이 서버의 NIC 드라이버로 전달된다. ⑧ 패킷을 수신한 NAT(⑨)는 패킷의 DST(목적지) IP, 즉 클라이언트의 본래의 IP를 이용하여 세션 테이블(table)을 검색하고, 검색된 세션 테이블의 IP/Port 정보를 이용하여 패킷의 SRC(소스) IP/Port를 변조한다.Next, when a packet is transmitted from the server application to the client application, the packet ⑧ is transmitted to the NIC driver of the server through the OS. ⑧ The NAT (⑨) that received the packet searches the session table using the DST (destination) IP of the packet, that is, the original IP of the client, and uses the IP/Port information of the searched session table to search the SRC of the packet. (Source) Modulate IP/Port.

이후, 변조된 패킷 ⑩을 네트워크로 송출하기 위해 서버측(송신측) NIC으로 전달한다. NIC은 수신된 패킷 ⑩을 그대로 네트워크로 송출하며 패킷은 ⑪과 같다. ⑪ 패킷을 수신한 클라이언트측(수신측) NIC은 그대로 NIC 드라이버로 해당 패킷을 송출하며 패킷은 ⑫와 같다.Then, the modulated packet ⑩ is transmitted to the server side (transmitting side) NIC to be transmitted to the network. The NIC transmits the received packet ⑩ to the network as it is, and the packet is as ⑪. ⑪ The client side (receiving side) NIC that receives the packet transmits the packet to the NIC driver as it is, and the packet is as in ⑫.

⑫ 패킷을 수신한 서버의 NAT(⑬)는 SRC(소스) Port, 즉 서버의 변조된 포트(port)를 이용하여 세션 테이블(table)을 검색하고, 검색된 세션 테이블(table)의 IP/Port를 이용하여 패킷의 SRC(소스) IP/Port 및 DST(목적지) Port를 복구한다.⑫ The NAT (⑬) of the server that received the packet searches the session table using the SRC (source) port, that is, the modified port of the server, and returns the IP/Port of the searched session table. to restore the SRC (source) IP/Port and DST (destination) Port of the packet.

최종적으로, 복구된 패킷 ⑭를 OS로 전달하여 클라이언트 어플리케이션(application)으로 전달될 수 있게 한다.Finally, the recovered packet ⑭ is delivered to the OS so that it can be delivered to the client application.

도 7은 본 발명의 일 실시예에 따른 주소 변이 방법의 ARP 테이블(table) 작성 과정을 나타낸 데이터 흐름도이다. 최초에 클라이언트 어플리케이션에서 서버 어플리케이션으로 패킷을 전송할 경우, OS에서는 ARP 테이블(table)을 검색하여 목표인 서버의 NIC의 MAC 주소를 획득한다. 이 때, ARP 테이블 검색이 실패할 경우, 클라이언트는 ①과 같은 ARP Request 패킷을 송출한다.7 is a data flow diagram illustrating a process of creating an ARP table in an address variation method according to an embodiment of the present invention. When a packet is initially transmitted from the client application to the server application, the OS searches the ARP table to obtain the MAC address of the NIC of the target server. At this time, if the ARP table search fails, the client transmits an ARP Request packet as shown in ①.

① 패킷을 수신한 클라이언트의 NIC 드라이버의 NAT(②)는 도 4의 실시예의 익명 주소 생성 단계(s110 단계)에서 패킷의 TGT(Target) 주소, 즉 서버의 IP가 Policy 저장소(2)에 저장된 서버 IP와 동일한지 판단하고, 만약 동일한 경우, 변조 IP를 이용하여 TGT IP를 변조한다. 이후, 변조된 패킷 ③을 네트워크로 송출하기 위해 NIC으로 전달한다. NIC은 수신된 패킷 ③을 그대로 네트워크로 송출하며 패킷은 ④와 같다.① The NAT (②) of the NIC driver of the client receiving the packet is the server where the TGT (Target) address of the packet, that is, the IP of the server is stored in the policy storage (2) in the anonymous address generation step (step s110) of the embodiment of FIG. It is determined whether it is the same as the IP, and if it is the same, the TGT IP is modulated using the modulated IP. Then, the modulated packet ③ is transmitted to the NIC to be transmitted to the network. The NIC transmits the received packet ③ to the network as it is, and the packet is the same as ④.

서버의 NIC이 수신한 패킷 ④는 그대로 서버의 NIC 드라이버로 전달되며 패킷은 ⑤와 같다.The packet ④ received by the server's NIC is transmitted to the server's NIC driver as it is, and the packet is the same as ⑤.

⑤ ARP Request 패킷을 수신한 서버의 NIC 드라이버의 NAT(⑥)는 TGT(Target) IP가 변조 IP와 동일한지 판단하고, 만약 동일한 경우, Policy 저장소(2)에 저장된 원래 서버 주소를 이용하여 TGT(Target) IP를 복구한다. 다음으로, 복구된 ARP Request 패킷 ⑦을 OS로 전달한다.⑤ The NAT (⑥) of the NIC driver of the server that received the ARP Request packet determines whether the TGT (Target) IP is the same as the modulated IP. Target) Recover IP. Next, the recovered ARP Request packet ⑦ is delivered to the OS.

OS는 수신한 ARP Request 패킷에 대한 응답으로 자신(서버)의 MAC 주소를 포함하는 ARP Response 패킷 ⑧을 서버의 NIC 드라이버로 전달한다. ⑧ 패킷을 수신한 NAT Table(⑨)은 SRC(Source) IP가 Policy 저장소(2)에 저장된 서버(서비스) IP와 동일한지 판단하고, 만약 동일한 경우, 변조 IP를 이용하여 SRC IP를 변조한다.As a response to the received ARP Request packet, the OS delivers the ARP Response packet ⑧ including its own (server's) MAC address to the server's NIC driver. ⑧ The NAT Table (⑨) that received the packet determines whether the SRC (Source) IP is the same as the server (service) IP stored in the policy storage (2), and if it is the same, modulates the SRC IP using the modulated IP.

이후, 변조된 ARP Response 패킷 ⑩을 네트워크로 송출하기 위해 서버측(송신측) NIC으로 전달한다. NIC은 수신된 ARP Response 패킷 ⑩을 그대로 네트워크로 송출하며 ARP Response 패킷은 ⑪과 같다. ARP Response ⑪ 패킷을 수신한 클라이언트측(수신측) NIC은 그대로 NIC 드라이버로 해당 패킷을 송출하며 패킷은 ⑫와 같다. ARP Response ⑫ 패킷을 수신한 NAT Table(⑬)은 SRC IP가 변조 IP와 동일한지 판단하고, 만약 동일한 경우, Policy 저장소(2)에 저장된 원래 서버 주소를 이용하여 SRC(Source) IP를 복구한다.Afterwards, the modulated ARP response packet ⑩ is transmitted to the server side (sender side) NIC to be transmitted to the network. The NIC transmits the received ARP Response packet ⑩ to the network as it is, and the ARP Response packet is the same as ⑪. ARP Response ⑪ The client side (receiver side) NIC that received the packet transmits the packet to the NIC driver as it is, and the packet is as in ⑫. The NAT Table (⑬) receiving the ARP Response ⑫ packet determines whether the SRC IP is the same as the modulated IP, and if it is the same, it recovers the SRC (Source) IP using the original server address stored in the policy storage (2).

최종적으로 복구된 ARP Response 패킷 ⑭를 OS로 전달하고, 이를 수신한 OS는 ARP Table에 “1:1:1:1 to 11:22:33:44:55:66”을 등록한다.Finally, the recovered ARP response packet ⑭ is delivered to the OS, and the OS that receives it registers “1:1:1:1 to 11:22:33:44:55:66” in the ARP Table.

서버에서 송출하는 ARP Request와 클라이언트에서 송출하는 ARP Response도 위와 동일한 방법으로 처리된다.The ARP Request sent by the server and the ARP Response sent by the client are also processed in the same way as above.

이상의 도 5와 도 6과 도 7의 패킷 교환 과정은 도 3의 기능 블록에 대한 설명과 도 4의 주소 변이 방법에 대한 설명을 뒷받침하는 것으로, 특히 본 발명의 주소 변이 방법에 있어서, 패킷의 송신 시에 작성한 송신측 세션 테이블과, 정당 변이 주소임이 확인되어 수신 시에 작성한 수신측 세션 테이블은, 서버와 클라이언트 간에 공유되는 동일한 익명 주소(IP/Port)를 매개로 서로 세션 연결을 위한 정보를 담게 된다. 특히 클라이언트의 NIC 드라이버에서 생성되는 클라이언트측 세션 테이블에서는 서버의 변조 Port를 키(key)로 사용하는 해시 검색을 통하여 빠르게 서버의 원래/변조 IP/Port 및 클라이언트의 원래/변조 Port를 획득할 수 있으며, 또한 서버의 NIC 드라이버에서 생성되는 서버측 세션 테이블에서는 클라이언트의 IP를 키(key)로 사용하는 해시 검색을 통하여 빠르게 서버의 원래 IP/Port 및 클라이언트의 원래/변조 Port를 획득할 수 있다. 이렇게 세션 테이블을 빠른 속도로 해시 검색하는 것으로 서버와 클라이언트 서로 간의 세션 연결이 유지될 수 있다. 또한 ARP 테이블의 작성과 검색을 변조되기 전의 본래의 IP를 기준으로 수행하므로, 주소 변이가 발생할 때마다 ARP 테이블의 작성과 검색을 반복할 필요가 없어 연결 지연을 방지할 수 있다.The above packet exchange process of FIGS. 5, 6, and 7 supports the description of the function block of FIG. 3 and the address variation method of FIG. 4. In particular, in the address variation method of the present invention, packet transmission The sending side session table created at the time of application and the receiving side session table created at the time of reception after confirming that it is a valid variant address contain information for session connection to each other via the same anonymous address (IP/Port) shared between the server and the client. do. In particular, in the client-side session table created by the client's NIC driver, the server's original/modified IP/Port and client's original/modified Port can be quickly obtained through hash search using the server's modified port as a key. In addition, in the server-side session table created by the server's NIC driver, the server's original IP/Port and the client's original/modified Port can be quickly obtained through hash search using the client's IP as a key. By performing hash search on the session table at high speed, the session connection between the server and the client can be maintained. In addition, since the ARP table creation and search are performed based on the original IP before alteration, it is not necessary to repeat the ARP table creation and search every time an address variation occurs, preventing connection delay.

이상 설명한 바와 같이, 본 발명은 상술한 특정의 바람직한 실시예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 누구든지 다양한 변형의 실시가 가능한 것은 물론이고, 그와 같은 변경은 청구범위 기재의 범위 내에 있게 된다.As described above, the present invention is not limited to the specific preferred embodiments described above, and anyone having ordinary knowledge in the technical field to which the present invention pertains can do various things without departing from the gist of the present invention claimed in the claims. Of course, variations are possible, and such variations are within the scope of the claims.

1: Key 저장소 2: Policy 저장소
3: 변조 IP/Port 저장소 4: 세션 Table 저장소
10: 랜덤 값 생성 블록 20: 익명 IP 생성 블록
30: 익명 Port 생성 블록 40: 시간 동기화 블록
50: 네트워크 설정 업데이트 블록 60: 패킷 처리부
1: Key storage 2: Policy storage
3: Modified IP/Port Storage 4: Session Table Storage
10: random value generation block 20: anonymous IP generation block
30: Anonymous Port Creation Block 40: Time Synchronization Block
50: network setting update block 60: packet processing unit

Claims (5)

서로 간 통신하기 위한, 변조되기 전의 본래의 IP와 포트(port)를 가진, 서버와 클라이언트의 물리적 NIC에서 수행되기 위한 방법에 있어서,
서버의 NIC 드라이버와 클라이언트의 NIC 드라이버 간 서로 공유되는 동일한 비밀 키로, 동일한 익명의 서버 IP와 동일한 익명의 서버 포트(port)와 동일한 익명의 클라이언트 포트(port)를 서버 NIC 드라이버와 클라이언트 NIC 드라이버에서 각각 생성하는 단계(익명 주소 생성 단계);
생성한 익명의 서버 IP로 서버의 IP를 변조하고, 생성한 익명의 서버 포트(port)로 서버의 포트(port)를 변조하고, 생성한 익명의 클라이언트 포트(port)로 클라이언트의 포트(port)를 변조하는 단계(주소 변조 단계);
주소 변조 단계에서 변조에 사용된 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port) 정보를 IP 또는 포트(port) 기반의 해쉬 구조인 제1 세션 테이블(table)에 저장하는 단계(송신측 세션 테이블 작성 단계);
변조된 서버 IP와, 변조된 서버 포트(port)와, 변조된 클라이언트 포트(port) 정보를 포함하는 패킷을 전송하는 단계(패킷 송출 단계);
전송받은 패킷에 담긴 서버 IP와, 서버 포트와, 클라이언트 포트 정보가 익명 주소 생성 단계에서 생성한 익명의 서버 IP와 익명의 서버 포트(port)와 익명의 클라이언트 포트(port)와 일치하는지 판단하는 단계(패킷 판단 단계);
패킷 판단 단계에서 판단한 결과, 일치하는 것으로 판단한 경우, 해당 전송받은 패킷에 담긴 서버 IP와 서버 포트(port)와 클라이언트 포트(port) 정보를 IP 또는 포트(port) 기반의 해쉬 구조인 제2 세션 테이블(table)에 저장하는 단계(수신측 세션 테이블 작성 단계); 및
서버와 클라이언트의 운영체제(OS)에서 수행되는 단계로서, 서버와 클라이언트의 IP 주소를 물리적 주소인 MAC 주소로 대응시키기 위한 ARP 절차 수행 단계;를 포함하고, ARP 절차 수행 단계에서, 서버와 클라이언트의 MAC 주소는 서버와 클라이언트의 물리적 NIC의 변조되기 전의 본래의 IP에 대응되고,
송신측 세션 테이블 작성 단계와 수신측 세션 테이블 작성 단계에 있어서, 제1 세션 테이블과 제2 세션 테이블 중 클라이언트의 NIC 드라이버에 저장되는 세션 테이블은 서버의 변조된 포트 기반의 해쉬 구조이며, 서버의 NIC 드라이버에 저장되는 세션 테이블은 클라이언트의 본래의 IP 기반의 해쉬 구조이며, 연결된 서버와 클라이언트 간의 세션은 제1 세션 테이블(table)과 제2 세션 테이블(table)을 통하여 서버의 NIC 드라이버와 클라이언트의 NIC 드라이버에 의해서 유지되는 것을 특징으로 하는 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법.
A method to be performed on physical NICs of a server and a client, with original IPs and ports before being tampered with, for communication with each other,
With the same secret key shared between the NIC driver of the server and the NIC driver of the client, the same anonymous server IP, the same anonymous server port, and the same anonymous client port are assigned to the server NIC driver and the client NIC driver, respectively. generating step (anonymous address generating step);
Change the server IP with the created anonymous server IP, change the server port with the created anonymous server port, and change the client port to the created anonymous client port. modulating (address modulation step);
In the address modulation step, the anonymous server IP, anonymous server port, and anonymous client port information used for modulation are stored in the first session table, which is a hash structure based on IP or port. a step of creating a session table on the sender side;
Transmitting a packet including modulated server IP, modulated server port, and modulated client port information (packet transmission step);
Determining whether the server IP, server port, and client port information contained in the received packet match the anonymous server IP, anonymous server port, and anonymous client port created in the anonymous address creation step. (packet judgment step);
As a result of the determination in the packet determination step, if it is determined that they match, the server IP, server port, and client port information contained in the received packet are stored in the second session table, which is a hash structure based on IP or port. (table) (reception side session table creation step); and
As a step performed in the operating system (OS) of the server and the client, performing an ARP procedure for mapping the IP addresses of the server and the client to the MAC address, which is a physical address; including, in the ARP procedure performing step, the MAC of the server and the client The address corresponds to the original IP of the physical NIC of the server and the client before being tampered with,
In the sending-side session table creation step and the receiving-side session table creation step, the session table stored in the client's NIC driver among the first session table and the second session table is a hash structure based on the modulated port of the server, and the server's NIC The session table stored in the driver is the original IP-based hash structure of the client, and the session between the connected server and the client is connected to the server's NIC driver and the client's NIC through the first session table and the second session table. Address transformation method performed by an Ethernet driver having an unrecognized NIC function in a 5G Massive network, characterized in that maintained by the driver.
제1항에 있어서,
익명 주소 생성 단계는 소정의 주기마다 반복 수행되는 것을 특징으로 하는 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법.
According to claim 1,
An address transformation method performed in an Ethernet driver having an unrecognized NIC function in a 5G Massive network, characterized in that the anonymous address generation step is repeatedly performed at predetermined intervals.
제1항에 있어서,
패킷 판단 단계에서 판단한 결과, 일치하지 않는 것으로 판단한 경우, 해당 전송받은 패킷을 차단하는 단계(패킷 필터링 단계);를 추가로 포함하는 것을 특징으로 하는 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법.
According to claim 1,
As a result of the determination in the packet determination step, if it is determined that they do not match, blocking the received packet (packet filtering step); How the address transformation is performed.
제1항에 있어서,
패킷 판단 단계에서 판단한 결과, 일치하는 것으로 판단한 경우, 전송받은 패킷에 담긴 서버 IP와 서버 포트(port)와 클라이언트 포트(port)를 변조되기 전의 본래의 서버 IP와 본래의 서버 포트(port)와 본래의 클라이언트 포트(port)로 복구하는 단계(주소 복구 단계);를 추가로 포함하는 것을 특징으로 하는 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법.
According to claim 1,
As a result of the judgment in the packet judgment step, if it is determined that they match, the server IP, server port, and client port included in the received packet are changed to the original server IP, original server port, and original server port before being tampered with. Recovering to a client port (port) of (address recovery step); address transformation method performed in an Ethernet driver having an unrecognized NIC function in a 5G Massive network, characterized in that it further comprises.
삭제delete
KR1020220073438A 2022-06-16 2022-06-16 Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network KR102476672B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220073438A KR102476672B1 (en) 2022-06-16 2022-06-16 Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220073438A KR102476672B1 (en) 2022-06-16 2022-06-16 Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network

Publications (1)

Publication Number Publication Date
KR102476672B1 true KR102476672B1 (en) 2022-12-12

Family

ID=84391659

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220073438A KR102476672B1 (en) 2022-06-16 2022-06-16 Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network

Country Status (1)

Country Link
KR (1) KR102476672B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101174304B1 (en) * 2011-12-16 2012-08-16 (주)넷맨 Method for block and defense arp spoofing
KR101896453B1 (en) * 2018-04-06 2018-09-07 주식회사 넷앤드 A gateway-based access control system for improving security and reducing constraint of remote access application
KR20200002599A (en) * 2018-06-29 2020-01-08 한국전자통신연구원 Server apparatus, client apparatus and method for communicating based on network address mutation

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101174304B1 (en) * 2011-12-16 2012-08-16 (주)넷맨 Method for block and defense arp spoofing
KR101896453B1 (en) * 2018-04-06 2018-09-07 주식회사 넷앤드 A gateway-based access control system for improving security and reducing constraint of remote access application
KR20200002599A (en) * 2018-06-29 2020-01-08 한국전자통신연구원 Server apparatus, client apparatus and method for communicating based on network address mutation

Similar Documents

Publication Publication Date Title
Bruschi et al. S-ARP: a secure address resolution protocol
US7058718B2 (en) Blended SYN cookies
EP1714434B1 (en) Addressing method and apparatus for establishing host identity protocol (hip) connections between legacy and hip nodes
EP1547344B1 (en) Server, device, and communication system connected to the internet
CN101420423A (en) Network system
JP2001313679A (en) Local area network correspondence network address conversion gate way using local ip address and conversion impossible port address
CN101005355B (en) Secure communication system and method of IPV4/IPV6 integrated network system
JP2004519117A (en) Providing secure network access for short-range wireless computing devices
US9356952B2 (en) Packet redirection in a communication network
JP4468453B2 (en) Optimized round trip confirmation
CN112332901B (en) Heaven and earth integrated mobile access authentication method and device
US20050135359A1 (en) System and method for IPSEC-compliant network address port translation
JP3587633B2 (en) Network communication method and apparatus
KR102136082B1 (en) Server apparatus, client apparatus and method for communicating based on network address mutation
KR102476672B1 (en) Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network
Arkko et al. Enhancing privacy with shared pseudo random sequences
KR102488501B1 (en) Network address mutation method performed by ethernet driver of broadband router with unrecognized nic
US11171915B2 (en) Server apparatus, client apparatus and method for communication based on network address mutation
KR20150060050A (en) Network device and method of forming tunnel of network device
CN115426116B (en) Dynamic key-based encrypted hash hopping method
JP2018157513A (en) Communication control device, communication control system, communication control method, and communication control program
Cardwell Interpreting Network Protocols
Sarma Securing IPv6’s neighbour and router discovery using locally authentication process
Rafiee et al. Challenges and Solutions for DNS Security in IPv6
WO2023199189A1 (en) Methods and systems for implementing secure communication channels between systems over a network

Legal Events

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