[go: up one dir, main page]

KR102782373B1 - 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 - Google Patents

네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 Download PDF

Info

Publication number
KR102782373B1
KR102782373B1 KR1020240155867A KR20240155867A KR102782373B1 KR 102782373 B1 KR102782373 B1 KR 102782373B1 KR 1020240155867 A KR1020240155867 A KR 1020240155867A KR 20240155867 A KR20240155867 A KR 20240155867A KR 102782373 B1 KR102782373 B1 KR 102782373B1
Authority
KR
South Korea
Prior art keywords
information
data packet
gateway
data flow
controller
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020240155867A
Other languages
English (en)
Inventor
김영랑
Original Assignee
프라이빗테크놀로지 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 프라이빗테크놀로지 주식회사 filed Critical 프라이빗테크놀로지 주식회사
Priority to KR1020240155867A priority Critical patent/KR102782373B1/ko
Application granted granted Critical
Publication of KR102782373B1 publication Critical patent/KR102782373B1/ko
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0236Filtering by address, protocol, port number or service, e.g. IP-address or URL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/50Address allocation
    • H04L61/5007Internet protocol [IP] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2212/00Encapsulation of packets

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)
  • Power Engineering (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 문서에 개시된 일 실시예에 따른 게이트웨이는, 통신 회로; 메모리; 및 상기 통신 회로 및 상기 메모리와 작동적으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 데이터 패킷을 수신하고, GTP 터널(GPRS Tunneling Protocol, GTP)의 출발지 IP 주소 또는 상기 GTP 터널 기반 데이터 패킷의 출발지 IP 주소, 상기 GTP 터널 기반 데이터 패킷의 목적지 IP 주소, 포트, 및 프로토콜 정보에 기반하여, 외부 서버로부터 수신된 데이터 플로우를 식별하고, 상기 데이터 플로우에 기반하여 상기 데이터 패킷을 전송하거나, 또는 드롭(drop)할 수 있다.

Description

네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법{SYSTEM FOR CONTROLLING NETWORK ACCESS AND METHOD OF THE SAME}
본 문서에 개시된 실시예들은 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법에 관한 것이다.
다수의 장치들은 네트워크를 통해서 데이터를 통신할 수 있다. 예를 들어, 단말은 인터넷을 통해 서버와 데이터를 송신하거나 수신할 수 있다. 네트워크는 인터넷과 같은 공용 네트워크(public network) 뿐만 아니라 인트라넷과 같은 사설 네트워크(private network)를 포함할 수 있다.
3G 및 4G(LTE)를 사용하는 무선 통신 환경은, 사용자 장치(User Equipment, UE)와 Data Network(예: Internet) 간의 통신을 위해, 디지털 신호로 전환하는 RAN(Radio Access Network)을 통해, 각 통신 프로토콜별 코어 네트워크로, 무선 전파 신호를 전달할 수 있다.
코어 네트워크는, UE의 인증 절차를 통해, GTP 터널을 인가하고, 인가된 GTP 터널을 통해, DN과 통신할 수 있는 환경 및 인프라를, 통신사 주도로 구축 및 제공할 수 있다. 하지만, 기존의 무선 통신 환경은, 유선 통신 환경과 비교하여, 데이터 처리 용량 및 성능에 한계가 존재할 수 있다. 이에, 초연결(Hyper Connected) 시대로 전환됨에 따라, 유선의 물리적 제약을 탈피한 다양한 종류의 UE(예 : IoT 단말)가 무선 통신 환경에 연결되면서, 초저지연, 대용량, 초연결이 가능한 5G 및 O-RAN(Open Radio Access Network) 등의 기술이 개발 및 보급되었다.
구체적으로, 5G 및 O-RAN 기술과 같은 무선 통신 기술의 발달로, 통신 환경 및 인프라는, Wi-Fi의 보안 문제 및 무선 통신 커버리지의 한계를 대체 및 보완하기 위한 사설 무선 통신 환경(예: Private 5G)을, 수요자가 직접적으로 구축 및 운영이 가능하게 되었다. 또한 무선 통신 자원의 한계 및 효율성에 따라, 무선 통신의 성능을 강화하기 위해, 모든 통신을 DN에 존재하는 자원(예: 서비스 서버, 또는 클라우드 등)과 통신하는 것이 아닌, 무선 통신 환경에 포함된 자원과 통신할 수 있는 EN(Edge Network) 기술을 제공할 수 있다.
나아가, 대용량 데이터 패킷 처리를 위해서, 고주파수대(High Frequency, HF)의 전파 할당 및 사용이 필요로 하며, 고대역의 전파의 특성상 통신 커버리지가 기존 대역 대비 작아지는 한계가 존재하기 때문에, 통신사는, 기존보다 RAN을 추가적으로 설치할 필요가 있다. 그러나, 통신사에서 모든 지역 및 시설을 대상으로 RAN을 설치하는 것은, 비용적 제약이 따르기 때문에 통신사와 상이한 주체가 RAN을 구축하여 통신사의 RAN 및 통신 코어와 연결할 수 있는 부가 RAN 기술(O-RAN)을 제공할 수 있다.
이러한 무선 통신 환경은 상술한 것과 같이, 유선 통신 환경의 물리적 제약을 극복하면서 유선 통신 환경 수준의 통신 성능을 제공함과 동시에, 통신사의 제약을 탈피한 독자적 무선 통신 환경 구현이 가능하게 되었지만, UE와 DN 사이의 통신 환경 제공에 최적화된 기존 무선 통신 기술과 다르게, 다양한 형태의 통신 경로(예: UE와 통신 코어, 통신 코어와 DN 및 EN, DN과 UE 간 통신 등)가 발생됨에 따라, 네트워크 접근을 제어하는 장치가 커버해야 할 네트워크 보안의 영역도 확장되었다.
특히, USIM의 고유 식별 정보(예: IMSI, SUPI, SUCI 등) 기반의 인증 및 GTP 터널 인가를 통해, 무선 통신 네트워크에 접속 가능한 구조에 의해 UE에 포함된 다양한 멀웨어(malware) 및 랜섬웨어(ransomware)는, 무선 통신 네트워크 내에 포함된 통신 코어 및 DN, EN 내에 존재하는 자원에 상시 접근이 가능하게 되었으며, 반대로 EN 및 DN내에 존재하는 비인가 통신 대상이 보안에 취약한 UE로의 접근이 가능한 취약점이 존재할 수 있다.
이러한 보안 취약점은 IP 네트워크에 대한 보안이 고려되어 있지 않은, 무선 통신 환경으로부터 발생되며, 3GPP(3rd Generation Partnership Project) 무선 통신 표준에 따라 구현된 통신 컴포넌트들이, 표준에 존재하지 않는 IP 네트워크의 접근 및 접속을 제어하는 것에 한계가 존재하기 때문에, 통신 코어를 변경하지 않으면서 무선 통신 환경에서의 IP 네트워크에 대한 UE의 접속 및 접근 제어를 수행할 필요가 존재할 수 있다.
또한, UE와 통신 코어 사이에서의 통신 가능한 상태를 확인하고, IP 할당 정보 및 UE 식별 정보에 기반한 네트워크의 접근 제어를 수행할 필요가 존재할 수 있다.
본 문서에 개시된 일 실시예에 따른 게이트웨이는, 통신 회로; 메모리; 및 상기 통신 회로 및 상기 메모리와 작동적으로 연결되는 프로세서를 포함하고, 상기 프로세서는, 데이터 패킷을 수신하고, GTP 터널(GPRS Tunneling Protocol, GTP)의 출발지 IP 주소 또는 상기 GTP 터널 기반 데이터 패킷의 출발지 IP 주소, 상기 GTP 터널 기반 데이터 패킷의 목적지 IP 주소, 포트, 및 프로토콜 정보에 기반하여, 외부 서버로부터 수신된 데이터 플로우를 식별하고, 상기 데이터 플로우에 기반하여 상기 데이터 패킷을 전송하거나, 또는 드롭(drop)할 수 있다.
본 문서에 개시된 일 실시예에 따른 서버는, 통신 회로; 데이터베이스를 저장하는 메모리; 및 상기 메모리 및 상기 통신 회로와 작동적으로 연결되는 프로세서를 포함하고, 상기 프로세서는, UE(User Equipment)로부터, 상기 UE의 식별 정보 및 상기 UE에 할당된 IP 주소를 포함하는, 서버 접속 요청 또는 인증 요청을 수신하고, 상기 서버 접속 요청 또는 상기 인증 요청에 기반하여, 접속 정책에 따라 식별된 상기 UE가 접속 가능한 네트워크 정보를 식별하고, 상기 UE에 할당된 IP 주소, 목적지 IP 주소, 포트, 및 프로토콜 정보를 포함하는 데이터 플로우를 생성하고, 상기 데이터 플로우를 게이트웨이로 전송할 수 있다.
본 문서에 개시된 일 실시예에 따른 노드는, 통신 회로; 상기 통신 회로와 작동적으로 연결되는 프로세서; 및 상기 프로세서와 작동적으로 연결되고, 타겟 애플리케이션 및 접속 제어 애플리케이션을 저장하는 메모리를 포함하고, 상기 프로세서는, 외부 서버에, 노드의 식별 정보 및 노드에 할당된 IP 주소를 포함하는, 서버 접속 요청 또는 인증 요청을 전송하고, 상기 외부 서버로부터 수신된 목적지 IP 주소, 포트, 프로토콜 정보를 포함하는 데이터 플로우에 기반하여, 데이터 패킷을 처리할 수 있다.
본 문서에 개시되는 실시예들에 따르면, UE 등록 요청 및 PDU 세션 생성 요청 등을 포함하는 UE로부터 전송된 요청을 통신 코어 또는 외부 서버로의 전송을 통해, UE로부터 전송된 데이터 패킷(예: 상술한 요청을 포함)의 검사에 기반하여, 통신 코어와 연동되지 않고 종속되지 않는 독자적인 접근 제어를 통해, 5G 및 O-RAN 등 무선 통신 기술이 가지고 있는 보안 취약점을 해결할 수 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, UE로부터 전송된 데이터 패킷이 통신 코어에 대한 요청인지 여부를 식별하고, 데이터 패킷이 GPRS(General Packet Radio Service) 터널링 프로토콜(GPRS Tunneling Protocol, GTP)을 포함하는 대상 규격을 충족하는지 여부를 결정한 것에 기반하여, 데이터 패킷이 전송되는 흐름을 관리하기 위한 정보를 포함하는 데이터 플로우를 통해, 데이터 패킷의 포워딩을 결정함으로써, 특정 소프트웨어의 설치 없이, 3GPP 규격에 기반한 모든 UE의 네트워크 접근의 제어를 수행할 수 있다.
또한, 본 문서에 개시되는 실시예들에 따르면, UE에 설치된 접속 제어 애플리케이션을 통해서 UE에 추가된 인증 수행 및 UE의 보안을 지속적으로 검사함으로써, 통신 코어간 인증 수행에 관한 보안 등급 보다 높은 수준의 DN 또는 EN 내의 서비스 및 서버에, 접근할 수 있도록, 접속 정책을 강화할 수 있다.
이 외에, 본 문서를 통해 직접적 또는 간접적으로 파악되는 다양한 효과들이 제공될 수 있다.
도 1은 복수의 네트워크를 포함하는 환경을 나타낸다.
도 2는 일 실시예에 따른 네트워크 환경 내의 아키텍처를 나타낸다.
도 3은 일 실시예에 따라 컨트롤러에 저장된 데이터베이스를 나타내는 기능적 블록도이다.
도 4는 일 실시예에 따른 노드의 기능적 블록도를 나타낸다.
도 5는 일 실시예에 따라 데이터 패킷의 전송을 제어하는 동작을 설명한다.
도 6은 일 실시예에 따른 GTP 터널 데이터 패킷의 구조의 예시를 도시한다.
도 7은 일 실시예에 따른 UE의 등록 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
도 8은 일 실시예에 따른 UE의 상태 갱신 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
도 9는 일 실시예에 따른 UE의 PDU 세션 생성 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
도 10은 일 실시예에 따른 UE의 PDU 세션 상태 갱신 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
도 11은 일 실시예에 따른 UE로부터 전송된 데이터 패킷의 검사에 따라 데이터 플로우를 생성 및/또는 데이터 플로우의 업데이트를 수행하는 방법을 설명하기 위한 흐름도이다.
도 12는 일 실시예에 따른 UE의 컨트롤러에 대한 접속을 처리하는 방법을 설명하기 위한 흐름도이다.
도 13은 일 실시예에 따른 UE의 추가 인증을 처리하는 방법을 설명하기 위한 흐름도이다.
도 14는 일 실시예에 따른 UE의 네트워크 접속을 처리하는 방법을 설명하기 위한 흐름도이다.
도 15는 일 실시예에 따른 UE의 IP 주소가 변경된 것에 기반하여 제어 플로우 및 데이터 플로우를 처리하는 방법을 설명하기 위한 흐름도이다.
도 16은 일 실시예에 따른 데이터 플로우에 따라 UE로부터 전송된 데이터 패킷의 포워딩을 결정하는 방법을 설명하기 위한 흐름도이다.
도 17은 일 실시예에 따른 데이터 패킷 수신 이벤트에 응답하여 데이터 플로우를 생성 및/또는 데이터 플로우의 업데이트를 수행하는 방법을 설명하기 위한 흐름도이다.
도 18은 일 실시예에 따른 UE의 네트워크 접속 해제를 처리하는 방법을 설명하기 위한 흐름도이다.
도 19는 일 실시예에 따른 UE의 제어 플로우 갱신 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
도 20은 일 실시예에 따른 UE로부터 수신된 위험 탐지 정보에 기반하여 제어 플로우 및 데이터 플로우를 처리하는 방법을 설명하기 위한 흐름도이다.
도 21은 일 실시예에 따른 미리 결정된 시간 간격마다 데이터 플로우의 업데이트를 수행하는 방법을 설명하기 위한 흐름도이다.
이하, 본 발명의 일 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시예의 다양한 변경(modification), 균등물(equivalent), 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 구체적으로, 본 명세서를 통하여 "일 실시예(one embodiment)" 또는 "일 실시예(an embodiment)"에 관한 언급은 그 실시예와 관련하여 설명되는 특정한 특징, 구조 또는 특성이 본 발명의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 따라서, 본 명세서를 통하여 다양한 곳에서 "일 실시예에 있어서(in one embodiment)" 또는 "일 실시예에 있어서(in an embodiment)"라는 문구의 다양한 출현들은 이들 모두가 반드시 동일한 실시예를 가리키는 것은 아니다. 또한, 특정한 특징들, 구조들, 또는 특성들은 하나 이상의 실시예들에서 적절한 방식으로 결합될 수 있다.
본 문서에서 설명되는 구성요소들의 각각의 구성요소(예: 모듈 또는 프로그램)는 단수 또는 복수의 개체를 포함할 수 있다. 일 실시예에 따르면, 해당 구성요소들 중 하나 이상의 구성요소들 또는 동작들이 생략되거나, 또는 하나 이상의 다른 구성요소들 또는 동작들이 추가될 수 있다. 대체적으로 또는 추가적으로, 복수의 구성요소들(예: 모듈 또는 프로그램)은 하나의 구성요소로 통합될 수 있다. 이런 경우, 통합된 구성요소는 상기 복수의 구성요소들 각각의 구성요소의 하나 이상의 기능들을 상기 통합 이전에 상기 복수의 구성요소들 중 해당 구성요소에 의해 수행되는 것과 동일 또는 유사하게 수행할 수 있다. 일 실시예에 따르면, 모듈, 프로그램 또는 다른 구성요소에 의해 수행되는 동작들은 순차적으로, 병렬적으로, 반복적으로, 또는 휴리스틱하게 실행되거나, 상기 동작들 중 하나 이상이 다른 순서로 실행되거나, 생략되거나, 또는 하나 이상의 다른 동작들이 추가될 수 있다.
본 문서에서 사용되는 용어 "모듈"은 하드웨어, 소프트웨어 또는 펌웨어로 구현된 유닛을 포함할 수 있으며, 예를 들면, 로직, 논리 블록, 부품, 또는 회로와 같은 용어와 상호 호환적으로 사용될 수 있다. 모듈은, 일체로 구성된 부품 또는 하나 또는 그 이상의 기능을 수행하는, 상기 부품의 최소 단위 또는 그 일부가 될 수 있다. 예를 들면, 일 실시예에 따르면, 모듈은 ASIC(application-specific integrated circuit)의 형태로 구현될 수 있다.
각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명의 실시예를 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 실시예에 대한 이해를 방해한다고 판단되는 경우에는 그 상세한 설명은 생략한다. 특히, 본 문서의 다양한 실시예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 문서에 기재된 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 문서의 실시예의 다양한 변경(modifications), 균등물(equivalents), 및/또는 대체물(alternatives)을 포함하는 것으로 이해되어야 한다. 도면의 설명과 관련하여, 유사한 구성요소에 대해서는 유사한 참조 부호가 사용될 수 있다.
본 발명의 실시예의 구성 요소를 설명하는 데 있어서, 제1, 제2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 또한, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 가진 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 예를 들어, 본 문서에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다. 예를 들면, 제1 사용자 기기와 제2 사용자 기기는, 순서 또는 중요도와 무관하게, 서로 다른 사용자 기기를 나타낼 수 있다. 예를 들면, 본 문서에 기재된 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 바꾸어 명명될 수 있다.
본 문서에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 상기 어떤 구성요소가 상기 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 상기 어떤 구성요소와 상기 다른 구성요소 사이에 다른 구성요소(예: 제3 구성요소)가 존재하지 않는 것으로 이해될 수 있다.
본 문서에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)," "~하는 능력을 가지는(having the capacity to)," "~하도록 설계된(designed to)," "~하도록 변경된(adapted to)," "~하도록 만들어진(made to)," 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다.
용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 장치"라는 표현은, 그 장치가 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리 장치에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다. 본 문서에서 사용된 용어들은 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 다른 실시예의 범위를 한정하려는 의도가 아닐 수 있다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 문서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. 본 문서에 사용된 용어들 중 일반적인 사전에 정의된 용어들은, 관련 기술의 문맥상 가지는 의미와 동일 또는 유사한 의미로 해석될 수 있으며, 본 문서에서 명백하게 정의되지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다. 경우에 따라서, 본 문서에서 정의된 용어일지라도 본 문서의 실시예들을 배제하도록 해석될 수 없다.
본 문서에서, "A 또는 B," "A 또는/및 B 중 적어도 하나," 또는 "A 또는/및 B 중 하나 또는 그 이상"등의 표현은 함께 나열된 항목들의 모든 가능한 조합을 포함할 수 있다. 예를 들면, "A 또는 B," "A 및 B 중 적어도 하나," 또는 "A 또는 B 중 적어도 하나"는, (1) 적어도 하나의 A를 포함, (2) 적어도 하나의 B를 포함, 또는 (3) 적어도 하나의 A 및 적어도 하나의 B 모두를 포함하는 경우를 모두 지칭할 수 있다. 또한, 본 발명의 실시예의 구성 요소를 설명하는 데 있어서, "A 또는 B", "A 및 B 중 적어도 하나", "A 또는 B 중 적어도 하나", "A, B 또는 C", "A, B 및 C 중 적어도 하나", "A, B, 또는 C 중 적어도 하나", 및 "A, B, C, 또는 이들의 어느 조합 중의 적어도 하나"와 같은 문구들 각각은 그 문구들 중 해당하는 문구에 함께 나열된 항목들 중 어느 하나, 또는 그들의 모든 가능한 조합을 포함할 수 있다. 특히, “A, B, C, 또는 이들의 어느 조합 중의 적어도 하나"와 같은 문구는, A 또는 B 또는 C 또는 이들의 조합인 AB 또는 ABC 등을 포함할 수 있다.
본 문서의 일 실시예는 기기(machine) 의해 읽을 수 있는 저장 매체(storage medium)(예: 메모리)에 저장된 하나 이상의 명령어들을 포함하는 소프트웨어(예: 프로그램 또는 애플리케이션)로서 구현될 수 있다. 예를 들면, 기기의 프로세서는, 저장 매체로부터 저장된 하나 이상의 명령어들 중 적어도 하나의 명령을 호출하고, 그것을 실행할 수 있다. 이것은 기기가 상기 호출된 적어도 하나의 명령어에 따라 적어도 하나의 기능을 수행하도록 운영되는 것을 가능하게 한다. 상기 하나 이상의 명령어들은 컴파일러에 의해 생성된 코드 또는 인터프리터에 의해 실행될 수 있는 코드를 포함할 수 있다. 기기로 읽을 수 있는 저장 매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장 매체가 실재(tangible)하는 장치이고, 신호(signal)(예: 전자기파)를 포함하지 않는다는 것을 의미할 뿐이며, 이 용어는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다.
본 문서에 개시된 일 실시예에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예: compact disc read only memory(CD-ROM))의 형태로 배포되거나, 또는 애플리케이션 스토어를 통해 또는 두 개의 사용자 장치들(예: 스마트폰들) 간에 직접, 온라인으로 배포(예: 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품의 적어도 일부는 제조사의 서버, 애플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
도 1은 복수의 네트워크를 포함하는 환경을 나타낸다.
도 1을 참조하면, 제1 네트워크(10) 및 제2 네트워크(20)는, 서로 다른 네트워크일 수 있다. 예를 들어, 제1 네트워크(10)는, 인터넷과 같은 공용 네트워크이고, 제2 네트워크(20)는, 인트라넷 또는 VPN과 같은 사설 네트워크일 수 있다.
제1 네트워크(10)는, 출발지 노드(101)를 포함할 수 있다. 도 1 및 이하 서술되는 실시예들에서, '출발지 노드'는, 데이터 통신을 수행할 수 있는 다양한 형태의 장치일 수 있다. 예를 들어, 출발지 노드(101)는, 스마트폰 또는 태블릿과 같은 휴대용 장치, 데스크탑(desktop) 또는 랩탑(laptop)과 같은 컴퓨터 장치, 멀티미디어 장치, 의료 기기, 카메라, 웨어러블 장치, VR(virtual reality) 장치, 또는 가전 장치를 포함할 수 있으며 전술한 기기들에 한정되지 않는다. 예를 들어, 출발지 노드(101)는, 애플리케이션을 통해 데이터 패킷을 전송할 수 있는 서버 또는 통신 장치를 포함할 수 있다. 출발지 노드(101)는, '전자 장치' 또는 '단말'로도 참조될 수 있다. 한편, 도착지 노드(102)는, 상술한 출발지 노드(101)와 동일 유사한 장치를 포함할 수 있다. 다른 예를 들어, 도착지 노드(102)는, 목적지 네트워크와 실질적으로 동일할 수 있다.
출발지 노드(101)는, 제2 네트워크(20)로의 접속(access)을 시도하고 제2 네트워크(20)에 포함된 도착지 노드(102)로 데이터를 전송할 수 있다. 출발지 노드(101)는, 통신 장치(103)를 통해 데이터를 도착지 노드(102)로 전송할 수 있다. 실시예에 따르면, 통신 장치(103)는, 출발지 노드(101)에 포함된 구성일 수 있다.
출발지 노드(101)의 제1 네트워크(10)에 대한 접속이 승인되면 출발지 노드(101)는 제1 네트워크(10)에 포함된 모든 서버와 통신할 수 있으므로, 출발지 노드(101)는, 악성(malicious) 프로그램의 공격으로부터 노출될 수 있다. 예를 들어, 출발지 노드(101)는, 인터넷 웹 브라우저(110a), 비즈니스 애플리케이션(110b)과 같은 신뢰된(trusted) 및/또는 보안된(secure) 애플리케이션뿐만 아니라, 악성 코드(110c), 감염된(infected) 비즈니스 애플리케이션(110d)과 같이 신뢰되지 않거나 보안되지 않은 애플리케이션의 데이터를 수신할 수 있다.
악성 프로그램으로부터 감염된 출발지 노드(101)는, 제2 네트워크(20)로의 접속 및/또는 데이터 전송을 시도할 수 있다. 제2 네트워크(20)가 VPN과 같이 IP에 기반하여 형성되는 경우, 제2 네트워크(20)는, 제2 네트워크(20) 내에 포함되는 복수의 장치들을 개별적으로 모니터링하기 어려울 수 있으며, OSI 계층에서 응용 계층 또는 전송 계층에 대한 보안에 취약할 수 있다. 또한, 채널이 이미 생성된 이후에 출발지 노드(101)가 악성 애플리케이션을 포함하는 경우, 악성 애플리케이션의 데이터는, 제2 네트워크(20) 내의 다른 전자 장치(예: 도착지 노드(102))에게 전달될 수 있다.
도 2는 일 실시예에 따른 네트워크 환경 내의 아키텍처를 나타낸다.
도 2를 참조하면, 노드는, UE(201)를 포함할 수 있다. 예를 들어, UE(201)는, 사용자 장치(User Equipment, UE)를 나타낼 수 있다. UE(201)는, 접속 제어 애플리케이션(211)이 설치되어 있는 노드일 수 있다. 본 명세서에서는 설명의 편의를 위해, 노드, UE(201), 및 사용자 장치를 동일한 것으로 설명한다.
UE(201)는, 데이터 통신을 수행할 수 있는 다양한 형태의 장치일 수 있다. 다른 예를 들어, UE(201)는, 스마트폰 또는 태블릿과 같은 휴대용 장치, 데스크탑(desktop) 또는 랩탑(laptop)과 같은 컴퓨터 장치, 멀티미디어 장치, 의료 기기, 카메라, 웨어러블 장치, VR(virtual reality) 장치, 또는 가전 장치를 포함할 수 있으며 전술한 기기들에 한정되지 않는다. 예를 들어, UE(201)는, 애플리케이션을 통해 데이터 패킷을 전송할 수 있는 서버 또는 게이트웨이를 포함할 수 있다. UE(201)는, '전자 장치' 또는 '단말'로도 참조될 수 있다.
UE(201)는, 접속 제어 애플리케이션(211) 및 타겟 애플리케이션(212)을 저장할 수 있다. 타겟 애플리케이션(212)은, 접속 제어 애플리케이션(211)의 제어를 받고, 제1 게이트웨이(203)를 통해 통신 코어(205)로 데이터 패킷을 전송하거나 반대로 데이터 패킷을 수신할 수 있다. 타겟 애플리케이션(212)은, 웹 브라우저 또는 비즈니스 애플리케이션과 같이 신뢰된 및/또는 보안된 애플리케이션인 반면에, 다른 일부는 신뢰되지 않거나 보안되지 않은 악성 프로그램일 수 있다. 그러므로, 실시예들에 따른 네트워크 접속 시스템은, 접속 제어 애플리케이션(211)의 네트워크 접속 제어를 통해 인가되지 않은 프로그램(예: 애플리케이션)의 통신 코어(205)에 대한 접속을 차단하고 해당 프로그램을 격리할 수 있다. 예를 들어, 실시예들에 따른 타겟 애플리케이션(212)이 통신 코어(205)와 통신하기 이전에 접속 제어 애플리케이션(211)은, 컨트롤러(202)로부터 접속 가능 여부를 확인할 수 있다.
접속 제어 애플리케이션(211)은 접속이 가능하면, 타겟 애플리케이션(212)의 데이터 패킷 전송을 제어할 수 있다. 즉, 타겟 애플리케이션(212)이 네트워크에 접속하기 위해서는 접속 제어 애플리케이션(211)을 통해야 하고, 접속 제어 애플리케이션(211)은, 컨트롤러(202)로부터 인가되어야 하며, 접속 제어 애플리케이션(211)은, 타겟 애플리케이션(212)의 데이터 패킷을 컨트롤러(202)의 정책에 기반한 데이터 플로우에 기반하여 전송할 수 있다. 실시예에 따르면, 타겟 애플리케이션(212)은, 제1 게이트웨이(203) 간 채널 또는 세션이 생성되어 네트워크 접속이 제어될 수 있다.
UE(201)는, 통신 코어(205)와의 식별 및 인증을 통해 할당된 IP 주소를 기반으로, 데이터 패킷을 전송할 수 있다. 예를 들어, 데이터 패킷은, RAN(207)(Radio Access Network)내 각 컴포넌트(예: Radio Unit, Distribute Unit, 또는 Central Unit 등)를 통해, GTP 터널(230)로 캡슐화(encapsulation)되어 전송될 수 있다. 데이터 패킷은, UE(201)와 통신 코어(205) 사이에 존재하는, 제1 게이트웨이(203)를 경유하여 전송될 수 있다.
UE(201)는, 외부 서버에, 노드(즉, UE(201))의 식별 정보 및 노드에 할당된 IP 주소를 포함하는, 서버 접속 요청 또는 인증 요청을 전송할 수 있다. UE(201)는, 외부 서버로부터 수신된 목적지 IP 주소, 포트, 프로토콜 정보를 포함하는 데이터 플로우에 기반하여, 데이터 패킷을 처리할 수 있다.
GTP 터널(230)로 캡슐화된 데이터 패킷은, 통신 코어(205) 내 컴포넌트(예: User Plane Function)로 데이터 패킷을 전송하기 위한 Outer Header(예: GTP-U 터널 헤더)와 데이터 네트워크(Data Network, DN) 또는 엣지 네트워크(Edge Network, EN)에 존재하는 서비스 및 서버로 데이터 패킷을 전송하기 위한 Inner Header 및 페이로드(예: User Plane Data Packet)를 포함할 수 있다. 구체적으로, Inner Header는, 5 Tuples 정보를 포함할 수 있으며, 5 Tuples 정보는, 통신 코어(205)가 UE(201)에 할당한 IP 주소, UE(201)의 출발지 포트, 데이터 네트워크 또는 엣지 네트워크에 존재하는 서비스 및 서버의 IP 주소 및 포트, 전송 프로토콜 정보를 포함할 수 있다. 또한, 데이터 패킷은, UE(201)를 등록 및 인증하는 과정에서, UE(201)가 IP 주소를 할당 받기 전까지, RAN(207)과 통신 코어 내 컴포넌트(예: Access Management Function, Session Management Function 등)로 전송되거나, 또는, IP 주소를 할당 받은 이후 상술한 컴포넌트로 전송될 수 있다.
컨트롤러(202)는, 예를 들어, 서버(또는 클라우드 서버)일 수 있다. 컨트롤러(202)는, UE(201), 제1 게이트웨이(203), 및 통신 코어(205) 간 데이터 전송을 관리함으로써, 네트워크 환경 내에서 신뢰되는 데이터 전송을 보장할 수 있다. 본 명세서에서는 설명의 편의를 위해 컨트롤러(202), 서버, 및 외부 서버가 동일한 대상으로 설명될 수 있다. 예를 들어, 컨트롤러(202)는, 정책 정보 또는 블랙리스트 정보를 통해 인가된 UE(201)(또는, 접속 제어 애플리케이션(211))의 네트워크 접속을 허용할 수 있다. 컨트롤러(202)는, UE(201)와 제1 게이트웨이(203)간 채널을 생성할 수 있도록 하는 정보를 제공할 수 있다. 따라서, UE(201)의 접속 제어 애플리케이션(211)은, 허용되지 않은 애플리케이션이 허용되지 않은 목적으로 데이터 패킷을 전송하는 것을 방지할 수 있고, 제1 게이트웨이(203)와 생성된 채널을 통해서 허용된 데이터 패킷만이 통신 코어(205)로 전송될 수 있는 구조를 제공할 수 있다.
컨트롤러(202)는, 통신 회로, 데이터베이스를 저장하는 메모리, 및 메모리 및 통신 회로와 작동적으로 연결되는 프로세서를 포함할 수 있다. 예를 들어, 컨트롤러(202)는, 노드(즉, UE(201))로부터, 목적지 네트워크의 식별 정보 및 노드의 타겟 애플리케이션(212)의 식별 정보를 포함하는 네트워크 접속 요청을 수신할 수 있다. 컨트롤러(202)는, 데이터베이스에 기반하여 노드가 제1 게이트웨이(203)에 접속 가능한지 여부를 확인할 수 있다. 컨트롤러(202)는, 노드가 제1 게이트웨이(203)에 접속이 가능한 경우, 데이터베이스에 기반하여, 노드가 목적지 네트워크에 접속하기 위해, 노드의 등록 요청, 노드의 PDU 세션 생성 요청, 또는 이들의 어느 조합 중의 적어도 하나의 검사를 수행할 수 있다. 컨트롤러(202)는, 검사에 기반하여, 제1 게이트웨이(203)에서 데이터 패킷의 포워딩 여부를 결정하는 동작에 적용되는, 데이터 플로우를 생성할 수 있다. 컨트롤러(202)는, 제1 게이트웨이(203)의 요청에 응답하여, 데이터 플로우를 제1 게이트웨이(203)에 전송할 수 있다.
컨트롤러(202)는, 노드의 상태 갱신 요청, PDU 상태 갱신 요청, 또는 이들의 어느 조합 중의 적어도 하나에 응답하여, 다음의 동작을 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 노드의 상태 갱신 요청, 노드의 PDU 세션 상태 갱신 요청, 또는 이들의 어느 조합 중의 적어도 하나의 검사를 수행하고, 검사에 기반하여 데이터 플로우의 업데이트를 수행할 수 있다. 컨트롤러(202)는, 데이터 플로우의 업데이트를 수행하기 위해, 노드의 상태 갱신 요청, 노드의 PDU 세션 상태 갱신 요청, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 노드 정보 업데이트 요청으로부터, 노드의 통신 상태를 식별하고, 통신 상태, 노드의 IP 주소, 미리 결정된 접속 정책, 미리 결정된 인증 정책, 또는 이들의 어느 조합 중에 적어도 하나에 기반하여, 데이터 플로우의 업데이트를 수행할 수 있다.
컨트롤러(202)는, UE(201)로부터, UE(201)의 식별 정보 및 UE(201)에 할당된 IP 주소를 포함하는, 서버 접속 요청 또는 인증 요청을 수신할 수 있다. 컨트롤러(202)는, 서버 접속 요청 또는 인증 요청에 기반하여, 접속 정책에 따라 식별된 UE(201)가 접속 가능한 네트워크 정보를 식별할 수 있다. 컨트롤러(202)는, UE(201)에 할당된 IP 주소, 목적지 IP 주소, 포트, 및 프로토콜 정보를 포함하는 데이터 플로우를 생성하고, 생성된 데이터 플로우를 게이트웨이로 전송할 수 있다.
실시예에 따르면, 타겟 애플리케이션(212)의 네트워크 접속은, 접속 제어 애플리케이션(211), 컨트롤러(202) 또는 제1 게이트웨이(203)로부터 차단될 수 있다. 일 실시예에 따르면, 컨트롤러(202)는, UE(201) 또는 접속 제어 애플리케이션(211)의 네트워크 접속과 연관된 다양한 동작(예: 등록, 승인, 인증, 갱신, 종료)을 수행하기 위하여, 접속 제어 애플리케이션(211)과 제어 데이터 패킷을 송수신할 수 있다. 제어 데이터 패킷이 전송되는 흐름(예: 도 2에서 220으로 도시됨)은, '제어 플로우(control flow)'로 참조될 수 있다. 실시예에 따르면, 컨트롤러(202)는, 연동 시스템(예: UE(201), 제1 게이트웨이(203) 또는 통신 코어(205))으로부터 수신된 보안 이벤트에 따라 채널을 즉시 회수함으로써, 상시 안전한 네트워크 상태를 유지할 수 있다.
제1 게이트웨이(203)는, UE(201)가 속하는 네트워크의 경계 또는 통신 코어(205)가 속하는 네트워크의 경계에 위치할 수 있다. 일 실시예에 따르면, 제1 게이트웨이(203)는, 클라우드(cloud) 기반으로 컨트롤러(202)와 연결될 수 있다. 실시예에 따르면, 접속 제어 애플리케이션(211) 및 제1 게이트웨이(203) 사이에서 데이터 패킷이 전송되는 흐름은, '데이터 플로우(data flow)'로 참조될 수 있다. 데이터 플로우는, 노드 또는 IP 단위뿐만 아니라 보다 세부적인 단위(예: 애플리케이션)로 생성될 수 있다.
제2 게이트웨이(216)는, 데이터 네트워크, 엣지 네트워크, 통신 코어(205), 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 네트워크 경계에 위치 및/또는 데이터 네트워크, 엣지 네트워크, 또는 이들의 어느 조합 중의 적어도 하나에 포함될 수 있다.
본 명세서에서는, 제1 게이트웨이(203) 및 제2 게이트웨이(216)가, 게이트웨이(gateway)에 관한 네트워크 엔티티인 것으로 설명된다. 제1 게이트웨이(203) 및 제2 게이트웨이(216)는, 통신 회로, 명령어들(instructions)을 저장한 메모리, 및 통신 회로와 메모리와 작동적으로 연결되는 프로세서를 포함할 수 있다. 다시 말해, 제1 게이트웨이(203)는, 통신 회로, 명령어들을 저장한 메모리, 및 통신 회로 및 메모리와 작동적으로 연결되는 프로세서를 포함할 수 있다. 제2 게이트웨이(216)는, 통신 회로, 명령어들을 저장한 메모리, 및 통신 회로 및 메모리와 작동적으로 연결되는 프로세서를 포함할 수 있다.
예시적으로, 제1 게이트웨이(203)의 프로세서는, 데이터 패킷을 수신할 수 있다. 제1 게이트웨이(203)의 프로세서는, 데이터 패킷에 기반하여, UE(201)에 IP 주소를 할당하기 위한 IP 할당 정보를 식별할 수 있다. 제1 게이트웨이(203)의 프로세서는, IP 할당 정보를 식별한 것에 기반하여, 데이터 패킷으로부터, UE(201)의 식별에 관한 UE 식별 정보, PDU 세션의 식별에 관한 PDU 세션 식별 정보, UE(201)에 할당된 IP 주소, 또는 이들의 어느 조합 중의 적어도 하나를 추출할 수 있다. 제1 게이트웨이(203)의 프로세서는, UE 식별 정보, PDU 세션 식별 정보, IP 주소, 또는 이들의 어느 조합 중의 적어도 하나를, 외부 서버(예: 컨트롤러(202))로 전송할 수 있다. 제1 게이트웨이(203)의 프로세서는, 외부 서버로부터 수신되고, UE(201)에 대응되는 데이터 플로우에 기반하여, UE(201)가 통신 코어로 전송하는 GTP 터널(230) 기반의 데이터 패킷의, 포워딩 여부를 결정할 수 있다. 참고로, GTP 터널(230)에 관한 자세한 설명은, 아래 도 6에서 후술된다.
프로세서는, 데이터 패킷을 수신하고, GTP 터널(GPRS Tunneling Protocol, GTP)의 출발지 IP 주소 또는 GTP 터널 기반 데이터 패킷의 출발지 IP 주소, GTP 터널 기반 데이터 패킷의 목적지 IP 주소, 포트, 및 프로토콜 정보에 기반하여, 외부 서버(예: 컨트롤러(202))로부터 수신된 데이터 플로우를 식별할 수 있다. 프로세서는, 데이터 플로우에 기반하여 데이터 패킷을 전송하거나, 또는 드롭(drop)할 수 있다.
프로세서는, 소프트웨어를 실행할 수 있고, 프로세서에 연결된 적어도 하나의 다른 구성요소(예: 하드웨어 또는 소프트웨어 구성요소)를 제어할 수 있다. 프로세서는 이외에도 다양한 데이터 처리 또는 연산을 수행할 수 있다. 예를 들어, 프로세서는 데이터 패킷 등을 메모리에 저장할 수 있다.
참고로, 프로세서는, 제1 게이트웨이(203) 또는 제2 게이트웨이(216)가 수행하는 모든 동작들을, 수행할 수 있다. 그러므로, 본 명세서에서는 설명의 편의를 위해, 게이트웨이가 수행하는 동작은 프로세서가 수행하는 동작인 것을 주로 설명한다. 또한, 본 명세서에서는 설명의 편의를 위해, 프로세서는, 하나의 프로세서인 것으로 주로 설명되나, 이로 제한되지 않는다. 예를 들어, 게이트웨이는 적어도 하나 이상의 프로세서들을 포함할 수 있다. 적어도 하나 이상의 프로세서들 각각은, UE(201)의 네트워크 접근을 제어하는 동작에 관련된 모든 동작들을 수행할 수 있다.
메모리는, UE(201)의 네트워크 접근을 제어하는 동작을 수행하기 위해 요구되는 다양한 데이터 및/또는 정보를 임시적으로 및/또는 영구적으로 저장할 수 있다. 예를 들어, 메모리는, 데이터 패킷 등을 저장할 수 있다.
제1 게이트웨이(203)는, 데이터 패킷의 검사를 통해, UE(201)의 등록 및 인증, 상태 변경 정보 등을 수집할 수 있다. 제1 게이트웨이(203)는, 수집된 정보를 기반으로, UE(201)의 접속 정책에 따라, 네트워크 접근 제어를 위한 데이터 플로우를 생성 및 갱신하여, 제2 게이트웨이(216)로 전달할 수 있다.
제1 게이트웨이(203)는, GTP 터널(230)로 전송되는 데이터 패킷을 역캡슐화(decapsulation) 하거나, 또는, 데이터 패킷으로부터 Inner Header 및 페이로드 정보를 추출하여, 컨트롤러(202)로부터 수신된 데이터 플로우에 정보에 따라, 데이터 패킷의 포워딩(즉, 전송) 또는 드롭(drop)과 관련한 접근 제어를 결정하고, 데이터 패킷의 검사를 수행하고, 데이터 플로우 인증 정보의 삽입을 수행함으로써, 다양한 통신 장비 제조사에서 제공하는 통신 코어(205)와의 직접적 연동 및 3GPP 규격의 변경없이, UE(201)를 식별 및 인증, 접속 정책에 따라 최적화된 네트워크 접근 제어 방법을 제공할 수 있다.
도 3은 일 실시예에 따라 컨트롤러에 저장된 데이터베이스를 나타내는 기능적 블록도이다.
도 3은 메모리(330)만을 도시하지만, 컨트롤러는, 외부 전자 장치와 통신을 수행하기 위한 통신 회로(예: 도 4의 통신 회로(430)) 및 컨트롤러의 전반적인 동작을 제어하기 위한 프로세서(예: 도 4의 프로세서(410))를 더 포함할 수 있다.
관리자는, 컨트롤러(202)에 접속하여, 접속 제어 애플리케이션(211)과 통신 코어(205) 간 접속을 제어하기 위한 연결 중심의 정책을 설정할 수 있으므로, 서비스 단에서 세션을 관리하는 것 보다 세밀하고 안전하게 네트워크 접속을 제어할 수 있다.
접속 정책 데이터베이스(311)는, 식별된 네트워크, 노드, 또는 애플리케이션이 접속 가능한 네트워크 및/또는 서비스에 대한 정보를 포함할 수 있다. 예를 들어, 컨트롤러(202)는, 접속 제어 애플리케이션(211)의 네트워크 접속 요청 시, 접속 정책 데이터베이스(311)의 정책에 기반하여 식별된 네트워크(예: UE(201)가 속하는 네트워크), 노드, 사용자(예: UE(201)의 사용자), 및/또는 애플리케이션이 통신 코어(205)에 접속이 가능한지 여부를 결정할 수 있다. 실시예에 따르면, 컨트롤러(202)는, 접속 정책 데이터베이스(311)에 기반하여 특정 서비스(예: IP 및 포트)로 접속 가능한 타겟 애플리케이션(212)의 화이트리스트를 생성할 수 있다.
UE 인증 정책 데이터베이스(312)는, 무선 통신 네트워크에 연결된 UE(201)를 식별 및 인증하기 위한 정보를 포함할 수 있다. 구체적으로, UE 인증 정책 데이터베이스(312)는, UE(201)를 식별하기 위한 IMSI, SUPI 등과 같은 정보를 보호하기 위해, 암호화된 SUCI를 복호화 또는 인증하기 위한 정보를 포함할 수 있다. UE 인증 정책 데이터베이스(312)는, UE(201)가 사용자 또는 인증서에 기반하여 인증을 수행한 정보를 포함할 수 있다. 또한, UE 인증 정책 데이터베이스(312)는, O-Auth 또는 Open ID Connect 등 개방형 인증 기술에 기반하여 인증을 수행하기 위한 일련의 정보를 포함할 수 있다.
블랙리스트 정책 데이터베이스(313)는, UE(201) 또는 제1 게이트웨이(203)에서 주기적으로 수집되는 보안 이벤트 중에서 보안 이벤트의 위험도, 발생 주기, 및/또는 행위 분석을 통해 식별된 대상(예: 노드 ID(identifier), IP 주소, MAC(media access control) 주소, 또는 사용자 ID 중 적어도 하나)의 접속을 차단하기 위한 블랙리스트 등록 정책을 나타낼 수 있다. 또한, 블랙리스트 정책 데이터베이스(313)는, 애플리케이션 검사 결과에 따라 애플리케이션의 위험 수준을 판단하고 위험 수준에 따라 일시적 또는 영구적 격리 여부를 판단하기 위한 정보로 사용될 수 있다.
블랙리스트 데이터베이스(314)는, 블랙리스트 정책 데이터베이스(313)에 의해서 차단된 대상에 대한 목록을 포함할 수 있다. 예를 들어, 컨트롤러(202)는, 네트워크 접속을 요청하는 UE(201)의 식별 정보가 블랙리스트 데이터베이스(314)에 포함되면 네트워크 접속 요청을 거부함으로써 UE(201)를 격리시킬 수 있다.
제어 플로우 테이블(315)은, UE(201)와 컨트롤러(202) 사이에 생성된 제어 데이터 패킷의 흐름(예: 제어 플로우)을 관리하기 위한 세션(session) 테이블의 일 예이다. 성공적으로 컨트롤러(202)에 접속하는 경우, 제어 플로우 정보는, 컨트롤러(202)에 의하여 생성될 수 있다. 제어 플로우 정보는, 제어 플로우의 식별 정보, 컨트롤러에 대한 접속 및 인증 시 식별되는 IP 주소, 노드 ID, 또는 사용자 ID 중 적어도 하나를 포함할 수 있다. 예를 들어, UE(201)로부터 통신 코어(205)에 대한 접속이 요청되면 컨트롤러(202)는, UE(201)로부터 수신된 제어 플로우 식별 정보를 통해 제어 플로우 정보를 검색할 수 있고, 검색된 제어 플로우 정보 내에 포함된 IP 주소, 노드 ID, 또는 사용자 ID 중 적어도 하나를 접속 정책 데이터베이스(311)에 매핑함으로써 UE(201)가 통신 코어(205)에 접속이 가능한지 여부, 데이터 패킷 전송을 위한 데이터 플로우 생성 여부를 판단(또는 결정)할 수 있다.
제어 플로우는, 만료 시각을 가질 수 있다. UE(201)는 제어 플로우의 만료 시각을 갱신해야 하며, 일정 시간 동안에 만료 시각이 갱신되지 않으면 제어 플로우(또는, 제어 플로우 정보)는 제거될 수 있다. 또한, UE(201)로부터 수집된 보안 이벤트에 따라서 즉각적인 접속 차단이 필요하다고 결정되는 경우, 컨트롤러(202)는, UE(201)의 접속 종료 요청에 따라서 제어 플로우를 제거할 수 있다. 제어 플로우가 제거되면 기존에 생성된 데이터 플로우 또한 제거되기 때문에, UE(201)의 접속이 차단될 수 있다.
데이터 플로우 테이블(316)은, UE(201)와 제1 게이트웨이(203), 및 통신 코어(205) 사이에 세부적인 데이터 패킷이 전송되는 흐름(예: 데이터 플로우)을 관리하기 위한 테이블이다. 데이터 플로우는 TCP 세션, 애플리케이션, 또는 보다 세부적인 단위로 생성될 수 있다. 데이터 플로우 테이블(316)은, 데이터 플로우를 식별하기 위한 데이터 플로우 ID, 전송 주체에 부여된 제어 플로우 ID로 종속된 데이터 플로우를 관리할 수 있다.
데이터 플로우 테이블(316)은, UE(201) 또는 하나 이상의 식별 정보 및 애플리케이션이 하나 이상의 제1 게이트웨이(203)와 연결되기 위해 처리해야 할 접속성 제어 종류에 대응되는 각각의 처리 정보(예: 논리적 연결 인증 정보 또는 세션 생성 또는 확인 정보), 제1 게이트웨이(203)가 인가된 UE(201)임을 식별하기 위한 접속성 제어 정보(예: 논리적 연결 인증 기반 접속, 인가된 채널 또는 세션 기반 접속 여부 및 이를 식별하기 위한 정보, 상태 정보), 채널 및 세션 정보와 이를 기반으로 인가된 대상의 데이터 패킷 및 서비스 요청의 도착지 IP, 서비스 포트, 서비스 도메인 정보를 기반으로 포워딩 여부를 판단하기 위한 인가된 대상 정보, 해당 데이터 플로우가 유효한지 여부를 포함하는 상태 정보를 포함할 수 있다.
데이터 플로우 테이블(316)은, 인증 정보를 포함할 수 있다. 예를 들어, 데이터 플로우 테이블(316)은, UE(201)가 서비스에 접속하기 위해 추가 인증을 수행해야 하는지 여부에 관련된 정보, 서비스 제공자가 사전에 설정한 정보로써 제1 게이트웨이(203)를 통해서 삽입할 인가된 대상의 부가 정보(예: 노드의 운영체제 및 기기 종류, 사용자 식별 정보, 보안 컴플라이언스 준수 정보, 인증서버로부터 수신된 일련의 정보 등 일반적인 서비스 프로토콜을 통해서 식별할 수 없는 정보)를 포함할 수 있다. 예를 들어, 인가된 대상의 부가 정보는, 인가된 대상 여부 확인 및 이에 의해 컨트롤러(202)가 사전에 식별한 일련의 정보, 컨트롤러(202)가 사전에 식별한 일련의 정보를 삽입하는 방법으로써, 헤더에 삽입할 것인지 바디에 삽입할 것인지를 결정하는 정보)를 포함할 수 있다. 예를 들어, 인가된 대상의 부가 정보는, 서비스 정책 데이터베이스(317)에 기반하여 생성될 수 있고, 서비스에 접속하기 위해 추가 인증을 수행해야 하는지 여부에 관련된 정보는 인증 정책 데이터베이스(319)에 기반하여 생성될 수 있다.
데이터 플로우 테이블(316)은, 제어 플로우 ID에 기반하여 관리될 수 있다. 데이터 플로우 테이블(316)은, UE(201), 제1 게이트웨이(203)에 동일하게 저장될 수 있다.
데이터 플로우 인증 정책 데이터베이스(317)는, 접속 정책에 따라 UE(201)와 게이트웨이(예: 제1 게이트웨이(203)) 사이에 데이터 플로우를 인증 및 식별하기 위한 정보를 포함할 수 있다. 예를 들어, 데이터 플로우 인증 정책 데이터베이스(317)는, 식별된 UE(201)에 따라 최적화된 보안 검사를 수행, 동적 프로토콜 파싱을 수행, 서비스가 UE(201)를 식별할 수 있도록 응용 계층 상에서 UE(201)의 데이터 플로우 인증 및 식별을 위한 일련의 정보(예: 프로토콜에 따라 인증 정보 생성 및 검사 방법 등)를 포함할 수 있다.
NAT 정책 데이터베이스(318)는, 데이터 네트워크 또는 엣지 네트워크에 존재하는 게이트웨이(예: 도 2의 제2 게이트웨이(216))가, 데이터 플로우에 따라 동적 프로토콜 파싱을 위해 프록시로 NAT를 수행하거나, 또는, 세분화된 네트워크(Network Segmentation) 내의 IP 주소 및 포트로 NAT하기 위한 정보를 포함할 수 있다.
UE 테이블 데이터베이스(319)는, 통신 코어(205)와의 인증 과정 또는 UE(201)와 컨트롤러(202)와의 인증 과정에서 식별된 UE(201)의 정보로써, 적어도 하나 이상의 UE(201)의 UE 식별 정보(예: IMSI(International Mobile Subscriber Identity), SUPI(Subscription Permanent Identifier), SUCI(Subscription Concealed Identifier), GUTI(Globally Unique Temporary Identity)), 통신 코어(205)로부터 할당된 적어도 하나 이상의 UE(201)의 IP 주소, 및 통신 코어(205) 또는 컨트롤러(202)로부터의 등록 및 인증 등 통신 가능한 상태 여부를 포함할 수 있다.
PDU 세션 테이블 데이터베이스(320)는, 통신 코어(205)가 네트워크 슬라이싱을 위해 1개 이상의 PDU 세션을 UE(201)에 부여하고, 1개 이상의 IP 주소를 UE(201)에 할당한 정보, 해당 PDU 세션이 통신 가능한 상태 여부를 포함할 수 있다.
보안 검색 정책 데이터베이스(321)는, UE(201)의 보안 검사를 수행하고, UE(201)가 보안 요소를 준수해야할 항목(예: 백신 설치 및 실행, 최신 운영체제 패치 여부 등) 및 보안 요소를 준수하지 않았을 경우, 네트워크 접속을 차단하거나 격리하기 위한 정보를 포함할 수 있다. 또한, 보안 검색 정책 데이터베이스(321)는, UE(201) 및 UE(201)가 접속하고자 하는 서비스 사이에서 전송 및 수신하는 데이터 패킷을, 게이트웨이가 선택적으로 검사하기 위한 일련의 정보(예: Deep Packet Inspection 기반 필터링, 또는 응용 계층 기반 유해 서비스 필터링 등)를 포함할 수 있다.
도 4는 일 실시예에 따른 노드의 기능적 블록도를 나타낸다.
도 4를 참조하면, 노드(예: 도 2의 UE(201))는, 프로세서(410), 메모리(420), 및 통신 회로(430)를 포함할 수 있다. 일 실시예에 따르면, 노드는, 사용자와 인터페이스를 수행하기 위하여 디스플레이(440)를 더 포함할 수 있다.
프로세서(410)는, 노드의 전반적인 동작을 제어할 수 있다. 프로세서(410)는, 하나의 프로세서 코어(single core)를 포함하거나, 복수의 프로세서 코어들을 포함할 수 있다. 예를 들면, 프로세서(410)는, 듀얼 코어(dual-core), 쿼드 코어(quad-core), 헥사 코어(hexa-core) 등의 멀티 코어(multi-core)를 포함할 수 있다. 실시예들에 따라, 프로세서(410)는, 내부 또는 외부에 위치된 캐시 메모리(cache memory)를 더 포함할 수 있다. 실시예들에 따라, 프로세서(410)는, 하나 이상의 프로세서들로 구성될(configured with) 수 있다. 예를 들면, 프로세서(410)는, 애플리케이션 프로세서(application processor), 통신 프로세서(communication processor), 또는 GPU(graphical processing unit) 중 적어도 하나를 포함할 수 있다.
프로세서(410)의 전부 또는 일부는 노드 내의 다른 구성 요소(예를 들면, 메모리(420), 통신 회로(430), 또는 디스플레이(440))와 전기적으로(electrically) 또는 작동적으로(operatively) 결합(coupled with)되거나 연결될(connected to) 수 있다. 프로세서(410)는, 노드의 다른 구성 요소들의 명령을 수신할 수 있고, 수신된 명령을 해석할 수 있으며, 해석된 명령에 따라 계산을 수행하거나 데이터를 처리할 수 있다. 프로세서(410)는, 메모리(420), 통신 회로(430), 또는 디스플레이(440)로부터 수신되는 메시지, 데이터, 명령어, 또는 신호를 해석할 수 있고, 가공할 수 있다. 프로세서(410)는, 수신된 메시지, 데이터, 명령어, 또는 신호에 기반하여 새로운 메시지, 데이터, 명령어, 또는 신호를 생성할 수 있다. 프로세서(410)는, 가공되거나 생성된 메시지, 데이터, 명령어, 또는 신호를 메모리(420), 통신 회로(430), 또는 디스플레이(440)에게 제공할 수 있다.
프로세서(410)는, 프로그램에서 생성되거나 발생되는 데이터 또는 신호를 처리할 수 있다. 예를 들면, 프로세서(410)는, 프로그램을 실행하거나 제어하기 위해 메모리(420)에게 명령어, 데이터 또는 신호를 요청할 수 있다. 프로세서(410)는, 프로그램을 실행하거나 제어하기 위해 메모리(420)에게 명령어, 데이터, 또는 신호를 기록(또는 저장)하거나 갱신할 수 있다.
메모리(420)는, 노드를 제어하는 명령어, 제어 명령어 코드, 제어 데이터, 또는 사용자 데이터를 저장할 수 있다. 예를 들면, 메모리(420)는, 애플리케이션(application) 프로그램, OS(operating system), 미들웨어(middleware), 또는 디바이스 드라이버(device driver) 중 적어도 하나를 포함할 수 있다.
메모리(420)는, 휘발성 메모리(volatile memory) 또는 불휘발성(non-volatile memory) 중 하나 이상을 포함할 수 있다. 휘발성 메모리는, DRAM(dynamic random access memory), SRAM(static RAM), SDRAM(synchronous DRAM), PRAM(phase-change RAM), MRAM(magnetic RAM), RRAM(resistive RAM), FeRAM(ferroelectric RAM) 등을 포함할 수 있다. 불휘발성 메모리는, ROM(read only memory), PROM(programmable ROM), EPROM(electrically programmable ROM), EEPROM(electrically erasable programmable ROM), 플래시 메모리(flash memory) 등을 포함할 수 있다.
메모리(420)는, 하드 디스크 드라이브(HDD, hard disk drive), 솔리드 스테이트 디스크(SSD, solid state disk), eMMC(embedded multimedia card), UFS(universal flash storage)와 같은 불휘발성 매체(medium)를 더 포함할 수 있다.
메모리(420)는, 도 2의 타겟 애플리케이션(212) 및 접속 제어 애플리케이션(211)을 저장할 수 있다. 접속 제어 애플리케이션(211)은, 컨트롤러(202)와의 제어 플로우 생성 및 갱신 기능을 수행할 수 있다. 이를 위하여 접속 제어 애플리케이션(211)은, 하나 이상의 보안 모듈을 포함할 수 있다.
메모리(420)는, 컨트롤러의 메모리(예: 도 3의 메모리(330))에 포함된 정보 중 일부를 저장할 수 있다. 예를 들어, 메모리(420)는, 도 3에서 설명된 데이터 플로우 테이블(316)을 저장할 수 있다.
통신 회로(430)는, 노드와 외부 전자 장치(예: 도 2의 컨트롤러(202), 제1 게이트웨이(203), 또는 통신 코어(205))간의 유선 또는 무선 통신 연결의 수립, 및 수립된 연결을 통한 통신 수행을 지원할 수 있다. 일 실시예에 따르면, 통신 회로(430)는, 무선 통신 회로(예: 셀룰러 통신 회로, 근거리 무선 통신 회로, 또는 GNSS(global navigation satellite system) 통신 회로) 또는 유선 통신 회로(예: LAN(local area network) 통신 회로, 또는 전력선 통신 회로)를 포함하고, 그 중 해당하는 통신 회로를 이용하여 블루투스, Wi-Fi direct 또는 IrDA(infrared data association) 같은 근거리 통신 네트워크 또는 셀룰러 네트워크, 인터넷, 또는 컴퓨터 네트워크와 같은 원거리 통신 네트워크를 통하여 외부 전자 장치와 통신할 수 있다. 상술한 여러 종류의 통신 회로(430)는 하나의 칩으로 구현되거나 또는 각각 별도의 칩으로 구현될 수 있다.
디스플레이(440)는, 컨텐츠, 데이터, 또는 신호를 출력할 수 있다. 다양한 실시예들에서, 디스플레이(440)는, 프로세서(410)에 의해 가공된 이미지 데이터를 표시할 수 있다. 실시예들에 따라, 디스플레이(440)는, 터치 입력 등을 수신할 수 있는 복수의 터치 센서들(미도시)과 결합됨으로써, 일체형의 터치 스크린(touch screen)으로 구성될(configured with) 수도 있다. 디스플레이(440)가 터치 스크린으로 구성되는 경우, 복수의 터치 센서들은, 디스플레이(440) 위에 배치되거나, 디스플레이(440) 아래에 배치될 수 있다.
외부 서버(예: 도 2의 컨트롤러(202)))는, 프로세서(410), 메모리(420), 및 통신 회로(430)를 포함할 수 있다. 서버에 포함되는 프로세서(410), 메모리(420) 및 통신 회로(430)는, 상술한 프로세서(410), 메모리(420) 및 통신 회로(430)와 실질적으로 동일할 수 있다.
게이트웨이(예: 도 2의 제1 게이트웨이(203))는, 프로세서(410), 메모리(420), 및 통신 회로(430)를 포함할 수 있다. 게이트웨이에 포함되는 프로세서(410), 메모리(420) 및 통신 회로(430)는, 상술한 프로세서(410), 메모리(420) 및 통신 회로(430)와 실질적으로 동일할 수 있다.
도 5는 일 실시예에 따라 데이터 패킷의 전송을 제어하는 동작을 설명한다.
도 5를 참조하면, 접속 제어 애플리케이션(211)은, UE(201)에 포함된 타겟 애플리케이션(212)으로부터 통신 코어(205)에 대한 네트워크 접속 요청을 감지하고, UE(201)또는 접속 제어 애플리케이션(211)이 컨트롤러(202)와 접속된 상태인지 여부를 결정할 수 있다. UE(201) 또는 접속 제어 애플리케이션(211)이 컨트롤러(202)와 접속된 상태가 아닌 경우, 접속 제어 애플리케이션(211)은, 운영체제가 포함되는 커널(kernel)이나 네트워크 드라이버에서 데이터 패킷의 전송을 차단할 수 있다. 접속 제어 애플리케이션(211)을 통해, UE(201)는 OSI 계층 중 응용 계층에서 악의적인 애플리케이션의 접속을 사전에 차단할 수 있다.
접속 제어 애플리케이션(211)이 컨트롤러(202)와 접속된 상태가 아닌 경우 접속 제어 애플리케이션(211)으로부터 전송되는 데이터 패킷은, 제1 게이트웨이(203)에 의하여 차단되며 접속 제어 애플리케이션(211)은 컨트롤러(202)로 접속을 요청할 수 있을 뿐이다.
UE(201)에 접속 제어 애플리케이션(211)이 설치되지 않거나 악성 애플리케이션이 접속 제어 애플리케이션(211)의 제어를 우회하는 경우, 비인가된 데이터 패킷 또는 인가된 채널을 통해 전송되지 않은 데이터 패킷이 UE(201)로부터 전송될 수 있다. 이 경우, 네트워크의 경계에 존재하는 제1 게이트웨이(203)는 미인증된 데이터 패킷, 데이터 플로우가 존재하지 않는 데이터 패킷 및 인가된 채널을 통해 수신되지 않은 데이터 패킷을 차단하므로 UE(201)로부터 송신된 데이터 패킷(예: TCP 세션 생성을 위한 데이터 패킷)은 통신 코어(205)에 도달하지 않을 수 있다. 다시 말해, UE(201)는 통신 코어(205)로부터 격리될 수 있다.
UE(201)는, 통신 코어(205)와의 식별 및 인증을 통해 할당된 IP 주소 및 GTP 터널(230)에 기반하여, 통신을 수행할 수 있다. 구체적으로, UE(201)는, 통신 코어(205) 또는 컨트롤러(202)와, 하나 이상의 인증을 수행하지 않는 경우(즉, UE(201)의 통신 코어(205)에 대한 인증을 수행하지 않는 경우, 또는 UE(201)의 컨트롤러(202)에 대한 인증을 수행하지 않는 경우) 제1 게이트웨이(203)에서 네트워크 접근이 차단될 수 있다. 이 경우, UE(201)는, 컨트롤러(202)로 전송되는 데이터 패킷을 제외하고, 데이터 패킷을 통신 코어(205)로 전송할 수 없다. 이와 같은 경우, UE(201)는, 통신 코어(205)로부터 비인가 상태일 수 있다. 즉, 비인가 UE(201)는, 통신 코어(205) 또는 데이터 네트워크, 엣지 네트워크에 존재하는 서비스 및 서버에 접속할 수 없는 격리된 상태가 될 수 있다.
도 6은 일 실시예에 따른 GTP 터널 데이터 패킷의 구조의 예시를 도시한다.
UE(201) 또는 게이트웨이(예: 도 2의 제1 게이트웨이(203))는, UE(201)의 데이터 흐름(예: 데이터 패킷의 전송 및 수신에 관한 흐름)의 식별 및 인증을 통해, 인가된 대상의 인가된 네트워크 접근 여부를 확인할 수 있다. 예를 들어, 인가된 대상의 인가된 네트워크 접근 여부는, 페이로드(610)(Payload)에 UE(201) 및 UE(201)의 데이터 흐름의 식별 및 인증에 기반이 되는 인증 정보를 통해, 수행될 수 있다. 구체적으로, 페이로드(610)에 인증 정보를 삽입하는 동작은, 통신 코어(205) 상에서 할당된 UE(201)의 IP 주소가, 데이터 네트워크 또는 엣지 네트워크로 전송 및/또는 전환 시, 해당 네트워크의 IP 주소로 전환되는 특성(예: Network Address Translation)에 따라, 데이터 네트워크 또는 엣지 네트워크에서 UE(201)를 식별할 수 없는 문제점을 해결하기 위해, 수행될 수 있다.
TCP 기반의 데이터 패킷 전송 과정에서, 실질적인 데이터 패킷을 전송하기 이전에, 타겟 애플리케이션(212)은, 목적지 서버와 TCP Session을 생성할 수 있다. 접속 제어 애플리케이션(211)은, TCP Session 생성을 위한 3 Way Handshake 과정에서, TCP Session 생성을 위한 TCP SYN(예: SYN flood) 데이터 패킷의 페이로드(610)에 데이터 플로우 헤더(620)를 삽입할 수 있다.
접속 제어 애플리케이션(211)은, TCP Session 생성을 위한 TCP SYN 데이터 패킷에 데이터 플로우 헤더(620)를 삽입 및 인증을 통해, 인증된 대상에 대해 TCP Session을 생성할 수 있다. 접속 제어 애플리케이션(211)은, 인증되지 않은 대상에 대해, TCP Session을 생성하지 않기 때문에, 모든 데이터 패킷 전송 시 마다 인증 정보를 삽입하는 방식보다, 효율적인 TCP 기반의 데이터 패킷의 통제를 수행할 수 있다.
UDP 기반의 데이터 패킷 전송 과정에서, 접속 제어 애플리케이션(211)은, TCP와 같이 Session 생성 개념이 존재하지 않는 UDP에 대한, 자체적인 인증 시점을 관리할 수 있다. 예를 들어, 접속 제어 애플리케이션(211)은, 컨트롤러(202)로부터 수신된 데이터 플로우의 인증 정보에 따라 UDP 기반의 데이터 패킷 전송 시, 연속적으로 전송되는 UDP 데이터 패킷의 흐름의 첫번째 데이터 패킷에, 데이터 플로우 헤더(620)를 삽입하여, 데이터 패킷을 전송할 수 있다. 데이터 패킷은, 데이터 플로우 헤더(620)의 삽입 없이 전송되거나, 인증이 필요한 경우, 데이터 플로우 헤더(620)를 포함(즉, 모든 UDP 데이터 패킷에)할 수 있다.
데이터 플로우 헤더(620)는, 데이터 플로우 식별 정보(예: 도 6에서 Data Flow ID로 도시됨) 및 암호화된 인증 정보(예: 도 6에서 Encrypted OTP로 도시됨)를 포함할 수 있다. 예를 들어, IP 네트워크에서 데이터 패킷은, 5 Tuples 정보(예: 프로토콜, 출발지 IP, 포트, 도착지 IP, 및 포트를 포함) 이외에 식별할 수 있는 정보를 포함하기 때문에, IP를 할당 받은 단말이 실질적으로 인증되었는지 여부 및 실질적 통신 주체인 애플리케이션이 허용된 대상에 의해서 전송되었는지 여부를 알 수 없다. 따라서, 게이트웨이는, 인증된 대상으로부터 전송된 데이터 패킷임을 확인하기 위해, 컨트롤러(202)로부터 데이터 플로우 정보를 수신하고, 수신된 데이터 플로우 정보에 포함된 데이터 플로우 식별 정보, 도착지 IP 및 포트 정보에 기반하여 데이터 패킷 전송 제어를 수행할 수 있다. 구체적으로, 게이트웨이는, 데이터 패킷 전송을 제어 시, 데이터 플로우 헤더(620)에 포함된 데이터 플로우 식별 정보로 데이터 플로우 정보를 탐색할 수 있다. 참고로, 본 명세서에서는, 설명의 편의를 위해, 데이터 플로우와 데이터 플로우 정보가 동일한 것으로 설명될 수 있으나, 이로 제한되는 것은 아니다. 게이트웨이는, 데이터 플로우 정보에 포함된 도착지 IP 및 포트 정보와 해당 데이터 패킷에 포함된 도착지 IP 및 포트 정보와 비교하여, 비교된 대상이 동일한지 여부를 확인함으로써, 데이터 플로우 식별 정보를 기반으로 인증된 대상만 허용된 목적지 네트워크에 접속할 수 있도록 한다.
데이터 플로우 헤더(620)에 포함된 암호화된 인증 정보는, 컨트롤러(202)로부터 수신된 데이터 플로우의 인증 정보에 포함된 인증 정보의 암호화 키 및 복호화 키를 통해, 인증된 대상에 대해서만(예: 데이터 플로우가 존재하는 경우) 암호화된 인증 정보의 복호화를 수행할 수 있다. 복호화된 인증 정보(630)는, 데이터 플로우 식별 정보와 같이 매 데이터 패킷 인증 시점마다 고정되어 있는 값이 아닌, 인증 시점마다 변경되는 OTP(One-Time Password) 및 Random Generation 형태의 정보를 포함할 수 있다. 만약 암호화된 인증 정보가 인증되는 시점마다 변경되지 않는 경우, 컨트롤러(202)로부터 수신된 데이터 플로우에 의해 데이터 패킷의 흐름을 유지하는 기간 동안 고정된 인증 정보로 전송될 수 있다. 따라서, 데이터 플로우의 인증 정보에 포함된 OTP 생성 및 검증을 위한 정보에 기반하여, 접속 제어 애플리케이션(211) 또는 게이트웨이는, 매 인증 시점마다 변경되는 OTP 정보를 생성하고, 생성된 OTP 정보를 암호화하여, 데이터 플로우 식별 정보가 삽입된 데이터 플로우 헤더(620) 정보를 포함하는 데이터 패킷을 전송할 수 있다.
데이터 네트워크와 엣지 네트워크, 및 통신 코어(205) 사이에 존재하는 게이트웨이(예: 도 2에서 제2 게이트웨이(216))는, 수신된 데이터 패킷에서 데이터 플로우 헤더(620)를 식별하고 데이터 플로우 식별 정보로 데이터 플로우 정보를 확인하여, 데이터 플로우에 포함된 복호화 키로 데이터 플로우 인증 정보를 복호화하고, OTP 검증 알고리즘에 의해 데이터 플로우가 허용된 대상으로부터 전송되었음을 확인함으로써, 터널링 없이 UE(201)와 대상 네트워크 사이에서의 데이터 패킷 흐름을, 안전하게 제어할 수 있다.
도 7은 일 실시예에 따른 UE의 등록 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 705에서, 통신 코어(205)에 대한 등록 요청을 수행할 수 있다. 예를 들어, UE(201)는, 무선 통신망에 연결하기 위해, 3GPP 표준, 규약, 및 절차(procedure)에 따라, 등록 절차(예: Initial Request, Request, Attach 등)를 수행할 수 있다.
제1 게이트웨이(203)는, 동작 710에서, UE(201)의 등록 요청 여부를 확인하고, 식별 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, RAN(207)과 통신 코어(205) 사이에 존재하는 게이트웨이를 나타낼 수 있으며, 제1 게이트웨이(203)는, 통신 코어(205)로 전송되는 UE(201)의 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, UE(201)의 등록 요청 정보를 확인하여, 무선 통신망에서 UE(201)를 식별하기 위한 정보인 UE 식별 정보(예: IMSI(International Mobile Subscriber Identity), SUPI(Subscription Permanent Identifier), SUCI(Subscription Concealed Identifier), 및 GUTI(Globally Unique Temporary Identity))를 수집할 수 있다. 구체적으로, 제1 게이트웨이(203)는, UE 등록 요청을 통신 코어(205)에 전송하는 시점 이전에, 통신망에서 UE(201)를 식별하기 위한, UE의 식별 정보(예: IMSI, SUPI, SUCI, 및 GUTI)를 식별할 수 있다.
통신 코어(205)는, 동작 715에서, UE의 등록 처리를 수행할 수 있다. 예를 들어, 통신 코어(205)는, UE(201)가 전송한 일련의 정보에 따라, UE(201)를 등록할 수 있다. 통신 코어(205)는, UE(201)를 등록한 것에 기반하여, 추가 인증 절차와 PDU 세션 할당 절차 등을 수행하기 위한 정보, 및 IP 주소와 UE 임시 식별 정보를 포함하는 UE 등록 결과를, 제1 게이트웨이(203)로 반환할 수 있다. 여기서, 제1 게이트웨이(203)는, UE 등록 요청에 따라 UE(201)가 통신 코어(205)에서 등록된 것에 기반하여, 통신 코어(205)로부터, UE 등록 결과를 수신할 수 있다. 추가로, UE 등록 결과는, UE(201)의 추가 인증에 관한 정보, PDU 세션 할당에 관한 정보, UE(201)의 IP 할당 정보, UE(201)의 임시 식별 정보, 또는 이들의 어느 조합 중의 적어도 하나를 포함할 수 있다.
제1 게이트웨이(203)는, 동작 720에서, UE(201)의 등록 결과를 확인하고, UE 식별 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE 등록 결과를 수신한 것에 기반하여, UE 등록 결과에 따라, UE(201)의 IP 주소 및 UE 식별 정보를 식별할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 통신 코어(205)로부터 수신한 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, UE 등록 요청 결과 정보를 확인하여, UE 등록 상태(예: 등록 완료, 추가 인증 필요, 및 등록 실패 등) 및 UE 등록에 따라 부여된 식별 정보(예: GUTI (Globally Unique Temporary Identity) 등)에 기반하여, UE(201)에 IP 주소를 할당한 경우, UE(201)의 IP 주소를 수집할 수 있다.
제1 게이트웨이(203)는, 동작 725에서, UE(201)의 정보 갱신을, 컨트롤러(202)로 요청할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE 식별 정보, UE(201)의 IP 주소, 또는 이들의 어느 조합 중의 적어도 하나를 외부 서버(예: 컨트롤러(202))로 전송함으로써, UE(201)의 등록 요청에 따른 데이터 플로우의 업데이트(예: 갱신)를 수행할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 수집된 UE 등록 및 결과 정보로써, UE(201)를 식별하기 위한 정보(예: IMSI, SUPI, SUCI, GUTI 등), UE(201)의 등록 상태 정보, UE(201)에 할당된 IP 주소를, 외부 서버인 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 730 및 동작 735에서, 제1 게이트웨이(203)로부터 수신한 UE(201)의 정보 갱신 요청에 응답하여, UE 테이블의 갱신 및 데이터 플로우 정보의 갱신을 수행할 수 있다. UE 테이블의 갱신 및 데이터 플로우 정보의 갱신에 관한 자세한 설명은, 아래 도 11에서 후술된다.
제1 게이트웨이(203)는, 동작 740에서, 컨트롤러(202)의 데이터 플로우 정보의 갱신이 수행된 것에 기반하여, UE(201)에 관한 데이터 플로우 정보의 갱신을 수행할 수 있다. 또한, UE(201)는, 동작 745에서, 제1 게이트웨이(203)가 통신 코어(205)로부터 UE(201)의 등록 처리에 관한 결과를 수신한 시점 이후에, 제1 게이트웨이(203)로부터 UE(201)의 등록 요청 결과를 수신할 수 있다.
도 8은 일 실시예에 따른 UE의 상태 갱신 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 805에서, 통신 코어(205)에 대한 인증 및 해제 등 상태 갱신 요청을 수행할 수 있다. 예를 들어, UE(201)는, UE(201)의 인증, 및 해제 등에 관한 상태 갱신 요청을 수행할 수 있다. UE(201)는, 무선 통신망에 연결하기 위해, 3GPP 표준, 규약, 및 절차에 따라, UE 상태 변경 절차(예: Identity Request, Authentication, Detach 등)를 수행할 수 있다.
제1 게이트웨이(203)는, 동작 810에서, UE(201)의 인증, 해제 등 상태 갱신 요청 여부를 확인하고, 상태 변경 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE(201)가 통신 코어(205)에 등록된 시점 이후부터, UE(201)의 인증, UE(201)의 해제, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 UE 상태 갱신 요청을 수신한 것에 기반하여, UE 식별 정보를 식별할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 통신 코어(205)로 전송되는 UE(201)의 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, UE(201)의 인증, 해제 등 상태 갱신 요청 정보를 확인하여, 무선 통신망에서 UE(201)를 식별하기 위한 정보인 UE 식별 정보(예: IMSI, SUPI, SUCI, 및 GUTI 등)를 수집할 수 있다.
통신 코어(205)는, 동작 815에서, UE(201)의 인증, 해제 등 상태 갱신에 관한 요청의 처리를 수행할 수 있다. 예를 들어, 통신 코어(205)는, UE(201)가 전송한 일련의 정보에 따라, UE(201)의 상태를 변경할 수 있다. 통신 코어(205)는, 추가 인증 절차와 PDU 세션 할당 절차 등을 수행하기 위한 정보, 및 IP 주소 등의 정보를 포함하는 UE 인증, 해제 등의 상태 갱신 결과를, 제1 게이트웨이(203)로 반환할 수 있다. 여기서, 제1 게이트웨이(203)는, UE(201)의 상태 갱신 요청에 따라, UE(201)의 상태가 통신 코어(205)에 의해 갱신된 것에 기반하여, 통신 코어(205)로부터, UE 상태 갱신 결과를 수신할 수 있다. UE 상태 갱신 결과는, UE(201)의 추가 인증에 관한 정보, PDU 세션 할당에 관한 정보, UE(201)의 IP 주소, 또는 이들의 어느 조합 중의 적어도 하나를 포함할 수 있다.
제1 게이트웨이(203)는, 동작 820에서, UE(201)의 인증, 해제 등 상태 갱신 결과를 확인하고, UE(201)의 상태 변경 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE 상태 갱신 결과를 수신한 것에 기반하여, UE 상태 갱신 결과에 따라, UE(201)의 IP 주소를 식별할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 통신 코어(205)가 반환한 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, UE 상태 변경 내지는 갱신 결과 정보를 확인하여, UE 등록 상태(예: 상태 변경 완료, 상태 변경 실패, 해제 완료, 추가 인증 필요 등), UE 상태 변경 결과, 및 상태 변경 결과에 따라 부여된 식별 정보(예: GUTI)에 기반하여, UE(201)에 IP를 할당한 경우, IP 주소를 수집할 수 있다.
제1 게이트웨이(203)는, 동작 825에서, UE(201)의 정보 갱신을, 컨트롤러(202)로 요청할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE(201)의 식별 정보, IP 주소, 또는 이들의 어느 조합 중의 적어도 하나를 외부 서버(예: 컨트롤러(202))로 전송함으로써, UE 상태 갱신 요청에 따른 데이터 플로우의 업데이트(예: 갱신)를 수행할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 수집된 UE 상태 변경 및 결과 정보로써, UE 식별 정보, UE 상태 정보, UE에 할당된 IP 주소를, 외부 서버인 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 830 및 동작 835에서, 제1 게이트웨이(203)로부터 수신한 UE(201)의 정보 갱신 요청에 응답하여, UE 테이블의 갱신 및 데이터 플로우 정보의 갱신을 수행할 수 있다. UE 테이블의 갱신 및 데이터 플로우 정보의 갱신에 관한 자세한 설명은, 아래 도 11에서 후술된다.
제1 게이트웨이(203)는, 동작 840에서, 컨트롤러(202)의 데이터 플로우 정보의 갱신이 수행된 것에 기반하여, UE(201)에 관한 데이터 플로우 정보의 갱신을 수행할 수 있다. 또한, UE(201)는, 동작 845에서, 제1 게이트웨이(203)가 통신 코어(205)로부터 UE(201)의 인증, 해제 등 상태 갱신 요청에 관한 결과를 수신한 시점 이후에, 제1 게이트웨이(203)로부터 UE(201)의 갱신 요청에 관한 결과를 수신할 수 있다.
도 9는 일 실시예에 따른 UE의 PDU 세션 생성 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 905에서, PDU 세션 생성 요청을 수행할 수 있다. 예를 들어, UE(201)는, 무선 통신망에 연결하기 위해, 3GPP 표준, 규약, 및 절차에 따라, PDU 세션 생성 요청 절차를 수행할 수 있다.
제1 게이트웨이(203)는, 동작 910에서, UE(201)의 PDU 세션 생성 요청 여부를 확인하고, 식별 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, PDU 세션 생성 요청을 통신 코어(205)에 전송하는 시점 이전에, UE 식별 정보 및 PDU 세션 식별 정보를 식별할 수 있다. 제1 게이트웨이(203)는, 통신 코어(205)로 전송되는 UE(201)의 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, UE(201)의 PDU 세션 요청 정보를 확인하여, 무선 통신망에서 UE 식별 정보(예: IMSI, SUPI, SUCI, 및 GUTI 등) 및 PDU 세션 식별 정보를 수집할 수 있다.
통신 코어(205)는, 동작 915에서, UE(201)의 PDU 세션 생성 요청의 처리를 수행할 수 있다. 예를 들어, 통신 코어(205)는, UE(201)가 전송한 일련의 정보에 따라, UE(201)에 대한 PDU 세션 생성 절차를 진행할 수 있다. 통신 코어(205)는, IP 주소 등의 정보를 포함하는 PDU 세션 생성 결과를, 제1 게이트웨이(203)로 반환할 수 있다. 여기서, 제1 게이트웨이(203)는, PDU 세션 생성 요청에 따라 통신 코어(205)에서 UE(201)에 관한 PDU 세션이 생성된 것에 기반하여, 통신 코어(205)로부터, PDU 세션 생성 결과를 수신할 수 있다.
제1 게이트웨이(203)는, 동작 920에서, PDU 생성 요청 결과를 확인하고, 식별 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, PDU 세션 생성 결과를 수신한 것에 기반하여, PDU 세션 생성 결과에 따라, UE(201)의 IP 주소를 식별할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 통신 코어(205)가 반환한 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, PDU 세션 생성 요청 결과 정보를 확인하여, PDU 생성 요청 상태(예: 생성 완료, 추가 인증 필요, 생성 실패 등) 및 PDU 세션 생성에 따라 부여된 식별 정보(예: PDU 세션 식별 정보 등)에 기반하여, UE(201)에 IP를 할당한 경우, IP 주소를 수집할 수 있다.
제1 게이트웨이(203)는, 동작 925에서, UE(201)의 정보 갱신을, 컨트롤러(202)로 요청할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE(201)의 식별 정보, IP 할당 정보, PDU 세션을 식별하기 위한 정보, PDU 세션 생성 상태 정보, 또는 이들의 어느 조합 중의 적어도 하나를 외부 서버(예: 컨트롤러(202))로 전송함으로써, PDU 세션 생성 요청에 따른 데이터 플로우의 업데이트를 수행할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 수집된 PDU 세션 생성 및 결과 정보로써, UE 식별 정보(예: IMSI, SUPI, SUCI, GUTI 등), PDU 세션을 식별하기 위한 정보, PDU 세션 생성 상태 정보, UE(201)에 할당된 IP 주소를, 외부 서버인 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 930 및 동작 935에서, 제1 게이트웨이(203)로부터 수신한 UE(201)의 정보 갱신 요청에 응답하여, UE 테이블의 갱신 및 데이터 플로우 정보의 갱신을 수행할 수 있다. UE 테이블의 갱신 및 데이터 플로우 정보의 갱신에 관한 자세한 설명은, 아래 도 11에서 후술된다.
제1 게이트웨이(203)는, 동작 940에서, 컨트롤러(202)의 데이터 플로우 정보의 갱신이 수행된 것에 기반하여, UE(201)에 관한 데이터 플로우 정보의 갱신을 수행할 수 있다. 또한, UE(201)는, 동작 945에서, 제1 게이트웨이(203)가 통신 코어(205)로부터 PDU 세션 생성 요청에 관한 결과를 수신한 시점 이후에, 제1 게이트웨이(203)로부터 UE(201)의 PDU 세션 생성 요청에 관한 결과를 수신할 수 있다.
도 10은 일 실시예에 따른 UE의 PDU 세션 상태 갱신 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1005에서, 통신 코어(205)에 대한 PDU 세션 상태 갱신 요청을 수행할 수 있다. 예를 들어, UE(201)는, UE(201)의 PDU 세션 상태 갱신 요청을 수행할 수 있다. UE(201)는, 무선 통신망에 연결하기 위해, 3GPP 표준, 규약, 및 절차에 따라, PDU 세션 상태 갱신 요청 절차를 수행할 수 있다.
제1 게이트웨이(203)는, 동작 1010에서, UE(201)의 세션 상태 갱신 요청 여부를 확인하고, 및 식별 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 통신 코어(205)에서 UE(201)에 관한 PDU 세션이 결정된 시점 이후부터, PDU 세션 상태 갱신 요청을 수신한 것에 기반하여, UE 식별 정보 및 PDU 세션 식별 정보를 식별할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 통신 코어(205)로 전송되는 UE(201)의 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, UE(201)의 PDU 세션 상태 갱신 요청 정보를 확인하여, 무선 통신망에서 UE 식별 정보(예: IMSI, SUPI, SUCI, 및 GUTI 등) 및 PDU 세션 식별 정보를 수집할 수 있다.
통신 코어(205)는, 동작 1015에서, UE(201)의 PDU 세션 상태 갱신 요청의 처리를 수행할 수 있다. 예를 들어, 통신 코어(205)는, UE(201)가 전송한 일련의 정보에 따라 UE(201)의 PDU 세션 상태 갱신 절차를 수행할 수 있다. 통신 코어(205)는, IP 주소의 변경 또는 해제 등의 정보를 포함하는, PDU 세션 상태 갱신 결과를, 제1 게이트웨이(203)로 반환할 수 있다. 여기서, 제1 게이트웨이(203)는, PDU 세션 상태 갱신 요청에 따라 통신 코어(205)에서 UE(201)에 관한 PDU 세션이 결정된 것에 기반하여, 통신 코어(205)로부터, UE(201)의 IP 주소의 변경에 관한 정보를 포함하는 PDU 세션 상태 갱신 결과를 수신할 수 있다.
제1 게이트웨이(203)는, 동작 1020에서, UE(201)의 PDU 상태 갱신 결과를 확인하고, 식별 정보를 수집할 수 있다. 예를 들어, 제1 게이트웨이(203)는, PDU 세션 상태 갱신 결과를 수신한 것에 기반하여, PDU 세션 상태 갱신 결과에 따라, IP 주소를 식별할 수 있다. 구체적으로, 제1 게이트웨이(203)는, PDU 세션 상태 갱신 결과 정보를 확인하여, PDU 생성 요청 상태(예: 생성 완료, 추가 인증 필요, 생성 실패 등) 및 PDU 세션 상태 갱신에 따라 부여된 식별 정보(예: PDU 세션 식별 정보 등)에 기반하여, UE(201)에 IP를 변경(예: 할당) 또는 해제한 경우, IP 주소를 수집할 수 있다.
제1 게이트웨이(203)는, 동작 1025에서, UE(201)의 정보 갱신을, 컨트롤러(202)로 요청할 수 있다. 예를 들어, 제1 게이트웨이(203)는, UE(201)의 식별 정보, IP 주소, 또는 이들의 어느 조합 중의 적어도 하나를 외부 서버(예: 컨트롤러(202))로 전송함으로써, PDU 세션 상태 갱신 요청에 따른 데이터 플로우의 업데이트(예: 갱신)를 수행할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 수집된 PDU 세션 생성 및 결과 정보로써, UE 식별 정보(예: IMSI, SUPI, SUCI, GUTI 등), PDU 세션을 식별하기 위한 정보, PDU 세션 상태 갱신 정보, UE(201)에 할당된 IP 주소를, 외부 서버인 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 1030 및 동작 1035에서, 제1 게이트웨이(203)로부터 수신한 UE(201)의 정보 갱신 요청에 응답하여, UE 테이블의 갱신 및 데이터 플로우 정보의 갱신을 수행할 수 있다. UE 테이블의 갱신 및 데이터 플로우 정보의 갱신에 관한 자세한 설명은, 아래 도 11에서 후술된다.
제1 게이트웨이(203)는, 동작 1040에서, 컨트롤러(202)의 데이터 플로우 정보의 갱신이 수행된 것에 기반하여, UE(201)에 관한 데이터 플로우 정보의 갱신을 수행할 수 있다. 또한, UE(201)는, 동작 1045에서, 제1 게이트웨이(203)가 통신 코어(205)로부터 UE(201)의 PDU 세션 상태 갱신 요청에 관한 결과를 수신한 시점 이후에, 제1 게이트웨이(203)로부터 UE(201)의 PDU 세션 상태 갱신 요청에 관한 결과를 수신할 수 있다.
도 11은 일 실시예에 따른 UE로부터 전송된 데이터 패킷의 검사에 따라 데이터 플로우를 생성 및/또는 데이터 플로우의 업데이트를 수행하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 컨트롤러(202)는, 동작 1105에서, 제1 게이트웨이(203)가 전송한 UE 정보 갱신 요청 정보에 포함된 UE 식별 정보에 해당하는 UE 정보가 UE 테이블에 존재하는지 확인할 수 있다.
컨트롤러(202)는, 동작 1110에서, UE 식별 정보가 UE(201)를 식별하기 위한 정보(예: IMSI 및 SUPI)로부터 암호화된 정보(예: SUCI)인 경우, UE 인증 정책에 따라 암호화된 인증 정보를 복호화하기 위한 인증서 또는 암호화키 정보에 기반하여, UE 식별 정보의 복호화를 수행할 수 있다. 컨트롤러(202)는, 복호화가 수행된 것에 기반하여, 동작 1115에서, UE 정보를 탐색할 수 있다.
컨트롤러(202)는, UE 정보가 존재하는 경우, 네트워크 접속 가능 여부를 결정할 수 있다. 컨트롤러(202)는, 동작 1120에서, 네트워크 접속이 불가능한 것에 기반하여, 데이터 플로우 및 IP 주소 등의 접속 정보의 제거를 수행할 수 있다. 여기서, 네트워크 접속이 불가능한 상태는, 추가 인증 필요 또는 요청에 따른 결과(예: 등록 실패, 인증 실패, 및 세션 생성 실패)에 따라 UE(201)가 정상적으로 통신 코어(205)와 연결되지 않은 상태 및 UE(201)가 등록되지 않아 통신이 불가능한 상태를 포함할 수 있다.
구체적으로, 컨트롤러(202)는, 동작 1125에서, 제1 게이트웨이(203)가 전송한 UE 정보로, UE 정보의 갱신을 수행할 수 있다. 이후, 컨트롤러(202)는, UE(201)가 비인가된 네트워크로의 접근을 차단하기 위해, UE(201)에 할당된 IP 주소 및 PDU 세션 정보, 및 데이터 플로우 정보를 제거하고, 갱신된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1135에서, 갱신된 데이터 플로우 정보를 수신할 수 있다.
컨트롤러(202)는, 동작 1130에서, 통신 가능한 상태인 경우, 게이트웨이가 전송한 UE 정보로 UE 정보를 갱신할 수 있다. 구체적으로, 컨트롤러(202)는, 제1 게이트웨이(203)가 전송한 UE 정보 갱신 요청 정보에 UE(201)에 할당된 IP 주소가 존재하고, 식별된 UE 정보가 블랙리스트에 등록되어 있지 않은 경우, 기존에 생성된 데이터 플로우 정보를 제거할 수 있다.
컨트롤러(202)는, 접속 정책에 따라, UE(201)의 네트워크 접속을 인가하기 위해, 출발지 IP, 도착지 IP, 포트 정보, 전송 계층 프로토콜 정보 및 보안 검사 정책에 따라, 데이터 패킷의 검사가 필요로 한 경우, 프로토콜 식별 시그니처, 버전 정보, 헤더 정보, 및 규약 정보에 기반하여 데이터 패킷의 검사를 통해, 프로토콜을 식별할 수 있다.
컨트롤러(202)는, 식별된 프로토콜이 정상적인 프로토콜로 처리할 것인지에 대한 정보, 프로토콜 검사를 접속 제어 애플리케이션(211)이 수행할 것인지에 대한 정보, 데이터 패킷 정보를 컨트롤러(202)로 전송하여 수행할 것인지에 대한 정보, 네트워크 접속 시도 시점 또는 주기적으로 프로토콜의 검사를 수행할 것인지에 대한 정보, 검사에 관한 상태 정보, 데이터 패킷 검사 방법(예: 단일 패킷 검사, 복수 패킷 검사, 패킷 치환, 및 패킷 복사), 데이터 패킷 검사 시 적용될 패턴 및 룰 데이터베이스 정보 등을 포함하는 데이터 패킷 검사 정보를 포함하는 데이터 플로우 정보를 생성할 수 있다.
여기서, 데이터 플로우 정보는, 인증 정책에 의해 데이터 네트워크 또는 엣지 네트워크에 존재하는 제2 게이트웨이(216)가 데이터 플로우의 인증을 수행, 동적 프로토콜 파싱, 통신 대상 식별 정보 삽입을 위해 데이터 플로우 인증 정보를 삽입하는 경우, 전송 계층 프로토콜의 인증 정보를 삽입하는 방식(예: TCP의 경우 TCP SYN 패킷 삽입, 및 UDP의 경우 데이터 패킷 별 인증 정보 삽입, 또는 일정 간격으로 인증 정보 삽입 등에 관해 인증 알고리즘에 대한 최대 인증 횟수, 인증 정보 사용 기한, 삽입 방식 및 시점 등을 포함하는 삽입), 인증 정보의 암호화 및 복호화를 위한 정보, 인증 정보 생성과 검증을 위한 알고리즘 정보, 및 알고리즘에 포함되는 일련의 정보(예: HMAC OTP 생성시 Secret Key 등의 정보)를 포함할 수 있다. 컨트롤러(202)는, 생성된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1135에서, 생성된 및/또는 갱신된 데이터 플로우 정보를 수신할 수 있다.
도 12는 일 실시예에 따른 UE의 컨트롤러에 대한 접속을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1205에서, 컨트롤러(202)에 대한 접속 요청을 전송할 수 있다. 예를 들어, UE(201)는, 통신 코어(205)의 인증 수단보다 보안 등급이 높은 데이터 네트워크 또는 엣지 네트워크(206) 내의 서비스 및 서버에 접근하기 위해, 접속 제어 애플리케이션(211)을 통해 컨트롤러(202)와 제어 플로우의 생성에 관한, 접속 요청을 전송할 수 있다. 여기서, UE(201)는, 컨트롤러(202)가 UE(201)를 식별할 수 있도록, 통신 코어(205)로부터 할당된 IP 주소를 포함시킨 네트워크 접속 요청을, 전송할 수 있다. 구체적으로, UE(201)는, 제어 플로우를 생성하기 위해, 접속 제어 애플리케이션을 통해 컨트롤러(202)에게 UE(201)의 식별 정보 및 컨트롤러 접속 요청을 전송할 수 있다.
컨트롤러(202)는, 동작 1210에서, UE(201)의 접속 요청을 확인할 수 있다. 컨트롤러(202)는, UE(201)로부터 UE(201)의 식별 정보 및 컨트롤러 접속 요청을 수신함으로써, UE(201)의 접속 요청을 확인할 수 있다. 예를 들어, 컨트롤러(202)는, 접속 제어 애플리케이션(211)이 요청한 정보(예: UE(201)의 고유 식별 정보, MAC 주소, 및 할당된 IP 주소 등)가 정책에 의해 접속이 가능한 상태인지 여부, 및 UE(201)의 식별 정보(예: UE(201)의 고유 식별 정보, MAC 주소, 및 할당된 IP 주소 등)가 블랙리스트에 포함되어 있는지 여부를 검사할 수 있다. 여기서, 컨트롤러(202)는, 검사에 기반하여 UE(201)가 접속이 불가한 경우, 접속 불가 정보를 UE(201)에 전송할 수 있다.
컨트롤러(202)는, 동작 1215에서, 제어 플로우를 생성할 수 있다. 예를 들어, 컨트롤러(202)는, 네트워크 접속 요청에 기반하여, 노드(예: UE(201))에 관한 제어 플로우의 생성 요청을 포함하는, UE(201)의 인증 요청을 식별할 수 있다. 컨트롤러(202)는, UE(201)가 제1 게이트웨이(203)에 접속이 가능한 경우, 제어 플로우의 식별 정보 및 UE(201)의 타겟 애플리케이션(212)의 식별 정보를 포함하는 제어 플로우를 생성할 수 있다. 구체적으로, 컨트롤러(202)는, 접속 가능한 UE(201)인 경우, UE(201)의 추가 인증 요청 및 네트워크 접속 요청에 대응하기 위해, 난수 형태로 제어 플로우의 식별 정보 및 UE(201)의 식별 정보를 포함하는 제어 플로우를 생성하고, 제어 플로우 테이블에 추가할 수 있다.
컨트롤러(202)는, 동작 1220에서, 보안 검사 정책을 확인할 수 있다. 예를 들어, 컨트롤러(202)는, UE(201)의 유효성을 검사하기 위한 정보인 보안 정보를 식별할 수 있다. 구체적으로, 컨트롤러(202)는, 보안 검사 정책에 의해 식별된 UE(201) 별로 보안 검사 정책을 처리하기 위한 정보를 확인할 수 있다. 컨트롤러(202)는, UE(201)의 유효성을 검사하기 위한 정보(예: UE(201)의 백신 설치, 실행 여부, 및 운영체제 패치 여부 등)를 포함하는 보안 정보를 확인 및/또는 반환할 수 있다.
컨트롤러(202)는, 동작 1225에서, 데이터 플로우를 처리할 수 있다. 예를 들어, UE(201)의 인증 요청에 기반하여, 데이터 패킷의 검사 정보, UE(201)의 인증 정보, 및 UE(201)의 보안 검사 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)에 전송할 수 있다. 또한, 컨트롤러(202)는, 식별 정보, UE(201)의 보안 검사 정보, 및 데이터 패킷의 검사 정보에 기반하여, 생성된 데이터 플로우를, 제1 게이트웨이(203)에 전송할 수 있다.
구체적으로, 컨트롤러(202)는, 접속 정책에 따라 보안 검사가 불필요 하거나, 또는 보안 검사 이전에 UE(201)의 네트워크 접속을 인가하기 위해 UE(201)의 IP 주소(예: 출발지 IP), 도착지 IP, 포트 정보, 전송 계층 프로토콜 정보, 및 보안 검사 정책에 따라 데이터 패킷의 검사가 필요한 경우, 데이터 패킷의 프로토콜을 검사하기 위한 정보인, 프로토콜 식별 시그니처 및 버전 정보(예: 데이터 패킷 전송 및 수신시 포함된 프로토콜 정보를 식별하기 위한 정보), 헤더 정보, 및 규약 정보를 통해 데이터 패킷의 검사에 기반하여 프로토콜을 식별할 수 있다.
컨트롤러(202)는, (1) 식별된 프로토콜을 정상적인 프로토콜로 처리할 것인지에 대한 정보, (2) 프로토콜 검사를 접속 제어 애플리케이션(211)이 수행할 것인지 또는 데이터 패킷 정보를 컨트롤러(202)로 전송하여 검사를 수행할 것인지 여부, (3) 프로토콜 검사 시점에 대한 정보, (4) 검사가 완료되었는지 또는 검사가 더 필요로 한지에 대한 상태 정보, (5) 데이터 패킷의 검사 방법(예: 단일 패킷 검사, 복수 패킷 검사, 패킷 치환, 및 패킷 복사 등), 및 (6) 데이터 패킷의 검사시 적용할 패턴 또는 룰 데이터베이스 정보를 포함하는 데이터 패킷의 검사 정보를 결정할 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하는 데이터 플로우 정보를 생성할 수 있다.
컨트롤러(202)는, 인증 정책에 의해 데이터 네트워크 또는 엣지 네트워크(206) 에 존재하는 제2 게이트웨이(216)가, 데이터 플로우의 인증을 수행, 동적 프로토콜의 파싱, 및 통신 대상의 식별 정보 삽입을 위해, 데이터 플로우 인증 정보를 삽입하는 경우, (1) 전송 계층 프로토콜의 인증 정보를 삽입하는 방식(예: TCP의 경우 TCP SYN 패킷 삽입, UDP의 경우 데이터 패킷 별 인증 정보 삽입, 해당 인증 알고리즘에 대한 최대 인증 횟수, 인증 정보 사용 기한, 삽입 방식 및 시점 등), (2) 인증 정보의 암호화 및 복호화를 위한 정보, (3) 인증 정보의 생성 및 검증을 위한 알고리즘, 및 (4) 알고리즘에 포함되는 일련의 정보(예: HMAC OTP 생성시 Secret Key 등의 정보 등)를 포함하는 UE(201)의 인증 정보를 식별 및/또는 결정할 수 있다. 컨트롤러(202)는, 인증 정보를 데이터 플로우 정보에 포함시킬 수 있다.
컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하고, 인증 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, 제어 플로우 정보, UE(201)의 보안 검사 정보, 및 데이터 플로우 정보를 UE(201)에 전송할 수 있다.
제1 게이트웨이(203)는, 동작 1230에서, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 컨트롤러(202)로부터, 프로토콜 식별 시그니처, 버전 정보, 헤더 정보, 데이터 패킷의 검사 방법, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 데이터 패킷 검사 정보를 수신할 수 있다. 제1 게이트웨이(203)는, 데이터 패킷 검사 정보에 기초하여, 데이터 패킷의 동적 프로토콜 파싱을 수행할 수 있다. 제1 게이트웨이(203)는, 데이터 패킷에, UE(201)의 통신 대상을 식별할 수 있는 정보를 삽입할 수 있다. 제1 게이트웨이(203)는, 동적 프로토콜 파싱을 통해 획득된 데이터 패킷의 프로토콜에 기반하여, 컨트롤러(202)로부터 수신한 인증 정보의 처리를 수행할 수 있다.
UE(201)는, 동작 1235에서, 컨트롤러(202)로부터 수신된 접속 요청의 결과값을 처리할 수 있다. 예를 들어, UE(201)는, 컨트롤러(202)에 대한 접속이 불가능한 경우, 접속 제어 애플리케이션(211)의 실행을 중지하고 종료하거나, 관련된 오류 메시지를 출력할 수 있다. 또한, UE(201)는, 컨트롤러(202)로부터, 컨트롤러 접속 요청에 관한 결과를 수신할 수 있다.
UE(201)는, 동작 1240에서, 컨트롤러(202)로부터 수신된 접속 요청의 결과값에 기반한, 보안 검사 결과를 전송할 수 있다. 예를 들어, UE(201)는 컨트롤러(202)로부터 UE(201)의 보안 검사 정보를 수신하는 경우, 수신된 보안 검사 정보에 따라 보안 검사를 수행한 결과를 컨트롤러(202)로 전송할 수 있다. 구체적으로, UE(201)는, 컨트롤러(202)에 대한 접속이 가능하고, 컨트롤러(202)로부터 보안 검사 정보를 수신하는 경우, 컨트롤러(202)에게, 보안 검사 수행 결과를 전송할 수 있다.
컨트롤러(202)는, 동작 1245에서, 컨트롤러(202)로부터 수신된 보안 검사를 수행한 결과에 대해, 검사를 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 보안 검사를 수행한 결과에 기반하여, 보안 검사 정책에 따라 보안 검사 정책에서 UE(201)의 보안 검사 정보가 유효한지 여부를 검사할 수 있다. 컨트롤러(202)는, 또한, 보안 시스템(예: 컨트롤러(202)에 포함되거나, 또는 컨트롤러(202)와 연결된 타 시스템에 포함됨)을 통해, UE(201)의 검사 결과가 정상적인지 여부를 판단할 수 있다. 컨트롤러(202)는, UE(201)의 보안 검사가 정상적이지 않은 경우, 보안 검사 정책에 따라 보안 검사 결과의 위험 수준을 평가하고, 위험 수준에 따라 제어 플로우를 해제하여, UE(201)의 접속을 차단하거나 UE(201)를 블랙리스트에 추가함으로써, UE(201)의 접속을 격리할 수 있다. 또한 컨트롤러(202)는, 생성된 데이터 플로우가 존재하는 경우, 데이터 플로우를 제거하고 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, UE(201)의 제어 플로우를 해제 및 접속 불가 정보를 UE(201)에 반환할 수 있다.
컨트롤러(202)는, 동작 1250에서, 데이터 플로우를 처리할 수 있다. 예를 들어, 컨트롤러(202)는, 데이터 패킷의 검사 정보, UE(201)의 인증 정보, 및 UE(201)의 보안 검사 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)에 전송할 수 있다.
구체적으로, 컨트롤러(202)는, UE(201)의 보안 검사가 정상적인 경우, 접속 정책에 따라 UE(201)의 네트워크 접속을 인가하기 위해, UE(201)의 IP 주소(예: 출발지 IP), 도착지 IP, 포트 정보, 전송 계층 프로토콜 정보, 및 보안 검사 정책에 따라 데이터 패킷의 검사가 필요한 경우, 데이터 패킷의 프로토콜을 검사하기 위한 정보인, 프로토콜 식별 시그니처 및 버전 정보(예: 데이터 패킷 전송 및 수신시 포함된 프로토콜 정보를 식별하기 위한 정보), 헤더 정보, 및 규약 정보를 통해 데이터 패킷의 검사에 기반하여 프로토콜을 식별할 수 있다.
컨트롤러(202)는, 데이터 패킷의 검사 정보를 결정할 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하는 데이터 플로우 정보를 생성할 수 있다. 컨트롤러(202)는, 인증 정책에 의해 데이터 네트워크 또는 엣지 네트워크(206) 에 존재하는 제2 게이트웨이(216)가, 데이터 플로우의 인증을 수행, 동적 프로토콜의 파싱, 및 통신 대상의 식별 정보 삽입을 위해, 데이터 플로우 인증 정보를 삽입하는 경우, UE(201)의 인증 정보를 식별 및/또는 결정할 수 있다. 컨트롤러(202)는, 인증 정보를 데이터 플로우 정보에 포함시킬 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하고, 인증 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203) 및 UE(201)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1255에서, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다. UE(201)는, 동작 1260에서, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다.
도 13은 일 실시예에 따른 UE의 추가 인증을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1305에서, 추가 인증 요청을 전송할 수 있다. 예를 들어, UE(201)는, 접속 제어 애플리케이션(211)을 통해 컨트롤러(202)와의 제어 플로우 생성 이후, 사용자 ID, 비밀번호, 강화된 인증 방법, 및 인증서 기반 인증을 포함하는 인증 정보를 포함하는 추가 인증 요청을 전송할 수 있다.
컨트롤러(202)는, 동작 1310에서, UE(201)의 추가 인증을 식별할 수 있다. 예를 들어, 컨트롤러(202)는, UE(201)의 네트워크 접속 요청에 기반하여, UE(201)의 추가 인증 요청을 식별할 수 있다. 구체적으로, 컨트롤러(202)는, 접속 제어 애플리케이션(211)이 인증 요청한 정보(예: 사용자 ID, 비밀번호, 강화된 인증 방법, 및 인증서 기반 인증을 포함하는 인증 정보)를 기반으로 접속 가능한 인증 정보인지 여부와 블랙리스트에 포함되어 있는지 여부를 검사하여, UE(201)가 차단되어 있는지 여부를 확인할 수 있다. 여기서, 컨트롤러(202)는, UE(201)가 블랙리스트에 포함된 경우, 접속 불가 정보를 전송할 수 있다. 또한, 컨트롤러(202)는, UE(201)로부터 추가 인증 요청을 수신한 경우, UE(201)에 대한 인증 정보 및 UE(201)가 블랙리스트에 포함되는지 여부에 기초하여, UE(201)의 추가 인증 요청을 처리할 수 있다.
컨트롤러(202)는, 동작 1315에서, 추가 인증 요청을 위한 식별 정보를 식별할 수 있다. 예를 들어, 컨트롤러(202)는, 데이터베이스로부터 UE(201)에 관한 제어 플로우를 식별한 것에 기반하여, 제어 플로우에 추가 인증 요청에 포함된 UE(201)의 식별 정보를 추가할 수 있다. 구체적으로, 컨트롤러(202)는, 접속 가능한 UE(201)인 경우, 제어 플로우 테이블에서 전송한 제어 플로우의 식별 정보에 기반하여 제어 플로우를 검색하고, 검색된 제어 플로우의 식별 정보에 UE(201)의 식별 정보(예: 사용자 ID 및 인증서 정보 등)를 추가할 수 있다. 추가로, 컨트롤러(202)는, 추가 인증 요청이 처리된 것에 기반하여, 제어 플로우에 식별 정보를 추가할 수 있다.
컨트롤러(202)는, 동작 1320에서, 보안 검사 정책을 확인할 수 있다. 예를 들어, 컨트롤러(202)는, 보안 검사 정책에 의해 식별된 UE(201) 별로 보안 검사 정책을 처리하기 위한 정보(예: 백신 설치, 실행 여부, 및 운영체제 패치 여부 등)를 포함하는 정보를 반환할 수 있다. 컨트롤러(202)는, 데이터 플로우를 처리할 수 있다. 예를 들어, 컨트롤러(202)는, 데이터 패킷의 검사 정보, UE(201)의 인증 정보, 및 UE(201)의 보안 검사 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)에 전송할 수 있다. 구체적으로, 컨트롤러(202)는, 접속 정책에 따라 보안 검사가 불필요한 경우, 접속 정책에 따라 UE(201)의 네트워크 접속을 인가하기 위해, UE(201)의 IP 주소(예: 출발지 IP), 도착지 IP, 포트 정보, 전송 계층 프로토콜 정보, 및 보안 검사 정책에 따라 데이터 패킷의 검사가 필요한 경우, 데이터 패킷의 프로토콜을 검사하기 위한 정보인, 프로토콜 식별 시그니처 및 버전 정보(예: 데이터 패킷 전송 및 수신시 포함된 프로토콜 정보를 식별하기 위한 정보), 헤더 정보, 및 규약 정보를 통해 데이터 패킷의 검사에 기반하여 프로토콜을 식별할 수 있다.
컨트롤러(202)는, 데이터 패킷의 검사 정보를 결정할 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하는 데이터 플로우 정보를 생성할 수 있다. 컨트롤러(202)는, 인증 정책에 의해 데이터 네트워크 또는 엣지 네트워크(206) 에 존재하는 제2 게이트웨이(216)가, 데이터 플로우의 인증을 수행, 동적 프로토콜의 파싱, 및 통신 대상의 식별 정보 삽입을 위해, 데이터 플로우 인증 정보를 삽입하는 경우, UE(201)의 인증 정보를 식별 및/또는 결정할 수 있다. 컨트롤러(202)는, 인증 정보를 데이터 플로우 정보에 포함시킬 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하고, 인증 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, 제어 플로우 정보, UE(201)의 보안 검사 정보, 및 데이터 플로우 정보를 UE(201)에 전송할 수 있다. 제1 게이트웨이(203)는, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다.
UE(201)는, 동작 1325에서, 컨트롤러(202)로부터 수신된 접속 요청의 결과값을 처리할 수 있다. 예를 들어, UE(201)는, 컨트롤러(202)에 대한 접속이 불가능한 경우, 접속 제어 애플리케이션(211)의 실행을 중지하고 종료하거나, 관련된 오류 메시지를 출력할 수 있다.
UE(201)는, 동작 1330에서, 컨트롤러(202)로부터 수신된 접속 요청의 결과값에 기반한, 보안 검사 결과를 전송할 수 있다. 예를 들어, UE(201)는 컨트롤러(202)로부터 UE(201)의 보안 검사 정보를 수신하는 경우, 수신된 보안 검사 정보에 따라 보안 검사를 수행한 결과를 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 1335에서, 컨트롤러(202)로부터 수신된 보안 검사를 수행한 결과에 대해, 검사를 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 보안 검사를 수행한 결과에 기반하여, 보안 검사 정책에 따라 보안 검사 정책에서 UE(201)의 보안 검사 정보가 유효한지 여부를 검사할 수 있다. 컨트롤러(202)는, 또한, 보안 시스템(예: 컨트롤러(202)에 포함되거나, 또는 컨트롤러(202)와 연결된 타 시스템에 포함됨)을 통해, UE(201)의 검사 결과가 정상적인지 여부를 판단할 수 있다. 컨트롤러(202)는, UE(201)의 보안 검사가 정상적이지 않은 경우, 보안 검사 정책에 따라 보안 검사 결과의 위험 수준을 평가하고, 위험 수준에 따라 제어 플로우를 해제하여, UE(201)의 접속을 차단하거나 UE(201)를 블랙리스트에 추가함으로써, UE(201)의 접속을 격리할 수 있다. 또한 컨트롤러(202)는, 생성된 데이터 플로우가 존재하는 경우, 데이터 플로우를 제거하고 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, UE(201)의 제어 플로우를 해제 및 접속 불가 정보를 UE(201)에 반환할 수 있다. 컨트롤러(202)는, UE(201)에 대한 보안 검사 결과에 기반하여, 보안 검사 결과의 유효성을 검사함으로써 획득된 결과를, UE(201)에게 전송할 수 있다.
컨트롤러(202)는, 동작 1340에서, 데이터 플로우를 처리할 수 있다. 예를 들어, 컨트롤러(202)는, 데이터 패킷의 검사 정보, UE(201)의 인증 정보, 및 UE(201)의 보안 검사 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)에 전송할 수 있다. 구체적으로, 컨트롤러(202)는, UE(201)의 보안 검사가 정상적인 경우, 접속 정책에 따라 UE(201)의 네트워크 접속을 인가하기 위해, UE(201)의 IP 주소(예: 출발지 IP), 도착지 IP, 포트 정보, 전송 계층 프로토콜 정보, 및 보안 검사 정책에 따라 데이터 패킷의 검사가 필요한 경우, 데이터 패킷의 프로토콜을 검사하기 위한 정보인, 프로토콜 식별 시그니처 및 버전 정보(예: 데이터 패킷 전송 및 수신시 포함된 프로토콜 정보를 식별하기 위한 정보), 헤더 정보, 및 규약 정보를 통해 데이터 패킷의 검사에 기반하여 프로토콜을 식별할 수 있다.
컨트롤러(202)는, 데이터 패킷의 검사 정보를 결정할 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하는 데이터 플로우 정보를 생성할 수 있다. 컨트롤러(202)는, 인증 정책에 의해 데이터 네트워크 또는 엣지 네트워크(206) 에 존재하는 제2 게이트웨이(216)가, 데이터 플로우의 인증을 수행, 동적 프로토콜의 파싱, 및 통신 대상의 식별 정보 삽입을 위해, 데이터 플로우 인증 정보를 삽입하는 경우, UE(201)의 인증 정보를 식별 및/또는 결정할 수 있다. 컨트롤러(202)는, 인증 정보를 데이터 플로우 정보에 포함시킬 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하고, 인증 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203) 및 UE(201)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1345에서, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다. UE(201)는, 동작 1350에서, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다.
도 14는 일 실시예에 따른 UE의 네트워크 접속을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1405 내지 동작 1425에서, 네트워크 접속 이벤트에 따른 데이터 플로우 검사를 수행할 수 있다. 예를 들어, UE(201)의 접속 제어 애플리케이션(211)은, 동작 1405에서 애플리케이션의 네트워크 접속이 탐지되는 경우, 동작 1410에서, 도착지 네트워크와 통신하기 위해, 애플리케이션의 식별 정보, 도착지 IP와 포트, 및 전송 프로토콜 정보를 기반으로, 데이터 플로우가 존재하는지 식별할 수 있다. 데이터 플로우의 식별과 관련하여, UE(201)는, 타겟 애플리케이션의 네트워크 접속이 탐지되는 경우, 애플리케이션 식별 정보, 도착지 IP, 포트 정보, 전송 프로토콜 정보, 또는 이들의 어느 조합 중의 적어도 하나에 기반하여, 데이터 플로우를 식별할 수 있다.
UE(201)는, 동작 1415에서, 데이터 플로우가 존재하지만 유효하지 않은 경우(예: 전송 불가 상태), 데이터 패킷의 드롭(drop)을 수행할 수 있다. UE(201)는, 동작 1420에서, 유효한 데이터 플로우가 존재하는 경우, 데이터 패킷을 전송할 수 있다. UE(201)는, 동작 1425에서, 데이터 플로우가 존재하지 않거나, 데이터 패킷의 전송 과정에서 네트워크 접속이 실패한 경우, 유효성 검사를 수행할 수 있다.
UE(201)는, 동작 1430에서, 네트워크 접속 요청을 수행할 수 있다. 예를 들어, UE(201)의 접속 제어 애플리케이션(211)은, 네트워크 접속 이벤트 이전에 컨트롤러(202)와 생성된 제어 플로우를 식별하기 위한 제어 플로우의 식별 정보와 애플리케이션 식별 정보, 접속하고자 하는 서비스 및 서버의 전송 프로토콜, 도착지 IP 및 포트 정보를 기반으로, 컨트롤러(202)에 네트워크 접속 요청을 수행할 수 있다.
컨트롤러(202)는, 동작 1435에서, UE(201)의 접속 정책을 확인할 수 있다. 예를 들어, 컨트롤러(202)는, 제어 플로우 상에 식별된 UE(201)의 정보(예: UE(201)의 고유 식별 정보, MAC 주소, 할당된 IP 주소, 사용자 ID, 및 인증서 정보 등)와 매칭된 접속 정책에서, 접속 요청한 식별 정보(예: 도착지 IP 및 포트 정보, 전송 프로토콜, 애플리케이션 등)로 통신 코어(205)를 통해 데이터 네트워크 또는 엣지 네트워크(206) 내의 서버, 서비스, 및 네트워크로 접속이 가능한지 여부를 확인할 수 있다. 컨트롤러(202)는, 접속 정책이 존재하지 않거나 통신 코어(205)를 통해서 접속이 불가능한 경우, 접속 거절 정보를 반환할 수 있다. 컨트롤러(202)는, UE(201)로부터 네트워크 접속 요청을 수신한 것에 기반하여, UE(201)의 목적지 네트워크로 접속 가능 여부를 식별하고, 목적지 네트워크의 접속 정책 또는 통신 코어(205)를 통해 목적지 네트워크로 접속 가능 여부에 기반하여 획득된 결과를, UE(201)에게 전송할 수 있다.
컨트롤러(202)는, 동작 1440에서, 데이터 플로우를 처리할 수 있다. 예를 들어, 컨트롤러(202)는, 네트워크 접속이 가능한 경우 네트워크에 접속하기 위해 인증 정책에서 데이터 네트워크 또는 엣지 네트워크(206) 사이에 존재하는 제2 게이트웨이(216)와의 데이터 패킷 인증 여부 및 인증 방식을 확인하고, 데이터 플로우 테이블에서 접속 가능한 유효한 데이터 플로우 정보가 없는 경우, 및 전송 계층 프로토콜 정보, 출발지 IP, 도착지 IP 및 포트 정보 및 인증 정책에 의해 데이터 패킷 인증을 수행하는 경우, UE(201)의 인증 정보를 데이터 플로우 정보에 포함시킬 수 있다. 컨트롤러(202)는, 인증 정보를 포함하는 데이터 플로우를, 식별된 게이트웨이 및 UE(201)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1445에서, 컨트롤러(202)로부터 생성된 데이터 플로우를 수신할 수 있다.
UE(201)는, 동작 1450에서, 결과값을 처리할 수 있다. 예를 들어, UE(201)는, 컨트롤러(202)로부터 수신된 접속 요청 결과값을 처리하기 위해, 네트워크 접속 요청에 성공한 경우, 동작 1455에서 데이터 패킷을 전송할 수 있고, 네트워크 접속 요청에 실패한 경우, 동작 1460에서, 데이터 패킷을 드롭할 수 있다.
도 15는 일 실시예에 따른 UE의 IP 주소가 변경된 것에 기반하여 제어 플로우 및 데이터 플로우를 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1505에서, IP 주소의 변경에 따른 이벤트를 전송할 수 있다. 예를 들어, UE(201)는, UE(201)에 설치된 접속 제어 애플리케이션(211)을 통해 컨트롤러(202)와의 제어 플로우 생성 이후, IP 주소가 변경된 경우, 변경된 IP 주소를 전송할 수 있다.
컨트롤러(202)는, 동작 1510에서, UE(201)로부터 변경된 IP 주소를 식별할 수 있다. 예를 들어, 컨트롤러(202)는, UE(201)의 IP 주소가 변경된 것에 기반하여, UE(201)로부터, 변경된 IP 주소를 수신할 수 있다.
컨트롤러(202)는, 동작 1515에서, 제어 플로우 갱신을 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 변경된 IP 주소를, 제어 플로우에 적용함으로써, 제어 플로우 갱신을 수행할 수 있다.
컨트롤러(202)는, 동작 1520에서, 데이터 플로우를 처리할 수 있다. 구체적으로, 컨트롤러(202)는, 데이터 플로우의 출발지 IP 주소(즉, UE(201)의 IP 주소)를 변경된 UE(201)의 IP 주소로 치환한 이후, 갱신된 데이터 플로우를 제1 게이트웨이(203)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1525에서, 컨트롤러(202)로부터 갱신된 데이터 플로우를 수신할 수 있다. UE(201)는, 동작 1530에서, 컨트롤러(202)로부터 갱신된 데이터 플로우를 수신할 수 있다. 구체적으로, 제1 게이트웨이(203)는, UE(201)의 IP 주소가 변경된 경우, 출발지 IP 주소가 UE(201)의 변경된 IP 주소로 갱신된 데이터 플로우를, 컨트롤러(202)로부터 수신할 수 있다.
도 16은 일 실시예에 따른 데이터 플로우에 따라 UE로부터 전송된 데이터 패킷의 포워딩을 결정하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1605에서, 데이터 패킷을 전송할 수 있다. 예를 들어, UE(201)는, UE 등록 요청, UE 상태 갱신 요청, PDU 세션 생성 요청, PDU 세션 상태 갱신 요청, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 데이터 패킷을, 제1 게이트웨이(203)로 전송할 수 있다. 다만, UE(201)로부터 전송되는 데이터 패킷은, 이로 제한되는 것은 아니다. 예를 들어, UE(201)는, 통신 코어(205)를 통해 인가된 무선 통신망으로, 데이터 패킷을 전송할 수 있다.
제1 게이트웨이(203)는, 동작 1610에서, UE(201)로부터 전송된 데이터 패킷(즉, 통신 코어(205)로 전송되는 UE(201) 또는 RAN(207)의 데이터 패킷)이, GTP 터널(230) 기반의 데이터 패킷인지 여부의 검사를 수행할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 데이터 패킷이 대상 규격인 GTP 터널(230) 기반의 데이터 패킷을 충족하지 않은 것에 기반하여, 동작 1620에서, 데이터 패킷의 포워딩을 수행할 수 있다.
제1 게이트웨이(203)는, 데이터 패킷이 GTP 터널(230) 기반의 데이터 패킷을 충족하지 않은 것에 기반하여, 데이터 패킷이, UE 등록 요청, UE 상태 갱신 요청, PDU 세션 생성 요청, PDU 세션 상태 갱신 요청, 또는 이들의 어느 조합 중의 적어도 하나인지 여부를 결정할 수 있다. 제1 게이트웨이(203)는, 데이터 패킷이 대상 규격을 충족하지 않고, UE 등록 요청, UE 상태 갱신 요청, PDU 세션 생성 요청, PDU 세션 상태 갱신 요청, 또는 이들의 어느 조합 중의 적어도 하나인 경우, 요청에 대응되는 도 7 내지 도 10에서 설명된 동작을, 수행할 수 있다.
제1 게이트웨이(203)는, 데이터 패킷이 GTP 터널(230) 기반의 데이터 패킷을 충족하지 않고, UE 등록 요청, UE 상태 갱신 요청, PDU 세션 생성 요청, 및 PDU 세션 상태 갱신 요청이 아닌 것으로 결정된 것 기반하여, 아래에서 후술되는 동작에 기반하여, 데이터 패킷의 포워딩을 수행할 수 있다.
제1 게이트웨이(203)는, 동작 1615에서, 기본 허용 도착지 정보 여부의 검사를 수행할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 데이터 패킷이 GTP 터널(230) 기반 데이터 패킷인 경우, 데이터 패킷으로부터 사용자 평면(user plane)의 헤더를 추출하고, 사용자 평면의 헤더에 포함된 정보가, 데이터 패킷의 도착지에 관한 테이블에 포함되는지 여부를 결정하고, 사용자 평면의 헤더에 포함된 정보가, 테이블에 포함되는 경우, 데이터 패킷의 포워딩을 수행할 수 있다. 구체적으로, 제1 게이트웨이(203)는, GTP 터널 헤더(예: Outer Header)의 제거 또는 역캡슐화(decapsulation)를 통해, 사용자 평면의 헤더(예: Inner Header) 정보만 추출하거나, 또는 사용자 평면의 헤더 정보만 검사하여, 데이터 패킷의 도착지 IP, 포트, 및 전송 프로토콜 정보가 기본 허용 도착지 목록에 존재하는지 여부의 검사를 수행할 수 있다. 만약 기본 허용 도착지 목록에 존재하는 경우, 제1 게이트웨이(203)는, 동작 1620에서, 해당 데이터 패킷의 포워딩을 수행하거나, 요청에 대응되는 도 7 내지 도 10에서 설명된 동작을, 수행할 수 있다. 이와 달리, 만약 기본 허용 도착지 목록에 존재하지 않는 경우, 아래에서 후술되는 동작에 기반하여, 데이터 패킷의 포워딩을 수행할 수 있다.
제1 게이트웨이(203)는, 동작 1625에서, 데이터 플로우의 검사를 수행할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 사용자 평면의 헤더에 포함된 정보가, 데이터 플로우에 포함되지 않는 경우, 데이터 패킷의 드롭(drop)을 수행하고, 드롭된 데이터 패킷에 관한 로그(log)를 생성할 수 있다. 구체적으로, 제1 게이트웨이(203)는, GTP 터널 헤더의 제거 또는 역캡슐화를 통해, 사용자 평면의 헤더 정보만 추출하거나, 또는 사용자 평면의 헤더 정보만 검사하여, 데이터 패킷의 출발지 IP, 도착지 IP, 포트, 및 전송 프로토콜 정보를 기반으로, 데이터 플로우가 존재하는지 확인할 수 있다. 제1 게이트웨이(203)는, 만약 데이터 플로우가 존재하지 않는 경우, 동작 1645에서, 데이터 패킷의 드롭을 수행하고, 드롭된 데이터 패킷에 관한 로그를 메모리에 기록할 수 있다.
제1 게이트웨이(203)는, 동작 1630에서, 데이터 플로우가 존재하는 것에 기반하여, 데이터 플로우 내의 데이터 패킷의 검사(inspection) 필요 여부를 확인할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 사용자 평면의 헤더에 포함된 정보가, 데이터 플로우에 포함된 경우, 데이터 플로우에 기반하여, 데이터 패킷의 검사를 수행할 수 있다. 제1 게이트웨이(203)는, 데이터 패킷 검사가 필요로 하지 않은 경우, 동작 1635 및 동작 1640의 데이터 플로우 인증 정보 삽입 및 데이터 패킷 포워딩을 수행할 수 있다.
제1 게이트웨이(203)는, 동작 1630에서, 데이터 패킷 검사가 필요한 경우, 데이터 플로우에 포함된 데이터 패킷 검사 정보에 따라, 데이터 패킷의 검사를 수행(예: Deep Packet Inspection)할 수 있다. 제1 게이트웨이(203)는, 데이터 패킷의 검사에 기반하여, 유해 데이터 패킷의 식별 또는 데이터 패킷 검사에 실패한 경우, 동작 1645에서, 데이터 패킷의 드롭을 수행하고, 드롭된 데이터 패킷에 관한 로그를 메모리에 기록할 수 있다. 제1 게이트웨이(203)는, 데이터 패킷 검사가 성공한 경우, 동작 1635 및 동작 1640의 데이터 플로우 인증 정보 삽입 및 데이터 패킷 포워딩을 수행할 수 있다.
제1 게이트웨이(203)는, 동작 1635에서, 데이터 패킷 검사가 성공한 것에 기반하여, 데이터 플로우 인증 정보의 삽입을 수행할 수 있다. 예를 들어, 제1 게이트웨이(203)는, 데이터 플로우에 기반하여, 데이터 패킷에 데이터 전송에 관한 인증 정보의 삽입을 수행할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 데이터 플로우 내의 데이터 플로우 인증 정보의 삽입이 필요한지 여부를 결정할 수 있다. 제1 게이트웨이(203)는, 데이터 플로우 인증 정보의 삽입이 필요로 하지 않은 경우, 데이터 플로우에 데이터 패킷 전송 시각을 기록하고, 데이터 패킷의 포워딩을 수행할 수 있다.
제1 게이트웨이(203)는, 데이터 플로우 인증 정보의 삽입이 필요한 경우, 데이터 플로우의 인증 정보에 포함된 인증 정보 생성 알고리즘 및 부가 정보에 기반하여, 인증 정보를 생성할 수 있다. 제1 게이트웨이(203)는, 인증 정보에 포함된 암호화 알고리즘 및 암호화 키로 해당 인증 정보의 암호화를 수행할 수 있다. 제1 게이트웨이(203)는, 암호화된 인증 정보와 데이터 플로우의 식별 정보를 결합한 데이터 플로우 헤더를, 인증 정보의 인증 정보 삽입 방식에 따라, 데이터 패킷에 삽입하는 동작을 수행할 수 있다.
제1 게이트웨이(203)는, 전송 프로토콜 정보가 TCP인 경우, TCP SYN 데이터 패킷의 페이로드에, 데이터 플로우 헤더를 삽입할 수 있다. 제1 게이트웨이(203)는, 전송 프로토콜 정보가 UDP인 경우, UDP 데이터 패킷의 페이로드에, 데이터 플로우 헤더를 삽입할 수 있다. 제1 게이트웨이(203)는, 동작 1640에서, 데이터 플로우 헤더의 삽입이 완료된 경우, 데이터 플로우에 데이터 패킷 전송 시각을 기록 및/또는 삽입하고, 데이터 패킷의 포워딩을 수행할 수 있다. 데이터 패킷의 포워딩이 수행된 경우, 통신 코어(205) 및 데이터 네트워크 또는 엣지 네트워크(206)는, 동작 1650 및 동작 1655 각각에서, 데이터 패킷을 수신할 수 있다.
도 17은 일 실시예에 따른 데이터 패킷 수신 이벤트에 응답하여 데이터 플로우를 생성 및/또는 데이터 플로우의 업데이트를 수행하는 방법을 설명하기 위한 흐름도이다.
도 17을 참조하면, 제2 게이트웨이(216)는, 데이터 패킷을 수신한 것에 기반하여, 데이터 패킷의 이동 정보를 통해, 데이터 패킷에 관한 데이터 플로우가, 데이터 패킷을 수신한 시점에 식별 가능한지 여부를 결정할 수 있다. 제2 게이트웨이(216)는, 데이터 패킷에 포함된 데이터 플로우의 헤더로부터 추출된, 데이터 플로우 식별 정보에 기반하여, 데이터 플로우를 식별할 수 있다. 제2 게이트웨이(216)는, 데이터 플로우에 포함된 NAT(Network Address Translation) 정보에 기반하여, 데이터 패킷의 포워딩을 결정할 수 있다. 여기서, 데이터 패킷의 이동 정보는, IP(Internet Protocol)의 5 Tuples 정보인, 출발지 IP, 출발지 포트, 도착지 IP, 도착지 포트, 및 전송 프로토콜 정보를 포함할 수 있다.
일 실시예에 따른 제2 게이트웨이(216)는, 동작 1705에서, 데이터 패킷 수신 이벤트를 감지할 수 있다. 예를 들어, 제2 게이트웨이(216)는 UE(201)에서 전송된 데이터 패킷을 수신할 수 있다. 제2 게이트웨이(216)는 UE(201)로부터 데이터 패킷을 수신할 수 있다.
제2 게이트웨이(216)는, 동작 1710에서, 수신된 데이터 패킷의 IP(Internet Protocol)의 5 Tuples 정보(예: 출발지 IP, 출발지 포트, 도착지 IP, 도착지 포트, 전송 프로토콜 정보)에 대응되는 데이터 플로우가 존재하는지 확인할 수 있다. 제2 게이트웨이(216)는, 동작 1755에서, 데이터 플로우가 존재하면, 데이터 패킷의 포워딩을 수행할 수 있다.
제2 게이트웨이(216)는, 동작 1715에서, 데이터 패킷의 검사를 수행할 수 있다. 구체적으로, 제2 게이트웨이(216)는, 유효한 데이터 플로우가 존재하지 않는 것에 기반하여, 데이터 패킷에 데이터 플로우 헤더가 포함되어 있는지 여부를 확인할 수 있다.
제2 게이트웨이(216)는, 동작 1720에서, 데이터 플로우 헤더가 데이터 패킷에 포함된 경우, 데이터 패킷에서 데이터 플로우 헤더를 추출할 수 있고, 데이터 패킷 인증 정보 검사를 수행할 수 있다. 예를 들어, 제2 게이트웨이(216)는, 데이터 플로우 헤더에 포함된 데이터 플로우 식별 정보에 대응되는 데이터 플로우의 존재 여부를 확인할 수 있다. 제2 게이트웨이(216)는, 동작 1730에서, 데이터 플로우 식별 정보에 대응되는 데이터 플로우가 존재하지 않거나, 대응되는 데이터 플로우가 유효하지 않은 경우, 데이터 패킷의 드롭을 수행할 수 있다.
제2 게이트웨이(216)는, 데이터 플로우 식별 정보에 대응되는 데이터 플로우가 존재하는 것에 기반하여, 식별된 데이터 플로우와 데이터 패킷의 도착지 IP, 포트, 전송 프로토콜 정보가 동일하거나, 또는 전송된 데이터 패킷의 도착지 IP 포트 정보, 및 프로토콜 정보가 동일한 경우, 데이터 플로우 헤더에 포함된 인증 정보를 데이터 플로우에 포함된 인증 정보에 기반하여 복호화 및 인증 정보 검사를 수행할 수 있다. 여기서, 제2 게이트웨이(216)는, 복호화를 실패한 것에 기반하여, 동작 1730에서 데이터 패킷의 드롭을 수행할 수 있다.
제2 게이트웨이(216)는, 복호화를 성공한 것에 기반하여, 데이터 플로우의 인증 정보에 포함된 인증 정보 검사 알고리즘 또는 관련 정보에 의해서 복호화된 인증 정보가 유효한지 여부를 확인할 수 있다. 여기서, 제2 게이트웨이(216)는, 인증 정보가 유효하지 않은 경우, 데이터 패킷의 드롭을 수행할 수 있다. 제2 게이트웨이(216)는, 인증 정보가 유효한 경우, 데이터 플로우의 NAT 정보에 따라 NAT가 필요로 한 경우, 수신된 데이터 패킷의 NAT를 수행할 수 있다. 이와 관련된 자세한 설명은, 아래 동작 1735에서 후술된다.
제2 게이트웨이(216)는, 동작 1725에서, 데이터 패킷에 데이터 플로우 헤더가 존재하지 않는 것으로 확인된 경우, IP 헤더에 포함된 출발지 IP, 도착지 IP, 도착지 포트, 전송 프로토콜 정보에 대응되고 터널에 기반하여 처리되는 데이터 플로우를 탐색할 수 있다. 제2 게이트웨이(216)는, 동작 1730에서, 데이터 플로우의 탐색이 실패한 경우 데이터 패킷의 드롭을 수행할 수 있다.
제2 게이트웨이(216)는, 동작 1735에서, NAT 정보에 기반하여, NAT 수행 필요 여부를 확인할 수 있다. 예를 들어, 제2 게이트웨이(216)는, 데이터 플로우가 존재하는 경우, 데이터 플로우의 NAT 정보에 따라 NAT가 필요한지 여부를 결정 및/또는 확인할 수 있다.
제2 게이트웨이(216)는, 동작 1740에서, NAT 수행이 필요한 경우, 수신된 데이터 패킷의 NAT를 수행할 수 있다.
제2 게이트웨이(216)는, 동작 1745에서, NAT 수행이 필요하지 않은 경우 또는 NAT가 수행된 경우, 데이터 플로우 정보의 갱신을 수행할 수 있다. 예를 들어, 제2 게이트웨이(216)는, NAT 수행이 필요하여 NAT가 수행된 경우, NAT 수행 전후 데이터 패킷의 5 Tuples 정보(예: 출발지 IP, 출발지 포트, 도착지 IP, 도착지 포트, 전송 프로토콜 정보)를 데이터 플로우에 갱신할 수 있다. 제2 게이트웨이(216)는, NAT 수행이 필요하지 않아 NAT가 수행되지 않은 경우, 데이터 패킷의 5 Tuples 정보를 데이터 플로우에 갱신할 수 있다.
제2 게이트웨이(216)는, 동작 1750에서, 데이터 패킷에 포함된 데이터 플로우 헤더를 제거하고 데이터 패킷의 포워딩을 수행할 수 있다. 참고로, 도 17에서 설명된 동작들은, 제2 게이트웨이(216)에 대해서 한정되지 않는다. 예를 들어, 도 17에서 설명된 동작들은, 제1 게이트웨이(203)에 의해 수행될 수 있다.
컨트롤러(202)는, 동작 1760에서, 갱신된 데이터 플로우 정보를 수신한 것에 기반하여, 수신된 데이터 플로우 정보를, 데이터 플로우 테이블 및 데이터 플로우 데이터베이스에 각각, 갱신 및 추가를 수행할 수 있다.
도 18은 일 실시예에 따른 UE의 네트워크 접속 해제를 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1805에서, 네트워크 접속 해제에 따른 이벤트를 전송할 수 있다. 예를 들어, UE(201)는, 접속 제어 애플리케이션(211)이 종료되거나 더 이상 네트워크 접속을 사용하지 않는 경우, 컨트롤러(202)에, 제어 플로우 종료 요청인 UE(201)의 인증 해제 요청을 전송할 수 있다. UE(201)는, 보안 검사 정보에 기초하여 UE(201)에 대한 보안 검사를 수행하고, 보안 검사에 따라 결정된 위험 탐지 정보를, 컨트롤러(202)에게 전송할 수 있다.
컨트롤러(202)는, 동작 1810 및 동작 1815에서, 인증 해제 요청을 수신한 것에 기반하여, UE(201)에 관한 제어 플로우 및 데이터 플로우를 제거할 수 있다. 예를 들어, 컨트롤러(202)는, UE(201)가 요청한 제어 플로우 식별 정보를 기반으로, 식별 및/또는 검색된 제어 플로우 및 데이터 플로우 정보를 제거할 수 있다. 이후, 컨트롤러(202)는, 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1820에서, 컨트롤러(202)로부터 제거된 데이터 플로우에 관한 정보를 수신할 수 있다. UE(201)는, 동작 1825에서, 컨트롤러(202)로부터 제거된 데이터 플로우에 관한 정보를 수신할 수 있다.
도 19는 일 실시예에 따른 UE의 제어 플로우 갱신 요청을 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 1905에서, 제어 플로우 갱신에 관한 이벤트를 전송할 수 있다. 예를 들어, UE(201)는, 접속 제어 애플리케이션(211)에 기반하여, 제어 플로우 및 데이터 플로우 정보를 유지하고, 갱신된 데이터 플로우를 컨트롤러(202)로부터 수신하기 위해, 주기적으로 할당된 제어 플로우의 식별 정보를 통해 제어 플로우의 갱신 요청을 전송할 수 있다. UE(201)는, 수신된 보안 검사 정보에 따라 보안 검사를 수행한 결과를 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 1910에서, 컨트롤러(202)로부터 수신된 보안 검사를 수행한 결과에 대해, 검사를 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 보안 검사를 수행한 결과에 기반하여, 보안 검사 정책에 따라 보안 검사 정책에서 UE(201)의 보안 검사 정보가 유효한지 여부를 검사할 수 있다. 컨트롤러(202)는, 보안 검사 결과에 기반하여, 제어 플로우의 갱신을 수행할 수 있다. 컨트롤러(202)는, 또한, 보안 시스템(예: 컨트롤러(202)에 포함되거나, 또는 컨트롤러(202)와 연결된 타 시스템에 포함됨)을 통해, UE(201)의 검사 결과가 정상적인지 여부를 판단할 수 있다. 컨트롤러(202)는, UE(201)의 보안 검사가 정상적이지 않은 경우, 보안 검사 정책에 따라 보안 검사 결과의 위험 수준을 평가하고, 위험 수준에 따라 제어 플로우를 해제하여, UE(201)의 접속을 차단하거나 UE(201)를 블랙리스트에 추가함으로써, UE(201)의 접속을 격리할 수 있다. 또한 컨트롤러(202)는, 생성된 데이터 플로우가 존재하는 경우, 데이터 플로우를 제거하고 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, UE(201)의 제어 플로우를 해제 및 접속 불가 정보를 UE(201)에 반환할 수 있다.
컨트롤러(202)는, 동작 1915에서, 데이터 플로우를 처리할 수 있다. 예를 들어, 컨트롤러(202)는, 데이터 패킷의 검사 정보, UE(201)의 인증 정보, 및 UE(201)의 보안 검사 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203)에 전송할 수 있다. 구체적으로, 컨트롤러(202)는, UE(201)의 보안 검사가 정상적인 경우, 접속 정책에 따라 UE(201)의 네트워크 접속을 인가하기 위해, UE(201)의 IP 주소(예: 출발지 IP), 도착지 IP, 포트 정보, 전송 계층 프로토콜 정보, 및 보안 검사 정책에 따라 데이터 패킷의 검사가 필요한 경우, 데이터 패킷의 프로토콜을 검사하기 위한 정보인, 프로토콜 식별 시그니처 및 버전 정보(예: 데이터 패킷 전송 및 수신시 포함된 프로토콜 정보를 식별하기 위한 정보), 헤더 정보, 및 규약 정보를 통해 데이터 패킷의 검사에 기반하여 프로토콜을 식별할 수 있다.
컨트롤러(202)는, 데이터 패킷의 검사 정보를 결정할 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하는 데이터 플로우 정보를 생성할 수 있다. 컨트롤러(202)는, 인증 정책에 의해 데이터 네트워크 또는 엣지 네트워크(206) 에 존재하는 제2 게이트웨이(216)가, 데이터 플로우의 인증을 수행, 동적 프로토콜의 파싱, 및 통신 대상의 식별 정보 삽입을 위해, 데이터 플로우 인증 정보를 삽입하는 경우, UE(201)의 인증 정보를 식별 및/또는 결정할 수 있다. 컨트롤러(202)는, 인증 정보를 데이터 플로우 정보에 포함시킬 수 있다. 컨트롤러(202)는, 데이터 패킷 검사 정보를 포함하고, 인증 정보를 포함하는 데이터 플로우를, 제1 게이트웨이(203) 및 UE(201)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 1920에서, 컨트롤러(202)로부터 데이터 플로우를 수신할 수 있다.
컨트롤러(202)는, 동작 1925에서, 보안 검사 정책을 확인할 수 있다. 예를 들어, 컨트롤러(202)는, 보안 검사 정책에 의해 식별된 UE(201) 별로 보안 검사 정책을 처리하기 위한 정보(예: 백신 설치, 실행 여부, 및 운영체제 패치 여부 등)를 포함하는 정보를 반환할 수 있다.
UE(201)는, 동작 1930에서, 갱신된 보안 검사 정보에 따라 보안 검사를 수행할 수 있다.
도 20은 일 실시예에 따른 UE로부터 수신된 위험 탐지 정보에 기반하여 제어 플로우 및 데이터 플로우를 처리하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 UE(201)는, 동작 2005에서, 위험 탐지 정보를 전송할 수 있다. 예를 들어, UE(201)는 컨트롤러(202)로부터 보안 검사 정보를 수신하는 경우, 수신된 보안 검사 정보에 따라 보안 검사를 진행하며, 보안 검사에 따라 위험을 탐지한 경우, 위험 탐지 정보를 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 2010에서, 위험 탐지 정보를 수신한 것에 기반하여, 위험 탐지 정보의 분석을 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 데이터베이스에 기반하여, 위험 탐지 정보의 위험 수준을 식별할 수 있다. 구체적으로, 컨트롤러(202)는, 수신된 위험 탐지 정보를 기반으로, 보안 검사 정책에 따라 UE(201)의 보안 검사 정책에 따라 보안 검사 정책에서 UE(201)의 보안 검사 정보가 유효한지 여부를 검사할 수 있다. 또한, 컨트롤러(202)는, UE(201)의 위험 탐지 정보를 식별한 것에 기반하여, 보안 검사 정책에 따라 UE(201)의 보안 검사 정보가 유효한지 여부를 검사할 수 있다. 컨트롤러(202)는, 보안 검사 정보의 유효성을 검사한 결과에 기반하여, UE(201)의 제어 플로우 해제 여부를 결정할 수 있다.
컨트롤러(202)는, 동작 2015에서, 보안 검사 결과에 기반하여, 제어 플로우의 삭제를 수행할 수 있다. 컨트롤러(202)는, 또한, 보안 시스템(예: 컨트롤러(202)에 포함되거나, 또는 컨트롤러(202)와 연결된 타 시스템에 포함됨)을 통해, UE(201)의 검사 결과가 정상적인지 여부를 판단할 수 있다.
컨트롤러(202)는, 동작 2020에서, UE(201)의 보안 검사가 정상적이지 않은 경우, 보안 검사 정책에 따라 보안 검사 결과의 위험 수준을 식별하고, 위험 수준에 따라 제어 플로우를 제거하여, UE(201)의 접속을 차단하거나 UE(201)를 블랙리스트에 추가함으로써, UE(201)의 접속을 격리할 수 있다.
컨트롤러(202)는, 동작 2025에서, 생성된 데이터 플로우가 존재하는 경우, 데이터 플로우를 제거하고 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, UE(201)의 제어 플로우를 해제 및 접속 불가 정보를 UE(201)에 반환할 수 있다.
도 21은 일 실시예에 따른 미리 결정된 시간 간격마다 데이터 플로우의 업데이트를 수행하는 방법을 설명하기 위한 흐름도이다.
일 실시예에 따른 제1 게이트웨이(203)는, 데이터 패킷에 관한 정보, 데이터 플로우에 관한 정보, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 검사 정보를, 미리 결정된 시간 간격마다, 외부 서버(예: 컨트롤러(202))로 전송할 수 있다. 제1 게이트웨이(203)는, 외부 서버로부터 수신된, 검사 정보에 대한 검사 결과에 기반하여, 데이터 플로우의 업데이트를 수행할 수 있다.
제1 게이트웨이(203)는, 동작 2105에서, 미리 결정된 시간 간격마다(즉, 주기적으로) 데이터 플로우 및 데이터 패킷 검사 결과를 컨트롤러(202)로 전송할 수 있다. 구체적으로, 제1 게이트웨이(203)는, 데이터 플로우 정보, 데이터 플로우 내 데이터 패킷 검사 기반의 데이터 패킷의 드롭에 관한 로그 정보, 데이터 플로우 검사, 데이터 패킷 검사 기반의 데이터 패킷의 드롭에 관한 로그 정보, 또는 이들의 어느 조합 중의 적어도 하나를, 컨트롤러(202)로 전송할 수 있다.
컨트롤러(202)는, 동작 2110에서, 데이터 플로우 및 데이터 패킷 검사 결과의 분석을 수행할 수 있다. 예를 들어, 컨트롤러(202)는, 게이트웨이의 기능을 수행하는 제1 게이트웨이(203)가 전송한 데이터 플로우 및 데이터 패킷 검사 결과 정보를 분석하여, 데이터 플로우의 출발지 IP를 기준으로, 데이터 패킷 포워딩의 마지막 시각을 수집하여, UE(201) 정보와 비교를 수행할 수 있다.
컨트롤러(202)는, 동작 2115에서, 접속 정책에 따라 UE(201)가 일정 시간 동안 데이터 패킷을 전송하지 않는 경우, UE(201)가 통신 코어(205)에서 비정상적으로 연결이 종료된 것으로 결정하고, 제어 플로우를 제거할 수 있다. 구체적으로, 컨트롤러(202)는, 제어 플로우 및 데이터 플로우 정보를 제거하고, 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다.
컨트롤러(202)는, 동작 2120에서, 제1 게이트웨이(203)가 전송한 데이터 플로우 및 데이터 패킷 검사 결과 정보를 분석하여, 보안 검사 정책에 따라, UE(201)가 위험 행위를 수행하였는지 여부의 검사를 수행할 수 있다. 구체적으로, 컨트롤러(202)는, UE(201)가 위험 행위를 수행한 경우, UE(201)가 데이터 패킷을 전송할 수 없도록, 제어 플로우 및 데이터 플로우 정보를 제거할 수 있다. 컨트롤러(202)는, 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 컨트롤러(202)는, 위험 행위의 수준에 따라 UE(201)가 통신 코어(205)에 연결된 경우, 데이터 패킷을 전송할 수 없도록, UE(201)를 블랙리스트에 등록할 수 있다.
컨트롤러(202)는, 상술한 UE(201)의 블랙리스트 등록이 불필요한 경우, 동작 2125에서, 데이터 플로우를 제거할 수 있다. 컨트롤러(202)는, 제거된 데이터 플로우 정보를 제1 게이트웨이(203)로 전송할 수 있다. 제1 게이트웨이(203)는, 동작 2130에서, 컨트롤러(202)로부터 제거된 데이터 플로우 정보를 수신할 수 있다.
이상의 설명은 본 발명의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 컨트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있으며 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
위에서 설명한 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 또는 복수의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 이를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속할 수 있다.
따라서, 본 발명에 개시된 실시예들은 본 발명의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 발명의 기술 사상의 범위가 한정되는 것은 아니다. 본 발명의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 발명의 권리범위에 포함되는 것으로 해석되어야 할 것이다.

Claims (17)

  1. 통신 회로;
    메모리; 및
    상기 통신 회로 및 상기 메모리와 작동적으로 연결되는 프로세서를 포함하고,
    상기 프로세서는,
    데이터 패킷을 수신하고,
    GTP 터널(GPRS Tunneling Protocol, GTP)의 출발지 IP 주소 또는 상기 GTP 터널 기반 데이터 패킷의 출발지 IP 주소, 상기 GTP 터널 기반 데이터 패킷의 목적지 IP 주소, 포트, 및 프로토콜 정보에 기반하여, 외부 서버로부터 수신된 데이터 플로우를 식별하고,
    상기 데이터 플로우에 기반하여 상기 데이터 패킷을 전송하거나, 또는 드롭(drop)하는
    게이트웨이.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 GTP 터널의 출발지 IP 주소, 또는 상기 GTP 터널로 캡슐화된(capsulation) 데이터 패킷의 출발지 IP 주소 중 하나에 기반하여, UE(User Equipment)를 식별하고,
    상기 GTP 터널 기반 데이터 패킷의 목적지 IP 주소, 포트, 및 프로토콜 정보에 기반하여 상기 데이터 플로우를 식별함으로써, 상기 데이터 플로우가 식별된 경우 상기 데이터 패킷을 전송하고,
    상기 데이터 플로우가 식별되지 않은 경우 상기 데이터 패킷을 드롭하는
    게이트웨이.
  3. 제2항에 있어서,
    상기 프로세서는,
    상기 UE에 할당된 IP 주소가 변경되어 상기 UE로부터 IP 변경에 관한 이벤트를 식별한 것에 기반하여, 상기 외부 서버로부터, 상기 UE에 할당된 IP 주소가 변경된 정보를 포함하는 상기 데이터 플로우를 수신하는
    게이트웨이.
  4. 제2항에 있어서,
    상기 프로세서는,
    상기 UE로부터 제어 플로우의 변경에 관한 이벤트를 식별한 것에 기반하여, 상기 외부 서버로부터, 보안 검사 정책에 따라 상기 UE의 보안 검사 결과에 따른 정보를 포함하는 상기 데이터 플로우를 수신하는
    게이트웨이.
  5. 제1항에 있어서,
    상기 프로세서는,
    상기 외부 서버로부터, 프로토콜 식별 시그니처, 버전 정보, 헤더 정보, 데이터 패킷의 검사 방법, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 데이터 패킷 검사 정보를 수신하고,
    상기 데이터 패킷 검사 정보에 기초하여, 상기 데이터 패킷의 동적 프로토콜 파싱을 수행하고,
    상기 데이터 패킷에, UE의 통신 대상을 식별할 수 있는 정보를 삽입하고,
    상기 동적 프로토콜 파싱을 통해 획득된 상기 데이터 패킷의 프로토콜에 기반하여, 상기 외부 서버로부터 수신한 인증 정보의 처리를 수행하는
    게이트웨이.
  6. 제1항에 있어서,
    상기 프로세서는,
    상기 GTP 터널 기반의 데이터 패킷의 역캡슐화(decapsulation)를 수행함으로써, 상기 GTP 터널 기반의 데이터 패킷의 헤더(header)를 추출하고,
    상기 헤더에 포함된 정보가, 상기 데이터 패킷의 도착지에 관한 미리 결정된 테이블에 포함되는지 여부를 결정하고,
    상기 헤더에 포함된 정보가 상기 테이블에 포함되는 경우, 상기 데이터 패킷을 통신 코어로 전송하는
    게이트웨이.
  7. 제6항에 있어서,
    상기 프로세서는,
    상기 헤더에 포함된 정보에 기반하여, UE에 대응되는 상기 데이터 플로우를 식별한 경우, 상기 데이터 플로우에 기반하여, 상기 데이터 패킷의 검사(inspection)를 수행하고,
    상기 데이터 플로우에 기반하여, 상기 데이터 패킷에 데이터 전송에 관한 인증 정보의 삽입을 수행하고,
    상기 인증 정보가 상기 데이터 패킷에 삽입된 것에 기반하여, 상기 데이터 플로우에, 상기 데이터 패킷의 전송에 관한 시간 정보를 추가하여, 상기 데이터 패킷을 상기 통신 코어로 전송하는
    게이트웨이.
  8. 통신 회로;
    데이터베이스를 저장하는 메모리; 및
    상기 메모리 및 상기 통신 회로와 작동적으로 연결되는 프로세서를 포함하고,
    상기 프로세서는,
    UE(User Equipment)로부터, 상기 UE의 식별 정보 및 상기 UE에 할당된 IP 주소를 포함하는, 서버 접속 요청 또는 인증 요청을 수신하고,
    상기 서버 접속 요청 또는 상기 인증 요청에 기반하여, 접속 정책에 따라 식별된 상기 UE가 접속 가능한 네트워크 정보를 식별하고,
    상기 UE에 할당된 IP 주소, 목적지 IP 주소, 포트, 및 프로토콜 정보를 포함하는 데이터 플로우를 생성하고,
    상기 데이터 플로우를 게이트웨이로 전송하는
    서버.
  9. 제8항에 있어서,
    상기 프로세서는,
    상기 UE로부터, 도착지 IP 주소 및 포트, 프로토콜 정보를 포함하는 네트워크 접속 요청을 수신하고,
    상기 네트워크 접속 요청에 기반하여, 접속 정책에 따라 상기 UE의 목적지 네트워크에 대한 접속 가능 여부를 결정하고,
    상기 접속 가능 여부가 결정된 것에 기반하여, 상기 데이터 플로우를, 상기 UE 및 상기 게이트웨이로 전송하는
    서버.
  10. 제9항에 있어서,
    상기 프로세서는,
    상기 접속 정책에 따라 상기 네트워크 접속 요청을 처리한 것에 기반하여, 상기 UE의 식별 정보가 블랙리스트에 포함된 정보인지 여부를 결정하고,
    상기 UE의 식별 정보가 상기 블랙리스트에 포함된 정보가 아닌 것에 기반하여, 상기 UE와 상기 프로세서 사이에 생성된 제어 데이터 패킷의 흐름에 관한 제어 플로우를 생성하는
    서버.
  11. 제10항에 있어서,
    상기 프로세서는,
    상기 UE로부터 추가 인증 요청을 수신한 경우, 상기 UE에 대한 인증 정보 및 상기 UE가 블랙리스트에 포함되는지 여부에 기초하여, 상기 UE의 추가 인증 요청을 처리하고,
    상기 추가 인증 요청이 처리된 것에 기반하여, 상기 제어 플로우에 상기 식별 정보를 추가하고,
    상기 UE에 대한 보안 검사 결과에 기반하여, 상기 보안 검사 결과의 유효성을 검사함으로써 획득된 결과를, 상기 UE에게 전송하는
    서버.
  12. 제10항에 있어서,
    상기 프로세서는,
    상기 UE의 IP 주소가 변경된 것에 기반하여, 변경된 IP 주소를 상기 제어 플로우에 갱신하고,
    상기 데이터 플로우의 출발지 IP 주소를 상기 변경된 IP 주소로 변경함으로써, 상기 데이터 플로우를 상기 게이트웨이로 전송하는
    서버.
  13. 제8항에 있어서,
    상기 프로세서는,
    상기 UE의 위험 탐지 정보를 식별한 것에 기반하여, 보안 검사 정책에 따라 상기 UE의 보안 검사 정보가 유효한지 여부를 검사하고,
    상기 보안 검사 정보의 유효성을 검사한 결과에 기반하여, 상기 UE의 제어 플로우 해제 여부를 결정하는
    서버.
  14. 통신 회로;
    상기 통신 회로와 작동적으로 연결되는 프로세서; 및
    상기 프로세서와 작동적으로 연결되고, 타겟 애플리케이션 및 접속 제어 애플리케이션을 저장하는 메모리를 포함하고,
    상기 프로세서는,
    외부 서버에, 노드의 식별 정보 및 노드에 할당된 IP 주소를 포함하는, 서버 접속 요청 또는 인증 요청을 전송하고,
    상기 외부 서버로부터 수신된 목적지 IP 주소, 포트, 프로토콜 정보를 포함하는 데이터 플로우에 기반하여, 데이터 패킷을 처리하는
    노드.
  15. 제14항에 있어서,
    상기 타겟 애플리케이션의 네트워크 접속이 식별된 경우, 상기 외부 서버에, 도착지 IP 주소 및 포트, 프로토콜 정보를 포함하는 네트워크 접속 요청을 전송하고,
    애플리케이션 식별 정보, 도착지 IP, 포트 정보, 전송 프로토콜 정보, 또는 이들의 어느 조합 중의 적어도 하나에 기반하여, 상기 데이터 플로우를 식별하고,
    상기 외부 서버로부터 수신된 상기 네트워크 접속 요청에 관한 결과가 포함된 상기 데이터 플로우에 기반하여, 상기 데이터 패킷을 처리하는
    노드.
  16. 제14항에 있어서,
    상기 프로세서는,
    사용자 식별 정보, 상기 사용자의 비밀번호, 강화된 인증 방법, 인증서에 기반한 인증 정보, 또는 이들의 어느 조합 중의 적어도 하나를 포함하는 추가 인증 요청을, 상기 외부 서버에게 전송하고,
    상기 외부 서버로부터, 상기 추가 인증 요청에 관한 결과를 수신하는
    노드.
  17. 제14항에 있어서,
    상기 프로세서는,
    상기 노드에 할당된 IP 주소가 변경된 경우, 상기 IP 주소를 상기 외부 서버에게 전송하고,
    제어 플로우가 상기 외부 서버에 의해 상기 IP 주소에 기반하여 갱신된 경우, 상기 외부 서버로부터, 상기 IP 주소에 관한 결과를 수신하고,
    상기 접속 제어 애플리케이션의 종료를 식별하거나, 또는 목적지 네트워크에 대한 접속을 수행하지 않는 경우, 상기 외부 서버에게, 상기 제어 플로우의 종료 요청을 전송하고,
    보안 검사 정보에 기초하여 상기 노드에 대한 보안 검사를 수행하고,
    상기 보안 검사에 따라 결정된 위험 탐지 정보를, 상기 외부 서버에게 전송하는
    노드.
