KR102176118B1 - Method for integrity mutual verification in a resource rich environment - Google Patents

Method for integrity mutual verification in a resource rich environment Download PDF

Info

Publication number
KR102176118B1
KR102176118B1 KR1020180141855A KR20180141855A KR102176118B1 KR 102176118 B1 KR102176118 B1 KR 102176118B1 KR 1020180141855 A KR1020180141855 A KR 1020180141855A KR 20180141855 A KR20180141855 A KR 20180141855A KR 102176118 B1 KR102176118 B1 KR 102176118B1
Authority
KR
South Korea
Prior art keywords
electronic device
integrity
devices
code
hash
Prior art date
Application number
KR1020180141855A
Other languages
Korean (ko)
Other versions
KR20200057438A (en
Inventor
임강빈
이경률
Original Assignee
순천향대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 순천향대학교 산학협력단 filed Critical 순천향대학교 산학협력단
Priority to KR1020180141855A priority Critical patent/KR102176118B1/en
Publication of KR20200057438A publication Critical patent/KR20200057438A/en
Application granted granted Critical
Publication of KR102176118B1 publication Critical patent/KR102176118B1/en

Links

Images

Classifications

    • 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
    • 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/06Cryptographic 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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • H04L2209/38

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Storage Device Security (AREA)

Abstract

일 실시예에 따른 무결성 검증 방법은, 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 단계; 코드에 대하여 생성된 해시 블록과 상기 전자 기기와 관련된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 단계; 및 상기 코드의 무결성이 검증됨에 따라 상기 전자 기기 이외의 다른 기기들로부터 상기 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 단계를 포함할 수 있다. An integrity verification method according to an embodiment includes the steps of creating a block chain by connecting hash blocks generated from respective electronic devices; Verifying the integrity of the code by comparing the hash block generated for the code with the block chain related to the electronic device; And performing mutual verification on the hash block associated with the electronic device from devices other than the electronic device as the integrity of the code is verified.

Description

자원이 충분한 환경에서의 무결성 상호 검증 방안{METHOD FOR INTEGRITY MUTUAL VERIFICATION IN A RESOURCE RICH ENVIRONMENT}Integrity Mutual Verification Method in an Environment with Sufficient Resources {METHOD FOR INTEGRITY MUTUAL VERIFICATION IN A RESOURCE RICH ENVIRONMENT}

아래의 설명은 무결성을 검증하는 기술에 관한 것으로, 자원이 충분한 환경에서의 무결성 상호 검증 방법 및 장치에 관한 것이다.The following description relates to a technique for verifying integrity, and to a method and apparatus for mutual verification of integrity in an environment with sufficient resources.

일반적으로 블록체인(blockchain)은 P2P(peer-to-peer) 네트워크에 의해 생성되고 관리되는 위변조 불가능한 분산 저장소이다. 블록체인은 트랜잭션(쌍방간의 쪼갤 수 없는 단위 작업)으로 생성된 데이터 블록들을 체인(chain) 형태로 잇따라 연결한 모음을 의미한다. 이전 블록에 다름 블록을 연이어 암호화하고 과반수가 넘는 사용자가 동의한 데이터를 실제 데이터로 인정하기 때문에, 한번 기록된 데이터는 위조 또는 변조가 불가능하다. 블록체인의 대표적인 응용사례는 암호화폐의 거래 과정을 기록하는 분산화된 전자 화폐인 비트코인(bitcoin)이 있다. 블록 체인에는 일정 시간 동안 사용자들 간에 발생되는 확정된 거래 내역이 저장될 수 있다. 그리고, 많은 사용자들은 블록 체인 사본을 각자 갖고 있으며, 거래 내역은 모두에게 공개될 수 있다. 이와 같이, 과반수 가 넘는 사용자가 동의한 거래 내역만 실제 데이터로 인정되고, 영구적으로 보관할 블록으로 묶여 저장될 수 있다.In general, a blockchain is a non-forgery distributed storage created and managed by a peer-to-peer (P2P) network. Blockchain refers to a collection of data blocks created by transactions (a unit operation that cannot be split between two parties) connected one after another in the form of a chain. Different from the previous block Since the block is successively encrypted and the data agreed by more than half of the users is recognized as real data, once recorded data cannot be forged or altered. A typical application example of a blockchain is bitcoin, a decentralized electronic money that records the transaction process of cryptocurrency. The block chain can store confirmed transaction details that occur between users for a certain period of time. And, many users each have a copy of the blockchain, and transaction details can be made public. In this way, only transaction details agreed by more than half of the users are recognized as real data, and can be stored in blocks to be permanently stored.

일례로, 한국공개특허 제10-2018-0089682호는 블록체인 기반의 데이터 무결성을 검증하는 기술에 관한 것으로, 적어도 하나의 데이터가 저장된 데이터를 그룹화하고, 그룹화된 데이터의 요소들을 체인화하고, 체인화된 데이터를 블록체인에 저장하는 구성을 개시하고 있다. For example, Korean Patent Laid-Open No. 10-2018-0089682 relates to a technology for verifying the integrity of data based on a blockchain, grouping data in which at least one data is stored, chaining elements of the grouped data, and chaining It discloses a configuration for storing data in a blockchain.

상태기계를 포함한 비정상행위를 탐지하는 핵심적인 코드의 위/변조를 탐지하기 위하여 실행되는 코드의 무결성을 검증하여 비정상행위의 탐지가 무력화되는 것을 방지하기 위한 자가 점검 방법을 제공할 수 있다. In order to detect forgery/modification of core codes that detect abnormal behaviors including state machines, it is possible to provide a self-checking method to prevent the detection of abnormal behaviors from being neutralized by verifying the integrity of the executed code.

이를 위하여 블록체인을 활용한 자가 점검 방법을 제공할 수 있다. 구체적으로, 전자 기기에서 블록체인을 통하여 코드에 대한 무결성을 검증하고, 전자 기기와 동일한 그룹에 포함된 다른 기기들로부터 상호 검증이 수행되는 방법을 제공할 수 있다. For this, a self-checking method using blockchain can be provided. Specifically, it is possible to provide a method in which an electronic device verifies the integrity of a code through a block chain, and mutual verification is performed from other devices included in the same group as the electronic device.

무결성 검증 장치에 의해 수행되는 무결성 검증 방법은, 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 단계; 코드에 대하여 생성된 해시 블록과 상기 전자 기기와 관련된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 단계; 및 상기 코드의 무결성이 검증됨에 따라 상기 전자 기기 이외의 다른 기기들로부터 상기 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 단계를 포함할 수 있다. The integrity verification method performed by the integrity verification device includes: creating a block chain by connecting hash blocks generated from respective electronic devices; Verifying the integrity of the code by comparing the hash block generated for the code with the block chain related to the electronic device; And performing mutual verification on the hash block associated with the electronic device from devices other than the electronic device as the integrity of the code is verified.

상기 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 단계는, 복수 개의 기기들을 그룹화함에 따라 적어도 하나 이상의 그룹을 생성되고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 각각의 기기들이 자신의 코드를 해시한 해시 블록을 생성하고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 다른 기기들로부터 상기 다른 기기들에 대한 코드를 해시함에 따라 생성된 해시 블록을 전달받는 단계를 포함할 수 있다. In the step of creating a block chain by connecting the hash blocks generated from the respective electronic devices, at least one or more groups are generated by grouping a plurality of devices, and each included in each of the generated at least one or more groups Generating a hash block by hashing their own code, and receiving a hash block generated by hashing codes for the other devices from other devices included in each of the generated at least one or more groups It may include.

상기 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 단계는, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 전자 기기들 간에 상기 자신의 해시 블록 및 상기 전달받은 다른 기기들에 대한 코드를 해시한 해시 블록을 블록체인으로 연결하여 저장하는 단계를 포함할 수 있다. The step of creating a block chain by connecting the hash blocks generated from each of the electronic devices includes the own hash block and the received other devices between electronic devices included in each of the generated at least one or more groups. It may include the step of storing the hash block, which hashed the code for, by connecting it to a blockchain.

상기 코드에 대하여 생성된 해시 블록을 상기 생성된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 단계는, 상기 전자 기기에서 실행 중인 또는 실행을 위하여 로드되는 코드에 대하여 해시 블록을 생성하고, 상기 전자 기기에서 생성된 해시 블록과 상기 전자 기기에서 소유한 블록체인에서의 해시 블록을 비교하는 단계를 포함할 수 있다. The step of verifying the integrity of the code through the comparison of the generated block chain with the hash block generated for the code includes generating a hash block for the code being executed or loaded for execution in the electronic device, and the It may include comparing the hash block generated in the electronic device with the hash block in the block chain owned by the electronic device.

상기 코드의 무결성이 검증됨에 따라 상기 전자 기기 이외의 다른 기기들로부터 상기 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 단계는, 상호 검증을 위하여 상기 전자 기기에서 생성된 해시 블록을 상기 전자 기기와 동일한 그룹에 포함된 다른 기기들에게 전달하고, 상기 다른 기기들로부터 다른 기기들에 대한 각각의 블록체인에서의 상기 전자 기기에 대응하는 해시 블록과 상기 전자 기기로부터 전달받은 해시 블록이 비교되어 무결성 검증이 수행되는 단계를 포함할 수 있다. The step of performing mutual verification on the hash block associated with the electronic device from devices other than the electronic device as the integrity of the code is verified may include: a hash block generated by the electronic device for mutual verification to the electronic device Integrity is transmitted to other devices included in the same group as and the hash block corresponding to the electronic device in each block chain for the other devices from the other devices and the hash block transmitted from the electronic device are compared. It may include a step in which verification is performed.

무결성 검증 장치는, 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 블록체인 생성부; 코드에 대하여 생성된 해시 블록과 상기 전자 기기와 관련된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 무결성 검증부; 및 상기 코드의 무결성이 검증됨에 따라 상기 전자 기기 이외의 다른 기기들로부터 상기 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 상호 검증부를 포함할 수 있다. The integrity verification apparatus includes: a block chain generation unit that generates a block chain by connecting hash blocks generated from respective electronic devices; An integrity verification unit verifying the integrity of the code by comparing the hash block generated for the code with the block chain related to the electronic device; And a mutual verification unit that performs mutual verification on a hash block related to the electronic device from devices other than the electronic device as the integrity of the code is verified.

상기 블록체인 생성부는, 복수 개의 기기들을 그룹화함에 따라 적어도 하나 이상의 그룹을 생성되고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 각각의 기기들이 자신의 코드를 해시한 해시 블록을 생성하고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 다른 기기들로부터 상기 다른 기기들에 대한 코드를 해시함에 따라 생성된 해시 블록을 전달받을 수 있다. The blockchain generation unit generates at least one group by grouping a plurality of devices, and generates a hash block in which each device included in each of the generated at least one group hashed its own code, and the A hash block generated by hashing codes for the other devices may be received from other devices included in each of the at least one generated group.

상기 블록체인 생성부는, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 전자 기기들 간에 상기 자신의 해시 블록 및 상기 전달받은 다른 기기들에 대한 코드를 해시한 해시 블록을 블록체인으로 연결하여 저장할 수 있다. The blockchain generation unit may connect and store the own hash block between electronic devices included in each of the generated at least one or more groups and a hash block obtained by hashing codes for the other devices through a block chain. have.

상기 무결성 검증부는, 상기 전자 기기에서 실행 중인 또는 실행을 위하여 로드되는 코드에 대하여 해시 블록을 생성하고, 상기 전자 기기에서 생성된 해시 블록과 상기 전자 기기에서 소유한 블록체인에서의 해시 블록을 비교할 수 있다. The integrity verification unit may generate a hash block for a code that is being executed in the electronic device or loaded for execution, and can compare a hash block generated in the electronic device with a hash block in a block chain owned by the electronic device. have.

상기 상호 검증부는, 상호 검증을 위하여 상기 전자 기기에서 생성된 해시 블록을 상기 전자 기기와 동일한 그룹에 포함된 다른 기기들에게 전달하고, 상기 다른 기기들로부터 다른 기기들에 대한 각각의 블록체인에서의 상기 전자 기기에 대응하는 해시 블록과 상기 전자 기기로부터 전달받은 해시 블록이 비교되어 무결성 검증이 수행될 수 있다. The mutual verification unit transmits the hash block generated by the electronic device for mutual verification to other devices included in the same group as the electronic device, and transmits the hash block generated by the electronic device to the other devices in each block chain for the other devices. Integrity verification may be performed by comparing a hash block corresponding to the electronic device with a hash block transmitted from the electronic device.

블록체인을 활용하여 검증 대상과 관련된 코드의 무결성을 그룹 내의 멤버들이 상호 인증함으로써 코드의 조작을 탐지할 수 있다. By utilizing the blockchain, the integrity of the code related to the verification target can be mutually authenticated by members in the group to detect the manipulation of the code.

도 1은 일 실시예에 따른 무결성 검증 장치의 구성을 설명하기 위한 블록도이다.
도 2는 일 실시예에 따른 무결성 검증 장치에서 무결성 검증 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 블록체인을 활용한 자가 점검 로직 적용 방법이다.
도 4는 일 실시예에 따른 블록체인을 활용한 자가 점검 로직 적용 방안에서의 무결성을 검증하는 동작을 설명하기 위한 도면이다.
1 is a block diagram illustrating a configuration of an integrity verification apparatus according to an embodiment.
2 is a flowchart illustrating an integrity verification method in an integrity verification apparatus according to an embodiment.
3 is a method of applying self-checking logic using a block chain according to an embodiment.
FIG. 4 is a diagram for explaining an operation of verifying integrity in a method of applying a self-check logic using a block chain according to an embodiment.

이하, 실시예를 첨부한 도면을 참조하여 상세히 설명한다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings.

실시예에서는 정상 및 비정상적인 행위를 규칙으로 명세하고, 명세한 규칙을 위반하는 행위를 추적함으로써 신종 및 변종의 악성코드를 탐지한다. 다시 말해서, 비정상적인 행위를 탐지하는 주체는 명세한 규칙이 적용된 상태기계이며, 비정상적인 상태를 추적함으로써 악성코드를 탐지한다. 이에 따라 상태를 점검하는 상태기계의 코드는 비정상적인 행위를 탐지하는 핵심적인 코드이고 그 외 전자 기기를 운용하기 위한 센서 및 액츄에이터 등을 동작시키는 실행코드도 핵심적인 코드이며, 해당 코드가 위/변조되는 경우에는 제안하는 규칙 명세 기반의 악의적인 행위 탐지 방안이 무력화될 가능성이 존재한다. 이에 실시예에서는 상태기계를 포함한 비정상행위를 탐지하는 핵심적인 코드의 위/변조를 탐지하기 위하여 실행되는 코드의 무결성을 검증함으로써 비정상행위의 탐지가 무력화되는 것을 방지하기 위한 자가 점검 로직에 대한 동작을 설명하기로 한다.In the embodiment, normal and abnormal behaviors are specified as rules, and new and variant malicious codes are detected by tracking behaviors that violate the specified rules. In other words, the subject that detects abnormal behavior is a state machine to which specified rules are applied, and detects malicious codes by tracking abnormal conditions. Accordingly, the code of the state machine that checks the state is the core code that detects abnormal behavior, and the execution code that operates sensors and actuators for operating other electronic devices is also the core code, and the corresponding code is forged/modified. In this case, there is a possibility that the proposed rule specification-based malicious behavior detection method will be neutralized. Accordingly, in the embodiment, the operation of the self-checking logic to prevent the detection of abnormal behaviors from being neutralized is performed by verifying the integrity of the code executed to detect forgery/modification of the core code that detects abnormal behavior including the state machine. I will explain.

도 1은 일 실시예에 따른 무결성 검증 장치의 구성을 설명하기 위한 블록도이고, 도 2는 일 실시예에 따른 무결성 검증 장치에서 무결성 검증 방법을 설명하기 위한 흐름도이다. 1 is a block diagram illustrating a configuration of an integrity verification apparatus according to an embodiment, and FIG. 2 is a flowchart illustrating an integrity verification method in an integrity verification apparatus according to an embodiment.

무결성 검증 장치(100)의 프로세서는 블록체인 생성부(110), 무결성 검증부(120) 및 상호 검증 수행부(130)를 포함할 수 있다. 이러한 무결성 검증 장치(100)의 프로세의 구성요소들은 무결성 검증 장치에 저장된 프로그램 코드가 제공하는 제어 명령에 따라 프로세서에 의해 수행되는 서로 다른 기능들(different functions)의 표현들일 수 있다. 프로세서 및 프로세서의 구성요소들은 도 2의 무결성 검증 방법이 포함하는 단계들(210 내지 230)을 수행하도록 무결성 검증 장치를 제어할 수 있다. 이때, 프로세서 및 프로세서의 구성요소들은 메모리가 포함하는 운영체제의 코드와 적어도 하나의 프로그램의 코드에 따른 명령(instruction)을 실행하도록 구현될 수 있다.The processor of the integrity verification apparatus 100 may include a block chain generation unit 110, an integrity verification unit 120, and a mutual verification execution unit 130. The components of the process of the integrity verification apparatus 100 may be expressions of different functions performed by the processor according to a control command provided by a program code stored in the integrity verification apparatus. The processor and components of the processor may control the integrity verification device to perform steps 210 to 230 included in the integrity verification method of FIG. 2. In this case, the processor and the components of the processor may be implemented to execute an instruction according to the code of the operating system included in the memory and the code of at least one program.

프로세서는 무결성 검증 방법을 위한 프로그램의 파일에 저장된 프로그램 코드를 메모리에 로딩할 수 있다. 예를 들면, 무결성 검증 장치에서 프로그램이 실행되면, 프로세서는 운영체제의 제어에 따라 프로그램의 파일로부터 프로그램 코드를 메모리에 로딩하도록 무결성 검증 장치를 제어할 수 있다. 이때, 프로세서 및 프로세서가 포함하는 블록체인 생성부(110), 무결성 검증부(120) 및 상호 검증 수행부(130) 각각은 메모리에 로딩된 프로그램 코드 중 대응하는 부분의 명령을 실행하여 이후 단계들(210 내지 230)을 실행하기 위한 프로세서의 서로 다른 기능적 표현들일 수 있다. The processor may load the program code stored in the program file for the integrity verification method into the memory. For example, when a program is executed in the integrity verification device, the processor may control the integrity verification device to load the program code from the program file into the memory under the control of the operating system. At this time, each of the processor and the block chain generation unit 110, the integrity verification unit 120, and the mutual verification execution unit 130 included in the processor execute a command of a corresponding part of the program code loaded into the memory, and follow the steps. It may be different functional expressions of a processor for executing (210 to 230).

단계(210)에서 블록체인 생성부(110)는 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성할 수 있다. 블록체인 생성부(110)는 복수 개의 기기들을 그룹화함에 따라 적어도 하나 이상의 그룹을 생성할 수 있다. 블록체인 생성부(110)는 생성된 적어도 하나 이상의 그룹의 각각에 포함된 각각의 기기들이 자신의 코드를 해시한 해시 블록을 생성할 수 있다. 블록체인 생성부(110)는 생성된 적어도 하나 이상의 그룹의 각각에 포함된 다른 기기들로부터 다른 기기들에 대한 코드를 해시한 해시 블록이 생성되고, 생성된 다른 기기들에 대한 해시 블록을 전달받을 수 있다. 블록체인 생성부(110)는 생성된 적어도 하나 이상의 그룹의 각각에 포함된 전자 기기들 간에 자신의 해시 블록 및 전달받은 다른 기기들에 대한 코드를 해시한 해시 블록을 블록체인으로 연결하여 저장할 수 있다. In step 210, the block chain generation unit 110 may generate a block chain by connecting hash blocks generated from respective electronic devices. The block chain generator 110 may create at least one group by grouping a plurality of devices. The block chain generator 110 may generate a hash block in which devices included in each of the at least one group generated have their own code hashed. Blockchain generation unit 110 generates a hash block that hashed codes for other devices from other devices included in each of the at least one or more generated groups, and receives hash blocks for the generated other devices. I can. The blockchain generation unit 110 may store a hash block of its own between electronic devices included in each of the generated at least one group and a hash block obtained by hashing codes for other devices transmitted through a block chain. .

단계(220)에서 무결성 검증부(120)는 코드에 대하여 생성된 해시 블록과 상기 전자 기기와 관련된 블록체인의 비교를 통하여 코드의 무결성을 검증할 수 있다. 무결성 검증부(120)는 전자 기기에서 무결성 검증을 위하여 실행 중인 또는 실행을 위하여 로드되는 코드에 대하여 해시 블록을 생성할 수 있다. 무결성 검증부(120)는 전자 기기에서 생성된 해시 블록과 전자 기기에서 소유한 블록체인에서의 해시 블록을 비교할 수 있다. In step 220, the integrity verification unit 120 may verify the integrity of the code by comparing the hash block generated for the code with the block chain related to the electronic device. The integrity verification unit 120 may generate a hash block for a code that is being executed for integrity verification in the electronic device or is loaded for execution. The integrity verification unit 120 may compare a hash block generated in an electronic device with a hash block in a block chain owned by the electronic device.

단계(230)에서 상호 검증 수행부(130)는 코드의 무결성이 검증됨에 따라 전자 기기 이외의 다른 기기들로부터 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행될 수 있다. 상호 검증 수행부(130)는 상호 검증을 위하여 상기 전자 기기에서 생성된 해시 블록을 전자 기기와 동일한 그룹에 포함된 다른 기기들에게 전달할 수 있다. 상호 검증 수행부(130)는 다른 기기들로부터 다른 기기들에 대한 각각의 블록체인에서의 전자 기기에 대응하는 해시 블록과 전자 기기로부터 전달받은 해시 블록이 비교되어 무결성 검증이 수행될 수 있다. 상호 검증 수행부(130)는 해시 그룹을 전달한 기기 이외에, 그룹에 존재하는 다른 기기들에 대하여 무결성 검증이 수행될 수 있다. In step 230, as the integrity of the code is verified, the mutual verification performing unit 130 may perform mutual verification on the hash block related to the electronic device from devices other than the electronic device. The mutual verification performing unit 130 may transmit the hash block generated by the electronic device to other devices included in the same group as the electronic device for mutual verification. The mutual verification performing unit 130 may perform integrity verification by comparing a hash block corresponding to an electronic device in each block chain for other devices from other devices with a hash block transmitted from the electronic device. The mutual verification performing unit 130 may perform integrity verification on other devices existing in the group other than the device that has transmitted the hash group.

도 3은 일 실시예에 따른 블록체인을 활용한 자가 점검 로직 적용 방법이다.3 is a method of applying self-checking logic using a block chain according to an embodiment.

블록체인을 활용한 방안은 전자 기기(예를 들면, UAV)가 복잡한 연산을 위한 성능을 만족하고, 많은 정보를 저장할 충분한 저장공간을 확보한 경우, 그리고 다중의 전자 기기가 운용되는 상황에서 각 개체 간 통신이 가능하여 상호 검증이 가능한 경우, 또한 전원이 인가되는 상황이 아닌 전자 기기가 운용 중인 상황에서 주기적/비주기적으로 코드의 무결성을 검증할 경우에 적용이 가능하다. 이하, 전자 기기로 UAV(무인 비행기)를 예를 들어 설명하기로 한다. The method using the blockchain is when an electronic device (e.g., UAV) satisfies the performance for complex computation, secures sufficient storage space to store a lot of information, and when multiple electronic devices are operated, each entity This can be applied when cross-verification is possible because communication is possible, and when the integrity of the code is periodically/aperiodically verified in a situation in which an electronic device is operating rather than a situation in which power is applied. Hereinafter, a UAV (unmanned aerial vehicle) as an electronic device will be described as an example.

블록체인을 활용한 방안은 UAV가 구동되는 상황에서 공격자에 의하여 코드가 위/변조되지 않았음을 증명하기 위하여 구동되는 코드에 대하여 무결성을 검증하기 위한 블록체인을 생성하여 안전한 저장소에 저장하며, 이후 코드의 무결성을 검증하기 위한 요청을 받으면 현재 구동 중인 코드가 블록체인에 저장된 정보와 비교함으로써 무결성을 검증할 수 있다. In order to prove that the code has not been forged or altered by an attacker while the UAV is running, a block chain to verify the integrity of the running code is created and stored in a secure storage. Upon receiving a request to verify the integrity of the code, the code currently running can be verified by comparing it with information stored in the blockchain.

만약, 공격자가 특정 UAV를 공격하여 상태를 정상인 상태로 유지하는 코드로 변조한 경우에는 다른 UAV가 가진 블록정보와 변조된 코드의 블록정보가 달라지므로 코드가 변조된 것을 탐지하는 것이 가능하다. 이에 대한 검증 절차를 설명하기로 한다. If an attacker attacks a specific UAV and modulates it with a code that maintains a normal state, it is possible to detect that the code has been altered because the block information of the other UAV and the block information of the modulated code are different. The verification procedure for this will be described.

블록체인은 어떠한 정보를 당사자들만이 공유하는 기존의 방식과는 다르게, 당사자들이 아닌 참여하는 모든 개체가 정보를 공유함으로써 하나의 정보가 조작된다 하더라도 참여하는 다른 개체가 가진 공통된 정보를 토대로 정보의 신뢰성 검증이 가능하다. 이러한 특성으로 인하여 무결성 검증이 필요한 코드를 참여하는 개체가 공유하고 검증 시 해당 코드를 상호 검증함으로써 더욱 효과적으로 무결성을 검증할 수 있다. 특히, 공격 대상의 코드만 조작한다고 하더라도 참여하는 다른 개체가 가진 정보는 조작되지 않았기 때문에 무결성을 검증하는 것이 가능하며, 코드를 조작하기 위해서는 참여하는 개체의 최소 51% 이상의 개체가 가진 코드를 조작하여야만 무결성 검증을 무력화시킬 수 있으므로 방어적인 측면에서 매우 안전한 방안을 제공할 수 있다. 이러한 이유로 블록체인은 다중의 UAV가 운용되는 상황에서 반드시 보호되어야 하는 상태기계 코드 및 UAV 운용 코드의 무결성을 검증하기 위한 방안으로 활용이 가능하다.Blockchain is different from the existing method of sharing certain information only with the parties, even if one information is manipulated by all the participating entities, not the parties, the reliability of information based on the common information of other participating entities. Verification is possible. Due to this characteristic, it is possible to more effectively verify the integrity by sharing the code requiring integrity verification by participating entities and mutually verifying the code during verification. In particular, even if only the code of the attack target is manipulated, it is possible to verify integrity because the information of other participating entities has not been manipulated.In order to manipulate the code, the code of at least 51% of the participating entities must be manipulated. Since integrity verification can be disabled, a very safe method can be provided from a defensive aspect. For this reason, the blockchain can be used as a method to verify the integrity of state machine codes and UAV operating codes that must be protected in a situation where multiple UAVs are operated.

도 3에 도시된 바와 같이, UAV들이 그룹(300)을 구성하고 있을 수 있다. 이러한 그룹을 이루고 있는 상태에서, 각각의 UAV들(301, 302, 303)이 자신을 포함한 다른 UAV들에 대한 코드의 해시 블록을 생성하여 가질 수 있다. As shown in FIG. 3, UAVs may constitute a group 300. In a state in which such a group is formed, each of the UAVs 301, 302, and 303 may generate and have a hash block of codes for other UAVs including itself.

예를 들면, UAV A(301)는 자신의 코드(UAV A(301)의 코드)에 대한 해시 블록을 생성할 수 있다. UAV A(301)는 UAV A(301)의 코드에 대한 해시 블록을 저장할 수 있다. UAV A(301)는 UAV A(301)가 포함된 그룹 내의 다른 UAV B(302), UAB C(303)에게 UAV A(301)의 코드에 대한 해시 블록을 전달할 수 있다. UAV B(302), UAB C(303)는 UAV A(301)로부터 전달된 UAV A(301)의 해시 블록을 수신할 수 있다. UAV B(302)와 UAV C(303)는 UAV A(301)의 코드에 대한 해시 블록을 저장할 수 있다. For example, UAV A 301 may generate a hash block for its code (the code of UAV A 301). UAV A 301 may store a hash block for the code of UAV A 301. UAV A 301 may deliver a hash block for the code of UAV A 301 to other UAV B 302, UAB C 303 in the group in which UAV A 301 is included. UAV B 302 and UAB C 303 may receive the hash block of UAV A 301 transmitted from UAV A 301. UAV B 302 and UAV C 303 may store a hash block for the code of UAV A 301.

그리고, UAV B(302)도 UAV B(302)의 코드에 대한 해시 블록을 생성할 수 있다. UAV B(302)는 UAV B(302)의 코드에 대한 해시 블록을 저장할 수 있다. UAV B(302)는UAV A(301)와 UAV C(303)에게 UAV B(302)의 코드에 대한 해시 블록을 전달할 수 있다. UAV A(301)와 UAV C(303)는 UAV B(302)에 대한 해시 코드를 수신할 수 있다. 이때, UAV A(301)와 UAV C(303)는 기존의 UAV A(301)의 코드에 대한 해시 블록에 UAV B(302)의 코드에 대한 해시 블록을 체인 형태로 연결하여 블록체인을 생성할 수 있다. In addition, the UAV B 302 can also generate a hash block for the code of the UAV B 302. UAV B 302 may store a hash block for the code of UAV B 302. UAV B 302 may pass a hash block for the code of UAV B 302 to UAV A 301 and UAV C 303. UAV A 301 and UAV C 303 may receive a hash code for UAV B 302. At this time, UAV A (301) and UAV C (303) connect the hash block for the code of UAV B (302) to the hash block for the existing UAV A (301) code in a chain form to create a blockchain. I can.

마찬가지로, UAV C(303)도 UAV C(303)의 코드에 대한 해시 블록을 생성할 수 있다. UAV C(303)는 UAV A(301)와 UAV B(303)에게 UAV C(302)의 코드에 대한 해시 블록을 전달할 수 있다. UAV A(301)와 UAV B(302)는 UAV C(303)로부터 전달된 UAV C(303)의 해시 블록을 수신할 수 있다. 이때, UAV A(301)와 UAV B(302)는 기 생성된 블록체인에 UAV C(303)의 해시 블록을 연결시킬 수 있다. 다시 말해서, UAV A(301)와 UAV B(302)는UAV A(301)의 코드에 대한 해시 블록과 UAV B(302)의 코드에 대한 해시 블록을 연결한 블록체인에서 UAV C(303)의 해시 블록을 더 연결한 블록체인을 생성할 수 있다. Likewise, UAV C 303 may also generate a hash block for the code of UAV C 303. UAV C 303 may deliver a hash block for the code of UAV C 302 to UAV A 301 and UAV B 303. UAV A 301 and UAV B 302 may receive the hash block of UAV C 303 delivered from UAV C 303. At this time, UAV A (301) and UAV B (302) may connect the hash block of UAV C (303) to a previously created block chain. In other words, UAV A (301) and UAV B (302) are in the block chain that connects the hash block for the code of UAV A (301) and the hash block of the code of UAV B (302). You can create a blockchain with more hash blocks connected.

이러한 과정은 그룹 내의 모든 개체에서 동일하게 적용될 수 있으며, 그룹 내에 존재하는 개체들의 해시 블록을 연결하여 블록체인을 생성할 수 있다. 또한, 상기 그룹 이외에 존재하는 다른 그룹에도 동일한 프로세스가 적용될 수 있다. This process can be applied equally to all entities in a group, and a blockchain can be created by connecting hash blocks of entities in the group. Also, the same process may be applied to other groups other than the above group.

이와 같이 동일 그룹 내의 모든 UAV들(301, 302, 303)이 각각의 코드에 대한 해시 블록을 생성하여 블록체인으로 연결하면, 모든 UAV들(301, 302, 303)이 상대방의 코드에 대한 해시 블록을 소지하게 된다. 모든 UAV들(301, 302, 303)은 블록체인으로 연결된 해시 블록을 통하여 자신의 코드, 혹은 다른 UAV의 코드의 무결성을 검증할 수 있다.In this way, if all UAVs 301, 302, 303 in the same group create a hash block for each code and connect it to the blockchain, all UAVs 301, 302, 303 are hash blocks for the other's code. Will be in possession. All UAVs 301, 302, 303 can verify the integrity of their own code or the code of other UAVs through a hash block connected through a blockchain.

예를 들어, UAV A(301)에서 실행 중인, 혹은 실행을 위하여 로드되는 코드의 무결성을 검증하기 위해서는 UAV A(301)는 상기 코드의 해시 블록을 생성할 수 있다. UAV A(301)는 생성된 상기 코드의 해시 블록을 UAV A(301)가 소유한 자신의 블록체인, 다시 말해서, UAV A(301)의 블록체인에 연결된 해시 블록과 비교하여 무결성을 검증할 수 있다. 예를 들면, UAV A(301)는 무결성을 검증하기 위한 코드를 해시한 해시 블록과 UAV A(301)의 블록체인에 존재하는 해시 블록을 매칭하여 일치하는 해시 블록의 여부를 판단할 수 있다. For example, in order to verify the integrity of a code running in or loaded for execution in UAV A 301, UAV A 301 may generate a hash block of the code. UAV A (301) can verify the integrity by comparing the hash block of the generated code with its own blockchain owned by UAV A (301), that is, a hash block connected to the blockchain of UAV A (301). have. For example, the UAV A 301 may determine whether the hash block is a matched hash block by matching the hash block in which the code for verifying the integrity is hashed and the hash block existing in the blockchain of the UAV A 301.

또한, 상호 검증을 위하여 UAV A(301)는 UAV A(301)에서 생성된 무결성을 검증하기 위한 코드의 해시 블록을 동일한 그룹 내에 존재하는 UAV B(302)와 UAV C(303)에게 전달할 수 있다. UAV B(302)와 UAV C(303)는 UAV A(301)로부터 해시 블록을 수신할 수 있다. UAV B(302)와 UAV C(303)는 UAV A(301)로부터 수신한 해시 블록을 UAV B(302)와 UAV C(303) 각각에서 소유하고 있는 블록체인에서 UAV A(301)에 해당하는 해시 블록과 비교하여 무결성을 검증할 수 있다.In addition, for mutual verification, the UAV A 301 may transmit a hash block of the code for verifying the integrity generated by the UAV A 301 to the UAV B 302 and UAV C 303 existing in the same group. . UAV B 302 and UAV C 303 may receive a hash block from UAV A 301. UAV B (302) and UAV C (303) correspond to UAV A (301) in the blockchain owned by UAV B (302) and UAV C (303) respectively. Integrity can be verified against a hash block.

따라서, 공격자가 UAV A(301)를 장악하여 실행되는 코드를 조작하고 UAV A(301)에 저장된 해시 블록을 조작된 코드에 대응하는 해시 블록을 생성하여 조작하더라도, UAV B(302)와 UAV C(303)가 각각의 블록체인을 통하여 조작되지 않은 순수한 UAV A(301)에서 실행되는 코드의 해시 블록을 보유하기 때문에 상호 검증에서 무결성을 증명하지 못하므로 UAV A(301)의 코드가 조작되었음을 탐지하는 것이 가능하다.Therefore, even if an attacker takes control of UAV A (301) and manipulates the code that is executed and generates and manipulates the hash block stored in UAV A (301) by creating a hash block corresponding to the manipulated code, UAV B (302) and UAV C It is detected that the code of UAV A (301) has been tampered because 303 cannot prove its integrity through mutual verification because it holds a hash block of the code that is executed on the pure UAV A (301) that has not been manipulated through each blockchain. It is possible to do.

공격자가 특정 UAV에 공격을 시도하여 상태 기계와 관련된 코드 중 일부를 변조하여 항상 옳은 상태임을 나타내도록 한 경우, 제안하는 블록체인을 활용한 자가 점검 로직에서의 무결성을 검증하는 방안을 도 4를 통하여 설명하기로 한다. When an attacker attempts to attack a specific UAV and modulates some of the code related to the state machine to indicate that it is always in the correct state, a method for verifying the integrity in the self-check logic using the proposed blockchain is shown in FIG. I will explain.

도 4는 일 실시예에 따른 블록체인을 활용한 자가 점검 로직 적용 방안에서의 무결성을 검증하는 동작을 설명하기 위한 도면이다. FIG. 4 is a diagram for explaining an operation of verifying integrity in a method of applying self-check logic using a block chain according to an embodiment.

도 4에서, 공격자는 그룹(300)으로 임무를 수행하는 UAV들(301, 302, 303) 중 하나의 UAV에 침투하여 임무를 수행하지 못하도록 방해하려고 하며, 이를 위하여 모터의 작동을 주기적으로 중단시키는 코드를 삽입하고 조작함으로써 운용이 불가능하도록 공격을 시도한다고 가정한다. In FIG. 4, an attacker attempts to infiltrate one of the UAVs 301, 302, and 303 performing a mission as a group 300 to prevent it from performing the mission, and for this purpose, periodically stop the operation of the motor. It is assumed that an attack is attempted to make it impossible to operate by inserting and manipulating code.

Step 1. 일례로, 공격자(400)는 UAV B(302)의 코드 중 모터를 제어하는 코드에서 타이머를 동작시켜 1초마다 주기적으로 모터를 중지시키는 코드를 삽입할 수 있다. 또한, 공격자(400)가 시도하는 비정상행위를 탐지하지 못하도록 모터의 상태를 항상 정상으로 유지시키는 코드로 조작할 수 있다.Step 1. As an example, the attacker 400 can insert a code that periodically stops the motor every second by operating a timer in the code of the UAV B 302 that controls the motor. In addition, it is possible to manipulate a code that always maintains a normal state of the motor so as not to detect an abnormal behavior attempted by the attacker 400.

Step 2. 그룹 내의 UAV들(301, 302, 303)은 특정 주기, 혹은 그룹(300)의 리더가 무결성을 검증하기 위하여 멤버에게 요청할 경우, 자신들이 가진 블록체인을 기반으로 무결성을 검증할 수 있다. 이때, 그룹의 리더는 예를 들면, 그룹에 포함된 각각의 UAV 중 하나가 랜덤으로 선택될 수 있으며, 그룹의 리더는 주기적으로 또는 비주기적으로 변경될 수 있다. 또한, 그룹의 리더 이외의 나머지 UAV들은 멤버가 된다. Step 2. UAVs (301, 302, 303) in the group can verify the integrity based on their own blockchain at a specific period or when the leader of the group 300 requests the member to verify the integrity. . In this case, the leader of the group may be randomly selected, for example, one of each UAV included in the group, and the leader of the group may be changed periodically or aperiodically. In addition, other UAVs other than the group leader become members.

UAV A(301)는 UAV A(301)의 코드에 해당하는 해시 블록을 생성하여 UAV B(302)와 UAV C(303)에 전달할 수 있다. UAV B(302)와 UAV C(303)는 UAV A(301)로부터 전달된 해시 블록을 수신할 수 있다. UAV B(302)와 UAV C(303)는 UAV B(302)와 UAV C(303) 각각이 소유한 블록체인에서 UAV A(301)에 해당하는 해시 블록과 UAV A(301)로부터 전달받은 해시 블록을 비교함으로써 무결성을 검증할 수 있다. 만약, UAV B(302)와 UAV C(303)는 UAV A(301)는 UAV B(302)와 UAV C(303) 각각이 소유한 블록체인에서 UAV A(301)에 해당하는 해시 블록과 UAV A(301)로부터 전달받은 해시 블록이 일치함을 판단함에 따라 공격이 시도되지 않았으며, 코드의 조작이 없으므로 무결한 것으로 판단한다.UAV A 301 may generate a hash block corresponding to the code of UAV A 301 and transmit it to UAV B 302 and UAV C 303. UAV B 302 and UAV C 303 may receive a hash block transferred from UAV A 301. UAV B (302) and UAV C (303) are the hash blocks corresponding to UAV A (301) in the blockchain owned by UAV B (302) and UAV C (303) and the hash received from UAV A (301). Integrity can be verified by comparing blocks. If UAV B (302) and UAV C (303) are UAV A (301), UAV B (302) and UAV C (303) have a hash block and UAV corresponding to UAV A (301) in the blockchain owned respectively. As the hash block received from A 301 is determined to match, the attack has not been attempted, and since there is no code manipulation, it is determined to be innocent.

Step 3. UAV C(303)는 UAV C(303)의 코드에 해당하는 해시 블록을 생성하여 UAV A(301)와 UAV B(302)에 전달할 수 있다. UAV A(301)와 UAV B(302)는 UAV C(303)로부터 전달된 해시 블록을 수신할 수 있다. UAV A(301)와 UAV B(302)는 UAV A(301)와 UAV B(302) 각각이 소유한 블록체인에서 UAV C(303)에 해당하는 해시 블록과 UAV C(303)로부터 전달받은 해시 블록을 비교함으로써 무결성을 검증할 수 있다. UAV A(301)와 UAV B(302)는 UAV A(301)와 UAV B(302) 각각이 소유한 블록체인에서 UAV C(303)에 해당하는 해시 블록과 UAV C(303)로부터 전달받은 해시 블록이 일치함을 판단함에 따라 UAV C는 공격이 시도되지 않았으며, 코드의 조작이 없으므로 무결한 것으로 판단한다.Step 3. UAV C 303 can generate a hash block corresponding to the code of UAV C 303 and transfer it to UAV A 301 and UAV B 302. UAV A 301 and UAV B 302 may receive a hash block transferred from UAV C 303. UAV A (301) and UAV B (302) are a hash block corresponding to UAV C (303) in the blockchain owned by UAV A (301) and UAV B (302) and a hash received from UAV C (303). Integrity can be verified by comparing blocks. UAV A (301) and UAV B (302) are a hash block corresponding to UAV C (303) in the blockchain owned by UAV A (301) and UAV B (302) and a hash received from UAV C (303). Upon determining that the blocks match, UAV C determines that the attack has not been attempted and is innocent because there is no code manipulation.

Step 4. UAV B(302)는 UAV B(302)의 코드에 해당하는 해시 블록을 생성하여 UAV A(301)와 UAV C(303)에 전달할 수 있다. UAV A(301)와 UAV C(303)는 UAV B(302)로부터 전달된 해시 블록을 수신할 수 있다. UAV A(301)와 UAV C(303)는 UAV A(301)와 UAV C(303) 각각이 소유한 블록체인에서 UAV B(302)에 해당하는 해시 블록과 UAV B(302)로부터 전달받은 해시 블록을 비교함으로써 무결성을 검증할 수 있다. 이때, UAV A(301)와 UAV C(303)는 UAV A(301)와 UAV C(303) 각각이 소유한 블록체인에서 UAV B(302)에 해당하는 해시 블록과 UAV B(302)로부터 전달받은 해시 블록이 일치하지 않음을 판단할 수 있다. UAV B(302)는 공격자(400)에 의하여 주기적으로 모터를 중지시키는 코드와 모터의 상태를 항상 정상으로 유지시키는 코드가 조작되었으므로 생성하는 해시 블록은 정상적인 해시 블록과는 결과가 달라진다. 다시 말해서, 예를 들면, 순수한 코드의 해시 블록이 H2라면, 조작된 코드의 해시 블록은 HX가 된다. 이에 따라 UAV B(302)로부터 HX를 전달받은 UAV A(301)와 UAV C(303)는 UAV A(301)와 UAV C(303)의 각각이 소유한 블록체인에 존재하는 UAV B(302)의 해시 블록인 H2와 비교한 결과, 두 블록이 다른 것을 탐지함으로써 UAV B(302)의 코드가 무결성을 만족하지 못하는 것을 인지하게 된다. Step 4. UAV B 302 can generate a hash block corresponding to the code of UAV B 302 and transfer it to UAV A 301 and UAV C 303. UAV A 301 and UAV C 303 may receive a hash block transferred from UAV B 302. UAV A (301) and UAV C (303) are a hash block corresponding to UAV B (302) in the blockchain owned by UAV A (301) and UAV C (303) and a hash received from UAV B (302). Integrity can be verified by comparing blocks. At this time, UAV A (301) and UAV C (303) are transmitted from the hash block corresponding to UAV B (302) and UAV B (302) in the blockchain owned by UAV A (301) and UAV C (303) respectively. It can be determined that the received hash blocks do not match. The UAV B 302 has been manipulated by the attacker 400 to periodically stop the motor and the code that always maintains the state of the motor, so the result of the generated hash block is different from the normal hash block. In other words, for example, if the hash block of the pure code is H2, the hash block of the manipulated code is HX. Accordingly, UAV A (301) and UAV C (303) that received HX from UAV B (302) are UAV B (302) existing in the blockchain owned by UAV A (301) and UAV C (303). As a result of comparing the hash block of H2, it is recognized that the code of the UAV B 302 does not satisfy the integrity by detecting that the two blocks are different.

일 실시예에 따른 블록체인을 활용한 방안은 검증 대상에 대한 코드의 무결성을 그룹 내의 멤버들이 상호 인증함으로써 코드의 조작을 탐지할 수 있으며, 이를 통하여 보호되어야 하는 필수적인 코드의 무결성을 검증하는 자가 점검 로직의 실현이 가능하다.The method using the blockchain according to an embodiment can detect the manipulation of the code by mutually authenticating the integrity of the code for the verification target by members in the group, and through this self-check to verify the integrity of the essential code to be protected. Logic can be realized.

이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.The apparatus described above may be implemented as a hardware component, a software component, and/or a combination of a hardware component and a software component. For example, the devices and components described in the embodiments are, for example, a processor, a controller, an arithmetic logic unit (ALU), a digital signal processor, a microcomputer, a field programmable gate array (FPGA). , A programmable logic unit (PLU), a microprocessor, or any other device capable of executing and responding to instructions, such as one or more general purpose computers or special purpose computers. The processing device may execute an operating system (OS) and one or more software applications executed on the operating system. In addition, the processing device may access, store, manipulate, process, and generate data in response to the execution of software. For the convenience of understanding, although it is sometimes described that one processing device is used, one of ordinary skill in the art, the processing device is a plurality of processing elements and/or a plurality of types of processing elements. It can be seen that it may include. For example, the processing device may include a plurality of processors or one processor and one controller. In addition, other processing configurations are possible, such as a parallel processor.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치에 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. Can be embodyed in The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, and the like alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like.

이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited embodiments and drawings, various modifications and variations are possible from the above description by those of ordinary skill in the art. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and claims and equivalents fall within the scope of the claims to be described later.

Claims (10)

무결성 검증 장치에 의해 수행되는 무결성 검증 방법에 있어서,
각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 단계;
코드에 대하여 생성된 해시 블록과 전자 기기와 관련된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 단계; 및
상기 코드의 무결성이 검증됨에 따라 전자 기기 이외의 다른 기기들로부터 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 단계
를 포함하고,
상기 각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 단계는,
복수 개의 기기들을 그룹화함에 따라 적어도 하나 이상의 그룹이 생성되고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 각각의 기기들이 자신의 코드를 해시한 해시 블록을 생성하고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 다른 기기들로부터 상기 다른 기기들에 대한 코드를 해시함에 따라 생성된 해시 블록을 전달받고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 전자 기기들 간에 자신의 해시 블록 및 상기 전달받은 다른 기기들에 대한 코드를 해시한 해시 블록을 블록체인으로 연결하여 저장하는 단계
를 포함하고,
상기 코드에 대하여 생성된 해시 블록과 전자 기기와 관련된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 단계는,
상기 전자 기기에서 실행 중인 또는 실행을 위하여 로드되는 코드에 대하여 해시 블록을 생성하고, 상기 전자 기기에서 생성된 해시 블록과 상기 전자 기기에서 소유한 블록체인에서의 해시 블록을 비교하는 단계
를 포함하고,
상기 코드의 무결성이 검증됨에 따라 전자 기기 이외의 다른 기기들로부터 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 단계는,
상호 검증을 위하여 상기 전자 기기에서 생성된 해시 블록을 상기 전자 기기와 동일한 그룹에 포함된 다른 기기들에게 전달하고, 상기 다른 기기들로부터 다른 기기들에 대한 각각의 블록체인에서의 상기 전자 기기에 대응하는 해시 블록과 상기 전자 기기로부터 전달받은 해시 블록이 비교되어 무결성 검증이 수행되는 단계
를 포함하고,
상기 무결성 검증 방법은,
상기 그룹의 각각에 포함된 각각의 기기들에서 랜덤으로 선택된 기기가 그룹의 리더가 되고, 상기 그룹의 리더 이외의 나머지 기기들이 멤버가 되고, 상기 그룹의 리더가 무결성을 검증하기 위한 멤버들을 요청하고, 상기 요청된 멤버들로부터 상기 요청된 멤버들이 가진 블록체인을 기반으로 무결성이 검증되는 것
을 포함하는 무결성 검증 방법.
In the integrity verification method performed by the integrity verification device,
Creating a block chain by connecting hash blocks generated from respective electronic devices;
Verifying the integrity of the code by comparing the hash block generated for the code and a block chain related to the electronic device; And
The step of performing mutual verification on the hash block related to the electronic device from devices other than the electronic device as the integrity of the code is verified
Including,
The step of creating a block chain by connecting the hash blocks generated from each of the electronic devices,
By grouping a plurality of devices, at least one or more groups are created, each device included in each of the at least one or more groups generates a hash block in which their code is hashed, and the generated at least one group A hash block generated by hashing codes for the other devices from other devices included in each of is received, and a hash block of its own between electronic devices included in each of the generated at least one or more groups, and the The step of storing the hash block that hashed the codes for other devices delivered by connecting it to a blockchain.
Including,
The step of verifying the integrity of the code through comparison of a hash block generated for the code and a block chain related to an electronic device,
Generating a hash block for a code running in the electronic device or loaded for execution, and comparing the hash block generated in the electronic device with the hash block in the blockchain owned by the electronic device
Including,
As the integrity of the code is verified, the step of performing mutual verification on the hash block related to the electronic device from devices other than the electronic device,
For mutual verification, the hash block generated by the electronic device is transmitted to other devices included in the same group as the electronic device, and corresponding to the electronic device in each block chain from the other devices to other devices Integrity verification is performed by comparing the hash block to be performed and the hash block transmitted from the electronic device.
Including,
The integrity verification method,
A device randomly selected from each of the devices included in the group becomes the leader of the group, other devices other than the leader of the group become members, and the leader of the group requests members to verify integrity , Integrity is verified based on the block chain of the requested members from the requested members
Integrity verification method comprising a.
삭제delete 삭제delete 삭제delete 삭제delete 무결성 검증 장치에 있어서,
각각의 전자 기기들로부터 생성된 해시 블록을 연결하여 블록체인을 생성하는 블록체인 생성부;
코드에 대하여 생성된 해시 블록과 전자 기기와 관련된 블록체인의 비교를 통하여 상기 코드의 무결성을 검증하는 무결성 검증부; 및
상기 코드의 무결성이 검증됨에 따라 전자 기기 이외의 다른 기기들로부터 전자 기기와 관련된 해시 블록에 대한 상호 검증이 수행되는 상호 검증부
를 포함하고,
상기 블록체인 생성부는,
복수 개의 기기들을 그룹화함에 따라 적어도 하나 이상의 그룹이 생성되고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 각각의 기기들이 자신의 코드를 해시한 해시 블록을 생성하고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 다른 기기들로부터 상기 다른 기기들에 대한 코드를 해시함에 따라 생성된 해시 블록을 전달받고, 상기 생성된 적어도 하나 이상의 그룹의 각각에 포함된 전자 기기들 간에 자신의 해시 블록 및 상기 전달받은 다른 기기들에 대한 코드를 해시한 해시 블록을 블록체인으로 연결하여 저장하는 것을 포함하고,
상기 무결성 검증부는,
상기 전자 기기에서 실행 중인 또는 실행을 위하여 로드되는 코드에 대하여 해시 블록을 생성하고, 상기 전자 기기에서 생성된 해시 블록과 상기 전자 기기에서 소유한 블록체인에서의 해시 블록을 비교하는 것을 포함하고,
상기 상호 검증부는,
상호 검증을 위하여 상기 전자 기기에서 생성된 해시 블록을 상기 전자 기기와 동일한 그룹에 포함된 다른 기기들에게 전달하고, 상기 다른 기기들로부터 다른 기기들에 대한 각각의 블록체인에서의 상기 전자 기기에 대응하는 해시 블록과 상기 전자 기기로부터 전달받은 해시 블록이 비교되어 무결성 검증이 수행되는 것을 포함하고,
상기 무결성 검증 장치는,
상기 그룹의 각각에 포함된 각각의 기기들에서 랜덤으로 선택된 기기가 그룹의 리더가 되고, 상기 그룹의 리더 이외의 나머지 기기들이 멤버가 되고, 상기 그룹의 리더가 무결성을 검증하기 위한 멤버들을 요청하고, 상기 요청된 멤버들로부터 상기 요청된 멤버들이 가진 블록체인을 기반으로 무결성이 검증되는
무결성 검증 장치.
In the integrity verification device,
A block chain generator for generating a block chain by connecting hash blocks generated from respective electronic devices;
An integrity verification unit for verifying the integrity of the code by comparing the hash block generated for the code and the block chain related to the electronic device; And
A mutual verification unit that performs mutual verification on the hash block related to the electronic device from devices other than the electronic device as the integrity of the code is verified
Including,
The blockchain generation unit,
By grouping a plurality of devices, at least one or more groups are created, each device included in each of the at least one or more groups generates a hash block in which their code is hashed, and the generated at least one group A hash block generated by hashing codes for the other devices from other devices included in each of is received, and a hash block of its own between electronic devices included in each of the generated at least one or more groups, and the Including storing a hash block that hashed codes for other devices received by connecting it with a blockchain,
The integrity verification unit,
Generating a hash block for a code running on the electronic device or loaded for execution, and comparing the hash block generated in the electronic device with the hash block in the blockchain owned by the electronic device,
The mutual verification unit,
For mutual verification, the hash block generated by the electronic device is transmitted to other devices included in the same group as the electronic device, and corresponding to the electronic device in each block chain from the other devices to other devices Including that the hash block and the hash block transmitted from the electronic device are compared to perform integrity verification,
The integrity verification device,
A device randomly selected from each of the devices included in the group becomes the leader of the group, other devices other than the leader of the group become members, and the leader of the group requests members to verify integrity , Integrity is verified based on the block chains of the requested members from the requested members.
Integrity verification device.
삭제delete 삭제delete 삭제delete 삭제delete
KR1020180141855A 2018-11-16 2018-11-16 Method for integrity mutual verification in a resource rich environment KR102176118B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180141855A KR102176118B1 (en) 2018-11-16 2018-11-16 Method for integrity mutual verification in a resource rich environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180141855A KR102176118B1 (en) 2018-11-16 2018-11-16 Method for integrity mutual verification in a resource rich environment

Publications (2)

Publication Number Publication Date
KR20200057438A KR20200057438A (en) 2020-05-26
KR102176118B1 true KR102176118B1 (en) 2020-11-09

Family

ID=70915249

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180141855A KR102176118B1 (en) 2018-11-16 2018-11-16 Method for integrity mutual verification in a resource rich environment

Country Status (1)

Country Link
KR (1) KR102176118B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772881B1 (en) * 2006-05-25 2007-11-05 삼성전자주식회사 Apparatus and method for checking self modifying code

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170137388A (en) * 2016-06-03 2017-12-13 (주) 블록체인오에스 A method for ensuring integrity by using a blockchain technology
KR101911863B1 (en) * 2016-12-21 2018-10-25 한전케이디엔주식회사 Smart meter and remote metering system
KR20180089682A (en) * 2017-02-01 2018-08-09 삼성전자주식회사 Electronic apparatus and method for verifing data integrity based on a blockchain

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772881B1 (en) * 2006-05-25 2007-11-05 삼성전자주식회사 Apparatus and method for checking self modifying code

Also Published As

Publication number Publication date
KR20200057438A (en) 2020-05-26

Similar Documents

Publication Publication Date Title
CN113438289B (en) Block chain data processing method and device based on cloud computing
CN111475849B (en) Private data query method and device based on blockchain account
KR101924026B1 (en) System and method for blockchain using hash-based signature scheme
Kaptchuk et al. Giving state to the stateless: Augmenting trustworthy computation with ledgers
EP3295352B1 (en) Client software attestation
KR101937220B1 (en) Method for generating and verifying a digital signature or message authentication code based on a block chain that does not require key management
KR102019211B1 (en) Method for generating block chain capable of overcoming byzantine fault
US10033814B2 (en) Vehicle security network device and design method therefor
CN102170440B (en) Method suitable for safely migrating data between storage clouds
US20170078097A1 (en) Methods and systems for managing network activity using biometrics
KR102210429B1 (en) Container cluster system for authentication based on blockchain
JP6403803B2 (en) Routing method for transferring task instructions between computer systems, computer network infrastructure, and computer program
KR20230147761A (en) Authenticated modification of blockchain-based data
KR102176118B1 (en) Method for integrity mutual verification in a resource rich environment
Kaptchuk et al. Managing Secrets with Consensus Networks: Fairness, Ransomware and Access Control.
CN111587434A (en) Adjustment of modifications
KR102199464B1 (en) Method of authentication among nodes participating in consortium blockchain
CN113553873A (en) Design method of cloud-based RFID bidirectional authentication protocol in epidemic situation prevention and control system
KR102125133B1 (en) Apparatus and method for message authentication
KR20210020575A (en) Method and apparatus for authenticating openstack service
KR101864932B1 (en) Method and Apparatus of Lattice-based Linearly Homomorphic Signature with Multiple Signers under Cloud System
CN113826369A (en) Intrusion identification for computer system
KR20200011666A (en) Apparatus and method for authentication
KR102467441B1 (en) Providing method, apparatus and computer-readable medium of encryptiing unstructured data using tendermint bft algorithm
KR102176117B1 (en) Method for integrity self verification in a resource rich environment

Legal Events

Date Code Title Description
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant