KR102176117B1 - Method for integrity self verification in a resource rich environment - Google Patents

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

Info

Publication number
KR102176117B1
KR102176117B1 KR1020180141856A KR20180141856A KR102176117B1 KR 102176117 B1 KR102176117 B1 KR 102176117B1 KR 1020180141856 A KR1020180141856 A KR 1020180141856A KR 20180141856 A KR20180141856 A KR 20180141856A KR 102176117 B1 KR102176117 B1 KR 102176117B1
Authority
KR
South Korea
Prior art keywords
integrity
code
hash value
tpm
verified
Prior art date
Application number
KR1020180141856A
Other languages
Korean (ko)
Other versions
KR20200057439A (en
Inventor
임강빈
이경률
Original Assignee
순천향대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 순천향대학교 산학협력단 filed Critical 순천향대학교 산학협력단
Priority to KR1020180141856A priority Critical patent/KR102176117B1/en
Publication of KR20200057439A publication Critical patent/KR20200057439A/en
Application granted granted Critical
Publication of KR102176117B1 publication Critical patent/KR102176117B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127Trusted platform modules [TPM]

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)
  • Power Engineering (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

일 실시예에 따른 무결성 검증 장치에 의해 수행되는 무결성 검증 방법은, 전자 기기의 TPM에서 코드에 대한 해시 값을 저장하는 단계; 및 상기 전자 기기에서 TPM의 부팅 순서에 따라 실행되는 코드의 해시 값과 상기 TPM에 저장된 각각의 코드에 대한 해시 값을 비교하여 무결성을 검증하는 단계를 포함할 수 있다.An integrity verification method performed by an integrity verification apparatus according to an embodiment includes the steps of storing a hash value for a code in a TPM of an electronic device; And verifying integrity by comparing a hash value of a code executed according to a booting order of the TPM in the electronic device with a hash value of each code stored in the TPM.

Description

자원이 충분한 환경에서의 무결성 자체 검증 방안{METHOD FOR INTEGRITY SELF VERIFICATION IN A RESOURCE RICH ENVIRONMENT}Integrity self-verification method in an environment with sufficient resources {METHOD FOR INTEGRITY SELF VERIFICATION IN A RESOURCE RICH ENVIRONMENT}

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

TPM은 TCG(Trusted Computing Group)에서 컴퓨팅 플랫폼의 무결성을 검증하기 위해 제안된 안전한 하드웨어 저장 장치를 말한다. TCG에서 정의하고 있는 신뢰된 플랫폼은 플랫폼이 원래의 의도대로 동작하고 있으며, 플랫폼의 무결성이 유지되고 있음을 증명하여 안전하게 사용 가능한 플랫폼을 의미하며, 이러한 신뢰된 플랫폼을 제공하기 위해서는 TPM이 요구된다.TPM refers to a secure hardware storage device proposed by the Trusted Computing Group (TCG) to verify the integrity of a computing platform. The trusted platform defined by TCG means a platform that can be safely used by proving that the platform is operating as intended and that the integrity of the platform is maintained, and a TPM is required to provide such a trusted platform.

TCG에서 정의된 TPM의 주요 기능은 플랫폼의 무결성을 측정 및 기록하고, 이를 외부에 증명하는 기능, 키와 같은 중요한 데이터를 안전하게 저장하는 기능, 어플리케이션들이 공통으로 사용할 수 있는 암호 라이브러리 제공 기능으로 요약된다. 플랫폼의 무결성 측정 및 기록은 플랫폼의 부팅 과정의 무결성 측정 및 기록뿐만 아니라, 플랫폼상에 운영체제(Operating System, 이하 OS라 약칭한다)가 올라온 후의 시스템 운영 과정에서의 무결성 측정 및 기록까지 포함되며, 외부에서 플랫폼의 무결성을 확인하고자 할 경우에는, 상기 기록된 정보를 바탕으로 무결성을 검증할 수 있는 정보를 제공해야 한다.The main functions of TPM defined in TCG are summarized as the function to measure and record the integrity of the platform, to prove it to the outside, the function to safely store important data such as keys, and the function to provide a cryptographic library that applications can use in common. . Integrity measurement and recording of the platform includes not only measuring and recording the integrity of the booting process of the platform, but also measuring and recording the integrity of the system operation after the operating system (hereinafter abbreviated as OS) is uploaded on the platform. In order to check the integrity of the platform, information that can verify the integrity must be provided based on the recorded information.

이에 컴퓨터 시스템에서 상기 TPM을 이용해서 보안 부팅을 수행하기 위한 여러 가지 방법들이 제안되고 있다.Accordingly, various methods for performing secure booting using the TPM in a computer system have been proposed.

참고자료: 한국공개특허 제10-2008-0050216호, 한국공개특허 제 10-2016-0098756호Reference materials: Korean Laid-Open Patent No. 10-2008-0050216, Korean Laid-Open Patent No. 10-2016-0098756

TPM을 활용한 자체 검증을 통하여 무결성을 검증하는 방법 및 장치를 제공할 수 있다. A method and apparatus for verifying integrity through self-verification using TPM can be provided.

무결성 검증 장치에 의해 수행되는 무결성 검증 방법은, 전자 기기의 TPM에서 코드에 대한 해시 값을 저장하는 단계; 및 상기 전자 기기에서 TPM의 부팅 순서에 따라 실행되는 코드의 해시 값과 상기 TPM에 저장된 각각의 코드에 대한 해시 값을 비교하여 무결성을 검증하는 단계를 포함할 수 있다. The integrity verification method performed by the integrity verification apparatus includes: storing a hash value for a code in a TPM of an electronic device; And verifying integrity by comparing a hash value of a code executed according to a booting order of the TPM in the electronic device with a hash value of each code stored in the TPM.

상기 해시 값을 저장하는 단계는, 상기 TPM에서 하드웨어 초기화를 수행하는 BIOS 코드, 운영체제를 로드하기 위한 OS 로더 코드, 운영체제 코드, 운영체제 구동에 필요한 OS component 코드, 운영체제 상에서 구동하기 위한 응용 프로그램(Application)의 코드에 대한 각각의 해시 값을 생성하고, 상기 생성된 각각의 코드에 대한 각각의 해시 값을 저장소에 저장하는 단계를 포함할 수 있다. The storing of the hash value includes a BIOS code for performing hardware initialization in the TPM, an OS loader code for loading an operating system, an operating system code, an OS component code required for operating the operating system, and an application program for running on the operating system. Generating each hash value for the code of, and storing each hash value for each of the generated codes in a storage.

상기 무결성을 검증하는 단계는, 상기 전자 기기에 전원이 인가됨에 따라 현재 로드되는 BIOS 코드의 해시 값과 TPM의 내부에 저장된 BIOS 코드의 해시 값을 비교하여 1차 무결성을 검증하는 단계를 포함할 수 있다. The verifying the integrity may include verifying primary integrity by comparing a hash value of a BIOS code currently loaded as power is applied to the electronic device and a hash value of a BIOS code stored inside the TPM. have.

상기 무결성을 검증하는 단계는, 상기 1차 무결성을 검증함에 따라 현재 로드되는 OS 로더 코드의 해시 값과 TPM의 내부에 저장된 OS 로더 코드의 해시 값을 비교하여 2차 무결성을 검증하는 단계를 포함하고, 상기 2차 무결성을 검증하는 과정에서 상기 OS 로더의 코드가 변조된 것으로 판단됨에 따라 상기 전자 기기에서 부팅을 미실행하고 시스템을 종료할 수 있다. The verifying the integrity includes verifying the secondary integrity by comparing the hash value of the currently loaded OS loader code with the hash value of the OS loader code stored inside the TPM as the primary integrity is verified, and In the process of verifying the secondary integrity, as it is determined that the code of the OS loader has been altered, the electronic device may not execute booting and terminate the system.

상기 무결성을 검증하는 단계는, 상기 2 차 무결성을 검증함에 따라 현재 로드되는 운영체제 코드의 해시 값과 TPM의 내부에 저장된 운영체제 코드의 해시 값을 비교하여 3차 무결성을 검증하는 단계를 포함할 수 있다. The verifying the integrity may include verifying the third integrity by comparing the hash value of the currently loaded operating system code with the hash value of the operating system code stored inside the TPM as the secondary integrity is verified. .

상기 무결성을 검증하는 단계는, 상기 3차 무결성을 검증함에 따라 현재 로드되는 OS component의 해시 값과 TPM의 내부에 저장된 OS component의 해시 값을 비교하여 4차 무결성을 검증하는 단계를 포함할 수 있다. The verifying the integrity may include verifying the fourth integrity by comparing the hash value of the currently loaded OS component with the hash value of the OS component stored in the TPM as the third integrity is verified. .

상기 무결성을 검증하는 단계는, 상기 4차 무결성을 검증함에 따라 현재 로드되는 응용 프로그램(Application)의 해시 값과 TPM의 내부에 저장된 응용 프로그램의 해시 값과 해시 값을 비교하여 5차 무결성을 검증하는 단계를 포함할 수 있다. In the verifying the integrity, as the fourth integrity is verified, the fifth integrity is verified by comparing the hash value of the currently loaded application with the hash value of the application program stored in the TPM. It may include steps.

무결성 검증 장치는, 전자 기기의 TPM에서 코드에 대한 해시 값을 저장하는 저장부; 및 상기 전자 기기에서 TPM의 부팅 순서에 따라 실행되는 코드의 해시 값과 상기 TPM에 저장된 각각의 코드에 대한 해시 값을 비교하여 무결성을 검증하는 검증부를 포함할 수 있다. The integrity verification apparatus includes: a storage unit for storing a hash value for a code in a TPM of an electronic device; And a verification unit for verifying integrity by comparing a hash value of a code executed according to a booting order of the TPM in the electronic device with a hash value of each code stored in the TPM.

상기 저장부는, 상기 TPM에서 하드웨어 초기화를 수행하는 BIOS 코드, 운영체제를 로드하기 위한 OS 로더 코드, 운영체제 코드, 운영체제 구동에 필요한 OS component 코드, 운영체제 상에서 구동하기 위한 응용 프로그램(Application)의 코드에 대한 각각의 해시 값을 생성하고, 상기 생성된 각각의 코드에 대한 각각의 해시 값을 저장소에 저장할 수 있다. The storage unit includes a BIOS code for performing hardware initialization in the TPM, an OS loader code for loading an operating system, an operating system code, an OS component code required for driving the operating system, and an application code for running on the operating system. A hash value of may be generated, and each hash value for each generated code may be stored in a storage.

상기 무결성 검증부는, 상기 전자 기기에 전원이 인가됨에 따라 현재 로드되는 BIOS 코드의 해시 값과 TPM의 내부에 저장된 BIOS 코드의 해시 값을 비교하여 1차 무결성을 검증할 수 있다. The integrity verification unit may verify primary integrity by comparing a hash value of a BIOS code currently loaded as power is applied to the electronic device with a hash value of a BIOS code stored in the TPM.

상기 무결성 검증부는, 상기 1차 무결성을 검증함에 따라 현재 로드되는 OS 로더 코드의 해시 값과 TPM의 내부에 저장된 OS 로더 코드의 해시 값을 비교하여 2차 무결성을 검증하는 것을 포함하고, 상기 2차 무결성을 검증하는 과정에서 상기 OS 로더의 코드가 변조된 것으로 판단됨에 따라 상기 전자 기기에서 부팅을 미실행하고 시스템을 종료할 수 있다. The integrity verification unit includes verifying the secondary integrity by comparing the hash value of the currently loaded OS loader code with the hash value of the OS loader code stored in the TPM as the primary integrity is verified, and the secondary In the process of verifying the integrity, as it is determined that the code of the OS loader has been altered, the electronic device may not perform booting and terminate the system.

상기 무결성 검증부는, 상기 2 차 무결성을 검증함에 따라 현재 로드되는 운영체제 코드의 해시 값과 TPM의 내부에 저장된 운영체제 코드의 해시 값을 비교하여 3차 무결성을 검증할 수 있다. The integrity verification unit may verify the third integrity by comparing the hash value of the currently loaded operating system code with the hash value of the operating system code stored in the TPM as the secondary integrity is verified.

상기 무결성을 검증하는 단계는, 상기 3차 무결성을 검증함에 따라 현재 로드되는 OS component의 해시 값과 TPM의 내부에 저장된 OS component의 해시 값을 비교하여 4차 무결성을 검증할 수 있다. In the verifying the integrity, the fourth integrity may be verified by comparing the hash value of the currently loaded OS component with the hash value of the OS component stored in the TPM as the third integrity is verified.

상기 무결성을 검증하는 단계는, 상기 4차 무결성을 검증함에 따라 현재 로드되는 응용 프로그램(Application)의 해시 값과 TPM의 내부에 저장된 응용 프로그램의 해시 값과 해시 값을 비교하여 5차 무결성을 검증할 수 있다. In the verifying the integrity, as the fourth integrity is verified, the fifth integrity is verified by comparing the hash value of the currently loaded application with the hash value of the application stored in the TPM. I can.

TPM을 활용하여 전자 기기에서 구동되는 코드의 무결성을 자체적으로 검증할 수 있다. By using the TPM, it is possible to self-verify the integrity of codes running in electronic devices.

비정상행위를 탐지하는 핵심적인 코드의 위/변조를 탐지하기 위하여 실행되는 코드의 무결성을 검증함으로써 비정상행위의 탐지가 무력화되는 것을 방지할 수 있다. In order to detect the forgery/modification of the core code that detects abnormal behavior, it is possible to prevent the detection of abnormal behavior from being neutralized by verifying the integrity of the executed code.

도 1은 일 실시예에 따른 무결성 검증 장치의 구성을 설명하기 위한 블록도이다.
도 2는 일 실시예에 따른 무결성 검증 장치에서 수행되는 무결성 검증 방법을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 무결성 검증 장치에서 TPM을 활용한 자가 점검 동작을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 무결성 검증 장치에서 TPM을 활용한 자가 점검을 통하여 무결성을 검증하는 동작을 설명하기 위한 도면이다.
1 is a block diagram illustrating a configuration of an integrity verification apparatus according to an embodiment.
2 is a flowchart illustrating an integrity verification method performed by an integrity verification apparatus according to an exemplary embodiment.
3 is a diagram illustrating a self-check operation using a TPM in an integrity verification apparatus according to an embodiment.
4 is a diagram for explaining an operation of verifying integrity through self-inspection using a TPM in the integrity verification apparatus according to an embodiment.

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

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

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

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

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

단계(210)에서 저장부(110)는 전자 기기의 TPM에서 코드에 대한 해시 값을 저장할 수 있다. 저장부(110)는 TPM에서 하드웨어 초기화를 수행하는 BIOS 코드, 운영체제를 로드하기 위한 OS 로더 코드, 운영체제 코드, 운영체제 구동에 필요한 OS component 코드, 운영체제 상에서 구동하기 위한 응용 프로그램(Application)의 코드에 대한 각각의 해시 값을 생성하고, 생성된 각각의 코드에 대한 각각의 해시 값을 저장소에 저장할 수 있다. In step 210, the storage unit 110 may store a hash value for the code in the TPM of the electronic device. The storage unit 110 includes a BIOS code for performing hardware initialization in the TPM, an OS loader code for loading an operating system, an operating system code, an OS component code required for operating the operating system, and an application code for driving on the operating system. Each hash value can be generated, and each hash value for each generated code can be stored in a storage.

단계(220)에서 무결성 검증부(120)는 전자 기기에서 TPM의 부팅 순서에 따라 실행되는 코드의 해시 값과 TPM에 저장된 각각의 코드에 대한 해시 값을 비교하여 무결성을 검증할 수 있다. 무결성 검증부(120)는 전자 기기에 전원이 인가됨에 따라 현재 로드되는 BIOS 코드의 해시 값과 TPM의 내부에 저장된 BIOS 코드의 해시 값을 비교하여 1차 무결성을 검증할 수 있다. 무결성 검증부(120)는 1차 무결성을 검증함에 따라 현재 로드되는 OS 로더 코드의 해시 값과 TPM의 내부에 저장된 OS 로더 코드의 해시 값을 비교하여 2차 무결성을 검증할 수 있다. 이때, 2차 무결성을 검증하는 과정에서 OS 로더의 코드가 변조된 것으로 판단됨에 따라 전자 기기에서 부팅을 미실행하고 시스템을 종료할 수 있다. 무결성 검증부(120)는 2 차 무결성을 검증함에 따라 현재 로드되는 운영체제 코드의 해시 값과 TPM의 내부에 저장된 운영체제 코드의 해시 값을 비교하여 3차 무결성을 검증할 수 있다. 무결성 검증부(120)는3차 무결성을 검증함에 따라 현재 로드되는 OS component의 해시 값과 TPM의 내부에 저장된 OS component의 해시 값을 비교하여 4차 무결성을 검증할 수 있다. 무결성 검증부(120)는 4차 무결성을 검증함에 따라 현재 로드되는 응용 프로그램 (Application)의 해시 값과 TPM의 내부에 저장된 응용 프로그램의 해시 값과 해시 값을 비교하여 5차 무결성을 검증할 수 있다. In operation 220, the integrity verification unit 120 may verify integrity by comparing a hash value of a code executed in the booting order of the TPM in the electronic device and a hash value of each code stored in the TPM. As power is applied to the electronic device, the integrity verification unit 120 may verify primary integrity by comparing a hash value of a BIOS code currently loaded with a hash value of a BIOS code stored in the TPM. As the integrity verification unit 120 verifies the primary integrity, the second integrity may be verified by comparing the hash value of the currently loaded OS loader code with the hash value of the OS loader code stored in the TPM. At this time, in the process of verifying the secondary integrity, as it is determined that the code of the OS loader has been altered, the electronic device may not execute booting and terminate the system. As the integrity verification unit 120 verifies the secondary integrity, the third integrity may be verified by comparing the hash value of the currently loaded operating system code with the hash value of the operating system code stored in the TPM. The integrity verification unit 120 may verify the fourth integrity by comparing the hash value of the currently loaded OS component with the hash value of the OS component stored in the TPM as the third integrity is verified. As the integrity verification unit 120 verifies the fourth integrity, the fifth integrity may be verified by comparing the hash value of the currently loaded application with the hash value of the application program stored in the TPM. .

도 3은 일 실시예에 따른 무결성 검증 장치에서 TPM을 활용한 자가 점검 동작을 설명하기 위한 도면이다. 3 is a diagram illustrating a self-check operation using a TPM in an integrity verification apparatus according to an embodiment.

TPM을 활용한 무결성 검증 방법은 전자 기기(예를 들면, UAV)가 복잡한 연산을 위한 성능을 만족하고, 많은 정보를 저장할 충분한 저장공간을 확보한 경우, 그리고 복수 개의 전자 기기(예를 들면, UAV)가 운용되는 상황에서 각 개체 간 다양한 원인으로 인하여 통신이 불가능하여 상호 검증을 할 수 없는 경우, 또한 처음 전원이 인가되는 상황에서 코드의 무결성을 검증할 경우에 적용이 가능하다. 이하, 전자 기기로 UAV(무인 비행기)를 예를 들어 설명하기로 한다.Integrity verification method using TPM is when an electronic device (e.g., UAV) satisfies the performance for complex computation, secures sufficient storage space to store a lot of information, and a plurality of electronic devices (e.g., UAV) It is applicable when mutual verification cannot be performed because communication is impossible due to various causes between each entity in a situation in which) is operated, or when the integrity of the code is verified when the power is first applied. Hereinafter, a UAV (unmanned aerial vehicle) as an electronic device will be described as an example.

상기 방법은 UAV에서 구동되는 모든 코드가 위/변조되지 않았음을 증명하기 위하여 구동에 필요한 다양한 코드에 대하여 해시와 같은 무결성을 검증하기 위한 값을 생성하여 안전한 저장소에 저장하며, 이후 부팅 시, BIOS부터 OS 로더, OS, OS component, 응용 프로그램(Application)에 이르기까지 저장된 해시 값을 기반으로 각 코드의 무결성을 차례대로 검증한다. 만약 공격자에 의하여 이 중 하나의 코드가 변경될 경우에는 전체 코드에 대한 해시 값이 달라지므로 코드가 변조된 것을 탐지하는 것이 가능하다. 이에 대한 검증 절차를 상세하게 설명하기로 한다. The above method generates values for verifying integrity such as hashes for various codes required for driving in order to prove that all codes driven by UAV are not forged/modified, and stores them in a secure storage. The integrity of each code is sequentially verified based on the hash value stored from the OS loader, OS, OS component, and application program. If one of these codes is changed by an attacker, the hash value for the entire code is changed, so it is possible to detect that the code has been altered. The verification procedure for this will be described in detail.

TPM은 플랫폼의 신뢰성을 보장하기 위한 모듈로, 내부에 데이터 및 키, 인증서와 같은 비밀정보를 안전하게 저장할 수 있는 저장 공간을 확보하고 있어 코드의 무결성 검증 및 데이터의 안전성을 보장하는 것이 가능하다. 이러한 특성으로 인하여 플랫폼에서 구동되는 프로그램의 신뢰성을 보장함으로써 부팅에 필요한 코드 및 운영체제, 응용 프로그램의 무결성을 검증할 수 있어 플랫폼을 보호하는 환경을 제공한다. 이러한 이유로 TPM은 UAV 환경에서 반드시 보호되어야 하는 상태기계 코드 및 UAV 운용 코드의 무결성을 검증하기 위한 방안으로 활용이 가능하다. TPM is a module to guarantee the reliability of the platform, and it has a storage space to safely store secret information such as data, keys, and certificates inside, so it is possible to verify the integrity of the code and ensure the safety of the data. Due to these characteristics, it is possible to verify the integrity of the code required for booting, the operating system, and application programs by ensuring the reliability of programs running on the platform, providing an environment that protects the platform. For this reason, the TPM can be used as a method to verify the integrity of the state machine code and UAV operation code that must be protected in the UAV environment.

도 3에 도시된 바와 같이, UAV에서 부팅에 필요한 코드부터 응용 프로그램의 코드에 대한 무결성을 검증하기 위한 해시 값을 생성하여 안전한 저장소에 저장할 수 있다. 이때, UAV에서 구동되는 코드를 살펴보면, 하드웨어 초기화 등을 수행하는 BIOS 코드(310), 운영체제를 로드하기 위한 OS 로더 코드(320), 운영체제 코드(330), 운영체제 구동에 필요한 OS component 코드(340), 운영체제 상에서 구동하기 위한 응용 프로그램의 코드(350) 등이 있을 수 있으며, 순수한 시스템 및 제작이 완료된 UAV에서 필요한 모든 프로그램의 해시 값을 TPM 내의 안전한 저장 공간에 저장할 수 있다. As shown in FIG. 3, a hash value for verifying the integrity of the code of the application program from the code required for booting in the UAV can be generated and stored in a secure storage. At this time, looking at the code driven in the UAV, the BIOS code 310 for performing hardware initialization, etc., the OS loader code 320 for loading the operating system, the operating system code 330, and the OS component code 340 required for operating the operating system. , There may be a code 350 of an application program to run on the operating system, and the hash values of all programs necessary for a pure system and a UAV that has been manufactured may be stored in a safe storage space in the TPM.

이후, UAV에 전원이 인가되는 경우, TPM(300)에서 부팅 순서에 따라 TPM 내부에 저장된 BIOS 코드의 해시 값과 현재 로드되는 BIOS 코드의 해시 값을 비교함으로써 무결성을 확인할 수 있다. 이러한 무결성을 확인하는 과정에서 코드가 변경되지 않았다면 다음 순서인 OS 로더 코드의 해시 값과 TPM 내부에 저장된 OS 로더 코드의 해시 값을 비교함으로써 무결성을 확인할 수 있다. 만약 이러한 무결성을 확인하는 과정에서 공격자에 의하여 악의적인 코드가 삽입되어 코드가 변조되었다면, OS 로더 코드의 해시 값은 해시의 특성에 따라 전혀 다른 값이 생성되며, 이는 내부에 저장된 순수한 OS 로더 코드의 해시 값과 다르므로 코드가 변조된 것으로 검증할 수 있다. 이에 따라 코드가 변조된 것을 확인한다면, 해당 UAV는 악성코드, 혹은 어떠한 원인으로 인하여 정상적인 행위를 수행할 수 없을 것으로 판단하여 부팅하지 않고 시스템을 종료하게 된다. 그 이후의 OS 및 OS component, 응용 프로그램도 각각 TPM 내부에 저장된 해시 값과 현재 로드되는 코드의 해시 값과 비교함으로써 무결성을 검증할 수 있다.Thereafter, when power is applied to the UAV, integrity can be verified by comparing the hash value of the BIOS code stored in the TPM with the hash value of the BIOS code currently loaded in the TPM 300 according to the boot order. If the code is not changed in the process of checking the integrity, the integrity can be verified by comparing the hash value of the OS loader code stored in the TPM with the hash value of the OS loader code, which is the next step. If the code is altered by inserting malicious code by an attacker in the process of checking such integrity, the hash value of the OS loader code is generated completely different according to the characteristics of the hash, which is the pure OS loader code stored inside. Since it is different from the hash value, it can be verified that the code has been tampered with. Accordingly, if it is confirmed that the code has been altered, the UAV determines that it cannot perform a normal operation due to a malicious code or some reason, and ends the system without booting. After that, the integrity of the OS, OS components, and application programs can be verified by comparing the hash value stored in the TPM with the hash value of the currently loaded code, respectively.

이때, 공격자가 특정 UAV에 공격을 시도하여 상태 기계와 관련된 코드 중 일부를 변조하여 항상 옳은 상태임을 나타내도록 한 경우, 제안하는 TPM을 활용한 자가 점검 로직에서의 무결성을 검증하는 동작을 도 4에서 구체적으로 설명하기로 한다. At this time, when an attacker attempts to attack a specific UAV and modulates some of the code related to the state machine to indicate that it is always in the correct state, the operation of verifying the integrity in the self-check logic using the proposed TPM is shown in FIG. It will be described in detail.

도 4는 일 실시예에 따른 무결성 검증 장치에서 TPM을 활용한 자가 점검을 통하여 무결성을 검증하는 동작을 설명하기 위한 도면이다4 is a diagram for explaining an operation of verifying integrity through self-inspection using a TPM in an integrity verification apparatus according to an embodiment

공격자(400)는 적국 지역을 정찰하기 위하여 공격 대상 UAV에 침투하여 UAV를 공격자가 원하는 위치로 이동시키려고 하며, 이를 위하여 GPS 정보 조작을 위한 수신 코드 변경, 모터 제어 코드 변경 등을 시도하는 악성코드를 삽입하였다고 가정하기로 한다. The attacker 400 attempts to infiltrate the attack target UAV and move the UAV to a location desired by the attacker in order to reconnaissance in the enemy territory, and for this purpose, malicious code that attempts to change the receiving code for manipulating GPS information, change the motor control code, etc. It is assumed that it is inserted.

Step 1. UAV가 부팅이 시작되면, TPM(300) 및 BBB에서 BIOS 코드(310)의 MAC(MB)을 검증할 수 있다. TPM 내에 저장된 BIOS의 해시 값과 부팅 시점에서 실행되기 위하여 로드되는 BIOS 코드의 해시 값을 비교할 수 있다. 다시 말해서, TPM 내에 저장된 BIOS의 MB와 부팅 시점에서 실행되기 위하여 로드되는 BIOS 코드의 MAC 결과와 비교할 수 있다. 공격자(400)는 응용 프로그램(Application) 코드를 변조하였기 때문에 BIOS는 무결한 것으로 판단되어 BIOS를 실행하며, OS Loader의 무결성을 검증할 수 있다.Step 1. When the UAV starts booting, the MAC (M B ) of the BIOS code 310 can be verified in the TPM 300 and BBB. The hash value of the BIOS stored in the TPM and the hash value of the BIOS code loaded to be executed at boot time can be compared. In other words, it can be compared with the M B of the BIOS stored in the TPM and the MAC result of the BIOS code loaded to be executed at boot time. Since the attacker 400 modulates the application code, the BIOS is determined to be innocent, executes the BIOS, and can verify the integrity of the OS Loader.

Step 2. BIOS의 무결성을 검증한 후, OS Loader를 실행하기 위하여 OS Loader 코드(320)의 무결성을 검증할 수 있다. TPM 내에 저장된 OS Loader의 해시 값과 현재 로드되는 OS Loader의 해시 값을 비교할 수 있다. 다시 말해서, TPM 내에 저장된 OS Loader의 MAC(MOL)과 현재 로드되는 OS Loader의 MAC 결과와 비교할 수 있다. 공격자는 Application 코드를 변조하였기 때문에 OS Loader는 무결한 것으로 판단되어 OS Loader를 실행하며, 운영체제의 무결성을 검증할 수 있다. Step 2. After verifying the integrity of the BIOS, it is possible to verify the integrity of the OS Loader code 320 to execute the OS Loader. You can compare the hash value of the OS Loader stored in the TPM with the hash value of the currently loaded OS Loader. In other words, the MAC (M OL ) of the OS Loader stored in the TPM and the MAC result of the currently loaded OS Loader can be compared. Since the attacker modifies the application code, the OS Loader is judged to be innocent and executes the OS Loader, and can verify the integrity of the operating system.

Step 3. OS Loader의 무결성을 검증한 후, 운영체제(OS)를 실행하기 위하여 OS코드(330)의 무결성을 검증할 수 있다. TPM 내에 저장된 OS의 해시 값과 현재 로드되는 OS의 해시 값을 비교할 수 있다. 다시 말해서, TPM 내에 저장된 OS의 MAC(MO)과 현재 로드되는 OS의 MAC 결과와 비교할 수 있다. 공격자는 Application 코드를 변조하였기 때문에 OS는 무결한 것으로 판단되어 OS를 실행하며, OS Component의 무결성을 검증할 수 있다. Step 3. After verifying the integrity of the OS Loader, the integrity of the OS code 330 may be verified in order to execute the operating system (OS). You can compare the hash value of the OS stored in the TPM with the hash value of the currently loaded OS. In other words, the MAC (M O ) of the OS stored in the TPM can be compared with the MAC result of the currently loaded OS. Because the attacker modifies the application code, the OS is judged to be innocent and executes the OS, and the integrity of the OS component can be verified.

Step 4. OS의 무결성을 검증한 후, OS Component를 실행하기 위하여 OS Component 코드(340)의 무결성을 검증할 수 있다. TPM 내에 저장된 OS Component의 해시 값과 현재 로드되는 OS Component의 해시 값을 비교할 수 있다. 다시 말해서, TPM 내에 저장된 OS Component의 MAC(MOC)과 현재 로드되는 OS Component의 MAC 결과와 비교할 수 있다. 공격자는 Application 코드를 변조하였기 때문에 OS Component는 무결한 것으로 판단되어 OS Component를 실행하며, Application의 무결성을 검증할 수 있다. Step 4. After verifying the integrity of the OS, it is possible to verify the integrity of the OS Component code 340 in order to execute the OS Component. The hash value of the OS component stored in the TPM and the hash value of the currently loaded OS component can be compared. In other words, the MAC (M OC ) of the OS component stored in the TPM and the MAC result of the currently loaded OS component can be compared. Because the attacker modifies the application code, the OS component is judged to be innocent and executes the OS component, and the integrity of the application can be verified.

Step 5. OS Component의 무결성을 검증한 후, Application을 실행하기 위하여 Application 코드(350)의 무결성을 검증할 수 있다. TPM 내에 저장된 Application의 해시 값과 현재 로드되는 Application의 해시 값을 비교할 수 있다. 다시 말해서, TPM 내에 저장된 Application의 MAC(MA)과 현재 로드되는 Application의 MAC 결과와 비교할 수 있다. 이때, 공격자는 Application 코드 중 GPS 정보 조작을 위한 수신 코드 변경, 모터 제어 코드 등을 변경하였으므로 생성되는 MAC 값은 원본 Application의 MAC 값인 MA가 아닌 MX의 결과를 가질 수 있다. 따라서 Application의 무결성을 검증함으로써 코드 중 일부가 조작된 것을 탐지할 수 있다. 이와 같이, 보호되어야 하는 필수적인 코드의 무결성을 검증하는 자가 점검이 가능하다.Step 5. After verifying the integrity of the OS component, it is possible to verify the integrity of the application code 350 in order to execute the application. You can compare the hash value of the application stored in the TPM with the hash value of the currently loaded application. In other words, the MAC (M A ) of the application stored in the TPM and the MAC result of the currently loaded application can be compared. At this time, since the attacker changed the received code for manipulating GPS information and the motor control code among the application codes, the generated MAC value may have the result of M X instead of M A, which is the MAC value of the original application. Therefore, it is possible to detect that some of the codes have been manipulated by verifying the integrity of the application. In this way, a self-check that verifies the integrity of essential codes to be protected is possible.

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

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

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

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

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

Claims (14)

무결성 검증 장치에 의해 수행되는 무결성 검증 방법에 있어서,
전자 기기의 TPM에서 코드에 대한 해시 값을 저장하는 단계; 및
상기 전자 기기에서 TPM의 부팅 순서에 따라 실행되는 코드의 해시 값과 상기 TPM에 저장된 각각의 코드에 대한 해시 값을 비교하여 무결성을 검증하는 단계
를 포함하고,
상기 해시 값을 저장하는 단계는,
상기 TPM에서 하드웨어 초기화를 수행하는 BIOS 코드, 운영체제를 로드하기 위한 OS 로더 코드, 운영체제 코드, 운영체제 구동에 필요한 OS component 코드, 운영체제 상에서 구동하기 위한 응용 프로그램(Application)의 코드에 대한 각각의 해시 값을 생성하고, 상기 생성된 각각의 코드에 대한 각각의 해시 값을 저장소에 저장하는 단계
를 포함하고,
상기 무결성을 검증하는 단계는,
상기 전자 기기에 전원이 인가됨에 따라 현재 로드되는 BIOS 코드의 해시 값과 TPM의 내부에 저장된 BIOS 코드의 해시 값을 비교하여 1차 무결성을 검증하고, 상기 1차 무결성을 검증함에 따라 현재 로드되는 OS 로더 코드의 해시 값과 TPM의 내부에 저장된 OS 로더 코드의 해시 값을 비교하여 2차 무결성을 검증하고, 상기 2 차 무결성을 검증함에 따라 현재 로드되는 운영체제 코드의 해시 값과 TPM의 내부에 저장된 운영체제 코드의 해시 값을 비교하여 3차 무결성을 검증하고, 상기 3차 무결성을 검증함에 따라 현재 로드되는 OS component의 해시 값과 TPM의 내부에 저장된 OS component의 해시 값을 비교하여 4차 무결성을 검증하고, 상기 4차 무결성을 검증함에 따라 현재 로드되는 응용 프로그램(Application)의 해시 값과 TPM의 내부에 저장된 응용 프로그램의 해시 값과 해시 값을 비교하여 5차 무결성을 검증하는 단계
를 포함하는 무결성 검증 방법.
In the integrity verification method performed by the integrity verification device,
Storing a hash value for the code in the TPM of the electronic device; And
Verifying integrity by comparing a hash value of a code executed in the electronic device according to a booting order of a TPM with a hash value of each code stored in the TPM
Including,
Storing the hash value,
Each hash value for the BIOS code performing hardware initialization in the TPM, the OS loader code for loading the operating system, the operating system code, the OS component code required for driving the operating system, and the code of an application program for running on the operating system Generating and storing each hash value for each of the generated codes in a storage
Including,
The step of verifying the integrity,
As power is applied to the electronic device, primary integrity is verified by comparing the hash value of the BIOS code currently loaded with the hash value of the BIOS code stored inside the TPM, and the OS currently loaded by verifying the primary integrity Secondary integrity is verified by comparing the hash value of the loader code with the hash value of the OS loader code stored inside the TPM, and as the secondary integrity is verified, the hash value of the currently loaded operating system code and the operating system stored inside the TPM The third integrity is verified by comparing the hash value of the code, and as the third integrity is verified, the fourth integrity is verified by comparing the hash value of the currently loaded OS component with the hash value of the OS component stored inside the TPM. And verifying the fifth integrity by comparing the hash value of the currently loaded application with the hash value of the application stored inside the TPM as the fourth integrity is verified.
Integrity verification method comprising a.
삭제delete 삭제delete 제1항에 있어서,
상기 무결성을 검증하는 단계는,
상기 2차 무결성을 검증하는 과정에서 상기 OS 로더의 코드가 변조된 것으로 판단됨에 따라 상기 전자 기기에서 부팅을 미실행하고 시스템을 종료하는 단계
를 포함하는 무결성 검증 방법.
The method of claim 1,
The step of verifying the integrity,
In the process of verifying the secondary integrity, as it is determined that the code of the OS loader has been altered, the electronic device does not perform booting and terminates the system.
Integrity verification method comprising a.
삭제delete 삭제delete 삭제delete 무결성 검증 장치에 있어서,
전자 기기의 TPM에서 코드에 대한 해시 값을 저장하는 저장부; 및
상기 전자 기기에서 TPM의 부팅 순서에 따라 실행되는 코드의 해시 값과 상기 TPM에 저장된 각각의 코드에 대한 해시 값을 비교하여 무결성을 검증하는 무결성 검증부
를 포함하고,
상기 저장부는,
상기 TPM에서 하드웨어 초기화를 수행하는 BIOS 코드, 운영체제를 로드하기 위한 OS 로더 코드, 운영체제 코드, 운영체제 구동에 필요한 OS component 코드, 운영체제 상에서 구동하기 위한 응용 프로그램(Application)의 코드에 대한 각각의 해시 값을 생성하고, 상기 생성된 각각의 코드에 대한 각각의 해시 값을 저장소에 저장하는 것을 포함하고,
상기 무결성 검증부는,
상기 전자 기기에 전원이 인가됨에 따라 현재 로드되는 BIOS 코드의 해시 값과 TPM의 내부에 저장된 BIOS 코드의 해시 값을 비교하여 1차 무결성을 검증하고, 상기 1차 무결성을 검증함에 따라 현재 로드되는 OS 로더 코드의 해시 값과 TPM의 내부에 저장된 OS 로더 코드의 해시 값을 비교하여 2차 무결성을 검증하고, 상기 2 차 무결성을 검증함에 따라 현재 로드되는 운영체제 코드의 해시 값과 TPM의 내부에 저장된 운영체제 코드의 해시 값을 비교하여 3차 무결성을 검증하고, 상기 3차 무결성을 검증함에 따라 현재 로드되는 OS component의 해시 값과 TPM의 내부에 저장된 OS component의 해시 값을 비교하여 4차 무결성을 검증하고, 상기 4차 무결성을 검증함에 따라 현재 로드되는 응용 프로그램(Application)의 해시 값과 TPM의 내부에 저장된 응용 프로그램의 해시 값과 해시 값을 비교하여 5차 무결성을 검증하는
무결성 검증 장치.
In the integrity verification device,
A storage unit for storing a hash value for a code in the TPM of the electronic device; And
Integrity verification unit that verifies integrity by comparing a hash value of a code executed in the electronic device according to a booting sequence of a TPM with a hash value of each code stored in the TPM
Including,
The storage unit,
Each hash value for the BIOS code performing hardware initialization in the TPM, the OS loader code for loading the operating system, the operating system code, the OS component code required for driving the operating system, and the code of an application program for running on the operating system Generating and storing each hash value for each generated code in a storage,
The integrity verification unit,
As power is applied to the electronic device, primary integrity is verified by comparing the hash value of the BIOS code currently loaded with the hash value of the BIOS code stored inside the TPM, and the OS currently loaded by verifying the primary integrity Secondary integrity is verified by comparing the hash value of the loader code with the hash value of the OS loader code stored inside the TPM, and as the secondary integrity is verified, the hash value of the currently loaded operating system code and the operating system stored inside the TPM The third integrity is verified by comparing the hash value of the code, and as the third integrity is verified, the fourth integrity is verified by comparing the hash value of the currently loaded OS component with the hash value of the OS component stored inside the TPM. As the fourth integrity is verified, the fifth integrity is verified by comparing the hash value of the currently loaded application with the hash value of the application stored inside the TPM.
Integrity verification device.
삭제delete 삭제delete 제8항에 있어서,
상기 무결성 검증부는,
상기 2차 무결성을 검증하는 과정에서 상기 OS 로더의 코드가 변조된 것으로 판단됨에 따라 상기 전자 기기에서 부팅을 미실행하고 시스템을 종료하는
것을 특징으로 하는 무결성 검증 장치.
The method of claim 8,
The integrity verification unit,
In the process of verifying the secondary integrity, as it is determined that the code of the OS loader has been altered, the electronic device does not perform booting and terminates the system.
Integrity verification device, characterized in that.
삭제delete 삭제delete 삭제delete
KR1020180141856A 2018-11-16 2018-11-16 Method for integrity self verification in a resource rich environment KR102176117B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180141856A KR102176117B1 (en) 2018-11-16 2018-11-16 Method for integrity self verification in a resource rich environment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180141856A KR102176117B1 (en) 2018-11-16 2018-11-16 Method for integrity self verification in a resource rich environment

Publications (2)

Publication Number Publication Date
KR20200057439A KR20200057439A (en) 2020-05-26
KR102176117B1 true KR102176117B1 (en) 2020-11-09

Family

ID=70915251

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180141856A KR102176117B1 (en) 2018-11-16 2018-11-16 Method for integrity self verification in a resource rich environment

Country Status (1)

Country Link
KR (1) KR102176117B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100872175B1 (en) * 2006-12-01 2008-12-09 한국전자통신연구원 Secure booting apparatus and method of mobile platform using TPM

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100872175B1 (en) * 2006-12-01 2008-12-09 한국전자통신연구원 Secure booting apparatus and method of mobile platform using TPM

Also Published As

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

Similar Documents

Publication Publication Date Title
US10740468B2 (en) Multiple roots of trust to verify integrity
JP6842367B2 (en) Malicious code detection system and method in files
JP6282305B2 (en) System and method for safe execution of code in hypervisor mode
US9372699B2 (en) System and method for processing requests to alter system security databases and firmware stores in a unified extensible firmware interface-compliant computing device
KR101242224B1 (en) Computer system and method with anti-malware
US11194586B2 (en) Secure boot override in a computing device equipped with unified-extensible firmware interface (UEFI)-compliant firmware
US9836611B1 (en) Verifying the integrity of a computing platform
JP2018041438A5 (en)
KR20200052957A (en) Security control method and computer system
US11170077B2 (en) Validating the integrity of application data using secure hardware enclaves
CN112699419A (en) Method for secure execution of an extensible firmware application and a computer device
CN109804378A (en) BIOS safety
US20170046513A1 (en) Firmware authentication
CN114651253A (en) Virtual environment type verification for policy enforcement
KR102131689B1 (en) An efficient control-flow integrity vefifing method based on unpredictability
WO2015053019A1 (en) Control system and authentication device
KR102176117B1 (en) Method for integrity self verification in a resource rich environment
EP3440586B1 (en) Method for write-protecting boot code if boot sequence integrity check fails
CN101458749A (en) Protected computing environment
KR102176115B1 (en) Integrity self verification method and system using few resources
CN112988262B (en) Method and device for starting application program on target platform
KR102089435B1 (en) A secure boot method for secure usb device
KR102205779B1 (en) Integrity mutual verification method and system using few resources
KR102243378B1 (en) Method and apparatus for ensuring integrity of java library
KR102176118B1 (en) Method for integrity mutual verification in a resource rich environment

Legal Events

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