KR1020240155867A 2024-11-06 2024-11-06 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법 Active KR102782373B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020240155867A KR102782373B1 (ko) 2024-11-06 2024-11-06 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020240155867A KR102782373B1 (ko) 2024-11-06 2024-11-06 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Publications (1)

Publication Number Publication Date
KR102782373B1 true KR102782373B1 (ko) 2025-03-18

Family

ID=95206275

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020240155867A Active KR102782373B1 (ko) 2024-11-06 2024-11-06 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Country Status (1)

Country Link
KR (1) KR102782373B1 (ko)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140054357A (ko) * 2011-08-29 2014-05-08 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) Openflow 데이터 플레인 및 컨트롤 플레인을 갖는 클라우드 컴퓨터에서의 3g 패킷 코어의 구현
US20170265119A1 (en) * 2016-03-11 2017-09-14 Sprint Communications Company L.P. Proxy mobile internet protocol (pmip) tunnel selection by a wireless relay in a data communication network
KR20180120609A (ko) * 2017-04-27 2018-11-06 엘지전자 주식회사 무선 통신 시스템에서 udm이 amf의 등록에 관련된 절차를 수행하는 방법 및 이를 위한 장치
KR20190019005A (ko) * 2017-08-16 2019-02-26 한국전자통신연구원 5g 로컬 서비스를 위한 서비스 요청 방법
KR20200098694A (ko) * 2018-01-15 2020-08-20 후아웨이 테크놀러지 컴퍼니 리미티드 앵커리스 백홀의 지원을 위한 gtp 터널
KR20210099213A (ko) * 2017-05-08 2021-08-11 후아웨이 테크놀러지 컴퍼니 리미티드 통신 시스템 간 이동 방법 및 장치
KR20220017999A (ko) * 2019-06-07 2022-02-14 콘비다 와이어리스, 엘엘씨 다중-sim 사용자 장비들의 지원을 위한 셀룰러 시스템 향상을 위한 장치, 시스템, 방법 및 컴퓨터 판독가능 매체
KR20230052171A (ko) * 2021-10-12 2023-04-19 주식회사 윈스 5g 시스템 환경에서의 프로토콜 데이터 유닛 세션 관리 방법 및 장치
KR102724987B1 (ko) * 2024-05-08 2024-11-05 프라이빗테크놀로지 주식회사 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140054357A (ko) * 2011-08-29 2014-05-08 텔레호낙티에볼라게트 엘엠 에릭슨(피유비엘) Openflow 데이터 플레인 및 컨트롤 플레인을 갖는 클라우드 컴퓨터에서의 3g 패킷 코어의 구현
US20170265119A1 (en) * 2016-03-11 2017-09-14 Sprint Communications Company L.P. Proxy mobile internet protocol (pmip) tunnel selection by a wireless relay in a data communication network
KR20180120609A (ko) * 2017-04-27 2018-11-06 엘지전자 주식회사 무선 통신 시스템에서 udm이 amf의 등록에 관련된 절차를 수행하는 방법 및 이를 위한 장치
KR20210099213A (ko) * 2017-05-08 2021-08-11 후아웨이 테크놀러지 컴퍼니 리미티드 통신 시스템 간 이동 방법 및 장치
KR20190019005A (ko) * 2017-08-16 2019-02-26 한국전자통신연구원 5g 로컬 서비스를 위한 서비스 요청 방법
KR20200098694A (ko) * 2018-01-15 2020-08-20 후아웨이 테크놀러지 컴퍼니 리미티드 앵커리스 백홀의 지원을 위한 gtp 터널
JP2021510974A (ja) * 2018-01-15 2021-04-30 ホアウェイ・テクノロジーズ・カンパニー・リミテッド アンカーレス・バックホールのサポートのためのgtpトンネル
KR20220017999A (ko) * 2019-06-07 2022-02-14 콘비다 와이어리스, 엘엘씨 다중-sim 사용자 장비들의 지원을 위한 셀룰러 시스템 향상을 위한 장치, 시스템, 방법 및 컴퓨터 판독가능 매체
KR20230052171A (ko) * 2021-10-12 2023-04-19 주식회사 윈스 5g 시스템 환경에서의 프로토콜 데이터 유닛 세션 관리 방법 및 장치
KR102724987B1 (ko) * 2024-05-08 2024-11-05 프라이빗테크놀로지 주식회사 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Similar Documents

