KR20210127971A - DoS 공격에 대항하는 계산 퍼즐 - Google Patents
DoS 공격에 대항하는 계산 퍼즐 Download PDFInfo
- Publication number
- KR20210127971A KR20210127971A KR1020217029537A KR20217029537A KR20210127971A KR 20210127971 A KR20210127971 A KR 20210127971A KR 1020217029537 A KR1020217029537 A KR 1020217029537A KR 20217029537 A KR20217029537 A KR 20217029537A KR 20210127971 A KR20210127971 A KR 20210127971A
- Authority
- KR
- South Korea
- Prior art keywords
- puzzle
- node
- network
- solution
- received
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/12—Transmitting and receiving encryption devices synchronised or initially set up in a particular manner
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3236—Cryptographic 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/3242—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/141—Denial of service attacks against endpoints in a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2463/00—Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
- H04L2463/144—Detection or countermeasures against botnets
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
컴퓨터 네트워크에서 데이터를 송신하는 방법이 제공되고, 방법은, 네트워크의 제 1 노드에서, 제 1 노드와 구별되는 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐을 수신하는 단계와, 퍼즐 서버 노드와 구별되는 네트워크의 제 2 노드에 메시지를 송신하기 위한 퍼즐의 하나의 해를 결정하는 단계와, 데이터를 제 2 노드에 송신하는 단계 - 송신된 데이터는 메시지와 퍼즐의 결정된 해를 포함함 - 를 포함한다.
Description
본 개시는 통신 네트워크에서의 데이터 통신의 분야에 관한 것으로, 특히, 산업 버스 네트워크(예를 들면, OPC-UA 네트워크) 등의 산업 네트워크에서의 데이터 통신의 분야에 관한 것이다.
산업 필드버스(field bus) 네트워크 등의 컴퓨터 네트워크에서의 데이터 통신 메커니즘은, 종종 대상으로 하는 사용 케이스에 대해 독자적이고 특정적으로 구성되는 데이터 통신 프로토콜에 따라, 일반적으로 네트워크의 2개의 노드 사이에서 시간 임계 분산 제어 데이터(time critical distributed control data)를 포함하는 데이터를 송신 및/또는 수신하는 것을 가능하게 한다.
산업 네트워크는, 종래의 폐쇄형 네트워크였지만, 근래에는, 인터넷 등의 공중 네트워크에 접속되는 관리 노드 또는 네트워크간 통신 노드 등의 노드를 포함하도록 발전하고 있다. 예를 들면, 인터넷에 접속된 PC 운영 시스템을 동작시키는 퍼스널 컴퓨터 플랫폼으로서 구현된 운용 및 관리(O&M) 노드는 네트워크의 운용을 관리하기 위해 이전의 폐쇄형 네트워크에 접속될 수 있다. 다른 예로서, 인터넷에 접속된 PC 운영 시스템을 동작시키는 퍼스널 컴퓨터 플랫폼이, 지리적으로 다른 사이트 상의 폐쇄형 산업 네트워크의 설정을 제어하는데 사용될 수 있다.
따라서, 비 보안 컴퓨터에 접속된 노드를 포함하는 산업 네트워크는 공중 네트워크에 접속된 그들 노드를 통해 서비스 거부(DoS:Denial of Service) 공격 등의 컴퓨터 공격의 대상이 될 수 있다. DoS 또는 고갈 공격(depletion attack)이란, 공격자가 매우 많은 요구를 특정 디바이스(예를 들면, 서버)에 송신하여 그 자원을 고갈시키고, 이는 그 디바이스가 일부의 정당한 요구를 제공하는 것을 할 수 없게 한다.
중요한 시스템에서의 DoS 공격은, 그러한 시스템에서는 정당한 요구의 처리 지연이 매우 급속히 발생할 수 있기 때문에 보다 큰 영향을 줄 우려가 있다. 예를 들면, 실시간 분산 제어에 사용되는 산업 필드버스 시스템은, 산업 프로세스가 양호하게 기능하는 것을 보증하기 위해 각 수신 메시지가 제한 시간 내에 처리되어야 한다는 시간 임계인 시스템이다. 예기치 않은 일련의 메시지의 수신에 의해 유발되는 처리는 중요한 메시지의 처리를 지연시켜, 전체의 처리 기능 부전 또는 대폭적인 성능 악화를 초래할 우려가 있다. 또한 산업 컴퓨터 네트워크에서는, 통상, (디바이스가 배치되는 환경, 제품 수명 및 비용 때문에) 계산 자원이 한정된 하드웨어에 근거하는 디바이스를 포함하는 경우가 매우 많기 때문에, DoS 공격에 대해서 매우 민감할 수 있다.
따라서, 종래기술의 상술한 결점 및 단점 가운데 적어도 일부에 대처하는, 개선된 데이터 통신 방식 및 이를 구현하는 네트워크 노드를 제공할 필요가 있다.
본 주제 개시의 목적은 개선된 데이터 통신 방식과 이를 구현하는 장치를 제공하는 것이다.
본 주제 개시의 다른 목적은, 종래 방식의 상술한 결점 및 단점을 경감하기 위해, 컴퓨터 네트워크, 특히 노드 간에 시간 임계인 데이터 통신을 수행하도록 구성된 컴퓨터 네트워크에서의 개선된 데이터 송신 방식과 이를 구현하는 장치를 제공하는 것이다.
본 주제 개시의 또 다른 목적은, 종래 방식의 상술한 결점 및 단점을 경감하기 위해, 컴퓨터 네트워크, 특히 노드 간에 시간 임계인 데이터 통신을 수행하도록 구성된 컴퓨터 네트워크에서의 개선된 데이터 수신 방식과 이를 구현하는 장치를 제공하는 것이다.
이들 목적 및 다른 이점을 달성하기 위해 본 주제 개시의 목적에 따라 여기서 구체화되어 넓게 설명되는 바와 같이, 본 주제 개시의 한 측면에서는, 컴퓨터 네트워크에서 데이터를 송신하는 방법이 제안된다. 이 방법은, 네트워크의 제 1 노드에서, 제 1 노드와 구별되는 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐을 수신하는 것과, 퍼즐 서버 노드와 구별되는 네트워크제 2 노드에 메시지를 송신하기 위한 퍼즐의 해를 결정하는 것과, 데이터를 제 2 노드에 송신하는 것을 포함하고, 송신된 데이터는 메시지와 퍼즐에 대해 결정된 해를 포함한다.
제안된 방법은, 산업 네트워크에서 그러한 네트워크를 DoS 공격 등의 공격으로부터 보호하기 위해 사용될 수 있는 방식을 유리하게 제공한다.
본 주제 개시의 다른 측면에 따르면, 컴퓨터 네트워크에서 데이터를 송신하기 위해 제안된 방법은, 네트워크의 제 1 노드에서, 제 1 노드와 구별되는 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐의 논스(nonce)를 수신하는 것과, 퍼즐 서버 노드와 구별되는 네트워크의 제 2 노드에 메시지를 송신하기 위한 논스를 이용하여 퍼즐의 적어도 하나의 해를 결정하는 것과, 데이터를 제 2 노드에 송신하는 것을 포함하고, 송신된 데이터는 메시지와 퍼즐의 결정된 해를 포함한다.
본 주제 개시의 또 다른 측면에 따르면, 컴퓨터 네트워크에서 데이터를 수신하는 방법이 제안되고, 이 방법은, 네트워크의 제 2 노드에서, 제 2 노드와 구별되는 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐을 수신하는 것과, 퍼즐 서버 노드와 구별되는 네트워크의 제 1 노드로부터 데이터를 수신하는 것 - 수신된 데이터는 메시지와 퍼즐의 해를 포함함 - 과, 수신된 퍼즐해가 유효한지 여부를 수신된 퍼즐에 근거하여 결정하는 것과, 수신된 퍼즐해가 유효하다고 결정되면, 수신된 메시지에 포함된 요구를 처리하는 것을 포함한다.
본 주제 개시의 또 다른 측면에 따르면, 컴퓨터 네트워크에서 데이터를 수신하는 방법이 제안되고, 이 방법은, 네트워크의 제 2 노드에서, 제 2 노드와 구별되는 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐의 논스를 수신하는 것과, 퍼즐 서버 노드와 구별되는 네트워크의 제 1 노드로부터 데이터를 수신하는 것 - 수신된 데이터는 메시지와 퍼즐의 해를 포함함 - 과, 수신된 퍼즐해가 유효한지 여부를 수신된 논스에 근거하여 결정하는 것과, 수신된 퍼즐해가 유효하다고 결정되면, 수신된 메시지에 포함된 요구를 처리하는 것을 포함한다.
데이터를 수신하기 위해 제안된 방법의 하나 이상의 실시예에서, 제안된 방법은, 수신된 퍼즐해가 유효하지 않다고 결정하면, 수신된 메시지를 폐기하는 것을 더 포함할 수 있다.
제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 컴퓨팅 퍼즐은 암호 퍼즐로 할 수 있다.
제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 논스는 논스값을 포함할 수 있다. 제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 논스값은 퍼즐의 송신 시각에 근거할 수 있다. 제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 논스값은 시각 동기 메시지에 포함된 타임 스탬프 정보에 근거하고 있다.
제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 새로운 퍼즐은 사전 결정된 주기에 따라 주기적으로 수신될 수 있다.
제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 컴퓨터 네트워크에서 시각 동기 정보에 근거하여 취득된 시각값은 수신된 논스와 함께 퍼즐의 파라미터로서 사용될 수 있다.
데이터를 수신하기 위해 제안된 방법의 하나 이상의 실시예에서, 방법은, 수신된 퍼즐해가 컴퓨터 네트워크의 임의의 노드로부터 이미 수신된 것인지 여부를 결정하는 것을 더 포함할 수 있다.
제안된 방법(데이터를 수신하는 방법 및/또는 데이터를 송신하는 방법 중 어느 것이든 상관없음)의 하나 이상의 실시예에서는, 데이터 스트림 식별자는 수신된 논스와 함께 퍼즐의 파라미터로서 사용될 수 있다.
본 주제 개시의 또 다른 측면에서는, 본 주제 개시에서 제안된 바와 같은 방법을 수행하도록 구성되는 컴퓨터 네트워크에서의 네트워크 노드의 프로세서가 제안된다.
본 주제 개시의 또 다른 측면에서는, 프로세서와, 프로세서에 동작 가능하게 연결된 메모리와, 컴퓨터 네트워크 내에서 통신하는 네트워크 인터페이스를 포함하는 장치가 제안되고, 장치는 본 주제 개시에서 제안된 방법을 수행하도록 구성된다.
본 주제 개시의 또 다른 측면에서는, 실행되면, 메모리에 동작 가능하게 연결된 프로세서를 구비하는 장치가 본 주제 개시에서 제안된 방법을 수행하게 하는, 실행 가능 명령으로 인코딩된 비일시적 컴퓨터 판독 가능 매체가 제안된다.
본 주제 개시의 또 다른 측면에서는, 컴퓨터 판독 가능 매체 내에 유형으로(tangibly) 구현된 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 코드는, 컴퓨터 시스템에 제공되어 실행되면, 상기 컴퓨터가 본 주제 개시에서 제안된 방법을 수행하게 하는 명령을 포함하는, 컴퓨터 프로그램 제품이 제안된다. 본 주제 개시의 다른 측면에서는, 여기서 제안된 컴퓨터 프로그램을, 예를 들면, 압축 또는 인코딩을 통해 나타내는 데이터 세트가 제안된다.
본 발명은, 한정하는 것은 아니지만, 프로세스, 장치, 시스템, 디바이스로서 또, 현 시점에서 기존의 어플리케이션 및 이후에 개발될 어플리케이션을 위한 방법으로서 포함하는 수많은 방법에 있어서 구현 및 이용될 수 있는 것이 이해될 것이다. 여기서 개시된 시스템의 이들 및 다른 특유의 특징은 이하의 설명 및 첨부하는 도면으로부터 보다 용이하게 밝혀질 것이다.
첨부하는 명세서와 함께 이하의 도면을 참조하는 것에 의해, 본 주제 개시가 보다 깊게 이해되어고 그 수많은 목적 및 이점이 당업자에게 보다 명백해질 것이다.
도 1a는 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 해시 기반의 퍼즐 방식을 나타내는 도면이다.
도 1b는 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 해시 기반의 퍼즐 방식을 나타내는 도면이다.
도 1c는 클라이언트와 서버 사이의 클라이언트-서버 퍼즐 프로토콜을 나타내는 도면이다.
도 1d는 데이지체인 토폴로지 네트워크에서 파손된 노드에 의해 생성된 네트워크 혼잡을 나타내는 도면이다.
도 2a는 제안된 방법이 하나 이상의 실시예에 따라 적용될 수 있는 예시적인 컴퓨터 네트워크를 나타내는 도면이다.
도 2b는 제안된 방법이 하나 이상의 실시예에 따라 적용될 수 있는 예시적인 컴퓨터 네트워크를 나타내는 도면이다.
도 3a는 하나 이상의 실시예에 따른 예시적인 데이터 송신 방식을 나타내는 도면이다.
도 3b는 하나 이상의 실시예에 따른 예시적인 데이터 수신 방식을 나타내는 도면이다.
도 4는 하나 이상의 실시예에 따른, 퍼즐 조작에 사용될 수 있는 예시적인 사이클을 나타내는 도면이다.
도 5a는 하나 이상의 실시예에 따른 예시적인 데이터 통신 방식을 나타내는 도면이다.
도 5b는 하나 이상의 실시예에 따른 예시적인 데이터 통신 방식을 나타내는 도면이다.
도 6은 하나 이상의 실시예에 따른 예시적인 네트워크 노드를 나타내는 도면이다.
도 1b는 하나 이상의 실시예에 따라 사용될 수 있는 예시적인 해시 기반의 퍼즐 방식을 나타내는 도면이다.
도 1c는 클라이언트와 서버 사이의 클라이언트-서버 퍼즐 프로토콜을 나타내는 도면이다.
도 1d는 데이지체인 토폴로지 네트워크에서 파손된 노드에 의해 생성된 네트워크 혼잡을 나타내는 도면이다.
도 2a는 제안된 방법이 하나 이상의 실시예에 따라 적용될 수 있는 예시적인 컴퓨터 네트워크를 나타내는 도면이다.
도 2b는 제안된 방법이 하나 이상의 실시예에 따라 적용될 수 있는 예시적인 컴퓨터 네트워크를 나타내는 도면이다.
도 3a는 하나 이상의 실시예에 따른 예시적인 데이터 송신 방식을 나타내는 도면이다.
도 3b는 하나 이상의 실시예에 따른 예시적인 데이터 수신 방식을 나타내는 도면이다.
도 4는 하나 이상의 실시예에 따른, 퍼즐 조작에 사용될 수 있는 예시적인 사이클을 나타내는 도면이다.
도 5a는 하나 이상의 실시예에 따른 예시적인 데이터 통신 방식을 나타내는 도면이다.
도 5b는 하나 이상의 실시예에 따른 예시적인 데이터 통신 방식을 나타내는 도면이다.
도 6은 하나 이상의 실시예에 따른 예시적인 네트워크 노드를 나타내는 도면이다.
간결 및 명확하게 예시하기 위해서, 도면은 구성의 일반적인 방법을 나타내고, 기존의 특징 및 기법의 설명 및 세부사항은, 본 발명의 기술된 실시예의 논의를 불필요하게 이해하기 어렵게 하는 것을 피하기 위해 생략될 수 있다. 또한, 도면 내의 요소는 반드시 축척대로 그려져 있지는 않다. 예를 들면, 도면 내의 요소 중 일부 요소의 치수는 본 발명의 실시예를 이해하기 쉽게 하기 위해 다른 요소에 비해 과장될 수 있다. 특정 도면은, 현실 세계의 조건 하이면 지극히 대칭성이 낮고, 정돈되지 않을 가능성이 있는 직선, 뾰족한 각도 및/또는 평행한 평면 등을 갖는 구조가 도시되는 등, 이해를 돕기 위해 이상적으로 도시될 수 있다. 다른 도면에서의 동일한 참조 부호는 동일한 요소를 나타내는 한편, 유사한 참조 부호는 유사한 요소를 나타낼 수 있지만, 반드시 그런 것은 아니다.
부가하여, 본 명세서에서의 교시는 다양한 형태로 구현될 수 있는 것, 및 여기서 개시된 임의의 구체적인 구조 및/또는 기능은 전형적인 것에 지나지 않는 것은 분명할 것이다. 상세하게는, 당업자는 본 명세서에서 개시된 측면이 임의의 다른 측면에 독립적으로 구현될 수 있는 것, 및 몇가지 측면은 다양한 방법으로 조합될 수 있는 것을 이해할 수 있을 것이다.
본 개시는 하나 이상의 예시적인 실시예에 따른 방법, 시스템 및 컴퓨터 프로그램의 기능, 엔진, 블럭도 및 흐름도를 참조하여 이하에 설명된다. 블럭도 및 흐름도의 설명되는 각 기능, 엔진, 블록은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드 또는 임의의 적절한 그 조합으로 구현될 수 있다. 소프트웨어로 구현되는 경우에는, 블럭도 및/또는 흐름도의 기능, 엔진, 블록은, 컴퓨터 프로그램 명령 또는 소프트웨어 코드에 의해 구현될 수 있고, 컴퓨터 프로그램 명령 또는 소프트웨어 코드는 컴퓨터 판독 가능 매체에 기억되거나, 또는 컴퓨터 판독 가능 매체를 거쳐 송신되거나 또는 범용 컴퓨터, 전용 컴퓨터 또는 기계를 제작하는 다른 프로그래머블 데이터 처리 장치 상에 로드될 수 있고, 그것에 의해, 컴퓨터 또는 다른 프로그래머블 데이터 처리 장치 상에서 실행되는 컴퓨터 프로그램 명령 또는 소프트웨어 코드가, 여기서 설명되는 기능을 구현하기 위한 수단을 생성한다.
컴퓨터 판독 가능 매체의 실시예는, 한정되는 것은 아니지만, 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 전송을 용이하게 하는 임의의 매체를 포함하는 컴퓨터 기억 매체 및 통신 매체 모두를 포함한다. 여기서 이용될 때, "컴퓨터 기억 매체"는 컴퓨터 또는 프로세서에 의해 액세스될 수 있는 임의의 물리적인 매체일 수 있다. 부가하여, 《메모리》 및 《컴퓨터 기억 매체"라는 용어는, 한정되는 것은 아니지만, 하드 드라이브, 플래시 드라이브 또는 다른 플래시 메모리 디바이스(예를 들면, 메모리 키, 메모리 스틱, 키 드라이브, SSD 드라이브), CD-ROM 또는 다른 광 스토리지, DVD, 자기 디스크 스토리지 또는 다른 자기적 스토리지 장치, 메모리 칩(들), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거 가능한 프로그래머블 판독 전용 메모리(EEPROM), 스마트 카드, 또는 컴퓨터 프로세서에 의해 판독될 수 있는 명령 또는 데이터 구조의 형태로 프로그램 코드를 반송 또는 기억하기 위해 사용될 수 있는 임의의 다른 적절한 매체, 또는 그 조합 등의, 임의의 타입의 데이터 스토리지 장치를 포함한다. 또, 여러 가지의 형태의 컴퓨터 판독 가능 매체는, 라우터, 게이트웨이, 서버 또는 다른 전송 디바이스를 포함하는 컴퓨터에, 유선(동축 케이블, 파이버, 트위스트 페어, DSL 케이블) 또는 무선(적외선, 무선, 셀룰러, 마이크로파)으로 명령을 송신 또는 반송할 수 있다. 명령은, 한정하는 것은 아니지만, 어셈블리, C, C++, 파이썬, 비주얼 베이직, SQL, PHP 및 JAVA를 포함하는 임의의 컴퓨터 프로그램 언어로 이루어진 코드를 포함할 수 있다.
그 밖에 구체적으로 명시되지 않는 한, 이하의 설명을 통해, 처리, 컴퓨팅, 계산, 결정 등의 용어를 이용하는 논의는, 컴퓨팅 시스템의 레지스터 또는 메모리내의 전자적 양 등의 물리적 양으로서 나타낸 데이터를 조작하거나 또는, 이 데이터를, 컴퓨팅 시스템의 메모리, 레지스터 또는 다른 그러한 정보 스토리지, 전송 또는 표시 장치 내의 물리적인 양과 같이 유사하게 표현된 다른 데이터로 변환하는, 컴퓨터, 또는 컴퓨팅 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 동작 또는 프로세스를 가리키는 것이 이해될 것이다.
본 명세서에서 사용될 때, "구비하다", "포함하다", "가지다"와 같은 용어 및 임의의 그 변형은 비배타적 포함을 포함하는 것을 의도하고, 그것에 의해, 요소의 리스트를 포함하는 프로세스, 방법, 물품 또는 장치는, 반드시 그러한 요소에 한정되는 것은 아니지만, 그러한 프로세스, 방법, 물품 또는 장치에 확실히 열거되거나 고유하지 않은 다른 요소를 포함할 수 있다.
부가하여, 여기서 "예시적"이라는 말은 "일례, 사례 또는 예시로서의 역할을 하는 것"을 의미하도록 사용된다. 여기서 "예시"로서 설명되는 임의의 실시예 또는 설계는 반드시 다른 실시예 또는 설계보다 바람직하거나 유리하다고 해석되어서는 안된다.
본 주제 개시에서, "퍼즐" 및 "컴퓨팅 퍼즐"이라는 용어는 그러한 파생어와 함께, 하나 이상의 파라미터(예를 들면, 논스)를 이용하여 정식화될 수 있는 문제이며, 풀기 위해, 예를 들면, 하나 이상의 알고리즘을 컴퓨터상에서 동작시키는 것에 의해, 프로세서를 구비하는 기계 또는 장치에 의해 수행된 계산을 필요로 하는 문제에 관한 데이터를 나타내기 위해 구별없이 사용될 수 있다.
본 주제 개시에서, "논스"라는 용어는 퍼즐의 해를 결정하기 위해 필요한 컴퓨팅 퍼즐의 파라미터로서 사용되는 데이터를 지정하는데 사용될 것이다. 바람직하게는, 논스는, 퍼즐의 해를 결정하기 위해 사용될 수 있는 프로세서를 구비하는 임의의 장치에 의해 예측 불능으로서 선택될 것이다. 예를 들면, 제안된 방법의 일 실시예에서 사용되는 각 논스는 랜덤 방식으로 적어도 그 일부에 대해 생성 또는 취득될 것이다.
본 주제 개시에서, "암호 퍼즐", "프루프 오브 워크(proof of work) 퍼즐", "클라이언트 퍼즐", "암호문"이라는 용어는 그들의 파생어와 함께, 해의 결정에 암호 함수(예를 들면, 암호화 함수, 해시 함수, 압축 함수)의 사용이 필요한 퍼즐을 나타내기 위해 구별없이 사용할 수 있다.
본 주제 개시에서, "결합된다" 및 "접속된다"라는 용어는 그 파생어와 함께, 2개 이상의 요소가 서로 직접 물리적 또는 전기적으로 접촉하고 있거나, 또는 2개 이상의 요소가 서로 직접 접촉하고 있지 않지만 여전히 서로 협동하거나, 또는 상호작용하는 것을 나타내기 위해 구별없이 사용될 수 있다.
본 주제 개시에서, "페이로드", "페이로드 데이터", "메시지", "패킷", 및 "데이터 패킷"이라는 용어는 구별없이 사용할 수 있고, 노드 사이 또는 국 사이 또는 네트워크에 걸쳐서 전송 또는 송신될 수 있는 데이터 블록, 프로토콜 데이터 유닛 또는 임의의 단위의 데이터를 포함할 수 있다. 패킷은 비트 그룹을 포함할 수 있고, 그룹은, 예를 들면, 하나 이상의 어드레스 필드, 제어 필드 및 데이터를 포함할 수 있다. 데이터 블록은 임의의 단위의 데이터 또는 정보 비트일 수 있다.
본 주제 개시의 목적을 위해, 여기서 "서버"라는 용어는 처리, 데이터베이스 및 통신의 설비를 제공하는 서비스 포인트를 가리키도록 사용된다. 일례이며, 한정하는 것은 아니지만, "서버"라는 용어는, 관련된 통신, 데이터 스토리지 및 데이터베이스의 설비를 갖는 단일의 물리적인 프로세서를 가리킬 수 있고, 또는 서버에 의해 제공된 서비스를 지원하는 운영 소프트웨어, 및 하나 이상의 데이터베이스 시스템 및 어플리케이션 소프트웨어뿐만 아니라, 프로세서 관련 네트워크 및 스토리지 장치의 네트워크화된 또는 클러스터화된 복합체를 가리킬 수 있다. 서버는, 구성 또는 능력에 있어 크게 다를 수 있지만, 일반적으로 서버는 하나 이상의 중앙 처리 장치 및 메모리를 포함할 수 있다. 또, 서버는 하나 이상의 대용량 스토리지 장치, 하나 이상의 전원, 하나 이상의 유선 또는 무선 네트워크 인터페이스, 하나 이상의 입력/출력 인터페이스, 또는 Windows Server, Mac OS X, Unix, Linux, FreeBSD 등의 하나 이상의 운영 시스템을 포함할 수도 있다.
본 주제 개시의 경우에, "컴퓨터 네트워크"는, 예를 들면, 무선 네트워크를 통해 결합된 무선 디바이스 사이를 포함한, 디바이스 사이에 데이터 통신이 발생할 수 있도록, 디바이스(본 명세서에서, "노드"라고도 불림)를 결합할 수 있는 네트워크를 가리키는 것이라고 이해될 것이다. 또, 네트워크는, 네트워크 접속형 스토리지(NAS), 스토리지 에리어 네트워크(SAN), 또는 예를 들면, 다른 형태의 컴퓨터 또는 기계 가독 매체 등의 대용량 스토리지를 포함할 수 있고, 서버를 포함하거나, 또는 서버에 접속될 수 있다. 네트워크는 인터넷, 하나 이상의 근거리 통신망(LAN), 하나 이상의 광역 통신망(WAN), 유선 타입 접속, 무선 타입 접속, 통신사 전화선 등의 셀룰러, 광 섬유, 동기 광 네트워크, 동기 디지털 계층 링크, 전력선 통신 링크(예를 들면, IEEE 61334, IEEE P1901.2), 이더넷, 블루투스, 저전력 블루투스(BLE) 또는 블루투스 스마트, WiFi 또는 IEEE802.11x 프로토콜에 근거하는 임의의 접속, ZigBee 또는 IEEE802.15.4 프로토콜에 근거하는 임의의 접속, Z-Wave, 6LowPAN(IPv6 저전력 무선 퍼스널 에리어 네트워크), Thread, Sigfox, Neul, LoRa, 임의의 NFC 접속, 2G(GSM/GPRS/EDGE를 포함함)/3G(UMTS/HSPA를 포함함)/4G(LTE 및 LTE 어드밴스드를 포함함)/5G 셀룰러, 또는 그 임의의 조합을 포함할 수 있다. 네트워크에서 사용되는 다른 구조 또는 프로토콜에 대한 상호 운용 능력을 제공하기 위해서, 여러 가지의 타입의 디바이스, 예를 들면, 게이트웨이가 이용 가능할 수 있다. 본 주제 개시에 따르면, 컴퓨터 네트워크에서, 임의의 수의 노드, 디바이스, 장치, 링크, 상호 접속 등이 사용될 수 있다.
통신 링크 또는 채널은, 예를 들면, 아날로그 전화 회선, 완전한, 또는 부분적인 디지털 회선, 위성 링크를 포함한 무선 링크, 또는 당업자에게 공지일 수 있는 등의 다른 통신 링크 또는 채널을 포함할 수 있다.
네트워크의 컴퓨팅 디바이스, 예를 들면, 센서 노드 또는 액츄에이터 노드는, 유선 또는 무선 네트워크를 거치는 등, 신호를 송신 또는 수신하는 능력이 있을 수 있고, 및/또는 데이터를 처리 및/또는 기억하는 능력이 있을 수 있다.
본 주제 개시의 실시예는 여러가지 적용예에 사용될 수 있고, 한정하는 것은 아니지만, 특히, 잠재적으로 다수의 센서가 다른 장소(예를 들면, 공장 또는 원자력 발전소 시설)에서의 물리적 또는 환경적 조건을 협조해 모니터링하는 산업 버스 등의 산업 네트워크 또는 센서 네트워크에서 사용될 수 있는 것이 이해될 것이다. 본 주제 개시는 이 점에 한정되지 않지만, 여기서 개시된 방법은, 예를 들면, 임의의 LLN 네트워크, 임의의 데이지체인 토폴로지 네트워크, 임의의 차량 버스 네트워크, 임의의 멀티홉 시스템, 예를 들면, 메쉬 네트워크, 임의의 사물 인터넷(IoT) 네트워크 또는 시스템, 임의의 머신투머신(M2M) 네트워크 또는 시스템, 예를 들면, 센서 네트워크 등의 스마트 오브젝트 네트워크, 또는 그 임의의 조합 등의, 여러 가지의 토폴로지를 갖는 수많은 타입의 컴퓨터 네트워크에서 사용될 수 있고, 예를 들면, 루트 노드, 게이트웨이 노드, 센서 노드, 액츄에이터 노드 등의 컴퓨터 네트워크의 임의의 네트워크 노드 내, 또는 컴퓨터 네트워크에 접속되거나, 또는 컴퓨터 네트워크 내에 포함된 임의의 서버 내 등의 수많은 장치 내에서 사용될 수 있다.
제안된 방법은, 유리하게는, 중요한 타이밍 제약 및 보안 제약을 갖는 단방향 데이터 흐름을 이송하는 통신 시스템에 활용될 수 있다. 특히, 메시지 암호화 및 인증 지원을 갖는 이더넷에 근거한 새롭게 개발된 산업 제어 네트워크(OPC-UA PubSub 등)는 일부의 잠재적인 서비스 거부 공격으로부터 보호를 받을 필요가 있다. 암호화 및 메시지 인증 메커니즘이 다수의 위협에 대처해도, 그러한 메커니즘은 실시형태(하드웨어 및 소프트웨어) 때문에 DoS 공격에 여전히 취약할 수 있다. 실제로, 인증 메커니즘은 컴퓨팅 자원을 필요로 하고, 소모 공격을 받을 수 있다. 본 주제 개시는, 유리하게는, 적은 계산 자원을 이용하여 하드웨어 플랫폼 상에서의 DoS 공격의 완화를 가능하게 하고, 따라서 네트워크 보안을 유지하면서 네트워크에서의 비용 삭감이 가능하게 된다.
클라이언트 암호법 퍼즐은, 서비스 거부 공격에 대한 대항책으로서 컴퓨터 네트워크에 도입되어 왔다. 클라이언트/서버 모델에서, 클라이언트 퍼즐은 클라이언트로부터의 요구를 수신하면, 서버에 의해 클라이언트에 제기되는 계산 가능한 암호 문제이다. 서버가 클라이언트의 요구를 처리하는 조건에 따라, 클라이언트는 이 문제를 풀어 해를 서버에 제공해야 한다. 서버측에서는, 클라이언트에 의해 제공된 해가 최초로 신속히 검증되어 해가 올바른지 여부가 확인되고, 수신된 해가 올바른 경우에만, 클라이언트로부터 이전에 수신된 요구가 처리된다. 클라이언트 암호법 퍼즐 방식의 양호한 효율성을 확보하기 위해서, 퍼즐은 통상 퍼즐 문제를 푸는데 필요하게 되는 자원(계산 자원 및 메모리 자원)이 해의 올바름을 검증하는데 필요한 자원보다 훨씬 많아지도록 설계된다. 따라서, 정당한 클라이언트는 요구를 서버에 제출하는데 소량의 추가 계산밖에 경험하지 않는데 비해, 공격자는 충분한 요구를 생성하기 위해서 많은 계산 자원에 액세스하여 서버의 성능에 큰 영향을 주는 DoS 공격을 작성해야 한다. 제기되는 문제는 통상 서버의 비밀값 또는 논스값, 시각, 및 추가의 클라이언트 특정 정보를 사용하여 정식화된다.
바람직하게는, 퍼즐해는 클라이언트 또는 도청 디바이스에 의한 리플레이가 가능하지 않도록 고유해야 한다.
또한, 퍼즐은, 클라이언트가 방어 서버로부터 수신되는 퍼즐을 예측할 수 없게 설계하는 것이 바람직할 것이다. 이와 같이, 클라이언트는 퍼즐해를 미리 계산할 수 없다.
퍼즐의 복잡도는 서버의 스트레스에 따라, 그러므로, 공격의 강도에 따라 조정될 수도 있다.
다양한 클래스(타입)의 퍼즐이 DoS 공격 등의 공격에 대처하기 위해서 제안되고 있는데, 그 중에, CPU 바운드 퍼즐의 클래스는 클라이언트 퍼즐 중 가장 큰 클래스이다.
예를 들면, 이른바 "해시 기반의 퍼즐"의 해를 계산하는 것은 통상 암호 해시 함수를 수반하는 계산의 수행을 필요로 한다.
해시 기반의 퍼즐 방식의 하나의 예에 따르면, 해시를 역변환한 것의 일부분을 클라이언트에 제공할 수 있어, 클라이언트가 브루트포스(brute force)에 의해(즉, 랜덤 시도를 사용하여) 퍼즐을 풀 수 있도록, 즉, 역해시의 나머지의 부분을 찾아낼 수 있게 한다. 도 1a에 나타내는 바와 같이, 퍼즐 P는 길이 n비트의 비트스트링 X의 일부분(n-k비트:X<k+1 … n>)에 비트스트링 Y와 함께 존재할 수 있고, 여기서, Y는 비트스트링 X의 해시값이다. 퍼즐 P의 해는, X의 해시값이 Y와 동일하도록 고유하다고 가정될 수 있는 X(X<1 … k>)의 결핍된 k비트에 존재한다.
도 1b에 나타내는 해시 기반의 퍼즐 방식의 다른 예에서는, 퍼즐 P는, 길이 n비트의 비트스트링 X의 일부분(n-k비트:X<k+1 … n>)에 존재할 수 있고, 비트의 수 l은 비트스트링 Y의 선두에서는 0과 동일하고, Y는 비트스트링 X의 해시값이다. 퍼즐 P의 해는, 해시값 Y의 최하위 비트가 0과 동일하다는 조건에 따르면서 브루트포스에 의해 결정될 수 있는 X의 결핍 부분에 존재한다.
도 1c는 클라이언트(10)와 서버(11) 사이의 통상의 클라이언트-서버 퍼즐 프로토콜을 나타내고 있다.
클라이언트-서버 클라이언트 퍼즐 프로토콜 방식에서, 클라이언트는, 퍼즐을 수신하기 위해 최초로 서버와 접촉해 요구를 행하고, 이 요구가 처리되기 전에 퍼즐을 풀어야 한다. 도 1c에 나타내는 바와 같이, 클라이언트(10)는 최초로 요구를 서버(11)에 송신한다(12). 서버(11)는, 요구를 수신하면, 퍼즐 P를 작성하고(13), 퍼즐 P를 클라이언트(10)에 송신한다(14). 클라이언트(10)는, 퍼즐 P를 수신하면, 퍼즐 P의 해 S를 계산하고(15), 그러한 해 S를 서버(11)에 송신한다(16). 서버(11)는, 해 S를 수신하면, 이 해를 확인하고(17), 해 S가 올바른 경우에, 서버(11)는 클라이언트(10)로부터 최초로 수신된 요구를 실행한다(18).
도 1c를 보고 알 수 있는 바와 같이, 클라이언트-서버 클라이언트 퍼즐 프로토콜 방식은, 클라이언트와 서버 사이의 몇개의 퍼즐에 관한 메시지의 교환을 수반한다. 이것은 클라이언트 요구를 실행하는 네트워크 지연의 증가를 초래한다. 또한, 클라이언트-서버 클라이언트 퍼즐 프로토콜 방식은 브로드캐스트 또는 멀티캐스트 통신 방식 등의 일부 단방향 통신 방식에는 적용할 수 없다.
(예를 들면, 산업에 있어서 사용된) 일부 컴퓨터 네트워크는 그러한 구조 및 토폴로지에 따라 네트워크의 일부분 또는 네트워크에서의 일부 통신에 브로드캐스트 및/또는 멀티캐스트 통신을 사용할 수 있다.
또한, 필드버스 시스템 등의 산업 컴퓨터 네트워크는, 시간 임계인 데이터 통신에 사용되도록 구성될 수 있다. 예를 들면, 산업 또는 자동차 버스는 다른 계산 능력의 이종의 디바이스(예를 들면, 계산 능력이 매우 낮은 디바이스부터 매우 높은 디바이스)를 혼합할 수 있다. 따라서, 계산 능력이 낮은 디바이스여도, 패킷을 복제해 패킷의 내부에서 소수의 바이트를 변경하는 것만으로, 네트워크 인터페이스 상에서 고속으로 패킷을 송신하는 능력을 가질 수 있다. 이것은, 임의의 디바이스를 파손시키는 공격자에게, 버스에 접속된 다른 임의의 디바이스에 대한 DoS 공격을 초래할 가능성을 남긴다.
부가하여, 일부의 통신 시스템은, 예를 들면, 인증 목적의 송신 전에 송신 노드에 의해 각 메시지에 삽입되는 코드(종종 메시지 인증 코드(MAC)로 불림)를 거쳐, 암호화 및 인증(예를 들면, 서명)된 데이터 흐름을 사용한다. MAC 코드를 옮기는 메시지를 수신하는 네트워크의 노드는 그러한 코드를 사용하여, 메시지가 악의적인 노드 또는 파손된 노드에 의해 송신된 것이 아님을 검증할 수 있다. 그러나, 메시지 인증 코드의 확인은, 특히 계산 능력이 낮은 노드에 대해서 상당한 자원을 소비하는 동작일 수 있고, 이것은 인증된 데이터 흐름의 사용을 제한한다. 또한, MAC 코드의 그러한 확인은 DoS 공격의 대상이 될 수 있다. 실제로, 수신기에서, 인증 프로세스는 통상, 서명된 데이터 전체의 처리를 필요로 할 수 있다. 따라서, 공격자는, 서명 키에 액세스하고 있지 않는 경우여도, 잘못된 서명(즉, 올바르지 않은 MAC 코드)을 갖는 다수의 파손된 메시지를 생성할 수 있다. 각 수신 메시지를 검증하기 위해서, 수신기는 여전히 수신 메시지의 MAC를 확인하기 위해 각 수신 메시지의 MAC를 계산해야 한다. 서명 알고리즘의 성능이 데이터 링크 속도보다 늦으면, 공격자는 수신기에서의 자원을 고갈시켜, 수신기가 정당한 요구, 특히 시간 임계인 정당한 요구를 실행하는 것을 방해할 가능성이 높다.
클라이언트에 대한 퍼즐 제출의 방식도, 일반적으로 클라이언트와 서버 사이에 특정 메시지 교환을 필요로 하므로, 몇가지 문제를 일으킨다. 따라서, 퍼즐을 풀어 검증하는데 필요한 계산 자원에 부가하여, 클라이언트 퍼즐 프로토콜 방식은, 일부 네트워크 대역폭을 소비한다.
또한, 네트워크의 토폴로지 및 구조에 따라, DoS 공격을 실행하는 공격자는, 네트워크의 일부의 부분에 네트워크 혼잡을 유발할 수도 있고, 중간 네트워크 노드의 정상적인 동작을 방해할 수도 있다. 예를 들면, 산업 필드 네트워크 버스는, 도 1d에 나타내는 바와 같이, 데이지체인형 토폴로지에 배치될 수 있다. 이 토폴로지에서는, 각 네트워크 노드는 다음의 네트워크 노드와 직렬로 접속된다. 하나의 노드(도 1d에서의 노드(21))가 파손되면, 그 노드는 체인 내의 그 후에 위치하는 임의의 디바이스(도 1d에서의 노드(22, 23))를 플로딩(flooding)시킬 수 있다. 그러한 상황에, 레이트 제한 등의 네트워크 메트릭을 사용하는 네트워크 스트림 정책에 근거한 방어 전략은, 그러한 방법이 유효한 메시지와 플로딩 메시지를 구별할 수가 없기 때문에 효율성이 결여될 수 있다. 따라서, 그러한 공격의 위협에 대처하기 위해, 파손된 노드(21)와 공격을 받은 노드(23) 사이의 경로가 아닌 데이터 경로 내에서 파손된 노드(21)에 가장 가까운 건전한 네트워크 노드(20)에서 플로딩 메시지를 식별하여 필터링할 필요가 있다.
도 2a 및 도 2b는, 하나 이상의 실시예에 따른, 제안된 방법이 적용될 수 있는 예시적인 컴퓨터 네트워크를 나타내고 있다.
도 2a는, 이더넷 링크를 거쳐 복수의 노드(31~36) 및 외부에서 호스트 클라우드(37)에 접속된 서버(30)를 갖는 스타 토폴로지 네트워크(38)를 나타내고 있다. 노드(31)는 제조 실행 시스템 기능 및/또는 엔터프라이즈 자원 플래닝(ERP) 기능을 수행할 수 있고, 노드(32)는 제품 라인 기능의 모니터링, 제어 및 감시(감시 제어 및 데이터 수집(SCADA)을 수행할 수 있고, 노드(33)는, 하나 이상의 프로그래머블 로직 콘트롤러(PLC)를 통해 기계 및 시스템 기능의 조정을 수행할 수 있고, 1개 또는 몇개의 노드(34~36)는 시스템의 센서 및/또는 액츄에이터와의 인터페이스 기능을 실행할 수 있다.
도 2a에 나타내는 네트워크(38)는 산업 분야에서의 데이터 통신용으로 설계된 OPC-UA 프로토콜을 사용할 수 있고, 그 때문에, 서버는 OPC-UA 서버로서 구성될 수 있고, 다른 노드는 OPC-UA 클라이언트로서 구성될 수 있다. 부가하여, 하나 이상의 노드는 OPC-UA 발행자 및/또는 OPC-UA 가입자로서 구성될 수 있다.
도 2b는 단방향 데이터 흐름을 갖는 데이지체인 토폴로지 네트워크를 나타내고 있다. 메시지는 각 노드(41~45)로부터 도면에서 화살표에 의해 가리키는 데이터 통신 경로의 하류에 있는 다른 노드에 송신될 수 있다.
도 3a는, 본 주제 개시의 하나 이상의 실시예에 따른 예시적인 데이터 송신 방식을 나타내고 있다.
도 3a에 나타내는 바와 같이, 제안된 데이터 송신 방식을 구현하도록 구성된 제 1 네트워크 노드는 퍼즐 서버 노드로부터 컴퓨팅 퍼즐을 수신할 수 있다(50).
하나 이상의 실시예에서는, 컴퓨팅 퍼즐은 논스를 이용해 정식화할 수 있고, 그 때문에, 제 1 네트워크 노드는 논스를 수신할 수 있고 퍼즐의 논스의 수신을 통해 퍼즐을 수신한 것으로 간주하도록 구성될 수 있다.
하나 이상의 실시예에서는, 컴퓨팅 퍼즐은 암호 퍼즐로 할 수 있고, 그 경우에, 컴퓨팅 퍼즐은 논스값, 즉, 수치 또는 비트스트링을 나타내는 논스 데이터를 이용하여 정식화될 수 있다. 논스값은, 이하에 제공된 예에서 설명하듯이, 통상 그 일부 또는 전체를 랜덤으로 꺼낼 수가 있고, 그 때문에 적어도 랜덤인 그 일부분을 포함할 수 있다.
하나 이상의 실시예에서는, 컴퓨팅 퍼즐은 다른 타입의 것으로 할 수 있다. 예를 들면, 컴퓨팅 퍼즐은, 프로세서를 구비하는 기계 또는 장치에 의해 해를 결정하는 것이, 예를 들면, 인공지능 엔진을 사용하는 논스 데이터 내의 하나 이상의 패턴의 인식을 수반할 수 있는 문제에 대응할 수 있다. 그러한 경우에, 퍼즐의 정식화에 사용된 논스 데이터는, 그 일부 또는 모두가 한 세트의 화상 내에서 랜덤으로 선택된 화상에 대응할 수 있고, 컴퓨팅 퍼즐의 해를 결정하는 것은 논스 데이터에서의 사전 결정된 패턴(예를 들면, 교통신호등, 자동차, 동물 등)의 인식을 필요로 할 수 있다.
하나 이상의 실시예에서는, 제 1 노드는, 퍼즐 서버 노드와 구별되는, 네트워크의 다른 노드(제 2 노드)에 메시지를 송신하는데 사용될 퍼즐의 적어도 하나의 해를, 수신된 퍼즐에 근거하여 결정할 수 있다(51). 일부 실시예에서는, 제 1 노드는 퍼즐의 해를 퍼즐의 수신된 논스에 근거하여 결정할 수 있다.
퍼즐의 해가 결정되면, 제 1 노드는 데이터를 제 2 노드에 송신할 수 있다(52). 이 데이터는 제 2 노드에 송신되는 메시지와 퍼즐의 결정된 해를 포함한다.
일부의 실시예에서는, 송신 데이터는 송신 메시지와 퍼즐의 송신된 해 사이의 관계의 표시를 포함할 수 있고, 이 표시는 실시예에 따라 암묵적 또는 명시적인 것으로 할 수 있다. 일부의 실시예에서는, 제 1 노드는, 유리하게는, 그러한 표시를 사용하여 몇개의 메시지를 제 2 노드에 송신할 수 있고, 각 메시지는 퍼즐의 (바람직하게는 단일의) 해에 관련지어질 수 있다. 예를 들면, 일부의 실시예에서 송신 메시지는 퍼즐의 결정된 해를 포함할 수 있다. 그러한 경우에, 상기 표시는 대응하는 메시지에 퍼즐의 해를 포함하는 것을 통해 암묵적으로 전달된다. 암묵적인 표시를 사용하는 것에 의해, 유리하게는, 퍼즐해가 관련되는 메시지를 나타내는 데이터를 송신하는 것을 목적으로 한 대역폭의 소비가 회피된다.
퍼즐해와 메시지 사이의 관계의 표시가, 예를 들면 식별자를 사용한 명시적인 실시예에서는, 표시를 반송하는 데이터는, 예를 들면, 송신 노드(메시지, 해 및 표시를 송신하는 노드) 및 수신 노드(메시지, 해, 및 표시를 수신하는 노드)에만 알려져 있는 예측 불능인 값을 사용하는 것에 의해(예를 들면, 부분적 또는 전체적으로 랜덤인 값을 사용하는 것에 의해), 잠재적인 공격으로부터 보호될 수 있다.
실시예에 따라, 퍼즐은, 제안된 방식을 사용하는 네트워크의 노드의 계산 능력에 대해 치수가 결정된 계산 퍼즐로 할 수 있다.
도 3b는 본 주제 개시의 하나 이상의 실시예에 따른 예시적인 데이터 수신 방식을 나타내고 있다.
도 3b에 나타내는 바와 같이, 제안된 데이터 송신 방식을 구현하도록 구성되는 제 2 네트워크 노드는 이 제 2 노드와 구별되는 퍼즐 서버 노드로부터 컴퓨팅 퍼즐을 수신할 수 있다(53).
또한, 제 2 네트워크 노드는, 메시지 및 퍼즐의 해를 포함하는 데이터를 제 1 노드(마찬가지로 퍼즐 서버 노드와 다름)로부터 수신할 수 있다(54).
그 후, 제 2 노드는 수신된 퍼즐에 근거하여 수신된 해를 확인할 수 있다 즉, 수신된 해가 유효한지 여부를 결정할 수 있다(55).
도 3a에 관해서 상술한 바와 같이, 하나 이상의 실시예에서는, 컴퓨팅 퍼즐은 논스를 이용하여 정식화될 수 있고, 그 때문에, 제 2 네트워크 노드는, 논스를 수신할 수 있고, 퍼즐의 논스의 수신을 통해, 퍼즐의 적어도 하나의 수신된 해를 확인하는데 사용되는 데이터를 수신한 것으로 간주하도록 구성될 수 있다.
도 3a에 관해 상술한 바와 같이, 실시예에 따라, 컴퓨팅 퍼즐은 암호 퍼즐일 수도 있고, 다른 타입의 퍼즐일 수도 있다.
수신된 해가 유효하다고 결정되면, 제 2 노드는 수신 메시지를 처리할 수 있다(56).
일부의 실시예에서는, 해시 기반의 퍼즐 등의 암호법 퍼즐이 사용될 수 있다.
일부의 실시예에서는, 수신 데이터는, 수신 메시지와 퍼즐의 수신된 해 사이의 관계의 표시를 포함할 수 있고, 이 표시는, 실시예에 따라 암묵적 또는 명시적인 것으로 할 수 있다.
예를 들면, 일부의 실시예에서는, 수신 메시지는 퍼즐의 해를 포함할 수 있다. 그러한 경우에, 상기 표시는 대응하는 메시지에 퍼즐의 해를 포함하는 것을 통해 암묵적으로 전달된다.
따라서, 제안된 데이터 송신 방식은, 퍼즐이 노드에 의해 수신되고, 이 퍼즐이, 노드가 메시지를 다른 노드에 송신하고 싶은 경우에 사용되는 것을 규정한다. 노드는, 퍼즐 서버 노드로부터 수신된 퍼즐을 최초로 푸는 일 없이 메시지를 네트워크의 다른 노드에 송신하지 않고, 퍼즐의 결정된 해와 함께 메시지를 이 다른 노드에 송신하도록 구성될 수 있다.
제안된 데이터 수신 방식은, 또한 퍼즐이 노드에 의해 수신되고, 이 퍼즐이, 노드가 메시지를 다른 노드로부터 수신하는 경우에 사용되는 것을 규정한다. 노드는, 송신 메시지에 관해서 동일한 송신 노드에 의해 수신된 해가 유효한 것을 최초로 확인하는 일 없이, 네트워크의 다른 노드로부터의 수신 메시지의 수신도 처리도 하지 않도록 구성할 수 있다. 결과적으로, 해의 계산이 해를 확인하는 것보다도 계산적으로 훨씬 고가인 퍼즐을 사용하는 것은, 유리하게는, 송신 노드와 수신 노드 사이의 네트워크 대역폭의 사용 및 양쪽의 노드에서의 자원의 사용을 제한하면서, 컴퓨터 네트워크에서의 DoS 공격의 리스크를 완화할 것이다. 수신 메시지에 관련된 퍼즐해를 확인하기 위해 필요할 수 있는 한정된 양의 컴퓨팅 자원은, 유리하게는, 매우 한정된 계산 자원을 이용하여 메시지를 수신할 수밖에 없는 노드를 갖는 네트워크에서 활용될 수 있고, 여전히, 그러한 노드를 공격으로부터 보호하는 효율적인 해결책을 제공할 수 있다.
일부의 실시예에서는, 수신 노드는, 수신 메시지가 수신된 퍼즐의 해와 함께 수신되지 않으면, 그러한 메시지를 폐기하도록 구성될 수 있다. 일부의 실시예에서는, 수신 노드는, 수신 메시지가 수신된 퍼즐의 무효인 해와 함께 수신되면, 그러한 메시지를 폐기하도록 구성될 수 있다.
송신 노드에서의 메시지의 송신, 및 수신 노드에서의 메시지의 수신은 모두, 그 경우에, 예를 들면, 네트워크의 퍼즐 서버 노드로부터 송신 노드 및 수신 노드의 양쪽에 의해 수신된 퍼즐에 근거하여 좌우될 수 있다.
퍼즐은, 메시지가 송신되는 노드와 구별되는 서버 노드로부터 수신되므로, 제안된 방식은, 유리하게는, 제안된 방식에 의해 생성된 시그널링 오버헤드 및 네트워크 지연을 제한한다. 또한, 제안된 방식은, 유리하게는, 브로드캐스트 또는 멀티캐스트 통신 방식 등의 단방향 통신 방식에 적용 가능하다.
일부의 실시예에 따르면, 본 주제 개시는, 유리하게는, 데이터 암호화 메커니즘 및 인증 메커니즘을 이용하여 네트워크 보안을 이미 구현하고 있는 중요한 통신 시스템에서 사용할 수 있는, DoS 공격을 완화하는 암호 방식을 제안한다. 제안된 방식은, 유리하게는, 예를 들면, 이른바 "발행/가입" 모델에 근거하는 새로운 산업 필드-버스 프로토콜에 사용되는 멀티캐스트 등의 단방향 데이터 흐름을 포함하는 다양한 네트워크 구조 및 프로토콜에 적용될 수 있다. 실제로, 이런 종류의 네트워크에서는, 이용 가능한 계산 자원의 관점에서 디바이스가 이종이므로, 수신 디바이스가, 잘못된 서명을 갖는 다량의 1조의 서명된 메시지를 송신하는 것에 의해, 공격자에 의해 쉽게 플로딩될 수 있다.
하나 이상의 실시예에서, 제안된 방법은, 다른 노드에 메시지의 송신을 소망하는 노드에 의한 암호 퍼즐의 해답을 사용하여, 메시지를 송신하기 전에 시간(및 계산 자원)을 소비하도록 송신 노드에 강제한다. 종래의 방법과 달리, 이것이 메시지 송달 지연(임계 시스템에서 중요함)에 주는 영향은 매우 한정적이고, 시그널링 오버헤드는 거의 발생하지 않는다. 또, 이것은, 유리하게는, 일부의 실시예에서, 임의의 중간 노드에서의 악의적인 플로딩 트래픽을 식별하여 필터링 하는 것을 가능하게 하고, 이것에 의해, 공격에 의해 생길 가능성이 있는 네트워크 혼잡의 발생이 방지된다. 부가하여, 제안된 방식은, 발생 가능한 리플레이, 사전 계산 또는 위장 공격에 대해 쉽게 회복되도록 설계되고, 경량의 마이크로 콘트롤러 기반의 디바이스에 걸쳐 용이하게 사용될 수도 있다.
제안된 방식은, 더욱 유리하게는, 동기화된 노드 사이의 디지털 서명된 단방향 데이터 흐름을 지원하는 일부의 통신 시스템에 적합한 새로운 암호 퍼즐 프로토콜 방식의 현재의 필요성에도 대처한다.
산업 통신 버스, 예를 들면 산업 오토메이션 어플리케이션용으로 설계된, 예를 들면 새롭게 개발된 통신 프로토콜 OPC 통일 구조(OPC 재단에 의해 지정되고, 약칭 "OPC"는 "Open Platform Communication를 나타냄)는, 클라이언트/서버 기반의 프로토콜(TCP/IP 프로토콜 스택(인터넷 엔지니어링 태스크포스(IETF)에 의해 지정됨)에 의거할 수 있음)을 포함하고, 실시간 통신용 발행/가입(PubSub) 방식을 더 포함하고, 그 각각은 이더넷에 의거할 수 있다. 보안 요건 때문에, OPC-UA PubSub 프로토콜은, 비밀 서명키를 사용하여 메시지 내에 수용되고 메시지의 마지막에 추가되는 데이터에 걸쳐서 계산되는 메시지 인증 코드(MAC)를 통해 모든 프로토콜 메시지의 암호화 및 인증을 선천적으로 구현한다. 수신기측에서는 수신 메시지 내의 MAC가 계통적으로 검증된다. 이 동작은 상당히 많은 계산 자원을 필요로 하여, 지연을 추가한다.
동기화된 노드 사이의 디지털 서명된 단방향 데이터 흐름을 지원하는 통신 시스템의 다른 예는, 단방향 암호화 오디오/비디오 데이터 흐름을 전달하는 IEEE 802.1AVB에 의거하는 오디오/비디오 브로드캐스트 시스템이다.
일부의 실시예에서, 제안된 방법은, 비트스트링해 X와 프로토콜에 의해 제공된 다른 비트스트링 Z를 연결한 것의 해시값의 m개의 최하위 비트가 사전 결정된 비트스트림 Y와 동일해지는 것과 같은, 즉, LSBm[H(x|z)]=Y로 되는 것과 같은 X를 찾아내는 것에 그 본질이 있는 해시 기반의 퍼즐을 사용할 수 있다.
하나 이상의 실시예에서는, 사전 계산 공격을 방지하기 위해서, 퍼즐은 공통의 논스(예를 들면, 논스값)를 이용하여 정식화될 수 있고, 바람직하게는, 예측할 수가 없도록 선택될 수 있다. 이 논스 n는, 예를 들면, "논스 퍼즐 제어"(NPC:Nonce Puzzle Control) 메시지로 불리고, 예를 들면, 브로드캐스트 및/또는 멀티캐스트 데이터 송신을 사용하여, 제안된 프로세스를 사용하도록 구성된 네트워크의 노드에 제공될 수 있는 특정의 메시지에 의해 전달될 수 있다. 일부의 실시예에서는, NPC 메시지는 마스터 노드에 의해 네트워크를 거쳐 주어진 주파수를 이용해서 주기적으로 송신될 수 있다.
일부의 실시예에서는, 새로운 퍼즐을 퍼즐 마스터 노드에 의해 반복 송신할 수 있어서, 새로운 퍼즐이 수신될 때까지, 노드에 의해 수신되는 각 퍼즐은 그러한 노드에 의한 사용에 유효하다고 간주될 수 있다. 일부의 실시예에서는, 노드는 새로운 퍼즐을 사전 결정된 시간 주기로 수신하도록 구성될 수 있어서, 새로운 퍼즐은 사전 결정된 주기에 따라 노드에 의해 주기적으로 수신될 수 있다. 제안된 방법을 사용하는 노드에 대한 퍼즐의 반복된 송신, 예를 들면 주기적인 송신에 의해, 유리하게는, 2개의 연속하는 퍼즐 송신 사이의 지속 시간을, 여러가지 네트워크 파라미터에 따라, 예를 들면, 컴퓨터 네트워크에서의 대역폭 제약에 따라 선택된 값으로 설정하는 것이 가능해진다. 예를 들면, 2개의 연속하는 퍼즐 송신 사이의 지속 시간은, 네트워크의 노드에 대한 퍼즐 송신이, 바람직하지 않은 다량의 네트워크 대역폭을 소비할 수 없도록 충분히 길게 선택될 수 있다. 반대로, 2개의 연속하는 퍼즐 송신 사이의 지속 시간은, 공격에 대한 것보다 높은 보안을 확보하기 위해서, 노드에 의해 사용된 퍼즐이 빈번하게 갱신되는 것을 확보하도록 충분히 짧게 선택될 수 있다.
하나 이상의 실시예에서는, 퍼즐을 노드에 송신하기 위해 그러한 노드에 송신된 논스값은 이 퍼즐의 송신 시각에 근거할 수 있다. 일부의 실시예에서는, NPC 메시지의 송신 시각은 본 주제 개시에 따라 퍼즐해를 계산 또는 검증하도록 구성된 모든 네트워크 노드에 의해 공통의 논스값으로서 사용될 수 있다.
논스값을 포함하는 퍼즐이 반복하여 송신되는(예를 들면, 주어진 주기를 갖는 브로드캐스트) 일부의 실시예에서는, 퍼즐의 송신 시각에 근거하는 논스값은 이 퍼즐의 일부일 수 있고, 새로운 논스값이 송신될 때까지 유효한 것으로 할 수 있다. 바람직하게는, 퍼즐의 송신 시각에 근거하여 퍼즐을 생성하도록 구성되는 퍼즐 서버 노드는, 어느 노드(특히 공격자)도 생성된 논스값을 예측할 수 없게 구성될 수 있고, 이것에 의해, 유리하게는 퍼즐해의 사전 계산이 회피된다. 그 때문에, 일부의 실시예에서는, 논스값의 생성에 사용되는 송신 시각은, 다른 노드가 논스값을 예측하는 것을 방해하는 랜덤인 부분을 논스값이 반드시 반송하도록 충분히 정밀하게(예를 들면, 나노초까지) 선택될 수 있다.
노드가 시각 동기화 네트워크에 포함되는 하나 이상의 실시예에서는, 유리하게는, 노드의 로컬 클럭을 네트워크 클럭과 동기시키는데 사용되는 시각 동기 프로토콜은 그러한 송신 시각에 근거하는 논스값을 분배하는데 사용될 수 있고, 이에 따라, 퍼즐의 분배에 연관된 대역폭 사용량이 삭감된다. 예를 들면, 정밀 시각 프로토콜(IEEE-1588 표준에 정의됨)이 네트워크 노드의 시각 동기에 사용되는 실시예에서는, 팔로우 업 "FollowUp" PTP 메시지 내에 나타나는 "Sync" PTP 메시지의 송신 시각을 나타내는 타임 스탬프 데이터는, Sync PTP 메시지 및 FollowUp PTP 메시지를 수신하는 노드에 의해 공통의 논스값으로서 사용될 수 있다. 따라서, 시각 동기 프로토콜의 브로드캐스트 메시지에 포함되는 데이터는 시각 동기 네트워크의 노드에 의해 공통의 논스값으로서 사용될 수 있다. 이 제안된 퍼즐 분배 방식은, 유리하게는, 특정의 메시지를 사용하여 퍼즐을 네트워크 내의 노드에 전달하는 것을 회피하고, 이것에 의해, 네트워크에서의 퍼즐의 분배에 연관된 여분의 네트워크 대역폭의 필요성이 경감된다.
당업자이면, 본 명세서가, 하나 이상의 실시예에서 사용될 수 있는 시각 동기 프로토콜의 일례로서 PTP 프로토콜을 참조하고 있어도, 예를 들면, 코멘트 요구(RFC)(5905)에 기재되어 있는 바와 같은 IETF 네트워크 타임 프로토콜(NTP) 등의 다른 임의의 적합한 시각 동기 프로토콜이 PTP 프로토콜 대신에 사용될 수 있는 것을 이해할 것이며, NTP 프로토콜은 단순히 일례로서 주어지는 것이다.
하나 이상의 실시예에서는, 컴퓨터 네트워크의 대상 노드(송신 노드 및/또는 수신 노드)에 의해 사용되는 퍼즐은 복수의 파라미터를 이용하여 정식화될 수 있고, 이러한 복수의 파라미터는 퍼즐 분배 방식에 따라 대상 노드에 의해 취득되는 논스 파라미터(논스 파라미터는 퍼즐 서버 노드 또는 상술한 바와 같은 네트워크의 다른 서버 노드(예를 들면, 시각 동기 서버 노드)에 의해 제공할 수 있음)와 논스 파라미터의 분배 등에 사용되는 퍼즐 분배 방식과는 관계없는 노드에 의해 취득된 하나 이상의 파라미터를 포함한다. 다시 말하면, 제안된 방법을 사용하도록 구성된 노드는, (퍼즐 서버 노드 또는 시각 동기 네트워크에 관해서 상술한 바와 같은 다른 타입의 서버 노드로부터 수신된) 적어도 논스 파라미터와 퍼즐 분배에 관한 기능 이외의 기능을 수행하는 과정에서 취득된 하나 이상의 파라미터(퍼즐 분배 방식의 일부로서 노드에 분배되는 것은 아니기 때문에 "암묵적" 퍼즐 파라미터로 불림)를 이용하여 정식화된 퍼즐을 사용할 수 있다.
예를 들면, 일부의 실시예에서는, 컴퓨터 네트워크에서의 시각 동기 정보에 근거하여 취득된 시각값은, 수신된 논스(퍼즐 파라미터를 노드에 송신하는 퍼즐 분배 방식을 통해서 취득될 때는 암묵적 퍼즐 파라미터는 아님)와 함께, 퍼즐의 (암묵적) 파라미터로서 사용될 수 있다. 다른 암묵적 퍼즐 파라미터는 시각값 암묵적 퍼즐 파라미터 및 논스 파라미터와 조합하여 사용될 수 있다.
이하에서는, 통신 노드가 시각 동기화되어 공통의 클럭을 공유하는 시각 동기 네트워크에 관해 그러한 시각값을 퍼즐의 암묵적 파라미터로서 사용하는 예시적인 실시예가 제공된다.
리플레이 공격(즉, 공격자가 단일의 퍼즐해를 사용하여 매우 많은 메시지를 송신하는 공격)에 대해서 퍼즐을 행하기 위해서, 퍼즐은, 하나 이상의 실시예에서는, 일부에 논스가 없는 시각값을 이용하여 정식화할 수 있다. 즉, 송신 노드에 의해 사용될지 또는 수신 노드에 의해 사용될지에 관계없이, 그러한 실시예에 따라 사용되는 퍼즐은 논스 파라미터 및 시각값 파라미터를 포함하는 몇개의 파라미터를 가질 수 있다.
시각 동기 컴퓨터 네트워크의 노드가 네트워크 클럭과 동기화된 로컬 클럭을 갖는 일부의 실시예에서는, 시간 영역이 사전 결정된 주기("사이클"이라고도 불림)에 근거하여 분할될 수 있어, 시각은 시퀀스에서의 사이클 번호(또는 인덱스)에 의해 특정될 수 있다. 다시 말하면, 시간 영역은 사전 결정된 지속 시간(예를 들면, 100ms)의 사이클로 분할될 수 있어, 시각값은 인덱스 첨부 사이클 시퀀스에서의 사이클 인덱스에 대응할 수 있다.
따라서, 제안된 방법이 노드가 시각 동기화되는 시각 동기 네트워크에서 사용되는 하나 이상의 실시예에서는, 각 노드는 그 로컬 클럭에 근거하여 사이클 인덱스를 계산하도록 구성될 수 있다. 예를 들면, 임의의 노드가 현재의 사이클 번호를 취득(예를 들면, 네트워크로부터 수신하거나 또는 결정)하도록 구성될 수 있다. 현재의 사이클 번호를 결정하는 것은, 사전 결정된 사이클 지속 시간에 의한(네트워크 클럭과 동기화되는 로컬 클럭에 근거하는) 현재의 시각의 (예를 들면, 정수) 나눗셈을 계산하는 것을 포함할 수 있다. 일부의 실시예에서는, 제안된 방법을 사용하는 노드에 의해 계산된 현재의 사이클의 인덱스는, 퍼즐 마스터에 의해 퍼즐의 일부로서 노드에 분배된 논스에 부가하여, 추가의 퍼즐 파라미터로서 사용될 수 있다.
그러한 실시예에서는, 제안된 방법을 사용하도록 구성되는 노드는 취득된 사이클 인덱스가(송신 노드에서 해를 결정하고, 수신 노드에서 수신된 해를 확인하기 위해서) 사용되는 퍼즐의 일부로서 사용하도록 구성될 수 있고, 그 때문에, 단일의 사이클 내에서 몇개의 메시지를 송신해야 하는 송신 노드는, 수신된 논스와 사이클의 취득된 인덱스에 근거하여 동일한 퍼즐을 풀도록 구성될 수 있다. 이와 같이, 생성된 해는 유리하게는 각 사이클 동안에 고유하게 될 수 있다. 일부의 실시예에서는, 수신 노드는 퍼즐해를 검증하기 전에 퍼즐해가 현재의 사이클 동안 아직 제출되지 않았던 것을 확인하도록 구성될 수 있다. 결과적으로, 일부의 실시예에서는, 사이클 인덱스에 대응하는 시각값이 송신 노드 및 수신 노드에 의해 사용되는 퍼즐의 정식화에 사용될 수 있어, 각 사이클이 퍼즐을 결정할 수 있고 그 직후에 계속되는 사이클이 다른 퍼즐을 결정한다. 따라서, 사이클 인덱스는 퍼즐 파라미터로서 사용될 수 있고, 이 추가의 파라미터는, 시각 동기 네트워크의 각 노드에서 계산될 수가 있으므로, 논스 파라미터로서 노드에 분배되지 않는 것으로 할 수 있다는 이점이 있다. 이 방식은, 유리하게는, 퍼즐 파라미터의 수를 증가시켜, 퍼즐의 분배에 연관된 부가적인 시그널링 오버헤드를 생성하지 않고 공격에 대한 노드의 보호가 개선된다. 더욱 유리하게는, 사이클의 지속 시간은 짧게 선택될 수 있어, 퍼즐의 유효성의 지속 시간도 이와 같이 짧고, 퍼즐은 빈번하게 갱신된다.
도 4는 본 주제 개시의 실시예에 따른 퍼즐 조작에 사용될 수 있는 사이클을 나타낸다. 도 4에 나타내는 바와 같이, 퍼즐 P의 논스를 반송하는 메시지는, 사전 결정된 논스 브로드캐스트 주기로 컴퓨터 네트워크에서 실질적으로 주기적으로 브로드캐스트될 수 있다. 그러한 메시지의 예가, 논스 퍼즐 제어(NPC) 메시지 NPCn, NPCn+1, 및 NPCn+2로서 도 4에 나타나고 있다. 2개의 연속하는 논스 분배 메시지의 사이의 기간은 사전 결정된 사이클 지속 시간의 m+1의 사이클 Cycle0, Cycle1, …, Cyclem로 분할될 수 있다. NPC 메시지 NPCn(즉, 사이클 Cyclei의 개시 부분에서 마지막에 수신된 NPC 메시지)에 대응하는 각 사이클 Cyclei에 대해, 제안된 방법을 사용하도록 구성된 노드(하나 이상의 퍼즐해를 결정하는 송신 노드 또는 하나 이상의 수신된 퍼즐해를 확인하는 수신 노드)는, 대응하는 NPC 메시지 NPCn에서 수신된 논스와 사이클 인덱스 i로부터 퍼즐 Pn,i를 도출할 수 있다.
도 5a는 본 주제 개시의 하나 이상의 실시예에 따른 예시적인 데이터 통신 방식을 나타내고 있다.
도 5a를 참조하면, 하나 이상의 실시예에서는, 퍼즐 서버 노드는 논스, 예를 들면, 논스값(예를 들면, 예측 불능인(부분적 또는 전체적으로 랜덤인) 값)을 이용해 정식화된 퍼즐 P를 네트워크의 복수의 노드의 각각에 제공하도록 구성될 수 있다. 예를 들면, 도 5a에 나타내는 바와 같이, 이른바 "퍼즐 마스터" 노드(60)가 제 1 송신 노드(62), 제 2 송신 노드(63), 및 서빙 노드(61)에 퍼즐 P의 논스값을 송신한다(64a, 64b, 64c).
하나 이상의 실시예에서는, 다른 노드에 송신된 메시지가 그러한 다른 노드에 의해 처리되려면(예를 들면, 다른 노드에 송신된 요구가 그러한 다른 노드에 의한 서비스되려면), 유효한 퍼즐해가, 취득(예를 들면, 계산)되어 메시지를 송신하는 노드에 의해 송신되고, 메시지가 처리되도록 목적지 노드에 제공되어야 한다. 예를 들면, 일부의 실시예에서는, 요구를 완료하기 위해, 유효한 퍼즐해가 요구를 서빙 노드에 송신한 임의의 요구 노드에 의해 계산되어야 한다.
하나 이상의 실시예에서는, 송신 노드에 의해 계산된 해는 송신 메시지와 함께 송신될 수 있다. 일부의 실시예에서는, 계산된 해는 송신 메시지 내에 포함될 수 있다.
일부의 실시예에서는, 마지막에 수신된 퍼즐의 해는, 각 송신 메시지에 포함될 수 있다.
수신 노드에서, 수신 메시지와 함께 수신된 퍼즐해는 이 메시지를 처리하기 전에 검증될 수 있다. 일부의 실시예에서는, 해는, 메시지 인증이 지원되는 경우에는 메시지 인증을 포함하는 다른 임의의 처리 동작 전에 수신 노드에서 검증될 수 있다. 수신 메시지가 퍼즐의 해를 포함하는 경우에는, 이 메시지를 최초로 처리하여 퍼즐해를 추출할 수 있고, 퍼즐해가 유효한 것으로 결정되면, 메시지는 더 처리될 수 있다.
프로토콜에 의해 제공된 다른 비트스트링 Z와 연결된 비트스트링해 X의 해시값의 m개의 최하위 비트가 사전 결정된 비트 스트림 Y와 동일해지는(LSBm[H(x|z)]=Y) 비트스트링해 X를 찾는 것에 그 본질이 있는 해시 기반의 퍼즐이 사용되는 실시예에서는, 서명 검증, 즉, 퍼즐의 수신된 해의 확인은, 유리하게는, 단지 퍼즐해 X와 Z를 연결한 것의 해시값을 계산하는 것에만 있을 수 있고, 그 결과의 m개의 최하위 비트가 Y에 대응하는지 여부를 확인한다. 이 동작은, 통상 계산 비용의 관점에서 보면, 퍼즐의 해를 계산하는 것보다 훨씬 더 가볍고 고속이다. 따라서, 잠재적인 공격자가 매우 많은 메시지를 관련한 해와 함께 네트워크의 다른 노드에 송신하는 것을 억제하지만, 그러한 다른 노드는 수신된 해를 확인하는 것이 계산적으로 저렴할 것이므로, 그러한 DoS 공격으로부터 자신을 방어하기 위한 많은 계산 자원을 필요로 하지 않을 것이다.
예를 들면, 도 5a에 나타내는 바와 같이, 송신 노드#1(62)는, 퍼즐 마스터(60)로부터 수신된(64b) 퍼즐 P의 해(S1)를 계산하고, 그 후, 퍼즐 P의 해(S1)와 함께(경우에 따라, 퍼즐 P의 해(S1)를 포함함) Request#1을 포함하는 메시지 Msg#1을 서빙 노드(61)에 송신한다(65). 마찬가지로 송신 노드#2(63)는, 퍼즐 마스터(60)로부터 수신된(64a) 퍼즐 P의 해(S2)를 계산하고, 그 후, 퍼즐 P의 해(S2)와 함께(경우에 따라, 퍼즐 P의 해(S2)를 포함함) Request#2를 포함하는 메시지 Msg#2를 서빙 노드(61)에 송신한다(67).
서빙 노드(61)는, 메시지 Msg#1 및 해(S1)를 수신하면 해(S1)를 확인하도록(66) 구성될 수 있고, 해(S1)가 유효하다고 결정되면, Msg#1을 처리하여, 예를 들면, Request#1에 제공할 수 있다. 마찬가지로 서빙 노드(61)는, 메시지 Msg#2및 해(S2)를 수신하면 해(S2)를 확인하도록(68) 구성될 수 있고, 해(S2)가 유효하다고 결정되면, Msg#2를 처리하여, 예를 들면, Request#2에 제공할 수 있다.
상술한 바와 같이, 제안된 방법은, 수신 노드 비밀을 이용하여 정식화된 퍼즐에 의거하지 않는다. 예를 들면, 비트스트링해 X와 프로토콜에 의해 제공되는 다른 비트스트링 Z를 연결한 것의 해시값의 m개의 최하위 비트가 사전 결정된 비트 스트림 Y와 동일해지는(LSBm[H(x|z)]=Y) 것과 같은 X를 찾아내는 것에 그 본질이 있는 해시 기반의 퍼즐이 사용되는 실시예에서는, 비트스트링 Z는 송신 노드와 수신 노드 사이에 공유되는 모든 비밀을 포함하지 않는 것으로 할 수 있다. 더욱 유리하게는, 임의의 비밀을 얻기 위해 송신 노드와 수신 노드 사이에 일부의 사전 메시지 교환을 할 필요가 없다. 또한, 제안된 프로세스는, 유리하게는, 송신 노드와 수신 노드 사이의 메시지 경로 상의 임의의 노드가 임의의 메시지에 의해 전달되는 퍼즐해를 확인하는 것을 가능하게 하는데, 왜냐하면 그러한 노드는 퍼즐 마스터로부터 퍼즐을 수신할 것이기 때문이다.
하나 이상의 실시예에서는, 퍼즐 P의 해의 고유성은, 해의 수신 시에, 퍼즐 P에 관해 이미 사용 및 검증된 퍼즐해를 기억하는 룩업 테이블을 사용하여 검증될 수 있다. 룩업 테이블(여기서는 "퍼즐해 LUT"라고 불림)은, 제안된 방법을 데이터의 수신에 사용하도록 구성된 네트워크의 각 노드에서 유지될 수 있고, 주어진 노드에 대해, 대응하는 퍼즐에 관련된 다른 퍼즐에 대해서 이미 사용 및 검증된 퍼즐해를 기억하는데 사용될 수 있다. 퍼즐해 LUT를 관리하도록 구성된 노드는, 적어도 하나의 사전 결정된 퍼즐 파라미터의 변화시(예를 들면, 노드 구성에 따라, 논스 파라미터의 변화시 및/또는 시각값 파라미터의 변화시)에 그 테이블을 클리어하도록 구성될 수 있다. 즉, 퍼즐해 LUT의 플러시(flush)를 트리거하도록 구성되는 퍼즐 파라미터의 변화 시에 룩업 테이블이 클리어될 수 있어 다른 퍼즐에 재이용될 수 있다. 룩업 테이블은 수신된 유효한 각 해에 의해 순서대로 기입될 수 있다. 수신 노드는, 해를 수신하면, 그 룩업 테이블에 이미 기억된 동일한 해에 대한 룩업 테이블을 조사하는 것에 의해, 수신된 해가 고유한 것, 즉, 이미 수신된 것이 아닌 것을 최초로 검증할 수 있다. 수신 노드는, 동일한 해가 테이블에 이미 기억되고 있다고 결정되면, 메시지와 함께 수신된 해의 유효성을 확인조차 하지 않고 메시지를 폐기할 수 있다. 수신 노드는, 테이블에 이미 기억되고 있는 해에 동일한 것이 없다고 판단하면, 메시지와 함께 수신된 해의 유효성의 확인을 진행시킬 수 있다. 그 후에 본 주제 개시의 실시예에 따른 상술한 바와 같은 수신 노드에서의 추가 동작이 수행될 수 있다.
예를 들면, 도 5b에 나타내는 바와 같이, 퍼즐 마스터(60)는, 송신 노드(62) 및 서빙 노드(61)(수신 노드)에, 주기 n 동안 유효한 퍼즐 P1의 논스를 반송하는 NPC 메시지를 송신할 수 있다. 송신 노드(62)는, 퍼즐 마스터(60)로부터 주기 n 동안에 수신된(68a) 퍼즐 P1의 해(S1, 1)를 계산하고(69), 그 후, 퍼즐 P1의 해(S1, 1)와 함께(경우에 따라, 퍼즐 P1의 해(S1, 1)를 포함함) 메시지 Msg#1을 서빙 노드(61)에 송신할(70) 수 있다.
서빙 노드(61)는, 메시지 Msg#1 및 해(S1, 1)를 수신하면, 그 해 테이블에서 해(S1, 1)를 조사하여 해(S1, 1)를 이미 수신하고 있는지 여부를 확인(71)하도록 구성될 수 있다. 해(S1, 1)를 해 테이블에서 찾을 수 없는 경우에는, 서빙 노드(61)는, 퍼즐 마스터(60)로부터 주기 n 동안에 수신된(68b) 퍼즐 P1에 근거하여 해(S1, 1)의 유효성을 확인할 수 있고, 해(S1, 1)이 유효하다고 결정되면, Msg#1을 처리하여, 예를 들면, Msg#1에 포함되는 요구를 제공할 수 있다.
한편, 동일한 주기 n의 동안에, 송신 노드(62)는 다른 메시지를 서빙 노드(61)에 송신하기 위해 퍼즐 마스터(60)로부터 주기 n 동안에 수신된(68a) 퍼즐 P1의 다른 해(S1, 2)를 계산할(72) 수 있다. 송신 노드(62)는, 그 후, 퍼즐 P1의 해(S1, 2)와 함께(경우에 따라, 퍼즐 P1의 해(S1, 2)를 포함함) 메시지 Msg#2를 서빙 노드(61)에 송신할(73) 수 있다.
서빙 노드(61)는, 메시지 Msg#2 및 해(S1, 2)를 수신하면, 그 해 테이블에서 해(S1, 2)를 조사하고 해(S1, 2)를 이미 수신하고 있는지 여부를 확인하도록(74) 구성될 수 있다. 해(S1, 2)를 해 테이블에서 찾을 수 없는 경우에는, 서빙 노드(61)는, 퍼즐 마스터(60)로부터 주기 n 동안에 수신된(68b) 퍼즐 P1에 근거하여 해(S1, 2)의 유효성을 확인할 수 있고, 해(S1, 2)가 유효하다고 결정되면, Msg#2를 처리하여, 예를 들면, Msg#2에 포함되는 요구를 제공할 수 있다.
그 후, 다음의 주기(n+1)에 이를 수 있고, 이 시점에서, 퍼즐 마스터(60)는, 송신 노드(62) 및 서빙 노드(61)(수신 노드)에 현재의 주기(n+1) 동안 유효한 퍼즐 P2의 논스를 반송하는 새로운 NPC 메시지를 송신할 수 있다.
데이터를 서빙 노드에 송신하고 싶은 송신 노드(62)는, 마지막에 수신된 퍼즐을 사용하여, 서빙 노드에 송신되는 메시지와 함께 송신하는 퍼즐해를 계산하도록 구성될 수 있다. 그 후, 송신 노드(62)는, 다른 메시지를 서빙 노드(61)에 송신하기 위해, 퍼즐 마스터(60)로부터 현재의 주기 n+1의 동안 수신된(75a) 퍼즐 P2의 해(S2, 1)을 계산할(77) 수 있다. 송신 노드(62)는, 그 후, 퍼즐 P2의 해(S2, 1)과 함께(경우에 따라, 퍼즐 P2의 해(S2, 1)을 포함함) 메시지 Msg#3을 서빙 노드(61)에 송신할(73) 수 있다.
서빙 노드(61)는, 퍼즐 P2의 논스를 수신하면, 그 해 테이블을 비우는 것(예를 들면, 그 해 테이블에 기억된 모든 퍼즐해를 플러시하는 것)으로 구성될 수 있어, 서빙 노드는 새로운 현재의 주기(n+1) 동안에 수신된 퍼즐해를 관리한다. 서빙 노드(61)는, 메시지 Msg#3 및 해(S2, 1)을 수신하면, 그 해 테이블에서 해(S2, 1)을 조사하고 해(S2, 1)을 이미 수신하고 있는지 여부를 확인하도록(79) 더 구성될 수 있다. 해(S2, 1)을 해 테이블에서 찾을 수 없는 경우에, 서빙 노드(61)는, 퍼즐 마스터(60)로부터 주기(n+1)의 동안에 수신된(75b) 퍼즐 P2에 근거하여 해(S2, 1)의 유효성을 확인할 수 있고, 해(S2, 1)이 유효하다고 결정되면, Msg#3을 처리하여, 예를 들면, Msg#3에 포함되는 요구를 제공할 수 있다.
상술한 바와 같이, 하나 이상의 실시예에서는, 컴퓨터 네트워크의 대상 노드(송신 노드 및/또는 수신 노드)에 의해 사용되는 퍼즐은, 퍼즐 분배 방식에 따라 대상 노드에 의해 취득된 논스 파라미터와 논스 파라미터의 분배 등에 사용되는 퍼즐 분배 방식과는 관계없이 대상 노드에 의해 취득되는 하나 이상의 파라미터(암묵적 퍼즐 파라미터)를 포함하는 복수의 파라미터를 이용하여 정식화될 수 있다.
암묵적 퍼즐 파라미터의 다른 예로서 일부의 실시예에서는, 데이터 스트림 식별자가 수신된 논스와 함께 퍼즐의 (암묵적) 파라미터로서 사용될 수 있다.
데이터 스트림 식별자의 암묵적 퍼즐 파라미터는, 유리하게는, 하나 이상의 실시예에서, 모든 종류의 공격에 대한 퍼즐의 회복력을 강화하는데 사용할 수 있어, 노드는 다른 업스트림 노드에 의해 계산된 퍼즐해를 "도용"할 수 없다. 스트림 식별자를 포함하는 퍼즐의 사용은, 중간의 파손 노드가, 착신하는 메시지에 대응하는 퍼즐해를 도용하고, 도용한 퍼즐해를 이용하여 일부 플로딩 메시지를 송신할 우려가 있는 데이지체인 토폴로지 네트워크에 특히 유용하다.
이더넷에 근거하는 산업 버스를 사용하는 실시예에서는, 제안된 방법에 따라 사용된 스트림 식별자는, 계층 2의 이더넷 송신원 및 목적지 주소, 및 경우에 따라 VLAN 태그를 연결한 것을 포함할 수 있다.
UDP 계층에 의해 전달되는 데이터 스트림의 경우에, 제안된 방법에 따라 사용된 스트림 식별자는 UDP 송신원 주소, UDP 목적지 주소, UDP 송신원 포트, 및 UDP 목적지 포트를 연결한 것을 포함할 수 있다.
예를 들면, 상술한 바와 같은 시각값 파라미터 등의 다른 암묵적 퍼즐 파라미터는 데이터 스트림 식별자 파라미터 및 논스 파라미터와 조합하여 사용될 수 있다.
예를 들면, 비트스트링해 X와 프로토콜에 의해 제공된 다른 비트스트링 Z를 연결한 것의 해시값의 m개의 최하위 비트가 사전 결정된 비트 스트림 Y와 동일해지도록(LSBm[H(x|z)]=Y) 비트스트링해 X를 찾아내는 것에 그 본질이 있는 해시 기반의 퍼즐이 사용되는 일부의 실시예에서는, 비트스트링 Z는, 논스값(예를 들면, 시각 동기 프로토콜 메시지(예를 들면, IEEE-1588 프로토콜이 사용될 때는 "Sync"메시지)의 송신 시각에 대응함), 시각값(예를 들면, 시간 사이클 시퀀스 번호), 및 스트림 식별자를 연결한 것을 포함할 수 있다. 예를 들면, z는 다음과 같이, 즉, z=TimeSync|CycleSN|StreamID로서 선택될 수 있다.
상술한 식(LSBm[H(x|z)]=Y)가 사용되는 실시예에서는, 송신 노드는 브루트포스를 사용하여 해를 계산해야 한다. 시행 횟수는 특정 값으로 설정된 출력 비트의 수에 의존한다. 간략화하기 위해서, 출력 예상값 Y는 0의 비트스트링으로서 선택될 수 있다. 시스템이, 데이터 스트림 식별자에 안전하게 의거할 수가 있을(즉, 어느 노드에 의해서도 위조할 수가 없을) 때 비트수는, 높은 계산 자원을 갖는 노드일수록 더 낮은 노드보다 퍼즐이 복잡하게 되도록 데이터 스트림 식별자에 의존할 수 있다. 네트워크에서 이 유리하게 유연한 방법은 필요한 비트의 수가 0으로 설정될 수 있는 몇개의 높은 신뢰도의 노드를 정의하는데 사용될 수도 있다.
해시 기반의 퍼즐을 사용하는 실시예에서는, 해시 함수는, 바람직하게는, 결과적으로 얻어지는 출력값이 예측될 수 없도록 선택될 수 있다. 예를 들면, 시큐어 해시 알고리즘(예를 들면, SHA-2 패밀리 또는 SHA-3 패밀리)은 제안된 방법을 해시 기반의 퍼즐을 이용하여 구현하는데 사용될 수 있다.
하나 이상의 실시예에서는, 논스 기반의 퍼즐을 브로드캐스트하는데 사용된 메시지는, 예를 들면, 인증 방식을 사용하여 보호될 수 있다. 일부의 실시예에서는, 공격자가 사전에 계산된 퍼즐해 세트를 사용하는 것을 가능하게 할 수 있는 가짜 메시지로부터 보호하기 위해서, NPC 메시지 자체가 인증될 수 있다.
또한, 일어날 수 있는 패킷 손실로부터 보호하기 위해서, 논스값은 퍼즐해에 삽입되는 인덱스에 의해 식별될 수 있다. 이 인덱스는, NPC 메시지의 주기성에 의해 분할된 현재의 시각으로 할 수 있다. 그 경우에, 수신된 논스값에 반영된 주기성 때문에, 논스값을 전달하는 패킷의 손실이 노드에 의해 용이하게 검출될 수 있다. 일부의 실시예에 관해서 상술한 바와 같이, 송신 노드는, 수신된 최신의 논스를 퍼즐해의 계산에 사용하도록 구성될 수 있다. 퍼즐해를 검증할 때, 수신 노드는, 해에 삽입된 인덱스에 의해 식별된 논스를 사용하도록 구성될 수 있다. 일부의 실시예에서는, 이 논스가 (패킷 손실 때문에) 노드에서 이용 가능하지 않은 경우에는, 퍼즐해가 올바른 것으로 간주될 수 있다. 다른 실시예에서는, 논스가 (패킷 손실 때문에) 노드에서 이용 가능하지 않은 경우에는, 퍼즐해가 올바른 것으로 간주되지 않을 수 있고, 해에 관련된 메시지는 상술한 바와 같이 폐기될 수 있다.
IEEE-1588 프로토콜을 시각 동기화에 사용하는 실시예에서는, "SequenceId"필드는 바람직하게는 논스 인덱스로서 사용될 수 있다.
도 6은 본 주제 개시의 실시예에 따른 네트워크 송신 및/또는 수신의 특징을 사용하도록 구성된 예시적인 네트워크 노드(1)를 나타내고 있다.
네트워크 노드(1)는 제어 엔진(2), 네트워크 관리 엔진(3), 데이터 통신 엔진(4), 메모리(5), 전원(예를 들면, 배터리, 플러그인 전원 등)(도시되지 않음)을 포함한다.
도 6에 도시되는 구조에서, 네트워크 관리 엔진(3), 데이터 통신 엔진(4) 및 메모리(5)는 모두 제어 엔진(2)을 통해 서로 작동 가능하게 결합된다.
하나의 실시예에서, 네트워크 관리 엔진(3)은, 여기서 설명된 바와 같은 데이터 송신 및/또는 데이터 수신의 제안된 방법의 실시예의 여러 가지의 측면을 수행하도록 구성된다.
하나의 실시예에서, 데이터 통신 엔진(4)은 데이터 패킷을 수신 및 송신하고, 수신된 패킷을 처리하도록 구성된다.
제어 엔진(2)은 프로세서를 포함하고, 프로세서는 임의의 적절한 마이크로 프로세서, 마이크로콘트롤러, 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적회로(ASIC), 디지털 신호 처리 칩, 및/또는 상태 머신, 또는 그 조합일 수 있다. 여러 가지의 실시예에 따르면, 하나 이상의 컴퓨터는 병렬 계산을 제공하기 위한 복수의 프로세서를 갖는 멀티프로세서 컴퓨터로서 구성될 수 있다. 또, 제어 엔진(2)은, 프로세서에 의해 실행될 때, 프로세서가 여기서 기술된 요소를 수행하게 하는 컴퓨터 프로그램 명령 또는 소프트웨어 코드를 기억할 수 있는, 한정하는 것은 아니지만, 메모리(5) 등의 컴퓨터 스토리지 매체를 구비할 수 있거나, 또는 컴퓨터 기억 매체와 통신할 수 있다. 부가하여, 메모리(5)는, 네트워크 노드(1)가 속하는 컴퓨터 네트워크를 나타내는 데이터 구조를 기억할 수 있고, 제어 엔진(2)에 결합되고 그것에 관련지어 기억된 데이터 패킷의 관리 및 처리를 용이하게 하기 위해 데이터 통신 엔진(4) 및 네트워크 관리 엔진(3)과 함께 동작 가능한, 임의의 타입의 데이터 스토리지 컴퓨터 스토리지 매체로 할 수 있다.
본 주제 개시의 실시예에서, 네트워크 노드(1)는, 여기서 설명된 데이터 송신 및/또는 데이터 수신 방법을 수행하도록 구성된다.
도 6을 참조하여 도시 및 설명되는 네트워크 노드(1)는 일례로서 제공되는 것임은 이해될 것이다. 수많은 다른 구조, 동작 환경 및 구성이 가능하다. 노드의 다른 실시예는 보다 적은 수, 또는 보다 많은 수의 구성 요소를 포함할 수 있고, 도 6에 나타나는 네트워크 노드 구성 요소에 관해서 설명된 기능의 일부 또는 전부를 포함시킬 수 있다. 따라서, 제어 엔진(2), 네트워크 관리 엔진(3), 데이터 통신 엔진(4) 및 메모리(5)가 네트워크 노드(1)의 일부로서 나타나지만, 구성 요소 2~5의 위치 및 제어에 관한 제약은 없다. 상세하게는, 다른 실시예에서는, 구성 요소 2~5는 다른 엔티티 또는 컴퓨팅 시스템의 일부일 수 있다.
제안된 퍼즐 방법은, 유리하게는, 다음의 특징, 즉, 시각 동기 네트워크 노드(예를 들면, IEEE1588/PTP를 사용함), 경량 디바이스가 송신할 가능성을 수반하는 높은 데이터 속도(예를 들면, 기가비트 이더넷)를 갖는 시스템을 포함하는 다양한 네트워크 통신 시스템에 있어서 DoS 공격을 완화하는데 사용될 수 있다.
여기서 제공된 제안된 방법의 여러가지 실시예의 이점은 다음의 것, 즉, 단방향 데이터 흐름(예를 들면, 발행/가입 통신 패턴/멀티캐스트 스트림)의 지원, 메시지 암호화 및 인증과 함께 사용 가능한 것, 추가의 네트워크 시그널링이 적은 것(경량 퍼즐 클라이언트 프로토콜), 중간 노드가 플로딩 메시지를 식별하여 필터링할 수 있는 것(업스트림 필터링), 리플레이 및 사전 계산에 대해서 회복력이 있는 것, 퍼즐의 해답에 필요한 계산이 정당한 노드에 적합한 것, 및 수신 노드에서의 계산(퍼즐 검증)의 복잡도가 낮은 것을 포함한다.
본 발명은 바람직한 실시예에 관해 기술되었지만, 첨부의 청구범위에 의해 규정되는 바와 같은 본 발명의 취지 또는 범위로부터 벗어나지 않고, 본 발명에 대해 여러 가지의 변경 및/또는 수정이 이루어질수 있는 것은 당업자에게는 용이하게 이해될 것이다.
본 발명은 특정의 바람직한 실시예의 맥락에서 개시되었지만, 그 시스템, 디바이스 및 방법의 특정의 이점, 특징 및 측면은 여러 가지의 다른 실시예에서 실현될 수 있는 것이 이해될 것이다. 부가하여, 여기서 설명되는 여러 가지의 측면 및 특징은 개별적으로 실행될 수 있고, 서로 조합되거나 또는 서로 대체될 수 있는 것, 및 특징 및 측면의 여러 가지의 조합 및 부분적인 조합이 이루어질 수 있고 여전히 본 발명의 범위에 포함되는 것이 의도된다. 부가하여, 상기의 시스템 및 디바이스는 바람직한 실시예에서 설명된 모듈 및 기능의 모두를 포함할 필요는 없다.
여기서 설명되는 정보 및 신호는 임의의 여러 가지 다른 기술 및 기법을 이용하여 나타낼 수 있다. 예를 들면, 데이터, 명령, 커맨드, 정보, 신호, 비트, 심볼 및 칩은 전압, 전류, 전자파, 자계 또는 자기 입자, 광학장(optical field) 또는 광자, 또는 그 임의의 조합에 의해 나타낼 수가 있다.
실시예에 따라서는, 여기서 설명된 임의의 방법의 특정 동작, 이벤트 또는 기능은 다른 순서로 수행될 수 있고, 추가, 통합, 또는 모두 제외될 수 있다(예를 들면, 방법을 실행하기 위해, 설명된 모든 동작 또는 이벤트가 필요한 것은 아니다). 부가하여, 특정의 실시예에서는, 동작 또는 이벤트는 순차적이 아니라 동시에 수행될 수 있다.
Claims (15)
- 컴퓨터 네트워크에서 데이터를 송신하는 방법으로서,
상기 네트워크의 제 1 노드에서,
상기 제 1 노드와 구별되는 상기 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐의 논스(nonce)를 수신하는 단계와,
상기 퍼즐 서버 노드와 구별되는 상기 네트워크의 제 2 노드에 메시지를 송신하기 위한 상기 퍼즐의 적어도 하나의 해를, 상기 논스를 사용하여 결정하는 단계와,
데이터를 상기 제 2 노드에 송신하는 단계 - 상기 송신된 데이터는 메시지와 상기 퍼즐의 결정된 해를 포함함 -
를 포함하는 방법. - 컴퓨터 네트워크에서 데이터를 수신하는 방법으로서,
상기 컴퓨터 네트워크의 제 2 노드에서,
상기 제 2 노드와 구별되는 상기 네트워크의 퍼즐 서버 노드로부터 컴퓨팅 퍼즐의 논스를 수신하는 단계와,
상기 퍼즐 서버 노드와 구별되는 상기 네트워크의 제 1 노드로부터 데이터를 수신하는 단계 - 상기 수신된 데이터는 메시지와 상기 퍼즐의 해를 포함함 - 와,
상기 수신된 퍼즐의 해가 유효한지 여부를 상기 수신된 논스에 근거하여 결정하는 단계와,
상기 수신된 퍼즐의 해가 유효하다고 결정되면, 상기 수신된 메시지에 포함된 요구를 처리하는 단계
를 포함하는 방법. - 제 2 항에 있어서,
상기 수신된 퍼즐의 해가 유효하지 않다고 결정되면, 수신된 메시지를 폐기하는 단계를 더 포함하는 방법. - 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
상기 메시지는 상기 퍼즐의 해를 포함하는 방법. - 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,
상기 논스는 논스값을 포함하는 방법. - 제 5 항에 있어서,
상기 논스값은 상기 퍼즐의 송신 시각에 근거하는 방법. - 제 6 항에 있어서,
새로운 퍼즐이 사전 결정된 주기에 따라 주기적으로 수신되는 방법. - 제 6 항 또는 제 7 항에 있어서,
상기 논스값은 시각 동기 메시지에 포함되는 타임스탬프 정보에 근거하는 방법. - 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,
상기 컴퓨터 네트워크에서 시각 동기 정보에 근거하여 취득된 시각값이 상기 수신된 논스와 함께 상기 퍼즐의 파라미터로서 사용되는 방법. - 제 2 항 내지 제 9 항 중 어느 한 항에 있어서,
상기 수신된 퍼즐의 해가 상기 컴퓨터 네트워크의 임의의 노드로부터 이미 수신된 것인지 여부를 결정하는 단계를 더 포함하는 방법. - 제 1 항 내지 제 10 항 중 어느 한 항에 있어서,
데이터 스트림 식별자가 상기 수신된 논스와 함께 상기 퍼즐의 파라미터로서 사용되는 방법. - 청구항 1 내지 청구항 11 중 어느 한 항에 기재된 방법을 수행하도록 구성된 컴퓨터 네트워크에서의 네트워크 노드의 프로세서.
- 프로세서와, 상기 프로세서에 동작 가능하게 연결된 메모리와, 컴퓨터 네트워크 내에서 통신하는 네트워크 인터페이스를 구비하는 장치로서,
청구항 1 내지 청구항 11 중 어느 한 항에 기재된 방법을 수행하도록 구성되는
장치. - 컴퓨터 판독 가능 매체 내에 유형으로(tangibly) 구현되는 컴퓨터 프로그램 코드를 포함하는 컴퓨터 프로그램 제품으로서,
상기 컴퓨터 프로그램 코드는, 컴퓨터 시스템에 제공되어 실행되면, 상기 컴퓨터로 하여금 청구항 1 내지 청구항 11 중 어느 한 항에 기재된 방법을 수행하게 하는 명령을 포함하는
컴퓨터 프로그램 제품. - 청구항 14에 기재된 컴퓨터 프로그램을 압축 또는 인코딩을 통해서 나타내는 데이터 세트.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19305427.7 | 2019-03-29 | ||
EP19305427.7A EP3716570B1 (en) | 2019-03-29 | 2019-03-29 | Computational puzzles against dos attacks |
PCT/JP2020/004445 WO2020202780A1 (en) | 2019-03-29 | 2020-01-30 | Computational puzzles against dos attacks |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20210127971A true KR20210127971A (ko) | 2021-10-25 |
KR102581039B1 KR102581039B1 (ko) | 2023-09-20 |
Family
ID=66951865
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020217029537A KR102581039B1 (ko) | 2019-03-29 | 2020-01-30 | DoS 공격에 대항하는 계산 퍼즐 |
Country Status (7)
Country | Link |
---|---|
US (1) | US11785043B2 (ko) |
EP (1) | EP3716570B1 (ko) |
JP (1) | JP7427689B2 (ko) |
KR (1) | KR102581039B1 (ko) |
CN (1) | CN113632435B (ko) |
TW (1) | TWI770483B (ko) |
WO (1) | WO2020202780A1 (ko) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3716570B1 (en) * | 2019-03-29 | 2022-07-27 | Mitsubishi Electric R&D Centre Europe B.V. | Computational puzzles against dos attacks |
US11962703B2 (en) * | 2022-02-08 | 2024-04-16 | International Business Machines Corporation | Cooperative session orchestration |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014144555A1 (en) * | 2013-03-15 | 2014-09-18 | Robert Bosch Gmbh | System and method for mitigation of denial of service attacks in networked computing systems |
US20180092025A1 (en) * | 2015-04-16 | 2018-03-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method in a network node for providing a device access to a network |
Family Cites Families (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6944765B1 (en) * | 1999-12-21 | 2005-09-13 | Qualcomm, Inc. | Method of authentication anonymous users while reducing potential for “middleman” fraud |
US8321955B2 (en) | 2003-08-26 | 2012-11-27 | Wu-Chang Feng | Systems and methods for protecting against denial of service attacks |
KR100828372B1 (ko) * | 2005-12-29 | 2008-05-08 | 삼성전자주식회사 | 서비스 거부 공격으로부터 서버를 보호하는 방법 및 장치 |
US8793497B2 (en) * | 2008-05-09 | 2014-07-29 | Qualcomm Incorporated | Puzzle-based authentication between a token and verifiers |
WO2010003459A1 (en) * | 2008-07-09 | 2010-01-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Traffic control within a network architecture providing many-to-one transmission with denial-of service protection |
CN107534642B (zh) * | 2015-04-16 | 2020-11-10 | 瑞典爱立信有限公司 | 用于对用在客户端和服务器之间的通信中的计算难题进行建立的方法和设备 |
US10462138B2 (en) * | 2016-02-19 | 2019-10-29 | Google Llc | Application programming interface access controls |
JP2018011370A (ja) * | 2016-07-11 | 2018-01-18 | 株式会社日立製作所 | 電力系統監視システム、方法および装置 |
MX2019002441A (es) * | 2016-09-23 | 2019-06-12 | Apple Inc | Sincronizacion de tiempo de red. |
CN108270821A (zh) * | 2016-12-30 | 2018-07-10 | 深圳瀚德创客金融投资有限公司 | 用于区块链网络中的区块生成方法和网络节点 |
CN106850603B (zh) * | 2017-01-19 | 2020-01-07 | 北京梆梆安全科技有限公司 | 一种白盒密码双向身份认证方法、终端、服务端及系统 |
US11270276B1 (en) * | 2017-01-25 | 2022-03-08 | State Farm Mutual Automobile Insurance Company | Systems and methods for blockchain-based payments |
US10861015B1 (en) * | 2017-01-25 | 2020-12-08 | State Farm Mutual Automobile Insurance Company | Blockchain based account funding and distribution |
EP3425845A1 (de) * | 2017-07-05 | 2019-01-09 | Siemens Aktiengesellschaft | Verfahren und vorrichtung zum erzeugen eines kryptographischen zeitstempels für ein digitales dokument auf mehrheitsbasis |
US11979490B2 (en) * | 2017-10-24 | 2024-05-07 | 0Chain Corp. | Non-fungible token blockchain processing |
US11171791B2 (en) * | 2019-01-15 | 2021-11-09 | 0Chain, LLC | Systems and methods of aggregate signing of digital signatures on multiple messages simultaneously using key splitting |
CN107888615B (zh) * | 2017-12-01 | 2021-07-02 | 郑州云海信息技术有限公司 | 一种节点注册的安全认证方法 |
US20190197130A1 (en) * | 2017-12-21 | 2019-06-27 | Microsoft Technology Licensing, Llc | Ensuring consistency in distributed incremental content publishing |
KR102610127B1 (ko) * | 2018-04-26 | 2023-12-04 | 주식회사 넥슨코리아 | 전자 지갑을 이용한 암호화폐의 거래 서비스를 제공하는 장치 및 방법 |
CN108876332B (zh) * | 2018-06-04 | 2020-09-22 | 清华大学 | 一种基于生物特征标记认证的区块链安全交易方法及装置 |
US11153070B2 (en) * | 2018-09-11 | 2021-10-19 | International Business Machines Corporation | Access to data broadcast in encrypted form based on blockchain |
GB2585816A (en) * | 2018-12-12 | 2021-01-27 | Univ York | Proof-of-work for blockchain applications |
US20220029813A1 (en) * | 2018-12-14 | 2022-01-27 | Sony Group Corporation | Communication network node, methods, and a mobile terminal |
US20200210584A1 (en) * | 2018-12-31 | 2020-07-02 | Shape Security, Inc. | Deterministic Reproduction of Client/Server Computer State or Output Sent to One or More Client Computers |
ES2854289T3 (es) * | 2019-01-16 | 2021-09-21 | Siemens Ag | Procedimiento, equipos y sistema para proporcionar registros de datos con seguridad protegida |
AU2020217563A1 (en) * | 2019-02-05 | 2021-09-30 | Ethopass, Llc | Security system and related methods |
WO2020178752A1 (en) * | 2019-03-04 | 2020-09-10 | nChain Holdings Limited | Method of using a blockchain |
EP3713189A1 (de) * | 2019-03-22 | 2020-09-23 | Siemens Aktiengesellschaft | Intrusionserkennung bei computersystemen |
EP3716570B1 (en) * | 2019-03-29 | 2022-07-27 | Mitsubishi Electric R&D Centre Europe B.V. | Computational puzzles against dos attacks |
-
2019
- 2019-03-29 EP EP19305427.7A patent/EP3716570B1/en active Active
-
2020
- 2020-01-30 WO PCT/JP2020/004445 patent/WO2020202780A1/en active Application Filing
- 2020-01-30 CN CN202080024045.6A patent/CN113632435B/zh active Active
- 2020-01-30 JP JP2021562440A patent/JP7427689B2/ja active Active
- 2020-01-30 US US17/427,724 patent/US11785043B2/en active Active
- 2020-01-30 KR KR1020217029537A patent/KR102581039B1/ko active IP Right Grant
- 2020-03-23 TW TW109109604A patent/TWI770483B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014144555A1 (en) * | 2013-03-15 | 2014-09-18 | Robert Bosch Gmbh | System and method for mitigation of denial of service attacks in networked computing systems |
US20180092025A1 (en) * | 2015-04-16 | 2018-03-29 | Telefonaktiebolaget Lm Ericsson (Publ) | Method in a network node for providing a device access to a network |
Also Published As
Publication number | Publication date |
---|---|
TWI770483B (zh) | 2022-07-11 |
JP2022517046A (ja) | 2022-03-03 |
EP3716570B1 (en) | 2022-07-27 |
CN113632435B (zh) | 2023-04-18 |
US20220116418A1 (en) | 2022-04-14 |
EP3716570A1 (en) | 2020-09-30 |
KR102581039B1 (ko) | 2023-09-20 |
JP7427689B2 (ja) | 2024-02-05 |
US11785043B2 (en) | 2023-10-10 |
CN113632435A (zh) | 2021-11-09 |
TW202037125A (zh) | 2020-10-01 |
WO2020202780A1 (en) | 2020-10-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Perrig et al. | Efficient authentication and signing of multicast streams over lossy channels | |
US20150067796A1 (en) | Method for statistical object identification | |
Zhang et al. | Shortmac: efficient data-plane fault localization. | |
US7290281B1 (en) | Method and apparatus for cryptographically blocking network denial of service attacks based on payload size | |
KR102581039B1 (ko) | DoS 공격에 대항하는 계산 퍼즐 | |
Cheng et al. | Opportunistic piggyback marking for IP traceback | |
Önal et al. | Security improvements for IEEE 1588 Annex K: Implementation and comparison of authentication codes | |
Heer et al. | Alpha: an adaptive and lightweight protocol for hop-by-hop authentication | |
US10742602B2 (en) | Intrusion prevention | |
US9667650B2 (en) | Anti-replay checking with multiple sequence number spaces | |
EP3766223B1 (en) | Defeating man-in-the-middle attacks in one leg of 1+1 redundant network paths | |
Liu et al. | Remote attestation for low-end prover devices with post-quantum capabilities | |
Mbarek et al. | BFAN: A bloom filter-based authentication in wireless sensor networks | |
Jin et al. | Future-proofing Secure V2V Communication against Clogging DoS Attacks | |
Groza et al. | On the use of one-way chain based authentication protocols in secure control systems | |
Ordu et al. | RPL Authenticated Mode Evaluation: Authenticated Key Exchange and Network Behavioral | |
CN114826602B (zh) | 安全感知的时间敏感网络调度方法、系统、装置及介质 | |
Sairam et al. | Coloring networks for attacker identification and response | |
Narayanan et al. | TLS cipher suite: Secure communication of 6LoWPAN devices | |
CN115426116B (zh) | 一种基于动态密钥的加密哈希跳变方法 | |
Ming-Hao | The security analysis and attacks detection of OSPF routing protocol | |
Ashraf et al. | Design and Implementation of Lightweight Certificateless Secure Communication Scheme on Industrial NFV-Based IPv6 Virtual Networks | |
Huang | Loft: Low-overhead freshness transmission in sensor networks | |
Fragkiadakis | DTLS Connection Identifiers for Secure Session Resumption in Constrained IoT Devices | |
Guštin | CAN Bus Security protocol specification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |