KR102111327B1 - Integrity verification system for boot process in linux and update and integrity verification method of managed machine - Google Patents

Integrity verification system for boot process in linux and update and integrity verification method of managed machine Download PDF

Info

Publication number
KR102111327B1
KR102111327B1 KR1020190027745A KR20190027745A KR102111327B1 KR 102111327 B1 KR102111327 B1 KR 102111327B1 KR 1020190027745 A KR1020190027745 A KR 1020190027745A KR 20190027745 A KR20190027745 A KR 20190027745A KR 102111327 B1 KR102111327 B1 KR 102111327B1
Authority
KR
South Korea
Prior art keywords
value
pcr
integrity
kernel
management terminal
Prior art date
Application number
KR1020190027745A
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 KR1020190027745A priority Critical patent/KR102111327B1/en
Application granted granted Critical
Publication of KR102111327B1 publication Critical patent/KR102111327B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/33User authentication using certificates
    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

The present invention relates to an integrity verification system for a booting process in a Linux environment and a method for update and integrity verification of a terminal for management. An objective of the present invention is to provide a system and a method capable of maintaining integrity for a computing device. According to an embodiment of the present invention, the integrity verification system includes a verification server which is linkable to a terminal for management, and reflects updated information of the terminal for management in integrity verification for a booting process by an integrity management unit. The integrity management unit includes: a storage unit to manage a private key for integrity verification and binary values of a bootloader and a kernel for the terminal for management; an update unit to estimate trusted platform configuration register (t-PCR) values and whitelist values in accordance with the binary values, and store the estimated whitelist values in a database of the verification server; and a kernel generation unit to generate a PCR-signed kernel for integrity verification of the booting process based on the t-PCR values. The terminal for management includes a processor to use the PCR-signed kernel transferred from the kernel generation unit to verify the integrity of the booting process.

Description

리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법{INTEGRITY VERIFICATION SYSTEM FOR BOOT PROCESS IN LINUX AND UPDATE AND INTEGRITY VERIFICATION METHOD OF MANAGED MACHINE}INTEGRITY VERIFICATION SYSTEM FOR BOOT PROCESS IN LINUX AND UPDATE AND INTEGRITY VERIFICATION METHOD OF MANAGED MACHINE}

본 발명은 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법에 관한 것으로, 더욱 상세하게는 관리용 단말의 업데이트를 반영하여 무결성을 유지하고, 악성 사용자에 의한 해킹 또는 수정과 업데이트를 구별하여 전체 부팅 과정에서 안전한 무결성 검증이 이루어질 수 있도록 하는 시스템 및 방법에 관한 것이다. The present invention relates to an integrity verification system for a booting process in a Linux environment and an update and integrity verification method for a management terminal. More specifically, it maintains integrity by reflecting an update of the management terminal, and is hacked by a malicious user. Or, it relates to a system and method for distinguishing modifications from updates so that secure integrity verification can be performed in the entire boot process.

컴퓨터 환경에서 Spectre와 Meltdown과 같은 치명적인 보안 공격이 발생함에 따라 시스템 관리자는 보안 업데이트와 패치를 지속적으로 배포하고 있다. 보안 업데이트 적용은 무결성 유지 방식과 동일한 목표를 공유하여 시스템을 보호한다. As fatal security attacks such as Specter and Meltdown occur in computer environments, system administrators are continually deploying security updates and patches. Applying security updates protects the system by sharing the same goals as maintaining integrity.

그러나, 이 둘은 모순 된 접근법을 취한다. 무결성 유지 방식은 시스템이 의도하지 않은 수정을 하지 못하도록 함으로써 시스템을 보호하지만, 보안 업데이트는 시스템을 수정하여 취약점을 완화하려고 한다. 이러한 패러독스로 인해 보안 업데이트를 적용하면 무결성이 유지되지 못하는 문제가 발생한다.However, the two take a contradictory approach. The integrity-preserving method protects the system by preventing it from making unintended modifications, but security updates attempt to mitigate the vulnerability by modifying the system. Due to this paradox, applying a security update creates a problem that integrity cannot be maintained.

종래의 무결성 유지 방식 중 하나인 인텔의 Trusted Execution Technology(TXT)는 시스템의 업데이트 시 무결성 검증을 위한 설정값의 수정이 어렵고, 부트로더 중 하나인 Grub에 대한 공격 시에 무결성 검증의 우회가 가능하다는 문제가 존재한다.Intel's Trusted Execution Technology (TXT), which is one of the conventional integrity maintenance methods, is difficult to modify the settings for integrity verification when updating the system, and it is possible to bypass integrity verification when attacking Grub, one of the bootloaders. The problem exists.

또한, 인텔의 Open CIT는 제 3 자 인증의 원격 검증 방식을 통해 시스템의 무결성을 검증하지만, 업데이트 자체가 고려되지 않고, 악성 사용자의 직접적인 해킹에 취약하며, 업데이트 관리 기능을 위한 구성이 전혀 없다는 문제가 있다.In addition, Intel's Open CIT verifies the integrity of the system through a third-party authentication remote verification method, but the update itself is not considered, it is vulnerable to direct hacking by malicious users, and there is no configuration for update management function. There is.

즉, 종래의 무결성 유지 방식들을 이용하면, 업데이트와 악성 사용자에 의한 수정을 구별할 수 없을 뿐만 아니라 업데이트에 따른 시스템의 수정 또는 변경으로 인해 무결성을 검증하지 못하는 문제가 발생한다.That is, using the conventional integrity maintenance methods, it is possible not only to distinguish between the update and the modification by the malicious user, but also a problem that the integrity cannot be verified due to the modification or change of the system according to the update.

또한, 종래의 무결성 유지 방식들은 리눅스 환경이 아닌 윈도우 환경에 적합하며, 부트로더에 대한 직접적인 수정 및 공격, 무결성이 보장되지 않더라도 부팅 과정이 진행되는 문제 등으로 인해 전체 부팅 과정에서의 무결성 및 신뢰성을 확보할 수 없는 문제가 존재한다. In addition, the conventional integrity maintenance methods are suitable for the Windows environment, not the Linux environment, and the integrity and reliability of the entire boot process are improved due to the direct modification and attack on the boot loader, the problem that the boot process proceeds even if the integrity is not guaranteed. There are problems that cannot be secured.

대한민국 공개특허공보 제10-2006-0094171호 (2006.08.29)Republic of Korea Patent Publication No. 10-2006-0094171 (2006.08.29)

본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로서, 리눅스 환경의 컴퓨터 장치에 대한 보안 업데이트를 원격으로 관리하고, 무결성 검증 과정에 업데이트 내용을 반영할 수 있도록 함으로써, 컴퓨터 장치에 대한 무결성을 유지시킬 수 있는 시스템 및 방법을 제공함에 목적이 있다.The present invention is to solve the problems as described above, by remotely managing the security update for the computer device in the Linux environment, and by allowing to reflect the update in the integrity verification process, to maintain the integrity of the computer device It is an object to provide a system and method.

또한, TPM(Trusted Platform Module)을 이용하여 전체 부팅 과정을 측정한 결과와 커널의 디지털 서명에 포함된 PCR 값을 비교함으로써, 리눅스 환경에서의 모든 부팅 과정에 대한 견고한 무결성 검증이 수행되도록 하는 시스템 및 방법을 제공함에 목적이 있다.In addition, by comparing the result of measuring the entire boot process using the Trusted Platform Module (TPM) and the PCR value included in the digital signature of the kernel, a system that enables robust integrity verification of all boot processes in the Linux environment and The purpose is to provide a method.

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템은, 관리용 단말과 연동 가능하며, 무결성 관리부를 통해 관리용 단말의 업데이트 정보를 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버를 포함하되, 무결성 관리부는, 무결성 검증을 위한 개인키(Private key) 및 관리용 단말에 대한 커널(Kernel) 및 부트로더(Bootloader)의 바이너리(Binary) 값을 관리하는 저장부, 바이너리 값에 따른 화이트리스트(Whitelist) 값과 t-PCR(trusted Paltform Configuration Register) 값을 추정하고, 추정된 화이트리스트 값을 검증 서버의 데이터베이스에 저장하는 업데이트부 및 t-PCR 값을 기초로 부팅 과정의 무결성 검증을 위한 PCR 서명 커널(PCR-signed kernel)을 생성하는 커널 생성부를 포함하며, 관리용 단말은, 커널 생성부로부터 전달된 PCR 서명 커널을 이용하여 부팅 과정의 무결성을 검증하는 프로세서를 포함할 수 있다.The integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention can be interlocked with the management terminal, and is verified by reflecting the update information of the management terminal to the integrity verification for the booting process through the integrity management unit Including the server, the integrity management unit includes a private key for integrity verification and a storage unit that manages the binary values of the kernel and bootloader for the management terminal and the binary values. Estimate the whitelist value and the trusted Paltform Configuration Register (t-PCR) value, and verify the integrity of the boot process based on the update unit and t-PCR value that stores the estimated whitelist value in the verification server database. It includes a kernel generation unit for generating a PCR signature kernel (PCR-signed kernel), the management terminal, the PCR signature kernel delivered from the kernel generation unit Use may include a processor to verify the integrity of the boot process.

본 발명의 일 실시 예에 따른 업데이트부는, 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 화이트리스트 값 및 t-PCR 값을 추정할 수 있다.The update unit according to an embodiment of the present invention may estimate a white list value and a t-PCR value through an extended operation of a PCR value using a predetermined secure hash algorithm (SHA).

본 발명의 일 실시 예에 따른 PCR 서명 커널은, 커널 이미지 및 개인키로 암호화된 t-PCR 값이 저장된 디지털 서명을 포함할 수 있다.The PCR signature kernel according to an embodiment of the present invention may include a digital signature storing a t-PCR value encrypted with a kernel image and a private key.

본 발명의 일 실시 예에 따른 프로세서는, 소정의 보안 부팅 환경에서 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행할 수 있다.The processor according to an embodiment of the present invention may perform verification of a binary value for the first boot loader using a public key stored in the firmware of the management terminal in a predetermined secure boot environment. have.

본 발명의 일 실시 예에 따른 프로세서는, 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성할 수 있다.The processor according to an embodiment of the present invention measures PCR values for the first boot loader and the second boot loader using a Trusted Platfrom Module (TPM) in a predetermined secure boot environment, and the entire booting process of the management terminal It can generate a chain-of-trust value representing.

본 발명의 일 실시 예에 따른 프로세서는, 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출할 수 있다.The processor according to an embodiment of the present invention may perform decryption on the digital signature of the PCR signature kernel using the public key stored in the firmware of the management terminal, and extract the t-PCR value.

본 발명의 일 실시 예에 따른 프로세서는, 추출된 t-PCR 값과 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하며, t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.The processor according to an embodiment of the present invention performs integrity verification of the boot process by comparing the extracted t-PCR value with a trust chain value indicating the entire boot process of the management terminal, and performs a t-PCR value and the trust chain You can only allow the kernel to run during the boot process if the values match.

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 업데이트 방법은, 관리용 단말로부터 검증 서버로 새로운 커널(Kernel)에 대한 업데이트가 요청되면, 검증 서버의 무결성 관리부의 저장부에서 관리용 단말의 등록 정보를 확인하는 단계, 무결성 관리부의 업데이트부에서 확인된 관리용 단말의 등록 정보에 기초하여 업데이트를 위한 화이트리스트(Whitelist) 값 및 t-PCR(trusted Paltform Configuration Register) 값을 추정하는 단계 및 무결성 관리부의 커널 생성부에서 추정된 t-PCR 값을 기초로 업데이트를 위한 PCR 서명 커널(PCR-signed Kernel)을 생성하고, 생성된 PCR 서명 커널을 관리용 단말로 전달하는 단계를 포함할 수 있다.An update method of a management terminal of an integrity verification system for a booting process in a Linux environment according to an embodiment of the present invention, when an update of a new kernel is requested from a management terminal to a verification server, the verification server Checking the registration information of the management terminal in the storage unit of the integrity management unit, based on the registration information of the management terminal identified in the update unit of the integrity management unit Whitelist value and t-PCR (trusted Paltform) for updating Configuration Register) estimating the value and generating the PCR signature kernel (PCR-signed Kernel) for updating based on the t-PCR value estimated by the kernel generating unit of the integrity management unit, and managing the generated PCR signature kernel It may include the step of passing to.

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 업데이트 방법에서 화이트리스트 값 및 t-PCR 값을 추정하는 단계에서는, 업데이트부가 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 화이트리스트 값 및 t-PCR 값을 추정할 수 있다.In the step of estimating the whitelist value and the t-PCR value in the update method of the management terminal of the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention, the update unit performs a predetermined security hash algorithm (Secure Hash List Algorithm (SHA) can be used to estimate the white list value and t-PCR value through the extended operation of the PCR value.

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에 있어서, 관리용 단말의 프로세서가 소정의 보안 부팅 환경에서 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 단계, 프로세서가 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 단계, 프로세서가 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출하는 단계 및 프로세서가 추출된 t-PCR 값과 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하는 단계를 포함할 수 있다.In the method for verifying the integrity of the management terminal of the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention, the processor of the management terminal performs firmware of the management terminal in a predetermined secure boot environment. Performing verification of the binary value for the first boot loader using a public key stored in the processor, the processor using a Trusted Platfrom Module (TPM) in a predetermined secure boot environment, the first boot loader and the second Measuring the PCR value for the bootloader and generating a chain-of-trust value representing the entire booting process of the management terminal, the processor signing the PCR using the public key stored in the firmware of the management terminal Decrypting the digital signature of the kernel, extracting the t-PCR value, and indicating the entire booting process of the management terminal and the extracted t-PCR value by the processor Comparing the confidence value chain may include the step of performing integrity verification of the boot process.

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에서 부팅 과정에 대한 무결성 검증을 수행하는 단계에서는, 프로세서가 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.In the integrity verification of the booting process in the integrity verification method of the management terminal of the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention, the processor performs the t-PCR value and the trust chain value. Only if this match can the kernel be run during the boot process.

한편, 본 발명의 일 실시 예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.On the other hand, according to an embodiment of the present invention, it is possible to provide a recording medium readable by a computer recording a program for executing the above-described method on a computer.

본 발명의 일 실시 예로서 제공되는 시스템 및 방법에 따르면, 종래의 무결성 원격 검증과 달리 클라이언트(i.e. 관리용 단말)의 악성 수정 또는 업데이트를 구별할 수 있으며, 클라이언트의 업데이트 상태를 실시간으로 반영하여 잦은 업데이트에도 클라이언트의 무결성을 견고히 유지 및 관리할 수 있다.According to the system and method provided as an embodiment of the present invention, unlike conventional integrity remote verification, it is possible to distinguish malicious modification or update of a client (ie, a terminal for management), and frequently reflects the update status of the client in real time. The integrity of the client can be maintained and maintained even during updates.

또한, 본 발명의 일 실시 예로서 제공되는 시스템 및 방법에 따르면, 하드웨어 환경, BIOS(Basic Input Output System), 부트로더(ex. Shim, Grub 등), 실행된 부트로더의 명령 및 운영체제 커널의 바이너리를 검증하여 리눅스 환경에서 부팅 과정 전체에 대한 무결성을 보호하고, 견고하고 검증된 부팅 환경을 보장할 수 있다.In addition, according to the system and method provided as an embodiment of the present invention, a hardware environment, a basic input output system (BIOS), a boot loader (ex. Shim, Grub, etc.), a command of the executed boot loader and a binary of the operating system kernel By verifying, you can protect the integrity of the entire boot process in the Linux environment and ensure a robust and verified boot environment.

도 1은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 검증 서버의 동작 과정을 나타낸 개념도이다.
도 3은 본 발명의 일 실시 예에 따른 PCR 서명 커널의 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 관리용 단말의 업데이트 과정을 나타낸 개념도이다.
도 5는 본 발명의 일 실시 예에 따른 관리용 단말의 프로세서의 동작 과정을 나타낸 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 부팅 구성에 따른 PCR 값의 변화를 나타낸 표이다.
도 7은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 업데이트를 기준으로 한 화이트리스트 값의 변화를 나타낸 표이다.
도 8은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말의 업데이트 방법에 대한 순서도이다.
도 9는 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에 대한 순서도이다.
1 is a block diagram of an integrity verification system according to an embodiment of the present invention.
2 is a conceptual diagram showing an operation process of a verification server according to an embodiment of the present invention.
3 is a block diagram of a PCR signature kernel according to an embodiment of the present invention.
4 is a conceptual diagram illustrating an update process of a management terminal according to an embodiment of the present invention.
5 is a block diagram showing an operation process of a processor of a management terminal according to an embodiment of the present invention.
6 is a table showing changes in PCR values according to a boot configuration of an integrity verification system according to an embodiment of the present invention.
7 is a table showing changes in white list values based on an update of the integrity verification system according to an embodiment of the present invention.
8 is a flowchart illustrating a method for updating a terminal for managing an integrity verification system according to an embodiment of the present invention.
9 is a flowchart of a method for verifying integrity of a terminal for managing an integrity verification system according to an embodiment of the present invention.

본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.Terms used in the specification will be briefly described, and the present invention will be described in detail.

본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다. The terminology used in the present invention has been selected, while considering the functions in the present invention, general terms that are currently widely used are selected, but this may vary according to the intention or precedent of a person skilled in the art or the appearance of a new technology. In addition, in certain cases, some terms are arbitrarily selected by the applicant, and in this case, their meanings will be described in detail in the description of the applicable invention. Therefore, the terms used in the present invention should be defined based on the meanings of the terms and the contents of the present invention, not simply the names of the terms.

명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈", "프로세서" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.When a part of the specification "includes" a certain component, this means that other components may be further included instead of excluding other components, unless specifically stated to the contrary. In addition, terms such as "... unit", "module", and "processor" described in the specification mean a unit that processes at least one function or operation, which is implemented in hardware or software, or a combination of hardware and software. Can be implemented.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다. Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present invention pertains can easily practice. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.Hereinafter, the present invention will be described in detail with reference to the accompanying drawings.

도 1은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 블록도이며, 도 2는 본 발명의 일 실시 예에 따른 검증 서버(100)의 동작 과정을 나타낸 개념도이다. 1 is a block diagram of an integrity verification system according to an embodiment of the present invention, and FIG. 2 is a conceptual diagram showing an operation process of the verification server 100 according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템은, 무결성 검증이 필요한 컴퓨터 장치에 해당하는 관리용 단말(200) 및 무결성 관리부(110)를 통해 관리용 단말(200)의 업데이트 정보를 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버(100)를 포함할 수 있다.Referring to FIG. 1, an integrity verification system for a booting process in a Linux environment according to an embodiment of the present invention is provided through a management terminal 200 and an integrity management unit 110 corresponding to a computer device requiring integrity verification It may include a verification server 100 for reflecting the update information of the management terminal 200 in the integrity verification for the boot process.

즉, 본 발명의 일 실시 예에 따른 무결성 검증 시스템은, 검증 서버(100)를 통해 관리용 단말(200)을 등록하고, 등록된 관리용 단말(200)에 대한 업데이트 사항들을 즉각적으로 반영 및 관리함과 동시에 무결성 검증이 수행될 수 있도록 하는 원격 인증을 수행하여 리눅스 환경에서 부팅 과정의 무결성이 유지될 수 있도록 할 수 있다.That is, the integrity verification system according to an embodiment of the present invention registers the management terminal 200 through the verification server 100 and immediately reflects and manages updates to the registered management terminal 200. At the same time, it is possible to maintain the integrity of the boot process in the Linux environment by performing remote authentication, which enables integrity verification to be performed.

전술한 검증 서버(100)는 무결성 검증부를 통해 관리용 단말(200)을 관리하는데, 무결성 검증부는 관리용 단말(200)을 투명하게 업데이트하고, 무결성 검증 과정에서 업데이트로 인해 의도하지 않은 검증 오류를 방지할 수 있다.The above-described verification server 100 manages the management terminal 200 through the integrity verification unit, and the integrity verification unit transparently updates the management terminal 200 and unintended verification errors due to the update in the integrity verification process. Can be prevented.

도 1 을 참조하면, 본 발명의 일 실시 예에 다른 무결성 관리부(110)는, 무결성 검증을 위한 개인키(Private key) 및 관리용 단말(200)에 대한 커널(Kernel) 및 부트로더(Bootloader)의 바이너리(Binary) 값을 관리하는 저장부(111), 바이너리 값에 따른 화이트리스트(Whitelist) 값과 t-PCR(trusted Paltform Configuration Register) 값을 추정하고, 추정된 화이트리스트 값을 검증 서버(100)의 데이터베이스(120)에 저장하는 업데이트부(112) 및 t-PCR 값을 기초로 부팅 과정의 무결성 검증을 위한 PCR 서명 커널(PCR-signed kernel)을 생성하는 커널 생성부(113)를 포함할 수 있다.Referring to FIG. 1, another integrity management unit 110 according to an embodiment of the present invention includes a private key for integrity verification and a kernel and bootloader for a management terminal 200. The storage unit 111 manages the binary value of the, whitelist value according to the binary value and estimates the value of the trusted Paltform Configuration Register (t-PCR), and verifies the estimated whitelist value by the server 100 ) Includes an update unit 112 stored in the database 120 and a kernel generation unit 113 generating a PCR-signed kernel for verifying the integrity of the booting process based on the t-PCR value. Can be.

도 2를 참조하면, 본 발명의 일 실시 예에 따른 저장부(111)는, 관리용 단말(200)의 원격 검증을 위한 등록 정보를 관리하고, 무결성 관리부(110) 자체에서 암호화를 위해 소유하고 있는 개인키 및 수명 종료(End-Of-Life, EOL)가 명시되지 않은 유효한 커널과 부트로더의 바이너리 값을 관리할 수 있다. 즉, 저장부(111)에서 등록된 관리용 단말(200)에 대한 정보 및 커널 및 부트로더의 바이너리 값을 관리하므로, 검증 서버(100)는 관리용 단말(200)에서 사용되는 소프트웨어를 완전히 제어할 수 있다.Referring to FIG. 2, the storage unit 111 according to an embodiment of the present invention manages registration information for remote verification of the management terminal 200 and is owned for encryption by the integrity management unit 110 itself The private key and end-of-life (EOL) can manage valid kernel and boot loader binary values that are not specified. That is, since the information on the management terminal 200 registered in the storage 111 and the binary values of the kernel and boot loader are managed, the verification server 100 completely controls the software used in the management terminal 200. can do.

또한, 본 발명의 일 실시 예에 따른 저장부(111)는, 관리용 단말(200)의 무결성 관리 및 무결성 검증을 위한 무결성 값의 배포를 위해 업데이트부(112) 및 커널 생성부(113)에 바이너리 값을 제공한다. 업데이트부(112)에서는 저장부(111)로부터 제공된 바이너리 값에 기초하여 화이트리스트 값 및 무결성 검증의 기준값인 t-PCR 값을 추정할 수 있다.In addition, the storage unit 111 according to an embodiment of the present invention, the update unit 112 and the kernel generation unit 113 for distribution of integrity values for integrity management and integrity verification of the management terminal 200 Provide binary values. The update unit 112 may estimate the white list value and the t-PCR value, which is a reference value of integrity verification, based on the binary value provided from the storage unit 111.

도 2를 참조하면, 본 발명의 일 실시 예에 따른 업데이트부(112)는, 관리용 단말(200)의 업데이트 정보를 반영하여 화이트리스트 값을 갱신하고, 무결성 값으로서의 t-PCR 값을 추정하여 커널 생성부(113)로 전달할 수 있다. 여기서 말하는 화이트리스트 값은 등록된 관리용 단말(200)의 업데이트를 관리하기 위한 데이터로서, 도 2를 참조하면, 화이트리스트 값에 포함된 측정 구성(Measurement Configuration)은 관리용 단말(200)의 전체 부팅 과정과 유사한 명령 시퀀스(Instruction Sequence)의 매니페스트(Manifest)를 의미한다. 또한, t-PCR 값은 관리용 단말(200)의 무결성 검증의 기준이 되는 무결성 값으로서, 측정 구성에서 선언된 전체 부팅 과정을 확장함으로써 계산된 양호한 무결성 값을 말한다.Referring to FIG. 2, the update unit 112 according to an embodiment of the present invention updates the whitelist value by reflecting the update information of the management terminal 200 and estimates the t-PCR value as the integrity value It can be delivered to the kernel generator 113. The white list value referred to herein is data for managing the update of the registered management terminal 200. Referring to FIG. 2, the measurement configuration included in the white list value is the entire management terminal 200. Refers to the manifest of an instruction sequence similar to the boot process. In addition, the t-PCR value is an integrity value that is a criterion for integrity verification of the management terminal 200 and refers to a good integrity value calculated by extending the entire booting process declared in the measurement configuration.

본 발명의 일 실시 예에 따른 업데이트부(112)는, 저장부(111)로부터 제공된 바이너리 값에 기초하여 화이트리스트 값 및 무결성 검증의 기준값인 t-PCR 값을 추정할 수 있으며, 화이트리스트 값 및 t-PCR 값의 추정은 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 수행될 수 있다. The update unit 112 according to an embodiment of the present invention may estimate the white list value and the t-PCR value, which is a reference value of integrity verification, based on the binary value provided from the storage 111. Estimation of the t-PCR value may be performed through an extended operation of PCR values using a predetermined secure hash algorithm (SHA).

예를 들어, 업데이트부(112)는 전술한 측정 구성에 따라 다음의 [수학식 1]과 같은 확장 연산을 통해 화이트리스트 값과 t-PCR 값을 추정할 수 있다.For example, the updater 112 may estimate the white list value and the t-PCR value through the extended operation as shown in [Equation 1] according to the above-described measurement configuration.

[수학식 1][Equation 1]

Figure 112019024878902-pat00001
Figure 112019024878902-pat00001

이때, H() 함수는 TPM(Trusted Platfrom Module) 장치의 해시 함수로서, SHA-256 해시 알고리즘을 계산하며, 연결 연산자에 해당한다. 전술한 [수학식 1]을 참조하면, 확장 연산은 무결성 값을 확장하기 위해(i.e. 업데이트 정보가 반영된 t-PCR 값을 도출하기 위해) 업데이트 이전 단계의 PCR 값과 현재 단계의 데이터를 이용하여 수행된다.At this time, the H () function is a hash function of a Trusted Platfrom Module (TPM) device, calculates a SHA-256 hash algorithm, and corresponds to a concatenation operator. Referring to [Equation 1] described above, the expansion operation is performed by using the PCR value of the previous step and the data of the current step to expand the integrity value (ie to derive the t-PCR value reflecting the update information). do.

전술한 연산 과정을 통해 추정된 화이트리스트 값은 검증 서버(100)의 데이터베이스(120)로 전달되어 갱신됨으로써, 검증 서버(100)는 시스템에 등록된 관리용 단말(200)의 업데이트 사항을 관리할 수 있다. 또한, 업데이트 사항이 반영된 무결성 값으로서 t-PCR 값은 커널 생성부(113)를 거쳐 관리용 단말(200)로 전달됨으로써, 시스템을 통해 업데이트가 반영된 무결성 검증이 수행될 수 있도록 할 수 있다.The whitelist value estimated through the above-described calculation process is transmitted to the database 120 of the verification server 100 and updated, so that the verification server 100 manages the update of the management terminal 200 registered in the system. Can be. In addition, the t-PCR value as the integrity value reflecting the update is transmitted to the management terminal 200 through the kernel generation unit 113, so that integrity verification reflecting the update can be performed through the system.

도 2를 참조하면, 본 발명의 일 실시 예에 따른 커널 생성부(113)는, 업데이트부(112)에서 생성된 t-PCR 값이 포함된 PCR 서명 커널을 생성하기 위한 구성이다. 여기서 말하는 PCR 서명 커널은 시스템에 등록된 관리용 단말(200)의 무결성 정보가 들어있는 고유한 커널을 의미한다. 커널 생성부(113)는 t-PCR 값을 일반적인 다이제스트 해시(Digest Hash) 형태가 아닌 커널에 암호화된 서명의 형태로 포함시킴으로써, 무결성 값의 보안성을 보다 강화하고, 종래의 무결성 검증 방식과는 달리 부팅 과정 전체에 대한 무결성 검증이 수행될 수 있도록 할 수 있다.Referring to FIG. 2, the kernel generation unit 113 according to an embodiment of the present invention is a configuration for generating a PCR signature kernel including the t-PCR value generated by the update unit 112. The PCR signature kernel referred to herein refers to a unique kernel containing integrity information of the management terminal 200 registered in the system. The kernel generator 113 includes the t-PCR value in the form of an encrypted signature in the kernel, rather than in the form of a normal digest hash, thereby further enhancing the security of the integrity value and in contrast with the conventional integrity verification method. Alternatively, integrity verification can be performed for the entire boot process.

예를 들어, 커널 생성부(113)는 저장부(111)로부터 전달된 개인키를 이용하여 업데이트부(112)로부터 전달된 t-PCR 값을 암호화할 수 있다. 커널 생성부(113)는 암호화된 t-PCR 값을 디지털 서명에 결합시킬 수 있으며, PCR 서명 커널을 생성하는 커널 바이너리 값에 추가시킬 수 있다. 이러한 과정을 통해 커널 생성부(113)는 암호화된 t-PCR 값이 서명된 PCR 서명 커널을 생성할 수 있다.For example, the kernel generation unit 113 may encrypt the t-PCR value transmitted from the update unit 112 using the private key transmitted from the storage unit 111. The kernel generation unit 113 may combine the encrypted t-PCR value with the digital signature, and add it to the kernel binary value that generates the PCR signature kernel. Through this process, the kernel generation unit 113 may generate a PCR signature kernel in which an encrypted t-PCR value is signed.

도 3은 본 발명의 일 실시 예에 따른 PCR 서명 커널의 블록도이다.3 is a block diagram of a PCR signature kernel according to an embodiment of the present invention.

도 3을 참조하면, 본 발명의 일 실시 예에 따른 PCR 서명 커널은, 커널 이미지 및 개인키로 암호화된 t-PCR 값이 저장된 디지털 서명을 포함할 수 있다. 커널 이미지는 커널의 실행을 위한 필요 구성에 해당하며, 디지털 서명은 커널 생성부(113)에 의해 개인키로 암호화된 t-PCR 값을 포함하는 서명값에 해당한다. 이와 같이 구성되는 PCR 서명 커널은 커널 생성부(113)로부터 관리용 단말(200)로 전달되어 사용될 수 있으며, 관리용 단말(200)은 PCR 서명 커널의 디지털 서명에 대한 복화화를 통해 t-PCR 값을 추출하여 무결성 검증 과정에 활용할 수 있다.Referring to FIG. 3, the PCR signature kernel according to an embodiment of the present invention may include a digital signature storing a t-PCR value encrypted with a kernel image and a private key. The kernel image corresponds to a necessary configuration for the execution of the kernel, and the digital signature corresponds to a signature value including a t-PCR value encrypted with a private key by the kernel generator 113. The PCR signature kernel configured as described above may be transferred from the kernel generation unit 113 to the management terminal 200 and used, and the management terminal 200 may perform t-PCR through duplication of the digital signature of the PCR signature kernel. The value can be extracted and used in the integrity verification process.

이하에서는 전술한 내용에 기초하여 검증 서버(100)에 의한 관리용 단말(200)의 업데이트 과정을 보다 구체적으로 살펴보도록 한다.Hereinafter, an update process of the management terminal 200 by the verification server 100 will be described in more detail based on the foregoing.

도 4는 본 발명의 일 실시 예에 따른 관리용 단말(200)의 업데이트 과정을 나타낸 개념도이다.4 is a conceptual diagram illustrating an update process of the management terminal 200 according to an embodiment of the present invention.

도 4를 참조하면, 먼저 관리용 단말(200)에서 정의된 커널 업데이트에 대한 저장소가 검증 서버(100)의 무결성 관리부(110)의 저장부(111)로 설정될 수 있다. 이에 따라 새로운 커널이 배포되면(i.e. 커널에 대한 업데이트가 수행되어야 하는 경우), 무결성 관리부(110)의 저장부(111)에서 새로운 커널에 대한 업데이트 수행에 대한 알림을 관리용 단말(200)로 전송할 수 있다.Referring to FIG. 4, first, the storage for the kernel update defined in the management terminal 200 may be set as the storage 111 of the integrity management unit 110 of the verification server 100. Accordingly, when a new kernel is distributed (ie, when an update to the kernel needs to be performed), the storage unit 111 of the integrity management unit 110 transmits a notification about performing the update to the new kernel to the management terminal 200 Can be.

알림을 수신한 관리용 단말(200)에서 검증 서버(100)로 업데이트가 요청되면, 검증 서버(100)의 무결성 관리부(110)의 저장부(111)는 관리용 단말(200)의 등록 정보를 확인할 수 있다. 이를 통해 본 발명의 일 실시 예에 따른 시스템을 이용하는 진정한 관리용 단말(200)에 해당하는지 여부를 확인할 수 있으며, 검증 서버(100)는 관리용 단말(200)의 업데이트 상태를 투명하게 인식할 수 있다.When an update is requested from the management terminal 200 receiving the notification to the verification server 100, the storage 111 of the integrity management unit 110 of the verification server 100 receives registration information of the management terminal 200. Can be confirmed. Through this, it is possible to check whether it corresponds to the true management terminal 200 using the system according to an embodiment of the present invention, and the verification server 100 can transparently recognize the update status of the management terminal 200. have.

관리용 단말(200)의 등록 정보가 확인되고 나면, 검증서버의 무결성 관리부(110)의 업데이트부(112)는 측정 구성을 설정하고, t-PCR 값을 추정할 수 있다. 이는 저장부(111)로부터 전달된 바이너리 값이 기초하여 수행되며, t-PCR 값과 함께 화이트리스트 값이 갱신됨으로써 검증 서버(100)는 관리용 단말(200)에 대한 가장 최신의 업데이트 정보를 유지할 수 있다.After the registration information of the management terminal 200 is confirmed, the update unit 112 of the integrity management unit 110 of the verification server can set the measurement configuration and estimate the t-PCR value. This is performed based on the binary value transmitted from the storage 111, and the whitelist value is updated along with the t-PCR value, so that the verification server 100 maintains the latest update information for the management terminal 200. Can be.

업데이트부(112)에 의해 추정된 t-PCR 값은 커널 생성부(113)로 전달되고, 커널 생성부(113)는 t-PCR 값을 개인키로 암호화하여 PCR 서명 커널을 생성하고, 이를 유무선 네트워크를 통해 관리용 단말(200)로 배포할 수 있다.The t-PCR value estimated by the update unit 112 is transmitted to the kernel generation unit 113, and the kernel generation unit 113 encrypts the t-PCR value with a private key to generate a PCR signature kernel, which is wired / wireless network. It can be distributed to the management terminal 200 through.

이러한 과정을 통해 관리용 단말(200)은 새로운 커널에 대한 업데이트를 수행함과 동시에 업데이트 정보가 반영된 PCR 서명 커널을 획득함으로써, 업데이트 이후에도 부팅 과정에서의 수정된 사항에 기초한 무결성 검증을 수행할 수 있다.Through this process, the management terminal 200 may perform an update for the new kernel and acquire a PCR signature kernel that reflects the update information, and perform integrity verification based on the modified information in the boot process even after the update.

도 1을 참조하면, 본 발명의 일 실시 예에 따른 관리용 단말(200)은, 커널 생성부(113)로부터 전달된 PCR 서명 커널을 이용하여 부팅 과정의 무결성을 검증하는 프로세서(210)를 포함할 수 있다. 즉, 프로세서(210)는 도 2와 같이 검증 서버(100)로부터 전달된 PCR 서명 값을 이용하여 전체 부팅 과정에서의 무결성 검증을 수행하며, 검증 결과에 따라 관리용 단말(200)의 운영체제의 실행 여부를 결정할 수 있다.Referring to FIG. 1, the management terminal 200 according to an embodiment of the present invention includes a processor 210 that verifies the integrity of a booting process using a PCR signature kernel transmitted from the kernel generator 113 can do. That is, the processor 210 performs integrity verification in the entire boot process using the PCR signature value transmitted from the verification server 100 as shown in FIG. 2, and executes the operating system of the management terminal 200 according to the verification result You can decide whether or not.

도 5는 본 발명의 일 실시 예에 따른 관리용 단말(200)의 프로세서(210)의 동작 과정을 나타낸 블록도이다.5 is a block diagram illustrating an operation process of the processor 210 of the management terminal 200 according to an embodiment of the present invention.

이하에서는 도 5를 참조하여 프로세서(210)에 의한 무결성 검증 과정을 보다 구체적으로 살펴보도록 한다.Hereinafter, the integrity verification process by the processor 210 will be described in more detail with reference to FIG. 5.

도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 소정의 보안 부팅 환경에서 관리용 단말(200)의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행할 수 있다. Referring to FIG. 5, the processor 210 according to an embodiment of the present invention uses a public key stored in the firmware of the management terminal 200 in a predetermined secure boot environment using a public key. You can verify the binary value for the boot loader.

예를 들어, 프로세서(210)는 UEFI 보안 부팅 환경에서 펌웨어에 저장된 공개키를 사용하여 리눅스 환경의 부팅을 위한 구성요소들(ex. Grub 부트로더, OS 커널 및 Initrd 등)을 확인하기 위해 제 1 부트로더인 shim 부트로더를 채택할 수 있다. 제 1 부트로더인 shim 부트로더는 shim lock 검증(shim lock verificaiton)이라고 하는 펌웨어 키 검증 기능을 정의한다. 즉, 프로세서(210)는 shim lock 검증을 이용하여 펌웨어에 저장된 공개키로 리눅스 환경의 부팅을 위한 구성요소들을 확인할 수 있다.For example, the processor 210 uses the public key stored in the firmware in the UEFI secure boot environment to identify components (eg, Grub bootloader, OS kernel and Initrd) for booting the Linux environment. The boot loader shim boot loader can be adopted. The first boot loader, the shim boot loader, defines a firmware key verification function called shim lock verification. That is, the processor 210 can verify components for booting the Linux environment with a public key stored in the firmware using shim lock verification.

여기서 펌웨어에 저장된 공개키는 전술한 검증 서버(100)의 개인키에 대응되는 것으로 검증 서버(100)로부터 전달된 무결성 값의 암호를 해독하는데 사용될 수 있다. 이때, 관리용 단말(200)은 시스템으로의 등록 과정에서 공개키를 미리 검증 서버(100)로부터 전달받아 펌웨어의 데이터베이스에 저장할 수 있다.Here, the public key stored in the firmware corresponds to the private key of the above-described verification server 100, and can be used to decrypt the integrity value transmitted from the verification server 100. At this time, the management terminal 200 may receive the public key from the verification server 100 in advance in the registration process with the system and store it in the firmware database.

본 발명의 일 실시 예에 따른 프로세서(210)는, 소정의 보안 부팅 환경에서 TPM을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성할 수 있다.The processor 210 according to an embodiment of the present invention measures the PCR values for the first boot loader and the second boot loader by using the TPM in a predetermined secure boot environment, and the entire boot of the management terminal 200 You can create a chain-of-trust value that represents the process.

TPM은 부팅단계에서부터 중요한 실행단계마다 실행되는 소프트웨어의 무결성 정보와 중요한 시스템 상태 정보에 대한 해시값을 구성하여 PCR에 저장하는 보안 모듈이다. 이러한 TPM에는 무결성 검증을 위한 측정값을 저장하는 복수개의 PCR이 존재하는데, 본 발명의 일 실시 예에 따른 프로세서(210)는 PCR을 소정의 개수만큼 확장시켜 사용할 수 있다.The TPM is a security module that configures and stores hash values for the integrity information of the software and important system state information that are executed at each critical execution stage from the boot stage. There are a plurality of PCRs that store measurement values for integrity verification in the TPM, and the processor 210 according to an embodiment of the present invention can extend and use PCRs by a predetermined number.

예를 들어, 프로세서(210)는 TPM의 PCR0에서 PCR12까지를 사용할 수 있으며, 각각의 PCR을 통해 저장되는 값들은 다음의 [표 1]과 같이 정의될 수 있다.For example, the processor 210 may use PCR0 to PCR12 of the TPM, and values stored through each PCR may be defined as in [Table 1] below.

[표 1][Table 1]

Figure 112019024878902-pat00002
Figure 112019024878902-pat00002

[표 1]을 참조하면, 무결성 검증을 위한 추가적인 TPM 측정이 제 1 부트로더인 shim 부트로더, 제 2 부트로더인 Grub 부트로더에 대해 추가적으로 수행될 수 있다. 즉, [표 1]에 설명된 PCR들 각각의 바이너리 값을 정확하게 측정하기 위해서, shim 부트로더에 포함된 initrd, Grub 부트로더 및 커널에 대한 측정이 수행될 수 있다.Referring to [Table 1], additional TPM measurement for integrity verification may be additionally performed on the first boot loader, the shim boot loader, and the second boot loader, the Grub boot loader. That is, in order to accurately measure the binary value of each of the PCRs described in [Table 1], measurements on initrd, Grub bootloader and kernel included in the shim bootloader can be performed.

[표 1]을 참조하면, TPM을 통해 UEFI 보안 부팅 환경에서 BIOS 및 하드웨어 구성에 대한 PCR 값이 PCR0에서 PCR7까지 연속적으로 측정되고, 제 1 부트로더인 shim 부트로더와 제 2 부트로더인 Grub 부트로더에 대한 PCR 값에 대한 측정이 PCR 8에서 PCR 12까지 확장될 수 있다. 최종적으로 PCR12에는 UEFI 보안 부팅 환경에서의 shim 부트로더와 grub 부트로더에 의한 부팅 과정 전체의 무결성 해시값이 저장될 수 있으며, 이는 전체 부팅 과정을 나타는 신뢰사슬 값에 해당한다. 이때, TPM을 통해 측정된 PCR12의 무결성 해시값(=신뢰사슬값)은 도 5와 같이 무결성 검증을 위한 비교값으로서 활용될 수 있다.Referring to [Table 1], the PCR values for BIOS and hardware configuration are continuously measured from PCR0 to PCR7 in the UEFI secure boot environment through TPM, the first bootloader shim bootloader and the second bootloader Grub boot Measurements of PCR values for the loader can be extended from PCR 8 to PCR 12. Finally, the integrity hash value of the entire boot process by the shim boot loader and the grub boot loader in the UEFI secure boot environment can be stored in PCR12, which corresponds to the trust chain value representing the entire boot process. At this time, the integrity hash value (= confidence chain value) of PCR12 measured through the TPM may be used as a comparison value for integrity verification as shown in FIG. 5.

도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 관리용 단말(200)의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출할 수 있다. 공개키는 검증 서버(100)의 개인키에 대응되므로, 프로세서(210)는 PCR 서명 커널의 디지털 서명에 포함된 t-PCR 값에 대한 암호 해독을 통해 t-PCR 값을 도출해낼 수 있다. 이와 같이 도출된 t-PCR 값은 무결성 검증을 위한 기준값으로서 활용될 수 있다.Referring to FIG. 5, the processor 210 according to an embodiment of the present invention performs decryption on a digital signature of a PCR signature kernel using a public key stored in the firmware of the management terminal 200 and t- PCR values can be extracted. Since the public key corresponds to the private key of the verification server 100, the processor 210 can derive the t-PCR value through decryption of the t-PCR value included in the digital signature of the PCR signature kernel. The derived t-PCR value can be used as a reference value for integrity verification.

도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 추출된 t-PCR 값과 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행할 수 있다. 예를 들어, 프로세서(210)는 t-PCR 값이 신뢰사슬 값(ex. TPM을 이용하여 측정된 PCR12의 무결성 해시값)이 일치하는 경우, 나머지 부팅 과정이 그대로 진행될 수 있도록 할 수 있다. 반면, t-PCR 값이 신뢰사슬 값(ex. TPM을 이용하여 측정된 PCR12의 무결성 해시값)이 일치하지 않는 경우, 보안상의 문제가 발생한 것으로 판단하여 부팅이 더 이상 진행되지 않도록 제어할 수 있다. 즉, 프로세서(210)는 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.Referring to FIG. 5, the processor 210 according to an embodiment of the present invention compares the extracted t-PCR value with a confidence chain value representing the entire booting process of the management terminal 200 to integrity the booting process Verification can be performed. For example, when the t-PCR value matches the confidence chain value (eg, the integrity hash value of PCR12 measured using TPM), the processor 210 may allow the rest of the booting process to proceed. On the other hand, if the t-PCR value does not match the confidence chain value (ex. The integrity hash value of PCR12 measured using TPM), it is determined that a security problem has occurred and it can be controlled to prevent further booting. . That is, the processor 210 may allow execution of the kernel in the boot process only when the t-PCR value and the confidence chain value match.

이하에서는 도 6 및 도 7을 참조하여 전술한 무결성 검증 시스템에 대한 실험 결과에 대해 살펴보도록 한다.Hereinafter, with reference to FIGS. 6 and 7, the experimental results for the above-described integrity verification system will be described.

도 6은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 부팅 구성에 따른 PCR 값의 변화를 나타낸 표이다. 즉, 도 6은 하드웨어, BIOS 구성 및 실행된 커널에 따른 PCR 값의 변화를 나타낸다. 6 is a table showing changes in PCR values according to a boot configuration of an integrity verification system according to an embodiment of the present invention. That is, Figure 6 shows the change of the PCR value according to the hardware, BIOS configuration and the executed kernel.

도 6을 참조하면, A와 B의 비교는 커널 업데이트로 인한 PCR 값의 변화를 보여준다. 하드웨어에 대한 업데이트 결과, 바이너리 내용과 커널 로딩 명령이 수정되었기 때문에 PCR8, PCR11 및 PCR12가 변경됨을 확인할 수 있다.Referring to FIG. 6, comparison of A and B shows a change in PCR value due to kernel update. As a result of updating the hardware, it can be confirmed that PCR8, PCR11 and PCR12 are changed because the binary contents and the kernel loading command have been modified.

B와 C의 비교는 BIOS 수정으로 인한 PCR 값의 변화를 보여준다. 이에 따라 PCR7 및 PCR12가 변경됨을 확인할 수 있다. 또한, 보안 부팅 환경이 오프됨에 따라 펌웨어 키를 이용한 shim 부트로더의 검증이 비활성화됨으로써, PCR 11에 대한 측정이 수행되지 않았음을 확인할 수 있다.Comparison of B and C shows the change in PCR value due to BIOS modification. Accordingly, it can be confirmed that PCR7 and PCR12 are changed. In addition, as the secure boot environment is turned off, verification of the shim boot loader using the firmware key is deactivated, so it can be confirmed that the measurement for PCR 11 has not been performed.

C와 D의 비교는 PCR1과 PCR5에 대해 서로 다른 PCR 값을 가지는 하드웨어에 의한 변화를 보여준다. A, B, C 및 D 모두 동일한 Grub 바이너리 및 모듈을 사용했기 때문에 PCR9 및 PCR10의 측정값이 모두 동일함을 확인할 수 있다.Comparison of C and D shows the change by hardware having different PCR values for PCR1 and PCR5. Since A, B, C and D all used the same Grub binary and module, it can be confirmed that the measured values of PCR9 and PCR10 are all the same.

전술한 비교를 통해 각각의 부팅 조건이 달라짐에 따라 PCR12의 값은 각각 고유한 값을 가짐을 알 수 있다. 즉, 전체 부팅 과정을 나타내는 고유한 PCR12의 측정값을 통해 종래 대비 보안성이 강화된 무결성 검증이 수행될 수 있음을 확인할 수 있다.Through the above-described comparison, it can be seen that as each boot condition is changed, the values of PCR12 have unique values. That is, it can be confirmed that integrity verification with enhanced security compared to the prior art can be performed through the measurement value of the unique PCR12 indicating the entire booting process.

도 7은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 업데이트를 기준으로 한 화이트리스트 값의 변화를 나타낸 표이다. 즉, 도 7은 화이트 리스트 값 및 무결성 값의 업데이트 반영 여부를 검증한 결과를 나타낸다.7 is a table showing changes in whitelist values based on an update of the integrity verification system according to an embodiment of the present invention. That is, FIG. 7 shows a result of verifying whether to update the white list value and the integrity value.

검증 과정의 단순화를 위해 나머지 PCR을 제외한 PCR12에 대한 실험을 수행하였으며, Ubuntu 16.04의 부팅 과정에 따라 측정 구성을 정의하였다.To simplify the verification process, experiments were performed on PCR12 excluding the rest of the PCR, and the measurement configuration was defined according to the booting process of Ubuntu 16.04.

도 7의 A는 업데이트 전 화이트리스트 값의 데이터베이스(120), 도 7의 B는 t-PCR 값의 계산 결과, 도 7의 C는 업데이트된 화이트리스트 값의 데이터베이스(120)를 나타낸다. 도 7의 C를 확인하면, 업데이트 내용에 따라 추정된 t-PCR 값이 데이터베이스(120) 상에 반영된 것을 확인할 수 있다. 즉, 본 발명의 일 실시 예에 따른 무결성 검증 시스템에 의해 업데이트된 사항이 화이트리스트 값 및 무결성 값인 t-PCR 값에 반영됨을 확인할 수 있다.7A is a database 120 of whitelist values before update, B of FIG. 7 is a calculation result of t-PCR values, and C of FIG. 7 is database 120 of updated whitelist values. 7C, it can be confirmed that the estimated t-PCR value is reflected on the database 120 according to the update contents. That is, it can be confirmed that the updated items by the integrity verification system according to an embodiment of the present invention are reflected in the white list value and the integrity value of t-PCR.

도 8은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말(200)의 업데이트 방법에 대한 순서도이다.8 is a flowchart of a method for updating a terminal 200 for managing an integrity verification system according to an embodiment of the present invention.

도 8을 참조하면, 본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(200)의 업데이트 방법은, 관리용 단말(200)로부터 검증 서버(100)로 새로운 커널(Kernel)에 대한 업데이트가 요청되면, 검증 서버(100)의 무결성 관리부(110)의 저장부(111)에서 관리용 단말(200)의 등록 정보를 확인하는 단계(S110), 무결성 관리부(110)의 업데이트부(112)에서 확인된 관리용 단말(200)의 등록 정보에 기초하여 업데이트를 위한 화이트리스트(Whitelist) 값 및 t-PCR(trusted Paltform Configuration Register) 값을 추정하는 단계(S120) 및 무결성 관리부(110)의 커널 생성부(113)에서 추정된 t-PCR 값을 기초로 업데이트를 위한 PCR 서명 커널(PCR-signed Kernel)을 생성하고, 생성된 PCR 서명 커널을 관리용 단말(200)로 전달하는 단계(S130)를 포함할 수 있다.Referring to FIG. 8, an update method of the management terminal 200 of the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention is performed from the management terminal 200 to the verification server 100. When an update for a new kernel is requested, checking the registration information of the management terminal 200 in the storage 111 of the integrity management unit 110 of the verification server 100 (S110), the integrity management unit ( Estimating the whitelist value for updating and the trusted Paltform Configuration Register (t-PCR) value based on the registration information of the management terminal 200 identified in the update unit 112 of 110 (S120) And a PCR signature kernel for updating based on the t-PCR value estimated by the kernel generation unit 113 of the integrity management unit 110, and the generated PCR signature kernel for the management terminal 200 It may include the step of passing to (S130).

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(200)의 업데이트 방법에서 화이트리스트 값 및 t-PCR 값을 추정하는 단계(S120)에서는, 업데이트부(112)가 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 화이트리스트 값 및 t-PCR 값을 추정할 수 있다.In the step (S120) of estimating the whitelist value and the t-PCR value in the update method of the management terminal 200 of the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention, the update unit ( 112) may estimate the white list value and the t-PCR value through the extended operation of the PCR value using a predetermined secure hash algorithm (SHA).

도 9는 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말(200)의 무결성 검증 방법에 대한 순서도이다.9 is a flowchart of an integrity verification method of a terminal 200 for managing an integrity verification system according to an embodiment of the present invention.

도 9를 참조하면, 본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(200)의 무결성 검증 방법에 있어서, 관리용 단말(200)의 프로세서(210)가 소정의 보안 부팅 환경에서 관리용 단말(200)의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 단계(S210), 프로세서(210)가 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 단계(S220), 프로세서(210)가 관리용 단말(200)의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출하는 단계(S230) 및 프로세서(210)가 추출된 t-PCR 값과 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하는 단계(S240)를 포함할 수 있다.Referring to FIG. 9, in the integrity verification method of the management terminal 200 of the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention, the processor 210 of the management terminal 200 Performing a verification of the binary value for the first boot loader using a public key stored in the firmware of the management terminal 200 in a predetermined secure boot environment (S210), processor 210 ) Measures a PCR value for the first boot loader and the second boot loader using a Trusted Platfrom Module (TPM) in a predetermined secure boot environment, and a chain of trust indicating the entire booting process of the management terminal 200 Step of generating a value of -of-trust (S220), the processor 210 decrypts the digital signature of the PCR signature kernel using the public key stored in the firmware of the management terminal 200, and t-PCR Step of extracting the value (S230) and the processor It may include the step (S240) of performing integrity verification of the boot process by comparing the extracted t-PCR value with the trust chain value representing the entire boot process of the management terminal 200.

본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(200)의 무결성 검증 방법에서 부팅 과정에 대한 무결성 검증을 수행하는 단계(S240)에서는, 프로세서(210)가 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.In the step of performing integrity verification of the booting process in the integrity verification method of the terminal 200 for managing the integrity verification system for the booting process in the Linux environment according to an embodiment of the present invention (S240), the processor 210 Only when the t-PCR value and the confidence chain value match can the kernel be executed during the boot process.

본 발명의 일 실시 예에 따른 방법과 관련하여서는 전술한 시스템에 대한 내용이 적용될 수 있다. 따라서, 방법과 관련하여, 전술한 시스템에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.With respect to the method according to an embodiment of the present invention, the contents of the above-described system may be applied. Therefore, with respect to the method, descriptions of contents identical to those of the above-described system are omitted.

한편, 본 발명의 일 실시 예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다. 다시 말해서, 전술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터 판독 가능 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 본 발명의 다양한 방법들을 수행하기 위한 실행 가능한 컴퓨터 프로그램이나 코드를 기록하는 기록 매체는, 반송파(carrier waves)나 신호들과 같이 일시적인 대상들은 포함하는 것으로 이해되지는 않아야 한다. 상기 컴퓨터 판독 가능 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, DVD 등)와 같은 저장 매체를 포함할 수 있다.On the other hand, according to an embodiment of the present invention, it is possible to provide a recording medium readable by a computer recording a program for executing the above-described method on a computer. In other words, the above-described method can be written in a program executable on a computer, and can be implemented in a general-purpose digital computer that operates the program using a computer-readable medium. Further, the structure of the data used in the above-described method can be recorded on a computer-readable medium through various means. It should not be understood that a recording medium that records an executable computer program or code for performing various methods of the present invention includes temporary objects such as carrier waves or signals. The computer-readable medium may include a storage medium such as a magnetic storage medium (eg, ROM, floppy disk, hard disk, etc.) or an optical read medium (eg, CD-ROM, DVD, etc.).

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration only, and those skilled in the art to which the present invention pertains can understand that the present invention 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 distributed manner, and similarly, 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 detailed description, and all changes or modifications derived from the meaning and scope of the claims and their equivalent concepts should be interpreted to be included in the scope of the present invention. .

100: 검증 서버 110: 무결성 관리부
111: 저장부 112: 업데이트부
113: 커널 생성부 120: 검증 서버의 데이터베이스
200: 관리용 단말 210: 프로세서
100: verification server 110: integrity management
111: storage unit 112: update unit
113: kernel generation unit 120: database of the verification server
200: management terminal 210: processor

Claims (12)

리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템에 있어서,
관리용 단말과 연동 가능하며, 무결성 관리부를 통해 상기 관리용 단말의 업데이트 정보를 상기 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버를 포함하되,
상기 무결성 관리부는,
무결성 검증을 위한 개인키(Private key) 및 상기 관리용 단말에 대한 커널(Kernel) 및 부트로더(Bootloader)의 바이너리(Binary) 값을 관리하는 저장부;
상기 바이너리 값에 따른 화이트리스트(Whitelist) 값과 t-PCR(trusted Paltform Configuration Register) 값을 추정하고, 상기 추정된 화이트리스트 값을 상기 검증 서버의 데이터베이스에 저장하는 업데이트부; 및
상기 t-PCR 값을 기초로 상기 부팅 과정의 무결성 검증을 위한 PCR 서명 커널(PCR-signed kernel)을 생성하는 커널 생성부를 포함하며,
상기 관리용 단말은,
상기 커널 생성부로부터 전달된 PCR 서명 커널을 이용하여 상기 부팅 과정의 무결성을 검증하는 프로세서를 포함하는 것을 특징으로 하는 무결성 검증 시스템.
In the integrity verification system for the boot process in the Linux environment,
It is possible to interwork with the management terminal, and includes a verification server that reflects the update information of the management terminal to the integrity verification for the boot process through the integrity management unit,
The integrity management unit,
A storage unit that manages a private key for integrity verification and a binary value of a kernel and a bootloader for the management terminal;
An update unit for estimating a whitelist value and a trusted Paltform Configuration Register (t-PCR) value according to the binary value, and storing the estimated whitelist value in a database of the verification server; And
And a kernel generation unit generating a PCR-signed kernel for verifying the integrity of the booting process based on the t-PCR value.
The management terminal,
And a processor for verifying the integrity of the boot process using the PCR signature kernel delivered from the kernel generator.
제 1 항에 있어서,
상기 업데이트부는,
소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 상기 화이트리스트 값 및 t-PCR 값을 추정하는 것을 특징으로 하는 무결성 검증 시스템.
According to claim 1,
The update unit,
An integrity verification system characterized by estimating the whitelist value and t-PCR value through an extended operation of PCR values using a predetermined secure hash algorithm (SHA).
제 1 항에 있어서,
상기 PCR 서명 커널은,
커널 이미지 및 상기 개인키로 암호화된 t-PCR 값이 저장된 디지털 서명을 포함하는 것을 특징으로 하는 무결성 검증 시스템.
According to claim 1,
The PCR signature kernel,
And a digital signature in which a t-PCR value encrypted with the kernel image and the private key is stored.
제 1 항에 있어서,
상기 프로세서는,
소정의 보안 부팅 환경에서 상기 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 것을 특징으로 하는 무결성 검증 시스템.
According to claim 1,
The processor,
Integrity verification system, characterized in that for performing a verification of the binary value for the first boot loader using a public key (Public Key) stored in the firmware (Firmware) of the management terminal in a predetermined secure boot environment.
제 1 항에 있어서,
상기 프로세서는,
소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 상기 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 것을 특징으로 하는 무결성 검증 시스템.
According to claim 1,
The processor,
Chain-of-trust indicating the entire booting process of the management terminal by measuring PCR values for the first boot loader and the second boot loader using a Trusted Platfrom Module (TPM) in a predetermined secure boot environment. ) A system for verifying integrity characterized by generating a value.
제 1 항에 있어서,
상기 프로세서는,
상기 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 상기 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, 상기 t-PCR 값을 추출하는 것을 특징으로 하는 무결성 검증 시스템.
According to claim 1,
The processor,
Integrity verification system, characterized in that decrypting the digital signature of the PCR signature kernel using the public key stored in the firmware of the management terminal, and extracting the t-PCR value.
제 6 항에 있어서,
상기 프로세서는,
상기 추출된 t-PCR 값과 상기 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 상기 부팅 과정에 대한 무결성 검증을 수행하며,
상기 t-PCR 값과 상기 신뢰사슬 값이 일치하는 경우에만 상기 부팅 과정에서 커널의 실행을 허용하는 것을 특징으로 하는 무결성 검증 시스템.
The method of claim 6,
The processor,
Integrity verification of the boot process is performed by comparing the extracted t-PCR value with a trust chain value representing the entire boot process of the management terminal,
An integrity verification system characterized in that the kernel is allowed to be executed in the booting process only when the t-PCR value and the trust chain value match.
리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 업데이트 방법에 있어서,
상기 관리용 단말로부터 검증 서버로 새로운 커널(Kernel)에 대한 업데이트가 요청되면, 상기 검증 서버의 무결성 관리부의 저장부에서 상기 관리용 단말의 등록 정보를 확인하는 단계;
상기 무결성 관리부의 업데이트부에서 상기 확인된 관리용 단말의 등록 정보에 기초하여 상기 업데이트를 위한 화이트리스트(Whitelist) 값 및 t-PCR(trusted Paltform Configuration Register) 값을 추정하는 단계; 및
상기 무결성 관리부의 커널 생성부에서 상기 추정된 t-PCR 값을 기초로 상기 업데이트를 위한 PCR 서명 커널(PCR-signed Kernel)을 생성하고, 상기 생성된 PCR 서명 커널을 상기 관리용 단말로 전달하는 단계를 포함하는 것을 특징으로 하는 커널 업데이트 방법.
In the method of updating the terminal for managing the integrity verification system for the booting process in the Linux environment,
When an update for a new kernel is requested from the management terminal to a verification server, checking registration information of the management terminal in a storage unit of the integrity management unit of the verification server;
Estimating a whitelist value and a trusted Paltform Configuration Register (t-PCR) value for the update based on the identified registration information of the management terminal in the update unit of the integrity management unit; And
Generating a PCR signature kernel (PCR-signed Kernel) for the update based on the estimated t-PCR value in the kernel generation unit of the integrity management unit, and passing the generated PCR signature kernel to the management terminal Kernel update method comprising a.
제 8 항에 있어서,
상기 화이트리스트 값 및 t-PCR 값을 추정하는 단계에서는,
상기 업데이트부가 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 상기 화이트리스트 값 및 t-PCR 값을 추정하는 것을 특징으로 하는 커널 업데이트 방법.
The method of claim 8,
In the estimating the white list value and t-PCR value,
Kernel update method, characterized in that the update unit estimates the white list value and the t-PCR value through an extended operation of a PCR value using a predetermined secure hash algorithm (Secure Hash Algorithm, SHA).
리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에 있어서,
상기 관리용 단말의 프로세서가 소정의 보안 부팅 환경에서 상기 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 단계;
상기 프로세서가 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 상기 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 단계;
상기 프로세서가 상기 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 상기 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출하는 단계; 및
상기 프로세서가 추출된 t-PCR 값과 상기 관리용 단말의 전체 부팅 과정을 나타내는 상기 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하는 단계를 포함하는 것을 특징으로 하는 무결성 검증 방법.
In the integrity verification method of the management terminal of the integrity verification system for the boot process in the Linux environment,
The processor of the management terminal performs verification of the binary value for the first boot loader using a public key stored in the firmware of the management terminal in a predetermined secure boot environment;
The processor measures PCR values for the first boot loader and the second boot loader using a Trusted Platfrom Module (TPM) in a predetermined secure boot environment, and a chain of trust indicating the entire booting process of the management terminal (Chain- generating a value of-trust);
A step in which the processor decrypts the digital signature of the PCR signature kernel using a public key stored in the firmware of the management terminal, and extracts a t-PCR value; And
And comparing the t-PCR value extracted by the processor with the trust chain value representing the entire booting process of the management terminal, and performing integrity verification of the booting process.
제 10 항에 있어서,
상기 부팅 과정에 대한 무결성 검증을 수행하는 단계에서는,
상기 프로세서가 상기 t-PCR 값과 상기 신뢰사슬 값이 일치하는 경우에만 상기 부팅 과정에서 커널의 실행을 허용하는 것을 특징으로 하는 무결성 검증 방법.
The method of claim 10,
In the step of performing integrity verification for the boot process,
And the processor allows execution of the kernel during the boot process only when the t-PCR value and the trust chain value match.
제 8 항 내지 제 11 항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.A computer-readable recording medium in which a program for implementing the method of any one of claims 8 to 11 is recorded.
KR1020190027745A 2019-03-11 2019-03-11 Integrity verification system for boot process in linux and update and integrity verification method of managed machine KR102111327B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190027745A KR102111327B1 (en) 2019-03-11 2019-03-11 Integrity verification system for boot process in linux and update and integrity verification method of managed machine

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190027745A KR102111327B1 (en) 2019-03-11 2019-03-11 Integrity verification system for boot process in linux and update and integrity verification method of managed machine

Publications (1)

Publication Number Publication Date
KR102111327B1 true KR102111327B1 (en) 2020-05-15

Family

ID=70678905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190027745A KR102111327B1 (en) 2019-03-11 2019-03-11 Integrity verification system for boot process in linux and update and integrity verification method of managed machine

Country Status (1)

Country Link
KR (1) KR102111327B1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001118A (en) * 2020-06-29 2022-01-05 단국대학교 산학협력단 A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
CN117272317A (en) * 2023-09-25 2023-12-22 中汽智联技术有限公司 System safety starting method, electronic equipment and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060094171A (en) 2005-02-23 2006-08-29 삼성전자주식회사 Apparatus for verifying memory integrity remotely for mobile platform and system thereof and method for verifying integrity
KR20080057917A (en) * 2006-12-21 2008-06-25 주식회사 레드게이트 Method for real-time integrity check and audit trail connected with the security kernel
KR101064164B1 (en) * 2011-03-02 2011-09-15 (주)아이넷캅 Kernel integrity inspection and the recovery method on linux kernel based smart platform
KR20130097444A (en) * 2012-02-24 2013-09-03 삼성전자주식회사 Method and apparatus for securing integrity of mobile termninal

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060094171A (en) 2005-02-23 2006-08-29 삼성전자주식회사 Apparatus for verifying memory integrity remotely for mobile platform and system thereof and method for verifying integrity
KR20080057917A (en) * 2006-12-21 2008-06-25 주식회사 레드게이트 Method for real-time integrity check and audit trail connected with the security kernel
KR101064164B1 (en) * 2011-03-02 2011-09-15 (주)아이넷캅 Kernel integrity inspection and the recovery method on linux kernel based smart platform
KR20130097444A (en) * 2012-02-24 2013-09-03 삼성전자주식회사 Method and apparatus for securing integrity of mobile termninal

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001118A (en) * 2020-06-29 2022-01-05 단국대학교 산학협력단 A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
KR102369874B1 (en) * 2020-06-29 2022-03-03 단국대학교 산학협력단 A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
CN117272317A (en) * 2023-09-25 2023-12-22 中汽智联技术有限公司 System safety starting method, electronic equipment and storage medium
CN117272317B (en) * 2023-09-25 2024-02-23 中汽智联技术有限公司 System safety starting method, electronic equipment and storage medium

Similar Documents

Publication Publication Date Title
US11176255B2 (en) Securely booting a service processor and monitoring service processor integrity
US8938618B2 (en) Device booting with an initial protection component
US10397230B2 (en) Service processor and system with secure booting and monitoring of service processor integrity
US9053323B2 (en) Trusted component update system and method
US8296579B2 (en) System and method for updating a basic input/output system (BIOS)
US7634661B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US7577840B2 (en) Transferring application secrets in a trusted operating system environment
US8850212B2 (en) Extending an integrity measurement
US7159240B2 (en) Operating system upgrades in a trusted operating system environment
Kühn et al. Realizing property-based attestation and sealing with commonly available hard-and software
US20060015732A1 (en) Processing system using internal digital signatures
US8689318B2 (en) Trusted computing entities
US10915632B2 (en) Handling of remote attestation and sealing during concurrent update
KR101805310B1 (en) User apparatus based on trusted platform module and firmware updating method using the same
KR101968382B1 (en) User apparatus based on trusted platform module and booting method using the same
KR102111327B1 (en) Integrity verification system for boot process in linux and update and integrity verification method of managed machine
US11232209B2 (en) Trojan detection in cryptographic hardware adapters
Sisinni Verification of Software Integrity in Distributed Systems
KR102369874B1 (en) A system for remote attestation, os deployment server, attestation target device and method for updating operating system and integrity information simultaneously
US20230106491A1 (en) Security dominion of computing device
Lee et al. Tux: Trust Update on Linux Booting
US20240037216A1 (en) Systems And Methods For Creating Trustworthy Orchestration Instructions Within A Containerized Computing Environment For Validation Within An Alternate Computing Environment
CN115878122A (en) Corruption determination for data items used by build servers

Legal Events

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