KR102345501B1 - Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof - Google Patents

Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof Download PDF

Info

Publication number
KR102345501B1
KR102345501B1 KR1020200095462A KR20200095462A KR102345501B1 KR 102345501 B1 KR102345501 B1 KR 102345501B1 KR 1020200095462 A KR1020200095462 A KR 1020200095462A KR 20200095462 A KR20200095462 A KR 20200095462A KR 102345501 B1 KR102345501 B1 KR 102345501B1
Authority
KR
South Korea
Prior art keywords
program
node devices
node
terminal device
electronic terminal
Prior art date
Application number
KR1020200095462A
Other languages
Korean (ko)
Inventor
차현성
Original Assignee
주식회사 발카리
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 발카리 filed Critical 주식회사 발카리
Priority to KR1020200095462A priority Critical patent/KR102345501B1/en
Application granted granted Critical
Publication of KR102345501B1 publication Critical patent/KR102345501B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Virology (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

Disclosed are an electronic terminal device for performing forgery/falsification verification of a program in conjunction with a plurality of node devices constituting a block chain network, and an operating method thereof. Provided are the electronic terminal device capable of performing forgery/falsification verification of a program using block chain data and the operation method thereof. The block chain data comprises a transaction consisting of a unique identifier of a program which is pre-designated to be included in a white list stored in a plurality of node devices, and a hash value for an executable file of the program.

Description

블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법{ELECTRONIC TERMINAL DEVICE WHICH VERIFIES IF THE PROGRAM IS FABRICATED OR FALSIFIED INTERWORKING PLURAL NODE UNITS CONSTITUTING BLOCKCHAIN NETWORK AND OPERATING METHOD THEREOF}An electronic terminal device that performs forgery/falsification verification of a program in conjunction with a plurality of node devices constituting a block chain network and an operation method thereof NETWORK AND OPERATING METHOD THEREOF}

본 발명은 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법에 대한 것이다.The present invention relates to an electronic terminal device for performing forgery/falsification verification of a program in conjunction with a plurality of node devices constituting a block chain network, and an operating method thereof.

최근, 전자 단말 장치에서 위/변조된 프로그램이 실행되는 것을 방지하기 위해 전자 단말 장치에서 프로그램이 실행될 때 해당 프로그램의 위/변조 여부를 검증하는 다양한 서비스가 개발되고 있다. Recently, in order to prevent a forged/falsified program from being executed in an electronic terminal device, various services for verifying whether a corresponding program is forged/altered when the program is executed in the electronic terminal device have been developed.

기존의 프로그램의 위/변조 여부를 검증하는 서비스는 특정 서버에 저장되어 있는 데이터를 기반으로 해당 프로그램의 위/변조 여부를 검증하기 때문에, 해당 서버에 문제가 발생한다면 프로그램의 위/변조 검증의 기초가 되는 데이터가 쉽게 변형될 수 있고, 그 결과 해당 데이터를 기반으로 수행되는 프로그램의 위/변조 검증의 결과를 신뢰할 수 없게 된다.Since the service that verifies whether an existing program is forged/falsified based on the data stored in the specific server, verifies whether the corresponding program is forged/falsified, so if a problem occurs in the server, the basis for verifying forgery/falsification of the program The data that becomes the data can be easily transformed, and as a result, the results of the forgery/falsification verification of the program performed based on the data become unreliable.

이와 관련하여, 최근에는 데이터를 체인으로 연결된 블록으로 구성하여 특정 서버가 아닌 복수의 노드 장치들에 분산 저장함으로써, 해당 데이터에 대한 신뢰성과 안정성을 보장할 수 있는 블록체인 기술이 널리 활용되고 있다.In this regard, recently, blockchain technology that can ensure reliability and stability of data by composing data into blocks connected by chains and storing them in a plurality of node devices rather than on a specific server has been widely used.

블록체인 기술은 트랜잭션이라고 하는 데이터가 생성되면, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들 중 어느 하나의 노드 장치가 여러 블록들이 체인으로 연결되어 있는 블록체인 데이터에 포함된 이전 블록을 기초로 상기 트랜잭션이 포함된 새로운 블록을 생성하고, 상기 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 블록을 상기 블록체인 네트워크를 통해 다른 노드 장치들로 배포함으로써, 소정의 데이터가 복수의 노드 장치들에 분산 저장되도록 하는 기술을 의미한다.In blockchain technology, when data called a transaction is created, any one node device among a plurality of node devices constituting the blockchain network is By creating a new block containing the transaction, chaining the block to the block chain data, and distributing the block to other node devices through the block chain network, predetermined data is transmitted to a plurality of node devices. It refers to a technology that enables distributed storage in

이러한 블록체인 기술을 프로그램의 위/변조 검증 서비스에 도입한다면, 복수의 노드 장치들 중 어느 노드 장치에 문제가 발생하여 해당 노드 장치에 저장되어 있는 데이터가 오염되거나 변형되더라도, 나머지 노드 장치들에 데이터가 분산 저장 되어 있기 때문에, 보다 안정적이고 신뢰할 수 있는 프로그램의 위/변조 검증이 가능하도록 지원할 수 있다.If such block chain technology is introduced to the forgery/falsification verification service of the program, even if a problem occurs in any node device among a plurality of node devices and the data stored in the node device is corrupted or modified, the data is transmitted to the remaining node devices. is distributed and stored, so it can support more stable and reliable program forgery/falsification verification.

따라서, 프로그램의 위/변조 검증 결과에 대해 안정성과 신뢰성을 보장할 수 있도록 하기 위해, 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 기술에 대한 연구가 필요하다. Therefore, in order to ensure the stability and reliability of the program's forgery/falsification verification results, a study on the technology to perform the forgery/falsification verification of the program in conjunction with a plurality of node devices constituting the block chain network is needed

본 발명은 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법을 제시함으로써, 프로그램의 위/변조 검증에 대한 안정성과 신뢰성을 보장할 수 있도록 지원하고자 한다. The present invention provides an electronic terminal device for performing forgery/falsification verification of a program in conjunction with a plurality of node devices constituting a block chain network and an operation method thereof, thereby improving stability and reliability of program forgery/falsification verification We want to help you ensure that.

본 발명의 일실시예에 따른 블록체인 네트워크를 형성하고 있는 복수의 노드 장치들 - 상기 복수의 노드 장치들은 화이트 리스트에 포함되는 것으로 사전 지정된 프로그램의 고유 식별자 및 상기 프로그램의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있음 - 과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치는 상기 프로그램의 위/변조 검증을 위해 상기 복수의 노드 장치들과 사전 공유하고 있는 해시 함수가 저장되어 있는 함수 저장부, 상기 전자 단말 장치에 설치되어 있는 복수의 프로그램들 - 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들임 - 에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있는 테이블 저장부, 상기 전자 단말 장치에서 상기 복수의 프로그램들 중 제1 프로그램을 실행하기 위한 실행 이벤트가 발생하면, 상기 식별자 테이블을 참조하여 상기 제1 프로그램에 대응되는 고유 식별자인 제1 고유 식별자를 확인하고, 상기 제1 프로그램에서 상기 제1 프로그램의 실행 파일인 제1 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제1 실행 파일에 대한 해시 값인 제1 해시 값을 생성하는 식별 정보 생성부, 상기 복수의 노드 장치들 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택하는 노드 선택부, 상기 K개의 제1 노드 장치들이 선택되면, 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청하는 검증 요청부, 상기 K개의 제1 노드 장치들 각각이 상기 제1 프로그램의 위/변조 검증 요청에 대응하여, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자를 기초로 상기 블록체인 데이터 상에 기록되어 있는 상기 제1 프로그램의 실행 파일에 대한 제2 해시 값을 추출한 후 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 비교함으로써, 상기 제1 프로그램의 위/변조여부에 대한 검증 결과를 생성함에 따라, 상기 K개의 제1 노드 장치들 각각으로부터 상기 제1 프로그램의 위/변조여부에 대한 검증 결과가 수신되면, 상기 K개의 제1 노드 장치들 중에서 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율을 확인하는 비율 확인부 및 상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시키는 실행부를 포함한다. A plurality of node devices forming a block chain network according to an embodiment of the present invention - The plurality of node devices are a unique identifier of a program pre-designated to be included in a white list and a hash value for the executable file of the program The electronic terminal device that performs forgery/falsification verification of the program in conjunction with storing block chain data in which blocks including configured transactions are chained is the plurality of node devices for verification of forgery/falsification of the program A function storage unit in which a hash function shared in advance with others is stored, and a unique identifier corresponding to a plurality of programs installed in the electronic terminal device, wherein the plurality of programs are programs included in the white list. When an execution event for executing a first program among the plurality of programs occurs in a table storage unit in which a recorded identifier table is stored, and in the electronic terminal device, a unique corresponding to the first program with reference to the identifier table occurs After confirming a first unique identifier that is an identifier, and extracting a first executable file that is an executable file of the first program from the first program, a first hash value that is a hash value for the first executable file using the hash function an identification information generator to generate, a node selector for selecting K (K is a natural number greater than or equal to 2) first node devices among the plurality of node devices as node devices to perform forgery/falsification verification of the first program; When the K first node devices are selected, the verification request unit transmits the first unique identifier and the first hash value to the K first node devices and simultaneously requests forgery/falsification verification of the first program. , based on the first unique identifier from the block chain data stored in each of the K first node devices, each of the K first node devices in response to the forgery/falsification verification request of the first program a second for the executable file of the first program recorded on the block chain data as After extracting a hash value, by comparing whether the second hash value and the first hash value match each other, a verification result for whether the first program is forged/altered is generated, each of the K first node devices When the verification result as to whether the first program is forged/altered is received from a ratio checking unit to check, and an execution unit to check whether the ratio exceeds a preset reference ratio, and to execute the first program when it is determined that the ratio exceeds the reference ratio.

또한, 본 발명의 일실시예에 따른 블록체인 네트워크를 형성하고 있는 복수의 노드 장치들 - 상기 복수의 노드 장치들은 화이트 리스트에 포함되는 것으로 사전 지정된 프로그램의 고유 식별자 및 상기 프로그램의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있음 - 과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법은 상기 프로그램의 위/변조 검증을 위해 상기 복수의 노드 장치들과 사전 공유하고 있는 해시 함수가 저장되어 있는 함수 저장부를 유지하는 단계, 상기 전자 단말 장치에 설치되어 있는 복수의 프로그램들 - 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들임 - 에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있는 테이블 저장부를 유지하는 단계, 상기 전자 단말 장치에서 상기 복수의 프로그램들 중 제1 프로그램을 실행하기 위한 실행 이벤트가 발생하면, 상기 식별자 테이블을 참조하여 상기 제1 프로그램에 대응되는 고유 식별자인 제1 고유 식별자를 확인하고, 상기 제1 프로그램에서 상기 제1 프로그램의 실행 파일인 제1 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제1 실행 파일에 대한 해시 값인 제1 해시 값을 생성하는 단계, 상기 복수의 노드 장치들 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택하는 단계, 상기 K개의 제1 노드 장치들이 선택되면, 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청하는 단계, 상기 K개의 제1 노드 장치들 각각이 상기 제1 프로그램의 위/변조 검증 요청에 대응하여, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자를 기초로 상기 블록체인 데이터 상에 기록되어 있는 상기 제1 프로그램의 실행 파일에 대한 제2 해시 값을 추출한 후 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 비교함으로써, 상기 제1 프로그램의 위/변조여부에 대한 검증 결과를 생성함에 따라, 상기 K개의 제1 노드 장치들 각각으로부터 상기 제1 프로그램의 위/변조여부에 대한 검증 결과가 수신되면, 상기 K개의 제1 노드 장치들 중에서 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율을 확인하는 단계 및 상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시키는 단계를 포함한다.In addition, a plurality of node devices forming a block chain network according to an embodiment of the present invention - The plurality of node devices are a hash of the program's executable file and a unique identifier of the program pre-designated to be included in the white list The operation method of the electronic terminal device that performs forgery/falsification verification of a program in conjunction with blocks containing transactions composed of values stores block chain data connected by a chain is maintaining a function storage unit in which a hash function previously shared with the plurality of node devices is stored; a plurality of programs installed in the electronic terminal device - the plurality of programs being included in the white list maintaining a table storage unit in which an identifier table in which a unique identifier corresponding to a unique identifier is recorded is stored, when an execution event for executing a first program among the plurality of programs occurs in the electronic terminal device, the identifier table a first unique identifier that is a unique identifier corresponding to the first program is identified with reference to , a first executable file that is an executable file of the first program is extracted from the first program, Generating a first hash value that is a hash value for an executable file, K (K being a natural number greater than or equal to 2) among the plurality of node devices, a node device to perform forgery/falsification verification of the first program selecting , when the K first node devices are selected, transmitting the first unique identifier and the first hash value to the K first node devices and simultaneously verifying forgery/falsification of the first program requesting, each of the K first node devices in response to the forgery/falsification verification request of the first program, from the block chain data stored in each of the K first node devices, the first of the first program recorded on the block chain data based on the unique identifier After extracting the second hash value for the executable file, and comparing whether the second hash value and the first hash value match each other, as a verification result for whether the first program is forged/altered is generated, the K When a verification result as to whether the first program is forged/altered is received from each of the first node devices, the verification result determined that the first program is not forged/altered from among the K first node devices is transmitted checking the ratio of one node device and checking whether the ratio exceeds a preset reference ratio, and when it is determined that the ratio exceeds the reference ratio, executing the first program.

본 발명은 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법을 제시함으로써, 프로그램의 위/변조 검증에 대한 안정성과 신뢰성을 보장할 수 있도록 지원할 수 있다.The present invention provides an electronic terminal device for performing forgery/falsification verification of a program in conjunction with a plurality of node devices constituting a block chain network and an operation method thereof, thereby improving stability and reliability of program forgery/falsification verification We can assist you to ensure that

도 1은 본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 구조를 도시한 도면이다.
도 2는 본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법을 도시한 순서도이다
1 is a diagram illustrating the structure of an electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention.
2 is a flowchart illustrating a method of operating an electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention;

이하에서는 본 발명에 따른 실시예들을 첨부된 도면을 참조하여 상세하게 설명하기로 한다. 이러한 설명은 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다. 각 도면을 설명하면서 유사한 참조부호를 유사한 구성요소에 대해 사용하였으며, 다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 본 명세서 상에서 사용되는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 사람에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다.Hereinafter, embodiments according to the present invention will be described in detail with reference to the accompanying drawings. These descriptions are not intended to limit the present invention to specific embodiments, and should be understood to include all modifications, equivalents, and substitutes included in the spirit and scope of the present invention. While describing each drawing, like reference numerals are used for similar components, and unless otherwise defined, all terms used in this specification, including technical or scientific terms, refer to those of ordinary skill in the art to which the present invention belongs. It has the same meaning as is commonly understood by those who have it.

본 문서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있다는 것을 의미한다. 또한, 본 발명의 다양한 실시예들에 있어서, 각 구성요소들, 기능 블록들 또는 수단들은 하나 또는 그 이상의 하부 구성요소로 구성될 수 있고, 각 구성요소들이 수행하는 전기, 전자, 기계적 기능들은 전자회로, 집적회로, ASIC(Application Specific Integrated Circuit) 등 공지된 다양한 소자들 또는 기계적 요소들로 구현될 수 있으며, 각각 별개로 구현되거나 2 이상이 하나로 통합되어 구현될 수도 있다. In this document, when a part "includes" a certain component, it means that other components may be further included, rather than excluding other components, unless otherwise stated. In addition, in various embodiments of the present invention, each of the components, functional blocks or means may be composed of one or more sub-components, and the electrical, electronic, and mechanical functions performed by each component are electronic. A circuit, an integrated circuit, an ASIC (Application Specific Integrated Circuit), etc. may be implemented as various well-known devices or mechanical elements, and may be implemented separately or two or more may be integrated into one.

한편, 첨부된 블록도의 블록들이나 흐름도의 단계들은 범용 컴퓨터, 특수용 컴퓨터, 휴대용 노트북 컴퓨터, 네트워크 컴퓨터 등 데이터 프로세싱이 가능한 장비의 프로세서나 메모리에 탑재되어 지정된 기능들을 수행하는 컴퓨터 프로그램 명령들(instructions)을 의미하는 것으로 해석될 수 있다. 이들 컴퓨터 프로그램 명령들은 컴퓨터 장치에 구비된 메모리 또는 컴퓨터에서 판독 가능한 메모리에 저장될 수 있기 때문에, 블록도의 블록들 또는 흐름도의 단계들에서 설명된 기능들은 이를 수행하는 명령 수단을 내포하는 제조물로 생산될 수도 있다. 아울러, 각 블록 또는 각 단계는 특정된 논리적 기능(들)을 실행하기 위한 하나 이상의 실행 가능한 명령들을 포함하는 모듈, 세그먼트 또는 코드의 일부를 나타낼 수 있다. 또, 몇 가지 대체 가능한 실시예들에서는 블록들 또는 단계들에서 언급된 기능들이 정해진 순서와 달리 실행되는 것도 가능함을 주목해야 한다. 예컨대, 잇달아 도시되어 있는 두 개의 블록들 또는 단계들은 실질적으로 동시에 수행되거나, 역순으로 수행될 수 있으며, 경우에 따라 일부 블록들 또는 단계들이 생략된 채로 수행될 수도 있다.On the other hand, the blocks in the accompanying block diagram or steps in the flowchart are computer program instructions that are loaded in a processor or memory of equipment capable of data processing, such as a general-purpose computer, a special-purpose computer, a portable notebook computer, and a network computer, and perform specified functions. can be interpreted as meaning Since these computer program instructions may be stored in a memory provided in a computer device or in a computer-readable memory, the functions described in the blocks of the block diagram or the steps of the flowchart are produced as articles of manufacture containing instruction means for performing the same. it might be In addition, each block or each step may represent a module, segment, or portion of code comprising one or more executable instructions for executing the specified logical function(s). It should also be noted that, in some alternative embodiments, it is also possible for the functions recited in blocks or steps to be executed out of the prescribed order. For example, two blocks or steps shown one after another may be performed substantially simultaneously or in the reverse order, and in some cases, some blocks or steps may be omitted.

도 1은 본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 구조를 도시한 도면이다.1 is a diagram illustrating the structure of an electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention.

본 발명에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치(110)는 블록체인 네트워크(100)를 형성하고 있는 복수의 노드 장치들(101, 102, 103)과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치로, 함수 저장부(111), 테이블 저장부(112), 식별 정보 생성부(113), 노드 선택부(114), 검증 요청부(115), 비율 확인부(116) 및 실행부(117)를 포함한다. The electronic terminal device 110 for performing forgery/falsification verification of the program according to the present invention interworks with a plurality of node devices 101, 102, 103 forming the block chain network 100 to perform forgery/falsification of the program An electronic terminal device for performing verification, including a function storage unit 111 , a table storage unit 112 , an identification information generation unit 113 , a node selection unit 114 , a verification request unit 115 , and a ratio check unit 116 . ) and an execution unit 117 .

먼저, 복수의 노드 장치들(101, 102, 103)은 화이트 리스트에 포함되는 것으로 사전 지정된 프로그램의 고유 식별자 및 상기 프로그램의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있다. 여기서, 복수의 노드 장치들(101, 102, 103)은 네트워크 기능을 갖는 마이크로 프로세서 기반의 컴퓨팅 장치이며, 상기 블록체인 데이터는 복수의 노드 장치들(101, 102, 103) 각각의 메모리에 저장되어 있다. First, a plurality of node devices (101, 102, 103) is a block containing a transaction consisting of a hash value for the execution file of the program and the unique identifier of the program pre-designated to be included in the white list is connected in a chain Storing blockchain data. Here, the plurality of node devices 101, 102, 103 is a microprocessor-based computing device having a network function, and the block chain data is stored in the memory of each of the plurality of node devices 101, 102, 103. have.

예컨대, 화이트 리스트에 포함되는 것으로 사전 지정된 '프로그램 1'이 있다고 하였을 때, 복수의 노드 장치들(101, 102, 103)은 하기의 표 1과 같이 상기 '프로그램 1'의 고유 식별자 및 상기 '프로그램 1'의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록을 블록체인 데이터 내에 체인으로 연결해서 저장하고 있을 수 있다.For example, assuming that there is a 'program 1' that is pre-designated to be included in the white list, the plurality of node devices 101, 102, 103 may have a unique identifier of the 'program 1' and the 'program' as shown in Table 1 below. A block containing a transaction composed of a hash value for the 1' executable file may be chained and stored in the blockchain data.

프로그램program 고유 식별자unique identifier 해시 값hash value 프로그램 1Program 1 고유 식별자 1unique identifier 1 해시 값 1hash value 1

함수 저장부(111)에는 프로그램의 위/변조 검증을 위해 복수의 노드 장치들(101, 102, 103)과 사전 공유하고 있는 해시 함수가 저장되어 있다.The function storage unit 111 stores a hash function shared in advance with the plurality of node devices 101 , 102 , 103 for forgery/falsification verification of the program.

테이블 저장부(112)에는 전자 단말 장치(110)에 설치되어 있는 복수의 프로그램들에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있다. 여기서, 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들이다.The table storage unit 112 stores an identifier table in which unique identifiers corresponding to a plurality of programs installed in the electronic terminal device 110 are recorded. Here, the plurality of programs are programs included in the white list.

그리고, 고유 식별자는 상기 복수의 프로그램들 각각을 서로 구별할 수 있도록 하기 위한 고유의 식별 정보를 의미하는 것으로, 상기 식별자 테이블에는 하기의 표 2와 같이 복수의 프로그램들에 대응되는 고유 식별자에 대한 정보가 기록되어 있을 수 있다.In addition, the unique identifier means unique identification information for distinguishing each of the plurality of programs from each other, and the identifier table includes information on unique identifiers corresponding to the plurality of programs as shown in Table 2 below. may be recorded.

복수의 프로그램들multiple programs 고유 식별자unique identifier 프로그램 1Program 1 고유 식별자 1unique identifier 1 프로그램 2Program 2 고유 식별자 2unique identifier 2 프로그램 3Program 3 고유 식별자 3unique identifier 3 ...... ......

이때, 사용자(130)로부터 전자 단말 장치(110) 상에서 상기 복수의 프로그램들 중 하나인 제1 프로그램을 실행하기 위한 실행 명령이 인가됨에 따라, 전자 단말 장치(110)에서 상기 제1 프로그램을 실행하기 위한 실행 이벤트가 발생하면, 식별 정보 생성부(113)는 테이블 저장부(112)에 저장되어 있는 상기 식별자 테이블을 참조하여 상기 제1 프로그램에 대응되는 고유 식별자인 제1 고유 식별자를 확인하고, 상기 제1 프로그램에서 상기 제1 프로그램의 실행 파일인 제1 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제1 실행 파일에 대한 해시 값인 제1 해시 값을 생성한다. At this time, as an execution command for executing the first program, which is one of the plurality of programs, is applied from the user 130 on the electronic terminal apparatus 110 , the electronic terminal apparatus 110 executes the first program When an execution event occurs, the identification information generating unit 113 refers to the identifier table stored in the table storage unit 112 and identifies a first unique identifier that is a unique identifier corresponding to the first program, and After extracting a first executable file that is an executable file of the first program from a first program, a first hash value that is a hash value of the first executable file is generated by using the hash function.

예컨대, 상기 제1 프로그램을 '프로그램 1'이라고 하고, 사용자(130)로부터 '프로그램 1'을 실행하기 위한 명령이 전자 단말 장치(110)에 인가되었다고 가정하면, 식별 정보 생성부(113)는 상기의 표 2와 같이 정보가 기록되어 있는 식별자 테이블을 참조하여 '프로그램 1'에 대응되는 '고유 식별자 1'을 상기 제1 고유 식별자로 확인하고, '프로그램 1'에서 실행 파일을 추출한 후 상기 실행 파일을 상기 해시 함수에 입력으로 인가함으로써, 상기 제1 해시 값을 생성할 수 있다.For example, assuming that the first program is 'Program 1' and a command for executing 'Program 1' from the user 130 is applied to the electronic terminal device 110 , the identification information generating unit 113 may As shown in Table 2, 'unique identifier 1' corresponding to 'program 1' is identified as the first unique identifier by referring to the identifier table in which information is recorded, and after extracting the executable file from 'program 1', the executable file By applying as an input to the hash function, the first hash value may be generated.

노드 선택부(114)는 복수의 노드 장치들(101, 102, 103) 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택한다. The node selector 114 selects K (K is a natural number greater than or equal to 2) first node devices among the plurality of node devices 101, 102, 103 as node devices to perform forgery/falsification verification of the first program. do.

이때, 본 발명의 일실시예에 따르면, 노드 선택부(114)는 복수의 노드 장치들(101, 102, 103) 중 상기 K개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택하기 위한 구성으로, 정보 확인부(118), 수치 산출부(119), 상태 측정부(120), 벡터 생성부(121), 노드 행렬 생성부(122) 및 선택부(123)를 포함할 수 있다. At this time, according to an embodiment of the present invention, the node selector 114 performs forgery/falsification verification of the first program on the K first node devices among the plurality of node devices 101 , 102 , 103 . As a configuration for selecting a node device to be performed, the information confirmation unit 118 , the numerical calculation unit 119 , the state measurement unit 120 , the vector generation unit 121 , the node matrix generation unit 122 , and the selection unit 123 . ) may be included.

먼저, 복수의 노드 장치들(101, 102, 103) 각각은 사전 설정된 제1 주기 간격으로 바이러스 검사를 수행하도록 설정되어 있음과 동시에 상기 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장하도록 구성되어 있고, 사전 설정된 제2 주기 간격으로 복수의 노드 장치들(101, 102, 103) 각각에서 발생하는 트래픽 수치를 측정하여 상기 측정된 트래픽 수치에 대한 정보를 저장하도록 구성되어 있을 수 있다.First, each of the plurality of node devices 101 , 102 , 103 is configured to perform a virus scan at a preset first cycle interval and at the same time store virus detection history information according to the virus scan, It may be configured to measure a traffic level generated in each of the plurality of node devices 101 , 102 , 103 at a set second cycle interval and store information on the measured traffic level.

예컨대, 상기 제1 주기를 '24시간', 상기 제2 주기를 '30시간'이라고 하는 경우, 복수의 노드 장치들(101, 102, 103) 각각은 '24시간' 간격으로 바이러스 검사를 수행하여 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장할 수 있고, '30시간' 간격으로 각 노드 장치에서 발생하는 트래픽 수치를 측정하여 이에 대한 정보를 저장할 수 있다.For example, when the first cycle is '24 hours' and the second cycle is '30 hours', each of the plurality of node devices 101, 102, 103 performs a virus check at '24 hours' intervals, Virus detection history information according to virus inspection can be stored, and the information about this can be stored by measuring the number of traffic generated by each node device at an interval of '30 hours'.

이때, 정보 확인부(118)는 복수의 노드 장치들(101, 102, 103)과 접속하여 복수의 노드 장치들(101, 102, 103) 각각에 저장되어 있는 바이러스 검출 이력 정보와 트래픽 수치에 대한 정보를 기초로 복수의 노드 장치들(101, 102, 103) 각각의 사전 지정된 과거의 시점부터 현재 시점까지의 기간 동안에 대한 총 바이러스 검출 횟수를 확인하고, 복수의 노드 장치들(101, 102, 103) 각각의 상기 기간 동안에 대한 트래픽 수치의 평균 값을 산출한다. At this time, the information check unit 118 connects to the plurality of node devices 101, 102, 103 and provides information on virus detection history information and traffic values stored in each of the plurality of node devices 101, 102, 103. Based on the information, a total number of virus detections for each of the plurality of node devices (101, 102, 103) for a period from a predetermined past time point to the present time point is checked, and the plurality of node devices (101, 102, 103) ) calculates the average value of the traffic figure for each said period.

예컨대, 상기 사전 지정된 과거의 시점을 '현재 시점으로부터 2개월 전'이라고 하는 경우, 정보 확인부(118)는 '현재 시점으로부터 2개월 전'부터 현재 시점까지 복수의 노드 장치들(101, 102, 103) 각각에 대해, 각 노드 장치에서 발생한 총 바이러스 검출 횟수를 확인할 수 있고, 복수의 노드 장치들(101, 102, 103) 각각에 대해, '현재 시점으로부터 2개월 전'부터 현재 시점까지 각 노드 장치에서 발생한 트래픽 수치의 평균 값을 산출할 수 있다.For example, when the predetermined past time point is '2 months ago from the current time point', the information check unit 118 performs a plurality of node devices 101, 102, 103) For each, the total number of virus detections occurring in each node device can be checked, and for each of the plurality of node devices 101, 102, 103, each node from '2 months ago from the current time to the present time It is possible to calculate the average value of the number of traffic generated by the device.

그 이후, 수치 산출부(119)는 복수의 노드 장치들(101, 102, 103) 각각에 대해, 상기 총 바이러스 검출 횟수를 사전 설정된 기준 바이러스 검출 횟수로 나눈 값을 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제1 수치 값을 연산하고, 상기 트래픽 수치의 평균 값을 사전 설정된 기준 트래픽 수치 값으로 나눈 값을 상기 쌍곡 탄젠트 함수에 입력으로 인가하여 제2 수치 값을 연산함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출한다. After that, the numerical calculation unit 119 divides the total number of virus detections by a preset reference number of virus detections for each of the plurality of node devices 101, 102, and 103 as a hyperbolic tangent function. A plurality of nodes by applying a first numerical value as an input to calculate a first numerical value, and calculating a second numerical value by applying a value obtained by dividing the average value of the traffic numerical value by a preset reference traffic numerical value as an input to the hyperbolic tangent function The first numerical value and the second numerical value corresponding to each of the devices 101 , 102 , and 103 are calculated.

관련해서, 수치 산출부(119)는 하기의 수학식 1의 연산에 따라 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출할 수 있다. In this regard, the numerical calculation unit 119 may calculate the first numerical value and the second numerical value corresponding to each of the plurality of node devices 101 , 102 , 103 according to the operation of Equation 1 below. have.

Figure 112020080223067-pat00001
Figure 112020080223067-pat00001

상기의 수학식 1에서 Y1은 상기 제1 수치 값으로, VA는 상기 총 바이러스 검출 횟수이고 V는 상기 사전 설정된 기준 바이러스 검출 횟수이다. 또한, Y2는 상기 제2 수치 값으로, TA는 상기 트래픽 수치의 평균 값이고 T는 상기 사전 설정된 기준 트래픽 수치 값이다.In Equation 1, Y 1 is the first numerical value, V A is the total number of virus detections, and V is the preset reference number of virus detections. In addition, Y 2 is the second numerical value, T A is an average value of the traffic numerical value, and T is the preset reference traffic numerical value.

예컨대, 상기 기준 바이러스 검출 횟수를 '10회'라고 하고, 상기 기준 트래픽 수치 값을 '30GB'라고 하며, 정보 확인부(118)에서의 확인 결과, 노드 장치 1(101)의 총 바이러스 검출 횟수가 '5회'이고, 트래픽 수치의 평균 값이 '100GB'으로 확인되었다고 하는 경우, 수치 산출부(119)는 노드 장치 1(101)에 대해서, '0.462'를 제1 수치 값으로 산출할 수 있고, '0.997'을 제2 수치 값으로 산출할 수 있다. 이러한 방식으로, 수치 산출부(119)는 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 제1 수치 값과 상기 제2 수치 값을 산출할 수 있다.For example, let the reference number of virus detections be '10', the reference traffic numerical value be '30 GB', and as a result of confirmation by the information confirmation unit 118 , the total number of virus detections of the node device 1 101 is If it is '5 times' and it is confirmed that the average value of the traffic figure is '100GB', the numerical calculation unit 119 may calculate '0.462' as the first numerical value for the node device 1 101, , '0.997' may be calculated as the second numerical value. In this way, the numerical calculator 119 may calculate the first numerical value and the second numerical value corresponding to each of the plurality of node devices 101 , 102 , 103 .

상태 측정부(120)는 복수의 노드 장치들(101, 102, 103) 각각의 현재 CPU 사용률 및 메모리 사용률을 측정한다. The state measuring unit 120 measures a current CPU usage rate and a memory usage rate of each of the plurality of node devices 101 , 102 , 103 .

벡터 생성부(121)는 복수의 노드 장치들(101, 102, 103) 각각에 대해 상기 제1 수치 값 및 상기 제2 수치 값을 성분으로 갖는 2차원의 열벡터를 구성함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 2차원의 열벡터를 생성하고, 복수의 노드 장치들(101, 102, 103) 각각에 대해 상기 현재 CPU 사용률 및 메모리 사용률을 성분으로 갖는 2차원의 행벡터를 구성함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 2차원의 행벡터를 생성한다. The vector generator 121 constructs a two-dimensional column vector having the first numerical value and the second numerical value as components for each of the plurality of node apparatuses 101 , 102 , 103 , thereby forming a plurality of node apparatuses. A two-dimensional column vector corresponding to each of the elements 101, 102, and 103 is generated, and the current CPU usage rate and the memory usage rate are used for each of the plurality of node devices (101, 102, 103). By configuring the row vector, a two-dimensional row vector corresponding to each of the plurality of node devices 101 , 102 , 103 is generated.

예컨대, 노드 장치 1(101)에 대해서 '0.462'가 상기 제1 수치 값으로 산출되었고, '0.997'이 상기 제2 수치 값으로 산출된 경우, 벡터 생성부(121)는 노드 장치 1(101)에 대해서 '

Figure 112020080223067-pat00002
'이라고 하는 2차원의 열벡터를 생성할 수 있다. 또한, 노드 장치(101)에 대해서 상기 현재 CPU 사용률이 '40%'이고 메모리 사용률이 '50%'로 측정되었다고 하는 경우, 벡터 생성부(121)는 노드 장치 1(101)에 대해서 '
Figure 112020080223067-pat00003
'이라고 하는 2차원의 행벡터를 생성할 수 있다. 이러한 방식으로, 벡터 생성부(121)는 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 2차원의 열벡터 및 2차원의 행벡터를 생성할 수 있다. For example, when '0.462' is calculated as the first numerical value and '0.997' is calculated as the second numerical value with respect to the node device 1 101 , the vector generating unit 121 is the node device 1 101 . about '
Figure 112020080223067-pat00002
You can create a two-dimensional column vector called '. In addition, when it is assumed that the current CPU usage rate is '40%' and the memory usage rate is measured to be '50%' for the node device 101, the vector generator 121 '
Figure 112020080223067-pat00003
You can create a two-dimensional row vector called '. In this way, the vector generator 121 may generate a two-dimensional column vector and a two-dimensional row vector corresponding to each of the plurality of node devices 101 , 102 , 103 .

이렇게, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 2차원의 열벡터 및 상기 2차원의 행벡터가 생성되면, 노드 행렬 생성부(122)는 복수의 노드 장치들(101, 102, 103) 각각에 대해, 각 노드 장치에 대응되는 상기 열벡터 및 상기 행벡터를 서로 곱함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 2 x 2의 크기를 갖는 노드 행렬을 생성한다.In this way, when the two-dimensional column vector and the two-dimensional row vector corresponding to each of the plurality of node apparatuses 101, 102, 103 are generated, the node matrix generator 122 may generate the plurality of node apparatuses 101, For each of 102 and 103, a node matrix having a size of 2 x 2 corresponding to each of the plurality of node devices 101, 102, and 103 by multiplying the column vector and the row vector corresponding to each node device. create

관련해서, 앞선 예와 같이, 노드 장치 1(101)에 대해서 '

Figure 112020080223067-pat00004
'이라고 하는 2차원의 열벡터가 생성 되었고 '
Figure 112020080223067-pat00005
'이라고 하는 2차원의 행벡터가 생성된 경우, 노드 행렬 생성부(122)는 상기 열벡터 및 상기 행벡터를 서로 곱함으로써 '
Figure 112020080223067-pat00006
'라고 하는 노드 행렬을 생성할 수 있다. 이러한 방식으로 노드 행렬 생성부(122)는 복수의 노드 장치들(101,102,103) 각각에 대응되는 2 x 2의 크기를 갖는 노드 행렬을 생성할 수 있다.In this regard, as in the previous example, for node device 1 101, '
Figure 112020080223067-pat00004
A two-dimensional column vector called ' was created and '
Figure 112020080223067-pat00005
When a two-dimensional row vector ' is generated, the node matrix generator 122 multiplies the column vector and the row vector by
Figure 112020080223067-pat00006
You can create a node matrix called '. In this way, the node matrix generator 122 may generate a node matrix having a size of 2 x 2 corresponding to each of the plurality of node devices 101 , 102 , and 103 .

이렇게, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 노드 행렬이 생성되면, 선택부(123)는 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 노드 행렬의 유클리드 노름(Euclidean norm)을 연산하고, 복수의 노드 장치들(101, 102, 103) 중에서 상기 노드 행렬의 유클리드 노름이 작게 연산된 순으로 상기 제1 프로그램의 위/변조 검증을 수행할 상기 K개의 제1 노드 장치들을 선택한다. In this way, when the node matrix corresponding to each of the plurality of node devices 101 , 102 , 103 is generated, the selector 123 is the node matrix corresponding to each of the plurality of node devices 101 , 102 , 103 . K to calculate the Euclidean norm of and perform forgery/modulation verification of the first program in the order in which the Euclidean norm of the node matrix is calculated to be smaller among the plurality of node devices 101, 102, 103 Select the first node devices.

여기서, 유클리드 노름이란 벡터나 행렬의 유클리드 공간 상에서의 크기를 나타내는 L2 노름으로, 하기의 수학식 2와 같이 나타낼 수 있다.Here, the Euclidean norm is an L2 norm indicating the size of a vector or matrix in the Euclidean space, and can be expressed as in Equation 2 below.

Figure 112020080223067-pat00007
Figure 112020080223067-pat00007

여기서,

Figure 112020080223067-pat00008
가 유클리드 노름, xk는 벡터 또는 행렬의 k번째 성분을 의미한다. here,
Figure 112020080223067-pat00008
is the Euclidean norm, x k denotes the kth component of a vector or matrix.

관련해서, K가 2라고 하고, 복수의 노드 장치들(101, 102, 103)에 대해 노드 장치 1(101), 노드 장치 2(102), 노드 장치 3(103)의 순서로 상기 노드 행렬의 유클리드 노름이 작게 연산되었다고 하는 경우, 선택부(123)는 노드 장치 1(101) 및 노드 장치 2(102)를 상기 제1 프로그램의 위/변조 검증을 수행할 2개의 노드 장치로 선택할 수 있다.In this regard, let K be 2, and for the plurality of node devices 101 , 102 , 103 , in the order of node device 1 101 , node device 2 102 , and node device 3 103 , the When it is assumed that the Euclidean norm is calculated to be small, the selection unit 123 may select the node device 1 101 and the node device 2 102 as two node devices for performing forgery/tamper verification of the first program.

여기서, 상기 노드 행렬의 유클리드 노름이 작게 연산되었다는 것은 해당 노드 장치에서의 총 바이러스 검출 횟수가 적고, 트래픽 수치의 평균 값이 작으며, 현재 CPU 사용률 및 메모리 사용률이 낮다는 의미이기 때문에, 상기 유클리드 노름이 작게 산출된 노드 장치는 비교적 안정적이고 현재 유휴상태에 가까운 상태에 놓여있다고 볼 수 있다. 따라서, 선택부(123)는 상기 유클리드 노름이 작게 산출된 노드 장치를 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택함으로써, 보다 안정적이고 효율적인 제1 프로그램의 위/변조 검증이 가능하도록 지원할 수 있다. Here, the fact that the Euclidean norm of the node matrix is calculated to be small means that the total number of virus detections in the node device is small, the average value of the traffic value is small, and the current CPU usage rate and memory usage rate are low. This small calculated node device is relatively stable, and it can be seen that it is currently in a state close to the idle state. Accordingly, the selection unit 123 selects the node device for which the Euclidean norm is calculated to be small as the node device for performing the forgery/falsification verification of the first program, thereby enabling more stable and efficient forgery/falsification verification of the first program. can support

이렇게, 노드 선택부(114)에서 상기 K개의 제1 노드 장치들이 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택되면, 검증 요청부(115)는 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청한다. In this way, when the K first node devices are selected by the node selector 114 as node devices to perform forgery/falsification verification of the first program, the verification requesting unit 115 selects the K first node devices. to transmit the first unique identifier and the first hash value and simultaneously request forgery/falsification verification of the first program.

예컨대, 앞선 예와 같이, 노드 장치 1(101) 및 노드 장치 2(102)가 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택되었다고 하는 경우, 검증 요청부(115)는 노드 장치 1(101) 및 노드 장치 2(102) 각각으로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청할 수 있다. For example, as in the previous example, when it is assumed that node device 1 101 and node device 2 102 are selected as node devices to perform forgery/falsification verification of the first program, the verification request unit 115 is the node device While transmitting the first unique identifier and the first hash value to each of the node 1 101 and the node device 2 102 , it is possible to request forgery/falsification verification of the first program.

이때, 본 발명의 일실시예에 따르면, 상기 K개의 제1 노드 장치들 각각은 전자 단말 장치(110)로부터 상기 제1 고유 식별자 및 상기 제1 해시 값이 수신됨과 동시에 상기 제1 프로그램의 위/변조 검증 요청이 수신되면, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자가 기록되어 있는 제1 블록을 검색하고, 상기 제1 블록으로부터 상기 제1 블록 내에 기록되어 있는 제2 해시 값을 추출한 후, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 여부를 확인하여 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조되지 않은 것으로 판단하고, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하지 않는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조된 것으로 판단한 후 상기 제1 프로그램의 위/변조여부에 대한 판단에 따른 검증 결과를 전자 단말 장치(110)로 전송할 수 있다. At this time, according to an embodiment of the present invention, each of the K first node devices receives the first unique identifier and the first hash value from the electronic terminal device 110 and at the same time the When a modulation verification request is received, the first block in which the first unique identifier is recorded is retrieved from the block chain data stored in each of the K first node devices, and the first block is retrieved from the first block. When it is confirmed that the second hash value and the first hash value match each other by extracting the second hash value recorded in the , if it is determined that the first program has not been forged/altered, and it is determined that the second hash value and the first hash value do not match each other, after determining that the first program has been forged/altered 1 The verification result according to the determination of whether the program is forged/falsified may be transmitted to the electronic terminal device 110 .

예컨대, 상기 제1 프로그램을 '프로그램 1'이라고 하고, 상기 제1 고유 식별자를 '고유 식별자 1'이라고 하며, 상기 K개의 제1 노드 장치들 중 어느 하나의 노드 장치를 노드 장치 1(101)이라고 하는 경우, 노드 장치 1(101)은 전자 단말 장치(110)로부터 '고유 식별자 1'과 '프로그램 1'의 실행 파일에 대한 상기 제1 해시 값이 수신되면, '고유 식별자 1'을 기초로 노드 장치 1(101)에 저장되어 있는 블록체인 데이터로부터 상기의 표 1과 같은 트랜잭션을 포함하는 블록에서 '해시 값 1'을 상기 제2 해시 값으로 추출할 수 있다. 그러고 나서, 노드 장치 1(101)은 전자 단말 장치(110)로부터 수신된 상기 제1 해시 값이 상기 블록체인 데이터로부터 추출된 상기 제2 해시 값인 '해시 값 1'과 일치하는지 여부를 확인하고, 양 해시 값이 서로 일치하는 것으로 확인되는 경우, 상기 '프로그램 1'이 위/변조되지 않은 것으로 판단하여 그 검증 결과를 전자 단말 장치(110)로 전송할 수 있다. 반면에, 양 해시 값이 서로 일치하지 않는 경우에는 상기 '프로그램 1'의 실행 파일이 전자 단말 장치(110)에서 변형된 것으로 볼 수 있기 때문에, 노드 장치 1(101)은 양 해시 값이 서로 일치하지 않는 것으로 확인되는 경우, 상기 '프로그램 1'이 위/변조된 것으로 판단한 후 그 검증 결과를 전자 단말 장치(110)로 전송할 수 있다.For example, the first program is called 'program 1', the first unique identifier is called 'unique identifier 1', and any one node device among the K first node devices is called node device 1 (101). In this case, when the first hash value for the executable file of 'unique identifier 1' and 'program 1' is received from the electronic terminal device 110, the node device 1 101 is a node based on the 'unique identifier 1' From the block chain data stored in the device 1 101, 'hash value 1' may be extracted as the second hash value from a block including a transaction as shown in Table 1 above. Then, the node device 1 101 checks whether the first hash value received from the electronic terminal device 110 matches the 'hash value 1', which is the second hash value extracted from the block chain data, When it is confirmed that both hash values match each other, it is determined that the 'Program 1' has not been forged/altered, and the verification result may be transmitted to the electronic terminal device 110 . On the other hand, when both hash values do not match, the executable file of 'Program 1' can be viewed as being modified in the electronic terminal device 110, so that the node device 1 101 has both hash values coincide with each other. When it is confirmed that not, it is determined that the 'Program 1' has been forged/altered, and the verification result may be transmitted to the electronic terminal device 110 .

이렇게, 상기 K개의 제1 노드 장치들 각각이 상기 제1 프로그램의 위/변조 검증 요청에 대응하여, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자를 기초로 상기 블록체인 데이터 상에 기록되어 있는 상기 제1 프로그램의 실행 파일에 대한 상기 제2 해시 값을 추출한 후 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 비교함으로써, 상기 제1 프로그램의 위/변조여부에 대한 검증 결과를 생성함에 따라, 상기 K개의 제1 노드 장치들 각각으로부터 전자 단말 장치(110)에 상기 제1 프로그램의 위/변조여부에 대한 검증 결과가 수신되면, 비율 확인부(116)는 상기 K개의 제1 노드 장치들 중에서 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율을 확인한다.In this way, each of the K first node devices obtains the first unique identifier from the blockchain data stored in each of the K first node devices in response to the forgery/falsification verification request of the first program. By extracting the second hash value for the executable file of the first program recorded on the block chain data based on the basis, and comparing whether the second hash value and the first hash value match each other, the first program As the verification result for forgery/falsification of The unit 116 checks the ratio of the node devices that transmit the verification result determined that the first program has not been forged/altered among the K first node devices.

그리고, 실행부(117)는 상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시킨다. Then, the execution unit 117 checks whether the ratio exceeds a preset reference ratio, and when it is confirmed that the ratio exceeds the reference ratio, the first program is executed.

예컨대, 상기 K개의 제1 노드 장치들이 노드 장치 1(101) 및 노드 장치 2(102)라고 하고, 상기 기준 비율이 '60%'라고 하며, 노드 장치 1(101)과 노드 장치 2(102) 모두로부터 전자 단말 장치(110)에 상기 제1 프로그램이 위/변조 되지 않은 것으로 판단된 검증 결과가 수신되었다고 하는 경우, 비율 확인부(116)는 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율이 100%임을 확인할 수 있고, 이는 상기 기준 비율인 60%를 초과하기 때문에, 실행부(117)는 상기 제1 프로그램이 위/변조되지 않은 안전한 프로그램임을 최종 확인하여 상기 제1 프로그램을 전자 단말 장치(110)에서 실행시킬 수 있다.For example, it is assumed that the K first node devices are node device 1 101 and node device 2 102 , the reference ratio is '60%', and node device 1 101 and node device 2 102 . When it is said that the verification result determined that the first program has not been forged/falsified has been received by the electronic terminal device 110 from all of them, the ratio check unit 116 determines that the first program has not been forged/falsified. It can be confirmed that the ratio of the node device that has transmitted the verification result is 100%, and since it exceeds the reference ratio of 60%, the execution unit 117 finally confirms that the first program is a safe program that is not forged / tampered with Thus, the first program may be executed in the electronic terminal device 110 .

본 발명의 일실시예에 따르면, 전자 단말 장치(110)는 로그 전송부(124)를 더 포함할 수 있다.According to an embodiment of the present invention, the electronic terminal device 110 may further include a log transmission unit 124 .

로그 전송부(124)는 실행부(117)에서 상기 제1 프로그램의 실행이 완료되면, 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 확인하고, 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 프로그램 실행 이력 데이터베이스가 구비된 로그 관리 서버(131)로 전송한다. When the execution unit 117 completes the execution of the first program, the log transmission unit 124 provides device identification information of the electronic terminal device 110, information on the time at which the first program is executed, and the first unique information. A log management server having a program execution history database confirms information on the identifier, and displays device identification information of the electronic terminal device 110 , information on the execution time of the first program, and information on the first unique identifier (131).

이때, 로그 관리 서버(131)는 전자 단말 장치(110)로부터 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보가 수신되면, 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 로그 관리 서버(131)에 구비되어 있는 상기 프로그램 실행 이력 데이터베이스에 저장한다. At this time, the log management server 131 receives from the electronic terminal device 110 device identification information of the electronic terminal device 110 , information on the time when the first program is executed, and information on the first unique identifier. , storing the device identification information of the electronic terminal device 110 , information on the execution time of the first program, and information on the first unique identifier in the program execution history database provided in the log management server 131 . do.

즉, 본 발명에서는 전자 단말 장치(110)에서 소정의 프로그램이 실행될 때마다 이에 대한 로그 정보를 로그 관리 서버(131)의 프로그램 실행 이력 데이터베이스에 저장해 둠으로써, 추후 프로그램의 실행에 따라 전자 단말 장치(110)에 이상이 생겼을 때, 관리자가 손쉽게 프로그램 실행 이력을 확인할 수 있도록 지원할 수 있다.That is, in the present invention, whenever a predetermined program is executed in the electronic terminal device 110, log information is stored in the program execution history database of the log management server 131, so that the electronic terminal device ( 110), it can be supported so that the administrator can easily check the program execution history.

지금까지는 사용자(130)가 상기 화이트 리스트에 포함되는 것으로 지정되어 있는 복수의 프로그램들 중 하나인 제1 프로그램을 전자 단말 장치(110)에서 실행하는 경우에 상기 제1 프로그램의 위/변조 검증을 수행한 후 상기 제1 프로그램을 실행시키는 구성에 대해 설명하였다. So far, when the user 130 executes the first program, which is one of a plurality of programs designated to be included in the white list, in the electronic terminal device 110, forgery/falsification verification of the first program is performed. After that, the configuration for executing the first program has been described.

하지만, 사용자(130)는 화이트 리스트에 포함되는 것으로 지정되어 있는 복수의 프로그램들 중 하나가 아닌 새로운 프로그램을 전자 단말 장치(110)에 신규로 설치 하는 경우도 있을 수 있기 때문에, 본 발명의 일실시예에 따른 전자 단말 장치(110)는 상기 복수의 프로그램들에 포함되지 않는 제2 프로그램이 설치되기 위한 설치 이벤트가 발생하는 경우에 제2 프로그램에 대한 정보를 상기 화이트 리스트에 신규로 등록하기 위한 구성을 더 포함할 수 있다. However, since the user 130 may newly install a new program other than one of a plurality of programs designated to be included in the white list in the electronic terminal device 110, one embodiment of the present invention The electronic terminal device 110 according to an example is configured to newly register information on the second program to the white list when an installation event for installing a second program not included in the plurality of programs occurs. may further include.

이와 관련해서, 본 발명의 일실시예에 따르면, 전자 단말 장치(110)는 메시지 표시부(125), 등록 정보 생성부(126), 등록 요청부(127) 및 식별자 기록부(128)를 더 포함할 수 있다. In this regard, according to an embodiment of the present invention, the electronic terminal device 110 may further include a message display unit 125 , a registration information generation unit 126 , a registration request unit 127 , and an identifier recording unit 128 . can

메시지 표시부(125)는 사용자(130)로부터 전자 단말 장치(110)에 상기 복수의 프로그램들에 포함되지 않는 새로운 프로그램인 제2 프로그램을 설치하기 위한 명령이 인가됨에 따라, 전자 단말 장치(110)에서 상기 제2 프로그램이 설치되기 위한 설치 이벤트가 발생하는 경우, 상기 제2 프로그램을 상기 화이트 리스트에 등록할지 여부를 질의하는 질의 메시지를 화면 상에 표시한다.When a command for installing a second program, which is a new program not included in the plurality of programs, is applied from the user 130 to the electronic terminal device 110 , the message display unit 125 displays the message in the electronic terminal device 110 . When an installation event for installing the second program occurs, a query message asking whether to register the second program on the white list is displayed on the screen.

등록 정보 생성부(126)는 상기 질의 메시지에 대응하여, 전자 단말 장치(110)의 사용자(130)로부터 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청 명령이 인가되면, 상기 제2 프로그램에 대응되는 고유 식별자인 제2 고유 식별자를 생성하고, 상기 제2 프로그램에서 상기 제2 프로그램의 실행 파일인 제2 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제2 실행 파일에 대한 해시 값인 제3 해시 값을 생성한다.The registration information generating unit 126 receives a registration request command to include the second program in the white list from the user 130 of the electronic terminal device 110 in response to the inquiry message, and the second program Generates a second unique identifier that is a unique identifier corresponding to , extracts a second executable file that is an executable file of the second program from the second program, and uses the hash function 3 Generate a hash value.

이렇게, 상기 제2 고유 식별자와 상기 제2 해시 값이 생성되면, 등록 요청부(127)는 등록 관리 서버(132)로 상기 제2 고유 식별자 및 상기 제3 해시 값을 전송함과 동시에 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청을 전송한다. In this way, when the second unique identifier and the second hash value are generated, the registration requesting unit 127 transmits the second unique identifier and the third hash value to the registration management server 132 and simultaneously transmits the second Sends a registration request for the program to be included in the white list.

식별자 기록부(128)는 등록 관리 서버(132)로 상기 등록 요청이 전송되면, 상기 제2 프로그램이 전자 단말 장치(110)에 설치되도록 하는 설치 프로세스를 진행하고, 상기 제2 고유 식별자를 상기 식별자 테이블에 기록한다.When the registration request is transmitted to the registration management server 132, the identifier recorder 128 performs an installation process for installing the second program in the electronic terminal device 110, and sets the second unique identifier to the identifier table. record in

이때, 등록 관리 서버(132)는 전자 단말 장치(110)로부터 상기 제2 고유 식별자 및 상기 제3 해시 값이 수신됨과 동시에 상기 등록 요청이 수신되면, 상기 제2 고유 식별자와 상기 제3 해시 값으로 구성된 제1 트랜잭션을 생성하고, 상기 복수의 노드 장치들 중 어느 하나의 노드 장치인 제2 노드 장치로 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송한다. At this time, when the registration request is received at the same time that the second unique identifier and the third hash value are received from the electronic terminal device 110 , the registration management server 132 uses the second unique identifier and the third hash value as the second unique identifier and the third hash value. A configured first transaction is generated, and a registration request of the first transaction and the first transaction to the blockchain network is transmitted to a second node device that is any one of the plurality of node devices.

이때, 상기 제2 노드 장치는 등록 관리 서버(132)로부터 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 수신되면, 상기 제2 노드 장치에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제2 블록을 생성하고, 상기 제2 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 제2 블록을 상기 블록체인 네트워크를 통해 복수의 노드 장치들(101, 102, 103) 중 상기 제2 노드 장치를 제외한 나머지 노드 장치들로 전파한다. At this time, the second node device receives the first transaction and the registration request to the blockchain network of the first transaction from the registration management server 132, the block chain data stored in the second node device A second block including the first transaction is generated based on a chain, the second block is chained to the block chain data, and the second block is connected to a plurality of node devices 101 through the block chain network. 102 and 103), propagating to the remaining node devices except for the second node device.

이를 통해, 상기 제2 프로그램에 대한 상기 제2 고유 식별자와 상기 제3 해시 값은 복수 노드 장치들(101, 102, 103)에 분산 저장됨으로써, 상기 화이트 리스트 상에 상기 제2 프로그램이 등록될 수 있고, 추후 전자 단말 장치(110)에서 상기 제2 프로그램이 실행되는 경우, 앞서 설명한 프로그램의 위/변조 검증 과정이 수행될 수 있다.Through this, the second unique identifier and the third hash value for the second program are distributed and stored in the plurality of node devices 101, 102, 103, so that the second program can be registered on the white list. If the second program is later executed in the electronic terminal device 110 , the above-described forgery/falsification verification process of the program may be performed.

본 발명의 일실시예에 따르면, 전자 단말 장치(110)는 소정의 동기화 주기 간격으로 복수의 노드 장치들(101, 102, 103) 중 어느 하나의 노드 장치에 대해 상기 화이트 리스트의 동기화 요청을 전송할 수 있다. 이때, 상기 어느 하나의 노드 장치는 전자 단말 장치(110)로부터 상기 화이트 리스트의 동기화 요청이 수신되면, 상기 블록체인 데이터에 저장되어 있는 화이트 리스트로 등록된 모든 프로그램들의 고유 식별자와 해시 값을 추출하여 전자 단말 장치(110)로 전송할 수 있고, 전자 단말 장치(110)는 상기 어느 하나의 노드 장치로부터 모든 프로그램들의 고유 식별자와 해시 값이 수신되면, 수신된 모든 프로그램들의 고유 식별자와 해시 값을 전자 단말 장치(110) 내부의 저장소에 화이트 리스트로 저장해 둘 수 있다.According to an embodiment of the present invention, the electronic terminal device 110 transmits the white list synchronization request to any one node device among the plurality of node devices 101, 102, 103 at a predetermined synchronization cycle interval. can At this time, when the request for synchronization of the white list is received from the electronic terminal device 110, the one node device extracts unique identifiers and hash values of all programs registered in the white list stored in the block chain data, It can be transmitted to the electronic terminal device 110, and when the unique identifiers and hash values of all programs are received from the one node device, the electronic terminal device 110 transmits the unique identifiers and hash values of all the received programs to the electronic terminal. It may be stored as a white list in the storage inside the device 110 .

이를 통해, 전자 단말 장치(110)는 네트워크 오류 등으로 인해, 복수의 노드 장치들(101, 102, 103)과 접속할 수 없는 오프라인 상황에서도 내부의 저장소에 저장되어 있는 화이트 리스트를 기초로 전자 단말 장치(110)에서 실행되는 프로그램에 대한 위/변조 검증을 수행할 수 있다.Through this, even in an offline situation in which the electronic terminal device 110 cannot connect to the plurality of node devices 101, 102, 103 due to a network error, etc., based on the white list stored in the internal storage, the electronic terminal device Forgery/falsification verification for the program executed in 110 may be performed.