Publication Publication Date Title
KR102724987B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102274617B1 (ko) 제어 데이터 패킷을 보호하기 위한 시스템 및 그에 관한 방법
KR102782371B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102612535B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102379721B1 (ko) Tcp 세션 제어에 기초하여 애플리케이션의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782372B1 (ko) 개방형 인증에 기반하여 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102588355B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782369B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102749334B1 (ko) 네트워크 노드에 연결된 노드의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
US20240348540A1 (en) System for controlling data flow based on logical connection identification and method thereof
KR102724986B1 (ko) 논리적 연결 식별 기반 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법
KR102583604B1 (ko) 논리적 연결 식별 기반 데이터 플로우를 제어하기 위한 시스템 및 그에 관한 방법
US20250023857A1 (en) System for controlling network access on basis of controller, and method therefor
KR102613414B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102439881B1 (ko) 컨트롤러 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782368B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782364B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782376B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102545160B1 (ko) 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102724988B1 (ko) 개방형 인증에 기반하여 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782383B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782381B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782379B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782384B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법
KR102782377B1 (ko) 프록시 기반의 네트워크 접속을 제어하기 위한 시스템 및 그에 관한 방법

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20241106

PA0201 Request for examination

Patent event code: PA02011R01I

Patent event date: 20241106

Comment text: Patent Application

PA0302 Request for accelerated examination

Patent event date: 20241112

Patent event code: PA03022R01D

Comment text: Request for Accelerated Examination

PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20250110

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20250311

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20250312

End annual number: 3

Start annual number: 1

PG1601 Publication of registration