KR102136082B1 - Server apparatus, client apparatus and method for communicating based on network address mutation - Google Patents

Server apparatus, client apparatus and method for communicating based on network address mutation Download PDF

Info

Publication number
KR102136082B1
KR102136082B1 KR1020190056476A KR20190056476A KR102136082B1 KR 102136082 B1 KR102136082 B1 KR 102136082B1 KR 1020190056476 A KR1020190056476 A KR 1020190056476A KR 20190056476 A KR20190056476 A KR 20190056476A KR 102136082 B1 KR102136082 B1 KR 102136082B1
Authority
KR
South Korea
Prior art keywords
address
client device
anonymous
server device
external
Prior art date
Application number
KR1020190056476A
Other languages
Korean (ko)
Other versions
KR20200002599A (en
Inventor
박경민
우사무엘
문대성
구기종
김익균
이주영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/452,682 priority Critical patent/US11171915B2/en
Publication of KR20200002599A publication Critical patent/KR20200002599A/en
Application granted granted Critical
Publication of KR102136082B1 publication Critical patent/KR102136082B1/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
    • 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/2592Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • 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/1433Vulnerability analysis

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

서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법이 개시된다. 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 서버 장치와 클라이언트 장치의 네트워크 주소 변이 기반 통신 방법에 있어서, 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하는 단계; 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키는 단계 및 변이된 외부 주소에 기반하여 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 단계를 포함한다.A server device, a client device, and a network address variation based communication method are disclosed. The network address variation-based communication method according to an embodiment of the present invention, in a network address variation-based communication method of a server device and a client device, sets an external address of a network interface that receives a packet from the client device, and the network interface Setting an internal address of the virtual network interface for forwarding a packet received through the virtual network interface; And shifting the external address based on a preset network address variation rule and forwarding a packet received from the client device to the virtual network interface based on the changed external address to communicate with the client device.

Description

서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법 {SERVER APPARATUS, CLIENT APPARATUS AND METHOD FOR COMMUNICATING BASED ON NETWORK ADDRESS MUTATION}Server device, client device and network address variation-based communication method {SERVER APPARATUS, CLIENT APPARATUS AND METHOD FOR COMMUNICATING BASED ON NETWORK ADDRESS MUTATION}

본 발명은 네트워크 환경에서의 공격자의 공격 행위를 방어하는 기술에 관한 것으로 보다 상세하게는, 공격자들의 정찰(reconnaissance) 행위를 무력화 시키기 위한 능동적 방어 기술 및 네트워크 주소 변이 기술에 관한 것이다.The present invention relates to a technique for defending an attacker's attack behavior in a network environment, and more particularly, to an active defense technique and a network address variation technique for neutralizing attacker's reconnaissance behavior.

실제 공격에 앞서 공격자들은 목표 시스템의 취약점을 확보하기 위해 정찰(reconnaissance) 단계를 수행한다. 공격자들은 목표 시스템의 정보(호스트 이름, MAC/IP 주소, 운영체제 종류 및 버전, 개방된 포트, 운영 중인 서비스 타입)를 획득하기 위해 스니핑 (sniffing) 기술과 프로빙(probing) 기술 등을 이용하여 정찰 행위를 수행한다.Prior to the actual attack, attackers perform a reconnaissance step to secure the vulnerability of the target system. Attackers conduct reconnaissance using sniffing and probing techniques to obtain target system information (host name, MAC/IP address, operating system type and version, open port, operating service type). To perform.

MTD(Moving Target Defense) 기술의 목표는 보호대상을 각종 속성을 덜 고정적(static)이고, 덜 동질적(homogeneous)이며, 그리고 덜 결정적(deterministic)으로 만들어서 공격자의 정찰 행위 작업량(workload)을 증가시키는 것이다. 결과적으로는 하나의 성공적인 공격의 유사성을 감소시키고 시스템에 역동성을 추가하여 공격의 생명(lifetime)을 감소시켜 대규모 공격 피해를 제한하게 된다. MTD의 주요 기술은 다이나믹 네트워크(dynamic networks), 다이나믹 플랫폼(dynamic platforms), 다이나믹 런타임 환경(dynamic runtime environments), 다이나믹 소프트웨어(dynamic software), 그리고 다이나믹 데이터(dynamic data)로 구분된다.The goal of the MTD (Moving Target Defense) technology is to increase the workload of an attacker's reconnaissance action by making the protected object various properties less static, less homogeneous, and less deterministic. will be. As a result, it reduces the similarity of a single successful attack and adds dynamics to the system, reducing the attack's life time, thereby limiting the attack damage. The main technologies of MTD are divided into dynamic networks, dynamic platforms, dynamic runtime environments, dynamic software, and dynamic data.

네트워크 주소 변이 관련 기존 연구들은 네트워크 주소 생성과 변이를 위해 NAT(network address translation) 형태의 주소 변이 방법과 암호알고리즘을 이용한 주소 생성 방법을 사용하고 있다. 그러나 NAT 형태의 주소 변이의 경우 주소 변이 행위가 게이트웨이와 같은 네트워크 장비에서 수행되기 때문에 보호대상 서버와 동일한 서브네트워크에 위치한 내부 공격자에게 보호대상 서버의 실제 주소가 노출될 가능성을 내포하고 있다.Previous studies related to network address variation use a network address translation (NAT) address variation method and an address generation method using cryptographic algorithms for network address generation and variation. However, in the case of NAT type address variation, since the address variation action is performed on network equipment such as a gateway, it implies the possibility of the actual address of the protected server being exposed to an internal attacker located in the same subnetwork as the protected server.

도 1은 네트워크 주소 변이 기반 통신 시스템을 나타낸 도면이다.1 is a diagram showing a network address variation based communication system.

도 1을 참조하면, NAT 기반의 네트워크 주소 변이 기술은 네트워크 환경에서 내부 공격자에게 보호대상 서버의 네트워크 주소가 노출되는 취약점을 내포하고 있다.Referring to FIG. 1, the NAT-based network address variation technique implies a vulnerability in which a network address of a protected server is exposed to an internal attacker in a network environment.

암호알고리즘을 사용하여 네트워크 주소를 생성하는 경우 서로 다른 입력에 대한 동일한 출력 값이 생성되는 주소 충돌 문제가 발생할 수 있다. 기존 연구들은 주소 생성 기법은 제안하였지만, 주소 충돌 문제와 주소 동기화에 대한 문제 제기 및 해결 방안을 제안하지 않았다.When generating a network address using a cryptographic algorithm, an address conflict problem in which the same output value for different inputs is generated may occur. Previous studies proposed an address generation method, but did not propose and resolve an address conflict problem and address synchronization problems.

본 발명에서는 다이나믹 네트워크(dynamic networks) 기술의 세부 기술인 네트워크 주소 변이 기술을 제안하며, 보다 상세하게는 네트워크 주소 변이에서 가장 중요한 두 가지 이슈를 해결한 안전성과 효율성이 강화된 네트워크 주소 변이 방법을 제안한다.The present invention proposes a network address variation technique, which is a detailed technique of dynamic networks, and more specifically, proposes a network address variation method with enhanced safety and efficiency that solves the two most important issues in network address variation. .

한편, 한국공개특허 제 10-2005-0102892 호"다수 개의 아이피 주소를 사용하는 통신 시스템 및 통신방법"는 하나의 통신 시스템에 다수 개의 IP(Internet Protocol) 주소를 사용하여 외부의 네트워크와 통신을 수행할 수 있도록 하는 통신 시스템에 관하여 개시하고 있다.On the other hand, Korean Patent Publication No. 10-2005-0102892 "Communication System and Communication Method Using Multiple IP Addresses" performs communication with an external network using multiple Internet Protocol (IP) addresses in one communication system. Disclosed is a communication system capable of being performed.

그러나, 한국공개특허 제 10-2005-0102892 호는 주소 변경 규칙이 노출되었을 때 공격자로부터의 공격 위험, 주소 변경에 따른 주소 충돌 문제와 주소 동기화에 대한 문제에 있어서 한계가 있다.However, Korean Patent Publication No. 10-2005-0102892 has limitations in terms of an attack risk from an attacker when an address change rule is exposed, an address conflict problem due to address change, and an address synchronization problem.

본 발명은 네트워크 환경에서 공격자의 정찰 행위에 소요되는 비용을 증가시키는 능동적 보안 기술을 제공하는 것을 목적으로 한다.An object of the present invention is to provide an active security technology that increases the cost of an attacker's reconnaissance activity in a network environment.

또한, 본 발명은 네트워크에 소속된 정당한 개체들 사이의 안전한 통신 채널을 제공하는 것을 목적으로 한다.In addition, the present invention aims to provide a secure communication channel between legitimate entities belonging to the network.

상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 서버 장치와 클라이언트 장치의 네트워크 주소 변이 기반 통신 방법에 있어서, 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하는 단계; 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키는 단계 및 변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 단계를 포함한다.Network address variation-based communication method according to an embodiment of the present invention for achieving the above object is a network address variation-based communication method of the server device and the client device, the external address of the network interface for receiving a packet from the client device Setting, and setting an internal address of the virtual network interface for forwarding a packet received through the network interface to a virtual network interface; And mutating the external address based on a preset network address variation rule, and forwarding a packet received from the client device to the virtual network interface through the mutated external address to communicate with the client device.

이 때, 상기 네트워크 주소 변이 기반 통신 방법은 상기 외부 주소를 변이시키는 단계 이후에, 상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 단계를 더 포함할 수 있다.At this time, the communication method based on the network address variation may further include changing the gateway address of the virtual network interface to the mutated external address after the step of mutating the external address.

이 때, 상기 통신하는 단계는 상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.In this case, the communicating step may map the external address and the MAC address (Media Access Control address) of the server device at the time when the connection between the server device and the client device is established, and record it in a table.

이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있다.In this case, each of a plurality of external addresses may be mapped and recorded in the table.

이 때, 상기 통신하는 단계는 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치 및 상기 클라이언트 장치 간의 네트워크 연결을 유지시킬 수 있다.At this time, the communicating step may maintain a network connection between the server device and the client device by receiving a packet from the client device through any one of a plurality of external addresses recorded in the table.

이 때, 상기 네트워크 주소 변이 기반 통신 방법은 상기 설정하는 단계 이전에, 상기 서버 장치가 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 단계를 더 포함할 수 있다.At this time, the network address variation based communication method further includes generating, before the setting step, anonymous address information used by the server device to set an external address of a network interface that receives a packet from the client device. can do.

이 때, 상기 익명 주소 정보를 생성하는 단계는 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, the generating of the anonymous address information may generate anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.

이 때, 상기 외부 주소를 변이시키는 단계는 상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경시킬 수 있다.At this time, the step of mutating the external address uses any one of a plurality of anonymous IP addresses and a plurality of anonymous ports included in the anonymous address information every predetermined period according to the predetermined address variation rule. To change the external address.

이 때, 상기 익명 주소 정보를 생성하는 단계는 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소 및 익명 포트를 포함하는 익명 주소 정보를 생성하는 단계를 더 포함할 수 있다.At this time, the generating of the anonymous address information may further include generating anonymous address information including a plurality of anonymous IP addresses and anonymous ports from random values using a predetermined function.

이 때, 상기 네트워크 주소 변이 기반 통신 방법은 상기 익명 주소 정보를 생성하는 단계 이전에, 상기 서버 장치가 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 서버 장치와 클라이언트 장치가 세션 키를 공유하는 단계를 더 포함할 수 있다.At this time, in the network address variation based communication method, before the step of generating the anonymous address information, the server device performs authentication with the client device, and the server device and the client device that have successfully authenticated share the session key. It may further include.

이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.At this time, the predetermined function may generate the random value using the session key.

또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 서버 장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신할 수 있다.In addition, the server device according to an embodiment of the present invention for achieving the above object includes at least one processor and an execution memory for storing at least one program executed by the one or more processors, the at least one program Sets an external address of a network interface that receives a packet from a client device, sets an internal address of the virtual network interface to forward packets received through the network interface to a virtual network interface, and sets a predetermined network address variation rule The external address may be changed based on the packet, and a packet received from the client device may be forwarded to the virtual network interface through the mutated external address to communicate with the client device.

이 때, 상기 하나 이상의 프로세서는 상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시킬 수 있다.At this time, the one or more processors may change the gateway address of the virtual network interface to a mutated external address.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.In this case, the at least one program may map the external address and the MAC address (Media Access Control address) of the server device at the time when the connection with the client device is established and record the result in a table.

이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있다.In this case, each of a plurality of external addresses may be mapped and recorded in the table.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치와의 네트워크 연결을 유지시킬 수 있다.At this time, the at least one program may maintain a network connection with the client device by receiving a packet from the client device through any one of a plurality of external addresses recorded in the table.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the at least one program may generate anonymous address information used to set an external address of a network interface that receives a packet from the client device.

이 때, 상기 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, the at least one program may generate anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.

이 때, 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 클라이언트 장치가 세션 키를 공유할 수 있다.At this time, the at least one program may perform authentication with the client device, and the client device that has successfully authenticated may share the session key.

이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.At this time, the predetermined function may generate the random value using the session key.

또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 클라이언트 장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 서버 장치에게 패킷을 송신하기 위해 서버 장치의 네트워크 인터페이스의 외부 주소를 설정하고, 기설정된 주소 변이 규칙에 따라 변이되는 외부 주소를 목적지 주소로 설정하여 상기 서버 장치의 외부 주소를 통해 패킷을 송신하여 통신할 수 있다.In addition, the client device according to an embodiment of the present invention for achieving the above object includes at least one processor and an execution memory for storing at least one program executed by the one or more processors, the at least one program Sets the external address of the network interface of the server device to transmit the packet to the server device, sets the external address to be changed as the destination address according to the preset address variation rule, and transmits the packet through the external address of the server device. Can communicate.

본 발명은 네트워크 환경에서 공격자의 정찰 행위에 소요되는 비용을 증가시키는 능동적 보안 기술을 제공할 수 있다.The present invention can provide an active security technology that increases the cost of an attacker's reconnaissance activity in a network environment.

또한, 본 발명은 네트워크에 소속된 정당한 개체들 사이의 안전한 통신 채널을 제공할 수 있다.In addition, the present invention can provide a secure communication channel between legitimate entities belonging to the network.

도 1은 네트워크 주소 변이 기반 통신 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 시스템을 을 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 시퀀스 다이어그램이다.
도 4는 도 3에 도시된 인증 및 세션 키 공유 단계의 일 예를 나타낸 시퀀스 다이어그램이다.
도 5는 도 3에 도시된 네트워크 주소 변이 단계의 일 예를 나타낸 시퀀스 다이어그램이다.
도 6은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 ARP 테이블의 N:1 매핑을 통한 패킷 포워딩을 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 클라이언트 장치를 나타낸 블록도이다.
도 9는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 서버 장치를 나타낸 블록도이다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
1 is a diagram showing a network address variation based communication system.
2 is a block diagram illustrating a network address variation based communication system according to an embodiment of the present invention.
3 is a sequence diagram showing a network address variation based communication method according to an embodiment of the present invention.
FIG. 4 is a sequence diagram illustrating an example of the authentication and session key sharing steps shown in FIG. 3.
5 is a sequence diagram illustrating an example of a network address variation step illustrated in FIG. 3.
6 is a view showing a network address variation based communication method according to an embodiment of the present invention.
7 is a diagram illustrating packet forwarding through N:1 mapping of an ARP table according to an embodiment of the present invention.
8 is a block diagram illustrating a client device for a network address variation based communication method according to an embodiment of the present invention.
9 is a block diagram showing a server apparatus for a network address variation based communication method according to an embodiment of the present invention.
10 is a view showing a computer system according to an embodiment of the present invention.

본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.If described in detail with reference to the accompanying drawings the present invention. Here, repeated descriptions, well-known functions that may unnecessarily obscure the subject matter of the present invention, and detailed description of the configuration will be omitted. Embodiments of the present invention are provided to more fully describe the present invention to those skilled in the art. Therefore, the shape and size of elements in the drawings may be exaggerated for a more clear description.

명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.Throughout the specification, when a part “includes” a certain component, this means that other components may be further included rather than excluding other components unless specifically stated to the contrary.

이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

도 2는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 시스템을 을 나타낸 블록도이다.2 is a block diagram illustrating a network address variation based communication system according to an embodiment of the present invention.

도 2를 참조하면, 네트워크 주소 변이 기반 통신 시스템은 인증 서버(100), 클라이언트 장치(200) 및 보호 대상 서버(서버 장치)(300)를 포함할 수 있다.Referring to FIG. 2, the network address variation based communication system may include an authentication server 100, a client device 200, and a protected server (server device) 300.

인증 서버(100)는 클라이언트 장치(200) 및 보호 대상 서버(300)를 인증할 수 있다.The authentication server 100 may authenticate the client device 200 and the protected server 300.

클라이언트 장치(200) 및 보호 대상 서버(300)는 인증 서버(100)에게 인증을 요청하고 인증 받은 개체들 사이에서면 세션 키 생성 및 분배를 수행할 수 있다.The client device 200 and the protected server 300 may request authentication from the authentication server 100 and perform session key generation and distribution among authenticated entities.

이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 서브 네트워크에서 사용하기 위한 세션 키를 생성하고 분배할 수 있다.At this time, the client device 200 and the protected server 300 may generate and distribute a session key for use in a sub-network.

이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 세션 키를 이용하여 익명 주소 정보를 생성할 수 있다.At this time, the client device 200 and the protected server 300 may generate anonymous address information using the session key.

또한, 클라이언트 장치(200) 및 보호 대상 서버(300)는 네트워크 주소 변이 네트워크 주소 추적을 수행할 수 있다.In addition, the client device 200 and the protected server 300 may perform network address variation network address tracking.

이 때, 보호 대상 서버(300)는 익명 주소 정보를 생성하고, 익명 주소 정보를 이용하여 보호 대상 서버(300)의 네트워크 주소를 변이시킬 수 있다.At this time, the protected server 300 may generate anonymous address information, and change the network address of the protected server 300 using the anonymous address information.

이 때, 클라이언트 장치(200)는 익명 주소 정보를 생성하고, 익명 주소 정보를 이용하여 보호 대상 서버(300)의 변이되는 네트워크 주소를 추적할 수 있다.At this time, the client device 200 may generate anonymous address information and track the mutated network address of the protected server 300 using the anonymous address information.

이 때, 서버 장치(300)는 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the server device 300 may generate anonymous address information used to set an external address of a network interface that receives a packet from the client device 200.

이 때, 클라이언트 장치(200)는 상기 서버 장치(300)가 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 추적하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the client device 200 may generate anonymous address information used to track the external address of the network interface through which the server device 300 receives the packet from the client device 200.

이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 기설정된 네트워크 주소 변이 규칙에 기반하여 네트워크 주소를 변이시키면서 패킷을 송수신 하는 보안 통신을 수행할 수 있다.At this time, the client device 200 and the server to be protected 300 may perform secure communication that transmits and receives packets while changing the network address based on a preset network address variation rule.

도 3은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 시퀀스 다이어그램이다. 도 4는 도 3에 도시된 인증 및 세션 키 공유 단계의 일 예를 나타낸 시퀀스 다이어그램이다. 도 5는 도 3에 도시된 네트워크 주소 변이 단계의 일 예를 나타낸 시퀀스 다이어그램이다.3 is a sequence diagram showing a network address variation based communication method according to an embodiment of the present invention. FIG. 4 is a sequence diagram illustrating an example of the authentication and session key sharing steps shown in FIG. 3. 5 is a sequence diagram illustrating an example of a network address variation step illustrated in FIG. 3.

도 3을 참조하면, 본 발명의 일실시예에 따른 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법은 익명 주소 정보 생성, 네트워크 주소 동기화 및 통신 운영 방법을 수행할 수 있다. 본 발명은 크게 두 가지 단계(인증 및 세션 키 분배 단계 및 네트워크 주소 변이 및 보안 통신 단계)를 포함할 수 있다.Referring to FIG. 3, a server device, a client device, and a network address variation-based communication method according to an embodiment of the present invention may perform an anonymous address information generation, network address synchronization, and communication operation method. The present invention can largely include two steps (authentication and session key distribution step and network address variation and secure communication step).

표 1은 본 발명에서 사용하는 Notation에 대한 설명이다.Table 1 is a description of Notation used in the present invention.

Server_p_jServer_p_j 서브네트워크 "p"에 소속된 j 번째 보호대상 서버J th protected server belonging to subnetwork "p" Client_p_iClient_p_i "p" 서브네트워크에 소속된 보호대상 서버 "Server_p_j"에게 서비스를 제공받는 클라이언트 "i"Client "i", which is served by the protected server "Server_p_j" belonging to the "p" subnetwork SK_p_kSK_p_k Server_p_j 와 Client_p_i들이 "k" 번째 세션에서 익명 주소를 생성할 때 사용하는 비밀 키(대칭키)Secret key (symmetric key) used by Server_p_j and Client_p_i to generate an anonymous address in the "k" th session IP_j_k_cIP_j_k_c 보호대상 서버 "j"가 "k"번째 세션에서 "c"번째 주소 변이를 수행할 때 사용하는 IP 주소IP address used when the protected server "j" performs the "c" th address shift in the "k" th session PORT_j_s_k_cPORT_j_s_k_c 보호대상 서버 "j"에서 제공하는 서비스 "s"가 "k"번째 세션에서 "c"번째 주소 변이를 수행할 때 사용하는 Port [단일 보호대상 서버에서는 다수의 서비스를 제공할 수 있다. 서비스들은 프로세스단위로 구분되며 개별 프로세스는 각 각 서로 다른 Port를 사용해야한다.]The port used when the service "s" provided by the protected server "j" performs the "c"-th address shift in the "k"-th session [a single-protected server can provide multiple services. Services are divided into process units, and each process must use a different port.] Tp T p 서브네트워크 "p"에서 사용하는 표준 시간 (시:분:초)Standard time used in subnetwork "p" (hours:minutes:seconds) αp α p 서브네트워크 "p"에서 소속된 보호대상 서버의 개수Number of protected servers belonging to subnetwork "p" αp_j α p_j Server_p_j에서 운영 중인 프로세스의 개수Number of processes running on Server_p_j CTRh CTR h 익명 값 생성 함수 재귀적 호출 횟수Anonymous value generation function Recursive call count HX( )H X () "x"를 키로 사용하는 일 방향 해시 함수, 익명 값 생성에 사용
HX: {0,1}* ⅹ key → {0,1}256
One-way hash function using "x" as key, used to generate anonymous values
H X : {0,1} * ⅹ key → {0,1} 256
VV IP생성에 사용될 일 방향 해시 함수의 출력 값, 익명 값Output value of one-way hash function to be used for IP generation, anonymous value vXvX n-bit로 분할 된 익명 값 VAnonymous value V divided by n-bit V'V' vX들 중 중복된 값을 제거한 집합Duplicate values among vXs V''V'' αp개 만큼 생성된 익명 IP의 집합A set of anonymous IPs generated by α p PP Port 생성에 사용될 일 방향 해시 함수의 출력 값, 익명 값Output value of one-way hash function to be used for port creation, anonymous value pXpX 16-bit로 분할 된 익명 값 PAnonymous value P divided by 16-bit P'P' pX들 중 중복된 값을 제거한 집합A set that removes duplicate values among pXs P''P'' αp_j개 만큼 생성된 익명 Port의 집합A set of anonymous ports created by α p_j f( )f() 익명 주소(IP, Port) 생성 함수Anonymous address (IP, Port) generation function

단계(S110) 및 단계(S120)는 익명 주소 생성 및 동기화를 위한 사전 준비 단계이다.Steps S110 and S120 are preliminary steps for generating and synchronizing anonymous addresses.

단계(S110) 및 단계(S120)는 일반적인 IT환경에서 사용중인 개체 인증 기법(인증서 기반, 비 인증서 기반)과 키 관리(분배 및 업데이트)기법을 사용할 수 있다.Steps (S110) and step (S120) may use the object authentication technique (certificate based, non-certificate based) and key management (distribution and update) techniques in use in a general IT environment.

단계(S110) 및 단계(S120)는 다양한 개체 인증 및 키 관리 기법을 사용할 수 있다.Step S110 and step S120 may use various object authentication and key management techniques.

단계(S110) 및 단계(S120)는 익명 주소 정보를 생성하기 위해 사용되는 세션 키를 생성하고 공유할 수 있다.Steps S110 and S120 may generate and share a session key used to generate anonymous address information.

도 4를 참조하면, 단계(S110)는 인증 서버(100)가 클라이언트 장치(200)와 서버 장치(300)의 개체 인증을 수행할 수 있다.Referring to FIG. 4, in step S110, the authentication server 100 may perform object authentication of the client device 200 and the server device 300.

단계(S110)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(보호 대상 서버, Server_p_j)(300)가 인증 서버(Authentication Server)(100)로부터 인증을 받을 수 있다.In step S110, the client device Client_p_i 200 and the server device (protected server, Server_p_j) 300 may be authenticated by the authentication server 100.

이 때, 단계(S110)는 인증 과정을 통과한 개체들만 단계(S120)의 세션 키 생성 및 분배 과정에 진입할 수 있다.At this time, in step S110, only the objects that have passed the authentication process can enter the session key generation and distribution process in step S120.

단계(S120)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(보호 대상 서버, Server_p_j)(300)가 세션 키 생성 및 분배를 수행할 수 있다.In step S120, the client device (Client_p_i) 200 and the server device (protected server, Server_p_j) 300 may perform session key generation and distribution.

이 때, 단계(S120)는 정상적으로 개체 인증과 세션 키 분배 과정을 종료하면 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)는 모두 동일한 그룹 세션 키 "SK_p_k"를 공유할 수 있다. 단계(S120)는 시스템이 시작되는 최초 단계이므로 0번째 세션에 상응할 수 있다. SK_p_k는 익명 주소 생성에 사용되는 비밀 키로써, 정당한 개체들만 획득할 수 있다.At this time, in step S120, when the object authentication and the session key distribution process are normally ended, the client device (Client_p_i) 200 and the server device (Server_p_j) 300 may share the same group session key "SK_p_k". . The step S120 may correspond to the 0th session since the system is the first step to start. SK_p_k is a secret key used to generate an anonymous address, and only legitimate entities can be obtained.

이 때, 단계(S120)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)가 자신이 소속된 서브네트워크 "p"에서 사용할 세션 키를 생성 하고 분배할 수 있다.At this time, in step S120, the client device (Client_p_i) 200 and the server device (Server_p_j) 300 may generate and distribute a session key to be used in the subnetwork "p" to which they belong.

이 때, 단계(S120)는 인증 서버(100) 또는 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)가 자체적으로 세션 키를 생성하여 익명 주소 정보를 생성하기 위한 그룹 세션 키 "SK_p_k"를 분배 할 수 있다.At this time, step S120 is the authentication server 100 or the client device (Client_p_i) 200 and the server device (Server_p_j) 300 generates a session key itself to generate a group session key to generate anonymous address information." SK_p_k" can be distributed.

단계(S110)과 단계(S120)을 모두 정상 종료한 개체들은 0번째 세션에서 사용할 세션 키 "SK_p_0"을 분배 받아 익명 주소 정보 생성에 사용할 수 있다.Objects that have successfully ended both steps (S110) and (S120) can receive the session key "SK_p_0" to be used in the 0th session and use it to generate anonymous address information.

이 때, k번째 세션에 사용할 세션 키 "SK_p_k"는 세션 키 업데이트 과정을 추가로 수행하여 생성할 수 있다.At this time, the session key "SK_p_k" to be used for the k-th session may be generated by additionally performing a session key update process.

도 5를 참조하면, 단계(S130)는 네트워크 주소 변이에 사용할 익명 주소 정보를 생성하고 동기화 시킬 수 있다Referring to FIG. 5, step S130 may generate and synchronize anonymous address information to be used for network address variation.

이 때, 단계(S130)는 익명 주소 정보를 이용하여 서버 장치(Server_p_j)(300)의 네트워크 주소를 변이시킬 수 있다.At this time, step S130 may change the network address of the server device (Server_p_j) 300 using the anonymous address information.

단계(S130)는 익명 주소 정보를 생성하고 동기화 시키는 단계(S131) 및 단계(S131)에서 생성한 익명 주소를 이용하여 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)의 네트워크 주소를 변이하는 단계(S132)를 포함할 수 있다.Step (S130) is the network address of the client device (Client_p_i) 200 and the server device (Server_p_j) 300 using the anonymous addresses generated in steps S131 and S131 of generating and synchronizing anonymous address information. It may include the step of mutating (S132).

단계(S130)는 서버 장치(Server_p_j)(300)와 클라이언트 장치(Client_p_i)(200)의 상호작용으로 수행될 수 있다. Step S130 may be performed by the interaction of the server device (Server_p_j) 300 and the client device (Client_p_i) 200.

단계(130)의 상세한 설명을 시작하기 앞서, 본 발명의 일실시예에 따른 서버 장치(300)와 클라이언트 장치(200)의 가정 사항을 설명한다.Before starting the detailed description of step 130, assumptions of the server device 300 and the client device 200 according to an embodiment of the present invention will be described.

예를 들어, 서버 장치(Server_p_j)(300)가 소속된 서브네트워크 "p"는 IPv4 주소체계를 사용할 수 있다.For example, the subnetwork "p" to which the server device (Server_p_j) 300 belongs may use an IPv4 addressing system.

서브넷 마스크(Subnet mask)로 xxx.xxx.xxx.xxx를 사용할 때, 마스크(mask)는 β bit이고, 가용 IP 주소 대역은 0 ~ 2n-1 이며, n = 32 - β 로 산출할 수 있다.When using xxx.xxx.xxx.xxx as the subnet mask, the mask is β bit, the available IP address band is 0 to 2 n -1, and n = 32-β can be calculated. .

예를 들어, 서브넷 마스크(Subnet mask)가 255.255.255.0 일경우, β = 24이고 n = 8이므로, 가용 IP 주소 대역은 0~255 일 수 있다. 이 경우 생성되는 익명 주소의 크기는 8bit이나, 네트워크 주소와 게이트웨이 주소 그리고 브로드캐스트 주소 3개를 제외한 나머지 주소만 서브 네트워크내의 호스트에게 할당할 수 있다.For example, when the subnet mask is 255.255.255.0, since β = 24 and n = 8, the available IP address band may be 0 to 255. In this case, the size of the generated anonymous address is 8 bits, but only addresses other than the network address, gateway address, and broadcast address 3 can be assigned to hosts in the subnetwork.

이 때, 해당 서브네트워크에 존재하는 서버 장치(Server_p_j)(300)의 수는 αp 개일 수 있다.At this time, the number of server devices (Server_p_j) 300 existing in the corresponding subnetwork may be α p .

서버 장치(Server_p_j)(300)들은 정상적으로 개체 인증을 통과한 후 세션 키를 분배 받은 상태일 수 있다. The server devices (Server_p_j) 300 may be in a state in which a session key is distributed after normally passing object authentication.

이 때, 모든 서버 장치(300)들과 클라이언트 장치(200)들은 시간 동기화가 되어 있을 수 있으며, 위의 과정을 통해 분배 받은 세션 키를 기반으로 기 약속된 규칙에 따라 상호 간의 메시지 교환 절차가 없이 스스로 주소를 생성할 수 있다.At this time, all the server devices 300 and the client devices 200 may be time-synchronized, and there is no message exchange procedure between each other according to a predetermined rule based on the session key distributed through the above process. You can create your own address.

다시 도 5를 참조하면, 단계(S131)는 익명 주소 정보를 생성할 수 있다(Pseudonym Address Generation).Referring back to FIG. 5, step S131 may generate anonymous address information (Pseudonym Address Generation).

즉, 단계(S131)는 서버 장치(300)가 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.That is, in step S131, the server device 300 may generate anonymous address information used to set an external address of a network interface that receives a packet from the client device 200.

이 때, 단계(S131)는 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, step S131 may generate anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.

이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 무작위 값을 생성할 수 있다.At this time, the predetermined function may generate a random value using the session key.

이 때, 단계(S131)는 익명 주소 정보로 사용하기 위한 무작위 값(랜덤 값)을 생성할 수 있다.At this time, step S131 may generate a random value (random value) for use as anonymous address information.

이 때, 단계(S131)는 랜덤 값을 생성하기 위해 일 방향 해시 함수를 사용할 수 있다.At this time, step S131 may use a one-way hash function to generate a random value.

수학식 1은 랜덤 값을 생성하는 알고리즘(일방향 해시 함수)의 일 예를 나타낸 것을 알 수 있다.It can be seen that Equation 1 shows an example of an algorithm (one-way hash function) generating a random value.

[수학식 1][Equation 1]

hSK_p_k(Tp || CTRh) = Vh SK_p_k (T p ||CTR h ) = V

함수 hSK_p_k( )는 SK_k를 비밀키로 사용하는 일 방향 해시 함수로써 출력 값의 크기는 사용하는 일 방향 해시 함수에 따라 가변적일 수 있다.The function h SK_p_k () is a one-way hash function that uses SK_k as a secret key, and the size of the output value can be variable depending on the one-way hash function used.

또한, 단계(S131)는 익명 IP 를 생성할 수 있다.In addition, step S131 may generate an anonymous IP.

이 때, 단계(S131)는 αp 개의 서로 다른 n-bit 익명 IP를 생성할 수 있다.At this time, step S131 may generate α p different n-bit anonymous IPs.

이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 자신이 소속된 서브네트워크 "p"에 존재하는 모든 서버 장치(Server_p_j)(300) (자신 포함)의 개수(αp 개)만큼 익명 IP를 생성할 수 있다. 해당 서브네트워크의 서브넷 마스크(subnet mask)가 xxx.xxx.xxx.xxx이고 마스크(mask)가 β bit일 때 서버 장치(Server_p_j)(300)는 n-bit 익명 IP 가 필요할 수 있다.At this time, in step S131, the number of server devices (Server_p_j) 300 (including oneself) in the subnetwork “p” to which the server device (Server_p_j) 300 belongs (α p ) You can create an anonymous IP. When the subnet mask of the corresponding subnetwork is xxx.xxx.xxx.xxx and the mask is β bit, the server device (Server_p_j) 300 may need an n-bit anonymous IP.

이 때, 단계(S131)는 랜덤 값 V를 익명 IP로 사용하기 위해서 V를 n-bit 크기로 분할하고 중복된 값을 제거할 수 있다.At this time, in step S131, in order to use the random value V as an anonymous IP, V may be divided into n-bit sizes and duplicate values may be removed.

이 때, 단계(S131)는 중복된 값을 제거한 후 n-bit 크기의 익명 IP를 αp 개 생성하여 주소 변이에 사용할 익명 IP를 생성할 수 있다. N-bit 크기의 서로 다른 익명 IP를 α 개 생성하는 알고리즘은 수학식 2와 같이 나타낼 수 있다.At this time, in step S131, after removing the duplicated value, α p anonymous n-bit anonymous IPs are generated to generate an anonymous IP to be used for address variation. The algorithm for generating α different anonymous IPs of N-bit size can be expressed as in Equation 2.

[수학식 2][Equation 2]

f(hSK_p_k(Tp || CTRh)) = {v1, v2, ..., vα} f(h SK_p_k (T p || CTR h )) = {v1, v2, ..., v α }

함수 f( )는 N-bit 크기의 서로 다른 익명 IP를 αp 를 생성할 때까지 수학식1을 재귀적으로 호출하는 함수일 수 있다.The function f() may be a function that recursively calls Equation 1 until α p is generated for different anonymous IPs of N-bit size.

단계(S131)는 먼저 V 를 n-bit 크기로 분할할 수 있다.Step S131 may first divide V into n-bit sizes.

V = {v1, v2, ..., vX}V = {v1, v2, ..., vX}

이 때, 단계(S131)는 V가 n-bit의 배수가 아닐 경우 나머지 bit는 V에서 제거할 수 있다.At this time, in step S131, if V is not a multiple of n-bits, the remaining bits can be removed from V.

이 때, 단계(S131)는 분할된 V의 원소들 중 중복된 값 삭제 할 수 있다.At this time, step S131 may delete duplicate values among the divided elements of V.

V' = {v1, v2, ..., vY} (Y=<X)V'= {v1, v2, ..., vY} (Y=<X)

이 때, 단계(S131)는 Y가 αp 보다 작으면 CTRh 를 1만큼 증가시킨 후 (수학식 1)을 재귀적으로 호출할 수 있다.At this time, in step S131, Y is α p If it is smaller, CTR h can be increased by 1 and then (Equation 1) can be called recursively.

이 때, 단계(S131)는 Y = αp 가 될 때까지 상기 과정을 재귀적으로 수행하여 n-bit 크기의 αp 개 익명 IP를 생성할 수 있다.At this time, step (S131) is Y = α p The process can be performed recursively until n can generate n p -bit anonymous IPs of size n.

V'' = {v1, v2, ..., vαp}V'' = {v1, v2, ..., vα p }

또한, 단계(S131)는 익명 Port 를 생성할 수 있다.In addition, step S131 may create an anonymous port.

이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 자신이 운영 중인 프로세스 중 네트워크 서비스를 제공하는 프로세스 개수(αp_j개)만큼 익명 포트(Port)를 생성할 수 있다. 일반적으로 포트(Port)는 0~65535 사이에 결정될 수 있다.At this time, in step S131, the server device (Server_p_j) 300 may generate an anonymous port (Port) as many as the number of processes (α p_j ) that provide network services among processes in which it is operating. In general, the port (Port) can be determined between 0 to 65535.

이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 16-bit 익명 Port를 αp_j개 생성할 수 있다. 익명 포트(Port)를 생성하는 방법은 아래와 같다.At this time, in step S131, the server device (Server_p_j) 300 may generate α p_j 16-bit anonymous ports. The method of creating an anonymous port is as follows.

랜덤 값 P를 익명 주소로 사용하기 위해서 P를 16-bit 크기로 분할하고 중복된 값을 제거할 수 있다. 중복된 값을 제거한 후 16-bit 크기의 익명 주소를 αp_j개 생성하면 포트(Port) 변이에 사용할 익명 포트(Port)를 생성할 수 있다. 16-bit 크기의 서로 다른 익명 포트(Port)를 αp_j개 생성하는 알고리즘은 수학식 3과 같이 나타낼 수 있다.To use the random value P as an anonymous address, the P can be divided into 16-bit sizes and duplicate values can be removed. After removing duplicate values, if you create α p_j 16-bit anonymous addresses, you can create an anonymous port to use for port mutation. The algorithm for generating α p_j 16 different anonymous ports of 16-bit size can be expressed as in Equation 3.

[수학식 3][Equation 3]

f(hSK_p_k(Tp || CTRh)) = {p1, p2, ..., pαp_j}f(h SK_p_k (T p || CTR h )) = {p1, p2, ..., pα p_j }

이 때, 단계(S131)는 먼저 P 를 16-bit 크기로 분할할 수 있다.At this time, step S131 may first divide P into a 16-bit size.

P = {p1, p2, ..., pX} P = {p1, p2, ..., pX}

이 때, 단계(S131)는 P가 16-bit의 배수가 아닐 경우 나머지 bit는 P에서 제거할 수 있다.At this time, in step S131, if P is not a multiple of 16-bit, the remaining bits can be removed from P.

이 때, 단계(S131)는 분할된 P의 원소들 중 중복된 값 삭제할 수 있다.At this time, step S131 may delete duplicate values among the divided elements of P.

P' = {p1, p2, ..., pY} (Y=<X)P'= {p1, p2, ..., pY} (Y=<X)

이 때, 단계(S131)는 Y가 αp_j보다 작으면 CTRR 을 1만큼 증가시킨 후 수학식 3을 재귀적으로 호출할 수 있다.At this time, in step S131, if Y is less than α p_j , CTR R may be increased by 1 and then Equation 3 may be recursively called.

이 때, 단계(S131)는 Y = αp_j가 될 때까지 상기 과정을 재귀적으로 수행하여 16-bit 크기의 αp_j개 익명 주소를 생성할 수 있다.At this time, step S131 may recursively perform the above process until Y = α p_j to generate 16-bit α p_j anonymous addresses.

P'' = {p1, p2, ..., pαp_j}P'' = {p1, p2, ..., pα p_j }

또한, 단계(S131)는 익명 주소 정보를 저장할 수 있다.In addition, step S131 may store anonymous address information.

이 때, 단계(S131)는 K번째 세션에서 C번째 주소 변이에 사용할 익명 IP를 α 개 생성한 서버 장치(Server_p_j)(300)가 V'' = {v1, v2, ..., vαp}를 자신의 저장소에 안전하게 익명 주소 정보로 저장할 수 있다.At this time, in step S131, the server device (Server_p_j) 300 generating α anonymous IPs to be used for the C-th address variation in the Kth session is V'' = {v1, v2, ..., vα p } You can safely store it as anonymous address information in your own repository.

이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 주소 저장소를 안전하게 관리할 수 있다.At this time, in step S131, the server device (Server_p_j) 300 may safely manage the address storage.

이 때, 단계(S131)는 K번째 세션에서 C번째 주소 변이에 사용할 익명 Port를 αp_j개 생성한 서버 장치(Server_p_j)(300)가 P'' = {p1, p2, ..., pαp_j}를 자신의 저장소에 안전하게 익명 주소 정보로 저장할 수 있다.At this time, in step S131, the server device ( Server_p_j ) 300 generating α p_j anonymous ports to be used for the C-th address variation in the K-th session P'' = {p1, p2, ..., pα p_j } Can be safely stored in your repository as anonymous address information.

이 때, 단계(S131)는 서버 장치(Server_p_j)(300)는 주소 저장소를 안전하게 관리할 수 있다.At this time, in step S131, the server device Server_p_j 300 may safely manage the address storage.

또한, 단계(S132)는 네트워크 주소 변이를 수행할 수 있다(Network Address Mutation).In addition, step S132 may perform network address variation (Network Address Mutation).

즉, 단계(S132)는 먼저 서버 장치(300)가 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정할 수 있다.That is, in step S132, the server device 300 first sets an external address of a network interface that receives a packet from the client device 200, and forwards the packet received through the network interface to a virtual network interface. You can set the internal address of the virtual network interface.

이 때, 단계(S132)는 주소 변이를 시행하기 앞서 서버 장치(300)가 외부 주소가 변이되어도 클라이언트 장치(200)와 통신하기 위한 히든 터널(Hidden Tunnel)을 구성하기 위하여 아래와 같은 절차대로 네트워크 설정을 수행할 수 있다.At this time, in step S132, in order to configure a hidden tunnel to communicate with the client device 200 even if the external address is changed by the server device 300 before the address change is performed, the network is set as follows. You can do

이 때, 단계(S132)는 먼저 독립적인 MAC 주소(MAC address)를 갖는 가상 네트워크 인터페이스(Hidden Interface) 생성할 수 있다.At this time, step S132 may first generate a virtual network interface (Hidden Interface) having an independent MAC address (MAC address).

이 때, 단계(S132)는 가상 네트워크 인터페이스에 임의의 IP network(Hidden Address)를 내부 주소로 설정(IP주소, netmask) 할 수 있다.At this time, step S132 may set an arbitrary IP network (Hidden Address) to the virtual network interface as an internal address (IP address, netmask).

이 때, 단계(S132)는 가상 인터페이스의 디폴트 게이트웨이(Default Gateway)를 주소 변이가 시행될 네트워크 인터페이스(External Interface)의 IP 주소(External Address)를 외부 주소로 설정할 수 있다.At this time, step S132 may set the default gateway of the virtual interface as the external address of the IP address of the network interface to which address variation is to be performed.

이 때, 단계(S132)는 클라이언트 장치(200)로부터 수신하는 인커밍(incoming) 패킷 중에서, 익명 주소 정보로 생성된 Port를 통해 들어오는 패킷을 가상 네트워크 인터페이스(Hidden Interface) 로 포워딩 하기 위한 Destination NAT (IP/Port)를 목적지 주소로 설정할 수 있다.At this time, step S132 is a destination NAT for forwarding a packet coming through a port generated with anonymous address information from among incoming packets received from the client device 200 to a virtual network interface (Hidden Interface). IP/Port) as the destination address.

이 때, 단계(S132)는 클라이언트 장치(200)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 가상 네트워크 인터페이스(Hidden Interface)와의 연결에서 발생된 패킷에 대한 Source NAT (IP/Port)를 소스 주소로 설정할 수 있다.At this time, in step S132, among the outgoing packets transmitted to the client device 200, Source NAT (IP/Port) for the packets generated in connection with the virtual network interface (Hidden Interface) as a source address Can be set.

또한, 단계(S132)는 클라이언트 장치(200)가 네트워크 설정을 수행할 수 있다.In addition, in step S132, the client device 200 may perform network setting.

이 때, 단계(S132)는 서버 장치(300)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로의 연결에서 발생된 패킷에 대한 Destination NAT (IP/Port)을 목적지 주소로 설정할 수 있다.At this time, in step S132, among the outgoing packets transmitted to the server device 300, destination NAT (IP/) for packets generated in connection to the virtual network interface of the server device 300 (Hidden Interface). Port) as the destination address.

또한, 단계(S132)는 주소 변이 (Server-side) 및 주소 추적 (Client-side)을 수행할 수 있다.In addition, step S132 may perform address variation (server-side) and address tracking (client-side).

즉, 단계(S132)는 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시킬 수 있다.That is, step S132 may change the external address based on a preset network address variation rule.

이 때, 단계(S132)는 서버 장치(300)가 익명 주소 정보 생성 단계(S131)의 절차를 바탕으로 기설정된 특정 시점과 시간 주기에 따라서 지속적으로 네트워크 인터페이스의 외부 주소를 변경할 수 있다.At this time, in step S132, the server device 300 may continuously change the external address of the network interface according to a predetermined specific time point and time period based on the procedure of the anonymous address information generation step S131.

이 때, 단계(S132)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경할 수 있다.At this time, step (S132) is the server device 300 according to the predetermined address variation rule every predetermined period, any one of a plurality of anonymous IP addresses included in the anonymous address information and a plurality of anonymous ports The external address can be changed using one.

이 때, 상기 기설정된 함수는 단계(S110)에서 상기 서버 장치(300)가 상기 클라이언트 장치(200)와 인증을 수행하고, 인증이 성공한 서버 장치(300)와 클라이언트 장치(200)가 공유한 세션 키를 이용하여 상기 무작위 값을 생성할 수도 있다.In this case, the predetermined function is a session shared by the server device 300 with the client device 200 in step S110, and the successful authentication between the server device 300 and the client device 200. The random value may be generated using a key.

이 때, 단계(S132)는 클라이언트 장치(200)도 서버 장치(300)와 동일한 주소 생성 메커니즘을 내장하여 지속적으로 바뀌도록 설정되어 서버 장치(300)의 네트워크 주소를 추적할 수 있다.At this time, in step S132, the client device 200 is also set to continuously change by embedding the same address generation mechanism as the server device 300 to track the network address of the server device 300.

이 때, 단계(S132)는 서버 장치(300)와 클라이언트 장치(200)는 외부 주소가 변경 될 때마다 연결이 유실되는 것을 방지하기 위하여 다음과 같은 네트워크 설정을 갱신(Update)할 수 있다. 단계(S132)의 모든 과정은 기설정된 주소 변이 규칙에 따라 주소 변이 주기(특정 시간)에 서버 장치(300)와 클라이언트 장치(200)가 동시에 수행할 수 있다.At this time, in step S132, the server device 300 and the client device 200 may update the following network settings in order to prevent the connection from being lost whenever the external address is changed. All the processes of step S132 may be simultaneously performed by the server device 300 and the client device 200 in an address variation period (a specific time) according to a predetermined address variation rule.

먼저, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스의 외부 주소(External Address)(eth0의 IP)를 기설정된 네트워크 주소 변이 규칙에 기반하여 변경할 수 있다.First, in step S132, the server device 300 may change the external address of the network interface (the IP of eth0) based on a preset network address variation rule.

이 때, 단계(S132)는 서버 장치(300)가 가상 네트워크 인터페이스(Hidden Interface)의 게이트웨이(Default Gateway) 주소를 상기에서 변이된 외부 주소(External Address)로 변경할 수 있다.At this time, step S132, the server device 300 may change the gateway address of the virtual network interface (Hidden Interface) to the external address changed from the above (External Address).

이 때, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 수신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하는 상태의 패킷을 Destination NAT 으로 포워딩 하기 위한 설정 테이블 업데이트할 수 있다.At this time, in step S132, among the incoming packets received by the server device 300 through the external address to the network interface, forwarding the packet in a state that satisfies the address variation rule to the destination NAT Settings table for update.

이 때, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 송신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하지 않는 상태의 패킷을 드롭(DROP) 시키기 위한 설정 테이블 업데이트할 수 있다.At this time, in step S132, among the incoming packets transmitted by the server device 300 through an external address to the network interface, a packet in a state that does not satisfy the address variation rule is dropped (DROP). You can update the configuration table to make it work.

이 때, 단계(S132)는 생성된 연결(Connection)들 중에서 의심스러운 연결을 구분하고, 의심스러운 연결을 강제로 끊어버리기 위해서 커넥션 필터링을 설정할 수 있다.At this time, step S132 may set the connection filtering to distinguish the suspicious connection from among the generated connections and to forcibly disconnect the suspicious connection.

이 때, 단계(S132)는 다양한 커넥션 필터링 기법으로 의심스러운 연결을 구분해 낼 수 있으며, 커넥션 필터링 기법에 따라서 매 주소 변이 주기마다 강제로 연결을 끊어 낼 수 있다.At this time, in step S132, suspicious connections may be distinguished by various connection filtering techniques, and connections may be forcibly disconnected at every address variation cycle according to the connection filtering technique.

이 때, 단계(S132)는 별도의 커넥션 모니터링 프로세스를 통해 새로운 연결이 생성될 때마다 유효성 검사를 수행할 수도 있다At this time, step S132 may perform validation every time a new connection is created through a separate connection monitoring process.

이 때, 단계(S132)는 클라이언트 장치(200)의 특정한 소스 포트(Source Port)를 설정하고, 설정된 소트 포트(Source Port)와 일치하지 않는 연결이 수행되면 의심스러운 연결로 판단할 수 있다.In this case, step S132 sets a specific source port of the client device 200, and if a connection that does not match the set source port is performed, it may be determined as a suspicious connection.

따라서, 소스 포트(Source Port)는 본래 OS에 정의된 범위 내에서 순차적으로 지정되는 것이지만 이것을 특정지음으로써 공격자는 서버의 IP:Port 외에 자신의 소스 포트(Source Port)마저도 특정 지어야 하는 부담을 갖게 될 수 있다. 결국 공격자가 히든 터널(Hidden Tunnel)에 접속하고 그것을 유지하기 위해 알아내야 하는 정보는 목적지 IP(Destination IP), 목적지 포트(Destination Port), 소스 포트(Source Port)이고, C-class 기준 이에 대한 공격자의 히든 터널(Hidden Tunnel) 예측 복잡도는 수학식 4와 같이 나타낼 수 있다.Therefore, the source port (source port) is originally specified within the range defined in the OS, but by specifying this, the attacker will have the burden of specifying their own source port (source port) in addition to the server's IP:Port. Can. Eventually, the information that an attacker needs to find in order to access and maintain a hidden tunnel is the destination IP, destination port, and source port, and an attacker against this based on C-class The hidden tunnel prediction complexity of can be expressed by Equation (4).

[수학식 4][Equation 4]

Figure 112019049279779-pat00001
Figure 112019049279779-pat00001

K, l, m은 네트워크 상태나 서비스 포트(Port)에서 제외시킬 요구가 있는 것들을 고려한 상수 값에 상응할 수 있다.K, l, and m may correspond to constant values taking into account network conditions or those that need to be excluded from the service port.

또한, 단계(S132)는 클라이언트 장치(200)가 기설정된 네트워크 주소 변이 규칙에 기반하여 서버 장치(300)에서 변이되는 외부 주소를 추적할 수 있다.In addition, in step S132, the client device 200 may track the external address that is changed in the server device 300 based on a preset network address variation rule.

이 때, 단계(S132)는 클라이언트 장치(200)가 응용(Application)에서 서버 장치(300)의 내부 주소(Hidden Address)로 연결을 생성하기 위한 패킷의 목적지 주소(Destination Address)를, 서버 장치(300)의 외부 주소(External Address)로 바꿔주기 위한 Destination NAT 설정 테이블을 업데이트할 수 있다.At this time, in step S132, the client device 200 sets the destination address of the packet for creating a connection from the application to the internal address (Hidden Address) of the server device 300, the server device ( 300) You can update the Destination NAT configuration table to change to the External Address.

이 때, 단계(S132)는 클라이언트 장치(200)가 Destination NAT 가 된 패킷의 Source Port를 기설정된 포트(Port)(기설정된 변이 주기마다 새로 생성하여 바뀔 수 있음)로 바꿔주는 Source NAT 테이블을 업데이트할 수 있다.At this time, step S132 updates the source NAT table in which the client device 200 replaces the source port of the packet that has become the destination NAT with a preset port (which may be created and changed at every predetermined variation cycle). can do.

이 때, 단계(S132)는 클라이언트 장치(200)가 TCP 연결(Connection) 상태가 "SYN_SENT" 인 커넥션 트래킹(Connection Tracking) 정보를 삭제할 수 있다.At this time, step S132, the client device 200 may delete the connection tracking (Connection Tracking) information of the TCP connection (Connection) state is "SYN_SENT".

이 때, 단계(S132)는 클라이언트 장치(200)가 TCP[SYN] 패킷이 서버 장치(300)에 도달하기 전에 주소 변이가 발생한 경우, RTO가 지난 후 재전송되는 TCP[SYN] 패킷의 목적지(Destination)가, 이전 주기 때 TCP[SYN] 패킷이 보내지면서 생성된 SYN_SENT 커넥션 트래킹(Connection Tracking) 테이블에 기록될 수 있다.At this time, in step S132, when the address variation occurs before the client device 200 reaches the TCP [SYN] packet to the server device 300, the destination of the TCP [SYN] packet that is retransmitted after the RTO has passed. ) May be recorded in the SYN_SENT connection tracking table generated when a TCP[SYN] packet is sent during the previous cycle.

따라서, 단계(S132)는 클라이언트 장치(200)가 외부 주소가 변이된 이후의 서버 장치(300)의 외부 주소가 아닌, 변이 되기 이전의 서버 장치(300)의 외부 주소로만 계속해서 TCP[SYN] 패킷을 보내기 때문에 3-웨이 헨드쉐이크(3-way handshake) 실패를 복구(Recovery)시키기 위한 목적으로 수행될 수 있다. 이것은 곧 주소 변이 기술에 최소 주기를 산술적으로 정의할 수 있는 기준이 될 수 있으며, TCP[SYN] 패킷이 서버에 도달하는 시간은 RTT/2 이므로, 본 기술의 이론적(이상적)으로 가능한 최소 주소 변이 주기는 수학식 5와 같이 나타낼 수 있다.Therefore, in step S132, the client device 200 continues to only the external address of the server device 300 before the mutation, not the external address of the server device 300 after the external address is changed, TCP[SYN]. Because it sends a packet, it can be performed for the purpose of recovering a 3-way handshake failure. This can be a criterion for arithmetically defining the minimum period in the address variation technique, and since the time for the TCP[SYN] packet to reach the server is RTT/2, the theoretically (ideally) minimum address variation possible in this technique The period can be expressed as Equation 5.

[수학식 5][Equation 5]

Figure 112019049279779-pat00002
Figure 112019049279779-pat00002

수학식 5에서, k는 서버 장치(300)와 클라이언트 장치(200)가 이상적으로 오차 없는 시간 동기화를 할 수 있고, 모든 주소 변이 프로세싱 시간이 동일하다면 0이 되지만, 현실적으로 불가능하기 때문에 k는 시간 동기화의 미세한 오차, 그리고 서버 장치(300)와 클라이언트 장치(200)의 주소 변이 프로세싱 시간을 고려해 추가되어야 하는 상수 값에 상응할 수 있다.In Equation 5, k is 0 when the server device 300 and the client device 200 are ideally capable of time synchronization without error, and if all address variation processing times are the same, it is 0. It may correspond to a constant value to be added in consideration of the minute error of and the address variation processing time of the server device 300 and the client device 200.

또한, 단계(S140)는 서버 장치(300)와 클라이언트 장치(200)가 변이되는 외부 주소를 통해 보안 통신을 수행할 수 있다(Secure Communication).In addition, in step S140, the server device 300 and the client device 200 may perform secure communication through external addresses (Secure Communication).

이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하는 경우, 상기 패킷을 상기 가상 네트워크 인터페이스로 포워딩할 수 있다.In this case, step S140 includes the server device 300 in the first source address information of the predefined client device 200 and the packet received from the client device 200 based on the predetermined address variation rule. When the second source address information of the client device 200 matches, the packet may be forwarded to the virtual network interface.

이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하지 않는 경우, 상기 클라이언트 장치(200)의 접근을 차단할 수 있다.In this case, step S140 includes the server device 300 in the first source address information of the predefined client device 200 and the packet received from the client device 200 based on the predetermined address variation rule. If the second source address information of the client device 200 does not match, access to the client device 200 may be blocked.

이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 상기 내부 주소에 상응하는 서버 장치(300)의 소스 주소 정보를 패킷에 포함시켜 상기 클라이언트 장치(200)에게 송신할 수 있다.At this time, in step S140, the server device 300 includes the source address information of the server device 300 corresponding to the internal address in a packet based on the preset address variation rule to the client device 200. I can send it.

이 때, 단계(S140)는 패킷 도청(Packet Eavesdropping)을 통한 서버 추적을 방지할 수 있다.At this time, step S140 may prevent server tracking through packet eavesdropping.

이 때, 단계(S140)는 네트워크 내부에 침투한 공격자가 서버 장치(300)와 클라이언트 장치(200)의 트래픽을 모니터링하여 패킷 도청(Packet Eavesdropping)을 통해 IP 패킷의 헤더를 보고 현재 서버 장치(300)의 접속 가능 주소가 무엇인지 판단하는 공격 모델에 대응할 수 있다. At this time, in step S140, an attacker who has penetrated the network monitors the traffic of the server device 300 and the client device 200 to see the header of the IP packet through packet eavesdropping, and the current server device 300 ) Can respond to an attack model that determines what a reachable address is.

예를 들어, 서버 장치(300)의 주소가 A1 ~ A10으로 변한다고 가정했을 때, A1에서 형성된 연결(Connection)에서는 패킷의 목적지(Destination)와 소스(Source)의 IP에 서버 장치(300)의 IP가 A1으로 기록될 것이다. 그 후 서버 장치(300)의 주소가 A2 ~ A10으로 바뀌는 동안 해당 연결(Connection)이 지속된다 하더라도 패킷 헤더에 기록된 서버 장치(300)의 주소는 A1 때의 것으로 기록될 수 있다.For example, assuming that the address of the server device 300 changes from A1 to A10, in the connection formed in A1, the destination of the packet and the IP of the source (Source) of the server device 300 IP will be recorded as A1. Thereafter, even if the connection is continued while the address of the server device 300 is changed from A2 to A10, the address of the server device 300 recorded in the packet header may be recorded as in A1.

즉, 현재 서버의 주소가 무엇이던 간에 이전에 맺은 연결에 대한 외부 주소로 네트워크 통신을 하게 될 수도 있는 것이다. 그러면 공격자가 A1이 지난 시점에서는 아무리 패킷 도청(Packet Eavesdropping)을 한다 하더라도 서버 장치(300)의 현재 주소를 알 수 없게 될 수 있다.In other words, whatever the address of the current server, network communication may be performed with the external address for the previously established connection. Then, at the point when A1 passes, no matter how much packet eavesdropping occurs, the current address of the server device 300 may not be known.

다만, 공격자가 A1 주기가 끝나기 이전에 패킷 도청(Packet Eavesdropping)을 통해서 서버 장치(300)의 주소를 알아내는 것은 유효하며, 다음 주소 변이 주기에 해당 연결(Connection)을 제거하기 전 까지는 공격에 유효한 시간을 확보한 것으로 간주할 수 있다.However, it is valid for an attacker to find out the address of the server device 300 through packet eavesdropping before the end of the A1 cycle, and it is effective for the attack until the corresponding address is removed in the next address variation cycle. It can be considered as having time.

따라서, 본 발명은 서버 장치(300)의 주소와 다른 패킷이 해당 서버 장치(300)에 도착하게 하기 위해서, ARP(Address Resolution Protocol) 테이블의 IP와 MAC에 대한 N:1 매핑을 이용할 수 있다. Accordingly, the present invention may use an N:1 mapping of IP and MAC of an Address Resolution Protocol (ARP) table to allow a packet different from the address of the server device 300 to arrive at the corresponding server device 300.

서버 장치(300)의 MAC 주소를 MAC[S]라 하고 IP 주소가 IP_T1[S] ~ IP_T10[S] 까지 변한다고 가정했을 때, IP_T1[S]에서 Connection이 맺어지면 ARP 테이블에는 {IP_T1[S] : MAC[S]} 가 기록되고, 이 후 서버 장치(300)의 IP 주소가 계속 바뀌면서 통신이 계속되면 ARP 테이블에는 {IP_T1[S]~ IP_T10[S] : MAC[S]} 이 기록될 수 있다. 따라서, 네트워크 상에서 IP 주소가 다르다 하더라도 일단 서버 장치(300)의 네트워크 인터페이스(External Interface)까지는 패킷이 도달할 수 있다(MAC은 고정되어 있으므로).Assuming that the MAC address of the server device 300 is called MAC[S] and the IP address changes from IP_T1[S] to IP_T10[S], when a connection is established from IP_T1[S], the ARP table displays {IP_T1[S ]: MAC[S]} is recorded. After that, if the IP address of the server device 300 continues to change and communication continues, {IP_T1[S]~ IP_T10[S]: MAC[S]} will be recorded in the ARP table. Can. Therefore, even if the IP address is different on the network, the packet can reach the network interface (External Interface) of the server device 300 (because the MAC is fixed).

이 후, OS의 지역 패킷 처리 흐름(Local Packet Processing Flow)과 초기 네트워크 설정에서 설정해 둔 Destination NAT 테이블에 의하여, 패킷이 OS 계층으로 올라가자마자 Destination IP 주소가 내부 주소(Hidden Address)로 바뀔 수 있고, 다음 절차에서 상기 패킷이 서버 장치(300)의 IP인지 판단할 수 있다. 서버 장치(300)는 네트워크 인터페이스(External Interface) 외에도 초기 네트워크 설정 과정 에서 생성한 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)가 있기 때문에, 자신의 패킷 임을 인식하고 IP계층을 통과하여 상위 레이어로 올라가게 될 수 있다.Thereafter, according to the Local Packet Processing Flow of the OS and the Destination NAT table set in the initial network configuration, as soon as the packet goes up to the OS layer, the Destination IP address can be changed to an internal address, In the next procedure, it may be determined whether the packet is the IP of the server device 300. Since the server device 300 has a virtual network interface (Hidden Interface) of the server device 300 created in the initial network setting process in addition to the network interface (External Interface), it recognizes that it is its own packet and passes through the IP layer to the upper layer. Can go up.

상기 기법은 ARP 테이블에서 N:1 매핑을 기반으로 하기 때문에 특정 서버 장치(300)의 IP 주소 변위 범위인 N 중에 한 개라도 다른 서버 장치가 차지하게 된다면 연결(Connection)이 끊어지기 때문에 주소 변이 서브 네트워크에 할당된 주소 범위를 각각의 주소 변이 서버 장치(300)들이 나눠 갖고 침범하지 말아야 한다. 이것이 적용된 기술에서의 C-class 내의 N개의 서버 장치(300) 기준, 공격자의 히든 터널(Hidden Tunnel)의 예측 복잡도는 수학식 6과 같이 나타낼 수 있다.Since the above technique is based on N:1 mapping in the ARP table, if any one of N, which is an IP address displacement range of a specific server device 300, is occupied by another server device, the connection is disconnected, so the address variation sub The address range allocated to the network should not be invaded by each address variation server device 300. Based on the N server devices 300 in the C-class in the technology to which it is applied, the predicted complexity of the attacker's Hidden Tunnel can be expressed as Equation 6.

[수학식 6][Equation 6]

Figure 112019049279779-pat00003
Figure 112019049279779-pat00003

즉, 단계(S140)는 상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.That is, step S140 may map the external address and the MAC address (Media Access Control address) of the server device at the time when the connection between the server device and the client device is established and record it in a table.

이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있고, 상기 테이블은 상기 ARP 테이블에 상응할 수 있다.In this case, each of a plurality of external addresses may be mapped and recorded in the table, and the table may correspond to the ARP table.

이 때, 단계(S140)는 서버 장치(300)가 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치(300) 및 상기 클라이언트 장치(200) 간의 네트워크 연결을 유지시킬 수 있다.도 6은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 도면이다.At this time, step S140, the server device 300 receives the packet from the client device through any one of a plurality of external addresses recorded in the table, the server device 300 and the client device 200 It is possible to maintain a network connection therebetween. FIG. 6 is a diagram illustrating a network address variation based communication method according to an embodiment of the present invention.

도 6을 참조하면, 상기에서 설명한 바와 같이 서버 장치(300)와 클라이언트 장치(200)가 초기 네트워크 설정이 완료된 상태에서, 클라이언트 장치(200)가 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로 접속하여 히든 터널(Hidden Tunnel)을 생성할 때 발생되는 패킷의 흐름은 도 6과 같이 나타낼 수 있다. 도 6에 도시된 바와 같이 히든 터널(Hidden Tunnel)로 생성된 연결(Connection)은 서버의 IP 주소인 외부 주소(External Address(eth0의 IP))의 IP가 변하더라도 유실되지 않고, 네트워크 인터페이스(External Interface)만 외부에서 직접적으로 접근할 수 있다.Referring to FIG. 6, as described above, the server device 300 and the client device 200 have completed initial network configuration, and the client device 200 has a virtual network interface of the server device 300 (Hidden Interface). The flow of packets generated when a hidden tunnel is generated by accessing with can be represented as shown in FIG. 6. As shown in FIG. 6, the connection created by the Hidden Tunnel is not lost even if the IP of the server's IP address (External Address (eth0 IP)) changes, and the network interface (External) Interface) can be directly accessed from the outside.

이 때, 클라이언트 장치(200)가 특정 시간 대에 특정 조건을 만족하여 서버 장치(300)의 네트워크 인터페이스(External Interface)에 접근하게 되면, 서버 장치(300)는 유효한 클라이언트 장치(200)의 연결 시도라고 판단하여, 패킷을 가상 네트워크 인터페이스로 포워딩 하여 히든 터널(Hidden Tunnel)로 연결시켜줄 수 있다. 여기서 언급된 특정 시간/특정 조건은 공격자에게 공개되지 않는 숨겨진 정보(Hidden information)이고, 기설정된 주소 변이 규칙에 관한 정보일 수 있다.At this time, when the client device 200 meets a specific condition at a specific time to access the network interface (external interface) of the server device 300, the server device 300 attempts to connect the valid client device 200 It is determined that the packet can be forwarded to the virtual network interface to connect to the Hidden Tunnel (Hidden Tunnel). The specific time/specific condition mentioned herein is hidden information that is not disclosed to the attacker, and may be information regarding a predetermined address variation rule.

도 7은 본 발명의 일실시예에 따른 ARP 테이블의 N:1 매핑을 통한 패킷 포워딩을 나타낸 도면이다.7 is a diagram illustrating packet forwarding through N:1 mapping of an ARP table according to an embodiment of the present invention.

도 7을 참조하면, 본 발명의 일실시예에 따른 서버 장치(300), 클라이언트 장치(200) 및 네트워크 주소 변이 기반 통신 방법은 패킷 도청(Packet Eavesdropping)을 통한 서버 추적을 방지할 수 있다.Referring to FIG. 7, the server device 300, the client device 200, and the network address variation based communication method according to an embodiment of the present invention can prevent server tracking through packet eavesdropping.

이 때, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 네트워크 내부에 침투한 공격자가 서버 장치(300)와 클라이언트 장치(200)의 트래픽을 모니터링하여 패킷 도청(Packet Eavesdropping)을 통해 IP 패킷의 헤더를 보고 현재 서버 장치(300)의 접속 가능 주소가 무엇인지 판단하는 공격 모델에 대응할 수 있다. At this time, in the network address variation-based communication method according to an embodiment of the present invention, an attacker who penetrates the network monitors the traffic of the server device 300 and the client device 200, and the IP is transmitted through packet eavesdropping. By looking at the header of the packet, it is possible to cope with an attack model that determines what an accessible address of the current server device 300 is.

예를 들어, 서버 장치(300)의 주소가 A1 ~ A10으로 변한다고 가정했을 때, A1에서 형성된 연결(Connection)에서는 패킷의 목적지(Destination)와 소스(Source)의 IP에 서버 장치(300)의 IP가 A1으로 기록될 것이다. 그 후 서버 장치(300)의 주소가 A2 ~ A10으로 바뀌는 동안 해당 연결(Connection)이 지속된다 하더라도 패킷 헤더에 기록된 서버 장치(300)의 주소는 A1 때의 것으로 기록될 수 있다.For example, assuming that the address of the server device 300 changes from A1 to A10, in the connection formed in A1, the destination of the packet and the IP of the source (Source) of the server device 300 IP will be recorded as A1. Thereafter, even if the connection is continued while the address of the server device 300 is changed from A2 to A10, the address of the server device 300 recorded in the packet header may be recorded as in A1.

즉, 현재 서버의 주소가 무엇이던 간에 이전에 맺은 연결에 대한 외부 주소로 네트워크 통신을 하게 될 수도 있는 것이다. 그러면 공격자가 A1이 지난 시점에서는 아무리 패킷 도청(Packet Eavesdropping)을 한다 하더라도 서버 장치(300)의 현재 주소를 알 수 없게 될 수 있다.In other words, whatever the address of the current server, network communication may be performed with the external address for the previously established connection. Then, at the point when A1 passes, no matter how much packet eavesdropping occurs, the current address of the server device 300 may not be known.

다만, 공격자가 A1 주기가 끝나기 이전에 패킷 도청(Packet Eavesdropping)을 통해서 서버 장치(300)의 주소를 알아내는 것은 유효하며, 다음 주소 변이 주기에 해당 연결(Connection)을 제거하기 전 까지는 공격에 유효한 시간을 확보한 것으로 간주할 수 있다.However, it is valid for an attacker to find out the address of the server device 300 through packet eavesdropping before the end of the A1 cycle, and it is effective for the attack until the corresponding address is removed in the next address variation cycle. It can be considered as having time.

따라서, 본 발명은 서버 장치(300)의 주소와 다른 패킷이 해당 서버 장치(300)에 도착하게 하기 위해서, ARP(Address Resolution Protocol) 테이블의 IP와 MAC에 대한 N:1 매핑을 이용할 수 있다. Accordingly, the present invention may use an N:1 mapping of IP and MAC of an Address Resolution Protocol (ARP) table to allow a packet different from the address of the server device 300 to arrive at the corresponding server device 300.

서버 장치(300)의 MAC 주소를 MAC[S]라 하고 IP 주소가 IP_T1[S] ~ IP_T10[S] 까지 변한다고 가정했을 때, IP_T1[S]에서 Connection이 맺어지면 ARP 테이블에는 {IP_T1[S] : MAC[S]} 가 기록되고, 이 후 서버 장치(300)의 IP 주소가 계속 바뀌면서 통신이 계속되면 ARP 테이블에는 {IP_T1[S]~ IP_T10[S] : MAC[S]} 이 기록될 수 있다. 따라서, 네트워크 상에서 IP 주소가 다르다 하더라도 일단 서버 장치(300)의 네트워크 인터페이스(External Interface)까지는 패킷이 도달할 수 있다(MAC은 고정되어 있으므로).Assuming that the MAC address of the server device 300 is called MAC[S] and the IP address changes from IP_T1[S] to IP_T10[S], when a connection is established from IP_T1[S], the ARP table displays {IP_T1[S ]: MAC[S]} is recorded. After that, if the IP address of the server device 300 continues to change and communication continues, {IP_T1[S]~ IP_T10[S]: MAC[S]} will be recorded in the ARP table. Can. Therefore, even if the IP address is different on the network, the packet can reach the network interface (External Interface) of the server device 300 (because the MAC is fixed).

이 후, OS의 지역 패킷 처리 흐름(Local Packet Processing Flow)과 초기 네트워크 설정에서 설정해 둔 Destination NAT 테이블에 의하여, 패킷이 OS 계층으로 올라가자마자 Destination IP 주소가 내부 주소(Hidden Address)로 바뀔 수 있고, 다음 절차에서 상기 패킷이 서버 장치(300)의 IP인지 판단할 수 있다. 서버 장치(300)는 네트워크 인터페이스(External Interface) 외에도 초기 네트워크 설정 과정 에서 생성한 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)가 있기 때문에, 자신의 패킷 임을 인식하고 IP계층을 통과하여 상위 레이어로 올라가게 될 수 있다.Thereafter, according to the Local Packet Processing Flow of the OS and the Destination NAT table set in the initial network configuration, as soon as the packet goes up to the OS layer, the Destination IP address can be changed to an internal address, In the next procedure, it may be determined whether the packet is the IP of the server device 300. Since the server device 300 has a virtual network interface (Hidden Interface) of the server device 300 created in the initial network setting process in addition to the network interface (External Interface), it recognizes that it is its own packet and passes through the IP layer to the upper layer. Can go up.

상기 기법은 ARP 테이블에서 N:1 매핑을 기반으로 하기 때문에 특정 서버 장치(300)의 IP 주소 변위 범위인 N 중에 한 개라도 다른 서버 장치가 차지하게 된다면 연결(Connection)이 끊어지기 때문에 주소 변이 서브 네트워크에 할당된 주소 범위를 각각의 주소 변이 서버 장치(300)들이 나눠 갖고 침범하지 말아야 한다. 이것이 적용된 기술에서의 C-class 내의 N개의 서버 장치(300) 기준, 공격자의 히든 터널(Hidden Tunnel)의 예측 복잡도는 상기 수학식 6과 같이 나타낼 수 있다.Since the above technique is based on N:1 mapping in the ARP table, if any one of N, which is an IP address displacement range of a specific server device 300, is occupied by another server device, the connection is disconnected, so the address variation sub The address range allocated to the network should not be invaded by each address variation server device 300. Based on the N server devices 300 in the C-class in the technology to which it is applied, the predicted complexity of the attacker's hidden tunnel can be expressed as Equation (6).

도 8은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 클라이언트 장치를 나타낸 블록도이다.8 is a block diagram illustrating a client device for a network address variation based communication method according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 클라이언트 장치(200)는 키 저장부(210), 제1 랜덤 값 생성부(220), 익명 IP 생성부(230), 제2 랜덤 값 생성부(240), 익명 포트 생성부(250), 익명 주소 저장부(260) 및 NAT 설정 정보 업데이트부(270)를 포함할 수 있다.Referring to FIG. 8, the client device 200 for a network address variation based communication method according to an embodiment of the present invention includes a key storage unit 210, a first random value generation unit 220, and an anonymous IP generation unit ( 230 ), a second random value generator 240, an anonymous port generator 250, an anonymous address storage unit 260, and a NAT setting information update unit 270.

키 저장부(210)는 서버 장치(300)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 세션 키를 생성하여 분배 받은 세션 키를 저장할 수 있다.The key storage unit 210 may authenticate the server device 300 through the authentication server 100 and generate a session key to store the distributed session key.

제1 랜덤 값 생성부(220)는 네트워크 주소 변이에 사용하기 위해 익명 IP 생성에 사용되는 제1 랜덤 값을 생성할 수 있다.The first random value generator 220 may generate a first random value used for anonymous IP generation for use in network address variation.

익명 IP 생성부(230)는 기설정된 주소 변이 규칙에 따라 세션 키와 제1 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 IP를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The anonymous IP generator 230 may generate an anonymous IP through a one-way hash function using a session key and a first random value according to a preset address variation rule. The detailed generation process is described in step S131.

제2 랜덤 값 생성부(240)는 네트워크 주소 변이에 사용하기 위해 익명 포트 생성에 사용되는 제2 랜덤 값을 생성할 수 있다.The second random value generator 240 may generate a second random value used for generating an anonymous port for use in network address variation.

익명 포트 생성부(250)는 기설정된 주소 변이 규칙에 따라 세션 키와 제2 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 포트를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The anonymous port generator 250 may generate an anonymous port through a one-way hash function using a session key and a second random value according to a predetermined address variation rule. The detailed generation process is described in step S131.

익명 주소 저장부(260)는 생성한 복수개의 익명 IP 주소들과 복수개의 익명 포트들을 익명 주소 정보로 저장할 수 있다.The anonymous address storage unit 260 may store the generated plurality of anonymous IP addresses and a plurality of anonymous ports as anonymous address information.

NAT 설정 정보 업데이트부(270)는 기설정된 주소 변이 규칙에 따라 익명 주소 정보를 이용하여 서버 장치(300)의 네트워크 인터페이스의 외부 주소와 통신하기 위한 목적지 주소를 패킷에 포함시켜 생성할 수 있다.The NAT configuration information update unit 270 may generate a destination address for communicating with an external address of the network interface of the server device 300 in a packet using anonymous address information according to a predetermined address variation rule.

NAT 설정 정보 업데이트부(270)는 기설정된 주소 변이 규칙에 따라 서버 장치(300)의 내부 주소로 포워딩되기 위한 클라이언트 장치(200)의 소스 주소를 패킷에 포함시켜 생성할 수 있다.The NAT configuration information update unit 270 may generate the source address of the client device 200 to be forwarded to the internal address of the server device 300 in a packet according to a preset address variation rule.

NAT 설정 정보 업데이트부(270)는 서버 장치(300)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로의 연결(Connection)에서 발생된 패킷에 대한 Destination NAT (IP/Port)을 목적지 주소로 설정할 수 있다.The NAT setting information update unit 270 is a destination for packets generated in a connection from a server device 300 to a virtual network interface (Hidden Interface) among outgoing packets transmitted to the server device 300. NAT (IP/Port) can be set as the destination address.

이 때, NAT 설정 정보 업데이트부(270)는 서버 장치(300)와 동일한 주소 생성 메커니즘을 내장하여 지속적으로 바뀌도록 설정되어 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 추적할 수 있다.At this time, the NAT configuration information update unit 270 is set to be continuously changed by embedding the same address generation mechanism as the server device 300 to track the external address of the network interface of the server device 300.

도 9는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 서버 장치를 나타낸 블록도이다.9 is a block diagram showing a server apparatus for a network address variation based communication method according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 서버 장치(300)는 키 저장부(310), 제1 랜덤 값 생성부(320), 익명 IP 생성부(330), 제2 랜덤 값 생성부(340), 익명 포트 생성부(350), 익명 주소 저장부(360), 가상 인터페이스 게이트웨이 업데이트부(370), NAT 설정 정보 업데이트부(380) 및 네트워크 주소 변경부(390)를 포함할 수 있다.Referring to FIG. 9, a server device 300 for a network address variation-based communication method according to an embodiment of the present invention includes a key storage unit 310, a first random value generation unit 320, and an anonymous IP generation unit ( 330), the second random value generation unit 340, an anonymous port generation unit 350, an anonymous address storage unit 360, a virtual interface gateway update unit 370, NAT setting information update unit 380 and network address change It may include a portion 390.

키 저장부(310)는 클라이언트 장치(200)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 세션 키를 생성하여 분배 받은 세션 키를 저장할 수 있다.The key storage unit 310 may authenticate the client device 200 through the authentication server 100 and generate a session key to store the distributed session key.

제1 랜덤 값 생성부(320)는 네트워크 주소 변이에 사용하기 위해 익명 IP 생성에 사용되는 제1 랜덤 값을 생성할 수 있다.The first random value generator 320 may generate a first random value used for anonymous IP generation for use in network address variation.

익명 IP 생성부(330)는 기설정된 주소 변이 규칙에 따라 세션 키와 제1 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 IP를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The anonymous IP generator 330 may generate an anonymous IP through a one-way hash function using a session key and a first random value according to a predetermined address variation rule. The detailed generation process is described in step S131.

제2 랜덤 값 생성부(340)는 네트워크 주소 변이에 사용하기 위해 익명 포트 생성에 사용되는 제2 랜덤 값을 생성할 수 있다.The second random value generator 340 may generate a second random value used for generating an anonymous port for use in network address variation.

익명 포트 생성부(350)는 기설정된 주소 변이 규칙에 따라 세션 키와 제2 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 포트를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The anonymous port generator 350 may generate an anonymous port through a one-way hash function using a session key and a second random value according to a preset address variation rule. The detailed generation process is described in step S131.

익명 주소 저장부(360)는 생성한 복수개의 익명 IP 주소들과 복수개의 익명 포트들을 익명 주소 정보로 저장할 수 있다.The anonymous address storage unit 360 may store the generated plurality of anonymous IP addresses and a plurality of anonymous ports as anonymous address information.

가상 인터페이스 게이트웨이 업데이트부(370)는 주소 변이를 시행하기 앞서 외부 주소가 변이되어도 클라이언트 장치(200)와 통신하기 위한 히든 터널(Hidden Tunnel)을 구성하기 위하여 가상 네트워크 인터페이스를 설정할 수 있다.The virtual interface gateway update unit 370 may set a virtual network interface to configure a hidden tunnel to communicate with the client device 200 even if the external address is changed before performing the address variation.

이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 먼저 독립적인 MAC 주소(MAC address)를 갖는 가상 네트워크 인터페이스(Hidden Interface) 생성할 수 있다.At this time, the virtual interface gateway update unit 370 may first create a virtual network interface (Hidden Interface) having an independent MAC address (MAC address).

이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 가상 네트워크 인터페이스에 임의의 IP network(Hidden Address)를 내부 주소로 설정(IP주소, netmask) 할 수 있다.At this time, the virtual interface gateway update unit 370 may set an arbitrary IP network (Hidden Address) to the virtual network interface as an internal address (IP address, netmask).

이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 가상 네트워크 인터페이스(Hidden Interface)의 게이트웨이(Default Gateway) 주소를 상기에서 변이된 외부 주소(External Address)로 변경할 수 있다.At this time, the virtual interface gateway update unit 370 may change the gateway address of the virtual network interface (Hidden Interface) to the external address changed from the above.

NAT 설정 정보 업데이트부(380)는 클라이언트 장치(200)로부터 수신하는 incoming 패킷 중에서, 익명 주소 정보로 생성된 Port를 통해 들어오는 패킷을 가상 네트워크 인터페이스(Hidden Interface) 로 포워딩 하기 위한 Destination NAT (IP/Port)를 목적지 주소로 설정할 수 있다.The NAT setting information update unit 380 is a destination NAT (IP/Port) for forwarding a packet coming through a port generated with anonymous address information among incoming packets received from the client device 200 to a virtual network interface (Hidden Interface). ) As the destination address.

이 때, NAT 설정 정보 업데이트부(380)는 클라이언트 장치(200)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 가상 네트워크 인터페이스(Hidden Interface)로 연결된 연결(Connection)에서 발생된 패킷에 대한 Source NAT (IP/Port)를 소스 주소로 설정할 수 있다.At this time, the NAT setting information update unit 380, among the outgoing (outgoing) packets transmitted to the client device 200, the source NAT for the packet generated in the connection (Connection) connected to the virtual network interface (Hidden Interface) ( IP/Port) as the source address.

이 때, NAT 설정 정보 업데이트부(380)는 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 수신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하는 상태의 패킷을 Destination NAT 으로 포워딩 하기 위한 설정 테이블 업데이트할 수 있다.At this time, the NAT setting information update unit 380 is configured to forward packets in a state that satisfies the address variation rule to the destination NAT among incoming packets received through an external address to the network interface. Tables can be updated.

이 때, NAT 설정 정보 업데이트부(380)는 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 송신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하지 않는 상태의 패킷을 드롭(DROP) 시키기 위한 설정 테이블 업데이트할 수 있다.At this time, the NAT configuration information update unit 380 is used to drop (DROP) packets in an incoming packet transmitted through an external address to a network interface from among addresses that do not satisfy the address variation rule. Settings table can be updated.

네트워크 주소 변경부(390)는 가상 인터페이스의 디폴트 게이트웨이(Default Gateway)를 주소 변이가 시행될 네트워크 인터페이스(External Interface)의 IP 주소(External Address)를 외부 주소로 설정할 수 있다.The network address changing unit 390 may set the default gateway of the virtual interface as an external address of an IP address of the network interface to which address variation is to be performed.

이 때, 네트워크 주소 변경부(390)는 익명 주소 정보 생성 단계(S131)의 절차를 바탕으로 기설정된 특정 시점과 시간 주기에 따라서 지속적으로 네트워크 인터페이스의 외부 주소를 변경할 수 있다.At this time, the network address changing unit 390 may continuously change the external address of the network interface according to a predetermined specific time point and time period based on the procedure of the anonymous address information generation step (S131).

이 때, 네트워크 주소 변경부(390)는 외부 주소가 변이 될 때마다 연결(Connection)이 유실될 수 있는 위험을 방지하기 위하여 네트워크 설정을 갱신(Update) 할 수 있다. At this time, the network address change unit 390 may update the network settings to prevent the risk of a connection being lost whenever the external address is changed.

이 때, 네트워크 주소 변경부(390)는 네트워크 인터페이스의 외부 주소(External Address)(eth0의 IP)를 기설정된 네트워크 주소 변이 규칙에 기반하여 변경할 수 있다.At this time, the network address changing unit 390 may change the external address (IP of eth0) of the network interface based on a preset network address variation rule.

이 때, 네트워크 주소 변경부(390)는 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경할 수 있다.At this time, the network address changing unit 390 uses any one of a plurality of anonymous IP addresses and a plurality of anonymous ports included in the anonymous address information every predetermined period according to a predetermined address variation rule. The external address can be changed.

도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.10 is a view showing a computer system according to an embodiment of the present invention.

도 10을 참조하면, 본 발명의 일실시예에 따른 인증 서버(100), 클라이언트 장치(200) 및 서버 장치(보호 대상 서버)(300)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 10에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.Referring to FIG. 10, the authentication server 100, the client device 200, and the server device (the server to be protected) 300 according to an embodiment of the present invention include a computer system 1100, such as a computer-readable recording medium. ). As shown in FIG. 10, the computer system 1100 includes one or more processors 1110, memories 1130, user interface input devices 1140, and user interface output devices 1150 that communicate with each other through the bus 1120. And storage 1160. In addition, the computer system 1100 may further include a network interface 1170 connected to the network 1180. The processor 1110 may be a central processing unit or a semiconductor device that executes processing instructions stored in the memory 1130 or the storage 1160. The memory 1130 and the storage 1160 may be various types of volatile or nonvolatile storage media. For example, the memory may include ROM 1131 or RAM 1132.

이 때, 본 발명의 일실시예에 따른 서버 장치(300)는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치(200)로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치(200)와 통신할 수 있다.At this time, the server device 300 according to an embodiment of the present invention includes at least one processor and an execution memory storing at least one program executed by the at least one processor, wherein the at least one program is a client device Set the external address of the network interface that receives the packet from 200, set the internal address of the virtual network interface for forwarding the packet received through the network interface to the virtual network interface, and set a predetermined network address variation rule The external address may be changed based on the packet, and a packet received from the client device 200 may be forwarded to the virtual network interface through the changed external address to communicate with the client device 200.

이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 인증이 성공한 클라이언트 장치(200)와 세션 키를 공유할 수 있다.At this time, at least one program of the server device 300 may perform authentication through the authentication server 100 with respect to the client device 200, and share a session key with the client device 200 that is successfully authenticated. .

이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, at least one program of the server device 300 may generate anonymous address information used to set an external address of a network interface that receives a packet from the client device 200.

이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, at least one program of the server device 300 may generate anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.

이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.At this time, the predetermined function may generate the random value using the session key.

이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시킬 수 있다.At this time, at least one program of the server device 300 may change the gateway address of the virtual network interface to a mutated external address.

이 때, 서버 장치(300)의 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.At this time, the at least one program of the server device 300 maps the external address and the MAC address (Media Access Control address) of the server device at the time the connection is established with the client device 200 and records it in a table. Can.

이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있고, 상기 테이블은 상기 ARP 테이블에 상응할 수 있다.In this case, each of a plurality of external addresses may be mapped and recorded in the table, and the table may correspond to the ARP table.

이 때, 서버 장치(300)의 상기 적어도 하나 이상의 프로그램은 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치(200)와의 네트워크 연결을 유지시킬 수 있다.At this time, the at least one program of the server device 300 receives a packet from the client device through any one of a plurality of external addresses recorded in the table to maintain a network connection with the client device 200. Can.

이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하는 경우, 상기 패킷을 상기 가상 네트워크 인터페이스로 포워딩 할 수 있다.At this time, at least one program of the server device 300 is included in the packet received from the client device 200 and the first source address information of the predefined client device 200 based on the predetermined address variation rule. When the second source address information of the client device 200 matches, the packet may be forwarded to the virtual network interface.

이 때, 서버 장치(300)의 하나 이상의 프로세서는 상기 기설정된 주소 변이 규칙에 기반하여 클라이언트 장치(200)의 기정의된 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하지 않는 경우, 상기 클라이언트 장치의 접근을 차단할 수 있다.At this time, one or more processors of the server device 300 are included in the first source address information defined in the client device 200 and the packet received from the client device 200 based on the predetermined address variation rule. If the second source address information of the client device 200 does not match, access to the client device may be blocked.

이 때, 서버 장치(300)의 하나 이상의 프로세서는 상기 기설정된 주소 변이 규칙에 기반하여 상기 내부 주소에 상응하는 서버 장치(300)의 소스 주소 정보를 패킷에 포함시켜 상기 클라이언트 장치(200)에게 송신할 수 있다.At this time, one or more processors of the server device 300 transmits the source address information of the server device 300 corresponding to the internal address to the client device 200 based on the preset address variation rule in a packet. can do.

또한, 본 발명의 일실시예에 따른 클라이언트 장치(200)는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 서버 장치(300)에게 패킷을 송신하기 위해 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 설정하고, 기설정된 주소 변이 규칙에 따라 변이되는 외부 주소를 목적지 주소로 설정하여 상기 서버 장치(300)의 외부 주소를 통해 패킷을 송신하여 통신할 수 있다.In addition, the client device 200 according to an embodiment of the present invention includes one or more processors and an execution memory storing at least one program executed by the one or more processors, and the at least one program includes a server device ( In order to send a packet to 300), an external address of the network interface of the server device 300 is set, and an external address that is changed according to a preset address variation rule is set as a destination address to set the external address of the server device 300. You can communicate by sending packets.

이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 서버 장치(300)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 서버 장치(300)와 세션 키를 공유할 수 있다.At this time, the at least one program of the client device 200 may perform authentication through the authentication server 100 for the server device 300 and share a session key with the server device 300.

이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 상기 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 추적하기 위한 익명 주소 정보를 생성할 수 있다.At this time, the at least one program of the client device 200 may generate anonymous address information for tracking the external address of the network interface of the server device 300.

이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, the at least one program of the client device 200 may generate anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.

이 때, 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.At this time, the predetermined function may generate the random value using the session key.

이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 기설정된 주소 변이 규칙에 기반하여 서버 장치(300)의 내부 주소로 포워딩 되는 클라이언트 장치(200)의 소스 주소를 패킷에 포함시켜 상기 서버 장치(300)에게 송신할 수 있다.At this time, the at least one program of the client device 200 includes the source address of the client device 200 forwarded to the internal address of the server device 300 in a packet based on a predetermined address variation rule, and the server device It can be transmitted to (300).

이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 상기 서버 장치(300)가 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 추적하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the at least one program of the client device 200 may generate anonymous address information used for tracking the external address of the network interface through which the server device 300 receives a packet from the client device 200. have.

이상에서와 같이 본 발명의 일실시예에 따른 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.As described above, the server device, the client device, and the network address variation-based communication method according to an embodiment of the present invention are not limited to the configuration and method of the embodiments described above, but the embodiments are All or some of the embodiments may be selectively combined to constitute various modifications.

100: 인증 서버 200: 클라이언트 장치(Client_p_i)
210: 키 저장부 220: 제1 랜덤 값 생성부
230: 익명 IP 생성부 240: 제2 랜덤 값 생성부
250: 익명 포트 생성부 260: 익명 주소 저장부
270: NAT 설정 정보 업데이트부
300: 서버 장치(보호 대상 서버, Server_p_j)
310: 키 저장부 320: 제1 랜덤 값 생성부
330: 익명 IP 생성부 340: 제2 랜덤 값 생성부
350: 익명 포트 생성부 360: 익명 주소 저장부
370: 가상 인터페이스 게이트웨이 업데이트부
380: NAT 설정 정보 업데이트부
390: 네트워크 주소 변경부
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크
100: authentication server 200: client device (Client_p_i)
210: key storage unit 220: first random value generation unit
230: anonymous IP generator 240: second random value generator
250: anonymous port generation unit 260: anonymous address storage unit
270: NAT configuration information update unit
300: server device (server to be protected, Server_p_j)
310: key storage unit 320: first random value generation unit
330: anonymous IP generator 340: second random value generator
350: anonymous port generator 360: anonymous address storage
370: virtual interface gateway update unit
380: NAT configuration information update unit
390: network address change unit
1100: computer system 1110: processor
1120: bus 1130: memory
1131: Romans 1132: Ram
1140: user interface input device
1150: user interface output device
1160: storage 1170: network interface
1180: network

Claims (20)

서버 장치와 클라이언트 장치의 네트워크 주소 변이 기반 통신 방법에 있어서,
상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하는 단계;
기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키는 단계; 및
변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 단계;
를 포함하고,
상기 외부 주소를 변이시키는 단계는
상기 서버 장치가, 상기 클라이언트 장치로부터 상기 패킷을 수신한 이후, 상기 패킷의 목적지에 대한 IP 주소 및 포트를 상기 내부 주소로 설정하고,
상기 서버 장치와 상기 클라이언트 장치가, 상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 외부 주소를 변경시키고,
상기 통신하는 단계는
상기 기설정된 주기마다 변경되는 외부 주소로 수신하는 패킷의 포트가 상기 내부 주소로 설정된 상기 목적지에 대한 포트와 일치하면, 상기 기설정된 주기마다 변경되는 외부 주소로 수신하는 패킷을 상기 가상 네트워크 인터페이스의 내부 주소로 포워딩하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
In the communication method based on the network address variation of the server device and the client device,
Setting an external address of a network interface for receiving packets from the client device, and setting an internal address of the virtual network interface for forwarding packets received through the network interface to a virtual network interface;
Mutating the external address based on a preset network address variation rule; And
Forwarding a packet received from the client device through the mutated external address to the virtual network interface to communicate with the client device;
Including,
The step of mutating the external address is
After the server device receives the packet from the client device, sets the IP address and port for the destination of the packet to the internal address,
The server device and the client device change the external address every predetermined period according to the preset address variation rule,
The communication step
If the port of the packet received at the external address changed at each predetermined period matches the port for the destination set at the internal address, the packet received at the external address changed at each predetermined period is internal to the virtual network interface. Network address variation based communication method, characterized by forwarding to an address.
청구항 1에 있어서,
상기 네트워크 주소 변이 기반 통신 방법은
상기 외부 주소를 변이시키는 단계 이후에,
상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 1,
The network address variation based communication method
After the step of mutating the external address,
And changing the gateway address of the virtual network interface to a mutated external address.
청구항 1에 있어서,
상기 통신하는 단계는
상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 1,
The communication step
Network address variation-based communication method characterized in that the mapping of the external address and the MAC address (Media Access Control address) of the server device when the connection between the server device and the client device is established and recorded in a table.
청구항 3에 있어서,
상기 테이블에는
복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 3,
The table above
Network address variation based communication method, characterized in that each of a plurality of external addresses are mapped and recorded with the MAC address.
청구항 4에 있어서,
상기 통신하는 단계는
상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치 및 상기 클라이언트 장치 간의 네트워크 연결을 유지시키는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 4,
The communication step
A network address variation-based communication method, characterized by maintaining a network connection between the server device and the client device by receiving a packet from the client device through any one of a plurality of external addresses recorded in the table.
청구항 1에 있어서,
상기 네트워크 주소 변이 기반 통신 방법은
상기 설정하는 단계 이전에,
상기 서버 장치가 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 1,
The network address variation based communication method
Before the setting step,
And generating, by the server device, anonymous address information used to set an external address of the network interface receiving the packet from the client device.
청구항 6에 있어서,
상기 익명 주소 정보를 생성하는 단계는
기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 6,
The step of generating the anonymous address information
A network address variation-based communication method characterized by generating anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.
청구항 7에 있어서,
상기 외부 주소를 변이시키는 단계는
상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경시키는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 7,
The step of mutating the external address is
The external address is changed by using any one of a plurality of anonymous IP addresses and one of a plurality of anonymous ports included in the anonymous address information every predetermined period according to the predetermined address variation rule. Communication method based on network address variation.
청구항 8에 있어서,
상기 네트워크 주소 변이 기반 통신 방법은
상기 익명 주소 정보를 생성하는 단계 이전에,
상기 서버 장치가 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 서버 장치와 클라이언트 장치가 세션 키를 공유하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 8,
The network address variation based communication method
Before the step of generating the anonymous address information,
And the server device performs authentication with the client device, and the server device and the client device that have successfully authenticated share the session key.
청구항 9에 있어서,
상기 기설정된 함수는
상기 세션 키를 이용하여 상기 무작위 값을 생성하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
The method according to claim 9,
The preset function
Network address variation based communication method characterized in that the random value is generated using the session key.
하나 이상의 프로세서; 및
상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리;
를 포함하고,
상기 적어도 하나 이상의 프로그램은
클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하고,
상기 클라이언트 장치로부터 상기 패킷을 수신한 이후, 상기 패킷의 목적지에 대한 IP 주소 및 포트를 상기 내부 주소로 설정하고,
상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 외부 주소를 변이시키고,
상기 기설정된 주기마다 변이되는 외부 주소로 수신하는 패킷의 포트가 상기 내부 주소로 설정된 상기 목적지에 대한 포트와 일치하면, 상기 기설정된 주기마다 변경되는 외부 주소로 수신하는 패킷을 상기 가상 네트워크 인터페이스의 내부 주소로 포워딩하는 것을 특징으로 하는 서버 장치.
One or more processors; And
An execution memory storing at least one program executed by the one or more processors;
Including,
The at least one program
Set an external address of a network interface that receives packets from a client device, set an internal address of the virtual network interface to forward packets received through the network interface to a virtual network interface, and set a predetermined network address variation rule. Varies the external address based on the packet, and forwards the packet received from the client device to the virtual network interface through the mutated external address to communicate with the client device,
After receiving the packet from the client device, set the IP address and port for the destination of the packet to the internal address,
The external address is changed every predetermined period according to the preset address variation rule,
If the port of the packet received at the external address that changes every predetermined period matches the port for the destination set as the internal address, the packet received at the external address that changes every predetermined period is internal to the virtual network interface. A server device characterized by forwarding to an address.
청구항 11에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 것을 특징으로 하는 서버 장치.
The method according to claim 11,
The at least one program
Server device, characterized in that for changing the gateway address of the virtual network interface to a mutated external address.
청구항 12에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 클라이언트 장치와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록하는 것을 특징으로 하는 서버 장치.
The method according to claim 12,
The at least one program
And mapping the external address and the MAC address (Media Access Control address) of the server device at the time the connection is established with the client device and recording the result in a table.
청구항 13에 있어서,
상기 테이블에는
복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것을 특징으로 하는 서버 장치.
The method according to claim 13,
The table above
A server device, characterized in that each of a plurality of external addresses is mapped and recorded with the MAC address.
청구항 14에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치와의 네트워크 연결을 유지시키는 것을 특징으로 하는 서버 장치.
The method according to claim 14,
The at least one program
A server device receiving a packet from the client device through any one of a plurality of external addresses recorded in the table to maintain a network connection with the client device.
청구항 11에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 것을 특징으로 하는 서버 장치.
The method according to claim 11,
The at least one program
And generating anonymous address information used to set an external address of a network interface that receives a packet from the client device.
청구항 16에 있어서,
상기 적어도 하나 이상의 프로그램은
기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성하는 것을 특징으로 하는 서버 장치.
The method according to claim 16,
The at least one program
A server device characterized in that it generates anonymous address information including a plurality of anonymous IP addresses and a plurality of anonymous ports from a random value using a predetermined function.
청구항 17에 있어서,
상기 적어도 하나 이상의 프로그램은
상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 클라이언트 장치가 세션 키를 공유하는 것을 특징으로 하는 서버 장치.
The method according to claim 17,
The at least one program
A server device that performs authentication with the client device, and the client device that has successfully authenticated shares the session key.
청구항 18에 있어서,
상기 기설정된 함수는
상기 세션 키를 이용하여 상기 무작위 값을 생성하는 것을 특징으로 하는 서버 장치.
The method according to claim 18,
The preset function
And generating the random value using the session key.
삭제delete
KR1020190056476A 2018-06-29 2019-05-14 Server apparatus, client apparatus and method for communicating based on network address mutation KR102136082B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/452,682 US11171915B2 (en) 2018-06-29 2019-06-26 Server apparatus, client apparatus and method for communication based on network address mutation

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20180076029 2018-06-29
KR1020180076029 2018-06-29

Publications (2)

Publication Number Publication Date
KR20200002599A KR20200002599A (en) 2020-01-08
KR102136082B1 true KR102136082B1 (en) 2020-07-22

Family

ID=69154234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190056476A KR102136082B1 (en) 2018-06-29 2019-05-14 Server apparatus, client apparatus and method for communicating based on network address mutation

Country Status (1)

Country Link
KR (1) KR102136082B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102362320B1 (en) 2020-11-11 2022-02-15 주식회사 스텔스솔루션 System and method for communicating of network address mutation on dynamic network security
KR102476672B1 (en) * 2022-06-16 2022-12-12 (주)대영에스텍 Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012156957A (en) * 2011-01-28 2012-08-16 Hitachi Ltd Network system, control device, computer and network device
KR101626405B1 (en) * 2015-05-06 2016-06-01 주식회사 모바일컨버전스 Method and system for server security using dynamic address translation

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101554743B1 (en) * 2009-06-18 2015-09-22 삼성전자주식회사 Method for automatic connectting of wireless lan between devices and the device therefor

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012156957A (en) * 2011-01-28 2012-08-16 Hitachi Ltd Network system, control device, computer and network device
KR101626405B1 (en) * 2015-05-06 2016-06-01 주식회사 모바일컨버전스 Method and system for server security using dynamic address translation

Also Published As

Publication number Publication date
KR20200002599A (en) 2020-01-08

Similar Documents

Publication Publication Date Title
US11057351B1 (en) System and method for session affinity in proxy media routing
US9300638B2 (en) Method and apparatus for providing adaptive self-synchronized dynamic address translation as an intrusion detection sensor
Zhuang et al. Cashmere: Resilient anonymous routing
US7043633B1 (en) Method and apparatus for providing adaptive self-synchronized dynamic address translation
US9237059B2 (en) Method and apparatus for dynamic mapping
US8155130B2 (en) Enforcing the principle of least privilege for large tunnel-less VPNs
US6826684B1 (en) Sliding scale adaptive self-synchronized dynamic address translation
US8934487B2 (en) Network topology concealment using address permutation
CN105991655B (en) Method and apparatus for mitigating neighbor discovery-based denial of service attacks
JP2001508627A (en) Improved network security device
WO2005006663A1 (en) Location privacy for internet protocol networks using cryptographically protected prefixes
JP2002529779A (en) Agile network protocol for secure communication with guaranteed system availability
US11533179B2 (en) Turn authentication using SIP channel discovery
CN109698791B (en) Anonymous access method based on dynamic path
KR102136082B1 (en) Server apparatus, client apparatus and method for communicating based on network address mutation
JP7194732B2 (en) Apparatus and method for data transmission
JP2003535560A (en) Improvement of Agile Network Protocol for Secure Communication with Guaranteed System Availability
US20050135359A1 (en) System and method for IPSEC-compliant network address port translation
US20240195790A1 (en) Centralized management of private networks
US11171915B2 (en) Server apparatus, client apparatus and method for communication based on network address mutation
CN109347836B (en) IPv6 network node identity safety protection method
US11552878B1 (en) Managing replay windows in multipath connections between gateways
CN117375862A (en) Message forwarding method, system, network device, storage medium and program product
KR102488501B1 (en) Network address mutation method performed by ethernet driver of broadband router with unrecognized nic
KR102476672B1 (en) Network address mutation method performed by ethernet driver with unrecognized nic function in 5g massive network

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant