KR102405093B1 - System and method for verifying integrity of unmanned aerial vehicle - Google Patents

System and method for verifying integrity of unmanned aerial vehicle Download PDF

Info

Publication number
KR102405093B1
KR102405093B1 KR1020210175829A KR20210175829A KR102405093B1 KR 102405093 B1 KR102405093 B1 KR 102405093B1 KR 1020210175829 A KR1020210175829 A KR 1020210175829A KR 20210175829 A KR20210175829 A KR 20210175829A KR 102405093 B1 KR102405093 B1 KR 102405093B1
Authority
KR
South Korea
Prior art keywords
integrity
unmanned aerial
aerial vehicle
hash tree
secure
Prior art date
Application number
KR1020210175829A
Other languages
Korean (ko)
Inventor
홍진아
Original Assignee
한화시스템(주)
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한화시스템(주) filed Critical 한화시스템(주)
Priority to KR1020210175829A priority Critical patent/KR102405093B1/en
Application granted granted Critical
Publication of KR102405093B1 publication Critical patent/KR102405093B1/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64FGROUND OR AIRCRAFT-CARRIER-DECK INSTALLATIONS SPECIALLY ADAPTED FOR USE IN CONNECTION WITH AIRCRAFT; DESIGNING, MANUFACTURING, ASSEMBLING, CLEANING, MAINTAINING OR REPAIRING AIRCRAFT, NOT OTHERWISE PROVIDED FOR; HANDLING, TRANSPORTING, TESTING OR INSPECTING AIRCRAFT COMPONENTS, NOT OTHERWISE PROVIDED FOR
    • B64F5/00Designing, manufacturing, assembling, cleaning, maintaining or repairing aircraft, not otherwise provided for; Handling, transporting, testing or inspecting aircraft components, not otherwise provided for
    • B64F5/60Testing or inspecting aircraft components or systems
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B64AIRCRAFT; AVIATION; COSMONAUTICS
    • B64CAEROPLANES; HELICOPTERS
    • B64C39/00Aircraft not otherwise provided for
    • B64C39/02Aircraft not otherwise provided for characterised by special use
    • B64C39/024Aircraft not otherwise provided for characterised by special use of the remote controlled vehicle type, i.e. RPV
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Manufacturing & Machinery (AREA)
  • Transportation (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 무인 비행기의 무결성 검증 시스템을 제공한다. 상기 시스템은 상기 무인 비행기의 안전 상태에서 산출된 제1 해쉬트리 값을 저장하는 보안 저장소, 무결성 검사 요청에 따라 제2 해쉬트리 값을 산출하고, 상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 보안 제어부 및 상기 보안 제어부로 무결성 검사를 요청하고, 무결성 판단 결과에 따라 복구 정책을 결정하는 일반 제어부를 포함한다.The present invention provides a system for verifying the integrity of an unmanned aerial vehicle. The system calculates a second hash tree value according to a secure storage for storing the first hash tree value calculated in the safe state of the unmanned aerial vehicle, an integrity check request, and compares the first and second hash tree values for integrity and a general control unit for requesting an integrity check to the security control unit and determining a recovery policy according to the integrity determination result.

Description

무인 비행기의 무결성 검증 시스템 및 방법{SYSTEM AND METHOD FOR VERIFYING INTEGRITY OF UNMANNED AERIAL VEHICLE}SYSTEM AND METHOD FOR VERIFYING INTEGRITY OF UNMANNED AERIAL VEHICLE

본 발명은 무인 비행기의 무결성 검증 시스템 및 방법에 관한 것으로서, 특히 하드웨어 레벨에서 커널과 응용프로그램에 대한 무결성 검증이 가능하도록 한 무인 비행기의 무결성 검증 시스템 및 방법에 관한 것이다.The present invention relates to a system and method for verifying the integrity of an unmanned aerial vehicle, and more particularly, to a system and method for verifying the integrity of a kernel and an application program at a hardware level.

무인 비행기(UAV: Unmanned Aerial Vehicle)는 조종사가 탑승하지 않고, 원격조종 또는 자율비행에 의해 비행을 하고, 정찰, 감시, 수송 등의 역할을 수행하는 등과 같이 사람이 직접 수행하기 어렵거나 직접 수행하기에는 위험한 임무를 수행하는 비행기를 나타낸다. Unmanned Aerial Vehicle (UAV) is difficult for a human to perform directly, such as flying without a pilot, flying by remote control or autonomous flight, and performing roles such as reconnaissance, surveillance, and transportation. Represents an airplane performing a dangerous mission.

무인 비행기는 도심 환경을 포함한 다양한 공간에서 비행을 수행할 수 있다는 특징이 존재하지만 오작동이나 불시착하게 되는 경우에는 큰 안전 사고의 원인이 될 수도 있어 무인 비행기의 제어의 중요성이 강조되고 있다. Although unmanned aerial vehicles have the characteristic of being able to fly in various spaces including urban environments, they may cause major safety accidents in the event of a malfunction or an emergency landing, so the importance of controlling the unmanned aerial vehicle is emphasized.

한편, 무인 비행기는 제어를 위한 응용프로그램을 탑재하고 있으며, 소프트웨어적으로 응용 프로그램이 공격당할 위험이 존재한다. 최근에는 응용 프로그램 뿐만 아니라 커널 등 다양한 공격 가능성이 존재하여, 이를 위한 무인 비행기의 무결성을 검증하고 복구를 위한 방안이 필요한 실정이다.On the other hand, the unmanned aerial vehicle is loaded with an application program for control, and there is a risk that the application program is attacked by software. Recently, various attack potentials such as kernels as well as application programs exist, and for this purpose, a method for verifying and restoring the integrity of the unmanned aerial vehicle is required.

본 발명이 해결하고자 하는 과제는 하드웨어 레벨에서 커널과 응용프로그램에 대한 무결성 검증이 가능한, 무인 비행기의 무결성 검증 시스템 및 방법을 제공하는 것이다.SUMMARY OF THE INVENTION An object of the present invention is to provide a system and method for verifying the integrity of an unmanned aerial vehicle that can verify the integrity of a kernel and an application program at a hardware level.

다만, 본 발명이 해결하고자 하는 과제는 상기된 바와 같은 과제로 한정되지 않으며, 또다른 과제들이 존재할 수 있다.However, the problems to be solved by the present invention are not limited to the problems described above, and other problems may exist.

상술한 과제를 해결하기 위한 본 발명의 제1 측면에 따른 무인 비행기의 무결성 검증 시스템은, 상기 무인 비행기의 안전 상태에서 산출된 제1 해쉬트리 값을 저장하는 보안 저장소, 무결성 검사 요청에 따라 제2 해쉬트리 값을 산출하고, 상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 보안 제어부 및 상기 보안 제어부로 무결성 검사를 요청하고, 무결성 판단 결과에 따라 복구 정책을 결정하는 일반 제어부를 포함할 수 있다. The integrity verification system of the unmanned aerial vehicle according to the first aspect of the present invention for solving the above-described problems, a secure storage for storing a first hash tree value calculated in a safe state of the unmanned aerial vehicle, and a second A security control unit that calculates a hash tree value, compares the first and second hash tree values to determine integrity, and a general control unit that requests an integrity check to the security control unit and determines a recovery policy according to the integrity determination result can do.

상기 보안 저장소에는 적재 가능 커널 모듈(Loadable Kernel Module), 실행 중인 커널 코드(running kernel code) 및 어플리케이션 바이너리(application binary)가 메모리에 로딩되었을 때의 상태가 스냅샷 타입의 상기 제1 해쉬트리 값으로 저장될 수 있다. In the secure storage, the state when the loadable kernel module, the running kernel code, and the application binary are loaded into the memory is the first hash tree value of the snapshot type. can be saved.

상기 보안 저장소는 보안 영역에서 운영체제 및 응용프로그램의 실행을 위한 ROM 형태의 제1 보안 저장소와 RAM 형태의 제2 보안 저장소를 포함하며, 상기 제1 해쉬트리 값은 상기 제1 보안 저장소에 저장될 수 있다. The secure storage includes a first secure store in the form of ROM and a second secure store in the form of RAM for execution of an operating system and an application program in a secure area, and the first hash tree value may be stored in the first secure store have.

상기 보안 제어부는 보안 영역에서 동작하고, 상기 일반 제어부는 비보안 영역에서 동작할 수 있다. The security control unit may operate in a security area, and the general control unit may operate in a non-security area.

상기 보안 영역 및 비보안 영역은 적어도 하나의 프로세서에 의해 가상화된 제1 및 제2 가상화 프로세서에 의해 동작될 수 있다. The secure area and the non-secure area may be operated by first and second virtualization processors virtualized by at least one processor.

소정의 캐쉬 및 메모리에는 비보안 비트(Non-secure bit)가 구비되며, 상기 비보안 영역의 동작시 상기 일반 제어부는 상기 비보안 비트가 존재하는 캐쉬 및 메모리에만 접근 가능하고, 상기 보안 영역의 동작시 상기 보안 제어부는 상기 비보안 비트의 존재 여부와 무관하게 캐쉬 및 메모리에 접근 가능할 수 있다. A non-secure bit is provided in a predetermined cache and memory, and when the non-secure area is operated, the general control unit can access only the cache and memory in which the non-secure bit exists, and when the secure area is operated, the secure The control unit may be able to access the cache and memory regardless of the existence of the non-security bit.

상기 무결성 검사 요청에 따라 상기 프로세서는 동작 중인 제1 가상화 프로세서에서 제2 가상화 프로세서로 전환하여 보안 영역이 구동되도록 하고, 상기 보안 영역이 구동됨에 따라 상기 보안 제어부는 상기 메모리에 접근하여 저장된 데이터를 기반으로 제2 해쉬트리 값을 산출할 수 있다. In response to the integrity check request, the processor switches from the operating first virtualization processor to the second virtualization processor so that the security region is driven, and as the security region is driven, the security control unit accesses the memory and based on the stored data to calculate the second hash tree value.

상기 일반 제어부는 상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일한 경우, 지상국에 무인 비행기가 안전한 상태임을 알릴 수 있다. When the first and second hash tree values are the same as a result of the integrity determination, the general controller may notify the ground station that the unmanned aerial vehicle is in a safe state.

상기 일반 제어부는 상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일하지 않은 경우, 무결성 훼손 상태에 기반하여 상기 복구 정책을 결정할 수 있다.When the first and second hash tree values are not the same as a result of the integrity determination, the general controller may determine the recovery policy based on an integrity compromised state.

상기 일반 제어부는 상기 무인 비행기의 운행과 관련된 기 설정된 중요 모듈이 상기 무결성 훼손 상태인 경우, 또는 상기 무인 비행기의 개별 모듈만의 복구가 불가능한 경우, 상기 무인 비행기를 착륙하도록 제어하고, 착륙 후 재부팅 및 복구 제어를 수행할 수 있다. The general control unit controls to land the unmanned aerial vehicle, and reboots after landing, when a preset important module related to the operation of the unmanned aerial vehicle is in the integrity compromised state, or when recovery of only individual modules of the unmanned aerial vehicle is impossible Restoration control can be performed.

상기 일반 제어부는 상기 무인 비행기의 개별 모듈만의 복구가 가능한 경우, 상기 무인 비행기의 운행 중 부분 복구 제어를 수행할 수 있다. The general control unit may perform partial recovery control during operation of the unmanned aerial vehicle when only individual modules of the unmanned aerial vehicle can be restored.

한편, 본 발명의 제2 측면에 따른 무인 비행기의 무결성 검증 방법은, 무인 비행기의 안전 상태에서 산출된 제1 해쉬트리 값을 보안 저장소에 저장하는 단계; 무인 비행기에 대한 지상국으로부터의 증명 요청을 수신하는 단계; 상기 증명 요청에 따라, 보안 영역에서 동작하는 가상화 프로세서로의 동작 전환하는 단계; 무결성 검증 요청에 따라 상기 보안 영역에서 제2 해쉬트리 값을 산출하는 단계; 상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 단계; 및 상기 판단 결과에 따라 복구 정책을 결정하는 단계를 포함할 수 있다. Meanwhile, the method for verifying the integrity of an unmanned aerial vehicle according to a second aspect of the present invention includes the steps of: storing a first hash tree value calculated in a safe state of the unmanned aerial vehicle in a secure storage; receiving a request for attestation from a ground station for the unmanned aerial vehicle; switching an operation to a virtualization processor operating in a security area according to the authentication request; calculating a second hash tree value in the security area according to the integrity verification request; determining integrity by comparing the first and second hash tree values; and determining a recovery policy according to the determination result.

상기 보안 저장소에는 적재 가능 커널 모듈(Loadable Kernel Module), 실행 중인 커널 코드(running kernel code) 및 어플리케이션 바이너리(application binary)가 메모리에 로딩되었을 때의 상태가 스냅샷 타입의 상기 제1 해쉬트리 값으로 저장될 수 있다. In the secure storage, the state when the loadable kernel module, the running kernel code, and the application binary are loaded into the memory is the first hash tree value of the snapshot type. can be saved.

상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 단계는, 상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일한 경우, 상기 지상국에 무인 비행기가 안전한 상태임을 알릴 수 있다. In the step of determining the integrity by comparing the first and second hash tree values, when the first and second hash tree values are the same as a result of the integrity determination, the ground station may be notified that the unmanned aerial vehicle is in a safe state.

상기 판단 결과에 따라 복구 정책을 결정하는 단계는, 상기 일반 제어부는 상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일하지 않은 경우, 무결성 훼손 상태에 기반하여 상기 복구 정책을 결정할 수 있다. In the determining of the recovery policy according to the determination result, the general controller may determine the recovery policy based on an integrity compromised state when the first and second hash tree values are not the same as the integrity determination result.

상기 판단 결과에 따라 복구 정책을 결정하는 단계는, 상기 무인 비행기의 운행과 관련된 기 설정된 중요 모듈이 상기 무결성 훼손 상태인 경우, 또는 상기 무인 비행기의 개별 모듈만의 복구가 불가능한 경우, 상기 무인 비행기를 착륙하도록 제어하고, 착륙 후 재부팅 및 복구 제어를 수행할 수 있다. The step of determining the recovery policy according to the determination result may include, in the case where a preset important module related to the operation of the unmanned aerial vehicle is in the compromised integrity state, or when recovery of only individual modules of the unmanned aerial vehicle is impossible, the unmanned aerial vehicle is restored. You can control it to land and perform reboot and recovery controls after landing.

상기 판단 결과에 따라 복구 정책을 결정하는 단계는, 상기 무인 비행기의 개별 모듈만의 복구가 가능한 경우, 상기 무인 비행기의 운행 중 부분 복구 제어를 수행할 수 있다. In the determining of the recovery policy according to the determination result, if only individual modules of the unmanned aerial vehicle can be recovered, partial recovery control may be performed while the unmanned aerial vehicle is operating.

상술한 과제를 해결하기 위한 본 발명의 다른 면에 따른 컴퓨터 프로그램은, 하드웨어인 컴퓨터와 결합되어 상기 무기체계 시스템의 개발 수명주기에서의 사이버보안 적용을 위한 자동화 장치 및 방법을 실행하며, 컴퓨터 판독가능 기록매체에 저장된다.A computer program according to another aspect of the present invention for solving the above problems is combined with a computer that is hardware to execute an automated device and method for cybersecurity application in the development life cycle of the weapon system system, and is computer readable stored in the recording medium.

본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.Other specific details of the invention are included in the detailed description and drawings.

전술한 본 발명의 일 실시예에 의하면, 하드웨어 레벨에서 커널과 응용 프로그램의 무결성 검사를 수행함으로써, 메모리에 상주된 프로그램을 모두 신뢰 가능하도록 하여, 효율적으로 무인 비행기를 운용할 수 있는 장점이 있다.According to one embodiment of the present invention described above, by performing the integrity check of the kernel and the application program at the hardware level, all programs resident in the memory can be trusted, so that the unmanned aerial vehicle can be efficiently operated.

본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.Effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.

이하에 첨부되는 도면들은 본 실시 예에 관한 이해를 돕기 위한 것으로, 상세한 설명과 함께 실시 예들을 제공한다. 다만, 본 실시 예의 기술적 특징이 특정 도면에 한정되는 것은 아니며, 각 도면에서 개시하는 특징들은 서로 조합되어 새로운 실시 예로 구성될 수 있다.
도 1은 종래기술에 따른 TrustVisor를 도시한 도면이다.
도 2는 본 발명의 일 실시예에 따른 무결성 검증 시스템의 블록도이다.
도 3은 본 발명의 일 실시예에 따른 무결성 검증 시스템의 하드웨어 구성을 개략적으로 설명하기 위한 도면이다.
도 4는 본 발명의 일 실시예에서의 무결성 검증 시스템의 동작 과정을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 무결성 검증 방법의 순서도이다.
The accompanying drawings are provided to help understanding of the present embodiment, and provide embodiments together with detailed description. However, the technical features of the present embodiment are not limited to specific drawings, and features disclosed in the drawings may be combined with each other to constitute a new embodiment.
1 is a diagram illustrating TrustVisor according to the prior art.
2 is a block diagram of an integrity verification system according to an embodiment of the present invention.
3 is a diagram schematically illustrating a hardware configuration of an integrity verification system according to an embodiment of the present invention.
4 is a view for explaining the operation process of the integrity verification system in an embodiment of the present invention.
5 is a flowchart of an integrity verification method according to an embodiment of the present invention.

본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. Advantages and features of the present invention and methods of achieving them will become apparent with reference to the embodiments described below in detail in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments disclosed below, but may be implemented in various different forms, and only the present embodiments allow the disclosure of the present invention to be complete, and those of ordinary skill in the art to which the present invention pertains. It is provided to fully understand the scope of the present invention to those skilled in the art, and the present invention is only defined by the scope of the claims.

본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.The terminology used herein is for the purpose of describing the embodiments and is not intended to limit the present invention. In this specification, the singular also includes the plural unless specifically stated otherwise in the phrase. As used herein, “comprises” and/or “comprising” does not exclude the presence or addition of one or more other components in addition to the stated components. Like reference numerals refer to like elements throughout, and "and/or" includes each and every combination of one or more of the recited elements. Although "first", "second", etc. are used to describe various elements, these elements are not limited by these terms, of course. These terms are only used to distinguish one component from another. Accordingly, it goes without saying that the first component mentioned below may be the second component within the spirit of the present invention.

다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.Unless otherwise defined, all terms (including technical and scientific terms) used herein will have the meaning commonly understood by those of ordinary skill in the art to which this invention belongs. In addition, terms defined in a commonly used dictionary are not to be interpreted ideally or excessively unless specifically defined explicitly.

이하에서는, 당업자의 이해를 돕기 위하여 본 발명이 제안된 배경에 대하여 먼저 서술하고, 본 발명의 실시예에 대하여 서술하기로 한다.Hereinafter, in order to facilitate the understanding of those skilled in the art, a background in which the present invention is proposed will be first described, and embodiments of the present invention will be described.

도 1은 종래기술에 따른 TrustVisor를 도시한 도면이다.1 is a diagram illustrating TrustVisor according to the prior art.

무인 비행기를 위한 어플리케이션 소프트웨어의 상태 모니터링은 하드웨어, 어플리케이션, 실시간 운영 체제(RTOS: Real-Time Operating System)의 오류를 식별하고 이를 복구하는 기능을 가지면 ARINC 653 표준에 정의되어 있다. ARINC 653의 구성 테이블(configuration table)은 오류 무시, 프로세스 초기화, 파티션 다시 시작(warm or cold), 전체 시스템의 재설정 수행의 방법으로 오류를 복구한다. Status monitoring of application software for unmanned aerial vehicles is defined in ARINC 653 standard if it has a function to identify and repair errors in hardware, applications, and Real-Time Operating System (RTOS). ARINC 653's configuration table recovers from errors by ignoring errors, initializing processes, restarting partitions (warm or cold), and resetting the entire system.

그러나 상태 모니터링은 divided by zero, segment fault와 같은 시스템 오류를 중점으로 처리하기 때문에, 해킹으로부터 커널과 어플리케이션을 보호할 수 있는 다른 메커니즘이 필요하다.However, since state monitoring focuses on system errors such as divided by zero and segment fault, other mechanisms are needed to protect the kernel and applications from hacking.

한편, 어플리케이션뿐 아니라 커널 역시 공격의 대상이 되어가면서, 종래 기술은 로드된 커널, 커널 코드의 실행까지 신뢰하지 않는다는 가정을 세운다. 그리고 커널보다 한단계 낮은 하이퍼바이저(hypervisor) 레벨에서 보안성을 높이려는 노력을 하고 있다. 어플리케이션은 미리 등록하여, 기존의 OS가 아닌 하이퍼바이저를 통해 하드웨어에 접근한다. 하이퍼바이저는 하드웨어 보안 솔루션인 TPM (Trusted Platform Module)을 활용하여 어플리케이션의 무결성을 검증한다.Meanwhile, as the kernel as well as the application become the target of attack, the prior art assumes that the loaded kernel and execution of the kernel code are not trusted. In addition, efforts are being made to increase security at the hypervisor level, which is one step lower than the kernel. Applications are registered in advance and access the hardware through the hypervisor rather than the existing OS. The hypervisor verifies the integrity of the application by utilizing the TPM (Trusted Platform Module), a hardware security solution.

하지만, 하이퍼바이저를 활용하여 시스템 자원을 제어하더라도, 여전히 메모리에 상주하기 때문에 공격 위험성이 존재한다. 즉, 하이퍼바이저를 대상으로 하는 공격 방법이 연구되고 있다. 또한, 무인 비행기는 외부 장비인 센서로부터 많은 데이터를 읽기 때문에 커널의 성능이 무인 비행기의 성능으로 직결된다. 하지만, 운영체제를 신뢰하지 않고 하이퍼바이저가 커널의 역할을 대신하는 것은 성능과 보안의 트레이드오프 중 보안을 택할 경우에만 사용할 수 있는 방법이다.However, even if the system resource is controlled by using the hypervisor, there is a risk of attack because it still resides in the memory. In other words, an attack method targeting the hypervisor is being studied. Also, since the drone reads a lot of data from the sensor, which is an external device, the performance of the kernel is directly related to the performance of the drone. However, the hypervisor taking over the role of the kernel without trusting the operating system is a method that can be used only when security is selected among the tradeoffs between performance and security.

하드웨어 레벨에서 안전성을 보장할 수 있다면, 커널, 응용프로그램에 대한 무결성 검사 수행시 메모리에 상주한 프로그램을 모두 신뢰할 수 있으므로, 효율적으로 무인 비행기를 운용할 수 있다. If safety can be ensured at the hardware level, all programs residing in memory can be trusted when performing integrity checks on the kernel and application programs, so that the unmanned aerial vehicle can be operated efficiently.

이에, 본 발명의 일 실시예는 임베디드에서 가장 많이 활용되는 ARM TrustZone을 활용하여 무인 비행기에 대한 안전한 무결성 검증을 수행하고자 한다. 본 발명의 일 실시예는 TrustZone을 사용하여 증명하는 동안 신뢰 실행 환경을 보장한다.Accordingly, an embodiment of the present invention intends to perform secure integrity verification for an unmanned aerial vehicle by utilizing ARM TrustZone, which is most widely used in embedded. One embodiment of the present invention ensures a trusted execution environment during authentication using TrustZone.

이하에서는 도 2 내지 도 5를 참조하여 본 발명의 일 실시예에 따른 무인 비행기의 무결성 검증 시스템(100)에 대해 설명하도록 한다.Hereinafter, the integrity verification system 100 of an unmanned aerial vehicle according to an embodiment of the present invention will be described with reference to FIGS. 2 to 5 .

도 2는 본 발명의 일 실시예에 따른 무결성 검증 시스템(100)의 블록도이다.2 is a block diagram of an integrity verification system 100 according to an embodiment of the present invention.

본 발명의 일 실시예에 따른 무결성 검증 시스템(100)은 보안 저장소(110), 보안 제어부(120) 및 일반 제어부(130)를 포함한다. 보안 장치에 의하여 제어부는 보안 제어부(120) 및 일반 제어부(130)로 구분되며, 일반 제어부(130)는 보안 저장소(110)에 접근할 수 없다.The integrity verification system 100 according to an embodiment of the present invention includes a secure storage 110 , a security control unit 120 , and a general control unit 130 . The control unit is divided into a security control unit 120 and a general control unit 130 by the security device, and the general control unit 130 cannot access the secure storage 110 .

보안 저장소(110)에는 무인 비행기의 무결성을 검사하기 위하여, 사전에 무인 비행기의 안전 상태에서 산출된 제1 해쉬트리 값이 저장된다. 일 실시예로, 보안 저장소(110)에는 적재 가능 커널 모듈(Loadable Kernel Module), 실행 중인 커널 코드(running kernel code) 및 어플리케이션 바이너리(application binary)가 메모리에 로딩되었을 때의 상태가 스냅샷 타입의 제1 해쉬트리 값으로 저장될 수 있다.In order to check the integrity of the unmanned aerial vehicle, the security storage 110 stores a first hash tree value calculated in advance in a safe state of the unmanned aerial vehicle. In one embodiment, the secure storage 110 includes a state when a loadable kernel module, a running kernel code, and an application binary are loaded into memory of a snapshot type. It may be stored as a first hash tree value.

일반 제어부(130)는 보안 제어부(120)로 무결성 검사를 요청하는 무결성 검사 모듈(131)과, 보안 제어부(120)에 의한 무결성 판단 결과에 따라 무인 비행기에 대한 복구 정책을 결정하는 복구 모듈(132)을 포함한다. 무결성 검사의 시작은 지상국(GSC, Ground Station Controller)에서 무인 비행기로 증명 요청을 함에 따라 진행된다.The general controller 130 includes an integrity check module 131 that requests an integrity check from the security controller 120 and a recovery module 132 that determines a recovery policy for the unmanned aerial vehicle according to the integrity determination result by the security controller 120 . ) is included. The start of the integrity check proceeds as the ground station (GSC, Ground Station Controller) requests proof from an unmanned aerial vehicle.

보안 제어부(120)는 일반 제어부(130)로부터 무결성 검사 요청을 수신함에 따라 제2 해쉬트리 값을 산출하는 해쉬트리 계산 모듈(121)과, 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 해쉬트리 비교계산 모듈(122)을 포함한다.The security control unit 120 determines the integrity by comparing the first and second hash tree values with the hash tree calculation module 121 that calculates a second hash tree value upon receiving the integrity check request from the general control unit 130 . and a hash tree comparison calculation module 122 .

도 3은 본 발명의 일 실시예에 따른 무결성 검증 시스템(100)의 하드웨어 구성을 개략적으로 설명하기 위한 도면이다.3 is a diagram schematically illustrating a hardware configuration of the integrity verification system 100 according to an embodiment of the present invention.

본 발명의 일 실시예는 TrustZone을 이용하여, 하나의 프로세서에 의해 가상화된 제1 및 제2 가상화 프로세서로 동작하며, 이때 제1 가상화 프로세서는 보안 영역에서 동작되고, 제2 가상화 프로세서는 비보안 영역에서 동작된다. An embodiment of the present invention operates as first and second virtualized processors virtualized by one processor using TrustZone, wherein the first virtualization processor operates in a secure area, and the second virtualization processor operates in a non-secure area It works.

이에 따라 보안 제어부(120)는 보안 영역에서 동작되고, 일반 제어부(130)는 비보안 영역에서 동작된다. 본 발명에서는 보안 영역을 위한 제1 가상화 프로세서에서의 동작 환경을 secure world라 지칭하고, 비보안 영역을 위한 제2 가상화 프로세서에서의 동작 환경을 normal world라 지칭하도록 한다. 어셈블리어 레벨의 명령어인 SMC call을 통해 secure world와 normal world 두 환경을 서로 오갈 수 있어 본 발명은 소프트웨어적으로 안전한 환경을 제공한다. 본 발명에서의 무결성 검증 과정인 해쉬트리 값 계산과 해쉬트리 값의 비교는 보안 영역에서 수행된다.Accordingly, the security control unit 120 operates in the security area, and the general control unit 130 operates in the non-security area. In the present invention, the operating environment in the first virtualization processor for the secure area is referred to as a secure world, and the operating environment in the second virtualization processor for the non-secure area is referred to as the normal world. The present invention provides a software-safe environment because it is possible to go back and forth between the secure world and the normal world through the SMC call, which is an assembly level command. Calculation of hash tree values and comparison of hash tree values, which are integrity verification processes in the present invention, are performed in the security domain.

또한, 본 발명의 일 실시예는 TZASC(Trust Zone Address Space Controller)를 사용하여 각 가상화 프로세서는 각각의 MMU(Memory Management Unit)를 갖는 효과를 낼 수 있다. 소정의 캐쉬 및 메모리에는 비보안 비트(Non-secure bit)가 구비된다. 비보안 영역의 동작시 일반 제어부(130)는 비보안 비트가 존재하는 캐쉬 및 메모리에만 접근이 가능하다. 반대로, 보안 영역의 동작시 보안 제어부(120)는 비보안 비트의 존재 여부와 무관하게 캐쉬 및 메모리에 접근할 수 있다. 이와 같이 본 발명의 일 실시예는 주소 영역에 서로 다른 접근 권한을 부여하여 메모리와 캐쉬의 보안성을 유지할 수 있다.In addition, an embodiment of the present invention using a TZASC (Trust Zone Address Space Controller) can achieve the effect that each virtualization processor has a respective MMU (Memory Management Unit). A non-secure bit is provided in a predetermined cache and memory. In the operation of the non-security area, the general control unit 130 can access only the cache and memory in which the non-security bit exists. Conversely, during the operation of the security area, the security control unit 120 may access the cache and memory regardless of the existence of the non-security bit. As such, an embodiment of the present invention can maintain the security of the memory and cache by granting different access rights to the address area.

한편, 보안 저장소(110)는 보안 영역에서 운영체제 및 응용프로그램의 실행을 위한 ROM 형태의 제1 보안 저장소(Secure ROM)와 RAM 형태의 제2 보안 저장소(Secure RAM)를 포함할 수 있다. 사전에 안전한 상태에서의 제1 해쉬트리 값은 제1 보안 저장소에 저장되며, 이는 무결성 비교의 기준으로 사용된다.Meanwhile, the secure storage 110 may include a first secure storage (Secure ROM) in the form of a ROM and a second secure storage (Secure RAM) in the form of a RAM for execution of an operating system and an application program in the secure area. The first hash tree value in the secure state in advance is stored in the first secure storage, which is used as a criterion for integrity comparison.

도 4는 본 발명의 일 실시예에서의 무결성 검증 시스템(100)의 동작 과정을 설명하기 위한 도면이다.4 is a diagram for explaining an operation process of the integrity verification system 100 in an embodiment of the present invention.

도 4는 TrustZone 환경에서 안전한 무결성 검증을 수행하는 소프트웨어 아키텍처를 도시한 것으로, 먼저 무결성 검사 요청에 따라 프로세서는 동작 중인 제1 가상화 프로세서에서 보안 영역을 제공하는 제2 가상화 프로세서로 전환하여 보안 영역이 구동되도록 한다. 무결성과 관련된 모든 연산은 보안 영역에서 진행되므로 무결성 검증 결과는 신뢰할 수 있다.4 shows a software architecture that performs secure integrity verification in the TrustZone environment. First, in response to an integrity check request, the processor switches from the operating first virtualization processor to the second virtualization processor providing the security area, and the security area is driven make it possible Since all integrity-related operations are performed in the secure domain, the integrity verification result is reliable.

다음으로, 보안 영역이 구동됨에 따라 보안 제어부(120)는 비보안 메모리 데이터에 접근하여 저장된 데이터를 기반으로 메모리의 제2 해쉬트리 값을 산출한다. 이때, 제2 가상화 프로세서는 보안 영역이 구동되는 상태이더라도 비보안 비트로의 접근이 가능하다.Next, as the security region is driven, the security control unit 120 accesses the non-secure memory data and calculates a second hash tree value of the memory based on the stored data. In this case, the second virtualization processor can access the non-security bit even when the security area is driven.

그 다음, 해쉬트리 비교계산 모듈(122)은 직전에 계산한 제2 해쉬트리 값을 초기에 안전한 상태에서 계산하였던 제1 해쉬트리 값과 비교한다. 전술한 바와 같이 제1 보안 저장소인 Secure Rom에 저장된 데이터는 안전하다고 가정하였으며, 해쉬트리 비교계산 모듈(122) 역시 보안 영역에서 안전하게 실행되므로 무결성 판단 결과 역시 신뢰할 수 있다. 보안 제어부(120)는 무결성 판단 결과를 비보안 영역에서 동작하는 일반 제어부(130)로 전달하며, 일반 제어부(130)는 무결성 판단 결과를 기반으로 복구 정책을 결정한다.Next, the hash tree comparison calculation module 122 compares the second hash tree value calculated immediately before with the first hash tree value calculated in the initial safe state. As described above, it is assumed that the data stored in the Secure Rom, which is the first secure storage, is safe, and since the hash tree comparison calculation module 122 is also safely executed in the secure area, the integrity determination result is also reliable. The security control unit 120 transmits the integrity determination result to the general control unit 130 operating in the non-security area, and the general control unit 130 determines a recovery policy based on the integrity determination result.

일 실시예로, 일반 제어부(130)는 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일한 경우, 지상국에 드론이 안전한 상태임을 알린다.In an embodiment, when the first and second hash tree values are the same as a result of the integrity determination, the general controller 130 notifies the ground station that the drone is in a safe state.

이와 달리, 일반 제어부(130)는 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일하지 않은 경우, 무결성 검사 모듈(131)에서 해당 코드 혹은 모듈의 무결성 훼손 상태를 확인하고, 복구 모듈(132)은 무결성 훼손 상태에 기반하여 복구 정책을 결정하게 된다.Contrary to this, when the first and second hash tree values are not the same as a result of the integrity determination, the general control unit 130 checks the integrity damage state of the corresponding code or module in the integrity check module 131, and the recovery module 132 determines the recovery policy based on the integrity compromised state.

확인 결과 커널 스케줄러 코드 또는 RC 서보 모터 코드와 같이 무인 비행기의 운행과 관련된 기 설정된 중요 모듈이 무결성 훼손 상태인 경우, 또는 무인 비행기의 개별 모듈만의 복구가 불가능한 경우, 복구 모듈(132)은 무인 비행기를 착륙하도록 제어하고, 착륙 후 재부팅하고 복구 제어를 수행한다.As a result of the check, if a preset important module related to the operation of the unmanned aerial vehicle, such as the kernel scheduler code or the RC servo motor code, is in a damaged integrity state, or if it is impossible to recover only individual modules of the unmanned aerial vehicle, the recovery module 132 is the unmanned aerial vehicle controls to land, reboots after landing and performs recovery control.

이와 달리, 무인 비행기의 개별 모듈만의 복구가 가능한 경우, 복구 모듈(132)은 전체 시스템을 재부팅하지 않고, 무인 비행기의 운행 중 부분 복구 제어를 수행하고, 해당 모듈만을 다시 로드한다.Contrary to this, when only individual modules of the unmanned aerial vehicle can be recovered, the recovery module 132 performs partial recovery control during operation of the unmanned aerial vehicle without rebooting the entire system, and reloads only the corresponding module.

이하에서는 도 5를 참조하여 본 발명의 일 실시예에 따른 무인 비행기의 무결성 검증 방법에 대해 설명하도록 한다. Hereinafter, a method for verifying the integrity of an unmanned aerial vehicle according to an embodiment of the present invention will be described with reference to FIG. 5 .

도 5는 본 발명의 일 실시예에 따른 무결성 검증 방법의 순서도이다. 한편, 도 5에 도시된 각 단계들은 전술한 무결성 검증 시스템(100)의 의해 수행되는 것으로 이해될 수 있으나 반드시 이에 한정되는 것은 아니다.5 is a flowchart of an integrity verification method according to an embodiment of the present invention. Meanwhile, each of the steps shown in FIG. 5 may be understood to be performed by the above-described integrity verification system 100, but is not limited thereto.

사전에 무인 비행기의 안전한 상태에서 산출된 제1 해쉬트리 값을 보안 저장소(110)에 저장한다. 그리고 무인 비행기에 대한 지상국으로부터의 증명 요청을 수신하면(S110), 증명 요청에 따라 보안 영역에서 동작하는 가상화 프로세서로의 동작을 전환한다.The first hash tree value calculated in advance in the safe state of the unmanned aerial vehicle is stored in the secure storage 110 . And, upon receiving a request for proof from the ground station for the unmanned aerial vehicle (S110), the operation is switched to the virtualization processor operating in the security area according to the request for proof.

다음으로, 무결성 검증 요청에 따라 보안 영역에서 제2 해쉬트리 값을 산출하고(S120, S130), 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단한다(S140). 이후, 판단 결과에 따라 복구 정책을 결정한다(S150).Next, according to the integrity verification request, a second hash tree value is calculated in the security area (S120, S130), and the integrity is determined by comparing the first and second hash tree values (S140). Thereafter, a recovery policy is determined according to the determination result (S150).

한편, 상술한 설명에서, 단계 S110 내지 S150은 본 발명의 구현예에 따라서, 추가적인 단계들로 더 분할되거나, 더 적은 단계들로 조합될 수 있다. 또한, 일부 단계는 필요에 따라 생략될 수도 있고, 단계 간의 순서가 변경될 수도 있다. 아울러, 기타 생략된 내용이라 하더라도 도 2 내지 도 4의 무결성 검증 시스템(100)의 내용은 도 5의 내용에도 적용될 수 있다.Meanwhile, in the above description, steps S110 to S150 may be further divided into additional steps or combined into fewer steps according to an embodiment of the present invention. In addition, some steps may be omitted if necessary, and the order between steps may be changed. In addition, the contents of the integrity verification system 100 of FIGS. 2 to 4 may be applied to the contents of FIG. 5 even if other contents are omitted.

이상에서 전술한 본 발명의 일 실시예에 따른 무인 비행기의 무결성 검증 시스템 및 방법은, 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 어플리케이션)으로 구현되어 매체에 저장될 수 있다.The system and method for verifying the integrity of an unmanned aerial vehicle according to an embodiment of the present invention described above may be implemented as a program (or application) and stored in a medium to be executed in combination with a computer that is hardware.

상기 전술한 프로그램은, 상기 컴퓨터가 프로그램을 읽어 들여 프로그램으로 구현된 상기 방법들을 실행시키기 위하여, 상기 컴퓨터의 프로세서(CPU)가 상기 컴퓨터의 장치 인터페이스를 통해 읽힐 수 있는 C, C++, JAVA, Ruby, 기계어 등의 컴퓨터 언어로 코드화된 코드(Code)를 포함할 수 있다. 이러한 코드는 상기 방법들을 실행하는 필요한 기능들을 정의한 함수 등과 관련된 기능적인 코드(Functional Code)를 포함할 수 있고, 상기 기능들을 상기 컴퓨터의 프로세서가 소정의 절차대로 실행시키는데 필요한 실행 절차 관련 제어 코드를 포함할 수 있다. 또한, 이러한 코드는 상기 기능들을 상기 컴퓨터의 프로세서가 실행시키는데 필요한 추가 정보나 미디어가 상기 컴퓨터의 내부 또는 외부 메모리의 어느 위치(주소 번지)에서 참조되어야 하는지에 대한 메모리 참조관련 코드를 더 포함할 수 있다. 또한, 상기 컴퓨터의 프로세서가 상기 기능들을 실행시키기 위하여 원격(Remote)에 있는 어떠한 다른 컴퓨터나 서버 등과 통신이 필요한 경우, 코드는 상기 컴퓨터의 통신 모듈을 이용하여 원격에 있는 어떠한 다른 컴퓨터나 서버 등과 어떻게 통신해야 하는지, 통신 시 어떠한 정보나 미디어를 송수신해야 하는지 등에 대한 통신 관련 코드를 더 포함할 수 있다.The above-mentioned program, in order for the computer to read the program and execute the methods implemented as a program, C, C++, JAVA, Ruby, which the processor (CPU) of the computer can read through the device interface of the computer; It may include code coded in a computer language such as machine language. Such code may include functional code related to a function defining functions necessary for executing the methods, etc., and includes an execution procedure related control code necessary for the processor of the computer to execute the functions according to a predetermined procedure. can do. In addition, the code may further include additional information necessary for the processor of the computer to execute the functions or code related to memory reference for which location (address address) in the internal or external memory of the computer to be referenced. have. In addition, when the processor of the computer needs to communicate with any other computer or server located remotely in order to execute the above functions, the code uses the communication module of the computer to determine how to communicate with any other computer or server remotely. It may further include a communication-related code for whether to communicate and what information or media to transmit and receive during communication.

상기 저장되는 매체는, 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로는, 상기 저장되는 매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피디스크, 광 데이터 저장장치 등이 있지만, 이에 제한되지 않는다. 즉, 상기 프로그램은 상기 컴퓨터가 접속할 수 있는 다양한 서버 상의 다양한 기록매체 또는 사용자의 상기 컴퓨터상의 다양한 기록매체에 저장될 수 있다. 또한, 상기 매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장될 수 있다.The storage medium is not a medium that stores data for a short moment, such as a register, a cache, a memory, etc., but a medium that stores data semi-permanently and can be read by a device. Specifically, examples of the storage medium include, but are not limited to, ROM, RAM, CD-ROM, magnetic tape, floppy disk, and an optical data storage device. That is, the program may be stored in various recording media on various servers accessible by the computer or in various recording media on the computer of the user. In addition, the medium may be distributed in a computer system connected to a network, and a computer-readable code may be stored in a distributed manner.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration, and those of ordinary skill in the art to which the present invention pertains can understand that it can be easily modified into other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a dispersed form, and likewise components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted as being included in the scope of the present invention. do.

100: 무결성 검증 시스템
110: 보안 저장소
120: 보안 제어부
130: 일반 제어부
100: integrity verification system
110: secure storage
120: security control
130: general control

Claims (17)

무인 비행기의 무결성 검증 시스템에 있어서,
상기 무인 비행기의 안전 상태에서 산출된 제1 해쉬트리 값을 저장하는 보안 저장소,
무결성 검사 요청에 따라 제2 해쉬트리 값을 산출하고, 상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 보안 제어부 및
상기 보안 제어부로 무결성 검사를 요청하고, 무결성 판단 결과에 따라 복구 정책을 결정하는 일반 제어부를 포함하고,
상기 보안 저장소에는 적재 가능 커널 모듈(Loadable Kernel Module), 실행 중인 커널 코드(running kernel code) 및 어플리케이션 바이너리(application binary)가 메모리에 로딩되었을 때의 상태가 스냅샷 타입의 상기 제1 해쉬트리 값으로 저장되는 것인,
무인 비행기의 무결성 검증 시스템.
In the integrity verification system of an unmanned aerial vehicle,
a secure storage for storing the first hash tree value calculated in the safe state of the unmanned aerial vehicle;
a security control unit that calculates a second hash tree value according to an integrity check request, and determines integrity by comparing the first and second hash tree values; and
and a general control unit for requesting an integrity check to the security control unit and determining a recovery policy according to the integrity determination result,
In the secure storage, the state when the loadable kernel module, the running kernel code, and the application binary are loaded into the memory is the first hash tree value of the snapshot type. which is stored,
Integrity verification system for unmanned aerial vehicles.
삭제delete 제1항에 있어서,
상기 보안 저장소는 보안 영역에서 운영체제 및 응용프로그램의 실행을 위한 ROM 형태의 제1 보안 저장소와 RAM 형태의 제2 보안 저장소를 포함하며, 상기 제1 해쉬트리 값은 상기 제1 보안 저장소에 저장되는 것인,
무인 비행기의 무결성 검증 시스템.
According to claim 1,
The secure storage includes a first secure store in the form of a ROM and a second secure store in the form of a RAM for executing an operating system and an application program in a secure area, and the first hash tree value is stored in the first secure store sign,
Integrity verification system for drones.
제1항에 있어서,
상기 보안 제어부는 보안 영역에서 동작하고, 상기 일반 제어부는 비보안 영역에서 동작하는 것을 특징으로 하는,
무인 비행기의 무결성 검증 시스템.
According to claim 1,
The security control unit operates in a security area, and the general control unit operates in a non-security area,
Integrity verification system for unmanned aerial vehicles.
제4항에 있어서,
상기 보안 영역 및 비보안 영역은 적어도 하나의 프로세서에 의해 가상화된 제1 및 제2 가상화 프로세서에 의해 동작되는 것인,
무인 비행기의 무결성 검증 시스템.
5. The method of claim 4,
The secure region and the non-secure region are operated by first and second virtualization processors virtualized by at least one processor,
Integrity verification system for drones.
제5항에 있어서,
소정의 캐쉬 및 메모리에는 비보안 비트(Non-secure bit)가 구비되며, 상기 비보안 영역의 동작시 상기 일반 제어부는 상기 비보안 비트가 존재하는 캐쉬 및 메모리에만 접근 가능하고, 상기 보안 영역의 동작시 상기 보안 제어부는 상기 비보안 비트의 존재 여부와 무관하게 캐쉬 및 메모리에 접근 가능한 것인,
무인 비행기의 무결성 검증 시스템.
6. The method of claim 5,
A non-secure bit is provided in a predetermined cache and memory, and when the non-secure area is operated, the general control unit can access only the cache and memory in which the non-secure bit exists, and when the secure area is operated, the secure The control unit will be able to access the cache and memory regardless of the presence of the non-security bit,
Integrity verification system for drones.
제6항에 있어서,
상기 무결성 검사 요청에 따라 상기 프로세서는 동작 중인 제1 가상화 프로세서에서 제2 가상화 프로세서로 전환하여 보안 영역이 구동되도록 하고, 상기 보안 영역이 구동됨에 따라 상기 보안 제어부는 상기 메모리에 접근하여 저장된 데이터를 기반으로 제2 해쉬트리 값을 산출하는 것인,
무인 비행기의 무결성 검증 시스템.
7. The method of claim 6,
In response to the integrity check request, the processor switches from the operating first virtualization processor to the second virtualization processor so that the security region is driven, and as the security region is driven, the security control unit accesses the memory and based on the stored data to calculate a second hash tree value with
Integrity verification system for drones.
제1항에 있어서,
상기 일반 제어부는 상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일한 경우, 지상국에 무인 비행기가 안전한 상태임을 알리는 것인,
무인 비행기의 무결성 검증 시스템.
According to claim 1,
When the first and second hash tree values are the same as a result of the integrity determination, the general control unit notifies the ground station that the unmanned aerial vehicle is in a safe state,
Integrity verification system for drones.
제1항에 있어서,
상기 일반 제어부는 상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일하지 않은 경우, 무결성 훼손 상태에 기반하여 상기 복구 정책을 결정하는 것인,
무인 비행기의 무결성 검증 시스템.
According to claim 1,
When the first and second hash tree values are not the same as a result of the integrity determination, the general control unit determines the recovery policy based on an integrity compromised state,
Integrity verification system for unmanned aerial vehicles.
제9항에 있어서,
상기 일반 제어부는 상기 무인 비행기의 운행과 관련된 기 설정된 중요 모듈이 상기 무결성 훼손 상태인 경우, 또는 상기 무인 비행기의 개별 모듈만의 복구가 불가능한 경우, 상기 무인 비행기를 착륙하도록 제어하고, 착륙 후 재부팅 및 복구 제어를 수행하는 것인,
무인 비행기의 무결성 검증 시스템.
10. The method of claim 9,
The general control unit controls to land the unmanned aircraft, and reboots after landing, when a preset important module related to the operation of the unmanned aerial vehicle is in the damaged state, or when recovery of only individual modules of the unmanned aerial vehicle is impossible to perform recovery control,
Integrity verification system for drones.
제9항에 있어서,
상기 일반 제어부는 상기 무인 비행기의 개별 모듈만의 복구가 가능한 경우, 상기 무인 비행기의 운행 중 부분 복구 제어를 수행하는 것인,
무인 비행기의 무결성 검증 시스템.
10. The method of claim 9,
The general control unit performs partial recovery control during operation of the unmanned aerial vehicle when recovery of only individual modules of the unmanned aerial vehicle is possible,
Integrity verification system for unmanned aerial vehicles.
무인 비행기의 무결성 검증 방법에 있어서,
무인 비행기의 안전 상태에서 산출된 제1 해쉬트리 값을 보안 저장소에 저장하는 단계;
무인 비행기에 대한 지상국으로부터의 증명 요청을 수신하는 단계;
상기 증명 요청에 따라, 보안 영역에서 동작하는 가상화 프로세서로의 동작 전환하는 단계;
무결성 검증 요청에 따라 상기 보안 영역에서 제2 해쉬트리 값을 산출하는 단계;
상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 단계; 및
상기 판단 결과에 따라 복구 정책을 결정하는 단계를 포함하는,
무인 비행기의 무결성 검증 방법.
In the method of verifying the integrity of an unmanned aerial vehicle,
Storing the first hash tree value calculated in the safe state of the unmanned aerial vehicle in a secure storage;
receiving a request for attestation from a ground station for the unmanned aerial vehicle;
switching an operation to a virtualization processor operating in a security area according to the authentication request;
calculating a second hash tree value in the security area according to the integrity verification request;
determining integrity by comparing the first and second hash tree values; and
Comprising the step of determining a recovery policy according to the determination result,
A method of verifying the integrity of a drone.
제12항에 있어서,
상기 보안 저장소에는 적재 가능 커널 모듈(Loadable Kernel Module), 실행 중인 커널 코드(running kernel code) 및 어플리케이션 바이너리(application binary)가 메모리에 로딩되었을 때의 상태가 스냅샷 타입의 상기 제1 해쉬트리 값으로 저장되는 것인,
무인 비행기의 무결성 검증 방법.
13. The method of claim 12,
In the secure storage, the state when the loadable kernel module, the running kernel code, and the application binary are loaded into the memory is the first hash tree value of the snapshot type. which is stored,
A method of verifying the integrity of a drone.
제12항에 있어서,
상기 제1 및 제2 해쉬트리 값을 비교하여 무결성을 판단하는 단계는,
상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일한 경우, 상기 지상국에 무인 비행기가 안전한 상태임을 알리는 것인,
무인 비행기의 무결성 검증 방법.
13. The method of claim 12,
The step of determining the integrity by comparing the first and second hash tree values,
As a result of the integrity determination, if the first and second hash tree values are the same, notifying the ground station that the unmanned aerial vehicle is in a safe state,
A method of verifying the integrity of a drone.
제12항에 있어서,
상기 판단 결과에 따라 복구 정책을 결정하는 단계는,
상기 무결성 판단 결과 제1 및 제2 해쉬트리 값이 동일하지 않은 경우, 무결성 훼손 상태에 기반하여 상기 복구 정책을 결정하는 것인,
무인 비행기의 무결성 검증 방법.
13. The method of claim 12,
The step of determining the recovery policy according to the determination result,
If the first and second hash tree values are not the same as a result of the integrity determination, determining the recovery policy based on the integrity compromised state,
A method of verifying the integrity of a drone.
제15항에 있어서,
상기 판단 결과에 따라 복구 정책을 결정하는 단계는,
상기 무인 비행기의 운행과 관련된 기 설정된 중요 모듈이 상기 무결성 훼손 상태인 경우, 또는 상기 무인 비행기의 개별 모듈만의 복구가 불가능한 경우, 상기 무인 비행기를 착륙하도록 제어하고, 착륙 후 재부팅 및 복구 제어를 수행하는 것인,
무인 비행기의 무결성 검증 방법.
16. The method of claim 15,
The step of determining the recovery policy according to the determination result,
When a preset important module related to the operation of the unmanned aerial vehicle is in the integrity compromised state, or when recovery of only individual modules of the unmanned aerial vehicle is impossible, control to land the unmanned aerial vehicle, and reboot and restore control after landing that is,
A method of verifying the integrity of a drone.
제15항에 있어서,
상기 판단 결과에 따라 복구 정책을 결정하는 단계는,
상기 무인 비행기의 개별 모듈만의 복구가 가능한 경우, 상기 무인 비행기의 운행 중 부분 복구 제어를 수행하는 것인,
무인 비행기의 무결성 검증 방법.
16. The method of claim 15,
The step of determining the recovery policy according to the determination result,
If it is possible to recover only individual modules of the unmanned aerial vehicle, performing partial recovery control during operation of the unmanned aerial vehicle,
A method of verifying the integrity of a drone.
KR1020210175829A 2021-12-09 2021-12-09 System and method for verifying integrity of unmanned aerial vehicle KR102405093B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020210175829A KR102405093B1 (en) 2021-12-09 2021-12-09 System and method for verifying integrity of unmanned aerial vehicle

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210175829A KR102405093B1 (en) 2021-12-09 2021-12-09 System and method for verifying integrity of unmanned aerial vehicle

Publications (1)

Publication Number Publication Date
KR102405093B1 true KR102405093B1 (en) 2022-06-07

Family

ID=81987196

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210175829A KR102405093B1 (en) 2021-12-09 2021-12-09 System and method for verifying integrity of unmanned aerial vehicle

Country Status (1)

Country Link
KR (1) KR102405093B1 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110023412A (en) * 2009-08-31 2011-03-08 고려대학교 산학협력단 Apparatus and method for guaranteeing vehicle data integrity in real time, and vehicle black box system using thereof
KR20130042914A (en) * 2011-10-19 2013-04-29 한국전자통신연구원 Virtualization system of peripheral devices of computer system
KR20200094323A (en) * 2019-01-30 2020-08-07 순천향대학교 산학협력단 Integrity self verification method and system using few resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110023412A (en) * 2009-08-31 2011-03-08 고려대학교 산학협력단 Apparatus and method for guaranteeing vehicle data integrity in real time, and vehicle black box system using thereof
KR20130042914A (en) * 2011-10-19 2013-04-29 한국전자통신연구원 Virtualization system of peripheral devices of computer system
KR20200094323A (en) * 2019-01-30 2020-08-07 순천향대학교 산학협력단 Integrity self verification method and system using few resources

Similar Documents

Publication Publication Date Title
Abdi et al. Preserving physical safety under cyber attacks
Kim et al. Securing Real-Time Microcontroller Systems through Customized Memory View Switching.
US9081600B2 (en) Virtual machine validation
US9202062B2 (en) Virtual machine validation
Chen et al. A container-based DoS attack-resilient control framework for real-time UAV systems
US20190102566A1 (en) Linux based android container platform, device equipped with the same and method for apply security system in linux based android container environment
EP2831792B1 (en) Providing an immutable antivirus payload for internet ready compute nodes
Abdi et al. Application and system-level software fault tolerance through full system restarts
JP5646622B2 (en) Automatic processing of multipurpose data to perform functions that require different security levels or different limits of liability
Abad et al. Reset-based recovery for real-time cyber-physical systems with temporal safety constraints
US11204776B2 (en) Apparatus and method for booting virtual machines
US20190266899A1 (en) Authorizing a flight of an unmanned aerial vehicle (uav)
US11893412B2 (en) Device initialization by an access-restricted virtual machine
EP3623978B1 (en) Computer having isolated user computing unit
EP3079057B1 (en) Method and device for realizing virtual machine introspection
Jagtap et al. Software fault tolerance for cyber-physical systems via full system restart
CN107480524A (en) A kind of security sandbox and its construction method
EP3846059B1 (en) Security threat detection in hosted guest operating systems
KR102405093B1 (en) System and method for verifying integrity of unmanned aerial vehicle
CN113448682B (en) Virtual machine monitor loading method and device and electronic equipment
Abdi et al. Restart-based security mechanisms for safety-critical embedded systems
WO2022093186A1 (en) Code execution using trusted code record
EP2691853B1 (en) Supervisor system resuming control
KR102218799B1 (en) Detection system and detection method for important file
EP4372551A1 (en) Virtual machine management method and related system, and storage medium

Legal Events

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