도 2는 본 발명의 일실시예에 따른 블록체인 네트워크를 형성하고 있는 복수의 노드 장치들(상기 복수의 노드 장치들은 화이트 리스트에 포함되는 것으로 사전 지정된 프로그램의 고유 식별자 및 상기 프로그램의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있음)과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법을 도시한 순서도이다.2 is a diagram of a plurality of node devices forming a block chain network according to an embodiment of the present invention (the plurality of node devices are a unique identifier of a program pre-designated to be included in a white list and an executable file of the program It is a flowchart illustrating an operation method of an electronic terminal device that performs forgery/falsification verification of a program in conjunction with blocks including transactions composed of hash values (which store block chain data connected by a chain).

단계(S210)에서는 프로그램의 위/변조 검증을 위해 상기 복수의 노드 장치들과 사전 공유하고 있는 해시 함수가 저장되어 있는 함수 저장부를 유지한다.In step S210, a function storage unit in which a hash function previously shared with the plurality of node devices is stored for forgery/falsification verification of the program is maintained.

단계(S220)에서는 상기 전자 단말 장치에 설치되어 있는 복수의 프로그램들(상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들임)에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있는 테이블 저장부를 유지한다.In step S220, a table storage unit in which an identifier table in which unique identifiers corresponding to a plurality of programs installed in the electronic terminal device (the plurality of programs are programs included in the white list) is recorded is stored. keep

단계(S230)에서는 상기 전자 단말 장치에서 상기 복수의 프로그램들 중 제1 프로그램을 실행하기 위한 실행 이벤트가 발생하면, 상기 식별자 테이블을 참조하여 상기 제1 프로그램에 대응되는 고유 식별자인 제1 고유 식별자를 확인하고, 상기 제1 프로그램에서 상기 제1 프로그램의 실행 파일인 제1 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제1 실행 파일에 대한 해시 값인 제1 해시 값을 생성한다.In step S230, when an execution event for executing a first program among the plurality of programs occurs in the electronic terminal device, a first unique identifier that is a unique identifier corresponding to the first program is obtained by referring to the identifier table. After checking and extracting a first executable file that is an executable file of the first program from the first program, a first hash value that is a hash value of the first executable file is generated using the hash function.

단계(S240)에서는 상기 복수의 노드 장치들 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택한다.In step S240, K (K is a natural number greater than or equal to 2) number of first node devices among the plurality of node devices is selected as node devices for performing forgery/tampering verification of the first program.

단계(S250)에서는 상기 K개의 제1 노드 장치들이 선택되면, 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청한다.In step S250, when the K first node devices are selected, the first unique identifier and the first hash value are transmitted to the K first node devices, and at the same time, forgery/falsification verification of the first program to request

단계(S260)에서는 상기 K개의 제1 노드 장치들 각각이 상기 제1 프로그램의 위/변조 검증 요청에 대응하여, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자를 기초로 상기 블록체인 데이터 상에 기록되어 있는 상기 제1 프로그램의 실행 파일에 대한 제2 해시 값을 추출한 후 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 비교함으로써, 상기 제1 프로그램의 위/변조여부에 대한 검증 결과를 생성함에 따라, 상기 K개의 제1 노드 장치들 각각으로부터 상기 제1 프로그램의 위/변조여부에 대한 검증 결과가 수신되면, 상기 K개의 제1 노드 장치들 중에서 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율을 확인한다.In step S260, each of the K first node devices responds to the forgery/falsification verification request of the first program, and receives the first data from the block chain data stored in each of the K first node devices. By extracting a second hash value for the executable file of the first program recorded on the block chain data based on a unique identifier and comparing whether the second hash value and the first hash value match each other, the second hash value is As the verification result of whether one program is forged/altered is generated, when verification results are received from each of the K first node devices, the K first node devices Among them, the ratio of the node devices that transmitted the verification result determined that the first program has not been forged/altered is checked.

단계(S270)에서는 상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시킨다.In step S270, it is checked whether the ratio exceeds a preset reference ratio, and when it is confirmed that the ratio exceeds the reference ratio, the first program is executed.

이때, 본 발명의 일실시예에 따르면, 상기 K개의 제1 노드 장치들 각각은 상기 전자 단말 장치로부터 상기 제1 고유 식별자 및 상기 제1 해시 값이 수신됨과 동시에 상기 제1 프로그램의 위/변조 검증 요청이 수신되면, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자가 기록되어 있는 제1 블록을 검색하고, 상기 제1 블록으로부터 상기 제1 블록 내에 기록되어 있는 상기 제2 해시 값을 추출한 후, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 여부를 확인하여 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조되지 않은 것으로 판단하고, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하지 않는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조된 것으로 판단한 후 상기 제1 프로그램의 위/변조여부에 대한 판단에 따른 검증 결과를 상기 전자 단말 장치로 전송한다. At this time, according to an embodiment of the present invention, each of the K first node devices receives the first unique identifier and the first hash value from the electronic terminal device and simultaneously verifies forgery/falsification of the first program When a request is received, the first block in which the first unique identifier is recorded is retrieved from the block chain data stored in each of the K first node devices, and the first block is written from the first block into the first block After extracting the second hash value, it is checked whether the second hash value and the first hash value match each other, and when it is confirmed that the second hash value and the first hash value match each other, If it is determined that the first program has not been forged/tampered, and it is determined that the second hash value and the first hash value do not match each other, after determining that the first program has been forged/tampered, the first A verification result according to the determination of whether the program is forged/falsified is transmitted to the electronic terminal device.

또한, 본 발명의 일실시예에 따르면, 상기 복수의 노드 장치들 각각은 사전 설정된 제1 주기 간격으로 바이러스 검사를 수행하도록 설정되어 있음과 동시에 상기 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장하도록 구성되어 있고, 사전 설정된 제2 주기 간격으로 상기 복수의 노드 장치들 각각에서 발생하는 트래픽 수치를 측정하여 상기 측정된 트래픽 수치에 대한 정보를 저장하도록 구성되어 있을 수 있다.In addition, according to an embodiment of the present invention, each of the plurality of node devices is set to perform a virus scan at a preset first cycle interval and is configured to simultaneously store virus detection history information according to the virus scan, In addition, it may be configured to measure a traffic level generated in each of the plurality of node devices at a preset second cycle interval to store information on the measured traffic level.

이때, 단계(S240)에서는 상기 복수의 노드 장치들과 접속하여 상기 복수의 노드 장치들 각각에 저장되어 있는 바이러스 검출 이력 정보와 트래픽 수치에 대한 정보를 기초로 상기 복수의 노드 장치들 각각의 사전 지정된 과거의 시점부터 현재 시점까지의 기간 동안에 대한 총 바이러스 검출 횟수를 확인하고, 상기 복수의 노드 장치들 각각의 상기 기간 동안에 대한 트래픽 수치의 평균 값을 산출하는 단계, 상기 복수의 노드 장치들 각각에 대해, 상기 총 바이러스 검출 횟수를 사전 설정된 기준 바이러스 검출 횟수로 나눈 값을 쌍곡 탄젠트 함수에 입력으로 인가하여 제1 수치 값을 연산하고, 상기 트래픽 수치의 평균 값을 사전 설정된 기준 트래픽 수치 값으로 나눈 값을 상기 쌍곡 탄젠트 함수에 입력으로 인가하여 제2 수치 값을 연산함으로써, 상기 복수의 노드 장치들 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출하는 단계, 상기 복수의 노드 장치들 각각의 현재 CPU 사용률 및 메모리 사용률을 측정하는 단계, 성분으로 갖는 2차원의 열벡터를 구성함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2차원의 열벡터를 생성하고, 상기 복수의 노드 장치들 각각에 대해, 상기 현재 CPU 사용률 및 메모리 사용률을 성분으로 갖는 2차원의 행벡터를 구성함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2차원의 행벡터를 생성하는 단계, 상기 복수의 노드 장치들 각각에 대해, 각 노드 장치에 대응되는 상기 열벡터 및 상기 행벡터를 서로 곱함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2 x 2의 크기를 갖는 노드 행렬을 생성하는 단계 및 상기 복수의 노드 장치들 각각에 대응되는 2 x 2의 크기를 갖는 상기 노드 행렬이 생성되면, 상기 복수의 노드 장치들 각각에 대응되는 상기 노드 행렬의 유클리드 노름을 연산하고, 상기 복수의 노드 장치들 중에서 상기 노드 행렬의 유클리드 노름이 작게 연산된 순으로 상기 제1 프로그램의 위/변조 검증을 수행할 상기 K개의 제1 노드 장치들을 선택하는 단계를 포함할 수 있다. In this case, in step S240, each of the plurality of node devices is connected to the plurality of node devices and each of the plurality of node devices is pre-designated based on the information on the virus detection history and traffic values stored in each of the plurality of node devices. Checking the total number of virus detections for the period from the past time point to the present time point, calculating an average value of the traffic figure for the period of each of the plurality of node devices, for each of the plurality of node devices , the first numerical value is calculated by applying a value obtained by dividing the total number of virus detections by the preset reference number of virus detections as an input to the hyperbolic tangent function, and dividing the average value of the traffic numerical value by the preset reference traffic numerical value calculating the first numerical value and the second numerical value corresponding to each of the plurality of node devices by applying a second numerical value to the hyperbolic tangent function as an input, each of the plurality of node devices measuring the current CPU usage rate and memory usage rate of , generating a two-dimensional row vector corresponding to each of the plurality of node devices by constructing a two-dimensional row vector having the current CPU usage rate and memory usage rate as components, for each of the plurality of node devices , generating a node matrix having a size of 2 x 2 corresponding to each of the plurality of node devices by multiplying the column vector and the row vector corresponding to each node device, and in each of the plurality of node devices When the node matrix having a corresponding size of 2 x 2 is generated, the Euclidean norm of the node matrix corresponding to each of the plurality of node devices is calculated, and the Euclidean norm of the node matrix among the plurality of node devices is The K first nodes to perform forgery/falsification verification of the first program in the order of calculation in the smallest number may include selecting devices.

또한, 본 발명의 일실시예에 따르면, 상기 전자 단말 장치의 동작 방법은 상기 제1 프로그램의 실행이 완료되면, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 확인하고, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 프로그램 실행 이력 데이터베이스가 구비된 로그 관리 서버로 전송하는 단계를 더 포함할 수 있다.In addition, according to an embodiment of the present invention, in the method of operating the electronic terminal device, when the execution of the first program is completed, device identification information of the electronic terminal device, information on the time when the first program is executed, and Check information on the first unique identifier, and log device identification information of the electronic terminal device, information on the execution time of the first program, and information on the first unique identifier in a program execution history database It may further include the step of transmitting to the management server.

이때, 상기 로그 관리 서버는 상기 전자 단말 장치로부터 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보가 수신되면, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 상기 로그 관리 서버에 구비되어 있는 상기 프로그램 실행 이력 데이터베이스에 저장할 수 있다. In this case, when the log management server receives the device identification information of the electronic terminal device, the information on the execution time of the first program, and the information on the first unique identifier from the electronic terminal device, the Device identification information, information on a time when the first program is executed, and information on the first unique identifier may be stored in the program execution history database provided in the log management server.

또한, 본 발명의 다른 일실시예에 따르면, 상기 전자 단말 장치의 동작 방법은 상기 전자 단말 장치에서 제2 프로그램(상기 제2 프로그램은 상기 복수의 프로그램들에 포함되지 않는 프로그램임)이 설치되기 위한 설치 이벤트가 발생하는 경우, 상기 제2 프로그램을 상기 화이트 리스트에 등록할지 여부를 질의하는 질의 메시지를 화면 상에 표시하는 단계, 상기 질의 메시지에 대응하여, 상기 전자 단말 장치의 사용자로부터 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청 명령이 인가되면, 상기 제2 프로그램에 대응되는 고유 식별자인 제2 고유 식별자를 생성하고, 상기 제2 프로그램에서 상기 제2 프로그램의 실행 파일인 제2 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제2 실행 파일에 대한 해시 값인 제3 해시 값을 생성하는 단계, 등록 관리 서버로 상기 제2 고유 식별자 및 상기 제3 해시 값을 전송함과 동시에 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청을 전송하는 단계 및 상기 등록 관리 서버로 상기 등록 요청이 전송되면, 상기 제2 프로그램이 상기 전자 단말 장치에 설치되도록 하는 설치 프로세스를 진행하고, 상기 제2 고유 식별자를 상기 식별자 테이블에 기록하는 단계를 더 포함할 수 있다. In addition, according to another embodiment of the present invention, the method of operating the electronic terminal device includes a method for installing a second program (the second program is a program not included in the plurality of programs) in the electronic terminal device. When an installation event occurs, displaying a query message for inquiring whether to register the second program on the white list on a screen; When a registration request command to be included in the white list is applied, a second unique identifier that is a unique identifier corresponding to the second program is generated, and a second executable file that is an executable file of the second program in the second program generating a third hash value that is a hash value for the second executable file using the hash function after extracting the transmitting a registration request for a program to be included in the white list, and when the registration request is transmitted to the registration management server, performing an installation process for installing the second program in the electronic terminal device; The method may further include recording a unique identifier in the identifier table.

이때, 상기 등록 관리 서버는 상기 전자 단말 장치로부터 상기 제2 고유 식별자 및 제3 해시 값이 수신됨과 동시에 상기 등록 요청이 수신되면, 상기 제2 고유 식별자와 상기 제3 해시 값으로 구성된 제1 트랜잭션을 생성하고, 상기 복수의 노드 장치들 중 어느 하나의 노드 장치인 제2 노드 장치로 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송할 수 있다.In this case, when the registration request is received at the same time as the second unique identifier and the third hash value are received from the electronic terminal device, the registration management server performs a first transaction composed of the second unique identifier and the third hash value. and transmit the first transaction and a registration request to the blockchain network of the first transaction to a second node device that is any one of the plurality of node devices.

그리고, 상기 제2 노드 장치는 상기 등록 관리 서버로부터 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 수신되면, 상기 제2 노드 장치에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제2 블록을 생성하고, 상기 제2 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 제2 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제2 노드 장치를 제외한 나머지 노드 장치들로 전파할 수 있다.And, when the registration request to the blockchain network of the first transaction and the first transaction is received from the registration management server, the second node device is based on the blockchain data stored in the second node device. generating a second block including the first transaction, chaining the second block to the block chain data, and then connecting the second block to the second block among the plurality of node devices through the block chain network It can propagate to other node devices except for the node device.

이상, 도 2를 참조하여 본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법에 대해 설명하였다. 여기서, 본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법은 도 1을 이용하여 설명한 프로그램의 위/변조 검증을 수행하는 전자 단말 장치(110)의 동작에 대한 구성과 대응될 수 있으므로, 이에 대한 보다 상세한 설명은 생략하기로 한다.In the above, an operation method of an electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention has been described with reference to FIG. 2 . Here, the operating method of the electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention is based on the operation of the electronic terminal device 110 for performing forgery/falsification verification of the program described with reference to FIG. 1 . Since it may correspond to the configuration for , a more detailed description thereof will be omitted.

본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.The method of operating an electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention may be implemented as a computer program stored in a storage medium for execution through combination with a computer.

또한, 본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. In addition, the method of operating an electronic terminal device for performing forgery/falsification verification of a program according to an embodiment of the present invention may be implemented in the form of a program command 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, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the present invention, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated 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, in the present invention, specific matters such as specific components, etc., and limited embodiments and drawings have been described, but these are only provided to help a more general understanding of the present invention, and the present invention is not limited to the above embodiments. , various modifications and variations are possible from these descriptions by those of ordinary skill in the art to which the present invention pertains.

따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.Therefore, the spirit of the present invention should not be limited to the described embodiments, and not only the claims to be described later, but also all those with equivalent or equivalent modifications to the claims will be said to belong to the scope of the spirit of the present invention. .

110: 프로그램의 위/변조 검증을 수행하는 전자 단말 장치
111: 함수 저장부 112: 테이블 저장부
113: 식별 정보 생성부 114: 노드 선택부
115: 검증 요청부 116: 비율 확인부
117: 실행부 118: 정보 확인부
119: 수치 산출부 120: 상태 측정부
121: 벡터 생성부 122: 노드 행렬 생성부
123: 선택부 124: 로그 전송부
125: 메시지 표시부 126: 등록 정보 생성부
127: 등록 요청부 128: 식별자 기록부
100: 블록체인 네트워크
101, 102, 103: 복수의 노드 장치들
130: 사용자
131: 로그 관리 서버
132: 등록 관리 서버
110: Electronic terminal device for performing forgery / falsification verification of the program
111: function storage unit 112: table storage unit
113: identification information generation unit 114: node selection unit
115: verification request unit 116: ratio verification unit
117: execution unit 118: information confirmation unit
119: numerical calculation unit 120: state measurement unit
121: vector generator 122: node matrix generator
123: selection unit 124: log transmission unit
125: message display unit 126: registration information generation unit
127: registration request unit 128: identifier record unit
100: Blockchain Network
101, 102, 103: a plurality of node devices
130: user
131: log management server
132: registration management server

Claims (12)

블록체인 네트워크를 형성하고 있는 복수의 노드 장치들 - 상기 복수의 노드 장치들은 화이트 리스트에 포함되는 것으로 사전 지정된 프로그램의 고유 식별자 및 상기 프로그램의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있음 - 과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치에 있어서,
프로그램의 위/변조 검증을 위해 상기 복수의 노드 장치들과 사전 공유하고 있는 해시 함수가 저장되어 있는 함수 저장부;
상기 전자 단말 장치에 설치되어 있는 복수의 프로그램들 - 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들임 - 에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있는 테이블 저장부;
상기 전자 단말 장치에서 상기 복수의 프로그램들 중 제1 프로그램을 실행하기 위한 실행 이벤트가 발생하면, 상기 식별자 테이블을 참조하여 상기 제1 프로그램에 대응되는 고유 식별자인 제1 고유 식별자를 확인하고, 상기 제1 프로그램에서 상기 제1 프로그램의 실행 파일인 제1 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제1 실행 파일에 대한 해시 값인 제1 해시 값을 생성하는 식별 정보 생성부;
상기 복수의 노드 장치들 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택하는 노드 선택부;
상기 K개의 제1 노드 장치들이 선택되면, 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청하는 검증 요청부;
상기 K개의 제1 노드 장치들 각각이 상기 제1 프로그램의 위/변조 검증 요청에 대응하여, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자를 기초로 상기 블록체인 데이터 상에 기록되어 있는 상기 제1 프로그램의 실행 파일에 대한 제2 해시 값을 추출한 후 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 비교함으로써, 상기 제1 프로그램의 위/변조여부에 대한 검증 결과를 생성함에 따라, 상기 K개의 제1 노드 장치들 각각으로부터 상기 제1 프로그램의 위/변조여부에 대한 검증 결과가 수신되면, 상기 K개의 제1 노드 장치들 중에서 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율을 확인하는 비율 확인부;
상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시키는 실행부;
상기 전자 단말 장치에서 제2 프로그램 - 상기 제2 프로그램은 상기 복수의 프로그램들에 포함되지 않는 프로그램임 - 이 설치되기 위한 설치 이벤트가 발생하는 경우, 상기 제2 프로그램을 상기 화이트 리스트에 등록할지 여부를 질의하는 질의 메시지를 화면 상에 표시하는 메시지 표시부;
상기 질의 메시지에 대응하여, 상기 전자 단말 장치의 사용자로부터 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청 명령이 인가되면, 상기 제2 프로그램에 대응되는 고유 식별자인 제2 고유 식별자를 생성하고, 상기 제2 프로그램에서 상기 제2 프로그램의 실행 파일인 제2 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제2 실행 파일에 대한 해시 값인 제3 해시 값을 생성하는 등록 정보 생성부;
등록 관리 서버로 상기 제2 고유 식별자 및 상기 제3 해시 값을 전송함과 동시에 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청을 전송하는 등록 요청부; 및
상기 등록 관리 서버로 상기 등록 요청이 전송되면, 상기 제2 프로그램이 상기 전자 단말 장치에 설치되도록 하는 설치 프로세스를 진행하고, 상기 제2 고유 식별자를 상기 식별자 테이블에 기록하는 식별자 기록부
를 포함하고,
상기 등록 관리 서버는
상기 전자 단말 장치로부터 상기 제2 고유 식별자 및 상기 제3 해시 값이 수신됨과 동시에 상기 등록 요청이 수신되면, 상기 제2 고유 식별자와 상기 제3 해시 값으로 구성된 제1 트랜잭션을 생성하고, 상기 복수의 노드 장치들 중 어느 하나의 노드 장치인 제2 노드 장치로 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하며,
상기 제2 노드 장치는
상기 등록 관리 서버로부터 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 수신되면, 상기 제2 노드 장치에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제2 블록을 생성하고, 상기 제2 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 제2 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제2 노드 장치를 제외한 나머지 노드 장치들로 전파하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치.
A plurality of node devices forming a blockchain network - The plurality of node devices is a block chain containing a transaction consisting of a unique identifier of a program pre-designated to be included in a white list and a hash value of the program's executable file. In an electronic terminal device that performs forgery/falsification verification of a program in conjunction with -
a function storage unit in which a hash function pre-shared with the plurality of node devices is stored for forgery/falsification verification of the program;
a table storage unit storing an identifier table in which unique identifiers corresponding to a plurality of programs installed in the electronic terminal device are programs included in the white list;
When an execution event for executing a first program among the plurality of programs occurs in the electronic terminal device, a first unique identifier that is a unique identifier corresponding to the first program is identified by referring to the identifier table, and the first unique identifier is identified by referring to the identifier table. an identification information generating unit that extracts a first executable file that is an executable file of the first program from one program and generates a first hash value that is a hash value of the first executable file by using the hash function;
a node selection unit that selects K (K is a natural number greater than or equal to 2) first node devices from among the plurality of node devices as node devices for performing forgery/tamper verification of the first program;
When the K first node devices are selected, a verification request for transmitting the first unique identifier and the first hash value to the K first node devices and simultaneously requesting forgery/falsification verification of the first program wealth;
Based on the first unique identifier from the block chain data stored in each of the K first node devices, each of the K first node devices corresponds to the forgery/falsification verification request of the first program. After extracting the second hash value for the executable file of the first program recorded on the block chain data, by comparing whether the second hash value and the first hash value match each other, As a result of verification of whether or not modulation is generated, a verification result of whether or not the first program is forged/modulated is received from each of the K first node devices, and the first of the K first node devices a rate checking unit that checks the ratio of the node devices that have transmitted the verification result determined that the program is not forged/falsified;
an execution unit that checks whether the ratio exceeds a preset reference ratio, and executes the first program when it is determined that the ratio exceeds the reference ratio;
When an installation event for installing a second program - the second program is a program not included in the plurality of programs - occurs in the electronic terminal device, whether to register the second program in the white list a message display unit for displaying a query message to be inquired on the screen;
In response to the inquiry message, when a registration request command for including the second program to be included in the white list is applied from the user of the electronic terminal device, a second unique identifier that is a unique identifier corresponding to the second program is generated; , a registration information generator for extracting a second executable file that is an executable file of the second program from the second program and then generates a third hash value that is a hash value for the second executable file by using the hash function;
a registration request unit that transmits the second unique identifier and the third hash value to a registration management server and simultaneously transmits a registration request for the second program to be included in the white list; and
When the registration request is transmitted to the registration management server, an identifier recording unit that performs an installation process for installing the second program in the electronic terminal device, and records the second unique identifier in the identifier table
including,
The registration management server
When the registration request is received at the same time that the second unique identifier and the third hash value are received from the electronic terminal device, a first transaction composed of the second unique identifier and the third hash value is generated, and the plurality of sending the first transaction and the registration request to the blockchain network of the first transaction to a second node device that is a node device of any one of the node devices;
The second node device
When a registration request to the blockchain network of the first transaction and the first transaction is received from the registration management server, a first transaction including the first transaction based on the blockchain data stored in the second node device After generating 2 blocks, and linking the second block to the block chain data in a chain, the second block is connected to the other node devices except for the second node device among the plurality of node devices through the block chain network. An electronic terminal device for performing forgery / falsification verification of a program, characterized in that it propagates to
제1항에 있어서,
상기 K개의 제1 노드 장치들 각각은
상기 전자 단말 장치로부터 상기 제1 고유 식별자 및 상기 제1 해시 값이 수신됨과 동시에 상기 제1 프로그램의 위/변조 검증 요청이 수신되면, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자가 기록되어 있는 제1 블록을 검색하고, 상기 제1 블록으로부터 상기 제1 블록 내에 기록되어 있는 상기 제2 해시 값을 추출한 후, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 여부를 확인하여 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조되지 않은 것으로 판단하고, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하지 않는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조된 것으로 판단한 후 상기 제1 프로그램의 위/변조여부에 대한 판단에 따른 검증 결과를 상기 전자 단말 장치로 전송하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치.
According to claim 1,
Each of the K first node devices is
When the first unique identifier and the first hash value are received from the electronic terminal device and at the same time the forgery/falsification verification request of the first program is received, the block chain stored in each of the K first node devices After searching for a first block in which the first unique identifier is recorded from data, and extracting the second hash value recorded in the first block from the first block, the second hash value and the first hash When it is confirmed that the second hash value and the first hash value match each other by checking whether the values match each other, it is determined that the first program has not been forged/altered, and the second hash value and the When it is determined that the first hash values do not match each other, it is determined that the first program has been forged/falsified, and then a verification result according to the determination of whether the first program is forged/falsified is transmitted to the electronic terminal device Electronic terminal device for performing forgery / falsification verification of the program, characterized in that.
제1항에 있어서,
상기 복수의 노드 장치들 각각은
사전 설정된 제1 주기 간격으로 바이러스 검사를 수행하도록 설정되어 있음과 동시에 상기 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장하도록 구성되어 있고, 사전 설정된 제2 주기 간격으로 상기 복수의 노드 장치들 각각에서 발생하는 트래픽 수치를 측정하여 상기 측정된 트래픽 수치에 대한 정보를 저장하도록 구성되어 있으며,
상기 노드 선택부는
상기 복수의 노드 장치들과 접속하여 상기 복수의 노드 장치들 각각에 저장되어 있는 바이러스 검출 이력 정보와 트래픽 수치에 대한 정보를 기초로 상기 복수의 노드 장치들 각각의 사전 지정된 과거의 시점부터 현재 시점까지의 기간 동안에 대한 총 바이러스 검출 횟수를 확인하고, 상기 복수의 노드 장치들 각각의 상기 기간 동안에 대한 트래픽 수치의 평균 값을 산출하는 정보 확인부;
상기 복수의 노드 장치들 각각에 대해, 상기 총 바이러스 검출 횟수를 사전 설정된 기준 바이러스 검출 횟수로 나눈 값을 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제1 수치 값을 연산하고, 상기 트래픽 수치의 평균 값을 사전 설정된 기준 트래픽 수치 값으로 나눈 값을 상기 쌍곡 탄젠트 함수에 입력으로 인가하여 제2 수치 값을 연산함으로써, 상기 복수의 노드 장치들 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출하는 수치 산출부;
상기 복수의 노드 장치들 각각의 현재 CPU 사용률 및 메모리 사용률을 측정하는 상태 측정부;
상기 복수의 노드 장치들 각각에 대해, 상기 제1 수치 값 및 상기 제2 수치 값을 성분으로 갖는 2차원의 열벡터를 구성함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2차원의 열벡터를 생성하고, 상기 복수의 노드 장치들 각각에 대해, 상기 현재 CPU 사용률 및 메모리 사용률을 성분으로 갖는 2차원의 행벡터를 구성함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2차원의 행벡터를 생성하는 벡터 생성부;
상기 복수의 노드 장치들 각각에 대해, 각 노드 장치에 대응되는 상기 열벡터 및 상기 행벡터를 서로 곱함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2 x 2의 크기를 갖는 노드 행렬을 생성하는 노드 행렬 생성부; 및
상기 복수의 노드 장치들 각각에 대응되는 2 x 2의 크기를 갖는 상기 노드 행렬이 생성되면, 상기 복수의 노드 장치들 각각에 대응되는 상기 노드 행렬의 유클리드 노름(Euclidean norm)을 연산하고, 상기 복수의 노드 장치들 중에서 상기 노드 행렬의 유클리드 노름이 작게 연산된 순으로 상기 제1 프로그램의 위/변조 검증을 수행할 상기 K개의 제1 노드 장치들을 선택하는 선택부
를 포함하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치.
According to claim 1,
Each of the plurality of node devices is
It is set to perform a virus scan at a preset first cycle interval and is configured to store virus detection history information according to the virus scan, and occurs in each of the plurality of node devices at a preset second cycle interval is configured to measure the traffic figure and store information about the measured traffic figure,
The node selector
From a predetermined past time point to the present time point of each of the plurality of node devices based on the information on the traffic values and virus detection history information stored in each of the plurality of node devices in connection with the plurality of node devices an information confirmation unit that checks the total number of virus detections for a period of , and calculates an average value of traffic values for the period of each of the plurality of node devices;
For each of the plurality of node devices, a value obtained by dividing the total number of virus detections by a preset reference number of virus detections is applied as an input to hyperbolic tangent functions to calculate a first numerical value, and the traffic value The first numerical value and the second value corresponding to each of the plurality of node devices by applying a value obtained by dividing an average value of ? by a preset reference traffic numerical value as an input to the hyperbolic tangent function to calculate a second numerical value a numerical calculation unit for calculating a numerical value;
a state measuring unit measuring a current CPU usage rate and a memory usage rate of each of the plurality of node devices;
For each of the plurality of node devices, a two-dimensional column vector corresponding to each of the plurality of node devices is obtained by constructing a two-dimensional column vector having the first numerical value and the second numerical value as components. A vector for generating a two-dimensional row vector corresponding to each of the plurality of node devices by generating a two-dimensional row vector having the current CPU usage rate and memory usage rate as components for each of the plurality of node devices generator;
A node generating, for each of the plurality of node devices, a node matrix having a size of 2×2 corresponding to each of the plurality of node devices by multiplying the column vector and the row vector corresponding to each node device matrix generator; and
When the node matrix having a size of 2 x 2 corresponding to each of the plurality of node devices is generated, a Euclidean norm of the node matrix corresponding to each of the plurality of node devices is calculated, and the plurality of A selection unit that selects the K first node devices for performing forgery/modulation verification of the first program in the order in which the Euclidean norm of the node matrix is calculated to be small among the node devices of
An electronic terminal device for performing forgery / falsification verification of a program comprising a.
제1항에 있어서,
상기 제1 프로그램의 실행이 완료되면, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 확인하고, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 프로그램 실행 이력 데이터베이스가 구비된 로그 관리 서버로 전송하는 로그 전송부
를 더 포함하고,
상기 로그 관리 서버는
상기 전자 단말 장치로부터 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보가 수신되면, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 상기 로그 관리 서버에 구비되어 있는 상기 프로그램 실행 이력 데이터베이스에 저장하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치.
According to claim 1,
When the execution of the first program is completed, device identification information of the electronic terminal device, information on a time when the first program is executed, and information on the first unique identifier are checked, and device identification of the electronic terminal device A log transmission unit for transmitting information, information on the time when the first program was executed, and information on the first unique identifier to a log management server having a program execution history database
further comprising,
The log management server
When the device identification information of the electronic terminal device, the information on the execution time of the first program, and the information on the first unique identifier are received from the electronic terminal device, the device identification information of the electronic terminal device, the first Electronic terminal device for performing forgery/falsification verification of a program, characterized in that the information on the execution time of the program and the information on the first unique identifier are stored in the program execution history database provided in the log management server .
삭제delete 블록체인 네트워크를 형성하고 있는 복수의 노드 장치들 - 상기 복수의 노드 장치들은 화이트 리스트에 포함되는 것으로 사전 지정된 프로그램의 고유 식별자 및 상기 프로그램의 실행 파일에 대한 해시 값으로 구성된 트랜잭션을 포함하는 블록들이 체인으로 연결되어 있는 블록체인 데이터를 저장하고 있음 - 과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법에 있어서,
프로그램의 위/변조 검증을 위해 상기 복수의 노드 장치들과 사전 공유하고 있는 해시 함수가 저장되어 있는 함수 저장부를 유지하는 단계;
상기 전자 단말 장치에 설치되어 있는 복수의 프로그램들 - 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들임 - 에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있는 테이블 저장부를 유지하는 단계;
상기 전자 단말 장치에서 상기 복수의 프로그램들 중 제1 프로그램을 실행하기 위한 실행 이벤트가 발생하면, 상기 식별자 테이블을 참조하여 상기 제1 프로그램에 대응되는 고유 식별자인 제1 고유 식별자를 확인하고, 상기 제1 프로그램에서 상기 제1 프로그램의 실행 파일인 제1 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제1 실행 파일에 대한 해시 값인 제1 해시 값을 생성하는 단계;
상기 복수의 노드 장치들 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택하는 단계;
상기 K개의 제1 노드 장치들이 선택되면, 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청하는 단계;
상기 K개의 제1 노드 장치들 각각이 상기 제1 프로그램의 위/변조 검증 요청에 대응하여, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자를 기초로 상기 블록체인 데이터 상에 기록되어 있는 상기 제1 프로그램의 실행 파일에 대한 제2 해시 값을 추출한 후 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 비교함으로써, 상기 제1 프로그램의 위/변조여부에 대한 검증 결과를 생성함에 따라, 상기 K개의 제1 노드 장치들 각각으로부터 상기 제1 프로그램의 위/변조여부에 대한 검증 결과가 수신되면, 상기 K개의 제1 노드 장치들 중에서 상기 제1 프로그램이 위/변조되지 않은 것으로 판단된 검증 결과를 전송한 노드 장치의 비율을 확인하는 단계;
상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시키는 단계;
상기 전자 단말 장치에서 제2 프로그램 - 상기 제2 프로그램은 상기 복수의 프로그램들에 포함되지 않는 프로그램임 - 이 설치되기 위한 설치 이벤트가 발생하는 경우, 상기 제2 프로그램을 상기 화이트 리스트에 등록할지 여부를 질의하는 질의 메시지를 화면 상에 표시하는 단계;
상기 질의 메시지에 대응하여, 상기 전자 단말 장치의 사용자로부터 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청 명령이 인가되면, 상기 제2 프로그램에 대응되는 고유 식별자인 제2 고유 식별자를 생성하고, 상기 제2 프로그램에서 상기 제2 프로그램의 실행 파일인 제2 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제2 실행 파일에 대한 해시 값인 제3 해시 값을 생성하는 단계;
등록 관리 서버로 상기 제2 고유 식별자 및 상기 제3 해시 값을 전송함과 동시에 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청을 전송하는 단계; 및
상기 등록 관리 서버로 상기 등록 요청이 전송되면, 상기 제2 프로그램이 상기 전자 단말 장치에 설치되도록 하는 설치 프로세스를 진행하고, 상기 제2 고유 식별자를 상기 식별자 테이블에 기록하는 단계
를 포함하고,
상기 등록 관리 서버는
상기 전자 단말 장치로부터 상기 제2 고유 식별자 및 상기 제3 해시 값이 수신됨과 동시에 상기 등록 요청이 수신되면, 상기 제2 고유 식별자와 상기 제3 해시 값으로 구성된 제1 트랜잭션을 생성하고, 상기 복수의 노드 장치들 중 어느 하나의 노드 장치인 제2 노드 장치로 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청을 전송하며,
상기 제2 노드 장치는
상기 등록 관리 서버로부터 상기 제1 트랜잭션과 상기 제1 트랜잭션의 상기 블록체인 네트워크로의 등록 요청이 수신되면, 상기 제2 노드 장치에 저장되어 있는 블록체인 데이터를 기초로 상기 제1 트랜잭션을 포함하는 제2 블록을 생성하고, 상기 제2 블록을 상기 블록체인 데이터에 체인으로 연결한 후 상기 제2 블록을 상기 블록체인 네트워크를 통해 상기 복수의 노드 장치들 중 상기 제2 노드 장치를 제외한 나머지 노드 장치들로 전파하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법.
A plurality of node devices forming a blockchain network - The plurality of node devices is a block chain containing a transaction consisting of a unique identifier of a program pre-designated to be included in a white list and a hash value of the program's executable file. In the method of operating an electronic terminal device for performing forgery/falsification verification of a program in conjunction with -
maintaining a function storage unit in which a hash function previously shared with the plurality of node devices is stored for forgery/falsification verification of the program;
maintaining a table storage unit storing an identifier table in which unique identifiers corresponding to a plurality of programs installed in the electronic terminal device are programs included in the white list;
When an execution event for executing a first program among the plurality of programs occurs in the electronic terminal device, a first unique identifier that is a unique identifier corresponding to the first program is identified by referring to the identifier table, and the first unique identifier is identified by referring to the identifier table. generating a first hash value that is a hash value for the first executable file by using the hash function after extracting a first executable file that is an executable file of the first program from one program;
selecting K (K is a natural number greater than or equal to 2) first node devices among the plurality of node devices as node devices for performing forgery/tampering verification of the first program;
when the K first node devices are selected, transmitting the first unique identifier and the first hash value to the K first node devices and simultaneously requesting forgery/falsification verification of the first program;
Based on the first unique identifier from the block chain data stored in each of the K first node devices, each of the K first node devices corresponds to the forgery/falsification verification request of the first program. After extracting the second hash value for the executable file of the first program recorded on the block chain data, by comparing whether the second hash value and the first hash value match each other, As a result of verification of whether or not modulation is generated, a verification result of whether or not the first program is forged/modulated is received from each of the K first node devices, and the first of the K first node devices checking the proportion of node devices that have transmitted the verification result determined that the program is not forged/altered;
checking whether the ratio exceeds a preset reference ratio, and when it is determined that the ratio exceeds the reference ratio, executing the first program;
When an installation event for installing a second program - the second program is a program not included in the plurality of programs - occurs in the electronic terminal device, whether to register the second program in the white list displaying a query message to inquire on a screen;
In response to the inquiry message, when a registration request command for including the second program to be included in the white list is applied from the user of the electronic terminal device, a second unique identifier that is a unique identifier corresponding to the second program is generated; , extracting a second executable file that is an executable file of the second program from the second program and then generating a third hash value that is a hash value for the second executable file by using the hash function;
transmitting the second unique identifier and the third hash value to a registration management server and simultaneously transmitting a registration request for including the second program in the white list; and
When the registration request is transmitted to the registration management server, performing an installation process for installing the second program in the electronic terminal device, and recording the second unique identifier in the identifier table;
including,
The registration management server
When the registration request is received at the same time as the second unique identifier and the third hash value are received from the electronic terminal device, a first transaction composed of the second unique identifier and the third hash value is generated, and the plurality of sending the first transaction and the registration request to the blockchain network of the first transaction to a second node device that is a node device of any one of the node devices;
The second node device
When a registration request to the blockchain network of the first transaction and the first transaction is received from the registration management server, the first transaction including the first transaction based on the blockchain data stored in the second node device After generating 2 blocks, and linking the second block to the block chain data in a chain, the second block is connected to the other node devices except for the second node device among the plurality of node devices through the block chain network. A method of operating an electronic terminal device for performing forgery/falsification verification of a program, characterized in that it propagates to
제6항에 있어서,
상기 K개의 제1 노드 장치들 각각은
상기 전자 단말 장치로부터 상기 제1 고유 식별자 및 상기 제1 해시 값이 수신됨과 동시에 상기 제1 프로그램의 위/변조 검증 요청이 수신되면, 상기 K개의 제1 노드 장치들 각각에 저장되어 있는 상기 블록체인 데이터로부터 상기 제1 고유 식별자가 기록되어 있는 제1 블록을 검색하고, 상기 제1 블록으로부터 상기 제1 블록 내에 기록되어 있는 상기 제2 해시 값을 추출한 후, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는지 여부를 확인하여 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조되지 않은 것으로 판단하고, 상기 제2 해시 값과 상기 제1 해시 값이 서로 일치하지 않는 것으로 확인되는 경우, 상기 제1 프로그램이 위/변조된 것으로 판단한 후 상기 제1 프로그램의 위/변조여부에 대한 판단에 따른 검증 결과를 상기 전자 단말 장치로 전송하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법.
7. The method of claim 6,
Each of the K first node devices is
When the first unique identifier and the first hash value are received from the electronic terminal device and at the same time the forgery/falsification verification request of the first program is received, the block chain stored in each of the K first node devices After searching for a first block in which the first unique identifier is recorded from data, and extracting the second hash value recorded in the first block from the first block, the second hash value and the first hash When it is confirmed that the second hash value and the first hash value match each other by checking whether the values match each other, it is determined that the first program has not been forged/altered, and the second hash value and the When it is determined that the first hash values do not match each other, it is determined that the first program has been forged/falsified, and then a verification result according to the determination of whether the first program is forged/falsified is transmitted to the electronic terminal device An operating method of an electronic terminal device for performing forgery/falsification verification of a program, characterized in that.
제6항에 있어서,
상기 복수의 노드 장치들 각각은
사전 설정된 제1 주기 간격으로 바이러스 검사를 수행하도록 설정되어 있음과 동시에 상기 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장하도록 구성되어 있고, 사전 설정된 제2 주기 간격으로 상기 복수의 노드 장치들 각각에서 발생하는 트래픽 수치를 측정하여 상기 측정된 트래픽 수치에 대한 정보를 저장하도록 구성되어 있으며,
상기 선택하는 단계는
상기 복수의 노드 장치들과 접속하여 상기 복수의 노드 장치들 각각에 저장되어 있는 바이러스 검출 이력 정보와 트래픽 수치에 대한 정보를 기초로 상기 복수의 노드 장치들 각각의 사전 지정된 과거의 시점부터 현재 시점까지의 기간 동안에 대한 총 바이러스 검출 횟수를 확인하고, 상기 복수의 노드 장치들 각각의 상기 기간 동안에 대한 트래픽 수치의 평균 값을 산출하는 단계;
상기 복수의 노드 장치들 각각에 대해, 상기 총 바이러스 검출 횟수를 사전 설정된 기준 바이러스 검출 횟수로 나눈 값을 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제1 수치 값을 연산하고, 상기 트래픽 수치의 평균 값을 사전 설정된 기준 트래픽 수치 값으로 나눈 값을 상기 쌍곡 탄젠트 함수에 입력으로 인가하여 제2 수치 값을 연산함으로써, 상기 복수의 노드 장치들 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출하는 단계;
상기 복수의 노드 장치들 각각의 현재 CPU 사용률 및 메모리 사용률을 측정하는 단계;
상기 복수의 노드 장치들 각각에 대해, 상기 제1 수치 값 및 상기 제2 수치 값을 성분으로 갖는 2차원의 열벡터를 구성함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2차원의 열벡터를 생성하고, 상기 복수의 노드 장치들 각각에 대해, 상기 현재 CPU 사용률 및 메모리 사용률을 성분으로 갖는 2차원의 행벡터를 구성함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2차원의 행벡터를 생성하는 단계;
상기 복수의 노드 장치들 각각에 대해, 각 노드 장치에 대응되는 상기 열벡터 및 상기 행벡터를 서로 곱함으로써, 상기 복수의 노드 장치들 각각에 대응되는 2 x 2의 크기를 갖는 노드 행렬을 생성하는 단계; 및
상기 복수의 노드 장치들 각각에 대응되는 2 x 2의 크기를 갖는 상기 노드 행렬이 생성되면, 상기 복수의 노드 장치들 각각에 대응되는 상기 노드 행렬의 유클리드 노름(Euclidean norm)을 연산하고, 상기 복수의 노드 장치들 중에서 상기 노드 행렬의 유클리드 노름이 작게 연산된 순으로 상기 제1 프로그램의 위/변조 검증을 수행할 상기 K개의 제1 노드 장치들을 선택하는 단계;
를 포함하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법.
7. The method of claim 6,
Each of the plurality of node devices is
It is set to perform a virus scan at a preset first cycle interval and is configured to store virus detection history information according to the virus scan, and occurs in each of the plurality of node devices at a preset second cycle interval is configured to measure the traffic figure and store information about the measured traffic figure,
The selecting step
From a predetermined past time point to the present time point of each of the plurality of node devices based on the information on the traffic values and virus detection history information stored in each of the plurality of node devices in connection with the plurality of node devices checking a total number of virus detections for a period of , and calculating an average value of traffic values for each of the plurality of node devices during the period;
For each of the plurality of node devices, a value obtained by dividing the total number of virus detections by a preset reference number of virus detections is applied as an input to hyperbolic tangent functions to calculate a first numerical value, and the traffic value The first numerical value and the second value corresponding to each of the plurality of node devices by applying a value obtained by dividing an average value of ? by a preset reference traffic numerical value as an input to the hyperbolic tangent function to calculate a second numerical value calculating a numerical value;
measuring a current CPU usage rate and a memory usage rate of each of the plurality of node devices;
For each of the plurality of node devices, a two-dimensional column vector corresponding to each of the plurality of node devices is obtained by constructing a two-dimensional column vector having the first numerical value and the second numerical value as components. generating, for each of the plurality of node devices, constructing a two-dimensional row vector having the current CPU usage rate and memory usage rate as components, thereby generating a two-dimensional row vector corresponding to each of the plurality of node devices; ;
generating, for each of the plurality of node devices, a node matrix having a size of 2×2 corresponding to each of the plurality of node devices by multiplying the column vector and the row vector corresponding to each node device ; and
When the node matrix having a size of 2 x 2 corresponding to each of the plurality of node devices is generated, a Euclidean norm of the node matrix corresponding to each of the plurality of node devices is calculated, and the plurality of selecting the K first node devices for performing forgery/modulation verification of the first program in the order in which the Euclidean norm of the node matrix is calculated to be smaller among the node devices of ;
An operating method of an electronic terminal device for performing forgery/falsification verification of a program comprising a.
제6항에 있어서,
상기 제1 프로그램의 실행이 완료되면, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 확인하고, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 프로그램 실행 이력 데이터베이스가 구비된 로그 관리 서버로 전송하는 단계
를 더 포함하고,
상기 로그 관리 서버는
상기 전자 단말 장치로부터 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보가 수신되면, 상기 전자 단말 장치의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 상기 로그 관리 서버에 구비되어 있는 상기 프로그램 실행 이력 데이터베이스에 저장하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법.
7. The method of claim 6,
When the execution of the first program is completed, device identification information of the electronic terminal device, information on a time when the first program is executed, and information on the first unique identifier are checked, and device identification of the electronic terminal device Transmitting information, information on the execution time of the first program, and information on the first unique identifier to a log management server having a program execution history database
further comprising,
The log management server
When the device identification information of the electronic terminal device, the information on the execution time of the first program, and the information on the first unique identifier are received from the electronic terminal device, the device identification information of the electronic terminal device, the first Electronic terminal device for performing forgery/falsification verification of a program, characterized in that the information on the execution time of the program and the information on the first unique identifier are stored in the program execution history database provided in the log management server how it works.
삭제delete 제6항, 제7항, 제8항 또는 제9항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 컴퓨터 프로그램을 기록한 컴퓨터 판독 가능 기록 매체.A computer-readable recording medium recording a computer program for executing the method of any one of claims 6, 7, 8, or 9 through combination with a computer. 제6항, 제7항, 제8항 또는 제9항 중 어느 한 항의 방법을 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램.A computer program stored in a storage medium for executing the method of any one of claims 6, 7, 8 or 9 in combination with a computer.
KR1020200095462A 2020-07-30 2020-07-30 Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof KR102345501B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200095462A KR102345501B1 (en) 2020-07-30 2020-07-30 Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200095462A KR102345501B1 (en) 2020-07-30 2020-07-30 Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof

Publications (1)

Publication Number Publication Date
KR102345501B1 true KR102345501B1 (en) 2022-01-03

Family

ID=79348156

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200095462A KR102345501B1 (en) 2020-07-30 2020-07-30 Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof

Country Status (1)

Country Link
KR (1) KR102345501B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102011363B1 (en) * 2018-03-08 2019-08-16 최승환 Method for software authentication using block-chain authentication

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102011363B1 (en) * 2018-03-08 2019-08-16 최승환 Method for software authentication using block-chain authentication

Similar Documents

Publication Publication Date Title
US11444777B2 (en) Method and system for providing validated, auditable, and immutable inputs to a smart contract
CN109791591B (en) Method and system for identity and credential protection and verification via blockchain
CN111163182B (en) Block chain-based device registration method and apparatus, electronic device, and storage medium
US7958367B2 (en) Authentication system and apparatus
CN103201747B (en) For verifying the method and apparatus of multiple data handling system
US20210049715A1 (en) Blockchain-based data procesing method, apparatus, and electronic device
US20200366504A1 (en) Signature verification for a blockchain ledger
CN109002472B (en) Database difference identification method and device
CN110543488A (en) Verification node updating method, device and equipment
CN115186304B (en) Transaction data verification method and system based on block chain
WO2021114627A1 (en) Distributed transaction-based data processing method, device, terminal, and storage medium
CN113362068B (en) Method for verifying block chain state transfer by light node
CN113448681B (en) Registration method, equipment and storage medium of virtual machine monitor public key
KR102345501B1 (en) Electronic terminal device which verifies if the program is fabricated or falsified interworking plural node units constituting blockchain network and operating method thereof
CN112905437B (en) Method, device and storage medium for testing cases
CN112583890B (en) Message pushing method and device based on enterprise office system and computer equipment
CN113344598A (en) Data verification method, device, medium and electronic equipment
CN110490005B (en) Method, device and computer readable storage medium for processing resource transfer request
CN114710319B (en) Decision judging method and system based on trusted computing
US20240005351A1 (en) Verification method and information processing apparatus
CN113010409B (en) Intelligent contract testing method and device, electronic equipment and storage medium
CN117032727B (en) File compiling method, device, equipment, medium and product based on block chain
US20230139656A1 (en) Method and system of machine learning model validation in blockchain through zero knowledge protocol
CN116032786A (en) Pressure testing method, device and equipment for block chain network
CN116233157A (en) Electronic contract signing method, device and system

Legal Events

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