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 PDFInfo
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/575—Secure boot
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0877—Generation 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]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic 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
Description
본 발명은 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법에 관한 것으로, 더욱 상세하게는 관리용 단말의 업데이트를 반영하여 무결성을 유지하고, 악성 사용자에 의한 해킹 또는 수정과 업데이트를 구별하여 전체 부팅 과정에서 안전한 무결성 검증이 이루어질 수 있도록 하는 시스템 및 방법에 관한 것이다. 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.
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로서, 리눅스 환경의 컴퓨터 장치에 대한 보안 업데이트를 원격으로 관리하고, 무결성 검증 과정에 업데이트 내용을 반영할 수 있도록 함으로써, 컴퓨터 장치에 대한 무결성을 유지시킬 수 있는 시스템 및 방법을 제공함에 목적이 있다.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
도 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
즉, 본 발명의 일 실시 예에 따른 무결성 검증 시스템은, 검증 서버(100)를 통해 관리용 단말(200)을 등록하고, 등록된 관리용 단말(200)에 대한 업데이트 사항들을 즉각적으로 반영 및 관리함과 동시에 무결성 검증이 수행될 수 있도록 하는 원격 인증을 수행하여 리눅스 환경에서 부팅 과정의 무결성이 유지될 수 있도록 할 수 있다.That is, the integrity verification system according to an embodiment of the present invention registers the
전술한 검증 서버(100)는 무결성 검증부를 통해 관리용 단말(200)을 관리하는데, 무결성 검증부는 관리용 단말(200)을 투명하게 업데이트하고, 무결성 검증 과정에서 업데이트로 인해 의도하지 않은 검증 오류를 방지할 수 있다.The above-described
도 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
도 2를 참조하면, 본 발명의 일 실시 예에 따른 저장부(111)는, 관리용 단말(200)의 원격 검증을 위한 등록 정보를 관리하고, 무결성 관리부(110) 자체에서 암호화를 위해 소유하고 있는 개인키 및 수명 종료(End-Of-Life, EOL)가 명시되지 않은 유효한 커널과 부트로더의 바이너리 값을 관리할 수 있다. 즉, 저장부(111)에서 등록된 관리용 단말(200)에 대한 정보 및 커널 및 부트로더의 바이너리 값을 관리하므로, 검증 서버(100)는 관리용 단말(200)에서 사용되는 소프트웨어를 완전히 제어할 수 있다.Referring to FIG. 2, the
또한, 본 발명의 일 실시 예에 따른 저장부(111)는, 관리용 단말(200)의 무결성 관리 및 무결성 검증을 위한 무결성 값의 배포를 위해 업데이트부(112) 및 커널 생성부(113)에 바이너리 값을 제공한다. 업데이트부(112)에서는 저장부(111)로부터 제공된 바이너리 값에 기초하여 화이트리스트 값 및 무결성 검증의 기준값인 t-PCR 값을 추정할 수 있다.In addition, the
도 2를 참조하면, 본 발명의 일 실시 예에 따른 업데이트부(112)는, 관리용 단말(200)의 업데이트 정보를 반영하여 화이트리스트 값을 갱신하고, 무결성 값으로서의 t-PCR 값을 추정하여 커널 생성부(113)로 전달할 수 있다. 여기서 말하는 화이트리스트 값은 등록된 관리용 단말(200)의 업데이트를 관리하기 위한 데이터로서, 도 2를 참조하면, 화이트리스트 값에 포함된 측정 구성(Measurement Configuration)은 관리용 단말(200)의 전체 부팅 과정과 유사한 명령 시퀀스(Instruction Sequence)의 매니페스트(Manifest)를 의미한다. 또한, t-PCR 값은 관리용 단말(200)의 무결성 검증의 기준이 되는 무결성 값으로서, 측정 구성에서 선언된 전체 부팅 과정을 확장함으로써 계산된 양호한 무결성 값을 말한다.Referring to FIG. 2, the
본 발명의 일 실시 예에 따른 업데이트부(112)는, 저장부(111)로부터 제공된 바이너리 값에 기초하여 화이트리스트 값 및 무결성 검증의 기준값인 t-PCR 값을 추정할 수 있으며, 화이트리스트 값 및 t-PCR 값의 추정은 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 수행될 수 있다. The
예를 들어, 업데이트부(112)는 전술한 측정 구성에 따라 다음의 [수학식 1]과 같은 확장 연산을 통해 화이트리스트 값과 t-PCR 값을 추정할 수 있다.For example, the
[수학식 1][Equation 1]
이때, 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
도 2를 참조하면, 본 발명의 일 실시 예에 따른 커널 생성부(113)는, 업데이트부(112)에서 생성된 t-PCR 값이 포함된 PCR 서명 커널을 생성하기 위한 구성이다. 여기서 말하는 PCR 서명 커널은 시스템에 등록된 관리용 단말(200)의 무결성 정보가 들어있는 고유한 커널을 의미한다. 커널 생성부(113)는 t-PCR 값을 일반적인 다이제스트 해시(Digest Hash) 형태가 아닌 커널에 암호화된 서명의 형태로 포함시킴으로써, 무결성 값의 보안성을 보다 강화하고, 종래의 무결성 검증 방식과는 달리 부팅 과정 전체에 대한 무결성 검증이 수행될 수 있도록 할 수 있다.Referring to FIG. 2, the
예를 들어, 커널 생성부(113)는 저장부(111)로부터 전달된 개인키를 이용하여 업데이트부(112)로부터 전달된 t-PCR 값을 암호화할 수 있다. 커널 생성부(113)는 암호화된 t-PCR 값을 디지털 서명에 결합시킬 수 있으며, PCR 서명 커널을 생성하는 커널 바이너리 값에 추가시킬 수 있다. 이러한 과정을 통해 커널 생성부(113)는 암호화된 t-PCR 값이 서명된 PCR 서명 커널을 생성할 수 있다.For example, the
도 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
이하에서는 전술한 내용에 기초하여 검증 서버(100)에 의한 관리용 단말(200)의 업데이트 과정을 보다 구체적으로 살펴보도록 한다.Hereinafter, an update process of the
도 4는 본 발명의 일 실시 예에 따른 관리용 단말(200)의 업데이트 과정을 나타낸 개념도이다.4 is a conceptual diagram illustrating an update process of the
도 4를 참조하면, 먼저 관리용 단말(200)에서 정의된 커널 업데이트에 대한 저장소가 검증 서버(100)의 무결성 관리부(110)의 저장부(111)로 설정될 수 있다. 이에 따라 새로운 커널이 배포되면(i.e. 커널에 대한 업데이트가 수행되어야 하는 경우), 무결성 관리부(110)의 저장부(111)에서 새로운 커널에 대한 업데이트 수행에 대한 알림을 관리용 단말(200)로 전송할 수 있다.Referring to FIG. 4, first, the storage for the kernel update defined in the
알림을 수신한 관리용 단말(200)에서 검증 서버(100)로 업데이트가 요청되면, 검증 서버(100)의 무결성 관리부(110)의 저장부(111)는 관리용 단말(200)의 등록 정보를 확인할 수 있다. 이를 통해 본 발명의 일 실시 예에 따른 시스템을 이용하는 진정한 관리용 단말(200)에 해당하는지 여부를 확인할 수 있으며, 검증 서버(100)는 관리용 단말(200)의 업데이트 상태를 투명하게 인식할 수 있다.When an update is requested from the
관리용 단말(200)의 등록 정보가 확인되고 나면, 검증서버의 무결성 관리부(110)의 업데이트부(112)는 측정 구성을 설정하고, t-PCR 값을 추정할 수 있다. 이는 저장부(111)로부터 전달된 바이너리 값이 기초하여 수행되며, t-PCR 값과 함께 화이트리스트 값이 갱신됨으로써 검증 서버(100)는 관리용 단말(200)에 대한 가장 최신의 업데이트 정보를 유지할 수 있다.After the registration information of the
업데이트부(112)에 의해 추정된 t-PCR 값은 커널 생성부(113)로 전달되고, 커널 생성부(113)는 t-PCR 값을 개인키로 암호화하여 PCR 서명 커널을 생성하고, 이를 유무선 네트워크를 통해 관리용 단말(200)로 배포할 수 있다.The t-PCR value estimated by the
이러한 과정을 통해 관리용 단말(200)은 새로운 커널에 대한 업데이트를 수행함과 동시에 업데이트 정보가 반영된 PCR 서명 커널을 획득함으로써, 업데이트 이후에도 부팅 과정에서의 수정된 사항에 기초한 무결성 검증을 수행할 수 있다.Through this process, the
도 1을 참조하면, 본 발명의 일 실시 예에 따른 관리용 단말(200)은, 커널 생성부(113)로부터 전달된 PCR 서명 커널을 이용하여 부팅 과정의 무결성을 검증하는 프로세서(210)를 포함할 수 있다. 즉, 프로세서(210)는 도 2와 같이 검증 서버(100)로부터 전달된 PCR 서명 값을 이용하여 전체 부팅 과정에서의 무결성 검증을 수행하며, 검증 결과에 따라 관리용 단말(200)의 운영체제의 실행 여부를 결정할 수 있다.Referring to FIG. 1, the
도 5는 본 발명의 일 실시 예에 따른 관리용 단말(200)의 프로세서(210)의 동작 과정을 나타낸 블록도이다.5 is a block diagram illustrating an operation process of the
이하에서는 도 5를 참조하여 프로세서(210)에 의한 무결성 검증 과정을 보다 구체적으로 살펴보도록 한다.Hereinafter, the integrity verification process by the
도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 소정의 보안 부팅 환경에서 관리용 단말(200)의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행할 수 있다. Referring to FIG. 5, the
예를 들어, 프로세서(210)는 UEFI 보안 부팅 환경에서 펌웨어에 저장된 공개키를 사용하여 리눅스 환경의 부팅을 위한 구성요소들(ex. Grub 부트로더, OS 커널 및 Initrd 등)을 확인하기 위해 제 1 부트로더인 shim 부트로더를 채택할 수 있다. 제 1 부트로더인 shim 부트로더는 shim lock 검증(shim lock verificaiton)이라고 하는 펌웨어 키 검증 기능을 정의한다. 즉, 프로세서(210)는 shim lock 검증을 이용하여 펌웨어에 저장된 공개키로 리눅스 환경의 부팅을 위한 구성요소들을 확인할 수 있다.For example, the
여기서 펌웨어에 저장된 공개키는 전술한 검증 서버(100)의 개인키에 대응되는 것으로 검증 서버(100)로부터 전달된 무결성 값의 암호를 해독하는데 사용될 수 있다. 이때, 관리용 단말(200)은 시스템으로의 등록 과정에서 공개키를 미리 검증 서버(100)로부터 전달받아 펌웨어의 데이터베이스에 저장할 수 있다.Here, the public key stored in the firmware corresponds to the private key of the above-described
본 발명의 일 실시 예에 따른 프로세서(210)는, 소정의 보안 부팅 환경에서 TPM을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성할 수 있다.The
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
예를 들어, 프로세서(210)는 TPM의 PCR0에서 PCR12까지를 사용할 수 있으며, 각각의 PCR을 통해 저장되는 값들은 다음의 [표 1]과 같이 정의될 수 있다.For example, the
[표 1][Table 1]
[표 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
도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 관리용 단말(200)의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출할 수 있다. 공개키는 검증 서버(100)의 개인키에 대응되므로, 프로세서(210)는 PCR 서명 커널의 디지털 서명에 포함된 t-PCR 값에 대한 암호 해독을 통해 t-PCR 값을 도출해낼 수 있다. 이와 같이 도출된 t-PCR 값은 무결성 검증을 위한 기준값으로서 활용될 수 있다.Referring to FIG. 5, the
도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 추출된 t-PCR 값과 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행할 수 있다. 예를 들어, 프로세서(210)는 t-PCR 값이 신뢰사슬 값(ex. TPM을 이용하여 측정된 PCR12의 무결성 해시값)이 일치하는 경우, 나머지 부팅 과정이 그대로 진행될 수 있도록 할 수 있다. 반면, t-PCR 값이 신뢰사슬 값(ex. TPM을 이용하여 측정된 PCR12의 무결성 해시값)이 일치하지 않는 경우, 보안상의 문제가 발생한 것으로 판단하여 부팅이 더 이상 진행되지 않도록 제어할 수 있다. 즉, 프로세서(210)는 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.Referring to FIG. 5, the
이하에서는 도 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
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
도 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
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(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
도 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
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(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
본 발명의 일 실시 예에 따른 방법과 관련하여서는 전술한 시스템에 대한 내용이 적용될 수 있다. 따라서, 방법과 관련하여, 전술한 시스템에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.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.
상기 업데이트부는,
소정의 보안 해시 알고리즘(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).
상기 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.
상기 프로세서는,
소정의 보안 부팅 환경에서 상기 관리용 단말의 펌웨어(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.
상기 프로세서는,
소정의 보안 부팅 환경에서 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.
상기 프로세서는,
상기 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 상기 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.
상기 프로세서는,
상기 추출된 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.
상기 화이트리스트 값 및 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.
상기 부팅 과정에 대한 무결성 검증을 수행하는 단계에서는,
상기 프로세서가 상기 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.
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)
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)
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 |
-
2019
- 2019-03-11 KR KR1020190027745A patent/KR102111327B1/en active IP Right Grant
Patent Citations (4)
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)
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 |