KR20220143363A - 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법 - Google Patents

네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법 Download PDF

Info

Publication number
KR20220143363A
KR20220143363A KR1020210049779A KR20210049779A KR20220143363A KR 20220143363 A KR20220143363 A KR 20220143363A KR 1020210049779 A KR1020210049779 A KR 1020210049779A KR 20210049779 A KR20210049779 A KR 20210049779A KR 20220143363 A KR20220143363 A KR 20220143363A
Authority
KR
South Korea
Prior art keywords
dialect
protocol
client
message
security
Prior art date
Application number
KR1020210049779A
Other languages
English (en)
Other versions
KR102668919B1 (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 KR1020210049779A priority Critical patent/KR102668919B1/ko
Priority claimed from KR1020210049779A external-priority patent/KR102668919B1/ko
Priority to US17/374,084 priority patent/US20220337626A1/en
Publication of KR20220143363A publication Critical patent/KR20220143363A/ko
Application granted granted Critical
Publication of KR102668919B1 publication Critical patent/KR102668919B1/ko

Links

Images

Classifications

    • 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/08Protocols for interworking; Protocol conversion
    • 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/0869Network architectures or network communication protocols for network security for authentication of entities for achieving mutual authentication
    • 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/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
    • 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/0435Network 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 wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • 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/0485Networking architectures for enhanced packet encryption processing, e.g. offloading of IPsec packet processing or efficient security association look-up
    • 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/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • 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/0823Network architectures or network communication protocols for network security for authentication of entities using certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above 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/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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Power Engineering (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법이 개시된다. 일 실시예에 따른 보안을 위한 프로토콜 다이얼렉트 방법은, 클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 단계; 및 상기 수신된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 단계를 포함할 수 있다.

Description

네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법{PROTOCOL DIALECT FOR NETWORK SYSTEM SECURITY}
아래의 설명은 클라이언트와 서버 간 상호인증을 수행하는 네트워크에 연결된 컴퓨팅 시스템을 보호하기 위한 기술에 관한 것이다.
TLS(Transport Layer Security) 또는 SSL(Secure Sockets Layer)은 인터넷 통신 보안을 제공하는 암호화 보안 프로토콜들이다. 이들은 인증 및 키 교환을 위해서 비대칭 암호화 기법을 이용하고, 기밀성을 위해서 대칭 암호화 기법을 이용할 수 있다. 특히, TLS는 RFC 5246 및 RFC 6176 등에서 정의된 IETF 표준 프로토콜일 수 있다.
종래에는 클라이언트-서버 컴퓨팅 시스템에서 보안 프로토콜(TLS)을 기반으로 클라이언트와 서버간 통신을 수행할 때에, 보안 프로토콜의 시작 단계에 서버와 클라이언트 간 여러 번의 메시지를 송수신해야 했으며 메시지에 추가되는 필드 등으로 인해 기존 네트워크 스택과의 호환성이 보장되지 않는다는 문제점이 있다.
클라이언트-서버 환경에서 인터넷 프로토콜(IP)을 기반으로 동작하는 다양한 전송 계층(transport layer) 및 응용 계층(application layer) 프로토콜과의 호환성을 유지하면서, 클라이언트의 최초 메시지를 이용하여 프로토콜 다이얼렉트(dialect) 변형을 통해 정상적인 프로토콜 이행 여부를 검증하여 추가적인 보안 기능을 제공하는 방법 및 시스템을 제공할 수 있다.
프로토콜 다이얼렉트 시스템에 의해 수행되는 보안을 위한 프로토콜 다이얼렉트 방법은, 클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 단계; 및 상기 수신된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 단계를 포함할 수 있다.
상기 수신하는 단계는, 상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 이용하여 적어도 하나 이상의 방법을 통해 인증값 또는 패턴 정보를 유도함에 따라 다이얼렉트 적용을 위한 정보를 획득하는 단계를 포함할 수 있다.
상기 수신하는 단계는, 전송 계층 보안(Transport Layer Security; TLS) 프로토콜의 경우, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 상기 클라이언트와 서버 간 사용할 일회용 대칭키를 계산하기 위해 필요한 정보인 클라이언트 랜덤 필드 정보가 설정되고, 상기 설정된 랜덤 필드 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 프로토콜 수행 과정의 실행 여부를 결정하는 단계를 포함할 수 있다.
상기 수신하는 단계는, 전송 계층 보안 프로토콜의 경우, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 상기 클라이언트와 서버 간 사용했던 세션의 재활용 여부를 결정하기 위한 세션 ID 필드 정보가 설정되고, 상기 설정된 세션 ID 필드 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 프로토콜 수행 과정의 실행 여부를 결정하는 단계를 포함할 수 있다.
상기 수신하는 단계는, 전송 계층 보안 프로토콜의 경우, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 상기 클라이언트로부터 선호되는 암호화 알고리즘 제안 필드의 순서 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계를 포함할 수 있다.
상기 수신하는 단계는, IPSec VPN의 경우, 상기 클라이언트와 서버 간 사용할 암호화 키를 결정하기 위하여 IKE(Internet Key Exchange) 메시지가 교환되고, 상기 암호화 키를 결정하기 위해 필요한 정보인 넌스(nonce) 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계를 포함할 수 있다.
상기 수신하는 단계는, IPSec VPN의 경우, 소프트웨어 또는 하드웨어 공급자들이 상기 공급자들의 시스템에서 송수신되는 IKE 메시지를 식별할 수 있도록 공급자 ID(Vendor ID) 페이로드가 정의되고, 상기 정의된 공급자 ID 페이로드를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계를 포함할 수 있다.
상기 수신하는 단계는, IPSec VPN의 경우, IKE 메시지의 페이로드 순서 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계를 포함할 수 있다.
상기 수신하는 단계는, 응용 계층 프로토콜(HyperText Transfer Protocol; HTTP)의 경우, 상기 클라이언트로부터 전송되는 요청 메시지에 포함된 복수 개의 헤더 필드의 순서 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계를 포함할 수 있다.
보안을 위한 프로토콜 다이얼렉트 방법은, 상기 수신하는 단계의 이전에, 상기 클라이언트와 서버 간 공유되는 다이얼렉트 키를 암호학적 함수의 입력 또는 순서 또는 수열을 생성하는 함수의 입력으로 사용하여 획득된 결과값이 상기 수신하는 단계 및 상기 검증하는 단계에서 사용되도록 제공되는 것을 더 포함할 수 있다.
상기 검증하는 단계는, 상기 클라이언트와 서버 간 기 공유된 다이얼렉트 키를 이용하여 획득된 다이얼렉트 적용을 위한 정보를 상기 클라이언트로부터 전송되는 메시지로부터 기대되는 결과와 비교하여 클라이언트가 정상적인 프로토콜을 수행하는지 여부를 검증하는 단계를 포함할 수 있다.
상기 검증하는 단계는, 상기 수신된 메시지 및 상기 수신된 메시지를 포함하는 하위 통신 계층의 메시지 필드를 이용하는 추가적인 보호 기법, 상기 클라이언트와 서버 간 동기화되는 카운터 값을 이용하는 추가적인 보호 기법 또는 통신 프로토콜 및 경로 상의 특징을 이용하여 검증값을 생성하는 추가적인 보호 기법 중 어느 하나를 이용하여 상기 수신된 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 단계를 포함할 수 있다.
상기 검증하는 단계는, 상기 클라이언트와 서버 간 공유된 다이얼렉트 키의 최대 사용 횟수와 현재 사용 횟수를 동기화하여 각각의 프로토콜 다이얼렉트가 적용된 메시지를 일회성으로 생성하는 단계를 포함할 수 있다.
상기 검증하는 단계는, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지의 필드 정보 및 TCP/IP 패킷 헤더 정보의 해시값을 검사하는 단계를 포함할 수 있다.
상기 검증하는 단계는, 신뢰실행환경을 위한 기술을 사용하여 상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 분리하여 보호하는 단계를 포함할 수 있다.
프로토콜 다이얼렉트 시스템에서 수행되는 보안을 위한 프로토콜 다이얼렉트 방법을 실행시키기 위해 컴퓨터 판독 가능한 저장매체에 저장된 컴퓨터 프로그램은, 클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 단계; 및 상기 수신된 프로토콜 다이얼렉트가 적용된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 단계를 포함할 수 있다.
보안을 위한 프로토콜 다이얼렉트 시스템은, 클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 메시지 수신부; 및 상기 수신된 프로토콜 다이얼렉트가 적용된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 검증부를 포함할 수 있다.
상기 프로토콜 다이얼렉트 시스템은, 상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 이용하여 적어도 하나 이상의 방법을 통해 인증값 또는 패턴 정보를 유도함에 따라 다이얼렉트 적용을 위한 정보를 획득하는 유도부를 더 포함할 수 있다.
상기 프로토콜 다이얼렉트 시스템은, 상기 수신된 메시지 및 상기 수신된 메시지를 포함하는 하위 통신 계층의 메시지 필드를 이용하는 추가적인 보호 기법, 상기 클라이언트와 서버 간 동기화되는 카운터 값을 이용하는 추가적인 보호 기법 또는 통신 프로토콜 및 경로 상의 특징을 이용하여 검증값을 생성하는 추가적인 보호 기법 중 어느 하나를 이용하여 상기 수신된 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 보호부를 더 포함할 수 있다.
상기 프로토콜 다이얼렉트 시스템은, 신뢰실행환경을 위한 기술을 사용하여 상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 분리하여 보호하는 키 보호부를 더 포함할 수 있다.
클라이언트로부터 통신 개시 시점에 전송되는 최초의 메시지만을 이용하여 다이얼렉트 변형을 통해 프로토콜 이행 여부를 판단함으로써 데이터의 유출 사고로 이어질 수 있는 잠재적인 보안 취약점의 발생을 방지할 수 있다.
IP 상에서 동작하는 여러 종류의 프로토콜 중 클라이언트가 전송하는 최초의 메시지 중 일부 또는 전부에 프로토콜 다이얼렉트를 자유롭게 설정할 수 있어 시스템의 변경을 최소화하면서 추가적인 인증 계층을 도입하여 보안 리스크를 감소시킬 수 있다.
기 설치된 네트워크 구성의 변경 또한 기존 프로토콜과의 호환성으로 인하여 비용을 최소화할 수 있다.
도 1은 일 실시예에 있어서, 메시지 교환 과정을 설명하기 위한 도면이다.
도 2는 일 실시예에 있어서, 프로토콜 다이얼렉트 시스템의 구성을 설명하기 위한 블록도이다.
도 3은 일 실시예에 있어서, 보안을 위한 프로토콜 다이얼렉트 방법을 설명하기 위한 흐름도이다.
도 4 내지 도 8은 일 실시예에 있어서, 클라이언트에서 메시지에 프로토콜 다이얼렉트를 적용하는 과정을 설명하기 위한 도면이다.
도 9는 일 실시예에 있어서, 클라이언트가 메시지를 생성하는 동작을 설명하기 위한 도면이다.
도 10은 일 실시예에 있어서, 서버에서 메시지를 검증하는 동작을 설명하기 위한 도면이다.
도 11 내지 도 12는 일 실시예에 있어서, 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 동작을 설명하기 위한 도면이다.
도 13은 일 실시예에 있어서, 사전 공유된 다이얼렉트 키를 사용자, 서버 관리 또는 이외의 요소로부터 보호하는 동작을 설명하기 위한 도면이다.
이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.
도 1은 일 실시예에 있어서, 메시지 교환 과정을 설명하기 위한 도면이다.
실시예에서는 클라이언트가 통신 개시 시점에서 서버로 전송하는 최초의 메시지("hello message")에 설정 가능한 필드 또는 메시지 포맷을 정의하는 프로토콜에 프로토콜 다이얼렉트 변형이 일반적으로 적용 가능하다. 이러한 프로토콜의 예로는 IKE(IPSec VPN), TLS/SSL, HTTP 등이 있으며 다른 프로토콜에도 용이하게 적용 가능하다. 추가되는 프로토콜 다이얼렉트 변형은 표준 프로토콜의 명세(specification)와 완벽하게 호환되므로, 종단간 통신 수행자의 소프트웨어 또는 하드웨어 변경을 제외하고 라우터 등 기 설치된 다른 네트워크 구성 요소의 변경이 필요하지 않다.
일례로, 암호화 프로토콜(IKE for IPsec VPN 과 TLS/SSL 등)에 대하여 설명하기로 한다. 암호화 프로토콜은 통신 과정에서 발생할 수 있는 도청, 위변조 등의 침해를 막기 위해 통신 내용에 대한 암호화를 수행한다. 이때, 암호화 작업에 필요한 키(key)는 통신 시작 시점에 핸드셰이크(handshake)라 불리는 서버와 클라이언트 간의 초기화 메시지 교환에 의해 결정될 수 있다. 그러나 통신 과정 또는 그 이후에도 프로토콜을 수행하는 프로그램의 구현 결함 등으로 인해 통신 대상 컴퓨터의 메모리에 저장되어 있는 정보를 무단으로 획득할 수 있는 것과 같은 침해가 발생할 수 있다. 이와 관련해 널리 알려진 사례로 2014년에 TLS의 구현체인 OpenSSL에서 발생한 HeartBleed 등의 취약점이 있다. 이러한 문제를 해결하기 위하여, 실시예에서는 암호화 프로토콜의 핸드셰이크 시작 시점에 적용 가능한 프로토콜 다이얼렉트를 추가하고 서버가 이를 검증함으로써 구현 결함 등을 이용한 악성 행위를 사전에 차단할 수 있다.
다른 예로서, 응용 계층 프로토콜(HTTP 등)에 대하여 설명하기로 한다. HTTP는 응용 계층 프로토콜로서, 클라이언트가 서버에 보내는 요청 메시지의 상단에 서버 측에서 요청 처리에 사용 가능한 여러가지 정보를 가지고 있는 헤더 필드(header field)를 정의한다. 헤더 필드는 클라이언트가 메시지를 전송하는 시점에 설정 가능하며, 실시예에서는 인증 과정을 프로토콜에 추가할 수 있다.
도 1을 참고하면, 왼쪽 도면은 기존 암호화 프로토콜(TLS 등)의 초기화 과정이 완료되기까지 여러 번의 메시지 교환이 필요하며 공격자에게 많은 공격 범위(attack surface)를 드러낸 것이고, 오른쪽 도면은 실시예에서 제안된 기술로서, 메시지 교환의 최초 시점에 인증 과정을 추가하여 공격자의 공격 범위를 최소화한 것을 나타낸 도면이다.
도 2는 일 실시예에 있어서, 프로토콜 다이얼렉트 시스템의 구성을 설명하기 위한 블록도이다.
프로토콜 다이얼렉트 시스템(100)은 보안을 위한 프로토콜 다이얼렉트 방법을 기존의 시스템과 용이하게 결합하기 위해 클라이언트로부터 전달되는 메시지를 이용해 클라이언트를 인증하고 필터링하기 위하여 클라이언트와 서버의 중간에 위치될 수 있다. 이때, 필요한 경우, 서버가 검증을 위해 사용 가능한 데이터가 프로토콜 다이얼렉트 시스템(100)으로 이동될 수 있다.
일례로, 프로토콜 다이얼렉트 시스템(100)은 기존 시스템과 별도로, 독립된 하드웨어와 소프트웨어를 갖춘 형태로 네트워크 구성도의 중간 지점에 위치해 도 3의 보안을 위한 프로토콜 다이얼렉트 전체 동작을 수행할 수 있다. 예를 들면, 프로토콜 다이얼렉트 시스템(100)은 별도로 존재하는 방화벽 또는 라우터 등의 장비와 보호 대상인 서버 시스템 사이에 물리적으로 배치될 수 있다.
다른 예로서, 프로토콜 다이얼렉트 시스템(100)은 기존 시스템 내에 내장된 형태로 구현되어 기존 암호화 프로토콜의 실행 이전에 추가로 실행되어 도 3의 보안을 위한 프로토콜 다이얼렉트 전체 동작을 수행할 수 있다. 또는, 기존 시스템은 보호 대상이 되는 서버 시스템뿐만 아니라 기능을 추가할 수 있는 네트워크 장비 또는 보안 장비 등이 될 수 있다. 예를 들면, 프로토콜 다이얼렉트 시스템(100)이 여러 보안 기능이 통합된 UTM(Unified Threat Management) 장비의 소프트웨어적인 기능 중 일부로 구현되어 도 3의 보안을 위한 프로토콜 다이얼렉트 전체 동작이 수행될 수 있다.
또 다른 예로서, IoT(Internet of Things) 장치의 경우 하드웨어 성능 등의 제약으로 인해 불완전한 보안이 제공되는 경우가 많으나, 이러한 단점을 개선하기 위해 프로토콜 다이얼렉트 시스템(100)이 IoT 장치에 내장된 형태로 구현될 수 있다.
또 다른 예로서, 필요시 기존 클라이언트/서버 시스템의 개선을 보다 용이하게 실시하기 위해, 프로토콜 다이얼렉트 시스템(100)가 정적 또는 동적으로 연결(linking) 가능한 소프트웨어 라이브러리 형태로 제작될 수 있다.
또 다른 예로서, 클라우드 환경 또는 소프트웨어 정의 네트워크(Software Defined Network; SDN) 환경 등에서 사용 가능한 네트워크 기능 가상화(Network Function Virtualization; NFV) 형태로 프로토콜 다이얼렉트 시스템(100)이 구현될 수 있다.
도 3을 참고하면, 서버에서 구현되는 프로토콜 다이얼렉트 시스템을 통해 보안을 위한 프로토콜 다이얼렉트 방법을 설명하기로 한다.
프로토콜 다이얼렉트 시스템(100)의 프로세서는 수신부(210) 및 검증부(220)를 포함할 수 있다. 이러한 프로세서의 구성요소들은 프로토콜 다이얼렉트 시스템에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서 및 프로세서의 구성요소들은 도 3의 보안을 위한 프로토콜 다이얼렉트 방법이 포함하는 단계들(310 내지 320)을 수행하도록 프로토콜 다이얼렉트 시스템을 제어할 수 있다. 이때, 프로세서 및 프로세서의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.
프로세서는 보안을 위한 프로토콜 다이얼렉트 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리에 로딩할 수 있다. 예를 들면, 프로토콜 다이얼렉트 시스템에서 프로그램이 실행되면, 프로세서는 운영체제의 제어에 따라 프로그램의 파일로부터 프로그램 코드를 메모리에 로딩하도록 프로토콜 다이얼렉트 시스템을 제어할 수 있다. 이때, 수신부(210) 및 검증부(220) 각각은 메모리에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(310 내지 320)을 실행하기 위한 프로세서의 서로 다른 기능적 표현들일 수 있다.
단계(310)에서 수신부(210)는 클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신할 수 있다. 수신부(210)는 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 이용하여 적어도 하나 이상의 방법을 통해 인증값 또는 패턴 정보를 유도함에 따라 다이얼렉트 적용을 위한 정보를 획득할 수 있다. 수신부(210)는 전송 계층 보안(Transport Layer Security; TLS) 프로토콜의 경우, 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 클라이언트와 서버 간 사용할 일회용 대칭키를 계산하기 위해 필요한 정보인 클라이언트 랜덤 필드 정보가 설정되고, 설정된 랜덤 필드 정보를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 프로토콜 수행 과정의 실행 여부를 결정할 수 있다. 수신부(210)는 전송 계층 보안 프로토콜의 경우, 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 클라이언트와 서버 간 사용했던 세션의 재활용 여부를 결정하기 위한 세션 ID 필드 정보가 설정되고, 설정된 세션 ID 필드 정보를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 프로토콜 수행 과정의 실행 여부를 결정할 수 있다. 수신부(210)는 전송 계층 보안 프로토콜의 경우, 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 클라이언트로부터 선호되는 암호화 알고리즘 제안 필드의 순서 정보를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용할 수 있다. 수신부(210)는 IPSec VPN의 경우, 클라이언트와 서버 간 사용할 암호화 키를 결정하기 위하여 IKE(Internet Key Exchange) 메시지가 교환되고, 암호화 키를 결정하기 위해 필요한 정보인 넌스(nonce) 정보를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용할 수 있다. 수신부(210)는 IPSec VPN의 경우, 소프트웨어 또는 하드웨어 공급자들이 공급자들의 시스템에서 송수신되는 IKE 메시지를 식별할 수 있도록 공급자 ID(Vendor ID) 페이로드가 정의되고, 정의된 공급자 ID 페이로드를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용할 수 있다. 수신부(210)는 IPSec VPN의 경우, IKE 메시지의 페이로드 순서 정보를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용할 수 있다. 수신부(210)는 응용 계층 프로토콜(HyperText Transfer Protocol; HTTP)의 경우, 클라이언트로부터 전송되는 요청 메시지에 포함된 복수 개의 헤더 필드의 순서 정보를 다이얼렉트 적용을 위한 정보로 사용하여 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용할 수 있다.
단계(320)에서 검증부(220)는 수신된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 수신된 메시지를 검증할 수 있다. 검증부(220)는 클라이언트와 서버 간 기 공유된 다이얼렉트 키를 이용하여 획득된 다이얼렉트 적용을 위한 정보를 클라이언트로부터 전송되는 메시지로부터 기대되는 결과와 비교하여 클라이언트가 정상적인 프로토콜을 수행하는지 여부를 검증할 수 있다. 검증부(220)는 수신된 메시지 및 수신된 메시지를 포함하는 하위 통신 계층의 메시지 필드를 이용하는 추가적인 보호 기법, 클라이언트와 서버 간 동기화되는 카운터 값을 이용하는 추가적인 보호 기법 또는 통신 프로토콜 및 경로 상의 특징을 이용하여 검증값을 생성하는 추가적인 보호 기법 중 어느 하나를 이용하여 수신된 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호할 수 있다. 검증부(220)는 클라이언트와 서버 간 공유된 다이얼렉트 키의 최대 사용 횟수와 현재 사용 횟수를 동기화하여 각각의 프로토콜 다이얼렉트가 적용된 메시지를 일회성으로 생성할 수 있다. 검증부(220)는 클라이언트로부터 통신 개시 시점에 전송되는 메시지의 필드 정보 및 TCP/IP 패킷 헤더 정보의 해시값을 검사할 수 있다. 검증부(220)는 신뢰실행환경을 위한 기술을 사용하여 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 분리하여 보호할 수 있다.
도 4 내지 도 8은 일 실시예에 있어서, 클라이언트에서 메시지에 프로토콜 다이얼렉트를 적용하는 과정을 설명하기 위한 도면이다.
IP 상에서 동작하는 여러 종류의 프로토콜 중 클라이언트가 자신이 전송하는 최초의 메시지 중 일부 또는 전부를 자유롭게 설정할 수 있는 경우에, 최초 메시지에 프로토콜 다이얼렉트가 적용될 수 있다.
클라이언트가 통신을 시작하기 위해 서버로 전송하는 최초의 메시지(이하 "Hello message")에는 여러 필드가 존재하는데, 이러한 필드 중 일부의 내용, 필드가 배열된 순서, 또는 기타 특징을 표준 프로토콜의 명세에 부합되는 한에서 프로토콜 다이얼렉트를 적용하기 위해 메시지가 수정될 수 있다.
이때, 다이얼렉트 적용을 위한 정보는 사전에 클라이언트와 서버 간에 공유된 다이얼렉트 키로부터 인증값 또는 패턴이 유도됨에 따라 획득될 수 있다. 하기에서 설명되는 예시 방법의 동작이 하나만이 사용될 수도 있고, 또는 여럿을 동시에 적용될 수도 있다. 이때, 다이얼렉트 메시지에 대한 통신 경로상의 외부 요소(공격자)가 재사용 공격 등의 침해를 시도하는 것을 방지하기 위해, 다이얼렉트 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 동작이 수행될 수도 있다.
일례로, 전송 계층 보안(Transport Layer Security; TLS) 프로토콜의 경우, 클라이언트가 통신 개시(시작) 시점에 전송하는 메시지(ClientHello 메시지)에 클라이언트와 서버 간 사용할 일회성 대칭키(세션키)를 계산하기 위해 필요한 정보인 클라이언트 랜덤 필드 정보가 설정될 수 있다. 랜덤 필드 정보(값)는 원래 세션키를 계산하기 위한 정보로만 사용되었다. 실시예에서는 설정된 랜덤 필드 정보가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 프로토콜 수행 과정의 실행 여부(클라이언트 인증 등)가 결정될 수 있다. 도 4를 참고하면, TLS 헬로 메시지의 구성에 클라이언트 랜덤 필드 정보와 암호화 선호도 필드 정보가 적용된 결과를 확인할 수 있다.
다른 예로서, 전송 계층 보안 프로토콜의 경우, 클라이언트로부터 통신 개시 시점에 전송되는 메시지(ClientHello 메시지)에 클라이언트와 서버 간 사전에 사용했던 세션의 재활용 여부를 결정하기 위한 세션 ID 필드 정보가 설정될 수 있다. 세션 ID 필드 정보(값)은 원래 세션의 재활용 여부를 결정하기 위해서만 사용되었다. 실시예에서는 설정된 세션 ID 필드 정보가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 프로토콜 수행 과정의 실행 여부(클라이언트 인증 등)가 결정될 수 있다. 도 5를 참고하면, TLS 헬로 메시지의 구성에 세션 ID 필드 정보와 암호화 알고리즘 선호도 필드 정보가 적용된 결과를 확인할 수 있다.
또 다른 예로서, 전송 계층 보안 프로토콜의 경우, 메시지(ClientHello 메시지)에는 송신자가 지정 가능한 암호화 알고리즘 제안 필드 정보가 존재한다. 암호화 알고리즘 제안 필드 정보에는 여러 암호화 알고리즘이 송신자가 선호하는 순서대로 나열되어 있다. 암호화 알고리즘 제안 필드의 순서 정보는 기존에는 단순한 선호도 순서를 의미했다. 실시예에서는 클라이언트로부터 선호되는 암호화 알고리즘 제안 필드의 순서 정보가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 클라이언트 인증이 적용될 수 있다.
또 다른 예로서, 다른 암호화 프로토콜인 IPSec VPN 의 경우, 클라이언트와 서버 간 사용할 암호화 키를 결정하기 위해 IKE(Internet Key Exchange) 메시지가 교환될 수 있다. 클라이언트는 암호화 키를 결정하기 위해 필요한 정보인 넌스(nonce) 정보를 메시지에 포함해 서버로 전송할 수 있다. 넌스 정보는 암호화 키 결정 용도로만 사용되었다. 실시예에서는 넌스(nonce) 정보가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 클라이언트 인증이 적용될 수 있다. 도 6을 참고하면, 기존의 IKE 메시지의 구성에 넌스(nonce) 페이로드 값과 필드 순서가 적용된 것(결과)를 확인할 수 있다.
또 다른 예로서, IKE에서는 소프트웨어 또는 하드웨어 공급자들이 자신의 시스템에서 송수신하는 IKE 메시지를 식별할 수 있도록 공급자 ID(Vendor ID) 페이로드가 정의될 수 있다. 페이로드 값은 기존에 공급자의 디버깅과 기능 확장 등의 용도를 위해 사용되었다. 실시예에서는 정의된 공급자 ID 페이로드가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 클라이언트 인증이 적용될 수 있다. 도 7을 참고하면, 기존의 IKE 메시지의 구성에 공급자 ID 페이로드와 필드 순서가 적용된 결과를 확인할 수 있다.
또 다른 예로서, IKE의 각 페이로드는 순서를 클라이언트 측에서 자유롭게 지정할 수 있도록 정의되어 있다. 페이로드 순서 정보는 기존에는 별다른 의미없이 정해졌었다. 실시예에서는 IKE 메시지의 페이로드 순서 정보가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 클라이언트 인증이 적용될 수 있다. 다시 말해서, 서버는 IKE 메시지의 각 페이로드가 배열된 순서를 클라이언트 인증용 비밀키와 같은 역할을 하는 정보로서 활용할 수 있다.
또 다른 예로서, 응용 계층 프로토콜(HyperText Transfer Protocol; HTTP)의 경우, 클라이언트가 전송하는 매 요청 메시지의 상단에 여러 헤더 필드가 포함되어 있다. 클라이언트로부터 전송되는 요청 메시지에 포함된 복수 개의 헤더 필드의 순서 정보가 다이얼렉트 적용을 위한 정보로 사용되어 클라이언트의 통신 개시 시점의 가장 초기에 클라이언트 인증이 적용될 수 있다. 도 8을 참고하면, 기존의 HTTP 메시지의 헤더 구성에 이러한 헤더 필드 순서 정보가 적용된 결과를 확인할 수 있다.
도 9는 일 실시예에 있어서, 클라이언트에서 메시지를 생성하는 동작을 설명하기 위한 도면이다.
클라이언트는 메시지 중 일부 또는 전부에 프로토콜 다이얼렉트를 적용할 수 있다. 이때, 클라이언트는 도 4 내지 도 8에서 설명한 방법에 의하여 프로토콜 다이얼렉트가 적용된 초기 메시지("hello message") 또는 요청 메시지를 서버로 전송할 수 있다. 클라이언트는 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 서버로 전송할 수 있다.
도 9를 참고하면, 클라이언트가 헬로다이얼렉트(HelloDialect)(1) 메시지를 생성하는 것을 나타낸 것이다. 원본 패킷에 대하여 사전에 클라이언트와 서버 간 공유된 다이얼렉트 키로부터 인증값 또는 패턴을 유도하는 동작(3)과 다이얼렉트 메시지를 통신 경로 상의 외부 요소 및 공격자로부터 보호하는 동작(4)으로부터 획득된 정보가 포함된 변형 패킷으로 생성될 수 있고, 생성된 변경 패킷이 서버로 전송될 수 있다.
도 10은 일 실시예에 있어서, 서버에서 메시지를 검증하는 동작을 설명하기 위한 도면이다.
서버는 클라이언트로부터 프로토콜 개시 시점에 프로토콜 다이얼렉트가 적용된 메시지를 수신할 수 있다. 서버는 수신된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 수신된 메시지를 검증할 수 있다.
도 10을 참고하면, 서버가 헬로다이얼렉트(HelloDialect) 메시지를 검증(2)하는 것을 나타낸 것이다. 서버는 클라이언트로부터 수신된 패킷에 대하여 사전에 클라이언트와 서버 간 공유된 다이얼렉트 키로부터 인증값 또는 패턴을 유도하는 동작(3)과 다이얼렉트 메시지를 통신 경로 상의 외부 요소 및 공격자로부터 보호하는 동작(4)으로부터 획득된 정보와 비교하여, 프로토콜 이후의 과정을 진행할 것인지 여부를 결정할 수 있다.
사전에 클라이언트와 서버 간 공유된 다이얼렉트 키로부터 인증값 또는 패턴을 유도하는 동작(3)에 대하여 설명하기로 한다. 프로토콜의 개시 시점에 메시지에 프로토콜 다이얼렉트(dialect)를 적용하는 동작과 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 메시지를 검증하는 과정에서 사용될 값 또는 정보를 생성하기 위하여 클라이언트와 서버 간 공유된 다이얼렉트 키가 사용될 수 있다.
일례로, 사전 공유된 키가 HMAC과 같은 암호학적 함수의 입력으로 사용됨에 따라 획득되는 결과값이 프로토콜의 개시 시점에 메시지에 프로토콜 다이얼렉트(dialect)를 적용하는 과정과 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 메시지를 검증하는 과정에서 사용될 수 있다. 침해자는 사전 공유된 키를 비롯한 입력 데이터를 알지 못하는 이상, 결과값을 쉽게 예측할 수 없으므로 정상적인 프로토콜 다이얼렉트 통신을 수행할 수 없게 된다.
다른 예로서, 사전 공유된 키가 순서 또는 수열을 생성하는 함수의 입력으로 사용됨에 따라 획득되는 결과값이 프로토콜의 개시 시점에 메시지에 프로토콜 다이얼렉트(dialect)를 적용하는 과정과 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 메시지를 검증하는 과정에서 사용될 수 있다.
도 11 내지 도 12는 일 실시예에 있어서, 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 동작을 설명하기 위한 도면이다.
서버와 클라이언트 간에 전송되는 다이얼렉트 메시지 자체에 대한 침해를 방지하기 위해, 실시예에서 추가적인 보호 기법이 도입될 수 있다. 이때, 다이얼렉트 메시지란, 클라이언트로부터 프로토콜 다이얼렉트가 적용된 메시지를 의미할 수 있다. 추가적인 보호 기법에는 다이얼렉트 메시지 및 다이얼렉트 메시지를 포함하는 하위 통신 계층의 메시지 필드를 이용하는 방법, 클라이언트와 서버 간의 동기화되는 카운터 값을 이용하는 방법, 또는 그 외 통신 프로토콜 및 경로상의 특징을 이용해서 침해자가 임의로 조작하기 어려운 검증값을 생성하는 방법 등을 포함할 수 있다.
일례로, 서버와 클라이언트 통신 경로 사이에 있는 공격자가 클라이언트로부터 전송되는 다이얼렉트 메시지를 그대로 저장해 둔 후, 추후에 그 내용을 그대로 서버에 전달해 자신이 올바른 클라이언트인 것으로 위장하는 재사용 공격이 발생할 수 있다. 이를 방지하기 위해, 실시예에서는 서버와 클라이언트 간에 다이얼렉트 키의 최대 사용 횟수와 현재 사용 횟수를 동기화해 각각의 다이얼렉트 메시지가 일회성으로 생성될 수 있다.
다른 예로서, 통신 경로상의 공격자가 다이얼렉트 메시지 일부(예를 들어, IP 주소)를 변조해 공격자가 올바른 클라이언트인 것처럼 위장한 후 통신을 가로채는 것을 방지하기 위해 헬로 메시지(hello message)의 필드 및 TCP/IP 패킷 헤더 등의 해시값을 검사하는 방법을 프로토콜의 개시 시점에 메시지에 프로토콜 다이얼렉트(dialect)를 적용하는 과정, 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 메시지를 검증하는 과정 및 사전에 클라이언트와 서버 간 공유된 다이얼렉트 키로부터 인증값 또는 패턴을 유도하는 과정에 포함할 수 있다.
도 11을 참고하면, 통신 경로 상의 침해자가 프로토콜 다이얼렉트가 적용된 패킷을 복사해 저장한 이후, 침해자의 IP 주소/포트(Port) 번호를 대신 끼워넣어 다이얼렉트 메시지(HelloDialect)의 보호를 우회하는 침해를 방지하기 위해 앞서 설명된 추가적인 보호 기법(예시)이 적용될 수 있다.
도 12를 참고하면, 침해자는 복사한 패킷에 자신의 IP 주소를 대신 끼워넣어 다이얼렉트 메시지(HelloDialect)를 우회하고자 시도하나, 위조된 패킷의 해시값은 서버가 기대하는 해시값과 다르기 때문에 침해가 탐지될 수 있다.
도 13은 일 실시예에 있어서, 사전 공유된 다이얼렉트 키를 사용자, 서버 관리 또는 이외의 요소로부터 보호하는 동작을 설명하기 위한 도면이다.
각각의 과정을 수행하는 프로그램 및 데이터가 이외의 다른 요소(관리적 또는 기술적 결함 등) 의해 노출되지 않도록 보호하기 위한 추가적인 방식을 프로토콜의 개시 시점에 메시지에 프로토콜 다이얼렉트를 적용하는 동작, 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 메시지를 검증하는 동작 및 사전에 클라이언트와 서버 간 공유된 다이얼렉트 키로부터 인증값 또는 패턴을 유도하는 동작, 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 동작에 결합할 수 있다. 구체적으로, 중앙처리장치(CPU)의 제조사에서 제공되는 신뢰실행환경(Trusted Execution Environment; TEE)을 위한 기술을 사용해 시스템 내의 운영체제 또는 다른 요소와 격리된 환경에서 실시예를 위한 프로그램과 데이터를 저장 및 연산할 수 있다.
이를 활용해 실시예에서 적용되는 기기의 소유자 또는 관리자 등 시스템 제어 권한을 가진 제 3자가 본 발명을 사용하는 사람과 다른 경우에도 다이얼렉트 키 및 실시예를 구현한 소프트웨어 등이 해당 제 3자에게 노출되지 않도록 보호할 수 있다. 예를 들면, 인텔 사의 SGX(Software Guard Extension) 또는 ARM사의 TrustZone 등을 사용해 실시예가 적용된 기기의 다른 요소(신뢰할 수 없는 기기 관리자, 신뢰할 수 없는 운영 체제 및 기타 소프트웨어 등)와 분리해 다이얼렉트와 관련된 정보를 보호할 수 있다.
도 13을 참고하면, 침해자가 프로토콜 다이얼렉트 시스템을 장악하지 못했을 경우, 실시예에서 서술된 과정에서 사용되는 사전 공유된 키 등의 정보가 유출될 수 없다. 그러나, 관리적 또는 기술적 결함 등을 악용한 침해자가 프로토콜 다이얼렉트 시스템을 장악한 이후, 사전 공유된 키 등의 정보를 유출할 가능성을 방지하기 위해 SGX(Software Guard Extension) 또는 ARM사의 TrustZone 등을 사용하는 방법이 적용될 수 있다. 중요한 정보는 시스템 상의 다른 요소와 분리되어 보관되므로, 침해자가 결함을 이용하더라도 쉽게 유출할 수 없게 된다.
실시예에 따르면, 상호 사전 인가된 클라이언트와 서버 간에 상호작용을 수행하는 모든 컴퓨팅을 보호하기 위해 일반적으로 활용될 수 있다.
실시예에 따르면, 서버에 접속하는 클라이언트와 사전에 검증을 위한 키나 설정을 공유할 수 있는 경우 사용할 수 있다. 따라서 서버에 접속하고자 하는 요청자의 신원을 미리 파악하기 쉬운 경우에 본 발명을 적용해 추가적인 보호를 제공할 수 있다. 구체적인 예를 들면, 서버의 관리자용 서비스에 접근하고자 하는 클라이언트는 미리 정해진 관리자여야 한다. 일반적인 경우 관리자 인증을 위한 개인키(private key) 파일이나 비밀번호와 같은 방식을 사용하지만, 이러한 방식은 개요에서 설명했듯이 프로토콜 구현 상의 결함이 발생했을 때 인증 과정이 우회되거나 인증에 필요한 정보가 누출될 수 있다. 실시예에서 제안된 기술을 적용한다면 인증 과정의 시작 시점에서 이러한 결함을 공격하는 트래픽을 효과적으로 차단할 수 있다.
실시예에 따르면, 현존하는 프로토콜(IKE for IPSec VPN, TLS/SSL, HTTP(S))에 일반적으로 용이하게 적용될 수 있다.
또한, 인터넷 등 공개된 네트워크뿐만 아니라 기업, 병원, 캠퍼스 등의 내부망 환경에서도 추가적인 보호를 제공하는 데도 용이하게 적용할 수 있다.
또한, 여러가지 제약으로 인해 프로토콜 구현체의 패치나 업데이트가 어려운 환경에서도 추가적인 보안을 제공하는 용도로도 사용될 수 있다. 예를 들어, 저전력 IoT(Internet of Things) 장치의 경우 하드웨어 성능과 네트워크 대역폭 제한 등으로 인해 프로토콜을 구현한 소프트웨어 등을 실시간으로 업데이트하기 어려울 수 있다. 이런 경우, 실시예에서 제안된 기술을 적용하여 장치의 소유자를 인증하는 과정을 추가하여 잠재적인 보안 결함을 보완할 수 있다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, 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), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (20)

  1. 프로토콜 다이얼렉트 시스템에 의해 수행되는 보안을 위한 프로토콜 다이얼렉트 방법에 있어서,
    클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 단계; 및
    상기 수신된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  2. 제1항에 있어서,
    상기 수신하는 단계는,
    상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 이용하여 적어도 하나 이상의 방법을 통해 인증값 또는 패턴 정보를 유도함에 따라 다이얼렉트 적용을 위한 정보를 획득하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  3. 제2항에 있어서,
    상기 수신하는 단계는,
    전송 계층 보안(Transport Layer Security; TLS) 프로토콜의 경우, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 상기 클라이언트와 서버 간 사용할 일회용 대칭키를 계산하기 위해 필요한 정보인 클라이언트 랜덤 필드 정보가 설정되고, 상기 설정된 랜덤 필드 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 프로토콜 수행 과정의 실행 여부를 결정하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  4. 제2항에 있어서,
    상기 수신하는 단계는,
    전송 계층 보안(Transport Layer Security; TLS) 프로토콜의 경우, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 상기 클라이언트와 서버 간 사용했던 세션의 재활용 여부를 결정하기 위한 세션 ID 필드 정보가 설정되고, 상기 설정된 세션 ID 필드 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 프로토콜 수행 과정의 실행 여부를 결정하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  5. 제2항에 있어서,
    상기 수신하는 단계는,
    전송 계층 보안 프로토콜의 경우, 상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지에 상기 클라이언트로부터 선호되는 암호화 알고리즘 제안 필드의 순서 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  6. 제2항에 있어서,
    상기 수신하는 단계는,
    IPSec VPN의 경우, 상기 클라이언트와 서버 간 사용할 암호화 키를 결정하기 위하여 IKE(Internet Key Exchange) 메시지가 교환되고, 상기 암호화 키를 결정하기 위해 필요한 정보인 넌스(nonce) 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  7. 제2항에 있어서,
    상기 수신하는 단계는,
    IPSec VPN의 경우, 소프트웨어 또는 하드웨어 공급자들이 상기 공급자들의 시스템에서 송수신되는 IKE 메시지를 식별할 수 있도록 공급자 ID(Vendor ID) 페이로드가 정의되고, 상기 정의된 공급자 ID 페이로드를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  8. 제2항에 있어서,
    상기 수신하는 단계는,
    IPSec VPN의 경우, IKE 메시지의 페이로드 순서 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  9. 제2항에 있어서,
    상기 수신하는 단계는,
    응용 계층 프로토콜(HyperText Transfer Protocol; HTTP)의 경우, 상기 클라이언트로부터 전송되는 요청 메시지에 포함된 복수 개의 헤더 필드의 순서 정보를 상기 다이얼렉트 적용을 위한 정보로 사용하여 상기 클라이언트의 통신 개시 시점에 클라이언트 인증을 적용하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  10. 제2항에 있어서,
    상기 수신하는 단계의 이전에, 상기 클라이언트와 서버 간 공유되는 다이얼렉트 키를 암호학적 함수의 입력 또는 순서 또는 수열을 생성하는 함수의 입력으로 사용하여 획득된 결과값이 상기 수신하는 단계 및 상기 검증하는 단계에서 사용되도록 제공되는 것을 더 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  11. 제1항에 있어서,
    상기 검증하는 단계는,
    상기 클라이언트와 서버 간 기 공유된 다이얼렉트 키를 이용하여 획득된 다이얼렉트 적용을 위한 정보를 상기 클라이언트로부터 전송되는 메시지로부터 기대되는 결과와 비교하여 클라이언트가 정상적인 프로토콜을 수행하는지 여부를 검증하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  12. 제11항에 있어서,
    상기 검증하는 단계는,
    상기 수신된 메시지 및 상기 수신된 메시지를 포함하는 하위 통신 계층의 메시지 필드를 이용하는 추가적인 보호 기법, 상기 클라이언트와 서버 간 동기화되는 카운터 값을 이용하는 추가적인 보호 기법 또는 통신 프로토콜 및 경로 상의 특징을 이용하여 검증값을 생성하는 추가적인 보호 기법 중 어느 하나를 이용하여 상기 수신된 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  13. 제12항에 있어서,
    상기 검증하는 단계는,
    상기 클라이언트와 서버 간 공유된 다이얼렉트 키의 최대 사용 횟수와 현재 사용 횟수를 동기화하여 각각의 프로토콜 다이얼렉트가 적용된 메시지를 일회성으로 생성하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  14. 제12항에 있어서,
    상기 검증하는 단계는,
    상기 클라이언트로부터 통신 개시 시점에 전송되는 메시지의 필드 정보 및 TCP/IP 패킷 헤더 정보의 해시값을 검사하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  15. 제1항에 있어서,
    상기 검증하는 단계는,
    신뢰실행환경을 위한 기술을 사용하여 상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 분리하여 보호하는 단계
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 방법.
  16. 프로토콜 다이얼렉트 시스템에서 수행되는 보안을 위한 프로토콜 다이얼렉트 방법을 실행시키기 위해 컴퓨터 판독 가능한 저장매체에 저장된 컴퓨터 프로그램에 있어서,
    상기 컴퓨터 프로그램은,
    클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 단계; 및
    상기 수신된 프로토콜 다이얼렉트가 적용된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 단계
    를 포함하는 컴퓨터 판독 가능한 저장매체에 저장된 컴퓨터 프로그램.
  17. 보안을 위한 프로토콜 다이얼렉트 시스템에 있어서,
    클라이언트로부터 프로토콜의 개시 시점에 프로토콜 다이얼렉트(dialect)가 적용된 메시지를 수신하는 메시지 수신부; 및
    상기 수신된 프로토콜 다이얼렉트가 적용된 메시지에 적용된 프로토콜 다이얼렉트에 기초하여 상기 수신된 메시지를 검증하는 검증부
    를 포함하는 보안을 위한 프로토콜 다이얼렉트 시스템.
  18. 제17항에 있어서,
    상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 이용하여 적어도 하나 이상의 방법을 통해 인증값 또는 패턴 정보를 유도함에 따라 다이얼렉트 적용을 위한 정보를 획득하는 유도부
    를 더 포함하는 보안을 위한 프로토콜 다이얼렉트 시스템.
  19. 제17항에 있어서,
    상기 수신된 메시지 및 상기 수신된 메시지를 포함하는 하위 통신 계층의 메시지 필드를 이용하는 추가적인 보호 기법, 상기 클라이언트와 서버 간 동기화되는 카운터 값을 이용하는 추가적인 보호 기법 또는 통신 프로토콜 및 경로 상의 특징을 이용하여 검증값을 생성하는 추가적인 보호 기법 중 어느 하나를 이용하여 상기 수신된 메시지를 통신 경로상의 외부 요소 및 공격자로부터 보호하는 보호부
    를 더 포함하는 보안을 위한 프로토콜 다이얼렉트 시스템.
  20. 제17항에 있어서,
    신뢰실행환경을 위한 기술을 사용하여 상기 클라이언트와 서버 간에 기 공유된 다이얼렉트 키를 분리하여 보호하는 키 보호부
    를 더 포함하는 보안을 위한 프로토콜 다이얼렉트 시스템.
KR1020210049779A 2021-04-16 2021-04-16 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법 KR102668919B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020210049779A KR102668919B1 (ko) 2021-04-16 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법
US17/374,084 US20220337626A1 (en) 2021-04-16 2021-07-13 Protocol dialect scheme for security in system connected to network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210049779A KR102668919B1 (ko) 2021-04-16 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법

Publications (2)

Publication Number Publication Date
KR20220143363A true KR20220143363A (ko) 2022-10-25
KR102668919B1 KR102668919B1 (ko) 2024-05-27

Family

ID=

Also Published As

Publication number Publication date
US20220337626A1 (en) 2022-10-20

Similar Documents

Publication Publication Date Title
CN114553568B (zh) 一种基于零信任单包认证与授权的资源访问控制方法
JP6965921B2 (ja) ネットワーク機能仮想化システム及び検証方法
US8875240B2 (en) Tenant data center for establishing a virtual machine in a cloud environment
Pradhan et al. Solutions to vulnerabilities and threats in software defined networking (SDN)
JP5860815B2 (ja) コンピューターポリシーを施行するためのシステムおよび方法
US20160072787A1 (en) Method for creating secure subnetworks on a general purpose network
Lee et al. maTLS: How to Make TLS middlebox-aware?
US20090064292A1 (en) Trusted platform module (tpm) assisted data center management
CN112671779B (zh) 基于DoH服务器的域名查询方法、装置、设备及介质
Kumar et al. Performance analysis of sdp for secure internal enterprises
O'Neill et al. {TrustBase}: An architecture to repair and strengthen certificate-based authentication
CN115277168B (zh) 一种访问服务器的方法以及装置、系统
JP2022512352A (ja) リダイレクションを含むタイムスタンプベースの認証
US20160085973A1 (en) Method and apparatus for providing provably secure user input/output
Xia et al. Using secure coprocessors to protect access to enterprise networks
US10313305B2 (en) Method of unblocking external computer systems in a computer network infrastructure, distributed computer network having such a computer network infrastructure as well as computer program product
CN106576050B (zh) 三层安全和计算架构
Tutubala et al. A hybrid framework to improve data security in cloud computing
KR102668919B1 (ko) 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법
Paladi et al. Bootstrapping trust in software defined networks
KR20220143363A (ko) 네트워크에 연결된 시스템의 보안을 위한 프로토콜 다이얼렉트 기법
Anderson Securing embedded linux
US11695799B1 (en) System and method for secure user access and agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11711396B1 (en) Extended enterprise browser blocking spread of ransomware from alternate browsers in a system providing agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links
US11757934B1 (en) Extended browser monitoring inbound connection requests for agentless lateral movement protection from ransomware for endpoints deployed under a default gateway with point to point links

Legal Events

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