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 PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2539—Hiding addresses; Keeping addresses anonymous
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/2592—Translation of Internet protocol [IP] addresses using tunnelling or encapsulation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability 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
본 발명은 네트워크 환경에서의 공격자의 공격 행위를 방어하는 기술에 관한 것으로 보다 상세하게는, 공격자들의 정찰(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
인증 서버(100)는 클라이언트 장치(200) 및 보호 대상 서버(300)를 인증할 수 있다.The
클라이언트 장치(200) 및 보호 대상 서버(300)는 인증 서버(100)에게 인증을 요청하고 인증 받은 개체들 사이에서면 세션 키 생성 및 분배를 수행할 수 있다.The
이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 서브 네트워크에서 사용하기 위한 세션 키를 생성하고 분배할 수 있다.At this time, the
이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 세션 키를 이용하여 익명 주소 정보를 생성할 수 있다.At this time, the
또한, 클라이언트 장치(200) 및 보호 대상 서버(300)는 네트워크 주소 변이 네트워크 주소 추적을 수행할 수 있다.In addition, the
이 때, 보호 대상 서버(300)는 익명 주소 정보를 생성하고, 익명 주소 정보를 이용하여 보호 대상 서버(300)의 네트워크 주소를 변이시킬 수 있다.At this time, the protected
이 때, 클라이언트 장치(200)는 익명 주소 정보를 생성하고, 익명 주소 정보를 이용하여 보호 대상 서버(300)의 변이되는 네트워크 주소를 추적할 수 있다.At this time, the
이 때, 서버 장치(300)는 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the
이 때, 클라이언트 장치(200)는 상기 서버 장치(300)가 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 추적하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the
이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 기설정된 네트워크 주소 변이 규칙에 기반하여 네트워크 주소를 변이시키면서 패킷을 송수신 하는 보안 통신을 수행할 수 있다.At this time, the
도 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.
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
단계(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
단계(S110)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(보호 대상 서버, Server_p_j)(300)가 인증 서버(Authentication Server)(100)로부터 인증을 받을 수 있다.In step S110, the
이 때, 단계(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
단계(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_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
다시 도 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
이 때, 단계(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
[수학식 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
단계(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
또한, 단계(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
이 때, 단계(S132)는 주소 변이를 시행하기 앞서 서버 장치(300)가 외부 주소가 변이되어도 클라이언트 장치(200)와 통신하기 위한 히든 터널(Hidden Tunnel)을 구성하기 위하여 아래와 같은 절차대로 네트워크 설정을 수행할 수 있다.At this time, in step S132, in order to configure a hidden tunnel to communicate with the
이 때, 단계(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
이 때, 단계(S132)는 클라이언트 장치(200)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 가상 네트워크 인터페이스(Hidden Interface)와의 연결에서 발생된 패킷에 대한 Source NAT (IP/Port)를 소스 주소로 설정할 수 있다.At this time, in step S132, among the outgoing packets transmitted to the
또한, 단계(S132)는 클라이언트 장치(200)가 네트워크 설정을 수행할 수 있다.In addition, in step S132, the
이 때, 단계(S132)는 서버 장치(300)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로의 연결에서 발생된 패킷에 대한 Destination NAT (IP/Port)을 목적지 주소로 설정할 수 있다.At this time, in step S132, among the outgoing packets transmitted to the
또한, 단계(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
이 때, 단계(S132)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경할 수 있다.At this time, step (S132) is the
이 때, 상기 기설정된 함수는 단계(S110)에서 상기 서버 장치(300)가 상기 클라이언트 장치(200)와 인증을 수행하고, 인증이 성공한 서버 장치(300)와 클라이언트 장치(200)가 공유한 세션 키를 이용하여 상기 무작위 값을 생성할 수도 있다.In this case, the predetermined function is a session shared by the
이 때, 단계(S132)는 클라이언트 장치(200)도 서버 장치(300)와 동일한 주소 생성 메커니즘을 내장하여 지속적으로 바뀌도록 설정되어 서버 장치(300)의 네트워크 주소를 추적할 수 있다.At this time, in step S132, the
이 때, 단계(S132)는 서버 장치(300)와 클라이언트 장치(200)는 외부 주소가 변경 될 때마다 연결이 유실되는 것을 방지하기 위하여 다음과 같은 네트워크 설정을 갱신(Update)할 수 있다. 단계(S132)의 모든 과정은 기설정된 주소 변이 규칙에 따라 주소 변이 주기(특정 시간)에 서버 장치(300)와 클라이언트 장치(200)가 동시에 수행할 수 있다.At this time, in step S132, the
먼저, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스의 외부 주소(External Address)(eth0의 IP)를 기설정된 네트워크 주소 변이 규칙에 기반하여 변경할 수 있다.First, in step S132, the
이 때, 단계(S132)는 서버 장치(300)가 가상 네트워크 인터페이스(Hidden Interface)의 게이트웨이(Default Gateway) 주소를 상기에서 변이된 외부 주소(External Address)로 변경할 수 있다.At this time, step S132, the
이 때, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 수신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하는 상태의 패킷을 Destination NAT 으로 포워딩 하기 위한 설정 테이블 업데이트할 수 있다.At this time, in step S132, among the incoming packets received by the
이 때, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 송신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하지 않는 상태의 패킷을 드롭(DROP) 시키기 위한 설정 테이블 업데이트할 수 있다.At this time, in step S132, among the incoming packets transmitted by the
이 때, 단계(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
따라서, 소스 포트(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]
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
이 때, 단계(S132)는 클라이언트 장치(200)가 응용(Application)에서 서버 장치(300)의 내부 주소(Hidden Address)로 연결을 생성하기 위한 패킷의 목적지 주소(Destination Address)를, 서버 장치(300)의 외부 주소(External Address)로 바꿔주기 위한 Destination NAT 설정 테이블을 업데이트할 수 있다.At this time, in step S132, the
이 때, 단계(S132)는 클라이언트 장치(200)가 Destination NAT 가 된 패킷의 Source Port를 기설정된 포트(Port)(기설정된 변이 주기마다 새로 생성하여 바뀔 수 있음)로 바꿔주는 Source NAT 테이블을 업데이트할 수 있다.At this time, step S132 updates the source NAT table in which the
이 때, 단계(S132)는 클라이언트 장치(200)가 TCP 연결(Connection) 상태가 "SYN_SENT" 인 커넥션 트래킹(Connection Tracking) 정보를 삭제할 수 있다.At this time, step S132, the
이 때, 단계(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
따라서, 단계(S132)는 클라이언트 장치(200)가 외부 주소가 변이된 이후의 서버 장치(300)의 외부 주소가 아닌, 변이 되기 이전의 서버 장치(300)의 외부 주소로만 계속해서 TCP[SYN] 패킷을 보내기 때문에 3-웨이 헨드쉐이크(3-way handshake) 실패를 복구(Recovery)시키기 위한 목적으로 수행될 수 있다. 이것은 곧 주소 변이 기술에 최소 주기를 산술적으로 정의할 수 있는 기준이 될 수 있으며, TCP[SYN] 패킷이 서버에 도달하는 시간은 RTT/2 이므로, 본 기술의 이론적(이상적)으로 가능한 최소 주소 변이 주기는 수학식 5와 같이 나타낼 수 있다.Therefore, in step S132, the
[수학식 5][Equation 5]
수학식 5에서, k는 서버 장치(300)와 클라이언트 장치(200)가 이상적으로 오차 없는 시간 동기화를 할 수 있고, 모든 주소 변이 프로세싱 시간이 동일하다면 0이 되지만, 현실적으로 불가능하기 때문에 k는 시간 동기화의 미세한 오차, 그리고 서버 장치(300)와 클라이언트 장치(200)의 주소 변이 프로세싱 시간을 고려해 추가되어야 하는 상수 값에 상응할 수 있다.In Equation 5, k is 0 when the
또한, 단계(S140)는 서버 장치(300)와 클라이언트 장치(200)가 변이되는 외부 주소를 통해 보안 통신을 수행할 수 있다(Secure Communication).In addition, in step S140, the
이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하는 경우, 상기 패킷을 상기 가상 네트워크 인터페이스로 포워딩할 수 있다.In this case, step S140 includes the
이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하지 않는 경우, 상기 클라이언트 장치(200)의 접근을 차단할 수 있다.In this case, step S140 includes the
이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 상기 내부 주소에 상응하는 서버 장치(300)의 소스 주소 정보를 패킷에 포함시켜 상기 클라이언트 장치(200)에게 송신할 수 있다.At this time, in step S140, the
이 때, 단계(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
예를 들어, 서버 장치(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
즉, 현재 서버의 주소가 무엇이던 간에 이전에 맺은 연결에 대한 외부 주소로 네트워크 통신을 하게 될 수도 있는 것이다. 그러면 공격자가 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
다만, 공격자가 A1 주기가 끝나기 이전에 패킷 도청(Packet Eavesdropping)을 통해서 서버 장치(300)의 주소를 알아내는 것은 유효하며, 다음 주소 변이 주기에 해당 연결(Connection)을 제거하기 전 까지는 공격에 유효한 시간을 확보한 것으로 간주할 수 있다.However, it is valid for an attacker to find out the address of the
따라서, 본 발명은 서버 장치(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
서버 장치(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
이 후, 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
상기 기법은 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
[수학식 6][Equation 6]
즉, 단계(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
도 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
이 때, 클라이언트 장치(200)가 특정 시간 대에 특정 조건을 만족하여 서버 장치(300)의 네트워크 인터페이스(External Interface)에 접근하게 되면, 서버 장치(300)는 유효한 클라이언트 장치(200)의 연결 시도라고 판단하여, 패킷을 가상 네트워크 인터페이스로 포워딩 하여 히든 터널(Hidden Tunnel)로 연결시켜줄 수 있다. 여기서 언급된 특정 시간/특정 조건은 공격자에게 공개되지 않는 숨겨진 정보(Hidden information)이고, 기설정된 주소 변이 규칙에 관한 정보일 수 있다.At this time, when the
도 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
이 때, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 네트워크 내부에 침투한 공격자가 서버 장치(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
예를 들어, 서버 장치(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
즉, 현재 서버의 주소가 무엇이던 간에 이전에 맺은 연결에 대한 외부 주소로 네트워크 통신을 하게 될 수도 있는 것이다. 그러면 공격자가 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
다만, 공격자가 A1 주기가 끝나기 이전에 패킷 도청(Packet Eavesdropping)을 통해서 서버 장치(300)의 주소를 알아내는 것은 유효하며, 다음 주소 변이 주기에 해당 연결(Connection)을 제거하기 전 까지는 공격에 유효한 시간을 확보한 것으로 간주할 수 있다.However, it is valid for an attacker to find out the address of the
따라서, 본 발명은 서버 장치(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
서버 장치(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
이 후, 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
상기 기법은 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
도 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
키 저장부(210)는 서버 장치(300)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 세션 키를 생성하여 분배 받은 세션 키를 저장할 수 있다.The
제1 랜덤 값 생성부(220)는 네트워크 주소 변이에 사용하기 위해 익명 IP 생성에 사용되는 제1 랜덤 값을 생성할 수 있다.The first
익명 IP 생성부(230)는 기설정된 주소 변이 규칙에 따라 세션 키와 제1 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 IP를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The
제2 랜덤 값 생성부(240)는 네트워크 주소 변이에 사용하기 위해 익명 포트 생성에 사용되는 제2 랜덤 값을 생성할 수 있다.The second
익명 포트 생성부(250)는 기설정된 주소 변이 규칙에 따라 세션 키와 제2 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 포트를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The
익명 주소 저장부(260)는 생성한 복수개의 익명 IP 주소들과 복수개의 익명 포트들을 익명 주소 정보로 저장할 수 있다.The anonymous
NAT 설정 정보 업데이트부(270)는 기설정된 주소 변이 규칙에 따라 익명 주소 정보를 이용하여 서버 장치(300)의 네트워크 인터페이스의 외부 주소와 통신하기 위한 목적지 주소를 패킷에 포함시켜 생성할 수 있다.The NAT configuration
NAT 설정 정보 업데이트부(270)는 기설정된 주소 변이 규칙에 따라 서버 장치(300)의 내부 주소로 포워딩되기 위한 클라이언트 장치(200)의 소스 주소를 패킷에 포함시켜 생성할 수 있다.The NAT configuration
NAT 설정 정보 업데이트부(270)는 서버 장치(300)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로의 연결(Connection)에서 발생된 패킷에 대한 Destination NAT (IP/Port)을 목적지 주소로 설정할 수 있다.The NAT setting
이 때, NAT 설정 정보 업데이트부(270)는 서버 장치(300)와 동일한 주소 생성 메커니즘을 내장하여 지속적으로 바뀌도록 설정되어 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 추적할 수 있다.At this time, the NAT configuration
도 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
키 저장부(310)는 클라이언트 장치(200)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 세션 키를 생성하여 분배 받은 세션 키를 저장할 수 있다.The
제1 랜덤 값 생성부(320)는 네트워크 주소 변이에 사용하기 위해 익명 IP 생성에 사용되는 제1 랜덤 값을 생성할 수 있다.The first
익명 IP 생성부(330)는 기설정된 주소 변이 규칙에 따라 세션 키와 제1 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 IP를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The
제2 랜덤 값 생성부(340)는 네트워크 주소 변이에 사용하기 위해 익명 포트 생성에 사용되는 제2 랜덤 값을 생성할 수 있다.The second
익명 포트 생성부(350)는 기설정된 주소 변이 규칙에 따라 세션 키와 제2 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 포트를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.The
익명 주소 저장부(360)는 생성한 복수개의 익명 IP 주소들과 복수개의 익명 포트들을 익명 주소 정보로 저장할 수 있다.The anonymous
가상 인터페이스 게이트웨이 업데이트부(370)는 주소 변이를 시행하기 앞서 외부 주소가 변이되어도 클라이언트 장치(200)와 통신하기 위한 히든 터널(Hidden Tunnel)을 구성하기 위하여 가상 네트워크 인터페이스를 설정할 수 있다.The virtual interface
이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 먼저 독립적인 MAC 주소(MAC address)를 갖는 가상 네트워크 인터페이스(Hidden Interface) 생성할 수 있다.At this time, the virtual interface
이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 가상 네트워크 인터페이스에 임의의 IP network(Hidden Address)를 내부 주소로 설정(IP주소, netmask) 할 수 있다.At this time, the virtual interface
이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 가상 네트워크 인터페이스(Hidden Interface)의 게이트웨이(Default Gateway) 주소를 상기에서 변이된 외부 주소(External Address)로 변경할 수 있다.At this time, the virtual interface
NAT 설정 정보 업데이트부(380)는 클라이언트 장치(200)로부터 수신하는 incoming 패킷 중에서, 익명 주소 정보로 생성된 Port를 통해 들어오는 패킷을 가상 네트워크 인터페이스(Hidden Interface) 로 포워딩 하기 위한 Destination NAT (IP/Port)를 목적지 주소로 설정할 수 있다.The NAT setting
이 때, NAT 설정 정보 업데이트부(380)는 클라이언트 장치(200)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 가상 네트워크 인터페이스(Hidden Interface)로 연결된 연결(Connection)에서 발생된 패킷에 대한 Source NAT (IP/Port)를 소스 주소로 설정할 수 있다.At this time, the NAT setting
이 때, NAT 설정 정보 업데이트부(380)는 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 수신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하는 상태의 패킷을 Destination NAT 으로 포워딩 하기 위한 설정 테이블 업데이트할 수 있다.At this time, the NAT setting
이 때, NAT 설정 정보 업데이트부(380)는 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 송신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하지 않는 상태의 패킷을 드롭(DROP) 시키기 위한 설정 테이블 업데이트할 수 있다.At this time, the NAT configuration
네트워크 주소 변경부(390)는 가상 인터페이스의 디폴트 게이트웨이(Default Gateway)를 주소 변이가 시행될 네트워크 인터페이스(External Interface)의 IP 주소(External Address)를 외부 주소로 설정할 수 있다.The network
이 때, 네트워크 주소 변경부(390)는 익명 주소 정보 생성 단계(S131)의 절차를 바탕으로 기설정된 특정 시점과 시간 주기에 따라서 지속적으로 네트워크 인터페이스의 외부 주소를 변경할 수 있다.At this time, the network
이 때, 네트워크 주소 변경부(390)는 외부 주소가 변이 될 때마다 연결(Connection)이 유실될 수 있는 위험을 방지하기 위하여 네트워크 설정을 갱신(Update) 할 수 있다. At this time, the network
이 때, 네트워크 주소 변경부(390)는 네트워크 인터페이스의 외부 주소(External Address)(eth0의 IP)를 기설정된 네트워크 주소 변이 규칙에 기반하여 변경할 수 있다.At this time, the network
이 때, 네트워크 주소 변경부(390)는 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경할 수 있다.At this time, the network
도 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
이 때, 본 발명의 일실시예에 따른 서버 장치(300)는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치(200)로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치(200)와 통신할 수 있다.At this time, the
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 인증이 성공한 클라이언트 장치(200)와 세션 키를 공유할 수 있다.At this time, at least one program of the
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, at least one program of the
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, at least one program of the
이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.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
이 때, 서버 장치(300)의 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.At this time, the at least one program of the
이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 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
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하는 경우, 상기 패킷을 상기 가상 네트워크 인터페이스로 포워딩 할 수 있다.At this time, at least one program of the
이 때, 서버 장치(300)의 하나 이상의 프로세서는 상기 기설정된 주소 변이 규칙에 기반하여 클라이언트 장치(200)의 기정의된 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하지 않는 경우, 상기 클라이언트 장치의 접근을 차단할 수 있다.At this time, one or more processors of the
이 때, 서버 장치(300)의 하나 이상의 프로세서는 상기 기설정된 주소 변이 규칙에 기반하여 상기 내부 주소에 상응하는 서버 장치(300)의 소스 주소 정보를 패킷에 포함시켜 상기 클라이언트 장치(200)에게 송신할 수 있다.At this time, one or more processors of the
또한, 본 발명의 일실시예에 따른 클라이언트 장치(200)는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 서버 장치(300)에게 패킷을 송신하기 위해 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 설정하고, 기설정된 주소 변이 규칙에 따라 변이되는 외부 주소를 목적지 주소로 설정하여 상기 서버 장치(300)의 외부 주소를 통해 패킷을 송신하여 통신할 수 있다.In addition, the
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 서버 장치(300)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 서버 장치(300)와 세션 키를 공유할 수 있다.At this time, the at least one program of the
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 상기 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 추적하기 위한 익명 주소 정보를 생성할 수 있다.At this time, the at least one program of the
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.At this time, the at least one program of the
이 때, 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.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
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 상기 서버 장치(300)가 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 추적하는데 이용되는 익명 주소 정보를 생성할 수 있다.At this time, the at least one program of the
이상에서와 같이 본 발명의 일실시예에 따른 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.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.
상기 네트워크 주소 변이 기반 통신 방법은
상기 외부 주소를 변이시키는 단계 이후에,
상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.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.
상기 통신하는 단계는
상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 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.
상기 테이블에는
복수의 외부 주소들 각각이 상기 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.
상기 통신하는 단계는
상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치 및 상기 클라이언트 장치 간의 네트워크 연결을 유지시키는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.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.
상기 네트워크 주소 변이 기반 통신 방법은
상기 설정하는 단계 이전에,
상기 서버 장치가 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.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.
상기 익명 주소 정보를 생성하는 단계는
기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 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.
상기 외부 주소를 변이시키는 단계는
상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 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.
상기 네트워크 주소 변이 기반 통신 방법은
상기 익명 주소 정보를 생성하는 단계 이전에,
상기 서버 장치가 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 서버 장치와 클라이언트 장치가 세션 키를 공유하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.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.
상기 기설정된 함수는
상기 세션 키를 이용하여 상기 무작위 값을 생성하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.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.
상기 적어도 하나 이상의 프로그램은
상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 것을 특징으로 하는 서버 장치.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.
상기 적어도 하나 이상의 프로그램은
상기 클라이언트 장치와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 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.
상기 테이블에는
복수의 외부 주소들 각각이 상기 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.
상기 적어도 하나 이상의 프로그램은
상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치와의 네트워크 연결을 유지시키는 것을 특징으로 하는 서버 장치.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.
상기 적어도 하나 이상의 프로그램은
상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 것을 특징으로 하는 서버 장치.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.
상기 적어도 하나 이상의 프로그램은
기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 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.
상기 적어도 하나 이상의 프로그램은
상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 클라이언트 장치가 세션 키를 공유하는 것을 특징으로 하는 서버 장치.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.
상기 기설정된 함수는
상기 세션 키를 이용하여 상기 무작위 값을 생성하는 것을 특징으로 하는 서버 장치.The method according to claim 18,
The preset function
And generating the random value using the session key.
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)
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)
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)
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 |
-
2019
- 2019-05-14 KR KR1020190056476A patent/KR102136082B1/en active IP Right Grant
Patent Citations (2)
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 |