KR20200002599A - 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법 - Google Patents

서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법 Download PDF

Info

Publication number
KR20200002599A
KR20200002599A KR1020190056476A KR20190056476A KR20200002599A KR 20200002599 A KR20200002599 A KR 20200002599A KR 1020190056476 A KR1020190056476 A KR 1020190056476A KR 20190056476 A KR20190056476 A KR 20190056476A KR 20200002599 A KR20200002599 A KR 20200002599A
Authority
KR
South Korea
Prior art keywords
address
client device
anonymous
server device
network interface
Prior art date
Application number
KR1020190056476A
Other languages
English (en)
Other versions
KR102136082B1 (ko
Inventor
박경민
우사무엘
문대성
구기종
김익균
이주영
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/452,682 priority Critical patent/US11171915B2/en
Publication of KR20200002599A publication Critical patent/KR20200002599A/ko
Application granted granted Critical
Publication of KR102136082B1 publication Critical patent/KR102136082B1/ko

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

서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법이 개시된다. 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 서버 장치와 클라이언트 장치의 네트워크 주소 변이 기반 통신 방법에 있어서, 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하는 단계; 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키는 단계 및 변이된 외부 주소에 기반하여 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 단계를 포함한다.

Description

서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법 {SERVER APPARATUS, CLIENT APPARATUS AND METHOD FOR COMMUNICATING BASED ON NETWORK ADDRESS MUTATION}
본 발명은 네트워크 환경에서의 공격자의 공격 행위를 방어하는 기술에 관한 것으로 보다 상세하게는, 공격자들의 정찰(reconnaissance) 행위를 무력화 시키기 위한 능동적 방어 기술 및 네트워크 주소 변이 기술에 관한 것이다.
실제 공격에 앞서 공격자들은 목표 시스템의 취약점을 확보하기 위해 정찰(reconnaissance) 단계를 수행한다. 공격자들은 목표 시스템의 정보(호스트 이름, MAC/IP 주소, 운영체제 종류 및 버전, 개방된 포트, 운영 중인 서비스 타입)를 획득하기 위해 스니핑 (sniffing) 기술과 프로빙(probing) 기술 등을 이용하여 정찰 행위를 수행한다.
MTD(Moving Target Defense) 기술의 목표는 보호대상을 각종 속성을 덜 고정적(static)이고, 덜 동질적(homogeneous)이며, 그리고 덜 결정적(deterministic)으로 만들어서 공격자의 정찰 행위 작업량(workload)을 증가시키는 것이다. 결과적으로는 하나의 성공적인 공격의 유사성을 감소시키고 시스템에 역동성을 추가하여 공격의 생명(lifetime)을 감소시켜 대규모 공격 피해를 제한하게 된다. MTD의 주요 기술은 다이나믹 네트워크(dynamic networks), 다이나믹 플랫폼(dynamic platforms), 다이나믹 런타임 환경(dynamic runtime environments), 다이나믹 소프트웨어(dynamic software), 그리고 다이나믹 데이터(dynamic data)로 구분된다.
네트워크 주소 변이 관련 기존 연구들은 네트워크 주소 생성과 변이를 위해 NAT(network address translation) 형태의 주소 변이 방법과 암호알고리즘을 이용한 주소 생성 방법을 사용하고 있다. 그러나 NAT 형태의 주소 변이의 경우 주소 변이 행위가 게이트웨이와 같은 네트워크 장비에서 수행되기 때문에 보호대상 서버와 동일한 서브네트워크에 위치한 내부 공격자에게 보호대상 서버의 실제 주소가 노출될 가능성을 내포하고 있다.
도 1은 네트워크 주소 변이 기반 통신 시스템을 나타낸 도면이다.
도 1을 참조하면, NAT 기반의 네트워크 주소 변이 기술은 네트워크 환경에서 내부 공격자에게 보호대상 서버의 네트워크 주소가 노출되는 취약점을 내포하고 있다.
암호알고리즘을 사용하여 네트워크 주소를 생성하는 경우 서로 다른 입력에 대한 동일한 출력 값이 생성되는 주소 충돌 문제가 발생할 수 있다. 기존 연구들은 주소 생성 기법은 제안하였지만, 주소 충돌 문제와 주소 동기화에 대한 문제 제기 및 해결 방안을 제안하지 않았다.
본 발명에서는 다이나믹 네트워크(dynamic networks) 기술의 세부 기술인 네트워크 주소 변이 기술을 제안하며, 보다 상세하게는 네트워크 주소 변이에서 가장 중요한 두 가지 이슈를 해결한 안전성과 효율성이 강화된 네트워크 주소 변이 방법을 제안한다.
한편, 한국공개특허 제 10-2005-0102892 호"다수 개의 아이피 주소를 사용하는 통신 시스템 및 통신방법"는 하나의 통신 시스템에 다수 개의 IP(Internet Protocol) 주소를 사용하여 외부의 네트워크와 통신을 수행할 수 있도록 하는 통신 시스템에 관하여 개시하고 있다.
그러나, 한국공개특허 제 10-2005-0102892 호는 주소 변경 규칙이 노출되었을 때 공격자로부터의 공격 위험, 주소 변경에 따른 주소 충돌 문제와 주소 동기화에 대한 문제에 있어서 한계가 있다.
본 발명은 네트워크 환경에서 공격자의 정찰 행위에 소요되는 비용을 증가시키는 능동적 보안 기술을 제공하는 것을 목적으로 한다.
또한, 본 발명은 네트워크에 소속된 정당한 개체들 사이의 안전한 통신 채널을 제공하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 서버 장치와 클라이언트 장치의 네트워크 주소 변이 기반 통신 방법에 있어서, 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하는 단계; 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키는 단계 및 변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 단계를 포함한다.
이 때, 상기 네트워크 주소 변이 기반 통신 방법은 상기 외부 주소를 변이시키는 단계 이후에, 상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 단계를 더 포함할 수 있다.
이 때, 상기 통신하는 단계는 상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.
이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있다.
이 때, 상기 통신하는 단계는 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치 및 상기 클라이언트 장치 간의 네트워크 연결을 유지시킬 수 있다.
이 때, 상기 네트워크 주소 변이 기반 통신 방법은 상기 설정하는 단계 이전에, 상기 서버 장치가 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 단계를 더 포함할 수 있다.
이 때, 상기 익명 주소 정보를 생성하는 단계는 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.
이 때, 상기 외부 주소를 변이시키는 단계는 상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경시킬 수 있다.
이 때, 상기 익명 주소 정보를 생성하는 단계는 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소 및 익명 포트를 포함하는 익명 주소 정보를 생성하는 단계를 더 포함할 수 있다.
이 때, 상기 네트워크 주소 변이 기반 통신 방법은 상기 익명 주소 정보를 생성하는 단계 이전에, 상기 서버 장치가 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 서버 장치와 클라이언트 장치가 세션 키를 공유하는 단계를 더 포함할 수 있다.
이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 서버 장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신할 수 있다.
이 때, 상기 하나 이상의 프로세서는 상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시킬 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.
이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치와의 네트워크 연결을 유지시킬 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.
이 때, 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 클라이언트 장치가 세션 키를 공유할 수 있다.
이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 클라이언트 장치는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 서버 장치에게 패킷을 송신하기 위해 서버 장치의 네트워크 인터페이스의 외부 주소를 설정하고, 기설정된 주소 변이 규칙에 따라 변이되는 외부 주소를 목적지 주소로 설정하여 상기 서버 장치의 외부 주소를 통해 패킷을 송신하여 통신할 수 있다.
본 발명은 네트워크 환경에서 공격자의 정찰 행위에 소요되는 비용을 증가시키는 능동적 보안 기술을 제공할 수 있다.
또한, 본 발명은 네트워크에 소속된 정당한 개체들 사이의 안전한 통신 채널을 제공할 수 있다.
도 1은 네트워크 주소 변이 기반 통신 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 시스템을 을 나타낸 블록도이다.
도 3은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 시퀀스 다이어그램이다.
도 4는 도 3에 도시된 인증 및 세션 키 공유 단계의 일 예를 나타낸 시퀀스 다이어그램이다.
도 5는 도 3에 도시된 네트워크 주소 변이 단계의 일 예를 나타낸 시퀀스 다이어그램이다.
도 6은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 도면이다.
도 7은 본 발명의 일실시예에 따른 ARP 테이블의 N:1 매핑을 통한 패킷 포워딩을 나타낸 도면이다.
도 8은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 클라이언트 장치를 나타낸 블록도이다.
도 9는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 서버 장치를 나타낸 블록도이다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 시스템을 을 나타낸 블록도이다.
도 2를 참조하면, 네트워크 주소 변이 기반 통신 시스템은 인증 서버(100), 클라이언트 장치(200) 및 보호 대상 서버(서버 장치)(300)를 포함할 수 있다.
인증 서버(100)는 클라이언트 장치(200) 및 보호 대상 서버(300)를 인증할 수 있다.
클라이언트 장치(200) 및 보호 대상 서버(300)는 인증 서버(100)에게 인증을 요청하고 인증 받은 개체들 사이에서면 세션 키 생성 및 분배를 수행할 수 있다.
이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 서브 네트워크에서 사용하기 위한 세션 키를 생성하고 분배할 수 있다.
이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 세션 키를 이용하여 익명 주소 정보를 생성할 수 있다.
또한, 클라이언트 장치(200) 및 보호 대상 서버(300)는 네트워크 주소 변이 네트워크 주소 추적을 수행할 수 있다.
이 때, 보호 대상 서버(300)는 익명 주소 정보를 생성하고, 익명 주소 정보를 이용하여 보호 대상 서버(300)의 네트워크 주소를 변이시킬 수 있다.
이 때, 클라이언트 장치(200)는 익명 주소 정보를 생성하고, 익명 주소 정보를 이용하여 보호 대상 서버(300)의 변이되는 네트워크 주소를 추적할 수 있다.
이 때, 서버 장치(300)는 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.
이 때, 클라이언트 장치(200)는 상기 서버 장치(300)가 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 추적하는데 이용되는 익명 주소 정보를 생성할 수 있다.
이 때, 클라이언트 장치(200) 및 보호 대상 서버(300)는 기설정된 네트워크 주소 변이 규칙에 기반하여 네트워크 주소를 변이시키면서 패킷을 송수신 하는 보안 통신을 수행할 수 있다.
도 3은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 시퀀스 다이어그램이다. 도 4는 도 3에 도시된 인증 및 세션 키 공유 단계의 일 예를 나타낸 시퀀스 다이어그램이다. 도 5는 도 3에 도시된 네트워크 주소 변이 단계의 일 예를 나타낸 시퀀스 다이어그램이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법은 익명 주소 정보 생성, 네트워크 주소 동기화 및 통신 운영 방법을 수행할 수 있다. 본 발명은 크게 두 가지 단계(인증 및 세션 키 분배 단계 및 네트워크 주소 변이 및 보안 통신 단계)를 포함할 수 있다.
표 1은 본 발명에서 사용하는 Notation에 대한 설명이다.
Server_p_j 서브네트워크 "p"에 소속된 j 번째 보호대상 서버
Client_p_i "p" 서브네트워크에 소속된 보호대상 서버 "Server_p_j"에게 서비스를 제공받는 클라이언트 "i"
SK_p_k Server_p_j 와 Client_p_i들이 "k" 번째 세션에서 익명 주소를 생성할 때 사용하는 비밀 키(대칭키)
IP_j_k_c 보호대상 서버 "j"가 "k"번째 세션에서 "c"번째 주소 변이를 수행할 때 사용하는 IP 주소
PORT_j_s_k_c 보호대상 서버 "j"에서 제공하는 서비스 "s"가 "k"번째 세션에서 "c"번째 주소 변이를 수행할 때 사용하는 Port [단일 보호대상 서버에서는 다수의 서비스를 제공할 수 있다. 서비스들은 프로세스단위로 구분되며 개별 프로세스는 각 각 서로 다른 Port를 사용해야한다.]
Tp 서브네트워크 "p"에서 사용하는 표준 시간 (시:분:초)
αp 서브네트워크 "p"에서 소속된 보호대상 서버의 개수
αp_j Server_p_j에서 운영 중인 프로세스의 개수
CTRh 익명 값 생성 함수 재귀적 호출 횟수
HX( ) "x"를 키로 사용하는 일 방향 해시 함수, 익명 값 생성에 사용
HX: {0,1}* ⅹ key → {0,1}256
V IP생성에 사용될 일 방향 해시 함수의 출력 값, 익명 값
vX n-bit로 분할 된 익명 값 V
V' vX들 중 중복된 값을 제거한 집합
V'' αp개 만큼 생성된 익명 IP의 집합
P Port 생성에 사용될 일 방향 해시 함수의 출력 값, 익명 값
pX 16-bit로 분할 된 익명 값 P
P' pX들 중 중복된 값을 제거한 집합
P'' αp_j개 만큼 생성된 익명 Port의 집합
f( ) 익명 주소(IP, Port) 생성 함수
단계(S110) 및 단계(S120)는 익명 주소 생성 및 동기화를 위한 사전 준비 단계이다.
단계(S110) 및 단계(S120)는 일반적인 IT환경에서 사용중인 개체 인증 기법(인증서 기반, 비 인증서 기반)과 키 관리(분배 및 업데이트)기법을 사용할 수 있다.
단계(S110) 및 단계(S120)는 다양한 개체 인증 및 키 관리 기법을 사용할 수 있다.
단계(S110) 및 단계(S120)는 익명 주소 정보를 생성하기 위해 사용되는 세션 키를 생성하고 공유할 수 있다.
도 4를 참조하면, 단계(S110)는 인증 서버(100)가 클라이언트 장치(200)와 서버 장치(300)의 개체 인증을 수행할 수 있다.
단계(S110)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(보호 대상 서버, Server_p_j)(300)가 인증 서버(Authentication Server)(100)로부터 인증을 받을 수 있다.
이 때, 단계(S110)는 인증 과정을 통과한 개체들만 단계(S120)의 세션 키 생성 및 분배 과정에 진입할 수 있다.
단계(S120)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(보호 대상 서버, Server_p_j)(300)가 세션 키 생성 및 분배를 수행할 수 있다.
이 때, 단계(S120)는 정상적으로 개체 인증과 세션 키 분배 과정을 종료하면 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)는 모두 동일한 그룹 세션 키 "SK_p_k"를 공유할 수 있다. 단계(S120)는 시스템이 시작되는 최초 단계이므로 0번째 세션에 상응할 수 있다. SK_p_k는 익명 주소 생성에 사용되는 비밀 키로써, 정당한 개체들만 획득할 수 있다.
이 때, 단계(S120)는 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)가 자신이 소속된 서브네트워크 "p"에서 사용할 세션 키를 생성 하고 분배할 수 있다.
이 때, 단계(S120)는 인증 서버(100) 또는 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)가 자체적으로 세션 키를 생성하여 익명 주소 정보를 생성하기 위한 그룹 세션 키 "SK_p_k"를 분배 할 수 있다.
단계(S110)과 단계(S120)을 모두 정상 종료한 개체들은 0번째 세션에서 사용할 세션 키 "SK_p_0"을 분배 받아 익명 주소 정보 생성에 사용할 수 있다.
이 때, k번째 세션에 사용할 세션 키 "SK_p_k"는 세션 키 업데이트 과정을 추가로 수행하여 생성할 수 있다.
도 5를 참조하면, 단계(S130)는 네트워크 주소 변이에 사용할 익명 주소 정보를 생성하고 동기화 시킬 수 있다
이 때, 단계(S130)는 익명 주소 정보를 이용하여 서버 장치(Server_p_j)(300)의 네트워크 주소를 변이시킬 수 있다.
단계(S130)는 익명 주소 정보를 생성하고 동기화 시키는 단계(S131) 및 단계(S131)에서 생성한 익명 주소를 이용하여 클라이언트 장치(Client_p_i)(200)와 서버 장치(Server_p_j)(300)의 네트워크 주소를 변이하는 단계(S132)를 포함할 수 있다.
단계(S130)는 서버 장치(Server_p_j)(300)와 클라이언트 장치(Client_p_i)(200)의 상호작용으로 수행될 수 있다.
단계(130)의 상세한 설명을 시작하기 앞서, 본 발명의 일실시예에 따른 서버 장치(300)와 클라이언트 장치(200)의 가정 사항을 설명한다.
예를 들어, 서버 장치(Server_p_j)(300)가 소속된 서브네트워크 "p"는 IPv4 주소체계를 사용할 수 있다.
서브넷 마스크(Subnet mask)로 xxx.xxx.xxx.xxx를 사용할 때, 마스크(mask)는 β bit이고, 가용 IP 주소 대역은 0 ~ 2n-1 이며, n = 32 - β 로 산출할 수 있다.
예를 들어, 서브넷 마스크(Subnet mask)가 255.255.255.0 일경우, β = 24이고 n = 8이므로, 가용 IP 주소 대역은 0~255 일 수 있다. 이 경우 생성되는 익명 주소의 크기는 8bit이나, 네트워크 주소와 게이트웨이 주소 그리고 브로드캐스트 주소 3개를 제외한 나머지 주소만 서브 네트워크내의 호스트에게 할당할 수 있다.
이 때, 해당 서브네트워크에 존재하는 서버 장치(Server_p_j)(300)의 수는 αp 개일 수 있다.
서버 장치(Server_p_j)(300)들은 정상적으로 개체 인증을 통과한 후 세션 키를 분배 받은 상태일 수 있다.
이 때, 모든 서버 장치(300)들과 클라이언트 장치(200)들은 시간 동기화가 되어 있을 수 있으며, 위의 과정을 통해 분배 받은 세션 키를 기반으로 기 약속된 규칙에 따라 상호 간의 메시지 교환 절차가 없이 스스로 주소를 생성할 수 있다.
다시 도 5를 참조하면, 단계(S131)는 익명 주소 정보를 생성할 수 있다(Pseudonym Address Generation).
즉, 단계(S131)는 서버 장치(300)가 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.
이 때, 단계(S131)는 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.
이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 무작위 값을 생성할 수 있다.
이 때, 단계(S131)는 익명 주소 정보로 사용하기 위한 무작위 값(랜덤 값)을 생성할 수 있다.
이 때, 단계(S131)는 랜덤 값을 생성하기 위해 일 방향 해시 함수를 사용할 수 있다.
수학식 1은 랜덤 값을 생성하는 알고리즘(일방향 해시 함수)의 일 예를 나타낸 것을 알 수 있다.
[수학식 1]
hSK_p_k(Tp || CTRh) = V
함수 hSK_p_k( )는 SK_k를 비밀키로 사용하는 일 방향 해시 함수로써 출력 값의 크기는 사용하는 일 방향 해시 함수에 따라 가변적일 수 있다.
또한, 단계(S131)는 익명 IP 를 생성할 수 있다.
이 때, 단계(S131)는 αp 개의 서로 다른 n-bit 익명 IP를 생성할 수 있다.
이 때, 단계(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 가 필요할 수 있다.
이 때, 단계(S131)는 랜덤 값 V를 익명 IP로 사용하기 위해서 V를 n-bit 크기로 분할하고 중복된 값을 제거할 수 있다.
이 때, 단계(S131)는 중복된 값을 제거한 후 n-bit 크기의 익명 IP를 αp 개 생성하여 주소 변이에 사용할 익명 IP를 생성할 수 있다. N-bit 크기의 서로 다른 익명 IP를 α 개 생성하는 알고리즘은 수학식 2와 같이 나타낼 수 있다.
[수학식 2]
f(hSK_p_k(Tp || CTRh)) = {v1, v2, ..., vα}
함수 f( )는 N-bit 크기의 서로 다른 익명 IP를 αp 를 생성할 때까지 수학식1을 재귀적으로 호출하는 함수일 수 있다.
단계(S131)는 먼저 V 를 n-bit 크기로 분할할 수 있다.
V = {v1, v2, ..., vX}
이 때, 단계(S131)는 V가 n-bit의 배수가 아닐 경우 나머지 bit는 V에서 제거할 수 있다.
이 때, 단계(S131)는 분할된 V의 원소들 중 중복된 값 삭제 할 수 있다.
V' = {v1, v2, ..., vY} (Y=<X)
이 때, 단계(S131)는 Y가 αp 보다 작으면 CTRh 를 1만큼 증가시킨 후 (수학식 1)을 재귀적으로 호출할 수 있다.
이 때, 단계(S131)는 Y = αp 가 될 때까지 상기 과정을 재귀적으로 수행하여 n-bit 크기의 αp 개 익명 IP를 생성할 수 있다.
V'' = {v1, v2, ..., vαp}
또한, 단계(S131)는 익명 Port 를 생성할 수 있다.
이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 자신이 운영 중인 프로세스 중 네트워크 서비스를 제공하는 프로세스 개수(αp_j개)만큼 익명 포트(Port)를 생성할 수 있다. 일반적으로 포트(Port)는 0~65535 사이에 결정될 수 있다.
이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 16-bit 익명 Port를 αp_j개 생성할 수 있다. 익명 포트(Port)를 생성하는 방법은 아래와 같다.
랜덤 값 P를 익명 주소로 사용하기 위해서 P를 16-bit 크기로 분할하고 중복된 값을 제거할 수 있다. 중복된 값을 제거한 후 16-bit 크기의 익명 주소를 αp_j개 생성하면 포트(Port) 변이에 사용할 익명 포트(Port)를 생성할 수 있다. 16-bit 크기의 서로 다른 익명 포트(Port)를 αp_j개 생성하는 알고리즘은 수학식 3과 같이 나타낼 수 있다.
[수학식 3]
f(hSK_p_k(Tp || CTRh)) = {p1, p2, ..., pαp_j}
이 때, 단계(S131)는 먼저 P 를 16-bit 크기로 분할할 수 있다.
P = {p1, p2, ..., pX}
이 때, 단계(S131)는 P가 16-bit의 배수가 아닐 경우 나머지 bit는 P에서 제거할 수 있다.
이 때, 단계(S131)는 분할된 P의 원소들 중 중복된 값 삭제할 수 있다.
P' = {p1, p2, ..., pY} (Y=<X)
이 때, 단계(S131)는 Y가 αp_j보다 작으면 CTRR 을 1만큼 증가시킨 후 수학식 3을 재귀적으로 호출할 수 있다.
이 때, 단계(S131)는 Y = αp_j가 될 때까지 상기 과정을 재귀적으로 수행하여 16-bit 크기의 αp_j개 익명 주소를 생성할 수 있다.
P'' = {p1, p2, ..., pαp_j}
또한, 단계(S131)는 익명 주소 정보를 저장할 수 있다.
이 때, 단계(S131)는 K번째 세션에서 C번째 주소 변이에 사용할 익명 IP를 α 개 생성한 서버 장치(Server_p_j)(300)가 V'' = {v1, v2, ..., vαp}를 자신의 저장소에 안전하게 익명 주소 정보로 저장할 수 있다.
이 때, 단계(S131)는 서버 장치(Server_p_j)(300)가 주소 저장소를 안전하게 관리할 수 있다.
이 때, 단계(S131)는 K번째 세션에서 C번째 주소 변이에 사용할 익명 Port를 αp_j개 생성한 서버 장치(Server_p_j)(300)가 P'' = {p1, p2, ..., pαp_j}를 자신의 저장소에 안전하게 익명 주소 정보로 저장할 수 있다.
이 때, 단계(S131)는 서버 장치(Server_p_j)(300)는 주소 저장소를 안전하게 관리할 수 있다.
또한, 단계(S132)는 네트워크 주소 변이를 수행할 수 있다(Network Address Mutation).
즉, 단계(S132)는 먼저 서버 장치(300)가 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정할 수 있다.
이 때, 단계(S132)는 주소 변이를 시행하기 앞서 서버 장치(300)가 외부 주소가 변이되어도 클라이언트 장치(200)와 통신하기 위한 히든 터널(Hidden Tunnel)을 구성하기 위하여 아래와 같은 절차대로 네트워크 설정을 수행할 수 있다.
이 때, 단계(S132)는 먼저 독립적인 MAC 주소(MAC address)를 갖는 가상 네트워크 인터페이스(Hidden Interface) 생성할 수 있다.
이 때, 단계(S132)는 가상 네트워크 인터페이스에 임의의 IP network(Hidden Address)를 내부 주소로 설정(IP주소, netmask) 할 수 있다.
이 때, 단계(S132)는 가상 인터페이스의 디폴트 게이트웨이(Default Gateway)를 주소 변이가 시행될 네트워크 인터페이스(External Interface)의 IP 주소(External Address)를 외부 주소로 설정할 수 있다.
이 때, 단계(S132)는 클라이언트 장치(200)로부터 수신하는 인커밍(incoming) 패킷 중에서, 익명 주소 정보로 생성된 Port를 통해 들어오는 패킷을 가상 네트워크 인터페이스(Hidden Interface) 로 포워딩 하기 위한 Destination NAT (IP/Port)를 목적지 주소로 설정할 수 있다.
이 때, 단계(S132)는 클라이언트 장치(200)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 가상 네트워크 인터페이스(Hidden Interface)와의 연결에서 발생된 패킷에 대한 Source NAT (IP/Port)를 소스 주소로 설정할 수 있다.
또한, 단계(S132)는 클라이언트 장치(200)가 네트워크 설정을 수행할 수 있다.
이 때, 단계(S132)는 서버 장치(300)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로의 연결에서 발생된 패킷에 대한 Destination NAT (IP/Port)을 목적지 주소로 설정할 수 있다.
또한, 단계(S132)는 주소 변이 (Server-side) 및 주소 추적 (Client-side)을 수행할 수 있다.
즉, 단계(S132)는 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시킬 수 있다.
이 때, 단계(S132)는 서버 장치(300)가 익명 주소 정보 생성 단계(S131)의 절차를 바탕으로 기설정된 특정 시점과 시간 주기에 따라서 지속적으로 네트워크 인터페이스의 외부 주소를 변경할 수 있다.
이 때, 단계(S132)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경할 수 있다.
이 때, 상기 기설정된 함수는 단계(S110)에서 상기 서버 장치(300)가 상기 클라이언트 장치(200)와 인증을 수행하고, 인증이 성공한 서버 장치(300)와 클라이언트 장치(200)가 공유한 세션 키를 이용하여 상기 무작위 값을 생성할 수도 있다.
이 때, 단계(S132)는 클라이언트 장치(200)도 서버 장치(300)와 동일한 주소 생성 메커니즘을 내장하여 지속적으로 바뀌도록 설정되어 서버 장치(300)의 네트워크 주소를 추적할 수 있다.
이 때, 단계(S132)는 서버 장치(300)와 클라이언트 장치(200)는 외부 주소가 변경 될 때마다 연결이 유실되는 것을 방지하기 위하여 다음과 같은 네트워크 설정을 갱신(Update)할 수 있다. 단계(S132)의 모든 과정은 기설정된 주소 변이 규칙에 따라 주소 변이 주기(특정 시간)에 서버 장치(300)와 클라이언트 장치(200)가 동시에 수행할 수 있다.
먼저, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스의 외부 주소(External Address)(eth0의 IP)를 기설정된 네트워크 주소 변이 규칙에 기반하여 변경할 수 있다.
이 때, 단계(S132)는 서버 장치(300)가 가상 네트워크 인터페이스(Hidden Interface)의 게이트웨이(Default Gateway) 주소를 상기에서 변이된 외부 주소(External Address)로 변경할 수 있다.
이 때, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 수신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하는 상태의 패킷을 Destination NAT 으로 포워딩 하기 위한 설정 테이블 업데이트할 수 있다.
이 때, 단계(S132)는 서버 장치(300)가 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 송신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하지 않는 상태의 패킷을 드롭(DROP) 시키기 위한 설정 테이블 업데이트할 수 있다.
이 때, 단계(S132)는 생성된 연결(Connection)들 중에서 의심스러운 연결을 구분하고, 의심스러운 연결을 강제로 끊어버리기 위해서 커넥션 필터링을 설정할 수 있다.
이 때, 단계(S132)는 다양한 커넥션 필터링 기법으로 의심스러운 연결을 구분해 낼 수 있으며, 커넥션 필터링 기법에 따라서 매 주소 변이 주기마다 강제로 연결을 끊어 낼 수 있다.
이 때, 단계(S132)는 별도의 커넥션 모니터링 프로세스를 통해 새로운 연결이 생성될 때마다 유효성 검사를 수행할 수도 있다
이 때, 단계(S132)는 클라이언트 장치(200)의 특정한 소스 포트(Source Port)를 설정하고, 설정된 소트 포트(Source Port)와 일치하지 않는 연결이 수행되면 의심스러운 연결로 판단할 수 있다.
따라서, 소스 포트(Source Port)는 본래 OS에 정의된 범위 내에서 순차적으로 지정되는 것이지만 이것을 특정지음으로써 공격자는 서버의 IP:Port 외에 자신의 소스 포트(Source Port)마저도 특정 지어야 하는 부담을 갖게 될 수 있다. 결국 공격자가 히든 터널(Hidden Tunnel)에 접속하고 그것을 유지하기 위해 알아내야 하는 정보는 목적지 IP(Destination IP), 목적지 포트(Destination Port), 소스 포트(Source Port)이고, C-class 기준 이에 대한 공격자의 히든 터널(Hidden Tunnel) 예측 복잡도는 수학식 4와 같이 나타낼 수 있다.
[수학식 4]
Figure pat00001
K, l, m은 네트워크 상태나 서비스 포트(Port)에서 제외시킬 요구가 있는 것들을 고려한 상수 값에 상응할 수 있다.
또한, 단계(S132)는 클라이언트 장치(200)가 기설정된 네트워크 주소 변이 규칙에 기반하여 서버 장치(300)에서 변이되는 외부 주소를 추적할 수 있다.
이 때, 단계(S132)는 클라이언트 장치(200)가 응용(Application)에서 서버 장치(300)의 내부 주소(Hidden Address)로 연결을 생성하기 위한 패킷의 목적지 주소(Destination Address)를, 서버 장치(300)의 외부 주소(External Address)로 바꿔주기 위한 Destination NAT 설정 테이블을 업데이트할 수 있다.
이 때, 단계(S132)는 클라이언트 장치(200)가 Destination NAT 가 된 패킷의 Source Port를 기설정된 포트(Port)(기설정된 변이 주기마다 새로 생성하여 바뀔 수 있음)로 바꿔주는 Source NAT 테이블을 업데이트할 수 있다.
이 때, 단계(S132)는 클라이언트 장치(200)가 TCP 연결(Connection) 상태가 "SYN_SENT" 인 커넥션 트래킹(Connection Tracking) 정보를 삭제할 수 있다.
이 때, 단계(S132)는 클라이언트 장치(200)가 TCP[SYN] 패킷이 서버 장치(300)에 도달하기 전에 주소 변이가 발생한 경우, RTO가 지난 후 재전송되는 TCP[SYN] 패킷의 목적지(Destination)가, 이전 주기 때 TCP[SYN] 패킷이 보내지면서 생성된 SYN_SENT 커넥션 트래킹(Connection Tracking) 테이블에 기록될 수 있다.
따라서, 단계(S132)는 클라이언트 장치(200)가 외부 주소가 변이된 이후의 서버 장치(300)의 외부 주소가 아닌, 변이 되기 이전의 서버 장치(300)의 외부 주소로만 계속해서 TCP[SYN] 패킷을 보내기 때문에 3-웨이 헨드쉐이크(3-way handshake) 실패를 복구(Recovery)시키기 위한 목적으로 수행될 수 있다. 이것은 곧 주소 변이 기술에 최소 주기를 산술적으로 정의할 수 있는 기준이 될 수 있으며, TCP[SYN] 패킷이 서버에 도달하는 시간은 RTT/2 이므로, 본 기술의 이론적(이상적)으로 가능한 최소 주소 변이 주기는 수학식 5와 같이 나타낼 수 있다.
[수학식 5]
Figure pat00002
수학식 5에서, k는 서버 장치(300)와 클라이언트 장치(200)가 이상적으로 오차 없는 시간 동기화를 할 수 있고, 모든 주소 변이 프로세싱 시간이 동일하다면 0이 되지만, 현실적으로 불가능하기 때문에 k는 시간 동기화의 미세한 오차, 그리고 서버 장치(300)와 클라이언트 장치(200)의 주소 변이 프로세싱 시간을 고려해 추가되어야 하는 상수 값에 상응할 수 있다.
또한, 단계(S140)는 서버 장치(300)와 클라이언트 장치(200)가 변이되는 외부 주소를 통해 보안 통신을 수행할 수 있다(Secure Communication).
이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하는 경우, 상기 패킷을 상기 가상 네트워크 인터페이스로 포워딩할 수 있다.
이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하지 않는 경우, 상기 클라이언트 장치(200)의 접근을 차단할 수 있다.
이 때, 단계(S140)는 서버 장치(300)가 상기 기설정된 주소 변이 규칙에 기반하여 상기 내부 주소에 상응하는 서버 장치(300)의 소스 주소 정보를 패킷에 포함시켜 상기 클라이언트 장치(200)에게 송신할 수 있다.
이 때, 단계(S140)는 패킷 도청(Packet Eavesdropping)을 통한 서버 추적을 방지할 수 있다.
이 때, 단계(S140)는 네트워크 내부에 침투한 공격자가 서버 장치(300)와 클라이언트 장치(200)의 트래픽을 모니터링하여 패킷 도청(Packet Eavesdropping)을 통해 IP 패킷의 헤더를 보고 현재 서버 장치(300)의 접속 가능 주소가 무엇인지 판단하는 공격 모델에 대응할 수 있다.
예를 들어, 서버 장치(300)의 주소가 A1 ~ A10으로 변한다고 가정했을 때, A1에서 형성된 연결(Connection)에서는 패킷의 목적지(Destination)와 소스(Source)의 IP에 서버 장치(300)의 IP가 A1으로 기록될 것이다. 그 후 서버 장치(300)의 주소가 A2 ~ A10으로 바뀌는 동안 해당 연결(Connection)이 지속된다 하더라도 패킷 헤더에 기록된 서버 장치(300)의 주소는 A1 때의 것으로 기록될 수 있다.
즉, 현재 서버의 주소가 무엇이던 간에 이전에 맺은 연결에 대한 외부 주소로 네트워크 통신을 하게 될 수도 있는 것이다. 그러면 공격자가 A1이 지난 시점에서는 아무리 패킷 도청(Packet Eavesdropping)을 한다 하더라도 서버 장치(300)의 현재 주소를 알 수 없게 될 수 있다.
다만, 공격자가 A1 주기가 끝나기 이전에 패킷 도청(Packet Eavesdropping)을 통해서 서버 장치(300)의 주소를 알아내는 것은 유효하며, 다음 주소 변이 주기에 해당 연결(Connection)을 제거하기 전 까지는 공격에 유효한 시간을 확보한 것으로 간주할 수 있다.
따라서, 본 발명은 서버 장치(300)의 주소와 다른 패킷이 해당 서버 장치(300)에 도착하게 하기 위해서, ARP(Address Resolution Protocol) 테이블의 IP와 MAC에 대한 N:1 매핑을 이용할 수 있다.
서버 장치(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은 고정되어 있으므로).
이 후, OS의 지역 패킷 처리 흐름(Local Packet Processing Flow)과 초기 네트워크 설정에서 설정해 둔 Destination NAT 테이블에 의하여, 패킷이 OS 계층으로 올라가자마자 Destination IP 주소가 내부 주소(Hidden Address)로 바뀔 수 있고, 다음 절차에서 상기 패킷이 서버 장치(300)의 IP인지 판단할 수 있다. 서버 장치(300)는 네트워크 인터페이스(External Interface) 외에도 초기 네트워크 설정 과정 에서 생성한 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)가 있기 때문에, 자신의 패킷 임을 인식하고 IP계층을 통과하여 상위 레이어로 올라가게 될 수 있다.
상기 기법은 ARP 테이블에서 N:1 매핑을 기반으로 하기 때문에 특정 서버 장치(300)의 IP 주소 변위 범위인 N 중에 한 개라도 다른 서버 장치가 차지하게 된다면 연결(Connection)이 끊어지기 때문에 주소 변이 서브 네트워크에 할당된 주소 범위를 각각의 주소 변이 서버 장치(300)들이 나눠 갖고 침범하지 말아야 한다. 이것이 적용된 기술에서의 C-class 내의 N개의 서버 장치(300) 기준, 공격자의 히든 터널(Hidden Tunnel)의 예측 복잡도는 수학식 6과 같이 나타낼 수 있다.
[수학식 6]
Figure pat00003
즉, 단계(S140)는 상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.
이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있고, 상기 테이블은 상기 ARP 테이블에 상응할 수 있다.
이 때, 단계(S140)는 서버 장치(300)가 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치(300) 및 상기 클라이언트 장치(200) 간의 네트워크 연결을 유지시킬 수 있다.도 6은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 나타낸 도면이다.
도 6을 참조하면, 상기에서 설명한 바와 같이 서버 장치(300)와 클라이언트 장치(200)가 초기 네트워크 설정이 완료된 상태에서, 클라이언트 장치(200)가 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로 접속하여 히든 터널(Hidden Tunnel)을 생성할 때 발생되는 패킷의 흐름은 도 6과 같이 나타낼 수 있다. 도 6에 도시된 바와 같이 히든 터널(Hidden Tunnel)로 생성된 연결(Connection)은 서버의 IP 주소인 외부 주소(External Address(eth0의 IP))의 IP가 변하더라도 유실되지 않고, 네트워크 인터페이스(External Interface)만 외부에서 직접적으로 접근할 수 있다.
이 때, 클라이언트 장치(200)가 특정 시간 대에 특정 조건을 만족하여 서버 장치(300)의 네트워크 인터페이스(External Interface)에 접근하게 되면, 서버 장치(300)는 유효한 클라이언트 장치(200)의 연결 시도라고 판단하여, 패킷을 가상 네트워크 인터페이스로 포워딩 하여 히든 터널(Hidden Tunnel)로 연결시켜줄 수 있다. 여기서 언급된 특정 시간/특정 조건은 공격자에게 공개되지 않는 숨겨진 정보(Hidden information)이고, 기설정된 주소 변이 규칙에 관한 정보일 수 있다.
도 7은 본 발명의 일실시예에 따른 ARP 테이블의 N:1 매핑을 통한 패킷 포워딩을 나타낸 도면이다.
도 7을 참조하면, 본 발명의 일실시예에 따른 서버 장치(300), 클라이언트 장치(200) 및 네트워크 주소 변이 기반 통신 방법은 패킷 도청(Packet Eavesdropping)을 통한 서버 추적을 방지할 수 있다.
이 때, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법은 네트워크 내부에 침투한 공격자가 서버 장치(300)와 클라이언트 장치(200)의 트래픽을 모니터링하여 패킷 도청(Packet Eavesdropping)을 통해 IP 패킷의 헤더를 보고 현재 서버 장치(300)의 접속 가능 주소가 무엇인지 판단하는 공격 모델에 대응할 수 있다.
예를 들어, 서버 장치(300)의 주소가 A1 ~ A10으로 변한다고 가정했을 때, A1에서 형성된 연결(Connection)에서는 패킷의 목적지(Destination)와 소스(Source)의 IP에 서버 장치(300)의 IP가 A1으로 기록될 것이다. 그 후 서버 장치(300)의 주소가 A2 ~ A10으로 바뀌는 동안 해당 연결(Connection)이 지속된다 하더라도 패킷 헤더에 기록된 서버 장치(300)의 주소는 A1 때의 것으로 기록될 수 있다.
즉, 현재 서버의 주소가 무엇이던 간에 이전에 맺은 연결에 대한 외부 주소로 네트워크 통신을 하게 될 수도 있는 것이다. 그러면 공격자가 A1이 지난 시점에서는 아무리 패킷 도청(Packet Eavesdropping)을 한다 하더라도 서버 장치(300)의 현재 주소를 알 수 없게 될 수 있다.
다만, 공격자가 A1 주기가 끝나기 이전에 패킷 도청(Packet Eavesdropping)을 통해서 서버 장치(300)의 주소를 알아내는 것은 유효하며, 다음 주소 변이 주기에 해당 연결(Connection)을 제거하기 전 까지는 공격에 유효한 시간을 확보한 것으로 간주할 수 있다.
따라서, 본 발명은 서버 장치(300)의 주소와 다른 패킷이 해당 서버 장치(300)에 도착하게 하기 위해서, ARP(Address Resolution Protocol) 테이블의 IP와 MAC에 대한 N:1 매핑을 이용할 수 있다.
서버 장치(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은 고정되어 있으므로).
이 후, OS의 지역 패킷 처리 흐름(Local Packet Processing Flow)과 초기 네트워크 설정에서 설정해 둔 Destination NAT 테이블에 의하여, 패킷이 OS 계층으로 올라가자마자 Destination IP 주소가 내부 주소(Hidden Address)로 바뀔 수 있고, 다음 절차에서 상기 패킷이 서버 장치(300)의 IP인지 판단할 수 있다. 서버 장치(300)는 네트워크 인터페이스(External Interface) 외에도 초기 네트워크 설정 과정 에서 생성한 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)가 있기 때문에, 자신의 패킷 임을 인식하고 IP계층을 통과하여 상위 레이어로 올라가게 될 수 있다.
상기 기법은 ARP 테이블에서 N:1 매핑을 기반으로 하기 때문에 특정 서버 장치(300)의 IP 주소 변위 범위인 N 중에 한 개라도 다른 서버 장치가 차지하게 된다면 연결(Connection)이 끊어지기 때문에 주소 변이 서브 네트워크에 할당된 주소 범위를 각각의 주소 변이 서버 장치(300)들이 나눠 갖고 침범하지 말아야 한다. 이것이 적용된 기술에서의 C-class 내의 N개의 서버 장치(300) 기준, 공격자의 히든 터널(Hidden Tunnel)의 예측 복잡도는 상기 수학식 6과 같이 나타낼 수 있다.
도 8은 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 클라이언트 장치를 나타낸 블록도이다.
도 8을 참조하면, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 클라이언트 장치(200)는 키 저장부(210), 제1 랜덤 값 생성부(220), 익명 IP 생성부(230), 제2 랜덤 값 생성부(240), 익명 포트 생성부(250), 익명 주소 저장부(260) 및 NAT 설정 정보 업데이트부(270)를 포함할 수 있다.
키 저장부(210)는 서버 장치(300)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 세션 키를 생성하여 분배 받은 세션 키를 저장할 수 있다.
제1 랜덤 값 생성부(220)는 네트워크 주소 변이에 사용하기 위해 익명 IP 생성에 사용되는 제1 랜덤 값을 생성할 수 있다.
익명 IP 생성부(230)는 기설정된 주소 변이 규칙에 따라 세션 키와 제1 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 IP를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.
제2 랜덤 값 생성부(240)는 네트워크 주소 변이에 사용하기 위해 익명 포트 생성에 사용되는 제2 랜덤 값을 생성할 수 있다.
익명 포트 생성부(250)는 기설정된 주소 변이 규칙에 따라 세션 키와 제2 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 포트를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.
익명 주소 저장부(260)는 생성한 복수개의 익명 IP 주소들과 복수개의 익명 포트들을 익명 주소 정보로 저장할 수 있다.
NAT 설정 정보 업데이트부(270)는 기설정된 주소 변이 규칙에 따라 익명 주소 정보를 이용하여 서버 장치(300)의 네트워크 인터페이스의 외부 주소와 통신하기 위한 목적지 주소를 패킷에 포함시켜 생성할 수 있다.
NAT 설정 정보 업데이트부(270)는 기설정된 주소 변이 규칙에 따라 서버 장치(300)의 내부 주소로 포워딩되기 위한 클라이언트 장치(200)의 소스 주소를 패킷에 포함시켜 생성할 수 있다.
NAT 설정 정보 업데이트부(270)는 서버 장치(300)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 서버 장치(300)의 가상 네트워크 인터페이스(Hidden Interface)로의 연결(Connection)에서 발생된 패킷에 대한 Destination NAT (IP/Port)을 목적지 주소로 설정할 수 있다.
이 때, NAT 설정 정보 업데이트부(270)는 서버 장치(300)와 동일한 주소 생성 메커니즘을 내장하여 지속적으로 바뀌도록 설정되어 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 추적할 수 있다.
도 9는 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 서버 장치를 나타낸 블록도이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 네트워크 주소 변이 기반 통신 방법을 위한 서버 장치(300)는 키 저장부(310), 제1 랜덤 값 생성부(320), 익명 IP 생성부(330), 제2 랜덤 값 생성부(340), 익명 포트 생성부(350), 익명 주소 저장부(360), 가상 인터페이스 게이트웨이 업데이트부(370), NAT 설정 정보 업데이트부(380) 및 네트워크 주소 변경부(390)를 포함할 수 있다.
키 저장부(310)는 클라이언트 장치(200)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 세션 키를 생성하여 분배 받은 세션 키를 저장할 수 있다.
제1 랜덤 값 생성부(320)는 네트워크 주소 변이에 사용하기 위해 익명 IP 생성에 사용되는 제1 랜덤 값을 생성할 수 있다.
익명 IP 생성부(330)는 기설정된 주소 변이 규칙에 따라 세션 키와 제1 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 IP를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.
제2 랜덤 값 생성부(340)는 네트워크 주소 변이에 사용하기 위해 익명 포트 생성에 사용되는 제2 랜덤 값을 생성할 수 있다.
익명 포트 생성부(350)는 기설정된 주소 변이 규칙에 따라 세션 키와 제2 랜덤 값을 이용하여 일 방향 해시 함수를 통해 익명 포트를 생성할 수 있다. 상세한 생성 과정은 단계(S131)에서 설명하고 있다.
익명 주소 저장부(360)는 생성한 복수개의 익명 IP 주소들과 복수개의 익명 포트들을 익명 주소 정보로 저장할 수 있다.
가상 인터페이스 게이트웨이 업데이트부(370)는 주소 변이를 시행하기 앞서 외부 주소가 변이되어도 클라이언트 장치(200)와 통신하기 위한 히든 터널(Hidden Tunnel)을 구성하기 위하여 가상 네트워크 인터페이스를 설정할 수 있다.
이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 먼저 독립적인 MAC 주소(MAC address)를 갖는 가상 네트워크 인터페이스(Hidden Interface) 생성할 수 있다.
이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 가상 네트워크 인터페이스에 임의의 IP network(Hidden Address)를 내부 주소로 설정(IP주소, netmask) 할 수 있다.
이 때, 가상 인터페이스 게이트웨이 업데이트부(370)는 가상 네트워크 인터페이스(Hidden Interface)의 게이트웨이(Default Gateway) 주소를 상기에서 변이된 외부 주소(External Address)로 변경할 수 있다.
NAT 설정 정보 업데이트부(380)는 클라이언트 장치(200)로부터 수신하는 incoming 패킷 중에서, 익명 주소 정보로 생성된 Port를 통해 들어오는 패킷을 가상 네트워크 인터페이스(Hidden Interface) 로 포워딩 하기 위한 Destination NAT (IP/Port)를 목적지 주소로 설정할 수 있다.
이 때, NAT 설정 정보 업데이트부(380)는 클라이언트 장치(200)에게 송신하는 아웃고잉(outgoing) 패킷 중에서, 가상 네트워크 인터페이스(Hidden Interface)로 연결된 연결(Connection)에서 발생된 패킷에 대한 Source NAT (IP/Port)를 소스 주소로 설정할 수 있다.
이 때, NAT 설정 정보 업데이트부(380)는 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 수신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하는 상태의 패킷을 Destination NAT 으로 포워딩 하기 위한 설정 테이블 업데이트할 수 있다.
이 때, NAT 설정 정보 업데이트부(380)는 네트워크 인터페이스(External Interface)로의 외부 주소를 통해 송신하는 인커밍(Incoming) 패킷 중에서, 주소 변이 규칙을 만족하지 않는 상태의 패킷을 드롭(DROP) 시키기 위한 설정 테이블 업데이트할 수 있다.
네트워크 주소 변경부(390)는 가상 인터페이스의 디폴트 게이트웨이(Default Gateway)를 주소 변이가 시행될 네트워크 인터페이스(External Interface)의 IP 주소(External Address)를 외부 주소로 설정할 수 있다.
이 때, 네트워크 주소 변경부(390)는 익명 주소 정보 생성 단계(S131)의 절차를 바탕으로 기설정된 특정 시점과 시간 주기에 따라서 지속적으로 네트워크 인터페이스의 외부 주소를 변경할 수 있다.
이 때, 네트워크 주소 변경부(390)는 외부 주소가 변이 될 때마다 연결(Connection)이 유실될 수 있는 위험을 방지하기 위하여 네트워크 설정을 갱신(Update) 할 수 있다.
이 때, 네트워크 주소 변경부(390)는 네트워크 인터페이스의 외부 주소(External Address)(eth0의 IP)를 기설정된 네트워크 주소 변이 규칙에 기반하여 변경할 수 있다.
이 때, 네트워크 주소 변경부(390)는 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경할 수 있다.
도 10은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 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)을 포함할 수 있다.
이 때, 본 발명의 일실시예에 따른 서버 장치(300)는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치(200)로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치(200)와 통신할 수 있다.
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 인증이 성공한 클라이언트 장치(200)와 세션 키를 공유할 수 있다.
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성할 수 있다.
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.
이 때, 상기 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시킬 수 있다.
이 때, 서버 장치(300)의 상기 적어도 하나 이상의 프로그램은 상기 클라이언트 장치(200)와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록할 수 있다.
이 때, 상기 테이블에는 복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것일 수 있고, 상기 테이블은 상기 ARP 테이블에 상응할 수 있다.
이 때, 서버 장치(300)의 상기 적어도 하나 이상의 프로그램은 상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치(200)와의 네트워크 연결을 유지시킬 수 있다.
이 때, 서버 장치(300)의 적어도 하나 이상의 프로그램은 상기 기설정된 주소 변이 규칙에 기반하여 기정의된 클라이언트 장치(200)의 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하는 경우, 상기 패킷을 상기 가상 네트워크 인터페이스로 포워딩 할 수 있다.
이 때, 서버 장치(300)의 하나 이상의 프로세서는 상기 기설정된 주소 변이 규칙에 기반하여 클라이언트 장치(200)의 기정의된 제1 소스 주소 정보와 상기 클라이언트 장치(200)로부터 수신한 패킷에 포함된 클라이언트 장치(200)의 제2 소스 주소 정보가 일치하지 않는 경우, 상기 클라이언트 장치의 접근을 차단할 수 있다.
이 때, 서버 장치(300)의 하나 이상의 프로세서는 상기 기설정된 주소 변이 규칙에 기반하여 상기 내부 주소에 상응하는 서버 장치(300)의 소스 주소 정보를 패킷에 포함시켜 상기 클라이언트 장치(200)에게 송신할 수 있다.
또한, 본 발명의 일실시예에 따른 클라이언트 장치(200)는 하나 이상의 프로세서 및 상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리를 포함하고, 상기 적어도 하나 이상의 프로그램은 서버 장치(300)에게 패킷을 송신하기 위해 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 설정하고, 기설정된 주소 변이 규칙에 따라 변이되는 외부 주소를 목적지 주소로 설정하여 상기 서버 장치(300)의 외부 주소를 통해 패킷을 송신하여 통신할 수 있다.
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 서버 장치(300)에 대해서 인증 서버(100)를 통해 인증을 수행하고, 서버 장치(300)와 세션 키를 공유할 수 있다.
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 상기 서버 장치(300)의 네트워크 인터페이스의 외부 주소를 추적하기 위한 익명 주소 정보를 생성할 수 있다.
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성할 수 있다.
이 때, 기설정된 함수는 상기 세션 키를 이용하여 상기 무작위 값을 생성할 수 있다.
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 기설정된 주소 변이 규칙에 기반하여 서버 장치(300)의 내부 주소로 포워딩 되는 클라이언트 장치(200)의 소스 주소를 패킷에 포함시켜 상기 서버 장치(300)에게 송신할 수 있다.
이 때, 클라이언트 장치(200)의 상기 적어도 하나 이상의 프로그램은 상기 서버 장치(300)가 상기 클라이언트 장치(200)로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 추적하는데 이용되는 익명 주소 정보를 생성할 수 있다.
이상에서와 같이 본 발명의 일실시예에 따른 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
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: 네트워크

Claims (20)

  1. 서버 장치와 클라이언트 장치의 네트워크 주소 변이 기반 통신 방법에 있어서,
    상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하는 단계;
    기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키는 단계; 및
    변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 단계;
    를 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  2. 청구항 1에 있어서,
    상기 네트워크 주소 변이 기반 통신 방법은
    상기 외부 주소를 변이시키는 단계 이후에,
    상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  3. 청구항 1에 있어서,
    상기 통신하는 단계는
    상기 서버 장치 및 상기 클라이언트 장치의 연결이 수립되는 시점의 상기 외부 주소 및 상기 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  4. 청구항 3에 있어서,
    상기 테이블에는
    복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  5. 청구항 4에 있어서,
    상기 통신하는 단계는
    상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 서버 장치 및 상기 클라이언트 장치 간의 네트워크 연결을 유지시키는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  6. 청구항 1에 있어서,
    상기 네트워크 주소 변이 기반 통신 방법은
    상기 설정하는 단계 이전에,
    상기 서버 장치가 상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  7. 청구항 6에 있어서,
    상기 익명 주소 정보를 생성하는 단계는
    기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  8. 청구항 7에 있어서,
    상기 외부 주소를 변이시키는 단계는
    상기 기설정된 주소 변이 규칙에 따라 기설정된 주기마다 상기 익명 주소 정보에 포함된 복수개의 익명 IP 주소들 중 어느 하나 및 복수개의 익명 포트들 중 어느 하나를 이용하여 상기 외부 주소를 변경시키는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  9. 청구항 8에 있어서,
    상기 네트워크 주소 변이 기반 통신 방법은
    상기 익명 주소 정보를 생성하는 단계 이전에,
    상기 서버 장치가 상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 서버 장치와 클라이언트 장치가 세션 키를 공유하는 단계를 더 포함하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  10. 청구항 9에 있어서,
    상기 기설정된 함수는
    상기 세션 키를 이용하여 상기 무작위 값을 생성하는 것을 특징으로 하는 네트워크 주소 변이 기반 통신 방법.
  11. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리;
    를 포함하고,
    상기 적어도 하나 이상의 프로그램은
    클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하고, 상기 네트워크 인터페이스를 통해 수신된 패킷을 가상 네트워크 인터페이스로 포워딩 하기 위한 상기 가상 네트워크 인터페이스의 내부 주소를 설정하고, 기설정된 네트워크 주소 변이 규칙에 기반하여 상기 외부 주소를 변이시키고, 변이된 외부 주소를 통해 상기 클라이언트 장치로부터 수신한 패킷을 상기 가상 네트워크 인터페이스로 포워딩하여 상기 클라이언트 장치와 통신하는 것을 특징으로 하는 서버 장치.
  12. 청구항 11에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 가상 네트워크 인터페이스의 게이트웨이 주소를 변이된 외부 주소로 변경시키는 것을 특징으로 하는 서버 장치.
  13. 청구항 12에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 클라이언트 장치와 연결이 수립되는 시점의 상기 외부 주소 및 서버 장치의 MAC 주소(Media Access Control 주소)를 매핑하여 테이블에 기록하는 것을 특징으로 하는 서버 장치.
  14. 청구항 13에 있어서,
    상기 테이블에는
    복수의 외부 주소들 각각이 상기 MAC 주소와 매핑되어 기록되는 것을 특징으로 하는 서버 장치.
  15. 청구항 14에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 테이블에 기록된 복수개의 외부 주소들 중 어느 하나를 통해 상기 클라이언트 장치로부터 패킷을 수신하여 상기 클라이언트 장치와의 네트워크 연결을 유지시키는 것을 특징으로 하는 서버 장치.
  16. 청구항 11에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 클라이언트 장치로부터 패킷을 수신하는 네트워크 인터페이스의 외부 주소를 설정하는데 이용되는 익명 주소 정보를 생성하는 것을 특징으로 하는 서버 장치.
  17. 청구항 16에 있어서,
    상기 적어도 하나 이상의 프로그램은
    기설정된 함수를 이용하여 무작위 값으로부터 복수개의 익명 IP 주소들 및 복수개의 익명 포트들을 포함하는 익명 주소 정보를 생성하는 것을 특징으로 하는 서버 장치.
  18. 청구항 17에 있어서,
    상기 적어도 하나 이상의 프로그램은
    상기 클라이언트 장치와 인증을 수행하고, 인증이 성공한 클라이언트 장치가 세션 키를 공유하는 것을 특징으로 하는 서버 장치.
  19. 청구항 18에 있어서,
    상기 기설정된 함수는
    상기 세션 키를 이용하여 상기 무작위 값을 생성하는 것을 특징으로 하는 서버 장치.
  20. 하나 이상의 프로세서; 및
    상기 하나 이상의 프로세서에 의해 실행되는 적어도 하나 이상의 프로그램을 저장하는 실행메모리;
    를 포함하고,
    상기 적어도 하나 이상의 프로그램은
    서버 장치에게 패킷을 송신하기 위해 서버 장치의 네트워크 인터페이스의 외부 주소를 설정하고, 기설정된 주소 변이 규칙에 따라 변이되는 외부 주소를 목적지 주소로 설정하여 상기 서버 장치의 외부 주소를 통해 패킷을 송신하여 통신하는 것을 특징으로 하는 클라이언트 장치.
KR1020190056476A 2018-06-29 2019-05-14 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법 KR102136082B1 (ko)

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 true KR20200002599A (ko) 2020-01-08
KR102136082B1 KR102136082B1 (ko) 2020-07-22

Family

ID=69154234

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190056476A KR102136082B1 (ko) 2018-06-29 2019-05-14 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법

Country Status (1)

Country Link
KR (1) KR102136082B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102362320B1 (ko) 2020-11-11 2022-02-15 주식회사 스텔스솔루션 능동형 네트워크 보안용 주소변이 접속 시스템 및 방법
KR102476672B1 (ko) * 2022-06-16 2022-12-12 (주)대영에스텍 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100136255A (ko) * 2009-06-18 2010-12-28 삼성전자주식회사 디지털 기기간에 무선랜 자동 연결을 위한 방법 및 이를 위한 디지털 기기
JP2012156957A (ja) * 2011-01-28 2012-08-16 Hitachi Ltd ネットワークシステム、制御装置、計算機、及び、ネットワーク装置
KR101626405B1 (ko) * 2015-05-06 2016-06-01 주식회사 모바일컨버전스 동적 주소 변환을 이용한 서버 보안 방법 및 시스템

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20100136255A (ko) * 2009-06-18 2010-12-28 삼성전자주식회사 디지털 기기간에 무선랜 자동 연결을 위한 방법 및 이를 위한 디지털 기기
JP2012156957A (ja) * 2011-01-28 2012-08-16 Hitachi Ltd ネットワークシステム、制御装置、計算機、及び、ネットワーク装置
KR101626405B1 (ko) * 2015-05-06 2016-06-01 주식회사 모바일컨버전스 동적 주소 변환을 이용한 서버 보안 방법 및 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102362320B1 (ko) 2020-11-11 2022-02-15 주식회사 스텔스솔루션 능동형 네트워크 보안용 주소변이 접속 시스템 및 방법
KR102476672B1 (ko) * 2022-06-16 2022-12-12 (주)대영에스텍 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법

Also Published As

Publication number Publication date
KR102136082B1 (ko) 2020-07-22

Similar Documents

Publication Publication Date Title
Zhuang et al. Cashmere: Resilient anonymous routing
US10382595B2 (en) Systems and methods for protecting communications
US8155130B2 (en) Enforcing the principle of least privilege for large tunnel-less VPNs
US9237059B2 (en) Method and apparatus for dynamic mapping
Arce et al. An analysis of the slapper worm
US7043633B1 (en) Method and apparatus for providing adaptive self-synchronized dynamic address translation
Luo et al. RPAH: Random port and address hopping for thwarting internal and external adversaries
CN105991655B (zh) 用于缓解基于邻居发现的拒绝服务攻击的方法和装置
WO2005006663A1 (en) Location privacy for internet protocol networks using cryptographically protected prefixes
CN109698791B (zh) 一种基于动态路径的匿名接入方法
WO2018144314A1 (en) Service endpoint interconnect in a virtual private gateway
KR102136082B1 (ko) 서버 장치, 클라이언트 장치 및 네트워크 주소 변이 기반 통신 방법
US20240195790A1 (en) Centralized management of private networks
US11171915B2 (en) Server apparatus, client apparatus and method for communication based on network address mutation
CN109347836B (zh) 一种IPv6网络节点身份安全保护方法
Halgamuge Latency estimation of blockchain-based distributed access control for cyber infrastructure in the iot environment
CN117375862A (zh) 报文转发方法、系统、网络设备、存储介质及程序产品
Kwon et al. Mondrian: Comprehensive Inter-domain Network Zoning Architecture.
Evans Methods for secure decentralized routing in open networks
KR102488501B1 (ko) 비인식 nic 기능을 갖는 공유기의 이더넷 드라이버에서 수행되는 주소 변이 방법
KR102476672B1 (ko) 5G Massive망에서 비인식 NIC 기능을 갖는 이더넷 드라이버에서 수행되는 주소 변이 방법
CN117201005B (zh) 一种基于ZUC加解密的IPv6地址动态编码方法及应用方法
US7466711B2 (en) Synchronous system and method for processing a packet
CN115996210B (zh) 一种源变模式的地址端口跳变方法
CN112866074B (zh) 一种虚拟网络连接方法及虚拟网络系统

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