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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/552—Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols 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
Description
본 발명은 블록체인 네트워크를 구성하고 있는 복수의 노드 장치들과 연동하여 프로그램의 위/변조 검증을 수행하는 전자 단말 장치 및 그 동작 방법에 대한 것이다.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
먼저, 복수의 노드 장치들(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
예컨대, 화이트 리스트에 포함되는 것으로 사전 지정된 '프로그램 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
함수 저장부(111)에는 프로그램의 위/변조 검증을 위해 복수의 노드 장치들(101, 102, 103)과 사전 공유하고 있는 해시 함수가 저장되어 있다.The
테이블 저장부(112)에는 전자 단말 장치(110)에 설치되어 있는 복수의 프로그램들에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있다. 여기서, 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들이다.The
그리고, 고유 식별자는 상기 복수의 프로그램들 각각을 서로 구별할 수 있도록 하기 위한 고유의 식별 정보를 의미하는 것으로, 상기 식별자 테이블에는 하기의 표 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.
이때, 사용자(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
예컨대, 상기 제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
노드 선택부(114)는 복수의 노드 장치들(101, 102, 103) 중 K(K는 2이상의 자연수)개의 제1 노드 장치들을 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택한다. The
이때, 본 발명의 일실시예에 따르면, 노드 선택부(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
먼저, 복수의 노드 장치들(101, 102, 103) 각각은 사전 설정된 제1 주기 간격으로 바이러스 검사를 수행하도록 설정되어 있음과 동시에 상기 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장하도록 구성되어 있고, 사전 설정된 제2 주기 간격으로 복수의 노드 장치들(101, 102, 103) 각각에서 발생하는 트래픽 수치를 측정하여 상기 측정된 트래픽 수치에 대한 정보를 저장하도록 구성되어 있을 수 있다.First, each of the plurality of
예컨대, 상기 제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
이때, 정보 확인부(118)는 복수의 노드 장치들(101, 102, 103)과 접속하여 복수의 노드 장치들(101, 102, 103) 각각에 저장되어 있는 바이러스 검출 이력 정보와 트래픽 수치에 대한 정보를 기초로 복수의 노드 장치들(101, 102, 103) 각각의 사전 지정된 과거의 시점부터 현재 시점까지의 기간 동안에 대한 총 바이러스 검출 횟수를 확인하고, 복수의 노드 장치들(101, 102, 103) 각각의 상기 기간 동안에 대한 트래픽 수치의 평균 값을 산출한다. At this time, the
예컨대, 상기 사전 지정된 과거의 시점을 '현재 시점으로부터 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
그 이후, 수치 산출부(119)는 복수의 노드 장치들(101, 102, 103) 각각에 대해, 상기 총 바이러스 검출 횟수를 사전 설정된 기준 바이러스 검출 횟수로 나눈 값을 쌍곡 탄젠트 함수(hyperbolic tangent functions)에 입력으로 인가하여 제1 수치 값을 연산하고, 상기 트래픽 수치의 평균 값을 사전 설정된 기준 트래픽 수치 값으로 나눈 값을 상기 쌍곡 탄젠트 함수에 입력으로 인가하여 제2 수치 값을 연산함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출한다. After that, the
관련해서, 수치 산출부(119)는 하기의 수학식 1의 연산에 따라 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 상기 제1 수치 값 및 상기 제2 수치 값을 산출할 수 있다. In this regard, the
상기의 수학식 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
상태 측정부(120)는 복수의 노드 장치들(101, 102, 103) 각각의 현재 CPU 사용률 및 메모리 사용률을 측정한다. The
벡터 생성부(121)는 복수의 노드 장치들(101, 102, 103) 각각에 대해 상기 제1 수치 값 및 상기 제2 수치 값을 성분으로 갖는 2차원의 열벡터를 구성함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 2차원의 열벡터를 생성하고, 복수의 노드 장치들(101, 102, 103) 각각에 대해 상기 현재 CPU 사용률 및 메모리 사용률을 성분으로 갖는 2차원의 행벡터를 구성함으로써, 복수의 노드 장치들(101, 102, 103) 각각에 대응되는 2차원의 행벡터를 생성한다. The
예컨대, 노드 장치 1(101)에 대해서 '0.462'가 상기 제1 수치 값으로 산출되었고, '0.997'이 상기 제2 수치 값으로 산출된 경우, 벡터 생성부(121)는 노드 장치 1(101)에 대해서 ''이라고 하는 2차원의 열벡터를 생성할 수 있다. 또한, 노드 장치(101)에 대해서 상기 현재 CPU 사용률이 '40%'이고 메모리 사용률이 '50%'로 측정되었다고 하는 경우, 벡터 생성부(121)는 노드 장치 1(101)에 대해서 ''이라고 하는 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
이렇게, 복수의 노드 장치들(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
관련해서, 앞선 예와 같이, 노드 장치 1(101)에 대해서 ''이라고 하는 2차원의 열벡터가 생성 되었고 ''이라고 하는 2차원의 행벡터가 생성된 경우, 노드 행렬 생성부(122)는 상기 열벡터 및 상기 행벡터를 서로 곱함으로써 ''라고 하는 노드 행렬을 생성할 수 있다. 이러한 방식으로 노드 행렬 생성부(122)는 복수의 노드 장치들(101,102,103) 각각에 대응되는 2 x 2의 크기를 갖는 노드 행렬을 생성할 수 있다.In this regard, as in the previous example, for node device 1 101, ' A two-dimensional column vector called ' was created and ' When a two-dimensional row vector ' is generated, the
이렇게, 복수의 노드 장치들(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
여기서, 유클리드 노름이란 벡터나 행렬의 유클리드 공간 상에서의 크기를 나타내는 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.
여기서, 가 유클리드 노름, xk는 벡터 또는 행렬의 k번째 성분을 의미한다. here, 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
여기서, 상기 노드 행렬의 유클리드 노름이 작게 연산되었다는 것은 해당 노드 장치에서의 총 바이러스 검출 횟수가 적고, 트래픽 수치의 평균 값이 작으며, 현재 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
이렇게, 노드 선택부(114)에서 상기 K개의 제1 노드 장치들이 상기 제1 프로그램의 위/변조 검증을 수행할 노드 장치로 선택되면, 검증 요청부(115)는 상기 K개의 제1 노드 장치들로 상기 제1 고유 식별자 및 상기 제1 해시 값을 전송함과 동시에 상기 제1 프로그램의 위/변조 검증을 요청한다. In this way, when the K first node devices are selected by the
예컨대, 앞선 예와 같이, 노드 장치 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
이때, 본 발명의 일실시예에 따르면, 상기 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
예컨대, 상기 제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
이렇게, 상기 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
그리고, 실행부(117)는 상기 비율이 사전 설정된 기준 비율을 초과하는지 여부를 확인하여 상기 비율이 상기 기준 비율을 초과하는 것으로 확인된 경우, 상기 제1 프로그램을 실행시킨다. Then, the
예컨대, 상기 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
본 발명의 일실시예에 따르면, 전자 단말 장치(110)는 로그 전송부(124)를 더 포함할 수 있다.According to an embodiment of the present invention, the electronic
로그 전송부(124)는 실행부(117)에서 상기 제1 프로그램의 실행이 완료되면, 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 확인하고, 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 프로그램 실행 이력 데이터베이스가 구비된 로그 관리 서버(131)로 전송한다. When the
이때, 로그 관리 서버(131)는 전자 단말 장치(110)로부터 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보가 수신되면, 전자 단말 장치(110)의 기기 식별 정보, 상기 제1 프로그램이 실행된 시간에 대한 정보 및 상기 제1 고유 식별자에 대한 정보를 로그 관리 서버(131)에 구비되어 있는 상기 프로그램 실행 이력 데이터베이스에 저장한다. At this time, the
즉, 본 발명에서는 전자 단말 장치(110)에서 소정의 프로그램이 실행될 때마다 이에 대한 로그 정보를 로그 관리 서버(131)의 프로그램 실행 이력 데이터베이스에 저장해 둠으로써, 추후 프로그램의 실행에 따라 전자 단말 장치(110)에 이상이 생겼을 때, 관리자가 손쉽게 프로그램 실행 이력을 확인할 수 있도록 지원할 수 있다.That is, in the present invention, whenever a predetermined program is executed in the electronic
지금까지는 사용자(130)가 상기 화이트 리스트에 포함되는 것으로 지정되어 있는 복수의 프로그램들 중 하나인 제1 프로그램을 전자 단말 장치(110)에서 실행하는 경우에 상기 제1 프로그램의 위/변조 검증을 수행한 후 상기 제1 프로그램을 실행시키는 구성에 대해 설명하였다. So far, when the
하지만, 사용자(130)는 화이트 리스트에 포함되는 것으로 지정되어 있는 복수의 프로그램들 중 하나가 아닌 새로운 프로그램을 전자 단말 장치(110)에 신규로 설치 하는 경우도 있을 수 있기 때문에, 본 발명의 일실시예에 따른 전자 단말 장치(110)는 상기 복수의 프로그램들에 포함되지 않는 제2 프로그램이 설치되기 위한 설치 이벤트가 발생하는 경우에 제2 프로그램에 대한 정보를 상기 화이트 리스트에 신규로 등록하기 위한 구성을 더 포함할 수 있다. However, since the
이와 관련해서, 본 발명의 일실시예에 따르면, 전자 단말 장치(110)는 메시지 표시부(125), 등록 정보 생성부(126), 등록 요청부(127) 및 식별자 기록부(128)를 더 포함할 수 있다. In this regard, according to an embodiment of the present invention, the electronic
메시지 표시부(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
등록 정보 생성부(126)는 상기 질의 메시지에 대응하여, 전자 단말 장치(110)의 사용자(130)로부터 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청 명령이 인가되면, 상기 제2 프로그램에 대응되는 고유 식별자인 제2 고유 식별자를 생성하고, 상기 제2 프로그램에서 상기 제2 프로그램의 실행 파일인 제2 실행 파일을 추출한 후 상기 해시 함수를 이용하여 상기 제2 실행 파일에 대한 해시 값인 제3 해시 값을 생성한다.The registration
이렇게, 상기 제2 고유 식별자와 상기 제2 해시 값이 생성되면, 등록 요청부(127)는 등록 관리 서버(132)로 상기 제2 고유 식별자 및 상기 제3 해시 값을 전송함과 동시에 상기 제2 프로그램이 상기 화이트 리스트에 포함되도록 하는 등록 요청을 전송한다. In this way, when the second unique identifier and the second hash value are generated, the
식별자 기록부(128)는 등록 관리 서버(132)로 상기 등록 요청이 전송되면, 상기 제2 프로그램이 전자 단말 장치(110)에 설치되도록 하는 설치 프로세스를 진행하고, 상기 제2 고유 식별자를 상기 식별자 테이블에 기록한다.When the registration request is transmitted to the
이때, 등록 관리 서버(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
이때, 상기 제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
이를 통해, 상기 제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
본 발명의 일실시예에 따르면, 전자 단말 장치(110)는 소정의 동기화 주기 간격으로 복수의 노드 장치들(101, 102, 103) 중 어느 하나의 노드 장치에 대해 상기 화이트 리스트의 동기화 요청을 전송할 수 있다. 이때, 상기 어느 하나의 노드 장치는 전자 단말 장치(110)로부터 상기 화이트 리스트의 동기화 요청이 수신되면, 상기 블록체인 데이터에 저장되어 있는 화이트 리스트로 등록된 모든 프로그램들의 고유 식별자와 해시 값을 추출하여 전자 단말 장치(110)로 전송할 수 있고, 전자 단말 장치(110)는 상기 어느 하나의 노드 장치로부터 모든 프로그램들의 고유 식별자와 해시 값이 수신되면, 수신된 모든 프로그램들의 고유 식별자와 해시 값을 전자 단말 장치(110) 내부의 저장소에 화이트 리스트로 저장해 둘 수 있다.According to an embodiment of the present invention, the electronic
이를 통해, 전자 단말 장치(110)는 네트워크 오류 등으로 인해, 복수의 노드 장치들(101, 102, 103)과 접속할 수 없는 오프라인 상황에서도 내부의 저장소에 저장되어 있는 화이트 리스트를 기초로 전자 단말 장치(110)에서 실행되는 프로그램에 대한 위/변조 검증을 수행할 수 있다.Through this, even in an offline situation in which the electronic
도 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
본 발명의 일실시예에 따른 프로그램의 위/변조 검증을 수행하는 전자 단말 장치의 동작 방법은 컴퓨터와의 결합을 통해 실행시키기 위한 저장매체에 저장된 컴퓨터 프로그램으로 구현될 수 있다.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
상기 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 주기 간격으로 바이러스 검사를 수행하도록 설정되어 있음과 동시에 상기 바이러스 검사에 따른 바이러스 검출 이력 정보를 저장하도록 구성되어 있고, 사전 설정된 제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 고유 식별자에 대한 정보를 상기 로그 관리 서버에 구비되어 있는 상기 프로그램 실행 이력 데이터베이스에 저장하는 것을 특징으로 하는 프로그램의 위/변조 검증을 수행하는 전자 단말 장치.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 .
프로그램의 위/변조 검증을 위해 상기 복수의 노드 장치들과 사전 공유하고 있는 해시 함수가 저장되어 있는 함수 저장부를 유지하는 단계;
상기 전자 단말 장치에 설치되어 있는 복수의 프로그램들 - 상기 복수의 프로그램들은 상기 화이트 리스트에 포함되어 있는 프로그램들임 - 에 대응되는 고유 식별자가 기록된 식별자 테이블이 저장되어 있는 테이블 저장부를 유지하는 단계;
상기 전자 단말 장치에서 상기 복수의 프로그램들 중 제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
상기 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.
상기 복수의 노드 장치들 각각은
사전 설정된 제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.
상기 제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.
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102011363B1 (en) * | 2018-03-08 | 2019-08-16 | 최승환 | Method for software authentication using block-chain authentication |
-
2020
- 2020-07-30 KR KR1020200095462A patent/KR102345501B1/en active IP Right Grant
Patent Citations (1)
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 | |
CN111163182B (en) | Block chain-based device registration method and apparatus, electronic device, and storage medium | |
CN109791591B (en) | Method and system for identity and credential protection and verification via blockchain | |
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 | |
CN112905437B (en) | Method, device and storage medium for testing cases | |
CN111694852B (en) | Data processing method, device, terminal and storage medium based on distributed transaction | |
CN115186304B (en) | Transaction data verification method and system based on block chain | |
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 | |
CN113362068A (en) | Method for verifying block chain state transfer by light node | |
CN113010409B (en) | Intelligent contract testing method and device, electronic equipment and storage medium | |
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 | |
CN111737303A (en) | Data query method and device, computer equipment and storage medium | |
CN114710319B (en) | Decision judging method and system based on trusted computing | |
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 | |
CN118428876A (en) | Block chain-based data processing method, device and system and electronic equipment | |
CN116233157A (en) | Electronic contract signing method, device and system | |
CN116383044A (en) | Software testing method and platform |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |