KR101894926B1 - 신뢰 커널 시작 방법 및 장치 - Google Patents

신뢰 커널 시작 방법 및 장치 Download PDF

Info

Publication number
KR101894926B1
KR101894926B1 KR1020167026892A KR20167026892A KR101894926B1 KR 101894926 B1 KR101894926 B1 KR 101894926B1 KR 1020167026892 A KR1020167026892 A KR 1020167026892A KR 20167026892 A KR20167026892 A KR 20167026892A KR 101894926 B1 KR101894926 B1 KR 101894926B1
Authority
KR
South Korea
Prior art keywords
kernel
trusted
boot loader
partition
module
Prior art date
Application number
KR1020167026892A
Other languages
English (en)
Other versions
KR20160130790A (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 후아웨이 테크놀러지 컴퍼니 리미티드
Publication of KR20160130790A publication Critical patent/KR20160130790A/ko
Application granted granted Critical
Publication of KR101894926B1 publication Critical patent/KR101894926B1/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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token

Landscapes

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

Abstract

신뢰 커널 시작 방법 및 장치가 제공된다. 상기 방법은, 보안 부팅 모듈 부트 로더(boot loader)를 시작하는 단계(201); 상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지를 측정(measure)하는 단계(202); 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계(203); 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하는 단계(204); 및 상기 부트 로더를 신뢰할 수 있으면 상기 커널을 시작하는 단계(205)를 포함한다. 커널 시작 보안이 향상된다.

Description

신뢰 커널 시작 방법 및 장치{TRUSTED KERNEL STARTING METHOD AND APPARATUS}
본 출원은 신뢰 컴퓨팅 기술에 관한 것이고, 특히 신뢰 커널 시작 방법 및 장치에 관한 것이다.
최근 제3 세대 이동 통신(3rd Generation, 3G) 네트워크의 보급과 함께, 스마트폰이 가장 급속하게 성장하는 정보 산업(Information Technology, IT) 제품이 되었다.
급속하게 성장하는 스마트 이동 기기는 정보 시대를 새로운 발전 절정기로 이끈다. 그러나 스마트 이동 기기의 애플리케이션 성능의 발전에 과도한 요구가 이루어져, 보안 성능의 발전은 무시되고, 그 결과 이동 기기의 보안 성능의 발전은 뒤쳐지게 되었고, 이동 기기의 잠재적인 보안 문제가 점점 드러나고 있다. 스마트 이동 기기의 안전한 시작을 위해, 종래 기술에서는 외부 보안 유닛으로부터 시작하는 것을 실행하는 방법을 채용했다. 즉, 내장 기기에 보안 기능을 제공하기 위해, 외부 보안 유닛이 통신 인터페이스를 사용하여 내장 기기에 연결되었다. 기기가 시작되면, 신뢰 체인의 외부 신뢰 루트를 우회한 비인가된 시작을 막기 위해, 상기 내장된 기기는 먼저 상기 외부 보안 유닛의 존재 여부를 판단할 필요가 있고, 그러면 시스템 부트 프로그램이 로딩되고, 부트 프로그램은 보안 유닛을 호출하여 운영 체계의 커널 상에 무결성 측정을 수행하고, 그 후 검증이 성공하면 커널이 시작된다.
그러나 상기 종래 기술에서 사용된 방법은 다음의 단점을 가진다: 외부 보안 유닛은 외부 인터페이스를 사용하여 스마트 이동 기기와 통신할 필요가 있고, 일반적인 이동 통신 단말은 그러한 외부 인터페이스를 제공하지 않으므로, 종래 기술에서 사용되는 방법의 응용 범위는 제한된다. 둘째, 시작 솔루션에 따라, 시작이 실행되기 전에 외부 보안 유닛의 존재가 증명되어야만 커널이 시작될 수 있다. 그러므로 이러한 솔루션에서는, 비인가된 시작이 보안 유닛을 우회할 가능성이 비교적 높고, 커널 시작 보안이 비교적 낮다.
본 발명은 신뢰 커널 시작 방법 및 장치에 관한 것이고, 이는 커널 시작 보안을 향상시키기 위해 사용된다.
제1 측면에 따라, 본 발명의 실시예는,
보안 부팅 모듈 부트 로더(boot loader)를 시작하는 단계;
상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지를 측정(measure)하는 단계;
상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계;
상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하는 단계; 및
상기 부트 로더를 신뢰할 수 있으면 상기 커널을 시작하는 단계를 포함하는 신뢰 커널 시작 방법을 제공한다.
제1 측면에 관하여, 제1 측면의 제1 가능한 구현 방식에서, 상기 방법이,
환경(environment, ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하는 단계를 더 포함하고,
상기 부트 로더를 호출하여(invoke) 제1 보안 알고리즘에 따라 상기 PCR 파티션을 신뢰할 수 있는지를 측정(measure)하는 단계는,
상기 부트 로더를 호출하여 상기 제1 보안 알고리즘에 따라 PCR 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일한지를 비교하여, 상기 PCR 파티션을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션은 신뢰할 수 있는 것이다.
제1 측면의 제1 가능한 구현 방식에 관하여, 제1 측면의 제2 가능한 구현 방식에서,
상기 환경(ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하는 단계는,
사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성하는 단계; 및
상기 ENV 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하기 위해, 상기 루트 키를 사용하여 상기 ENV 파티션을 해독하는 단계를 포함한다.
제1 측면 또는 제1 측면의 제1 또는 제2 가능한 구현 방식에 관하여, 제3 가능한 구현 방식에서, 상기 방법이,
상기 PCR 파티션 내에 기 저장된 상기 커널 코드 기준 측정값을 획득하는 단계를 더 포함하고,
상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계는,
상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 상기 커널 코드를 상기 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일한지를 비교하여, 상기 커널 코드를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일하면 상기 커널 코드는 신뢰할 수 있는 것이다.
제1 측면 또는 제1 측면의 제1 내지 제3 가능한 구현 방식 중 어느 하나에 관하여, 제1 측면의 제4 가능한 구현 방식에서, 상기 방법이,
상기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하는 단계를 더 포함하고,
상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하는 단계는,
상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 상기 초기화된 커널로 하여금, 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하도록 트리거하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더는 신뢰할 수 있는 것이다.
제1 측면 또는 제1 측면의 제1 내지 제4 가능한 구현 방식 중 어느 하나에 관하여, 제1 측면의 제5 가능한 구현 방식에서, 상기 방법이,
상기 커널을 시작하는 단계 이후에,
상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계; 및
상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하는 단계를 더 포함한다.
상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하는 단계를 더 포함하고,
상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계는,
상기 커널을 호출하여 상기 제3 보안 알고리즘에 따라, 상기 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일한지를 비교하여, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일하면 상기 커널 보안 관리 강화 모듈은 신뢰할 수 있는 것이다.
제1 측면의 제5 또는 제6 가능한 구현 방식에 관하여, 제1 측면의 제7 가능한 구현 방식에서, 상기 방법이,
상기 운영 체계를 시작하는 단계 이후에,
상기 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하는 단계; 및
상기 애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하는 단계를 더 포함한다.
제1 측면의 제7 가능한 구현 방식에 관하여, 제1 측면의 제8 가능한 구현 방식에서, 상기 방법이,
상기 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하는 단계를 더 포함하고,
상기 커널 보안 관리 강화 모듈을 호출하여, 제4 보안 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지 측정하도록 하는 단계는,
상기 커널 보안 관리 강화 모듈을 호출하여, 상기 제4 보안 알고리즘에 따라, 상기 애플리케이션 프로그램의 실제 측정값을 계산하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일한지를 비교하여, 상기 애플리케이션 프로그램을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일하면 상기 애플리케이션 프로그램은 신뢰할 수 있는 것이다.
제2 측면에 따라, 본 발명의 실시예는,
보안 부팅 모듈 부트 로더(boot loader)를 시작하는 단계;
상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지를 측정(measure)하는 단계;
상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값 및 제1 완전 알고리즘에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계,
상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 실행하여 상기 커널을 시작하는 단계 를 포함하는 다른 하나의 신뢰 커널 시작 방법을 제공한다.
제2 측면에 관하여, 제2 측면의 제1 가능한 구현 방식에서,
상기 커널 코드를 실행하여 커널을 시작하는 단계 이후에,
상기 커널을 호출하여 제2 완전 알고리즘에 따라 상기 부트 로더를 신뢰할 수 있는지를 측정하는 단계;
상기 부트 로더를 신뢰할 수 있으면, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계; 및
상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하는 단계를 더 포함한다.
제2 측면 또는 제2 측면의 제1 가능한 구현 방식에 관하여, 제2 측면의 제2 가능한 구현 방식에서,
상기 신뢰 커널 시작 방법이, 환경(environment, ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하는 단계를 더 포함하고,
상기 부트 로더를 호출하여(invoke) 제1 보안 알고리즘에 따라 상기 PCR 파티션을 신뢰할 수 있는지를 측정(measure)하는 단계는,
상기 부트 로더를 호출하여 기 저장된 상기 제1 보안 알고리즘에 따라 PCR 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일한지를 비교하여, 상기 PCR 파티션을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션은 신뢰할 수 있는 것이다.
제2 측면의 제2 가능한 구현 방식에 관하여, 제2 측면의 제3 가능한 구현 방식에서,
상기 환경(ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하는 단계는,
사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성하는 단계; 및
상기 ENV 파티션 내에 기 저장된, PCR 파티션의 상기 기준 측정값을 획득하기 위해, 상기 루트 키를 사용하여 상기 ENV 파티션을 해독하는 단계를 포함한다.
제2 측면 또는 제2 측면의 제1 내지 제3 가능한 구현 방식에 관하여, 제2 측면의 제4 가능한 구현 방식에서,
상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 상기 커널 코드 기준 측정값을 획득하는 단계를 더 포함하고,
상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계는,
상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 상기 커널 코드를 상기 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일한지를 비교하여, 상기 커널 코드를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일하면 상기 커널 코드는 신뢰할 수 있는 것이다.
제2 측면의 제1 내지 제4 가능한 구현 방식 중 어느 하나에 관하여, 제2 측면의 제5 가능한 구현 방식에서,
상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하는 단계를 더 포함하고,
상기 커널을 호출하여, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하는 단계는,
상기 커널을 호출하여, 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더는 신뢰할 수 있는 것이다.
제2 측면의 제1 내지 제5 가능한 구현 방식 중 어느 하나에 관하여, 제2 측면의 제6 가능한 구현 방식에서,
상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하는 단계를 더 포함하고,
상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계는,
상기 커널을 호출하여 상기 제3 보안 알고리즘에 따라, 상기 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일한지를 비교하여, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일하면 상기 커널 보안 관리 강화 모듈은 신뢰할 수 있는 것이다.
제2 측면의 제1 내지 제6 가능한 구현 방식 중 어느 하나에 관하여, 제2 측면의 제7 가능한 구현 방식에서,
상기 운영 체계를 시작하는 단계 이후에,
상기 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하는 단계; 및
상기 애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하는 단계를 더 포함한다.
제2 측면의 제7 가능한 구현 방식에 관하여, 제2 측면의 제8 가능한 구현 방식에서, 상기 방법이,
상기 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하는 단계를 더 포함하고,
상기 커널 보안 관리 강화 모듈을 호출하여, 제4 보안 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지 측정하도록 하는 단계는,
상기 커널 보안 관리 강화 모듈을 호출하여, 상기 제4 보안 알고리즘에 따라, 상기 애플리케이션 프로그램의 실제 측정값을 계산하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일한지를 비교하여, 상기 애플리케이션 프로그램을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일하면 상기 애플리케이션 프로그램은 신뢰할 수 있는 것이다.
제3 측면에 따라, 본 발명의 실시예는,
보안 부팅 모듈 부트 로더(boot loader)를 시작하도록 구성되는 부트 시작 모듈; 및
상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지 측정(measure)하도록 구성되고, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하도록 더 구성되는 제1 측정 모듈;
상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하도록 구성되는 제2 측정 모듈; 및
상기 부트 로더를 신뢰할 수 있으면 커널을 시작하도록 구성되는 커널 시작 모듈 을 포함하는 신뢰 커널 시작 장치를 제공한다.
제3 측면에 관하여, 제3 측면의 제1 가능한 구현 방식에서, 상기 장치가,
환경(environment, ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하도록 구성된 획득 모듈을 더 포함하고,
상기 제1 측정 모듈은 구체적으로, 상기 부트 로더를 호출하여, 상기 제1 보안 알고리즘에 따라 상기 PCR 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일한지를 비교하여, 상기 PCR 파티션을 신뢰할 수 있는지 측정하도록 구성되고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션이 신뢰할 수 있는 것으로 측정된다.
제3 측면의 제1 가능한 구현 방식에 관하여, 제3 측면의 제2 가능한 구현 방식에서,
상기 획득 모듈은 구체적으로, 사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성하고, 상기 ENV 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하기 위해, 상기 루트 키를 사용하여 상기 ENV 파티션을 해독하도록 구성된다.
제3 측면 또는 제3 측면의 제1 또는 제2 가능한 구현 방식에 관하여, 제3 측면의 제3 가능한 구현 방식에서,
상기 획득 모듈은 상기 PCR 파티션 내에 기 저장된 상기 커널 코드 기준 측정값을 획득하도록 더 구성되고,
상기 제1 측정 모듈은 구체적으로, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 상기 커널 코드를 상기 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일한지를 비교하여, 상기 커널 코드를 신뢰할 수 있는지 측정하도록 구성되고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일하면 상기 커널 코드를 신뢰할 수 있는 것이다.
제3 측면 또는 제3 측면의 제1 내지 제3 가능한 구현 방식 중 어느 하나에 관하여, 제3 측면의 제4 가능한 구현 방식에서,
상기 획득 모듈은 상기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하도록 더 구성되고,
상기 제2 측정 모듈은 구체적으로, 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 상기 초기화된 커널로 하여금, 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하도록 트리거하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하도록 구성되고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더를 신뢰할 수 있는 것이다.
제3 측면 또는 제3 측면의 제1 내지 제4 가능한 구현 방식 중 어느 하나에 관하여, 제3 측면의 제5 가능한 구현 방식에서, 상기 장치는,
시스템 시작 모듈을 더 포함하고,
상기 제2 측정 모듈은, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되고,
상기 시스템 시작 모듈은 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성된다.
제3 측면의 제5 가능한 구현 방식에 관하여, 제3 측면의 제6 가능한 구현 방식에서,
상기 획득 모듈은 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하도록 더 구성되고,
상기 제2 측정 모듈은 구체적으로, 상기 커널을 호출하여 상기 제3 보안 알고리즘에 따라 상기 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일한지를 비교하여, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하도록 구성되고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일하면 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는 것이다.
제3 측면의 제5 또는 제6 가능한 구현 방식에 관하여, 제3 측면의 제7 가능한 구현 방식에서,
상기 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 모듈; 및
상기 애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 모듈을 더 포함한다.
제3 측면의 제7 가능한 구현 방식에 관하여, 제3 측면의 제8 가능한 구현 방식에서,
상기 획득 모듈은 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하도록 더 구성되고,
상기 제3 측정 모듈은 구체적으로, 상기 커널 보안 관리 강화 모듈을 호출하여 상기 제4 보안 알고리즘에 따라 상기 애플리케이션 프로그램의 실제 측정값을 계산하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일한지를 비교하여, 상기 애플리케이션 프로그램을 신뢰할 수 있는지 측정하도록 구성되고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일하면 상기 애플리케이션 프로그램을 신뢰할 수 있는 것이다.
제4 측면에 따라, 본 발명의 실시예는,
보안 부팅 모듈 부트 로더(boot loader)를 시작하도록 구성되는 부트 시작 유닛; 및
상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지를 측정(measure)하도록 구성되고, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하도록 더 구성되는 제1 측정 유닛,
상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드로 하여금 커널을 시작하도록 실행하도록 구성되는 커널 시작 유닛 을 포함하는 다른 하나의 신뢰 커널 시작 장치를 제공한다.
제4 측면에 관하여, 제4 측면의 제1 가능한 구현 방식에서,
상기 커널을 호출하여 상기 부트 로더를 신뢰할 수 있는지를, 제2 완전 알고리즘에 의해 측정하도록 구성되고, 상기 부트 로더를 신뢰할 수 있으면, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되는 제2 측정 유닛; 및
상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는 시스템 시작 유닛을 더 포함한다.
제4 측면 또는 제4 측면의 제1 구현 방식에 관하여, 제4 측면의 제2 구현 방식에서, 상기 장치가,
환경(environment, ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하도록 구성된 획득 유닛을 더 포함하고,
상기 제1 측정 유닛은 구체적으로, 상기 부트 로더를 호출하여, 상기 제1 보안 알고리즘에 따라 상기 PCR 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일한지를 비교하여, 상기 PCR 파티션을 신뢰할 수 있는지 측정하도록 구성되고, 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션이 신뢰할 수 있는 것이다.
제4 측면의 제2 가능한 구현 방식에 관하여, 제4 측면의 제3 구현 방식에서,
상기 획득 유닛은 구체적으로, 사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성하고, 상기 ENV 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하기 위해, 상기 루트 키를 사용하여 상기 ENV 파티션을 해독하도록 구성된다.
제4 측면 또는 제4 측면의 제1 내지 제3 가능한 구현 방식 중 어느 하나에 관하여, 제4 측면의 제4 구현 방식에서,
상기 획득 유닛은 상기 PCR 파티션 내에 기 저장된 상기 커널 코드 기준 측정값을 획득하도록 더 구성되고,
상기 제1 측정 유닛은 구체적으로, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 상기 커널 코드를 상기 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일한지를 비교하여, 상기 커널 코드를 신뢰할 수 있는지 측정하도록 구성되고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일하면 상기 커널 코드를 신뢰할 수 있는 것이다.
제4 측면의 제1 내지 제4 가능한 구현 방식 중 어느 하나에 관하여, 제4 측면의 제5 가능한 구현 방식에서,
상기 획득 유닛은 기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하도록 더 구성되고,
상기 제2 측정 유닛은 구체적으로, 상기 커널을 호출하여 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하도록 구성되고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더를 신뢰할 수 있는 것이다.
제4 측면의 제1 내지 제5 가능한 구현 방식 중 어느 하나에 관하여, 제4 측면의 제6 가능한 구현 방식에서,
상기 획득 유닛은 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하도록 더 구성되고,
상기 제2 측정 유닛은 구체적으로, 상기 커널을 호출하여 상기 제3 보안 알고리즘에 따라 상기 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일한지를 비교하여, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하도록 구성되고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일하면 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는 것이다.
제4 측면의 제1 내지 제6 가능한 구현 방식 중 어느 하나에 관하여, 제4 측면의 제7 가능한 구현 방식에서,
상기 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 유닛; 및
상기 애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 모듈을 더 포함한다.
제4 측면의 제7 가능한 구현 방식에 관하여, 제4 측면의 제8 가능한 구현 방식에서,
상기 제3 측정 유닛은 구체적으로, 상기 커널 보안 관리 강화 모듈을 호출하여 상기 제4 보안 알고리즘에 따라 상기 애플리케이션 프로그램의 실제 측정값을 계산하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일한지를 비교하여, 상기 애플리케이션 프로그램을 신뢰할 수 있는지 측정하도록 구성되고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일하면 상기 애플리케이션 프로그램을 신뢰할 수 있는 것이다.
이로써 알 수 있듯이, 본 발명의 실시예에서 제공되는 신뢰 커널 시작 방법 및 장치에 따라, 보안 부팅 모듈 부트 로더가 먼저 호출되어 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정한다. PCR 파티션을 신뢰할 수 있다고 판단되면, 부트 로더가 호출되어 상기 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정한다. 커널 코드를 신뢰할 수 있다고 판단되면, 커널 코드가 초기화되어 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거한다. 그리고 부트 로더를 신뢰할 수 있으면 커널이 시작된다. 즉, 본 발명에서 제공된 기술적 해결방안에 따라, 커널은 보안 부팅 모듈 부트 로더, 플랫폼 구성 레지스터(PCR) 파티션, 및 커널 코드가 모두 신뢰할 수 있을 때만이 안전하게 시작될 수 있고, 커널 코드의 신뢰성이 PCR 파티션 내에 기 저장된 커널 코드 기준 측정값에 따라 측정되며, 커널 코드는 초기화되어 부트 로더의 신뢰성을 측정하도록 트리거한다. 그러므로, 본 발명의 실시예 내에 제공된 기술적 해결방안은 커널 시작 보안을 어느 정도 향상시킬 수 있다.
본 발명의 실시예 내의 기술적 해결 방안을 더 명확하게 설명하기 위해, 하기 사항은 실시예 또는 종래 기술을 설명하기 위해 필요한 첨부 도면을 간략하게 설명한다. 명백하게, 하기 설명 내의 첨부 도면은 본 발명의 단지 일부 실시예를 도시할 뿐이고, 이 기술분야의 통상의 기술자는 창조적 노력을 들이지 않고도 여전히 이러한 첨부 도면으로부터 다른 도면들을 도출할 수 있다.
도 1은 본 발명에 따르는 시작 시스템의 플로우차트이다.
도 2a는 본 발명에 따르는 신뢰 커널 시작 방법의 실시예의 플로우차트이다.
도 2b는 본 발명에 따르는 신뢰 커널 시작 방법의 다른 하나의 실시예의 플로우차트이다.
도 2c는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다.
도 2d는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다.
도 3a는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다.
도 3b는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다.
도 3c는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다.
도 3d는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다.
도 4a는 본 발명에 따르는 신뢰 커널 시작 장치의 실시예의 도식적 구조 다이어그램이다.
도 4b는 본 발명에 따르는 신뢰 커널 시작 장치의 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 4c는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 4d는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 4e는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 4f는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 5a는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 5b는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 5c는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 5d는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 5e는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
도 5f는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다.
하기 내용은 본 발명의 실시예 내의 첨부 도면을 참조하여 본 발명의 실시예 내의 기술적 해결수단을 명확하게 설명한다. 분명히, 설명된 실시예들은 본 발명의 실시예의 일부일 뿐이고 전부는 아니다. 창조적인 노력을 들이지 않고 본 발명의 실시예들에 기초하여 이 기술분야의 통상의 기술자에 의해 획득될 수 있는 모든 다른 실시예들은 본 발명의 보호 범위 내에 속하여야 한다.
도 1은 본 발명의 실시예에 따르는 시작 시스템의 플로우차트이다. 본 발명 내에 도시된 실시예에 제공된 신뢰 커널 시작 방법을 참조하면, 본 실시예의 구조적 다이어그램을 종래 기술의 내장 시스템 절차와 비교하면 그 차이는, 종래의 내장 시스템을 시작하는 절차에 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈이 부가 설치되었다는 것에 있다. 신뢰 소프트-구성요소 플랫폼 모듈은, 부트 로더가 PCT 파티션 및 커널을 측정하는 절차, 커널에 의한 부트 로더 및 커널 보안 관리 강화 모듈의 측정, 및 커널 보안 관리 강화 모듈에 의한 애플리케이션 프로그램 측정의 실행을 제어할 수 있고, 이러한 절차들은 도 2에 도시된 방법에 있다.
시스템 시작 절차는 다음과 같이 요약된다: 시스템에 전원이 켜진 후, 보안 부트 프로그램, 즉 부트 로더(boot loader)가 시작되고, 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈이 부트 로더를 호출하여 플랫폼 위치 레지스터(PCR) 파티션을 측정하도록 한다. 현재 PCR 파티션을 신뢰할 수 있으면, 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈이 계속해서 부트 로더를 호출하여 커널을 측정하도록 한다. 현재 커널을 신뢰할 수 있으면, 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈이 부트 로더를 명령하여 커널을 로딩하고 커널을 초기화하여, 초기화된 커널을 호출하여 부트 로더를 다시 측정한다. 이 경우 부트 로더를 신뢰할 수 있으면, 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈이 커널을 명령하여 시작하도록 하고, 커널 보안 관리 강화 모듈을 측정한다. 측정된 커널 보안 관리 강화 모듈의 측정이 현재 신뢰할 수 있으면, 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈이 커널을 명령하여 커널 보안 관리 강화 모듈을 로딩하고, 커널 보안 관리 강화 모듈을 사용하여 시작할 애플리케이션 프로그램을 측정한다. 측정 결과가 신뢰할 수 있으면, 애플리케이션 프로그램이 정상적으로 시작된다. 부트 로더가 제1 측정 모듈을 사용하여, 각각 제1 보안 알고리즘 및 제1 완전 알고리즘에 따라, PCR 파티션 및 커널을 측정한다. 커널은 제2 측정 모듈을 사용하여, 각각 제2 완전 알고리즘 및 제3 완전 알고리즘에 따라, 부트 로더 및 커널 관리 강화 모듈을 측정한다. 커널 관리 강화 모듈은 제3 측정 모듈을 사용하여, 제4 완전 알고리즘에 따라, 애플리케이션 프로그램을 측정한다. 분명히, 신뢰 내장 시스템의 시작은, 그러한 단계별 측정 수행 후 단계별 시작을 실행하는 방법을 사용하여 구현될 수 있다.
도 2a는 본 발명에 따르는 신뢰 커널 시작 방법의 실시예의 플로우차트이다. 도 2a에 도시된 것처럼, 신뢰 커널 시작 방법은 구체적으로 다음 단계들을 포함한다.
S201: 보안 부팅 모듈 부트 로더를 시작한다.
현재, PC, 이동 전화, 또는 iPad와 같은 단말 장치 내에 사용되는 내장 시스템은 주로 다음과 같은 기능 모듈을 포함한다: 부트 프로그램(boot Loader), 커널(Kernel), 커널 보안 관리 모듈. 상기 내장 시스템 내의 기능 모듈이 정상적으로 시작한 후, 사용자는 대응하는 작동을 실행하도록 다양한 애플리케이션 프로그램을 호출할 수 있다.
이 실시예에서, 단말 장치가 전원 온이 된 후, 기능 모듈을 시작하는 순서는 다음과 같다: 부트 로더를 시작하기 위해, 저장 장치 내에 저장된 보안 부팅 모듈(부트 로더)가 먼저 장치 내의 내장 시스템으로 로딩된다. 구체적으로, 이 실시예에서, 부트 로더를 시작하는 완전한 절차는 3개의 부분으로 나누어진다: BL 0(부트 로더 0) 부분, BL 1(부트 로더 1) 부분, 및 BL 2(부트 로더 2) 부분이다.
BL 0는 S5PV210의 iROM 내에 고정되는 시작 코드를 지칭한다. 시스템이 막 전원 온 되었을 때, 시스템의 전체 상태가 초기화되지 않고, 내부 클럭이 설정되지 않는다. 이런 경우, iRAM만이 사용가능하다. 이 때 전원이 정상적으로 전력을 공급하면, 시작 절차가 iROM 내에 고정되는 시작 코드로부터 시작된다. iROM 내에 고정되는 시작 코드는 하드웨어 관련 코드이다. 일반적으로 시작 코드는 하드웨어적인 방식으로 대응하는 하드웨어 장치 내에 고정되고, 이는 사용자가 변경할 수 없다. 시작 코드는 시스템의 클럭 초기화, 와치독(watch dog) 설정, 힙(heap) 및 스택(stack) 초기화, 및 BL 1 로딩을 담당한다.
BL 1은 iRAM에 의해 자동으로 외부확장 저장 장치(nand/sd/usb)에 복사되는 이진 파일 uboot.bin의 첫 16K(최대 16K)의 코드를 지칭한다. BL 1의 기능은 외부 RAM의 검출 및 초기화, 캐시 닫기, 스택 설정, 및 BL 2 로딩이다.
BL 2는 코드 코드 방향 전환 후 메모리 내에서 실행되는 완전 uboot 코드를 지칭하고, 또한 주 부트 로더(Main boot Loader)로도 지칭된다. 주 부트 로더 코드는 매우 중요하고, 파일 시스템 초기화, 네트워크 지원, 잉여 메모리 초기화, 및 다른 임무를 포함하고, 운영 체계(OS) 커널(이후로는 커널이라 약칭함)을 로딩하는 것을 담당한다.
부트 로더를 시작하는 완전한 절차는 다음과 같이 설명된다: 시작된 후, BL 0(iROM에 고정되는 시작코드)이 BL 1(부트 로더의 첫 16KB의 코드)을 iRAM에 로딩한다. 그 후, BL 1은 iRAM에서 실행되어 BL 2(나머지 부트 로더)를 메모리(SDRAM)에 로딩한다. 그리고 BL 2가 커널을 로딩하고, OS가 SDRAM 내에서 실행되도록 하여, 최종적으로 OS가 SDRAM에서 실행되도록 한다.
이 단계에서 보안 부팅 모듈 부트 로더를 시작하는 것은, 시스템이 전원 온되고 저장 장치 내의 부트 로더가 로딩된 후, BL 0 부분 및 BL 1 부분을 시작하는 것을 지칭한다.
S202: 상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지를 측정(measure)한다.
이 실시예에서, 시스템이 부트 로더 내에 있는 BL 0 부분 및 BL 1 부분을 시작한 후, 시스템이 BL 2 부분을 실행하기, 즉, 커널을 로딩하기 전, 제1 보안 알고리즘에 따라, 시스템은 부트 로더로 하여금 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정하도록 명령한다.
시스템 시작 절차 중 노드들(부트 로더, 커널, 및 커널 보안 관리 강화 모듈)이 필요로 하는, 무결성 또는 보안성을 측정하기 위해 사용되는 기준 측정값과 같은 관련된 파라미터가 PCR 파티션 내에 기 저장된다. 이러한 기준 측정값들은 시스템을 처음으로 시작하는 과정에서 노드들이 시스템에 능동적으로 보고할 수 있고, 시스템은 상기 기준 측정값을 시스템 내의 특정 저장 유닛에 저장한다.
구체적으로, 제1 보안 알고리즘은 시스템 내의 저장 유닛 내에 패키징 및 저장될 수 있다. 부트 로더가 BL 1 절차 수행을 완성한 후, 부트 로더는 나머지 시스템에 현재 BL 1 절차가 이미 완성되었음을 트리거할 수 있다. 트리거 신호를 수신한 후, 시스템은 부트 로더를 호출하여, 저장 유닛 내에 기 저장된 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션의 신뢰성을 측정한다.
구체적으로, 제1 보안 알고리즘은 구체적으로, 예를 들어 보안 해시 알고리즘(sha1) 또는 국산 SM3 해시 알고리즘일 수 있고, 제1 보안 알고리즘의 측정 원리는 다음과 같이 설명될 수 있다: 전술한 2개의 알고리즘을 사용하여, 측정할 대상, 예를 들어 이미지 파일에 계산이 실행되어, 현재 측정 대상의 측정값(즉, 측정 대상의 요약값(요약값)이고, sha1 알고리즘에 대응되는 측정 대상의 요약값은 160 비트이고, SM3 알고리즘에 대응되는 측정 대상의 요약값은 256 비트임)을 획득하고, 상기 측정값은 대응하는 알고리즘을 사용하여 계산에 의해 획득되는, 측정 대상의 유일한 값이다. 측정 대상의 측정값이 변화하면, 측정 대상이 변화 또는 수정되었다고 인정될 수 있다. 유사하게, 부트 로더가 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정하는 과정은 다음과 같이 설명될 수 있다: 부트 로더가 PCR 파타션의 이미지 파일을 측정 대상으로서 메모리로 읽어들이고, 제1 보안 알고리즘을 사용하여 PCR 파티션의 측정값을 계산하고, 여기서 측정값이 변화하지 않으면 PCR 파티션이 변화하지 않고 안전하고 신뢰할 수 있음을 나타낸다. 반대로, 측정값이 변화하면, 이는 PCR 파티션이 악의적으로 변경되어 변화함을 나타내고, 이 경우 PCR 파티션 내에 저장된 관련 데이터의 보안성도 의문스럽다. 전체 시스템의 실행 환경의 보안성을 보장하기 위해, 부트 로더는 시스템에 PCR 보안 측정이 실패함을 통지하고, 시스템에 시스템 시작 절차를 중단하고 장치를 전원 오프할 것을 환기한다.
PCR 파티션의 신뢰성을 실제로 측정하는 과정에서 사용되는 제1 보안 알고리즘은 더 나아가 MTV5 알고리즘, an SHA2 알고리즘, an SHA256 알고리즘, and an MD 알고리즘일 수 있다. 제1 보안 알고리즘의 신뢰성 측정의 방법 및 원리는, 특정 계산 과정만 특정 알고리즘 유형에 따라 다를 뿐, sha1 및 SM3과 동일하다. 이 기술분야의 통상의 기술자의 이해 수준에 따라, 동일한 원리에 기초하여, 전술한 방법을 사용하여 PCR 파티션의 신뢰성이 측정되고, 세부사항은 여기에 다시 설명되지 않는다.
S203: 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정한다.
구체적으로, 제1 보안 알고리즘을 사용하여 PCR 파티션의 측정값이 계산될 때, 측정값에 따라 PCR 파티션이 신뢰할 수 있다고 판단된 후, 시스템은 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 커널 코드를 측정 대상으로 사용하고, 부트 로더를 호출하여, 저장 유닛에 기 저장된 제1 완전 알고리즘에 따라, 커널 코드 실제 측정값 및 커널 코드 기준 측정값 간의 값 관계를 매칭 및 계산하도록 하여, 커널 코드를 신뢰할 수 있는지를 판단한다. 제1 완전 알고리즘은 단계 202에 열거된 제1 보안 알고리즘 중의 하나일 수 있고, 제1 완전 알고리즘에 따라 부트 로더가 커널 코드의 신뢰성을 측정하는 방법 및 원리에 대해, 202 단계의 제1 보안 알고리즘에 따라 PCR 파티션의 신뢰성을 측정하는 과정의 대응되는 내용을 참조할 수 있고, 세부사항은 여기에 다시 설명되지 않는다.
S204: 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거한다.
구체적으로, 제1 완전 알고리즘이 커널 코드가 안전하고 신뢰할 수 있는지 측정하기 위해 사용된 후, 시스템은 부트 로더를 호출하여 커널을 로딩하기 위해 BL 2 절차를 실행한다. 커널을 로딩하는 초기 단계에서, 로딩을 위한 커널 코드를 먼저 초기화할 필요가 있다. 종래 기술과 달리, 본 발명의 이 실시예에서, 커널 코드의 초기화를 완료한 후, 시스템이 먼저 초기화된 커널로 하여금 제2 완전 알고리즘에 따라, 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거한다. 제2 완전 알고리즘도 제1 완전 알고리즘처럼, 시스템 내의 저장 유닛에 기 저장되어 있고, 제2 완전 알고리즘이 구체적으로 인용하는 알고리즘의 유형은 제1 완전 알고리즘이 인용하는 알고리즘의 유형과 동일할 수 있거나, 또는 제2 완전 알고리즘이 구체적으로 인용하는 알고리즘의 유형은 전술한 열거된 알고리즘 중 임의의 하나이다. 그리고 제2 완전 알고리즘의 구체적인 측정 과정도 또한 제1 완전 알고리즘을 사용하여 커널 코드의 신뢰성을 측정하는 방법 및 원리와 동일하고, 세부사항은 이 실시예에서 여기서 다시 설명되지 않는다. 반대로, 제1 완전 알고리즘이 사용되어 커널 코드가 신뢰할 수 없다고 측정하면, 부트 로더는 시스템에 커널 보안 측정이 실패함을 통지하고, 시스템에 시스템 시작 절차를 중단하고 장치를 전원 오프할 것을 환기한다.
S205: 상기 부트 로더를 신뢰할 수 있으면 상기 커널을 시작한다.
구체적으로, 초기화된 커널이 제2 완전 알고리즘을 사용하여 부트 로더가 신뢰할 수 있음을 측정한 후, 시스템은 커널 코드를 완전히 시작하고 OS가 SDRAM 내에서 실행하도록 하여, OS가 최종적으로 SDRAM 내에서 실행하도록 한다. 반대로, 초기화된 커널이 제2 완전 알고리즘을 사용하여 부트 로더가 신뢰할 수 없다고 측정하면, 커널은 시스템에 부트 로더 보안 측정이 실패함을 통지하고, 시스템에 시스템 시작 절차를 중단하고 장치를 전원 오프할 것을 환기한다.
본 발명에 제공된 신뢰 커널 시작 방법에 따라, 보안 부팅 모듈 부트 로더가 시작되고; 상기 부트 로더가 호출되어, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정하고; 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더가 호출되어 커널 코드를 메모리로 읽어내고, 상기 부트 로더가 호출되어, 상기 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하고; 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드가 초기화되어 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하고, 상기 부트 로더를 신뢰할 수 있으면 상기 커널이 시작된다. 이 해결 수단에서, 커널 시작 보안이 어느 정도 향상된다.
도 2b는 본 발명에 따르는 신뢰 커널 시작 방법의 다른 하나의 실시예의 플로우차트이다. 이 실시예의 신뢰 커널 시작 방법은 도 2a에 도시된 실시예의 구체적인 구현 방식이다. 도 2b에 도시된 것처럼, 신뢰 커널 시작 방법은 구체적으로 다음 단계들을 포함한다:
S211: 보안 부팅 모듈 부트 로더를 시작한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 201의 대응하는 내용을 참조할 수 있다.
S212: 환경(environment, ENV) 파티션 내에 기 저장된 PCR 파티션의 기준 측정값을 획득한다.
도 2a에 도시된 실시예 내의 단계 202 전에, 시스템은 환경(ENV) 파티션 내에 기 저장된 PCR 파티션의 기준 측정값을 더 먼저 획득할 수 있고, 상기 기준 측정값은, PCR 파티션이 노드들이 시스템을 시작할 때 필요로 하는 관련 파라미터를 처음 저장할 때, 제1 보안 알고리즘을 사용하여, 현재 PCR 파티션에 대응되는 이미지 파일을 계산하여 생성되는 측정값이다.
구체적으로, 환경(ENV) 파티션에 기 저장된 기준 측정값을 획득하는 구체적인 과정은 다음과 같다:
1. 사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성한다.
시스템이 전원 온 되고 처음으로 실행될 때, 시스템은 먼저, 시스템 내의 부트 로더 및 커널 같은 키 노드들이 송신하고, 키 노드들의 보안을 측정하기 위해 사용되는 기준 측정값들을 수신한다. 그리고 상기 기준 측정값들은 이후 측정 기준을 위해, 저장 장치 내 PCR 파티션 내에 저장된다. 그 후, 시스템은 제1 보안 알고리즘을 사용하여 PCR 파티션에 대응하는 이미지 파일의 기준 측정값 P(20 바이트)를 계산하고, 상기 기준 측정값은 ENC{P}를 생성하기 위해 장치 루트 키(SRK)를 사용하여 암호화되고, ENC{P}는 ENV 파티션의 말미 20 바이트에 저장된다. 상기 루트 키는 사용자가 관장하고, 시스템이 시작할 때마다, 사용자가 대응하는 루트 키 시드(root key seed), 즉, PIN을 입력하여, 시스템이 루트 키를 생성하도록 한다.
2. 상기 루트 키를 사용하여 ENV 파티션을 해독하여, ENV 파티션에 기 저장되는 PCR 파티션의 기준 측정값을 획득한다.
부트 로더가 BL 1 절차를 완성한 후, 시스템은 사용자가 입력한 PIN을 수신하고, PIN에 따라 SRK를 생성하여, ENV 파티션의 말미 20 바이트에서 해독이 실행된다.
사용자가 입력한 PIN이 정확하다면, 시스템이 PIN에 따라 SRK를 생성하여, ENV 내의 ENC{P}가 성공적으로 해독되는 것이 구현되고, P 값이 획득된다. P 값이 PCR 파티션에 대응되는 기준 측정값이다. PCR 파티션을 신뢰할 수 있는지 여부는 P 및 PCR 파티션 실제 측정값을 비교하여 판단할 수 있다. 이런 방법으로, 비인가된 사용자가 설사 PCR 파티션의 임의의 정보를 불법변조(tamper with)해도, 상기 비인가된 사용자가 대응하는 ENC{P}를 불법변조할 수 없다. 그러므로 PCR 파티션이 일단 불법변조되면, 이는 발견될 수 있고, 시스템이 현재 시작 프로세스를 중단하도록 촉구한다.
S213: 부트 로더를 호출하여 제1 보안 알고리즘에 따라 PCR 파티션을 신뢰할 수 있는지를 측정한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 202의 대응하는 내용을 참조할 수 있다.
구체적으로, 부트 로더가 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정하는 구체적인 과정은 다음과 같다: 먼저, 현재 PCR 파티션의 실제 측정값을 획득하기 위해, 제1 보안 알고리즘이 측정 대상, 즉 PCR 파티션의 이미지 파일을 측정하기 위해 사용된다. 부트 로더는, PCR 파티션 실제 측정값이 PCR 파티션 기준 측정값과 동일한지를 비교함으로써, PCR 파티션이 2회의 측정에서 변화하는지 판단하여, PCR 파티션을 신뢰할 수 있는지를 판단한다.
PCR 파티션 실제 측정값이 PCR 파티션 기준 측정값과 동일하면, 이는 PCR 파티션이 변화하지 않았음을 나타내고, PCR 파티션의 환경은 안전하고 신뢰할 수 있다.
S214: PCR 파티션 내에 기 저장된 커널 코드 기준 측정값을 획득한다.
도 2a에 도시된 실시예 중 단계 203 전에, 시스템은 PCR 파티션으로부터 커널 코드 기준 측정값을 더 먼저 획득할 수 있고, 기준 측정값은, 시스템이 처음으로 시작될 때, 커널이 제1 완전 알고리즘에 따라 커널에 대응하는 표준값을 계산한 후, 커널이 시스템에 능동적으로 보고하고, 시스템이 PCR 파티션에 저장한다.
S215: PCR 파티션을 신뢰할 수 있으면, 부트 로더를 호출하여 상기 커널 코드를 메모리로 읽어내고, 부트 로더를 호출하여, PCR 파티션 내에 기 저장된 제1 완전 알고리즘 및 커널 코드 기준 측정값에 따라, 커널 코드를 신뢰할 수 있는지를 측정한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 203의 대응하는 내용을 참조할 수 있다.
구체적으로, PCR 파티션을 신뢰할 수 있으면, 시스템은 부트 로더를 호출하여 상기 커널 코드를 메모리로 읽어내고, 부트 로더를 호출하여 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 커널 코드 실제 측정값이 PCR 파티션으로부터 획득된, 커널 코드의 기준 측정값과 동일한지를 비교하여, 커널 코드를 신뢰할 수 있는지를 측정하고, 커널 코드 실제 측정값이 커널 코드 기준 측정값과 동일하면, 이는 커널 코드는 신뢰할 수 있음을 나타낸다.
S216: PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득한다.
도 2a에 도시된 실시예 중 단계 204 전에, 시스템은 PCR 파티션으로부터 부트 로더 기준 측정값을 더 먼저 획득할 수 있고, 기준 측정값은, 시스템이 처음으로 시작될 때, 부트 로더가 제2 완전 알고리즘에 따라 부트 로더에 대응하는 표준값을 계산한 후, 부트 로더가 시스템에 능동적으로 보고하고, 시스템이 PCR 파티션에 저장한다.
S217: 커널 코드를 신뢰할 수 있으면, 커널 코드를 초기화하여 초기화된 커널로 하여금 제2 완전 알고리즘에 따라 부트 로더를 신뢰할 수 있는지 측정하도록 트리거한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 204의 대응하는 내용을 참조할 수 있다.
구체적으로, 커널 코드를 신뢰할 수 있으면, 시스템은 먼저 커널 코드를 초기화하여 초기화된 커널로 하여금 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하도록 트리거하고, 부트 로더 실제 측정값이 PCR 파티션으로부터 획득된 부트 로더의 기준 측정값과 비교하여 부트 로더를 신뢰할 수 있는지 측정하고, 부트 로더 실제 측정값이 부트 로더 기준 측정값과 동일하면, 이는 부트 로더를 신뢰할 수 있음을 나타낸다.
S218: 부트 로더를 신뢰할 수 있으면 커널을 시작한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 105의 대응하는 내용을 참조할 수 있다.
본 발명에 제공된 신뢰 커널 시작 방법에 따라, 보안 부팅 모듈 부트 로더가 시작되고; 부트 로더가 호출되어 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정하고; PCR 파티션을 신뢰할 수 있으면, 부트 로더가 호출되어 커널 코드를 메모리로 읽어들이고, 부트 로더가 호출되어, 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 커널 코드를 신뢰할 수 있는지 측정하고; 커널 코드를 신뢰할 수 있으면, 커널 코드는 초기화되어 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라 부트 로더를 신뢰할 수 있는지 측정하고; 부트 로더를 신뢰할 수 있으면, 커널이 시작된다. 이 해결 수단에서, 커널 시작 보안이 어느 정도 향상된다.
도 2c는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다. 이 실시예의 신뢰 커널 시작 방법은 도 2a에 도시된 실시예의 구체적인 구현 방식이다. 도 2c에 도시된 것처럼, 단계 221 내지 225의 내용에 대해서, 단계 201 내지 205의 대응되는 내용을 참조할 수 있고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에서, 도 2a에 도시된 방법에 기초하여, 단계 205 이후, 신뢰 커널 시작 방법은 다음 단계를 더 포함한다:
S226: 커널을 호출하여, 제2 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 ?G정한다.
제3 완전 알고리즘도 제1 완전 알고리즘과 같이, 시스템의 저장 유닛에 기 저장되어 있고, 제3 완전 알고리즘이 구체적으로 인용하는 알고리즘의 유형은 제1 완전 알고리즘이 인용하는 알고리즘의 유형과 동일할 수 있거나, 또는 제3 완전 알고리즘이 구체적으로 인용하는 알고리즘의 유형은 전술한 열거된 알고리즘 중 임의의 하나이다. 그리고 제3 완전 알고리즘의 구체적인 측정 과정도 또한 제1 완전 알고리즘을 사용하여 커널 코드의 신뢰성을 측정하는 방법 및 원리와 동일하고, 세부사항은 이 실시예에서 여기서 다시 설명되지 않는다.
구체적으로, 커널 시작이 완료되면, 시스템은 커널을 호출하여 제3 완전 알고리즘에 따라 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정할 수 있다.
구체적인 측정 방법은 다음과 같다: 시스템은 PCR 파티션으로부터 커널 보안 관리 강화 모듈 기준 측정값을 먼저 획득하고, 기준 측정값은, 시스템이 처음으로 시작될 때, 커널 보안 관리 강화 모듈이 측정 대상으로서 커널 보안 관리 강화 모듈에 대응하는 이미지 파일을 사용하고 제3 완전 알고리즘에 따라 커널 보안 관리 강화 모듈에 대응하는 표준값을 계산한 후, 커널 보안 관리 강화 모듈이 시스템에 능동적으로 보고하고, 시스템이 PCR 파티션에 저장한다.
추가적으로, 시스템은 커널을 호출하여 제3 완전 알고리즘에 따라 현재 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 커널 보안 관리 강화 모듈 실제 측정값이 PCR 파티션으로부터 획득된, 커널 보안 관리 강화 모듈의 기준 측정값과 동일한지 비교하여, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하고, 커널 보안 관리 강화 모듈 실제 측정값이 커널 보안 관리 강화 모듈 기준 측정값과 동일하면, 이는 커널 보안 관리 강화 모듈을 신뢰할 수 있음을 나타낸다.
S227: 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작한다.
커널 보안 관리 강화 모듈을 신뢰할 수 있을 때, 커널은 동적으로 커널 보안 관리 강화 모듈을 로딩하고, 전체 시스템을 시작하고, 이는 시스템의 정상적인 작동 환경에서 실행되기 위해 필요한 모든 프로그램을 포함한다.
나아가, 도 2d에 도시된 것처럼, 단계 227 이후, 즉 운영 체계가 정상적인 시작을 완료한 후, 운영 체계가 각각의 애플리케이션 프로그램을 시작하기 전에, 운영 체계는 운영 체계의 보안을 보장하기 위해 다음 단계들(S238 및 S239)을 더 실행할 수 있다. 도 2d에 도시된 것처럼, 단계 231 내지 237의 내용에 대해서, 단계 221 내지 227의 대응되는 내용을 참조할 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
S238: 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정한다.
제4 완전 알고리즘도 제1 완전 알고리즘과 같이, 시스템의 저장 유닛에 기 저장되어 있고, 제4 완전 알고리즘이 구체적으로 인용하는 알고리즘의 유형은 제1 완전 알고리즘이 인용하는 알고리즘의 유형과 동일할 수 있거나, 또는 제4 완전 알고리즘이 구체적으로 인용하는 알고리즘의 유형은 전술한 열거된 알고리즘 중 임의의 하나이다. 그리고 제4 완전 알고리즘의 구체적인 측정 과정도 또한 제1 완전 알고리즘을 사용하여 커널 코드의 신뢰성을 측정하는 방법 및 원리와 동일하고, 세부사항은 이 실시예에서 여기서 다시 설명되지 않는다.
구체적인 측정 방법은 다음과 같다: 시스템은 PCR 파티션으로부터 시작할 애플리케이션 프로그램의 기준 측정값을 먼저 획득하고, 기준 측정값은, 대응하는 애플리케이션 프로그램이 처음으로 시작될 때, 시스템이 커널 보안 관리 강화 모듈을 호출하여 측정 대상으로서 애플리케이션 프로그램에 대응하는 이미지 파일을 사용하고 제4 완전 알고리즘에 따라 애플리케이션 프로그램에 대응하는 표준값을 계산한 후, 시스템에 능동적으로 보고되고, 시스템이 PCR 파티션에 저장한다.
추가적으로, 시스템은 커널 보안 관리 강화 모듈을 호출하여 제4 완전 알고리즘에 따라 애플리케이션 프로그램의 현재 실제 측정값을 계산하고, 애플리케이션 프로그램의 실제 측정값이 PCR 파티션으로부터 획득된, 애플리케이션 프로그램의 기준 측정값과 동일한지 비교하여, 애플리케이션 프로그램을 신뢰할 수 있는지 측정하고, 애플리케이션 프로그램의 실제 측정값이 애플리케이션 프로그램의 기준 측정값과 동일하면, 이는 애플리케이션 프로그램을 신뢰할 수 있음을 나타낸다.
S239: 애플리케이션 프로그램을 신뢰할 수 있으면, 시스템은 애플리케이션 프로그램을 시작한다.
반대로, 애플리케이션 프로그램의 실제 측정값이 애플리케이션 프로그램의 기준 측정값과 동일하지 않으면, 이는 애플리케이션 프로그램을 신뢰할 수 없음을 나타낸다. 이런 경우, 커널 보안 관리 강화 모듈은 능동적으로 시스템에 현재의 애플리케이션 프로그램을 신뢰할 수 없음을 통지하고, 시작을 계속 실행할지의 지시를 요청한다. 그 후, 사용자는 시스템에 의해 대응하는 정보 윈도를 팝업하는 방식으로 계속 시작을 실행할지를 결정한다.
이 실시예 내의 단계 236 및 단계 237 또는 단계 236 내지 239는 도 2b에 도시된 실시예 중의 단계 218 이후에도 실행될 수 있음이 이해될 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
본 발명에서 제공된 신뢰 커널 시작 방법에 따라, 보안 부팅 모듈 부트 로더가 시작되고; 부트 로더가 호출되어, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지 측정하고; PCR 파티션을 측정할 수 있으면 부트 로더가 호출되어 커널 코드를 메모리로 읽어들이고, 부트 로더가 호출되어 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 커널 코드를 신뢰할 수 있는지를 측정하고; 커널 코드를 신뢰할 수 있으면, 커널 코드가 초기화되어 초기화된 커널 코드로 하여금, 제2 완전 알고리즘에 따라, 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하고, 부트 로더를 신뢰할 수 있으면, 커널이 시작되고; 커널이 호출되어, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하고; 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작한다. 이 해결 수단에서, 커널 시작 보안 및 운영 체계 시작 보안이 어느 정도 향상된다.
도 3a는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다. 도 3a에서 도시되는 것처럼, 신뢰 커널 시작 방법은 구체적으로 다음 단계들을 포함한다:
S301: 보안 부팅 모듈 부트 로더를 시작한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 201의 대응하는 내용을 참조할 수 있다.
S302: 상기 부트 로더를 호출하여, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 202의 대응하는 내용을 참조할 수 있다.
S303: 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정한다. 이 단계를 실행하는 구체적인 과정에 대해, 단계 203의 대응하는 내용을 참조할 수 있다.
S304: 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 실행하여 상기 커널을 시작한다.
구체적으로, 부트 로더가 호출되어, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있음을 측정할 때, 시스템은 커널 코드를 완전히 시작하고 OS가 SDRAM 내에서 실행하도록 하여, OS가 최종적으로 SDRAM 내에서 실행하도록 한다. 반대로, 부트 로더가 호출되어, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 없음을 측정할 때, 부트 로더는 시스템에 PCR 보안 측정이 실패함을 통지하고, 시스템에 시스템 시작 절차를 중단하고 장치를 전원 오프할 것을 환기한다.
이 실시예에 도시된 신뢰 커널 시작 방법에서, 도 2a에 도시된 실시예와 비교하면, 커널이 시작 과정에서 부트 로더를 다시 측정하는 것이 삭제되고, 전체 커널이 직접 시작되며, 이는 커널 절차를 어느 정도 단순화한다. 커널이 시작될 때의 보안도, 커널이 로딩되기 전에 PCR 파티션의 보안을 측정함으로써 향상된다.
도 3b는 본 발명에 따르는 신뢰 커널 시작 방법의 다른 하나의 실시예의 플로우차트이다. 이 실시예의 신뢰 커널 시작 방법은 도 3a에 도시된 실시예의 구체적인 구현 방식이다. 도 3b에 도시된 것처럼, 신뢰 커널 시작 방법은 구체적으로 다음 단계들을 포함한다:
S311: 보안 부팅 모듈 부트 로더를 시작한다.
S312: 환경(ENV) 파티션 내에 기 저장된 PCR 파티션의 기준 측정값을 획득한다.
S313: 부트 로더를 호출하여, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지를 측정한다.
S314: PCR 파티션 내에 기 저장된 커널 코드 기준 측정값을 획득한다.
S315: PCR 파티션을 신뢰할 수 있으면, 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 부트 로더를 호출하여, 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 커널 코드를 신뢰할 수 있는지를 측정한다.
S316: 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 실행하여 상기 커널을 시작한다.
단계 311 내지 315를 실행하는 구체적인 과정에 대해서, 단계 211 내지 215의 대응되는 내용을 참조할 수 있고, 단계 316을 실행하는 구체적인 과정에 대해서, 단계 304의 대응되는 내용을 참조할 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
이 실시예에 도시된 신뢰 커널 시작 방법에서, 도 2b에 도시된 실시예와 비교하면, 커널이 시작 과정에서 부트 로더를 다시 측정하는 것이 삭제되고, 전체 커널이 직접 시작되며, 이는 커널 절차를 어느 정도 단순화한다.
커널이 시작될 때의 보안도, 커널이 로딩되기 전에 PCR 파티션의 보안을 측정함으로써 향상된다.
도 3c는 본 발명에 따르는 신뢰 커널 시작 방법의 또 다른 하나의 실시예의 플로우차트이다. 이 실시예의 신뢰 커널 시작 방법은 도 3a에 도시된 실시예의 구체적인 구현 방식이다. 도 3c에 도시된 것처럼, 도 3a에 도시된 방법에 기초해서, 단계 304 후에, 신뢰 커널 시작 방법은 다음 단계들을 더 포함한다:
S325: 커널을 호출하여 제2 완전 알고리즘에 따라 부트 로더를 신뢰할 수 있는지를 측정한다.
S326: 부트 로더를 신뢰할 수 있으면, 커널을 호출하여, 제3 완전 알고리즘에 따라 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정한다.
S327: 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작한다.
도 3c에 도시된 것처럼, 단계 321 내지 324의 내용에 대해서, 단계 301 내지 304의 대응되는 내용을 참조할 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
나아가, 도 3d에 도시된 것처럼, 단계 327 이후, 즉 운영 체계가 정상적인 시작을 완료한 후, 운영 체계가 각각의 애플리케이션 프로그램을 시작하기 전에, 운영 체계는 운영 체계의 보안을 보장하기 위해 다음 단계들(S338 및 S339)을 더 실행할 수 있다.
S338: 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정한다.
S339: 애플리케이션 프로그램을 신뢰할 수 있으면, 시스템이 상기 애플리케이션 프로그램을 시작한다.
단계 338 내지 339를 실행하는 구체적인 과정에 대해서, 단계 238 내지 239의 대응되는 내용을 참조할 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
이 실시예 내의 단계 336 및 단계 337 또는 단계 336 내지 339는 도 3b에 도시된 실시예 중의 단계 316 이후에도 실행될 수 있음이 이해될 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
나아가, 단계 335 전에, 상기 방법은 다음을 더 포함할 수 있다: PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득한다. 상기 단계를 실행하는 구체적인 과정에 대해서, 단계 216의 대응되는 내용을 참조할 수 있다.
나아가 단계 335를 실행하는 구체적인 과정에 대해서, 단계 217의 대응되는 내용을 참조할 수 있다.
이 실시예에 도시된 신뢰 커널 시작 방법에서, 도 2b에 도시된 실시예와 비교하면, 커널이 시작 과정에서 부트 로더를 다시 측정하는 것이 삭제되고, 전체 커널이 직접 시작된다; 그러면 시작된 커널이 호출되어 부트 로더 상의 보안 측정을 실행하고, 이는 커널 시작 과정을 어느 정도 단순화하고 운영 체계 시작 보안을 보장한다.
이 기술분야의 통상의 기술자는 방법 실시예의 전부 또는 일부 단계들이 프로그램 명령 관련된 하드웨어로 구현될 수 있음을 이해할 수 있다. 프로그램은 컴퓨터 독출 가능 저장 매체에 저장될 수 있다. 프로그램이 실행될 때, 방법 실시예의 단계들이 수행된다. 전술한 저장 매체는, ROM, RAM, 자기 디스크, 또는 광 디스크 같은 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
도 4a는 본 발명에 따르는 신뢰 커널 시작 장치의 실시예의 도식적 구조 다이어그램이다. 상기 장치는 내장된 시작 시스템, 또는 예를 들어 도 1에 도시된 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈과 같은, 상기 시스템에 새로 부가된 고정된 기능 모듈일 수 있다. 신뢰 커널 시작 장치는 도 2의 신뢰 커널 시작 방법을 수행할 수 있다. 도 4에 도시된 바와 같이, 신뢰 커널 시작 장치는 구체적으로, 부트 시작 모듈(401), 제1 측정 모듈(402), 제2 측정 모듈(403), 및 커널 시작 모듈(404)를 포함하고,
부트 시작 모듈(401)이 보안 부팅 모듈 부트 로더를 시작하도록 구성되고;
제1 측정 모듈(402)이 상기 부트 로더를 호출하여, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지 측정하도록 구성되고,
상기 제1 측정 모듈(402)이, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하도록 더 구성되고;
제2 측정 모듈(403)이, 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하도록 구성되고,
커널 시작 모듈(404)이, 부트 로더를 신뢰할 수 있으면 커널을 시작하도록 구성된다.
나아가, 도 4b에 도시된 것처럼, 411 내지 414의 구체적인 기능은 도 4a에 도시된 401 내지 404의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에 제공된 신뢰 커널 시작 장치는 획득 모듈(415)을 더 포함할 수 있고, 상기 획득 모듈(415)은,
환경(ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하고; PCR 파티션 내에 기 저장된 커널 코드 기준 측정값을 획득하고; PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하도록 구성되고, 도 4b에 도시된 실시예에서, 도 2b에 도시된 실시예의 방법 단계들이 도 4b에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
나아가, 도 4c에 도시된 것처럼, 421 내지 424의 구체적인 기능은 도 4a에 도시된 401 내지 404의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에서 제공되는 신뢰 커널 시작 장치는 다음을 포함한다:
상기 제2 측정 모듈(423)은, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되고;
도 4c에 도시된 것처럼, 신뢰 커널 시작 장치는, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는 시스템 시작 모듈(426)을 더 포함할 수 있다.
도 2c에 도시된 실시예의 방법 단계들이 도 4c에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
나아가, 도 4d에 도시된 것처럼, 431 내지 434의 구체적인 기능은 도 4c에 도시된 421 내지 426의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에 제공된 신뢰 커널 시작 장치는 다음 구성을 더 포함할 수 있다:
커널 보안 관리 강화 모듈을 호출하여, 제4 보안 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 모듈(437); 및
애플리케이션 프로그램을 신뢰할 수 있으면 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 모듈(438).
도 2d에 도시된 실시예의 방법 단계들이 도 4d에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
나아가, 도 4e에 도시된 것처럼, 441 내지 445의 구체적인 기능은 도 4b에 도시된 411 내지 415의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에서 제공되는 신뢰 커널 시작 장치는 다음을 포함한다:
제2 측정 유닛(443)은 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되고;
획득 유닛(445)은 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하도록 더 구성되고,
도 4e에 도시된 것처럼, 신뢰 커널 시작 장치는, 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는 시스템 시작 모듈(446)을 더 포함할 수 있다.
나아가, 도 4f에 도시된 것처럼, 451 내지 456의 구체적인 기능은 도 4e에 도시된 441 내지 446의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에서 제공되는 신뢰 커널 시작 장치는 다음을 포함한다:
획득 모듈(455)은 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하도록 더 구성된다.
도 4f에 도시된 것처럼, 신뢰 커널 시작 장치는 다음 구성을 더 포함할 수 있다:
커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 모듈(457); 및
애플리케이션 프로그램을 신뢰할 수 있으면 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 모듈(458).
도 2a 내지 2d에 도시된 실시예의 방법 단계들이 도 4f에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
본 발명의 이 실시예에 제공된 신뢰 커널 시작 장치는, 보안 부팅 모듈 부트 로더를 시작하고; 부트 로더를 호출하여, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지 측정하고; PCR 파티션을 신뢰할 수 있으면, 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 부트 로더를 호출하여 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라 측정하고; 커널 코드를 신뢰할 수 있으면, 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하고; 부트 로더를 신뢰할 수 있으면 커널을 시작한다. 이 해결 수단에서, 커널 시작 보안이 어느 정도 향상된다.
도 5a는 본 발명에 따르는 신뢰 커널 시작 장치의 또 다른 하나의 실시예의 도식적 구조 다이어그램이다. 상기 장치는 내장된 시작 시스템, 또는 예를 들어 도 1에 도시된 신뢰할 수 있는 소프트-구성요소 플랫폼 모듈과 같은, 상기 시스템에 새로 부가된 고정된 기능 모듈일 수 있다. 신뢰 커널 시작 장치는 도 3a의 신뢰 커널 시작 방법을 수행할 수 있다. 도 5a에 도시된 바와 같이, 신뢰 커널 시작 장치는 구체적으로, 부트 시작 유닛(501), 제1 측정 유닛(502), 제2 측정 유닛(503), 및 커널 시작 유닛(504)를 포함하고,
부트 시작 유닛(501)이 보안 부팅 모듈 부트 로더를 시작하도록 구성되고;
제1 측정 유닛(502)이 상기 부트 로더를 호출하여, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지 측정하도록 구성되고,
상기 제1 측정 유닛(502)이, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하도록 더 구성되고;
커널 시작 유닛(503)이, 부트 로더를 신뢰할 수 있으면 커널을 시작하도록 구성된다.
나아가, 도 5b에 도시된 것처럼, 511 내지 513의 구체적인 기능은 도 5a에 도시된 501 내지 503의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에 제공된 신뢰 커널 시작 장치는 획득 유닛(514)을 더 포함할 수 있고, 상기 획득 유닛(514)은,
환경(ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하고; PCR 파티션 내에 기 저장된 커널 코드 기준 측정값을 획득하도록 구성된다.
도 3b에 도시된 실시예의 방법 단계들이 도 5b에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
나아가, 도 5c에 도시된 것처럼, 521 내지 523의 구체적인 기능은 도 5a에 도시된 501 내지 503의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에 제공된 신뢰 커널 시작 장치는 다음 구성을 더 포함할 수 있다.
커널을 호출하여, 제2 완전 알고리즘에 따라, 부트 로더를 신뢰할 수 있는지를 측정하도록 구성되고,
부트 로더를 신뢰할 수 있으면, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되는 제2 측정 유닛(525); 및
커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는 시스템 시작 유닛(526).
도 3c에 도시된 실시예의 방법 단계들이 도 5c에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
나아가, 도 5d에 도시된 것처럼, 531 내지 533, 535 내지 536의 구체적인 기능은 도 5c에 도시된 521 내지 523 및 525 내지 526의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에 제공된 신뢰 커널 시작 장치는 다음 구성을 더 포함할 수 있다:
커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 유닛(537); 및
애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 유닛(538).
도 3d에 도시된 실시예의 방법 단계들이 도 5d에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
나아가, 도 5e에 도시된 것처럼, 541 내지 544의 구체적인 기능은 도 5b에 도시된 511 내지 514의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에 제공된 신뢰 커널 시작 장치는 다음 구성을 더 포함할 수 있다:
커널을 호출하여 부트 로더를 신뢰할 수 있는지를, 제2 완전 알고리즘에 의해 측정하도록 구성되고,
부트 로더를 신뢰할 수 있으면, 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되는 제2 측정 유닛, 및
커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는 시스템 시작 유닛(546).
도 5e에 도시된 신뢰 커널 시작 장치에서, 획득 유닛(544)는 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하고; PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하도록 더 구성된다.
나아가, 도 5f에 도시된 것처럼, 551 내지 556의 구체적인 기능은 도 5e에 도시된 541 내지 546의 기능과 대응하여 동일하고, 세부사항은 여기서 다시 설명되지 않는다. 이 실시예에서 제공되는 신뢰 커널 시작 장치:
획득 유닛(455)은 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하도록 더 구성된다.
도 5f에 도시된 것처럼, 신뢰 커널 시작 장치는 다음 구성을 더 포함할 수 있다:
커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 유닛(557); 및
애플리케이션 프로그램을 신뢰할 수 있으면 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 유닛(558).
도 3a 내지 3d에 도시된 실시예의 방법 단계들이 도 5f에 도시된 신뢰 커널 시작 장치에 의해 수행될 수 있다.
이 실시예에 도시된 신뢰 커널 시작 장치는, 보안 부팅 모듈 부트 로더를 시작하고; 부트 로더를 호출하여, 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(PCR) 파티션을 신뢰할 수 있는지 측정하고; PCR 파티션을 신뢰할 수 있으면, 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하고; 부트 로더를 신뢰할 수 있으면 커널을 시작한다. 도 4a에 도시된 실시예와 비교하면, 커널이 시작 과정에서 부트 로더를 다시 측정하는 것이 삭제되고, 전체 커널이 직접 시작되며, 이는 커널 절차를 어느 정도 단순화한다. 커널이 시작될 때의 보안도, 커널이 로딩되기 전에 PCR 파티션의 보안을 측정함으로써 향상된다.
이 기술분야의 통상의 기술자는, 편리하고 및 간략한 설명을 위해, 전술한 기능 모듈의 분할이 예증을 위한 위해 예로 든 것이라는 것을 명백하게 이해할 수 있다. 실제 응용에서는, 전술한 기능이 다른 기능 모듈에 할당되고 요구에 따라 구현될 수 있다. 즉, 장치의 내부 구조가 다른 기능 모듈로 분할되어 위에서 설명한 기능의 전부 또는 일부를 구현할 수 있다. 전술한 시스템, 장치, 및 유닛의 세부적인 작동 과정에 대해, 전술한 방법 실시예에서 대응되는 과정을 참조할 수 있고, 세부사항은 여기서 다시 설명되지 않는다.
이 출원에서 제공된 일부 실시예들에서, 개시된 시스템, 장치 및 방법이 다른 방식으로 구현될 수 있음을 이해하여야 한다. 예를 들어, 설명된 장치 실시예는 단지 예시적인 것이다. 예를 들어, 모듈 또는 유닛 분할은 논리적인 기능 분할일 뿐이고, 실제 구현에서 다른 분할일 수 있다. 예를 들어, 복수의 유닛들 또는 구성요소들이 다른 시스템으로 결합 또는 조립될 수 있거나, 또는 일부 특징들이 무시되거나 실행되지 않을 수 있다. 추가적으로, 표시되고 논의된 상호 결합 또는 직접 결합 또는 통신 연결은 일부 인터페이스를 사용하여 구현될 수 있다. 장치들 또는 유닛들 간의 간접적 결합 또는 통신 연결은 전기적, 기계적 또는 다른 형태로 구현될 수 있다.
분리된 부품들로 설명된 유닛들은 물리적으로 분리될 수도 분리되지 않을 수도 있고, 유닛들로 표시된 부품들은 물리적 유닛일 수도 아닐 수도 있고, 한 위치에 위치할 수도 있고, 복수의 네트워크 유닛들 상에 분포되어 있을 수도 있다. 일부 또는 전부의 유닛들이 실시예의 해결 수단의 목적을 달성하기 위한 실제 필요에 따라 선택될 수 있다.
추가적으로, 본 출원의 실시예들의 기능적 유닛들은 하나의 처리 유닛으로 조립되거나, 또는 각각의 유닛이 물리적으로 단독적으로 존재하거나, 또는 2개 또는 그 이상의 유닛이 하나의 유닛으로 조립될 수 있다. 조립된 유닛은 하드웨어의 형태로 구현될 수도 있고, 또는 소프트웨어 기능 유닛의 형태로 구현될 수도 있다.
전술한 조립된 유닛이 소프트웨어 기능 유닛의 형태로 구현되고 독립적인 제품으로서 판매 또는 사용될 때, 조립된 유닛은 컴퓨터 판독가능 저장 매체 내에 저장될 수 있다. 그러한 이해에 기초해서, 본 출원의 기술적 해결수단은 본질상, 또는 종래 기술에 공한 부분은, 또는 모든 또는 일부 기술적 해결수단은 소프트웨어 제품의 형태로 구현될 수 있다. 소프트웨어 제품은 저장 매체 내에 저장되고, 본 출원의 실시예에서 설명된 방법의 단계들의 전부 또는 일부를 실행하도록 컴퓨터 장치(개인 컴퓨터, 서버, 또는 네트워크 장치일 수 있음) 또는 프로세서를 명령하기 위한 몇몇 명령어를 포함한다. 전술한 저장 매체는, USB 플래시 드라이브, 외장 하드 디스크, ROM(Read-Only Memory), RAM(Random Access Memory), 자기 디스크, 또는 광 디스크와 같이 프로그램 코드를 저장할 수 있는 임의의 매체를 포함한다.
전술한 실시예는 단지 본 출원의 기술적 해결수단을 설명하기 위해 의도되었을 뿐이다. 본 출원이 전술한 실시예에 관하여 상세하게 설명되었으나, 이 기술분야의 통상의 기술자는 그들이 여전히, 본 출원의 실시예의 기술적 해결수단의 정신 및 범주로부터 벗어나지 않으면서, 전술한 실시예에 기술된 기술적 해결수단에 수정을 가할 수 있거나, 또는 그 기술적 특징에 대한 균등한 치환을 할 수 있음을 이해하여야 한다.

Claims (36)

  1. 신뢰 커널 시작 방법으로서,
    보안 부팅 모듈 부트 로더(boot loader)를 시작하는 단계;
    상기 부트 로더를 호출하여(invoke) 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 PCR 파티션 기준 측정값과 동일한지를 비교하여, PCR 파티션을 신뢰할 수 있는지 측정(measure)하는 단계 - 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션은 신뢰할 수 있는 것임 - ;
    상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 제1 완전 알고리즘 및 PCR 파티션에 기 저장된 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계;
    상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하는 단계; 및
    상기 부트 로더를 신뢰할 수 있으면 상기 커널을 시작하는 단계
    를 포함하는 신뢰 커널 시작 방법.
  2. 제1항에 있어서,
    환경(environment, ENV) 파티션 내에 기 저장된 상기 PCR 파티션 기준 측정값을 획득하는 단계를 더 포함하는, 신뢰 커널 시작 방법.
  3. 제2항에 있어서,
    상기 환경(ENV) 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하는 단계는,
    사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성하는 단계; 및
    상기 ENV 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하기 위해, 상기 루트 키를 사용하여 상기 ENV 파티션을 해독하는 단계를 포함하는, 신뢰 커널 시작 방법.
  4. 제1항에 있어서,
    상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 상기 커널 코드 기준 측정값을 획득하는 단계를 더 포함하고,
    상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계는,
    상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 상기 커널 코드를 상기 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일한지를 비교하여, 상기 커널 코드를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일하면 상기 커널 코드는 신뢰할 수 있는 것인, 신뢰 커널 시작 방법.
  5. 제1항에 있어서,
    상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하는 단계를 더 포함하고,
    상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하는 단계는,
    상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 상기 초기화된 커널로 하여금, 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하도록 트리거하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더는 신뢰할 수 있는 것인, 신뢰 커널 시작 방법.
  6. 제1항에 있어서,
    상기 커널을 시작하는 단계 이후에,
    상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계; 및
    상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하는 단계를 더 포함하는 신뢰 커널 시작 방법.
  7. 제6항에 있어서,
    상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하는 단계를 더 포함하고,
    상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계는,
    상기 커널을 호출하여 상기 제3 보안 알고리즘에 따라, 상기 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일한지를 비교하여, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일하면 상기 커널 보안 관리 강화 모듈은 신뢰할 수 있는 것인, 신뢰 커널 시작 방법.
  8. 제6항에 있어서,
    상기 운영 체계를 시작하는 단계 이후에,
    상기 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하는 단계; 및
    상기 애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하는 단계를 더 포함하는 신뢰 커널 시작 방법.
  9. 제8항에 있어서,
    상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하는 단계를 더 포함하고,
    상기 커널 보안 관리 강화 모듈을 호출하여, 제4 보안 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지 측정하도록 하는 단계는,
    상기 커널 보안 관리 강화 모듈을 호출하여, 상기 제4 보안 알고리즘에 따라, 상기 애플리케이션 프로그램의 실제 측정값을 계산하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일한지를 비교하여, 상기 애플리케이션 프로그램을 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일하면 상기 애플리케이션 프로그램은 신뢰할 수 있는 것인, 신뢰 커널 시작 방법.
  10. 신뢰 커널 시작 방법으로서,
    보안 부팅 모듈 부트 로더(boot loader)를 시작하는 단계;
    상기 부트 로더를 호출하여(invoke) 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 PCR 파티션 기준 측정값과 동일한지를 비교하여, PCR 파티션을 신뢰할 수 있는지 측정(measure)하는 단계 - 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션은 신뢰할 수 있는 것임 - ;
    상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라, 상기 커널 코드를 신뢰할 수 있는지를 측정하는 단계,
    상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 실행하여 커널을 시작하는 단계
    를 포함하는 신뢰 커널 시작 방법.
  11. 제10항에 있어서,
    상기 커널 코드를 실행하여 커널을 시작하는 단계 이후에,
    상기 커널을 호출하여 제2 완전 알고리즘에 따라 상기 부트 로더를 신뢰할 수 있는지를 측정하는 단계;
    상기 부트 로더를 신뢰할 수 있으면, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하는 단계; 및
    상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하는 단계를 더 포함하는 신뢰 커널 시작 방법.
  12. 제11항에 있어서,
    상기 신뢰 커널 시작 방법이, 상기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하는 단계를 더 포함하고,
    상기 커널을 호출하여, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하는 단계는,
    상기 커널을 호출하여, 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하는 단계를 포함하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더는 신뢰할 수 있는 것인, 신뢰 커널 시작 방법.
  13. 신뢰 커널 시작 장치로서,
    보안 부팅 모듈 부트 로더(boot loader)를 시작하도록 구성되는 부트 시작 모듈; 및
    상기 부트 로더를 호출하여(invoke) 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 PCR 파티션 기준 측정값과 동일한지를 비교하여, PCR 파티션을 신뢰할 수 있는지 측정(measure)하도록 구성되고 - 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션은 신뢰할 수 있는 것임 - , 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하도록 구성되는 제1 측정 모듈;
    상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 초기화된 커널로 하여금, 제2 완전 알고리즘에 따라, 상기 부트 로더를 신뢰할 수 있는지를 측정하도록 트리거하도록 구성되는 제2 측정 모듈; 및
    상기 부트 로더를 신뢰할 수 있으면 커널을 시작하도록 구성되는 커널 시작 모듈
    을 포함하는 신뢰 커널 시작 장치.
  14. 제13항에 있어서,
    환경(environment, ENV) 파티션 내에 기 저장된 상기 PCR 파티션 기준 측정값을 획득하도록 구성된 획득 모듈을 더 포함하는, 신뢰 커널 시작 장치.
  15. 제14항에 있어서,
    상기 획득 모듈은 구체적으로, 사용자가 입력한 PIN에 기초하여 루트 키(root key)를 생성하고, 상기 ENV 파티션 내에 기 저장된 PCR 파티션 기준 측정값을 획득하기 위해, 상기 루트 키를 사용하여 상기 ENV 파티션을 해독하도록 구성되는, 신뢰 커널 시작 장치.
  16. 제13항에 있어서,
    상기 신뢰 커널 시작 장치는, 상기 PCR 파티션 내에 기 저장된 상기 커널 코드 기준 측정값을 획득하도록 구성된 획득 모듈을 더 포함하고,
    상기 제1 측정 모듈은 구체적으로, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 상기 커널 코드를 상기 메모리로 읽어내고, 상기 부트 로더를 호출하여, 상기 제1 완전 알고리즘에 따라 커널 코드 실제 측정값을 계산하고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일한지를 비교하여, 상기 커널 코드를 신뢰할 수 있는지 측정하도록 구성되고, 상기 커널 코드 실제 측정값이 상기 커널 코드 기준 측정값과 동일하면 상기 커널 코드를 신뢰할 수 있는 것인, 신뢰 커널 시작 장치.
  17. 제13항에 있어서,
    상기 신뢰 커널 시작 장치는, 상기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하도록 구성된 획득 모듈을 더 포함하고,
    상기 제2 측정 모듈은 구체적으로, 상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드를 초기화하여 상기 초기화된 커널로 하여금, 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하도록 트리거하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하도록 구성되고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더를 신뢰할 수 있는 것인, 신뢰 커널 시작 장치.
  18. 제17항에 있어서,
    상기 신뢰 커널 시작 장치는 시스템 시작 모듈을 더 포함하고,
    상기 제2 측정 모듈은, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되고,
    상기 시스템 시작 모듈은 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는, 신뢰 커널 시작 장치.
  19. 제18항에 있어서,
    상기 획득 모듈은 상기 PCR 파티션 내에 기 저장된 커널 보안 관리 강화 모듈 기준 측정값을 획득하도록 더 구성되고,
    상기 제2 측정 모듈은 구체적으로, 상기 커널을 호출하여 상기 제3 보안 알고리즘에 따라 상기 커널 보안 관리 강화 모듈 실제 측정값을 계산하고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일한지를 비교하여, 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는지 측정하도록 구성되고, 상기 커널 보안 관리 강화 모듈 실제 측정값이 상기 커널 보안 관리 강화 모듈 기준 측정값과 동일하면 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있는 것인, 신뢰 커널 시작 장치.
  20. 제18항에 있어서,
    상기 커널 보안 관리 강화 모듈을 호출하여, 제4 완전 알고리즘에 따라, 시작할 애플리케이션 프로그램을 신뢰할 수 있는지를 측정하도록 구성되는 제3 측정 모듈; 및
    상기 애플리케이션 프로그램을 신뢰할 수 있으면 상기 애플리케이션 프로그램을 시작하도록 구성되는 애플리케이션 프로그램 시작 모듈을 더 포함하는 신뢰 커널 시작 장치.
  21. 제20항에 있어서,
    상기 획득 모듈은 PCR 파티션 내에 기 저장된 상기 애플리케이션 프로그램의 기준 측정값을 획득하도록 더 구성되고,
    상기 제3 측정 모듈은 구체적으로, 상기 커널 보안 관리 강화 모듈을 호출하여 상기 제4 보안 알고리즘에 따라 상기 애플리케이션 프로그램의 실제 측정값을 계산하고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일한지를 비교하여, 상기 애플리케이션 프로그램을 신뢰할 수 있는지 측정하도록 구성되고, 상기 애플리케이션 프로그램의 실제 측정값이 상기 애플리케이션 프로그램의 기준 측정값과 동일하면 상기 애플리케이션 프로그램을 신뢰할 수 있는 것인, 신뢰 커널 시작 장치
  22. 신뢰 커널 시작 장치로서,
    보안 부팅 모듈 부트 로더(boot loader)를 시작하도록 구성되는 부트 시작 유닛; 및
    상기 부트 로더를 호출하여(invoke) 제1 보안 알고리즘에 따라 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션 실제 측정값을 계산하고, 상기 PCR 파티션 실제 측정값이 PCR 파티션 기준 측정값과 동일한지를 비교하여, PCR 파티션을 신뢰할 수 있는지 측정(measure)하도록 구성되고 - 상기 PCR 파티션 실제 측정값이 상기 PCR 파티션 기준 측정값과 동일하면 상기 PCR 파티션은 신뢰할 수 있는 것임 - , 상기 부트 로더를 호출하여(invoke), 제1 보안 알고리즘에 따라, 플랫폼 구성 레지스터(platform configuration register, PCR) 파티션을 신뢰할 수 있는지를 측정(measure)하도록 구성되고, 상기 PCR 파티션을 신뢰할 수 있으면, 상기 부트 로더를 호출하여 커널 코드를 메모리로 읽어내고, 상기 부트 로더를 호출하여 상기 커널 코드를 신뢰할 수 있는지를, 제1 완전 알고리즘 및 상기 PCR 파티션에 기 저장된 상기 커널 코드 기준 측정값에 따라 측정하도록 구성되는 제1 측정 유닛,
    상기 커널 코드를 신뢰할 수 있으면, 상기 커널 코드로 하여금 커널을 시작하도록 실행하도록 구성되는 커널 시작 유닛
    을 포함하는 신뢰 커널 시작 장치.
  23. 제22항에 있어서,
    상기 커널을 호출하여 상기 부트 로더를 신뢰할 수 있는지를, 제2 완전 알고리즘에 의해 측정하도록 구성되고, 상기 부트 로더를 신뢰할 수 있으면, 상기 커널을 호출하여, 제3 완전 알고리즘에 따라, 커널 보안 관리 강화 모듈을 신뢰할 수 있는지를 측정하도록 더 구성되는 제2 측정 유닛; 및 상기 커널 보안 관리 강화 모듈을 신뢰할 수 있으면 운영 체계를 시작하도록 구성되는 시스템 시작 유닛을 더 포함하는 신뢰 커널 시작 장치.
  24. 제23항에 있어서,
    상기 신뢰 커널 시작 장치는, 기 PCR 파티션 내에 기 저장된 부트 로더 기준 측정값을 획득하도록 구성되는 획득 유닛을 더 포함하고,
    상기 제2 측정 유닛은 구체적으로, 상기 커널을 호출하여 상기 제2 완전 알고리즘에 따라 부트 로더 실제 측정값을 계산하고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일한지를 비교하여, 상기 부트 로더를 신뢰할 수 있는지 측정하도록 구성되고, 상기 부트 로더 실제 측정값이 상기 부트 로더 기준 측정값과 동일하면 상기 부트 로더를 신뢰할 수 있는 것인, 신뢰 커널 시작 장치.
  25. 삭제
  26. 삭제
  27. 삭제
  28. 삭제
  29. 삭제
  30. 삭제
  31. 삭제
  32. 삭제
  33. 삭제
  34. 삭제
  35. 삭제
  36. 삭제
KR1020167026892A 2014-03-25 2015-03-11 신뢰 커널 시작 방법 및 장치 KR101894926B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201410114837.9A CN104951316B (zh) 2014-03-25 2014-03-25 一种内核可信启动方法和装置
CN201410114837.9 2014-03-25
PCT/CN2015/074003 WO2015143989A1 (zh) 2014-03-25 2015-03-11 一种内核可信启动方法和装置

Publications (2)

Publication Number Publication Date
KR20160130790A KR20160130790A (ko) 2016-11-14
KR101894926B1 true KR101894926B1 (ko) 2018-09-04

Family

ID=54165987

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167026892A KR101894926B1 (ko) 2014-03-25 2015-03-11 신뢰 커널 시작 방법 및 장치

Country Status (7)

Country Link
US (1) US10032030B2 (ko)
EP (1) EP3098712B1 (ko)
JP (1) JP6319609B2 (ko)
KR (1) KR101894926B1 (ko)
CN (1) CN104951316B (ko)
BR (1) BR112016021661B1 (ko)
WO (1) WO2015143989A1 (ko)

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106650455B (zh) * 2015-10-30 2021-09-24 中兴通讯股份有限公司 一种系统安全启动方法及装置
CN105678162B (zh) * 2016-02-03 2018-09-04 浪潮电子信息产业股份有限公司 一种基于tpm的操作系统安全启动控制方法
CN106384053A (zh) * 2016-09-14 2017-02-08 江苏北弓智能科技有限公司 移动操作系统可信启动方法和装置
CN109983465B (zh) * 2016-09-26 2023-05-16 迈可菲公司 增强的安全引导
CN106548063A (zh) * 2016-11-01 2017-03-29 广东浪潮大数据研究有限公司 一种可信度量方法、装置和系统
US10382436B2 (en) * 2016-11-22 2019-08-13 Daniel Chien Network security based on device identifiers and network addresses
US11074348B2 (en) * 2017-08-24 2021-07-27 International Business Machines Corporation Securing and changing immutable data in secure bootup
US11138315B2 (en) 2018-01-17 2021-10-05 Hewlett Packard Enterprise Development Lp Data structure measurement comparison
US11714910B2 (en) 2018-06-13 2023-08-01 Hewlett Packard Enterprise Development Lp Measuring integrity of computing system
US11188622B2 (en) 2018-09-28 2021-11-30 Daniel Chien Systems and methods for computer security
US10848489B2 (en) 2018-12-14 2020-11-24 Daniel Chien Timestamp-based authentication with redirection
US10826912B2 (en) 2018-12-14 2020-11-03 Daniel Chien Timestamp-based authentication
CN109871679A (zh) * 2018-12-27 2019-06-11 延锋伟世通电子科技(上海)有限公司 数据显示方法、系统、装置及介质
CN110109710B (zh) * 2019-05-15 2020-05-08 苏州浪潮智能科技有限公司 一种无物理可信根的os信任链构建方法与系统
CN110543769B (zh) * 2019-08-29 2023-09-15 武汉大学 一种基于加密tf卡的可信启动方法
US11677754B2 (en) 2019-12-09 2023-06-13 Daniel Chien Access control systems and methods
CN110851188B (zh) * 2019-12-18 2023-08-29 宁波和利时信息安全研究院有限公司 一种基于双体架构的国产plc可信链实现装置及方法
CN113127879B (zh) * 2019-12-31 2023-09-05 杭州海康威视数字技术股份有限公司 一种固件可信启动方法、电子设备及可读存储介质
KR20210097379A (ko) * 2020-01-30 2021-08-09 삼성전자주식회사 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법
US11509463B2 (en) 2020-05-31 2022-11-22 Daniel Chien Timestamp-based shared key generation
US11438145B2 (en) 2020-05-31 2022-09-06 Daniel Chien Shared key generation based on dual clocks
US11392705B1 (en) 2021-07-29 2022-07-19 Netskope, Inc. Disk encryption key management for booting of a device
CN114157593A (zh) * 2021-10-18 2022-03-08 深圳市亿联无限科技有限公司 一种路由器工厂模式的实现及切换方法
CN117556418A (zh) * 2022-08-03 2024-02-13 华为技术有限公司 一种确定内核状态的方法和相关设备
CN115357908B (zh) * 2022-10-19 2022-12-23 中国人民解放军军事科学院系统工程研究院 一种网络设备内核可信度量与自动修复方法
CN115618364B (zh) * 2022-12-16 2023-06-23 飞腾信息技术有限公司 实现安全可信启动的方法、安全架构系统及相关设备

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101122936A (zh) * 2007-09-21 2008-02-13 武汉大学 一种可信机制上的嵌入式平台引导
KR100872175B1 (ko) * 2006-12-01 2008-12-09 한국전자통신연구원 Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191464B2 (en) * 2001-10-16 2007-03-13 Lenovo Pte. Ltd. Method and system for tracking a secure boot in a trusted computing environment
JP4064914B2 (ja) 2003-12-02 2008-03-19 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、サーバ装置、情報処理装置のための方法、サーバ装置のための方法および装置実行可能なプログラム
US20050251857A1 (en) * 2004-05-03 2005-11-10 International Business Machines Corporation Method and device for verifying the security of a computing platform
KR100917290B1 (ko) * 2004-06-24 2009-09-11 인텔 코오퍼레이션 신뢰 플랫폼 모듈의 보안 가상화를 위한 방법 및 장치
US7716494B2 (en) * 2004-07-15 2010-05-11 Sony Corporation Establishing a trusted platform in a digital processing system
US7725703B2 (en) * 2005-01-07 2010-05-25 Microsoft Corporation Systems and methods for securely booting a computer with a trusted processing module
US9026771B2 (en) 2007-04-27 2015-05-05 Hewlett-Packard Development Company, L.P. Secure computer system update
US7853804B2 (en) * 2007-09-10 2010-12-14 Lenovo (Singapore) Pte. Ltd. System and method for secure data disposal
CN101504704B (zh) * 2009-03-17 2010-12-29 武汉大学 由星型信任链支持的嵌入式平台应用程序完整性验证方法
GB2482652B (en) * 2010-05-21 2016-08-24 Hewlett Packard Development Co Lp Extending integrity measurements in a trusted device using a policy register
CN102136044B (zh) * 2010-07-14 2013-08-28 华为技术有限公司 安全启动方法、装置及计算机系统
US8560845B2 (en) * 2011-01-14 2013-10-15 Apple Inc. System and method for tamper-resistant booting
US8775784B2 (en) * 2011-11-11 2014-07-08 International Business Machines Corporation Secure boot up of a computer based on a hardware based root of trust
CN103299311B (zh) 2011-12-29 2015-04-29 英特尔公司 用于可信引导优化的方法和设备
US8793504B2 (en) * 2012-02-22 2014-07-29 International Business Machines Corporation Validating a system with multiple subsystems using trusted platform modules and virtual platform modules
JP5980050B2 (ja) * 2012-08-29 2016-08-31 キヤノン株式会社 情報処理装置
CN103020518B (zh) * 2012-11-06 2015-07-08 中国科学院计算技术研究所 一种基于TPM的Linux内核初始化中的数据结构保护方法及系统
CN103020531B (zh) 2012-12-06 2015-05-27 中国科学院信息工程研究所 Android智能终端运行环境可信控制方法及系统
US9465943B2 (en) * 2013-01-31 2016-10-11 Red Hat, Inc. Extension of a platform configuration register with a known value
CN103150523B (zh) * 2013-03-07 2016-01-13 太原科技大学 一种简易的嵌入式可信终端系统及方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100872175B1 (ko) * 2006-12-01 2008-12-09 한국전자통신연구원 Tpm을 이용한 모바일 플랫폼의 보안 부팅 장치 및 방법
CN101122936A (zh) * 2007-09-21 2008-02-13 武汉大学 一种可信机制上的嵌入式平台引导

Also Published As

Publication number Publication date
CN104951316B (zh) 2018-09-21
US20170011219A1 (en) 2017-01-12
KR20160130790A (ko) 2016-11-14
BR112016021661B1 (pt) 2022-11-29
EP3098712A4 (en) 2017-03-01
JP2017515208A (ja) 2017-06-08
EP3098712A1 (en) 2016-11-30
US10032030B2 (en) 2018-07-24
EP3098712B1 (en) 2020-02-05
BR112016021661A2 (ko) 2017-08-15
JP6319609B2 (ja) 2018-05-09
WO2015143989A1 (zh) 2015-10-01
CN104951316A (zh) 2015-09-30

Similar Documents

Publication Publication Date Title
KR101894926B1 (ko) 신뢰 커널 시작 방법 및 장치
US10871953B2 (en) Application update method and apparatus
US9288155B2 (en) Computer system and virtual computer management method
US8904162B2 (en) Methods and apparatus for performing secure BIOS upgrade
CN109669734B (zh) 用于启动设备的方法和装置
US9690498B2 (en) Protected mode for securing computing devices
US7921286B2 (en) Computer initialization for secure kernel
EP2840492A1 (en) Method and apparatus for modifying a computer program in a trusted manner
CN110334515B (zh) 一种基于可信计算平台生成度量报告的方法及装置
US20210192050A1 (en) System validation by hardware root of trust (hrot) device and system management mode (smm)
CN113468535A (zh) 可信度量方法及相关装置
CN110674494B (zh) 进程的保护方法、系统及数据处理方法
CN113614723A (zh) 更新信号
US7492747B2 (en) Secure patch installation for WWAN systems
EP3338214B1 (en) Secure computation environment
CN111651769A (zh) 获取安全启动的度量方法和装置
CN112988262B (zh) 一种在目标平台上启动应用程序的方法及装置
WO2016184180A1 (zh) 一种系统安全启动方法及装置
US20200244461A1 (en) Data Processing Method and Apparatus
US10572668B2 (en) Operational verification
CN114077738A (zh) 快速外设组件互联设备启动方法、装置以及存储介质
CN112905300A (zh) 一种虚拟机可信启动方法及系统
Dang et al. Research on Key Technologies of Trusted Enhancement in Embedded Systems
CN112651030A (zh) 一种面向bmc固件系统安全的可信启动方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
GRNT Written decision to grant