KR102442182B1 - 다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템 - Google Patents

다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템 Download PDF

Info

Publication number
KR102442182B1
KR102442182B1 KR1020200150086A KR20200150086A KR102442182B1 KR 102442182 B1 KR102442182 B1 KR 102442182B1 KR 1020200150086 A KR1020200150086 A KR 1020200150086A KR 20200150086 A KR20200150086 A KR 20200150086A KR 102442182 B1 KR102442182 B1 KR 102442182B1
Authority
KR
South Korea
Prior art keywords
vpn
payload
tls
session key
decryption
Prior art date
Application number
KR1020200150086A
Other languages
English (en)
Other versions
KR20220064029A (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 KR1020200150086A priority Critical patent/KR102442182B1/ko
Publication of KR20220064029A publication Critical patent/KR20220064029A/ko
Application granted granted Critical
Publication of KR102442182B1 publication Critical patent/KR102442182B1/ko

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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0478Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload applying multiple layers of encryption, e.g. nested tunnels or encrypting the content with a first key and then with at least a second key
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • 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/0272Virtual private networks
    • 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/16Implementing security features at a particular protocol layer
    • H04L63/166Implementing security features at a particular protocol layer at the transport layer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/18Network architectures or network communication protocols for network security using different networks or channels, e.g. using out of band channels
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes

Landscapes

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

Abstract

다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템을 개시한다.
본 발명의 일 실시예에 의하면, 미들박스(middlebox) 시스템의 보안 영역 내에서 수행되며, VPN(virtual private network) 프로토콜 및 TLS(transport layer security) 프로토콜을 이용하여 다중 암호화된(multiple encrypted) 트래픽(traffic)을 처리하는 방법으로서, 상기 트래픽의 페이로드를 획득하는 단계; VPN 서버로부터 공유된 VPN 세션 키(session key)를 이용하여, 상기 획득된 페이로드를 복호화(decryption)하는 단계; 상기 복호화된 페이로드를 수집하는 단계; 및 백엔드(backend) 서버로부터 공유된 TLS 세션 키를 이용하여, 상기 수집된 페이로드를 복호화하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.

Description

다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템{METHOD AND MIDDLEBOX SYSTEM FOR PROCESSING MULTIPLE ENCRYPTED TRAFFIC}
본 발명은 다중으로 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템에 관한 것으로서, 더욱 구체적으로는 다중으로 암호화된 트래픽을 미들박스 시스템에서 복호화하여 심층 패킷 검사를 수행할 수 있도록 하는 방법 및 시스템에 관한 것이다.
이 부분에 기술된 내용은 단순히 본 발명에 대한 배경 정보를 제공할 뿐 종래기술을 구성하는 것은 아니다.
많은 기업들은 서드 파티(third-party) 서버나 클라우드에 미들박스 시스템을 구축하고, 이를 네트워크 보안을 위한 일차적인 방어 수단으로 이용하고 있다.
예를 들어, 클라우드 서비스 제공자인 AWS나 Azure는 미들박스 시스템을 구동하기 위한 플랫폼을 제공하며, 온라인 서비스 운영자들은 이 플랫폼에서 미들박스 시스템을 구동시켜 서비스 방화벽(firewall) 기능이나 심층 패킷 분석(deep packet inspection, DPI) 기능 등을 수행하고 있다.
미들박스 시스템은 특정 지능적 기능을 가진 네트워크 중간자 서비스를 수행하는 시스템이다. 이 미들박스 시스템은 자체의 하드웨어 설계와 자체에 설치 또는 배포되는 어플리케이션(application)의 종류에 따라 라우터(router), 방화벽, NAT(network address translator) 등과 같은 다양한 기능을 수행할 수 있다.
최근, 종단 간 암호화 통신 프로토콜을 사용하는 트래픽의 사용량이 크게 증가하면서, 미들박스 시스템 내에서 페이로드(payload)를 분석하기가 어려워지고 있다. 이로 인하여, 미들박스 시스템이 암호화된 페이로드의 원본을 검사할 수 없게 되면, 결국 보호해야 할 백엔드(backend) 서버가 보안 위협에 취약해질 수 있다.
예를 들어, 공격자가 악성코드를 암호화하여 백엔드 서버로 전송하는 경우에 미들박스 시스템이 중간에서 악성코드를 검출해 낼 수 없고, 이로 인하여 백엔드 서버가 공격을 받아 감염되거나 백엔드 서버에 저장된 민감한 내부 정보가 외부로 유출될 수 있다.
별도의 보안 장치 없이 TLS(transport layer security) 세션 키(session key)와 같은 복호화 키를 미들박스 시스템에 제공하면, 미들박스 시스템이 많은 양의 암호화된 페이로드를 복호화할 수 있게 된다. 그러나, 이 방법은 미들박스 시스템이 구동되는 플랫폼에 복호화 키 또는 복호화된 페이로드가 보안 위협에 노출될 수 있는 문제를 가지고 있다.
트래픽이 다중으로 암호화된 경우에는 미들박스 시스템이 암호화된 페이로드를 복호화할 수 없는 상황이 더욱 악화될 수 있다. 예를 들어, 클라이언트가 TLS 프로토콜로 암호화된 트래픽을 VPN(virtual private network) 네트워크를 통하여 백엔드 서버로 전송하는 경우, 페이로드는 다중으로(TLS 프로토콜 및 VPN 프로토콜) 암호화된다. 이 경우에는, 다중으로 암호화된 페이로드를 복호화하는 과정의 복잡도가 크게 증가하는 새로운 문제가 발생할 수 있다.
본 발명의 일 실시예는, 다중으로 암호화된 트래픽을 미들박스 시스템에서 복호화하여 심층 패킷 검사를 수행할 수 있는 방법을 제공하는 데 주된 목적이 있다.
또한, 본 발명의 다른 일 실시예는, 최신의 하드웨어 보안 기술을 미들박스 시스템에 적용하여, 복호화 키 및 복호화된 페이로드를 보안 위협으로부터 보호하는 방법을 제공하는 데 주된 목적이 있다.
본 발명의 일 실시예에 의하면, 미들박스(middlebox) 시스템의 보안 영역 내에서 수행되며, VPN(virtual private network) 프로토콜 및 TLS(transport layer security) 프로토콜을 이용하여 다중 암호화된(multiple encrypted) 트래픽(traffic)을 처리하는 방법으로서, 상기 트래픽의 페이로드를 획득하는 단계; VPN 서버로부터 공유된 VPN 세션 키(session key)를 이용하여, 상기 획득된 페이로드를 복호화(decryption)하는 단계; 상기 복호화된 페이로드를 수집하는 단계; 및 백엔드(backend) 서버로부터 공유된 TLS 세션 키를 이용하여, 상기 수집된 페이로드를 복호화하는 단계를 포함하는 것을 특징으로 하는 방법을 제공한다.
본 발명의 다른 일 실시예에 의하면, 다중 암호화된(multiple encrypted) 트래픽(traffic)을 보안 영역 내에서 처리하는 미들박스(middlebox) 시스템으로서, 상기 트래픽의 페이로드를 획득하는 VPN 큐(virtual private network queue); VPN 서버로부터 공유된 VPN 세션 키(session key)를 이용하여, 상기 획득된 페이로드를 복호화(decryption)하는 VPN 복호화 엔진; 상기 복호화된 페이로드를 수집하는 TLS 큐; 및 백엔드(backend) 서버로부터 공유된 TLS(transport layer security) 세션 키를 이용하여, 상기 수집된 페이로드를 복호화하는 TLS 복호화 엔진을 포함하고, 상기 트래픽은, VPN 프로토콜 및 TLS 프로토콜을 이용하여 다중 암호화된 것을 특징으로 하는 미들박스 시스템을 제공한다.
본 발명은 다중으로 암호화된 트래픽을 복호화할 수 있도록 구성되므로, 복호화된 트래픽에 대한 심층 검사가 가능하여, 백엔드 서버의 감염 또는 민감한 내부 정보의 유출 등을 방지할 수 있다.
또한, 본 발명은 최신의 하드웨어 보안 기술을 적용하므로, 복호화 키 및 복호화된 페이로드에 대한 보호를 강화시킬 수 있다.
도 1은 미들박스 시스템의 전반적인 구성을 설명하기 위한 블록도이다.
도 2는 다중으로 암호화된 트래픽을 복호화하기 위한 미들박스 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 다중으로 암호화된 트래픽을 복호화하는 방법의 일 예를 설명하기 위한 순서도이다.
도 4는 트래픽의 페이로드를 수집/획득하는 방법의 일 예를 설명하기 위한 순서도이다.
도 5a는 복호화 키들을 공유하는 방법의 일 예를 설명하기 위한 순서도이다.
도 5b는 미들박스 시스템의 무결성을 검증하는 방법의 일 예를 설명하기 위한 순서도이다.
도 6a는 트래픽의 플로우와 복호화 키들을 연동하여 트래픽을 복호화하는 방법의 일 예를 설명하기 위한 순서도이다.
도 6b는 트래픽의 플로우와 복호화 키들을 연동하여 트래픽을 복호화하는 방법의 일 예를 설명하기 위한 예시도이다.
이하, 본 발명의 일부 실시예들을 예시적인 도면을 통해 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
또한, 본 발명의 구성 요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성 요소를 다른 구성 요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성 요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
본 발명에 대한 상세한 설명에 앞서, 본 발명이 활용하는 인텔 SGX(software guard extension) 기술에 대해 먼저 설명한다.
인텔 SGX 기술을 사용하는 어플리케이션은 데이터와 코드를 엔클레이브(enclave)라고 지칭되는 보안 컨테이너(container)에 저장한다. 이 엔클레이브는 엔클레이브 페이지 캐시(enclave page cache)라 지칭되는 암호화된 메모리 영역에 매핑되고, 엔클레이브에 저장된 컨텐츠는 인텔 메모리 복호화 엔진(memory encryption engine, MEE)으로만 복호화가 가능하다. 또한, 엔클레이브에 저장된 컨텐츠를 복호화하는 경우, CPU에 내장된 특수한 키(key)가 요구된다.
이와 같이, SGX 기술은 하드웨어 보안 기술을 이용하여 운영 소프트웨어(OS)나 하이퍼바이저(hypervisor) 레벨에 위치하는(엔클레이브 외부에 위치하는) 악의적인 공격자의 데이터 수정이나 이 악의적인 공격자에 의한 데이터 유출을 방지할 수 있다.
SGX 기술은 원격 플랫폼에서 엔클레이브 자체의 무결성을 검증하는 기능도 제공한다. 여기서, 엔클레이브 자체의 무결성이란, 엔클레이브가 안전한 하드웨어 환경에서 설정되어 있음을 의미한다. 또한, 엔클레이브가 안전한 하드웨어 환경에서 설정되어 있다는 것은, 올바른 어플리케이션이 인텔 SGX 플랫폼의 독립된 또는 격리된 공간(엔클레이브)에서 실행되고 있음을 의미한다.
본 발명은 이러한 SGX 기술의 특징을 미들박스 시스템(100)에 활용하여 미들박스 시스템(100)의 보안성, 무결성 등을 확보 또는 향상시킬 수 있다.
도 1은 미들박스 시스템(100)의 전반적인 구성을 설명하기 위한 블록도이다. 도 1에 나타낸 바와 같이, 미들박스 시스템(100)은 미들박스(middlebox)(110), 컨트롤러(controller)(120) 및 서버(server)(130)를 포함하여 구성될 수 있다.
미들박스(110)는 라우터, 방화벽, NAT 등과 같은 다양한 기능을 수행하는 네트워크 중간자 장비에 해당한다. 도 1에는 미들박스(110)가 독립적이고 개별적인 구성으로 표현되어 있으나, 미들박스(110)는 미들박스 플랫폼에 배포되어 구동될 수 있다. 즉, 이하에서 지칭되는 '미들박스'는 미들박스 자체를 지시하거나 미들박스 플랫폼을 지시할 수도 있다.
미들박스(110)에는 독립적이고 격리된 보안 구역에 해당하는 엔클레이브(제1엔클레이브, enclave 1)가 포함될 수 있으며, 제1엔클레이브의 내부에는 룰셋(룰셋 1, rule set 1)이 암호화되어 저장될 수 있다. 또한, 제1엔클레이브에는 해시함수를 포함하는 코드(제1코드)가 암호화되어 저장될 수 있다.
컨트롤러(120)는 유무선 네트워크를 관리하는 장치 또는 구성에 해당한다. 도 1에는 표현되어 있지 않으나, 이 컨트롤러(120)에는 미들박스(110)를 제어하기 위한 별도의 제어 프레임워크가 구현되어 있다.
네트워크 관리자는 컨트롤러(120)를 이용하여(별도의 제어 프레임워크를 이용하여) 미들박스(110)의 설정을 변경할 수 있으며, 미들박스(110)가 어떤 룰셋을 사용하게 할 것인지 선택할 수 있다.
컨트롤러(120)에는 독립적이고 격리된 보안 구역에 해당하는 엔클레이브(제2엔클레이브, enclave 2)가 포함될 수 있으며, 제2엔클레이브의 내부에는 룰셋(제2룰셋, rule set 2)을 포함하는 하나 이상의 룰셋이 암호화되어 저장될 수 있다. 또한, 제2엔클레이브에는 제1엔클레이브에 저장된 해시함수와 동일한 해시함수가 암호화되어 저장될 수 있다.
후술되는 바와 같이, 컨트롤러(120)는 자체에 저장된 하나 이상의 룰셋 중에서 어느 하나(제2룰셋)를 선별하여 미들박스(110)로 전송하고(ruleset provisioning), 미들박스(110)는 전송된 룰셋을 자체에 저장할 수 있다. 따라서, 미들박스(110)에 저장된 제1룰셋은 컨트롤러(120)에 저장된 제2룰셋과 동일할 수 있다. 다만, 제2룰셋이 전송되는 과정에서 변조 또는 위조되거나, 미들박스(110)에 저장된 제1룰셋이 변조 또는 위조되는 경우, 제2룰셋과 제1룰셋은 서로 상이해질 수 있다.
서버(130)는 제1룰셋의 해시 값과 제2룰셋의 해시 값을 상호 비교하여 제1룰셋의 무결성을 검증한다. 여기서, 제1룰셋의 무결성이란, 제2룰셋(제1룰셋)이 미들박스(110)로 전송되는 과정에서 변조 또는 위조되지 않았으며, 미들박스(110)에 저장된 상태에서 변조 또는 위조되지 않았음을 의미한다. 즉, 제1룰셋의 무결성이란, 제1룰셋이 컨트롤러(120)로부터 미들박스(110)로 최초 전송된 상태를 그대로 유지하고 있음을 의미한다.
서버(130)는 무결성 검증의 결과를 미들박스(110) 및/또는 컨트롤러(120)로 전송하여 미들박스(110)가 제1룰셋을 사용 또는 사용하지 않도록 하거나, 컨트롤러(120)가 새로운 룰셋을 미들박스(110)로 전송하도록 제어할 수 있다.
이와 같이, 본 발명은 제1룰셋의 해시 값과 제2룰셋의 해시 값을 상호 비교하여 제1룰셋의 무결성을 검증하도록 구성되므로, 종래 미들박스 시스템과 달리, 제1룰셋의 위변조 여부를 판단하는 기능을 수행할 수 있게 된다.
따라서, 네트워크 관리자 또는 미들박스 관리자는 제1룰셋의 위변조 여부를 파악할 수 있게 되고, 제1룰셋이 위변조된 것으로 파악된 경우에 이에 대한 적절하고 유효한 대응을 수행할 수 있게 되므로, 미들박스(110)가 본래 기능을 원활하게 발휘할 수 있게 된다.
도 2는 다중으로 암호화된 트래픽을 복호화하기 위한 미들박스 시스템(100)의 구성을 설명하기 위한 블록도이며, 도 3은 다중으로 암호화된 트래픽을 복호화하는 방법의 일 예를 설명하기 위한 순서도이다.
도 2에 나타낸 바와 같이, 미들박스 시스템(미들박스, 110)(100)은 VPN 큐(VPN queue)(210), VPN 복호화 엔진(VPN decryption engine)(220), TLS 큐(TLS queue)(230), TLS 복호화 엔진(TLS decryption engine)(240), 원문 큐(plaintext queue)(250) 및 DPI 엔진(DPI engine)(260)을 포함하여 구성될 수 있다.
VPN 큐(210), VPN 복호화 엔진(220), TLS 큐(230), TLS 복호화 엔진(240), 원문 큐(250) 및 DPI 엔진(260)은 미들박스(110)에 포함된 제1엔클레이브(200) 내에 포함될 수 있다. 이를 통해, 트래픽을 복호화하는 과정 및 복호화 키에 대한 보안이 향상될 수 있다.
다중으로 암호화된 트래픽(encrypted traffic)이 외부로부터 수신되면, 미들박스 시스템(100)은 이를 제1엔클레이브(200)로 전달한다. 다중으로 암호화된 트래픽은 VPN 프로토콜 및 TLS 프로토콜을 이용하여 암호화된 트래픽일 수 있다. VPN 큐(210)는 다중으로 암호화된 트래픽의 페이로드를 순차적으로 획득할 수 있다(S310). VPN 큐(210)는 버퍼일 수 있다. 획득된 페이로드는 VPN 복호화 엔진(220)으로 전달된다.
VPN 복호화 엔진(220)은 획득된(VPN 큐(210)로부터 전달된) 페이로드를 복호화할 수 있다(S320). VPN 복호화 엔진(220)은 획득된 페이로드를 VPN 세션 키를 이용하여 복호화할 수 있으며, VPN 세션 키는 외부에 위치하는 VPN 서버(VPN server)로부터 공유될 수 있다. VPN 복호화 엔진(220)에서 복호화된 페이로드는 TLS 큐(230)로 전달된다.
TLS 큐(230)는 VPN 복호화 엔진(220)으로부터 전달되는 복호화된 페이로드를 순차적으로 수집할 수 있다(S330). TLS 큐(230)는 버퍼일 수 있다. TLS 큐(230)에서 수집된 페이로드는 TLS 복호화 엔진(240)으로 전달된다.
TLS 복호화 엔진(240)은 수집된(TLS 큐(230)로부터 전달된) 페이로드를 복호화할 수 있다(S340). TLS 복호화 엔진(240)에서 복호화된 페이로드가 최종적으로 복호화된 페이로드에 해당한다. TLS 복호화 엔진(240)은 수집된 페이로드를 TLS 세션 키를 이용하여 복호화할 수 있으며, TLS 세션 키는 외부에 위치하는 백엔드 서버(backend server)로부터 공유될 수 있다. TLS 복호화 엔진(240)에서 복호화된 페이로드는 원문 큐(250)로 전달된다.
원문 큐(250)는 TLS 복호화 엔진(240)으로부터 전달되는 복호화된 페이로드를 수집 또는 획득하고, 이를 DPI 엔진(260)으로 전달한다. DPI 엔진(260)은 최종적으로 복호화된 페이로드(원문 큐(250)로부터 전달된 페이로드)에 대한 검사를 수행한다(S350).
이와 같이, 본 발명은 트래픽이 암호화된 각각의 방식(다중 암호화 방식)에 대응되는 복호화 엔진들을 이용하여 다중으로 암호화된 페이로드를 복호화하도록 구성된다. 따라서, 본 발명은 공격자가 TLS 프로토콜을 이용하여 암호화된 악성코드를 VPN 네트워크를 통해 전송하더라도, 이를 검출해 낼 수 있으므로, 백엔드 서버에 대한 감염 또는 민감한 내부 정보의 유출 등을 미연에 차단할 수 있다.
도 2에 나타낸 바와 같이, 본 발명은 VPN 큐(210), VPN 복호화 엔진(220), TLS 큐(230) 및 TLS 복호화 엔진(240)이 파이프라인(pipeline) 구조를 형성한다. 따라서, 이 파이프라인 구조에 새로운 방식(새로운 프로토콜)의 복호화 엔진을 추가하면, 다른 방식(새로운 방식)으로 암호화된 트래픽도 복호화할 수 있으므로, 더욱 확장된 범위의 적용 가능성을 가질 수 있다.
도 4는 트래픽의 페이로드를 수집/획득하는 방법의 일 예를 설명하기 위한 순서도이다.
앞서 설명된 바와 같이, VPN 큐(210)는 다중으로 암호화된 트래픽의 페이로드를 획득할 수 있으며, 획득된 페이로드가 VPN 복호화 엔진(220)으로 전달된다. 또한, TLS 큐(230)는 VPN 복호화 엔진(220)으로부터 전달되는 복호화된 페이로드를 수집할 수 있으며, 수집된 페이로드가 TLS 복호화 엔진(240)으로 전달된다.
실시형태에 따라, VPN 큐(210)는 복호화에 필요한 페이로드의 길이만큼의 페이로드가 획득된 경우에 해당 페이로드를 VPN 복호화 엔진(220)으로 전달하도록 구성될 수 있으며, TLS 큐(230)도 복호화에 필요한 페이로드의 길이만큼의 페이로드가 수집된 경우에 해당 페이로드를 TLS 복호화 엔진(240)으로 전달하도록 구성될 수 있다.
먼저, VPN 큐(210)와 TLS 큐(230)는 트래픽의 패킷 헤더를 분석하여 복호화에 필요한 페이로드의 길이를 판단할 수 있다(S410). 여기서, '복호화에 필요한 페이로드의 길이'는 '복호화가 가능한 페이로드의 길이'일 수 있다. 패킷 헤더의 레코드 사이즈를 참조하면 VPN 큐(210)와 TLS 큐(230)에 충분한 페이로드가 수집 및 획득되었는지 여부가 판단될 수 있다.
VPN 큐(210)와 TLS 큐(230)는 페이로드를 수집 및 획득하고(S420), 수집 및 획득된 페이로드의 길이가 S410 과정에서 판단된 페이로드의 길이와 같은지 여부를 판단할 수 있다(S430).
VPN 큐(210)와 TLS 큐(230)는 수집 및 획득된 페이로드의 길이가 판단된 페이로드의 길이와 같은 경우에, 수집 및 획득된 페이로드를 VPN 복호화 엔진(220) 및 TLS 복호화 엔진(240)으로 전달할 수 있다.
이와 달리, VPN 큐(210)와 TLS 큐(230)는 수집 및 획득된 페이로드의 길이가 판단된 페이로드의 길이와 같지 않은 경우(수집 및 획득된 페이로드의 길이 < 판단된 페이로드의 길이)에는, 페이로드를 수집 및 획득하는 과정(S420)을 다시 수행할 수 있다.
도 5a는 복호화 키들을 공유하는 방법의 일 예를 설명하기 위한 순서도이며, 도 5b는 미들박스 시스템(100)의 무결성을 검증하는 방법의 일 예를 설명하기 위한 순서도이다.
앞서 설명된 바와 같이, VPN 세션 키는 VPN 서버로부터 공유되며, TLS 세션 키는 백엔드 서버로부터 공유될 수 있다. 본 발명은 VPN 서버 및 백엔드 서버와 보안 채널을 설정하고, 이 보안 채널을 통해 VPN 세션 키 및 TLS 세션 키를 공유 받도록 구성될 수 있다.
먼저, 미들박스 시스템(100)은 보안 영역의 무결성(integrity)에 대한 원격 검증(remote attestation)을 수행할 수 있다(S510).
미들박스 시스템(100)은 무결성이 확인되는 경우에 VPN 서버 및 백엔드 서버와 보안 채널을 설정할 수 있다(S520). 또한, 미들박스 시스템(100)은 설정된 보안 채널을 통하여 VPN 서버 및 백엔드 서버로부터 VPN 세션 키 및 TLS 세션 키를 공유 받을 수 있다(S530).
이와 같이, 본 발명은 보안 채널을 통하여 복호화 키들을 공유 받도록 구성되므로, 복호화 키들을 공유하는 과정에서 발생할 수 있는 보안 문제를 미연에 방지할 수 있다.
도 5b를 참조하여, 무결성에 대한 원격 검증 과정을 상세히 설명하면 아래와 같다.
SGX가 지원하는 무결성 검증 기능에서는 미들박스(110) 외부에 위치하는 검증서버가 추가적으로 이용될 수 있다. 이 검증서버는 인텔 검증 서비스(Intel Attestation Service, IAS)를 수행하기 위한 서버에 해당한다.
먼저, 미들박스(110)는 제1엔클레이브에 공유 세션 키(제1세션 키)를 저장하고(S542), 컨트롤러(120)는 제2엔클레이브에 공유 세션 키(제2세션 키)를 저장한다(S540).
미들박스(110)는 컨트롤러(120)로 룰셋의 전송을 요청하는 신호를 전송한다(S544). 룰셋의 전송을 요청하는 신호는 서버(130)의 룰셋 배포 또는 업데이트 요청 신호에 대한 응답으로 전송될 수 있다.
룰셋의 전송을 요청하는 신호가 수신되면, 컨트롤러(120)는 챌린지(challenge)를 미들박스(110)로 전송한다(S546). 챌린지는 미들박스(110) 즉, 제1엔클레이브에게 자신의 무결성을 증명하도록 하는 요청으로서, 자체 증명 요청을 위해 일시적으로 생성된 임의의 숫자(nonce)에 해당한다.
챌린지가 수신되면, 미들박스(110)에 포함된 미들박스 어플리케이션(미도시)은 제1엔클레이브의 ID를 저장하여 미들박스(110)에 포함된 제1검증엔클레이브(Quote enclave 1)(미도시)와 연결된다. 여기서, 제1엔클레이브의 ID는 권한이 없는 제3자가 제1엔클레이브의 컨텐츠에 엑세스하는 것을 제한하는 제1엔클레이브 로그의 암호화 해시이다.
한편, 제1엔클레이브는 일시적인 공개 키와 챌린지에 대한 응답을 생성한다. 또한, 제1엔클레이브는 챌린지에 대한 응답과 일시적으로 생성된 공개 키를 포함하는 목록(manifest)을 생성하고, 이 목록에 대한 해시 값을 생성한 후(S548), 이를 EREPORT라 지칭되는 REPORT 형태로 미들박스 어플리케이션에 전송한다.
미들박스 어플리케이션은 수신된 해시 값을 제1검증엔클레이브로 전송하고, 제1검증엔클레이브는 REPORT 키를 이용하여 해시 값을 확인하며(verify), EPID(Intel Enhanced Privacy ID) 키를 이용하여 QUOTE 구조를 생성한 뒤, 이를 서명하여(S550) 미들박스 어플리케이션에 전송한다.
미들박스 어플리케이션은 서명된 QUOTE를 서버(130)로 전송한다(S552). 이를 수신 받은 서버(130)는 EPID 공개 키를 사용하여 QUOTE 서명의 유효성을 검사하고(S554), 유효성이 확인되면 QUOTE와 서명을 검증서버로 전송한다(S556). 검증서버는 검증 결과를 서버(130)로 전송하고(S558), 서버(130)는 검사 결과를 컨트롤러(120)로 재전송한다(S560).
검사 결과를 통하여 제1엔클레이브의 무결성이 입증되면, 미들박스(110)와 컨트롤러(120)는 자체에 저장된 공유 세션 키를 이용하여 보안채널을 형성하고(S562), 선별된(S564) 룰셋(제2룰셋)이 이 보안채널을 통하여 컨트롤러(120)로부터 미들박스(110)로 전송되어(S566) 제1엔클레이브에 저장되게 된다(S568).
도 6a는 트래픽의 플로우와 복호화 키들을 연동하여 트래픽을 복호화하는 방법의 일 예를 설명하기 위한 순서도이다.
앞서 설명된 바와 같이, VPN 복호화 엔진(220)은 VPN 큐(210)로부터 전달 받은 페이로드를 VPN 서버로부터 공유 받은 VPN 세션 키를 이용하여 복호화한다. 또한, TLS 복호화 엔진(240)은 TLS 큐(230)로부터 전달 받은 페이로드를 백엔드 서버로부터 공유 받은 TLS 세션 키를 이용하여 복호화한다.
미들박스 시스템(100)에서 많은 수의 트래픽들이 처리되는 경우에, 복호화 엔진들(220, 240)은 어느 페이로드가 어느 세션 키를 이용하여 복호화되어야 하는지 여부 판단해야 한다. 따라서, 어느 페이로드와 이 페이로드를 복호화하기 위한 세션 키가 서로 연동 또는 연계되어야 하며, 본 발명에서는 이 연동 또는 연계를 위해 플로우 튜플(flow tuple)을 이용한다.
플로우 튜플은 플로우에 대한 출발지(source)와 목적지(destination)를 알려주는 튜플로서, 플로우 튜플에 해당하는 5-tuple은 (Source IP Address, Destination IP Address, Source Port #, Destination Port #, Protocol ID}와 같은 5개의 필드로 구성될 수 있다. 플로우 튜플은 복호화 키와 함께 VPN 서버 및 백엔드 서버로부터 공유될 수 있다.
먼저, VPN 복호화 엔진(220)과 TLS 복호화 엔진(240) 각각은 VPN 세션 키 및 TLS 세션 키 각각으로부터 VPN 복호화 컨텍스트(context) 및 TLS 복호화 컨텍스트를 유도할 수 있다(S610).
복호화 컨텍스트는 암호화된 페이로드를 복호화하기 위해 필요한 복호화 구조체로서, 복호화 키를 이용하여 유도 또는 생성될 수 있다. 복호화 컨텍스트는 복호화 키를 이용하여 유도되는 복호화 구조체로서, 복호화 키, 암호화된 페이로드를 복호화하기 위한 복호화 알고리즘 등을 포함할 수 있다.
VPN 복호화 엔진(220)은 플로우 튜플 및 VPN 복호화 컨텍스트를 이용하여 '연동된 VPN 세션 키'를 생성하고, TLS 복호화 엔진(240)은 플로우 튜플 및 TLS 복호화 컨텍스트를 이용하여 '연동된 TLS 세션 키'를 생성할 수 있다(S620). 연동된 세션 키는 플로우 튜플과 이에 대응되는 복호화 구조체를 연동 또는 연계시켜 생성될 수 있다.
VPN 복호화 엔진(220)은 연동된 VPN 세션 키를 암호화된 페이로드에 적용하여 암호화된 페이로드를 복호화하고, TLS 복호화 엔진(240)은 연동된 TLS 세션 키를 암호화된 페이로드에 적용하여 암호화된 페이로드를 복호화할 수 있다(S630).
여기서, 복수 개의 페이로드들 중에서 연동된 세션 키에 포함된 플로우 튜플이 지시하는 페이로드가 연동된 세션 키가 적용되는 페이로드로 선택될 수 있다.
트래픽의 플로우와 복호화 키들을 연동하여 트래픽을 복호화하는 방법의 일 예를 설명하기 위한 예시도가 도 6b에 나타나 있다.
Encrypted payload는 VPN 큐(210)에서 획득된 페이로드를 나타낸다. Encrypted payload는 VPN 복호화 엔진(220)으로 전달되고, VPN 복호화 엔진(220)에서 복호화된다.
VPN 복호화 엔진(220)은 VPN 복호화 컨텍스트(VPN decryption context)를 VPN 세션 키로부터 유도하고, VPN 세션 키와 함께 공유된 플로우 튜플(5-tuple)를 VPN decryption context와 연동하여 연동된 VPN 세션 키(Associated VPN session key)를 생성한다.
VPN 복호화 엔진(220)은 5-tuple를 이용하여 여러 개의 Encrypted payload들 중에서 VPN decryption context에 대응되는 Encrypted payload를 선별하고, 선별된 Encrypted payload에 Associated VPN session key를 적용하여 복호화된 페이로드(Decrypted payload 1)를 생성한다. Decrypted payload 1는 TLS 큐(230)를 통해 TLS 복호화 엔진(240)으로 전달된다.
TLS 복호화 엔진(240)은 TLS 복호화 컨텍스트(TLS decryption context)를 TLS 세션 키로부터 유도하고, TLS 세션 키와 함께 공유된 플로우 튜플(5-tuple)을 TLS decryption context와 연동하여 연동된 TLS 세션 키(Associated TLS session key)를 생성한다.
TLS 복호화 엔진(240)은 5-tuple를 이용하여 여러 개의 Decrypted payload 1들 중에서 TLS decryption context에 대응되는 Decrypted payload 1을 선별하고, 선별된 Decrypted payload 1에 Associated TLS session key를 적용하여 복호화된 페이로드(Decrypted payload 2)를 생성한다.
도 3 내지 도 6a에서는 각 과정들이 순차적으로 실행되는 것으로 기재하고 있으나, 이는 본 발명의 일 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것이다. 다시 말해, 본 발명의 일 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 발명의 일 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 도 3 내지 도 6a에 기재된 순서를 변경하여 실행하거나 각 과정들 중 하나 이상의 과정을 병렬적으로 실행하는 것으로 다양하게 수정 및 변형하여 적용 가능할 것이므로, 도 3 내지 도 6a는 시계열적인 순서로 한정되는 것은 아니다.
한편, 도 3 내지 도 6a에 도시된 과정들은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 즉, 컴퓨터가 읽을 수 있는 기록매체는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등의 비일시적인(non-transitory) 매체일 수 있으며, 또한 캐리어 웨이브(예를 들어, 인터넷을 통한 전송) 및 데이터 전송 매체(data transmission medium)와 같은 일시적인(transitory) 매체를 더 포함할 수도 있다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수도 있다.
이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.
100: 미들박스 시스템

Claims (7)

  1. 다중 암호화된(multiple encrypted) 트래픽(traffic)을 보안 영역 내에서 처리하는 미들박스(middlebox) 시스템으로서,
    VPN 프로토콜 및 TLS 프로토콜을 이용하여 다중 암호화된 트래픽의 페이로드를 획득하는 VPN 큐(virtual private network queue);
    VPN 서버로부터 공유된 VPN 세션 키(session key)를 이용하여, 상기 획득된 페이로드를 복호화(decryption)하는 VPN 복호화 엔진;
    상기 복호화된 페이로드를 수집하는 TLS 큐; 및
    백엔드(backend) 서버로부터 공유된 TLS(transport layer security) 세션 키를 이용하여, 상기 수집된 페이로드를 복호화하는 TLS 복호화 엔진을 포함하고,
    상기 VPN 큐, 상기 VPN 복호화 엔진, 상기 TLS 큐, 및 상기 TLS 복호화 엔진이 파이프라인 구조로 연결된 것을 특징으로 하는 미들박스 시스템.
  2. 제1항에 있어서,
    상기 VPN 복호화 엔진은,
    상기 트래픽의 패킷 헤더를 분석하여 복호화에 필요한 페이로드의 길이를 판단하고, 상기 트래픽의 페이로드 중에서 상기 판단된 길이의 페이로드가 획득된 경우에 상기 획득된 페이로드의 복호화를 수행하는 것을 특징으로 하는 미들박스 시스템.
  3. 제1항에 있어서,
    상기 TLS 복호화 엔진은,
    상기 트래픽의 패킷 헤더를 분석하여 복호화에 필요한 페이로드의 길이를 판단하고, 상기 VPN 세션 키를 이용하여 복호화된 페이로드 중에서 상기 판단된 길이의 페이로드가 수집된 경우에 상기 수집된 페이로드의 복호화를 수행하는 것을 특징으로 하는 미들박스 시스템.
  4. 제1항에 있어서,
    상기 VPN 복호화 엔진은,
    상기 VPN 서버에 대해 상기 미들박스 시스템의 무결성(integrity)에 대한 원격 검증(remote attestation)을 수행하고, 상기 미들박스 시스템의 무결성이 확인되는 경우에, 상기 VPN 서버와 보안 채널을 설정하며, 상기 보안 채널을 통하여 상기 VPN 세션 키를 상기 VPN 서버로부터 제공받으며,
    상기 TLS 복호화 엔진은,
    상기 백엔드 서버에 대해 상기 미들박스 시스템의 무결성(integrity)에 대한 원격 검증(remote attestation)을 수행하고, 상기 미들박스 시스템의 무결성이 확인되는 경우에 상기 백엔드 서버와 보안 채널을 설정하며, 상기 보안 채널을 통하여 상기 TLS 세션 키를 상기 백엔드 서버로부터 제공받는 것을 특징으로 하는 미들박스 시스템.
  5. 제1항에 있어서,
    상기 VPN 복호화 엔진은,
    상기 획득된 페이로드를 복호화하기 위한 VPN 복호화 컨텍스트(context)를 상기 VPN 세션 키로부터 유도하고,
    상기 VPN 서버로부터 공유된 플로우 튜플(flow tuple) 및 상기 VPN 복호화 컨텍스트를 이용하여, 연동된 VPN 세션 키를 생성하며,
    상기 연동된 VPN 세션 키를 상기 획득된 페이로드에 적용하여, 상기 획득된 페이로드를 복호화하는 것을 특징으로 하는 미들박스 시스템.
  6. 제1항에 있어서,
    상기 TLS 복호화 엔진은,
    상기 수집된 페이로드를 복호화하기 위한 TLS 복호화 컨텍스트(context)를 상기 TLS 세션 키로부터 유도하고,
    상기 백엔드 서버로부터 공유된 플로우 튜플 및 상기 TLS 복호화 컨텍스트를 이용하여, 연동된 TLS 세션 키를 생성하며,
    상기 연동된 TLS 세션 키를 상기 수집된 페이로드에 적용하여, 상기 수집된 페이로드를 복호화하는 것을 특징으로 하는 미들박스 시스템.
  7. 삭제
KR1020200150086A 2020-11-11 2020-11-11 다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템 KR102442182B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200150086A KR102442182B1 (ko) 2020-11-11 2020-11-11 다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200150086A KR102442182B1 (ko) 2020-11-11 2020-11-11 다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템

Publications (2)

Publication Number Publication Date
KR20220064029A KR20220064029A (ko) 2022-05-18
KR102442182B1 true KR102442182B1 (ko) 2022-09-08

Family

ID=81800715

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200150086A KR102442182B1 (ko) 2020-11-11 2020-11-11 다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템

Country Status (1)

Country Link
KR (1) KR102442182B1 (ko)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170324566A1 (en) * 2016-05-06 2017-11-09 Pacific Star Communications, Inc. Unified encryption configuration management and setup system
US20180176187A1 (en) * 2016-12-16 2018-06-21 Amazon Technologies, Inc. Secure data ingestion for sensitive data across networks

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102050797B1 (ko) * 2017-08-30 2019-12-03 한국과학기술원 미들박스 장치 및 이의 암호화된 패킷 처리 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20170324566A1 (en) * 2016-05-06 2017-11-09 Pacific Star Communications, Inc. Unified encryption configuration management and setup system
US20180176187A1 (en) * 2016-12-16 2018-06-21 Amazon Technologies, Inc. Secure data ingestion for sensitive data across networks

Also Published As

Publication number Publication date
KR20220064029A (ko) 2022-05-18

Similar Documents

Publication Publication Date Title
US10454961B2 (en) Extracting encryption metadata and terminating malicious connections using machine learning
US11190494B2 (en) Application whitelist using a controlled node flow
JP5346107B2 (ja) インターネットのための対称鍵配信フレームワーク
JP5911893B2 (ja) 論理装置、処理方法及び処理装置
US20210092095A1 (en) Secure data transmission using a controlled node flow
Naik et al. Cyber security—iot
US8104082B2 (en) Virtual security interface
Skowyra et al. Have no phear: Networks without identifiers
Salek et al. A review on cybersecurity of cloud computing for supporting connected vehicle applications
Ramadhani Anonymity communication VPN and Tor: a comparative study
Poh et al. A survey of privacy-preserving techniques for encrypted traffic inspection over network middleboxes
Khan Securing network infrastructure with cyber security
Alexei et al. Analysis of IoT security issues used in Higher Education Institutions
Bradatsch et al. Secure service function chaining in the context of zero trust security
Valadares et al. Security challenges and recommendations in 5G-IoT scenarios
CN114884647A (zh) 网络访问管理方法及相关设备
US11722519B1 (en) System and method for dynamically avoiding double encryption of already encrypted traffic over point-to-point virtual private networks for lateral movement protection from ransomware
Yang et al. Security on ipv6
KR102442182B1 (ko) 다중 암호화된 트래픽을 처리하는 방법 및 미들박스 시스템
JP2018074395A (ja) データ通信システム、キャッシュdns装置及び通信攻撃防止方法
Banoth et al. Modern cryptanalysis methods, advanced network attacks and cloud security
US20150039881A1 (en) Triggering an Internet Packet Protocol Against Malware
Yoon et al. Encrypted network traffic analysis method via secure socket layer handshake control
Mahmood et al. Threats in end to end commercial deployments of Wireless Sensor Networks and their cross layer solution
KR102137702B1 (ko) 룰셋의 무결성을 원격으로 검증하는 방법 및 이를 이용한 미들박스 시스템

Legal Events

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