KR102111327B1 - 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법 - Google Patents

리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법 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
English (en)
Inventor
유시환
이서호
이대훈
Original Assignee
단국대학교 산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 단국대학교 산학협력단 filed Critical 단국대학교 산학협력단
Priority to KR1020190027745A priority Critical patent/KR102111327B1/ko
Application granted granted Critical
Publication of KR102111327B1 publication Critical patent/KR102111327B1/ko

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

본 발명은 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법에 관한 것으로서, 본 발명의 일 실시 예에 따른 무결성 검증 시스템은, 관리용 단말과 연동 가능하며, 무결성 관리부를 통해 관리용 단말의 업데이트 정보를 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버를 포함하되, 무결성 관리부는, 무결성 검증을 위한 개인키(Private key) 및 관리용 단말에 대한 커널(Kernel) 및 부트로더(Bootloader)의 바이너리(Binary) 값을 관리하는 저장부, 바이너리 값에 따른 화이트리스트(Whitelist) 값과 t-PCR(trusted Paltform Configuration Register) 값을 추정하고, 추정된 화이트리스트 값을 검증 서버의 데이터베이스에 저장하는 업데이트부 및 t-PCR 값을 기초로 부팅 과정의 무결성 검증을 위한 PCR 서명 커널(PCR-signed kernel)을 생성하는 커널 생성부를 포함하며, 관리용 단말은, 커널 생성부로부터 전달된 PCR 서명 커널을 이용하여 부팅 과정의 무결성을 검증하는 프로세서를 포함할 수 있다.

Description

리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법{INTEGRITY VERIFICATION SYSTEM FOR BOOT PROCESS IN LINUX AND UPDATE AND INTEGRITY VERIFICATION METHOD OF MANAGED MACHINE}
본 발명은 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법에 관한 것으로, 더욱 상세하게는 관리용 단말의 업데이트를 반영하여 무결성을 유지하고, 악성 사용자에 의한 해킹 또는 수정과 업데이트를 구별하여 전체 부팅 과정에서 안전한 무결성 검증이 이루어질 수 있도록 하는 시스템 및 방법에 관한 것이다.
컴퓨터 환경에서 Spectre와 Meltdown과 같은 치명적인 보안 공격이 발생함에 따라 시스템 관리자는 보안 업데이트와 패치를 지속적으로 배포하고 있다. 보안 업데이트 적용은 무결성 유지 방식과 동일한 목표를 공유하여 시스템을 보호한다.
그러나, 이 둘은 모순 된 접근법을 취한다. 무결성 유지 방식은 시스템이 의도하지 않은 수정을 하지 못하도록 함으로써 시스템을 보호하지만, 보안 업데이트는 시스템을 수정하여 취약점을 완화하려고 한다. 이러한 패러독스로 인해 보안 업데이트를 적용하면 무결성이 유지되지 못하는 문제가 발생한다.
종래의 무결성 유지 방식 중 하나인 인텔의 Trusted Execution Technology(TXT)는 시스템의 업데이트 시 무결성 검증을 위한 설정값의 수정이 어렵고, 부트로더 중 하나인 Grub에 대한 공격 시에 무결성 검증의 우회가 가능하다는 문제가 존재한다.
또한, 인텔의 Open CIT는 제 3 자 인증의 원격 검증 방식을 통해 시스템의 무결성을 검증하지만, 업데이트 자체가 고려되지 않고, 악성 사용자의 직접적인 해킹에 취약하며, 업데이트 관리 기능을 위한 구성이 전혀 없다는 문제가 있다.
즉, 종래의 무결성 유지 방식들을 이용하면, 업데이트와 악성 사용자에 의한 수정을 구별할 수 없을 뿐만 아니라 업데이트에 따른 시스템의 수정 또는 변경으로 인해 무결성을 검증하지 못하는 문제가 발생한다.
또한, 종래의 무결성 유지 방식들은 리눅스 환경이 아닌 윈도우 환경에 적합하며, 부트로더에 대한 직접적인 수정 및 공격, 무결성이 보장되지 않더라도 부팅 과정이 진행되는 문제 등으로 인해 전체 부팅 과정에서의 무결성 및 신뢰성을 확보할 수 없는 문제가 존재한다.
대한민국 공개특허공보 제10-2006-0094171호 (2006.08.29)
본 발명은 전술한 바와 같은 문제점을 해결하기 위한 것으로서, 리눅스 환경의 컴퓨터 장치에 대한 보안 업데이트를 원격으로 관리하고, 무결성 검증 과정에 업데이트 내용을 반영할 수 있도록 함으로써, 컴퓨터 장치에 대한 무결성을 유지시킬 수 있는 시스템 및 방법을 제공함에 목적이 있다.
또한, TPM(Trusted Platform Module)을 이용하여 전체 부팅 과정을 측정한 결과와 커널의 디지털 서명에 포함된 PCR 값을 비교함으로써, 리눅스 환경에서의 모든 부팅 과정에 대한 견고한 무결성 검증이 수행되도록 하는 시스템 및 방법을 제공함에 목적이 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템은, 관리용 단말과 연동 가능하며, 무결성 관리부를 통해 관리용 단말의 업데이트 정보를 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버를 포함하되, 무결성 관리부는, 무결성 검증을 위한 개인키(Private key) 및 관리용 단말에 대한 커널(Kernel) 및 부트로더(Bootloader)의 바이너리(Binary) 값을 관리하는 저장부, 바이너리 값에 따른 화이트리스트(Whitelist) 값과 t-PCR(trusted Paltform Configuration Register) 값을 추정하고, 추정된 화이트리스트 값을 검증 서버의 데이터베이스에 저장하는 업데이트부 및 t-PCR 값을 기초로 부팅 과정의 무결성 검증을 위한 PCR 서명 커널(PCR-signed kernel)을 생성하는 커널 생성부를 포함하며, 관리용 단말은, 커널 생성부로부터 전달된 PCR 서명 커널을 이용하여 부팅 과정의 무결성을 검증하는 프로세서를 포함할 수 있다.
본 발명의 일 실시 예에 따른 업데이트부는, 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 화이트리스트 값 및 t-PCR 값을 추정할 수 있다.
본 발명의 일 실시 예에 따른 PCR 서명 커널은, 커널 이미지 및 개인키로 암호화된 t-PCR 값이 저장된 디지털 서명을 포함할 수 있다.
본 발명의 일 실시 예에 따른 프로세서는, 소정의 보안 부팅 환경에서 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행할 수 있다.
본 발명의 일 실시 예에 따른 프로세서는, 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성할 수 있다.
본 발명의 일 실시 예에 따른 프로세서는, 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출할 수 있다.
본 발명의 일 실시 예에 따른 프로세서는, 추출된 t-PCR 값과 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하며, t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 업데이트 방법은, 관리용 단말로부터 검증 서버로 새로운 커널(Kernel)에 대한 업데이트가 요청되면, 검증 서버의 무결성 관리부의 저장부에서 관리용 단말의 등록 정보를 확인하는 단계, 무결성 관리부의 업데이트부에서 확인된 관리용 단말의 등록 정보에 기초하여 업데이트를 위한 화이트리스트(Whitelist) 값 및 t-PCR(trusted Paltform Configuration Register) 값을 추정하는 단계 및 무결성 관리부의 커널 생성부에서 추정된 t-PCR 값을 기초로 업데이트를 위한 PCR 서명 커널(PCR-signed Kernel)을 생성하고, 생성된 PCR 서명 커널을 관리용 단말로 전달하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 업데이트 방법에서 화이트리스트 값 및 t-PCR 값을 추정하는 단계에서는, 업데이트부가 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 화이트리스트 값 및 t-PCR 값을 추정할 수 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에 있어서, 관리용 단말의 프로세서가 소정의 보안 부팅 환경에서 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 단계, 프로세서가 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 단계, 프로세서가 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출하는 단계 및 프로세서가 추출된 t-PCR 값과 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하는 단계를 포함할 수 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에서 부팅 과정에 대한 무결성 검증을 수행하는 단계에서는, 프로세서가 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.
한편, 본 발명의 일 실시 예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다.
본 발명의 일 실시 예로서 제공되는 시스템 및 방법에 따르면, 종래의 무결성 원격 검증과 달리 클라이언트(i.e. 관리용 단말)의 악성 수정 또는 업데이트를 구별할 수 있으며, 클라이언트의 업데이트 상태를 실시간으로 반영하여 잦은 업데이트에도 클라이언트의 무결성을 견고히 유지 및 관리할 수 있다.
또한, 본 발명의 일 실시 예로서 제공되는 시스템 및 방법에 따르면, 하드웨어 환경, BIOS(Basic Input Output System), 부트로더(ex. Shim, Grub 등), 실행된 부트로더의 명령 및 운영체제 커널의 바이너리를 검증하여 리눅스 환경에서 부팅 과정 전체에 대한 무결성을 보호하고, 견고하고 검증된 부팅 환경을 보장할 수 있다.
도 1은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 블록도이다.
도 2는 본 발명의 일 실시 예에 따른 검증 서버의 동작 과정을 나타낸 개념도이다.
도 3은 본 발명의 일 실시 예에 따른 PCR 서명 커널의 블록도이다.
도 4는 본 발명의 일 실시 예에 따른 관리용 단말의 업데이트 과정을 나타낸 개념도이다.
도 5는 본 발명의 일 실시 예에 따른 관리용 단말의 프로세서의 동작 과정을 나타낸 블록도이다.
도 6은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 부팅 구성에 따른 PCR 값의 변화를 나타낸 표이다.
도 7은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 업데이트를 기준으로 한 화이트리스트 값의 변화를 나타낸 표이다.
도 8은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말의 업데이트 방법에 대한 순서도이다.
도 9는 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에 대한 순서도이다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈", "프로세서" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시 예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 블록도이며, 도 2는 본 발명의 일 실시 예에 따른 검증 서버(100)의 동작 과정을 나타낸 개념도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템은, 무결성 검증이 필요한 컴퓨터 장치에 해당하는 관리용 단말(200) 및 무결성 관리부(110)를 통해 관리용 단말(200)의 업데이트 정보를 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버(100)를 포함할 수 있다.
즉, 본 발명의 일 실시 예에 따른 무결성 검증 시스템은, 검증 서버(100)를 통해 관리용 단말(200)을 등록하고, 등록된 관리용 단말(200)에 대한 업데이트 사항들을 즉각적으로 반영 및 관리함과 동시에 무결성 검증이 수행될 수 있도록 하는 원격 인증을 수행하여 리눅스 환경에서 부팅 과정의 무결성이 유지될 수 있도록 할 수 있다.
전술한 검증 서버(100)는 무결성 검증부를 통해 관리용 단말(200)을 관리하는데, 무결성 검증부는 관리용 단말(200)을 투명하게 업데이트하고, 무결성 검증 과정에서 업데이트로 인해 의도하지 않은 검증 오류를 방지할 수 있다.
도 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)를 포함할 수 있다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 저장부(111)는, 관리용 단말(200)의 원격 검증을 위한 등록 정보를 관리하고, 무결성 관리부(110) 자체에서 암호화를 위해 소유하고 있는 개인키 및 수명 종료(End-Of-Life, EOL)가 명시되지 않은 유효한 커널과 부트로더의 바이너리 값을 관리할 수 있다. 즉, 저장부(111)에서 등록된 관리용 단말(200)에 대한 정보 및 커널 및 부트로더의 바이너리 값을 관리하므로, 검증 서버(100)는 관리용 단말(200)에서 사용되는 소프트웨어를 완전히 제어할 수 있다.
또한, 본 발명의 일 실시 예에 따른 저장부(111)는, 관리용 단말(200)의 무결성 관리 및 무결성 검증을 위한 무결성 값의 배포를 위해 업데이트부(112) 및 커널 생성부(113)에 바이너리 값을 제공한다. 업데이트부(112)에서는 저장부(111)로부터 제공된 바이너리 값에 기초하여 화이트리스트 값 및 무결성 검증의 기준값인 t-PCR 값을 추정할 수 있다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 업데이트부(112)는, 관리용 단말(200)의 업데이트 정보를 반영하여 화이트리스트 값을 갱신하고, 무결성 값으로서의 t-PCR 값을 추정하여 커널 생성부(113)로 전달할 수 있다. 여기서 말하는 화이트리스트 값은 등록된 관리용 단말(200)의 업데이트를 관리하기 위한 데이터로서, 도 2를 참조하면, 화이트리스트 값에 포함된 측정 구성(Measurement Configuration)은 관리용 단말(200)의 전체 부팅 과정과 유사한 명령 시퀀스(Instruction Sequence)의 매니페스트(Manifest)를 의미한다. 또한, t-PCR 값은 관리용 단말(200)의 무결성 검증의 기준이 되는 무결성 값으로서, 측정 구성에서 선언된 전체 부팅 과정을 확장함으로써 계산된 양호한 무결성 값을 말한다.
본 발명의 일 실시 예에 따른 업데이트부(112)는, 저장부(111)로부터 제공된 바이너리 값에 기초하여 화이트리스트 값 및 무결성 검증의 기준값인 t-PCR 값을 추정할 수 있으며, 화이트리스트 값 및 t-PCR 값의 추정은 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 수행될 수 있다.
예를 들어, 업데이트부(112)는 전술한 측정 구성에 따라 다음의 [수학식 1]과 같은 확장 연산을 통해 화이트리스트 값과 t-PCR 값을 추정할 수 있다.
[수학식 1]
Figure 112019024878902-pat00001
이때, H() 함수는 TPM(Trusted Platfrom Module) 장치의 해시 함수로서, SHA-256 해시 알고리즘을 계산하며, 연결 연산자에 해당한다. 전술한 [수학식 1]을 참조하면, 확장 연산은 무결성 값을 확장하기 위해(i.e. 업데이트 정보가 반영된 t-PCR 값을 도출하기 위해) 업데이트 이전 단계의 PCR 값과 현재 단계의 데이터를 이용하여 수행된다.
전술한 연산 과정을 통해 추정된 화이트리스트 값은 검증 서버(100)의 데이터베이스(120)로 전달되어 갱신됨으로써, 검증 서버(100)는 시스템에 등록된 관리용 단말(200)의 업데이트 사항을 관리할 수 있다. 또한, 업데이트 사항이 반영된 무결성 값으로서 t-PCR 값은 커널 생성부(113)를 거쳐 관리용 단말(200)로 전달됨으로써, 시스템을 통해 업데이트가 반영된 무결성 검증이 수행될 수 있도록 할 수 있다.
도 2를 참조하면, 본 발명의 일 실시 예에 따른 커널 생성부(113)는, 업데이트부(112)에서 생성된 t-PCR 값이 포함된 PCR 서명 커널을 생성하기 위한 구성이다. 여기서 말하는 PCR 서명 커널은 시스템에 등록된 관리용 단말(200)의 무결성 정보가 들어있는 고유한 커널을 의미한다. 커널 생성부(113)는 t-PCR 값을 일반적인 다이제스트 해시(Digest Hash) 형태가 아닌 커널에 암호화된 서명의 형태로 포함시킴으로써, 무결성 값의 보안성을 보다 강화하고, 종래의 무결성 검증 방식과는 달리 부팅 과정 전체에 대한 무결성 검증이 수행될 수 있도록 할 수 있다.
예를 들어, 커널 생성부(113)는 저장부(111)로부터 전달된 개인키를 이용하여 업데이트부(112)로부터 전달된 t-PCR 값을 암호화할 수 있다. 커널 생성부(113)는 암호화된 t-PCR 값을 디지털 서명에 결합시킬 수 있으며, PCR 서명 커널을 생성하는 커널 바이너리 값에 추가시킬 수 있다. 이러한 과정을 통해 커널 생성부(113)는 암호화된 t-PCR 값이 서명된 PCR 서명 커널을 생성할 수 있다.
도 3은 본 발명의 일 실시 예에 따른 PCR 서명 커널의 블록도이다.
도 3을 참조하면, 본 발명의 일 실시 예에 따른 PCR 서명 커널은, 커널 이미지 및 개인키로 암호화된 t-PCR 값이 저장된 디지털 서명을 포함할 수 있다. 커널 이미지는 커널의 실행을 위한 필요 구성에 해당하며, 디지털 서명은 커널 생성부(113)에 의해 개인키로 암호화된 t-PCR 값을 포함하는 서명값에 해당한다. 이와 같이 구성되는 PCR 서명 커널은 커널 생성부(113)로부터 관리용 단말(200)로 전달되어 사용될 수 있으며, 관리용 단말(200)은 PCR 서명 커널의 디지털 서명에 대한 복화화를 통해 t-PCR 값을 추출하여 무결성 검증 과정에 활용할 수 있다.
이하에서는 전술한 내용에 기초하여 검증 서버(100)에 의한 관리용 단말(200)의 업데이트 과정을 보다 구체적으로 살펴보도록 한다.
도 4는 본 발명의 일 실시 예에 따른 관리용 단말(200)의 업데이트 과정을 나타낸 개념도이다.
도 4를 참조하면, 먼저 관리용 단말(200)에서 정의된 커널 업데이트에 대한 저장소가 검증 서버(100)의 무결성 관리부(110)의 저장부(111)로 설정될 수 있다. 이에 따라 새로운 커널이 배포되면(i.e. 커널에 대한 업데이트가 수행되어야 하는 경우), 무결성 관리부(110)의 저장부(111)에서 새로운 커널에 대한 업데이트 수행에 대한 알림을 관리용 단말(200)로 전송할 수 있다.
알림을 수신한 관리용 단말(200)에서 검증 서버(100)로 업데이트가 요청되면, 검증 서버(100)의 무결성 관리부(110)의 저장부(111)는 관리용 단말(200)의 등록 정보를 확인할 수 있다. 이를 통해 본 발명의 일 실시 예에 따른 시스템을 이용하는 진정한 관리용 단말(200)에 해당하는지 여부를 확인할 수 있으며, 검증 서버(100)는 관리용 단말(200)의 업데이트 상태를 투명하게 인식할 수 있다.
관리용 단말(200)의 등록 정보가 확인되고 나면, 검증서버의 무결성 관리부(110)의 업데이트부(112)는 측정 구성을 설정하고, t-PCR 값을 추정할 수 있다. 이는 저장부(111)로부터 전달된 바이너리 값이 기초하여 수행되며, t-PCR 값과 함께 화이트리스트 값이 갱신됨으로써 검증 서버(100)는 관리용 단말(200)에 대한 가장 최신의 업데이트 정보를 유지할 수 있다.
업데이트부(112)에 의해 추정된 t-PCR 값은 커널 생성부(113)로 전달되고, 커널 생성부(113)는 t-PCR 값을 개인키로 암호화하여 PCR 서명 커널을 생성하고, 이를 유무선 네트워크를 통해 관리용 단말(200)로 배포할 수 있다.
이러한 과정을 통해 관리용 단말(200)은 새로운 커널에 대한 업데이트를 수행함과 동시에 업데이트 정보가 반영된 PCR 서명 커널을 획득함으로써, 업데이트 이후에도 부팅 과정에서의 수정된 사항에 기초한 무결성 검증을 수행할 수 있다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 관리용 단말(200)은, 커널 생성부(113)로부터 전달된 PCR 서명 커널을 이용하여 부팅 과정의 무결성을 검증하는 프로세서(210)를 포함할 수 있다. 즉, 프로세서(210)는 도 2와 같이 검증 서버(100)로부터 전달된 PCR 서명 값을 이용하여 전체 부팅 과정에서의 무결성 검증을 수행하며, 검증 결과에 따라 관리용 단말(200)의 운영체제의 실행 여부를 결정할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 관리용 단말(200)의 프로세서(210)의 동작 과정을 나타낸 블록도이다.
이하에서는 도 5를 참조하여 프로세서(210)에 의한 무결성 검증 과정을 보다 구체적으로 살펴보도록 한다.
도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 소정의 보안 부팅 환경에서 관리용 단말(200)의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행할 수 있다.
예를 들어, 프로세서(210)는 UEFI 보안 부팅 환경에서 펌웨어에 저장된 공개키를 사용하여 리눅스 환경의 부팅을 위한 구성요소들(ex. Grub 부트로더, OS 커널 및 Initrd 등)을 확인하기 위해 제 1 부트로더인 shim 부트로더를 채택할 수 있다. 제 1 부트로더인 shim 부트로더는 shim lock 검증(shim lock verificaiton)이라고 하는 펌웨어 키 검증 기능을 정의한다. 즉, 프로세서(210)는 shim lock 검증을 이용하여 펌웨어에 저장된 공개키로 리눅스 환경의 부팅을 위한 구성요소들을 확인할 수 있다.
여기서 펌웨어에 저장된 공개키는 전술한 검증 서버(100)의 개인키에 대응되는 것으로 검증 서버(100)로부터 전달된 무결성 값의 암호를 해독하는데 사용될 수 있다. 이때, 관리용 단말(200)은 시스템으로의 등록 과정에서 공개키를 미리 검증 서버(100)로부터 전달받아 펌웨어의 데이터베이스에 저장할 수 있다.
본 발명의 일 실시 예에 따른 프로세서(210)는, 소정의 보안 부팅 환경에서 TPM을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성할 수 있다.
TPM은 부팅단계에서부터 중요한 실행단계마다 실행되는 소프트웨어의 무결성 정보와 중요한 시스템 상태 정보에 대한 해시값을 구성하여 PCR에 저장하는 보안 모듈이다. 이러한 TPM에는 무결성 검증을 위한 측정값을 저장하는 복수개의 PCR이 존재하는데, 본 발명의 일 실시 예에 따른 프로세서(210)는 PCR을 소정의 개수만큼 확장시켜 사용할 수 있다.
예를 들어, 프로세서(210)는 TPM의 PCR0에서 PCR12까지를 사용할 수 있으며, 각각의 PCR을 통해 저장되는 값들은 다음의 [표 1]과 같이 정의될 수 있다.
[표 1]
Figure 112019024878902-pat00002
[표 1]을 참조하면, 무결성 검증을 위한 추가적인 TPM 측정이 제 1 부트로더인 shim 부트로더, 제 2 부트로더인 Grub 부트로더에 대해 추가적으로 수행될 수 있다. 즉, [표 1]에 설명된 PCR들 각각의 바이너리 값을 정확하게 측정하기 위해서, shim 부트로더에 포함된 initrd, Grub 부트로더 및 커널에 대한 측정이 수행될 수 있다.
[표 1]을 참조하면, TPM을 통해 UEFI 보안 부팅 환경에서 BIOS 및 하드웨어 구성에 대한 PCR 값이 PCR0에서 PCR7까지 연속적으로 측정되고, 제 1 부트로더인 shim 부트로더와 제 2 부트로더인 Grub 부트로더에 대한 PCR 값에 대한 측정이 PCR 8에서 PCR 12까지 확장될 수 있다. 최종적으로 PCR12에는 UEFI 보안 부팅 환경에서의 shim 부트로더와 grub 부트로더에 의한 부팅 과정 전체의 무결성 해시값이 저장될 수 있으며, 이는 전체 부팅 과정을 나타는 신뢰사슬 값에 해당한다. 이때, TPM을 통해 측정된 PCR12의 무결성 해시값(=신뢰사슬값)은 도 5와 같이 무결성 검증을 위한 비교값으로서 활용될 수 있다.
도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 관리용 단말(200)의 펌웨어에 저장된 공개키를 사용하여 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출할 수 있다. 공개키는 검증 서버(100)의 개인키에 대응되므로, 프로세서(210)는 PCR 서명 커널의 디지털 서명에 포함된 t-PCR 값에 대한 암호 해독을 통해 t-PCR 값을 도출해낼 수 있다. 이와 같이 도출된 t-PCR 값은 무결성 검증을 위한 기준값으로서 활용될 수 있다.
도 5를 참조하면, 본 발명의 일 실시 예에 따른 프로세서(210)는, 추출된 t-PCR 값과 관리용 단말(200)의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행할 수 있다. 예를 들어, 프로세서(210)는 t-PCR 값이 신뢰사슬 값(ex. TPM을 이용하여 측정된 PCR12의 무결성 해시값)이 일치하는 경우, 나머지 부팅 과정이 그대로 진행될 수 있도록 할 수 있다. 반면, t-PCR 값이 신뢰사슬 값(ex. TPM을 이용하여 측정된 PCR12의 무결성 해시값)이 일치하지 않는 경우, 보안상의 문제가 발생한 것으로 판단하여 부팅이 더 이상 진행되지 않도록 제어할 수 있다. 즉, 프로세서(210)는 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.
이하에서는 도 6 및 도 7을 참조하여 전술한 무결성 검증 시스템에 대한 실험 결과에 대해 살펴보도록 한다.
도 6은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 부팅 구성에 따른 PCR 값의 변화를 나타낸 표이다. 즉, 도 6은 하드웨어, BIOS 구성 및 실행된 커널에 따른 PCR 값의 변화를 나타낸다.
도 6을 참조하면, A와 B의 비교는 커널 업데이트로 인한 PCR 값의 변화를 보여준다. 하드웨어에 대한 업데이트 결과, 바이너리 내용과 커널 로딩 명령이 수정되었기 때문에 PCR8, PCR11 및 PCR12가 변경됨을 확인할 수 있다.
B와 C의 비교는 BIOS 수정으로 인한 PCR 값의 변화를 보여준다. 이에 따라 PCR7 및 PCR12가 변경됨을 확인할 수 있다. 또한, 보안 부팅 환경이 오프됨에 따라 펌웨어 키를 이용한 shim 부트로더의 검증이 비활성화됨으로써, PCR 11에 대한 측정이 수행되지 않았음을 확인할 수 있다.
C와 D의 비교는 PCR1과 PCR5에 대해 서로 다른 PCR 값을 가지는 하드웨어에 의한 변화를 보여준다. A, B, C 및 D 모두 동일한 Grub 바이너리 및 모듈을 사용했기 때문에 PCR9 및 PCR10의 측정값이 모두 동일함을 확인할 수 있다.
전술한 비교를 통해 각각의 부팅 조건이 달라짐에 따라 PCR12의 값은 각각 고유한 값을 가짐을 알 수 있다. 즉, 전체 부팅 과정을 나타내는 고유한 PCR12의 측정값을 통해 종래 대비 보안성이 강화된 무결성 검증이 수행될 수 있음을 확인할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 업데이트를 기준으로 한 화이트리스트 값의 변화를 나타낸 표이다. 즉, 도 7은 화이트 리스트 값 및 무결성 값의 업데이트 반영 여부를 검증한 결과를 나타낸다.
검증 과정의 단순화를 위해 나머지 PCR을 제외한 PCR12에 대한 실험을 수행하였으며, Ubuntu 16.04의 부팅 과정에 따라 측정 구성을 정의하였다.
도 7의 A는 업데이트 전 화이트리스트 값의 데이터베이스(120), 도 7의 B는 t-PCR 값의 계산 결과, 도 7의 C는 업데이트된 화이트리스트 값의 데이터베이스(120)를 나타낸다. 도 7의 C를 확인하면, 업데이트 내용에 따라 추정된 t-PCR 값이 데이터베이스(120) 상에 반영된 것을 확인할 수 있다. 즉, 본 발명의 일 실시 예에 따른 무결성 검증 시스템에 의해 업데이트된 사항이 화이트리스트 값 및 무결성 값인 t-PCR 값에 반영됨을 확인할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말(200)의 업데이트 방법에 대한 순서도이다.
도 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)를 포함할 수 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(200)의 업데이트 방법에서 화이트리스트 값 및 t-PCR 값을 추정하는 단계(S120)에서는, 업데이트부(112)가 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 화이트리스트 값 및 t-PCR 값을 추정할 수 있다.
도 9는 본 발명의 일 실시 예에 따른 무결성 검증 시스템의 관리용 단말(200)의 무결성 검증 방법에 대한 순서도이다.
도 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)를 포함할 수 있다.
본 발명의 일 실시 예에 따른 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말(200)의 무결성 검증 방법에서 부팅 과정에 대한 무결성 검증을 수행하는 단계(S240)에서는, 프로세서(210)가 t-PCR 값과 신뢰사슬 값이 일치하는 경우에만 부팅 과정에서 커널의 실행을 허용할 수 있다.
본 발명의 일 실시 예에 따른 방법과 관련하여서는 전술한 시스템에 대한 내용이 적용될 수 있다. 따라서, 방법과 관련하여, 전술한 시스템에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.
한편, 본 발명의 일 실시 예에 의하면, 전술한 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체를 제공할 수 있다. 다시 말해서, 전술한 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터 판독 가능 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 본 발명의 다양한 방법들을 수행하기 위한 실행 가능한 컴퓨터 프로그램이나 코드를 기록하는 기록 매체는, 반송파(carrier waves)나 신호들과 같이 일시적인 대상들은 포함하는 것으로 이해되지는 않아야 한다. 상기 컴퓨터 판독 가능 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, DVD 등)와 같은 저장 매체를 포함할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
100: 검증 서버 110: 무결성 관리부
111: 저장부 112: 업데이트부
113: 커널 생성부 120: 검증 서버의 데이터베이스
200: 관리용 단말 210: 프로세서

Claims (12)

  1. 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템에 있어서,
    관리용 단말과 연동 가능하며, 무결성 관리부를 통해 상기 관리용 단말의 업데이트 정보를 상기 부팅 과정에 대한 무결성 검증에 반영하는 검증 서버를 포함하되,
    상기 무결성 관리부는,
    무결성 검증을 위한 개인키(Private key) 및 상기 관리용 단말에 대한 커널(Kernel) 및 부트로더(Bootloader)의 바이너리(Binary) 값을 관리하는 저장부;
    상기 바이너리 값에 따른 화이트리스트(Whitelist) 값과 t-PCR(trusted Paltform Configuration Register) 값을 추정하고, 상기 추정된 화이트리스트 값을 상기 검증 서버의 데이터베이스에 저장하는 업데이트부; 및
    상기 t-PCR 값을 기초로 상기 부팅 과정의 무결성 검증을 위한 PCR 서명 커널(PCR-signed kernel)을 생성하는 커널 생성부를 포함하며,
    상기 관리용 단말은,
    상기 커널 생성부로부터 전달된 PCR 서명 커널을 이용하여 상기 부팅 과정의 무결성을 검증하는 프로세서를 포함하는 것을 특징으로 하는 무결성 검증 시스템.
  2. 제 1 항에 있어서,
    상기 업데이트부는,
    소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 상기 화이트리스트 값 및 t-PCR 값을 추정하는 것을 특징으로 하는 무결성 검증 시스템.
  3. 제 1 항에 있어서,
    상기 PCR 서명 커널은,
    커널 이미지 및 상기 개인키로 암호화된 t-PCR 값이 저장된 디지털 서명을 포함하는 것을 특징으로 하는 무결성 검증 시스템.
  4. 제 1 항에 있어서,
    상기 프로세서는,
    소정의 보안 부팅 환경에서 상기 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 것을 특징으로 하는 무결성 검증 시스템.
  5. 제 1 항에 있어서,
    상기 프로세서는,
    소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 상기 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 것을 특징으로 하는 무결성 검증 시스템.
  6. 제 1 항에 있어서,
    상기 프로세서는,
    상기 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 상기 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, 상기 t-PCR 값을 추출하는 것을 특징으로 하는 무결성 검증 시스템.
  7. 제 6 항에 있어서,
    상기 프로세서는,
    상기 추출된 t-PCR 값과 상기 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬 값을 비교하여 상기 부팅 과정에 대한 무결성 검증을 수행하며,
    상기 t-PCR 값과 상기 신뢰사슬 값이 일치하는 경우에만 상기 부팅 과정에서 커널의 실행을 허용하는 것을 특징으로 하는 무결성 검증 시스템.
  8. 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 업데이트 방법에 있어서,
    상기 관리용 단말로부터 검증 서버로 새로운 커널(Kernel)에 대한 업데이트가 요청되면, 상기 검증 서버의 무결성 관리부의 저장부에서 상기 관리용 단말의 등록 정보를 확인하는 단계;
    상기 무결성 관리부의 업데이트부에서 상기 확인된 관리용 단말의 등록 정보에 기초하여 상기 업데이트를 위한 화이트리스트(Whitelist) 값 및 t-PCR(trusted Paltform Configuration Register) 값을 추정하는 단계; 및
    상기 무결성 관리부의 커널 생성부에서 상기 추정된 t-PCR 값을 기초로 상기 업데이트를 위한 PCR 서명 커널(PCR-signed Kernel)을 생성하고, 상기 생성된 PCR 서명 커널을 상기 관리용 단말로 전달하는 단계를 포함하는 것을 특징으로 하는 커널 업데이트 방법.
  9. 제 8 항에 있어서,
    상기 화이트리스트 값 및 t-PCR 값을 추정하는 단계에서는,
    상기 업데이트부가 소정의 보안 해시 알고리즘(Secure Hash Algorithm, SHA)을 이용한 PCR 값의 확장 연산을 통해 상기 화이트리스트 값 및 t-PCR 값을 추정하는 것을 특징으로 하는 커널 업데이트 방법.
  10. 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템의 관리용 단말의 무결성 검증 방법에 있어서,
    상기 관리용 단말의 프로세서가 소정의 보안 부팅 환경에서 상기 관리용 단말의 펌웨어(Firmware)에 저장된 공개키(Public Key)를 사용하여 제 1 부트로더에 대한 바이너리 값의 검증을 수행하는 단계;
    상기 프로세서가 소정의 보안 부팅 환경에서 TPM(Trusted Platfrom Module)을 이용하여 제 1 부트로더 및 제 2 부트로더에 대한 PCR 값을 측정하고, 상기 관리용 단말의 전체 부팅 과정을 나타내는 신뢰사슬(Chain-of-trust) 값을 생성하는 단계;
    상기 프로세서가 상기 관리용 단말의 펌웨어에 저장된 공개키를 사용하여 상기 PCR 서명 커널의 디지털 서명에 대한 복호화를 수행하고, t-PCR 값을 추출하는 단계; 및
    상기 프로세서가 추출된 t-PCR 값과 상기 관리용 단말의 전체 부팅 과정을 나타내는 상기 신뢰사슬 값을 비교하여 부팅 과정에 대한 무결성 검증을 수행하는 단계를 포함하는 것을 특징으로 하는 무결성 검증 방법.
  11. 제 10 항에 있어서,
    상기 부팅 과정에 대한 무결성 검증을 수행하는 단계에서는,
    상기 프로세서가 상기 t-PCR 값과 상기 신뢰사슬 값이 일치하는 경우에만 상기 부팅 과정에서 커널의 실행을 허용하는 것을 특징으로 하는 무결성 검증 방법.
  12. 제 8 항 내지 제 11 항 중 어느 한 항의 방법을 구현하기 위한 프로그램이 기록된 컴퓨터로 판독 가능한 기록 매체.
KR1020190027745A 2019-03-11 2019-03-11 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법 KR102111327B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190027745A KR102111327B1 (ko) 2019-03-11 2019-03-11 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190027745A KR102111327B1 (ko) 2019-03-11 2019-03-11 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법

Publications (1)

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

Family

ID=70678905

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190027745A KR102111327B1 (ko) 2019-03-11 2019-03-11 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법

Country Status (1)

Country Link
KR (1) KR102111327B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001118A (ko) * 2020-06-29 2022-01-05 단국대학교 산학협력단 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
CN117272317A (zh) * 2023-09-25 2023-12-22 中汽智联技术有限公司 一种***安全启动方法、电子设备及存储介质
CN117932623A (zh) * 2024-03-22 2024-04-26 中国人民解放军国防科技大学 一种操作***安全引导方法及***

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060094171A (ko) 2005-02-23 2006-08-29 삼성전자주식회사 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
KR20080057917A (ko) * 2006-12-21 2008-06-25 주식회사 레드게이트 보안 커널과 연계한 실시간 무결성 점검 및 추적 방법
KR101064164B1 (ko) * 2011-03-02 2011-09-15 (주)아이넷캅 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법
KR20130097444A (ko) * 2012-02-24 2013-09-03 삼성전자주식회사 휴대 단말기의 무결성 보호 방법 및 장치

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060094171A (ko) 2005-02-23 2006-08-29 삼성전자주식회사 모바일 플랫폼을 위한 메모리의 무결성을 원격으로 확인하는 확인장치 및 그 시스템 그리고 무결성 확인 방법
KR20080057917A (ko) * 2006-12-21 2008-06-25 주식회사 레드게이트 보안 커널과 연계한 실시간 무결성 점검 및 추적 방법
KR101064164B1 (ko) * 2011-03-02 2011-09-15 (주)아이넷캅 리눅스 커널 기반 스마트 플랫폼 내에서의 커널 무결성 검사 및 변조된 커널 데이터 복구 방법
KR20130097444A (ko) * 2012-02-24 2013-09-03 삼성전자주식회사 휴대 단말기의 무결성 보호 방법 및 장치

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220001118A (ko) * 2020-06-29 2022-01-05 단국대학교 산학협력단 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
KR102369874B1 (ko) * 2020-06-29 2022-03-03 단국대학교 산학협력단 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
CN117272317A (zh) * 2023-09-25 2023-12-22 中汽智联技术有限公司 一种***安全启动方法、电子设备及存储介质
CN117272317B (zh) * 2023-09-25 2024-02-23 中汽智联技术有限公司 一种***安全启动方法、电子设备及存储介质
CN117932623A (zh) * 2024-03-22 2024-04-26 中国人民解放军国防科技大学 一种操作***安全引导方法及***

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
US9053323B2 (en) Trusted component update system and method
US20190364048A1 (en) Service Processor and System with Secure Booting and Monitoring of Service Processor Integrity
US7634661B2 (en) Manifest-based trusted agent management in a trusted operating system environment
US7577840B2 (en) Transferring application secrets in a trusted operating system environment
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
US20110113181A1 (en) System and method for updating a basic input/output system (bios)
US10915632B2 (en) Handling of remote attestation and sealing during concurrent update
US20130061056A1 (en) Extending an integrity measurement
KR102111327B1 (ko) 리눅스 환경에서의 부팅 과정에 대한 무결성 검증 시스템 및 관리용 단말의 업데이트와 무결성 검증 방법
US20060015732A1 (en) Processing system using internal digital signatures
US8689318B2 (en) Trusted computing entities
KR101805310B1 (ko) Tpm 기반의 사용자 장치 및 이를 이용한 펌웨어 갱신 방법
KR101968382B1 (ko) Tpm 기반의 사용자 장치 및 이를 이용한 부팅 방법
US11232209B2 (en) Trojan detection in cryptographic hardware adapters
Bashun et al. Too young to be secure: Analysis of UEFI threats and vulnerabilities
Sisinni Verification of software integrity in distributed systems
US12019752B2 (en) Security dominion of computing device
KR102369874B1 (ko) 무결성 검증 대상 디바이스에 대한 os 및 무결성 정보의 통합 업데이트 방법 및 원격 검증 시스템, os 배포 서버 및 무결성 검증 대상 디바이스
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 (zh) 对构建服务器使用的数据项的损坏确定

Legal Events

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