KR20150103376A - 플랫폼 부트 펌웨어에 대한 신뢰의 연속성 - Google Patents

플랫폼 부트 펌웨어에 대한 신뢰의 연속성 Download PDF

Info

Publication number
KR20150103376A
KR20150103376A KR1020157020779A KR20157020779A KR20150103376A KR 20150103376 A KR20150103376 A KR 20150103376A KR 1020157020779 A KR1020157020779 A KR 1020157020779A KR 20157020779 A KR20157020779 A KR 20157020779A KR 20150103376 A KR20150103376 A KR 20150103376A
Authority
KR
South Korea
Prior art keywords
boot firmware
platform boot
hash table
file
firmware
Prior art date
Application number
KR1020157020779A
Other languages
English (en)
Other versions
KR101702289B1 (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 KR20150103376A publication Critical patent/KR20150103376A/ko
Application granted granted Critical
Publication of KR101702289B1 publication Critical patent/KR101702289B1/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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • 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
    • 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]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Virology (AREA)

Abstract

본 발명은 플랫폼 부트 펌웨어에 대한 신뢰의 연속성에 관한 것이다. 디바이스는 프로세싱 모듈 및 플랫폼 부트 펌웨어가 저장되는 ROM(read-only memory)을 포함하는 메모리 모듈을 포함할 수 있다. 활성화 시에, 프로세싱 모듈은 플랫폼 부트 펌웨어를 로딩할 수 있다. 플랫폼 부트 펌웨어는, 프로세싱 모듈로 하여금, 신뢰된 사전-검증기 파일을 먼저 로딩하게 하고, 상기 플랫폼 부트 펌웨어로부터 로딩되는 해시 테이블의 서명을 로딩 및 검증하게 할 수 있다. 그 후에, 프로세싱 모듈은 플랫폼 부트 펌웨어로부터의 펌웨어 프로그램 파일들을 로딩하고, 각 파일의 해시를 계산하고, 각 프로그램 해시가 해시 테이블에 존재하는지의 여부를 검증할 수 있다. 해시 테이블에 해시들을 가진 펌웨어 프로그램 파일들은 실행되는 것이 허용될 수 있다. 어떠한 펌웨어 프로그램 파일 해시도 해시 테이블에 존재하지 않는 경우, 프로세싱 모듈은 플랫폼 특정 보안 액션들을 수행함으로써 디바이스가 손상되는 것을 방지할 수 있다.

Description

플랫폼 부트 펌웨어에 대한 신뢰의 연속성{CONTINUATION OF TRUST FOR PLATFORM BOOT FIRMWARE}
본 발명은 디바이스 활성화 액티비티(device activation activity)에 관한 것이며, 보다 구체적으로는, 바이러스 및/또는 악성 코드에 대한 보안을 제공하면서 디바이스 활성화를 촉진시키는 시스템에 관한 것이다.
사람들이 전자적으로 개인 거래 및/또는 비밀 거래를 점차 행하고 있기 때문에, 보안이 계속 문제가 되고 있다. 또한, 악의적인 의도를 가진 해커들 및/또는 다른 사람들이, 디바이스들에 존재하는 보안 조치들을 회피하는 것에 있어서 점점 더 창의적이 되어 가고 있다. 악성 코드 및/또는 바이러스들에 의한 신규 및 만연하는 침입들을 방지하기 위하여, 장치 및/또는 소프트웨어 제조업자들은 새로운 디바이스들의 하드웨어에 대하여 보다 본질적인 보호 조치들을 계속 만들어 내고 있다. 예를 들어, 애플사, 마이크로 소프트사 등을 포함하는 대기업들은, 그들의 소프트웨어를 실행하는 장치가 하드웨어 신뢰 루트(hardware root of trust)를 제공할 것을 요구하기 시작하고 있다. 하드웨어 신뢰 루트는, 예를 들어, 후속적으로 로딩된 프로그램 파일들을 검증하는데 사용되는 기지의(known) 유효한(예를 들어, 본질적으로 신뢰할 수 있는) 프로그램 파일들을 포함할 수 있다. 하드웨어 신뢰 루트는, 예를 들어, 플랫폼 부트 펌웨어가 디바이스에 상주할 수 있는 ROM(read only memory)으로부터 로딩되는 적어도 하나의 프로그램 파일에 기초하여, 디바이스 활성화에서 확립될 수 있다. 하드웨어 신뢰 루트에 후속하여 로딩되는 임의의 악성코드, 바이러스들 등은, 하드웨어 신뢰 루트에 의해 식별되어, 비활성화될 수 있으며/있거나 그렇지 않은 경우 디바이스를 손상시키는 것이 금지될 수 있다.
하드웨어 신뢰 루트를 확립하기 위한 기존의 전략들로는, 플랫폼 부트 펌웨어가 후속 로딩되는 프로그램 파일의 서명을 검증하기 위해 저장되는 ROM으로부터 적어도 하나의 프로그램을 로딩 및 실행하는 것을 포함한다. 파일의 서명 검증에 있어서, 이전에 실행된 파일은, 후속 로딩된 파일이 예를 들어 RSA 등과 같은 키잉(keying) 알고리즘에 기초하여 신뢰된 소스로부터 제공되었다는 것을, 인증할 수 있다. 그리고, 플랫폼 부트 펌웨어 ROM으로부터 로딩, 검증, 및 실행되는 각 프로그램 파일은, 모든 프로그램 파일들이 플랫폼 부트 펌웨어로부터 로딩될 때까지, 후속 로딩되는 프로그램 파일의 서명 검증 등을 행할 수 있다. 이러한 서명-기반 체인 방법의 구현은, 디바이스 활성화 동안에 로딩되는 모든 파일들이 서명되어 있으므로 유효하다는 것을 보장할 수 있지만, 몇 가지 단점들이 존재한다. 서명은 파일 크기를 증가시키며, 마찬가지로, 각 파일이 로딩될 때 사용되는 메모리 자원들의 양을 증가시킨다. 서명 검증은, 검증되는 각 파일에 대한 상당한 양의 시간을 필요로 한다. 서명이 플랫폼 부트 펌웨어로부터 로딩될 모든 파일들에 대해 순차적으로 행해질 경우에는, 이러한 요구 사항들 모두가 실질적으로 증가된다. 이러한 메모리 및 시간 요구 사항들은, 디바이스 스타트업(startup)을 지연시킬 수 있고, 사용자 경험에 부정적인 영향을 미칠 수 있으며, 디바이스의 비용을 증가시킬 수도 있다.
청구된 발명의 다양한 실시예들의 특징들 및 장점들은 다음의 상세한 설명이 진행됨에 따라 명백해질 것이며, 도면들을 참조함에 있어서, 유사한 참조번호들은 유사한 부분을 나타낸다.
도 1은 본 발명의 적어도 하나의 실시예에 따른, 플랫폼 부트 펌웨어에 대한 신뢰의 연속성을 위해 구성된 예시적 디바이스를 도시한 것이다.
도 2는 본 발명의 적어도 일 실시예에 따라 사용가능한 디바이스에 대한 예시적 구성을 도시한 것이다.
도 3은 본 발명의 적어도 하나의 실시예에 따른, 예시적 프로그램 구조들을 도시한 것이다.
도 4는 본 발명의 적어도 하나의 실시예에 따른, 플랫폼 부트 펌웨어에 대한 신뢰의 연속성을 위한 예시적 동작들을 도시한 것이다.
다음의 상세 설명이 예시적 실시예들에 대한 참조로 행해지겠지만, 본 발명의 다양한 대안들, 수정들 및 변형들이 당업자에게는 명백할 것이다.
본 발명은 플랫폼 부트 펌웨어에 대한 신뢰의 연속성에 관한 것이다. 일반적으로, 디바이스는 프로세싱 모듈 및 예를 들어 플랫폼 부트 펌웨어가 저장되는 ROM(read-only memory)을 포함하는 메모리 모듈을 포함할 수 있다. 디바이스가 활성화되는 경우, 프로세싱 모듈은 플랫폼 부트 펌웨어를 로딩할 수 있다. 플랫폼 부트 펌웨어는, 프로세싱 모듈로 하여금, 예를 들어, 플랫폼 부트 펌웨어로부터 로딩되는 해시 테이블의 서명을 로딩 및 검증하도록 구성될 수 있는, 신뢰된 프로그램 파일(예를 들면, 사전-검증기)을 먼저 로딩하게 할 수 있다. 그 후에, 프로세싱 모듈은 플랫폼 부트 펌웨어로부터 다른 파일들을 로딩하고, 각 파일에 대한 해시를 계산하고, 각 프로그램 파일에 대응하는 해시가 해시 테이블에 존재하는지의 여부를 검증하는 것을 진행할 수 있다. 해시 테이블에 해시들을 가진 프로그램 파일들은 실행되는 것이 허용될 수 있다. 로딩된 프로그램 파일에 대응하는 어떠한 해시도 해시 테이블에 존재하지 않는 경우, 프로세싱 모듈은 플랫폼 특정 보안 액션들을 수행함으로써 디바이스가 손상되는 것을 방지할 수 있다.
일 실시예에서, 디바이스는 메모리 모듈 및 프로세싱 모듈을 포함할 수 있다. 메모리 모듈은 적어도 플랫폼 부트 펌웨어를 포함할 수 있다. 프로세싱 모듈은 디바이스가 활성화되는 경우 플랫폼 부트 펌웨어를 로딩할 수 있다. 그 후에, 플랫폼 부트 펌웨어는, 프로세싱 모듈로 하여금, 예를 들어, 해시 테이블을 로딩하게 하고, 해시 테이블 다음에 로딩되는 플랫폼 부트 펌웨어 파일들에 대한 해시들을 계산하게 하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하게 할 수 있다.
디바이스의 메모리 모듈은 플랫폼 부트 펌웨어를 저장하기 위한 ROM(read-only memory)을 포함할 수 있다. ROM은, 예를 들어, BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface), 코어부트(예를 들면, 리눅스-기반) 시스템 등에 기초하여, 플랫폼 부트 펌웨어를 저장할 수 있다. 적어도 하나의 예시적 구현에서, 플랫폼 부트 펌웨어를 로딩하는 것은, 프로세싱 모듈로 하여금, 사전-검증기 파일을 로딩하게 하는 것을 더 포함할 수 있다. 그 후에, 사전-검증기 파일은, 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에, 해시 테이블의 서명을 검증할 수 있다. 일 실시예에서, 사전-검증기는 해시 테이블의 서명만을 검증할 수 있으며, 어떠한 플랫폼 부트 펌웨어 파일들의 서명에 대해서도 검증을 하지 않을 수 있다.
동일 또는 상이한 실시예에서, 플랫폼 부트 펌웨어 파일들을 로딩하는 것은, 프로세싱 모듈로 하여금, 해시 테이블에 해시들을 갖는 것으로 결정된 플랫폼 부트 펌웨어 파일들을 실행하게 하는 것을 더 포함할 수 있다. 어떠한 플랫폼 부트 펌웨어 파일들도 해시 테이블에 존재하는 해시를 갖지 않는다는 결정은, 프로세싱 모듈로 하여금, 보안 액션(예를 들면, 디바이스의 무결성을 보호하는 것)을 수행하게 할 수 있다. 본 발명의 적어도 일 실시예에 따른 예시적 방법은, 디바이스가 활성화되는 경우 해시 테이블 및 플랫폼 부트 펌웨어 파일들을 로딩하는 단계와, 플랫폼 부트 펌웨어 파일들의 각각에 대한 해시들을 계산하는 단계와, 그 계산된 플랫폼 부트 펌웨어 파일 해시들의 각각이 해시 테이블에 존재하는지의 여부를 판정하는 단계를 포함할 수 있다.
도 1은 본 발명의 적어도 하나의 실시예에 따른 플랫폼 부트 펌웨어에 대한 신뢰의 연속성을 위해 구성된 예시적 디바이스(100)를 도시한 것이다. 디바이스(100)의 예들로는, 모바일 통신 디바이스들, 예를 들어, Android® 운영 시스템(OS), iOS®, Windows® OS, Blackberry® OS, Palm® OS, Symbian® OS 등에 기초한 휴대 단말기 또는 스마트폰들, 모바일 컴퓨팅 디바이스들, 예를 들어, iPad®, Galaxy Tab®, Surface®, Kindle Fire® 등과 같은 태블릿 컴퓨터들, 인텔사에 의해 제조된 저-전력 칩셋을 포함한 Ultrabooks®, 넷북들, 노트북들, 랩톱들,팜탑들 등 및 일반 고정형 컴퓨팅 디바이스들, 예를 들어, 데스크탑들, 서버들, 셋-탑 박스들 등을 포함할 수 있으며, 이에 한정되지 않는다.
일 실시예에서, 디바이스(100)는 플랫폼 부트 펌웨어(platform boot firmware; PBF)(102)를 포함할 수 있다. PBF(102)는, 예를 들어 사전-검증기(104), 해시 테이블(108) 및 펌웨어 프로그램 파일들(112)(예를 들어, 플랫폼 부트 프로그램 파일들)을 포함할 수 있다. 동작의 일 예에서, PBF(102) 내의 상기 프로그램 파일들(104, 108 및 112)은 (예를 들어, 디바이스 부트 동작들의 일부로서) 디바이스 활성화 동안에 디바이스(100) 내로 로딩될 수 있다. 일 실시예에서, 펌웨어 프로그램 파일들(112) 중의 적어도 일부는, 디바이스(100)의 정규 작동 중에 펌웨어 프로그램 파일들이 로딩되는 다른 프로그램 파일들을 인증하도록 작동될 수 있다는 점에서, 디바이스(100)의 하드웨어 신뢰 루트의 역할을 할 수 있다.
하드웨어 신뢰 루트에 의해 제공된 인증 서비스들은, 이후에 로딩되는 프로그램 파일들이 애드웨어, 스파이웨어, 웜, 트로이 목마(Trojan horses), 백도어(backdoors), 및/또는 디바이스(100)의 보안 조치들을 오버라이드(override) 가능하고, 디바이스(100)를 제어가능하고, 디바이스(100)로부터 정보를 도용가능하고, 디바이스(100)로부터 정보 삭제 가능할 수도 있는 그 밖의 프로그램 코드와 같은 악성 및/또는 악의적인 소프트웨어(예를 들어, 악성 코드)가 아니거나, 또는 이들을 포함하지 않은 것을 보장하는데 도움이 될 수 있다. 그러나, 이러한 안전 장치들 중의 일 방식은, 하드웨어 신뢰 루트를 공격하는 것에 의하여, 회피될 수 있다. 예를 들어, 하드웨어 신뢰 루트에서 동작하는 파일들 중의 하나 이상이 손상된 경우, 하드웨어 신뢰 루트에 의해 수행되는 모든 파일 검증 및/또는 인증도 또한 손상되어, 악성코드가 디바이스(300)를 침투 및/또는 손상시키는 것을 가능하게 할 수도 있다.
이러한 잠재적인 보안 문제의 관점에서, 몇몇 디바이스 제조업체들은 이제 하드웨어 신뢰 루트가 디바이스(100)의 부트 프로세스 중에 인증될 것을 요구하고 있다. 이 요구사항을 충족하는 일 예로는, 후속 로딩되는 파일들(예를 들어, 펌웨어 프로그램 파일들(112) 중 하나)과 관련된 서명들을 검증할 수 있는, 먼저 알려진 양호한 파일(예를 들어, 사전-검증기(104))을 실행하는 것이다. 본 명세서에서 언급되는, 서명 검증은, 암호화 방식(예를 들어, RSA 공개-키 암호화)을 사용하여 파일과 관련된 서명에 기초하여, 파일의 출처 및/또는 버전을 인증하는 것을 포함할 수 있다. 그 후에, 이 새로이 검증된 펌웨어 프로그램 파일(112)은, 모든 펌웨어 프로그램 파일들이 로딩될 때까지 체인(chain)에서 후속 로딩되는 펌웨어 프로그램 파일(112)의 서명 검증 등을 행할 수 있다. 이러한 솔루션이 보안의 관점에서는 효과적일 수 있지만, 시간 및 자원 관점에서는 비효율적이다. 처음, 디바이스(100)가 각 펌웨어 프로그램 파일(112)을 순차적 검증하는데 걸리는 시간은, 부트 동안 디바이스(100)의 전체 성능이 부정적 영향을 받기에 충분히 긴 지속시간이 된다. 또한, 서명을 지원하는데 필요한 추가 데이터가 펌웨어 프로그램 파일들(112)의 크기를 실질적으로 증가시킬 수 있으며, 이는 디바이스(100)의 ROM(read-only memory)의 크기가 제한될 수도 있다는 점에서, 소중한 공간을 소모하는 것이 될 수도 있다.
본 발명에 따른 실시예들에서는, 각 파일 서명을 순차적으로 검증하는 것에 의하여 PBF(102)로부터 로딩되는 펌웨어 프로그램 파일들(112)의 보안을 확보하는 것이, 해시-기반 검증 시스템(hash-based verification system)으로 대체된다. 본 명세서에 언급되는 해시(hash)는, 프로그램 파일의 컨텐츠들에 기초하여 결정되는 암호화 스트링(cryptographic string) 값이 될 수 있다. 해시들의 중요한 특성은, 특정 파일에 대해 결정된 암호화 해시의 값이, 파일의 컨텐츠에 대한 어떤 변경들에 기초하여 변경될 가능성이 매우 높다는 점이다. 결과적으로, 펌웨어 프로그램 파일들(112)의 기지의(known) 양호한 버전들에 기초하여 결정된 해시들은, 펌웨어 프로그램 파일(112)의 컨텐츠가 기지의 양호한 버전과 동일한지 여부에 따라 강한 표시자(strong indicator)들로서 의존되어 진다. 또한, 적어도 파일 서명들의 검증과 비교했을 때, 해시들은 결정하기에 상대적으로 빠르고, 단순히 파일의 컨텐츠에 기초하기 때문에, 해시 결정은 특정 보안-관련 데이터(예를 들어, 원본(origin) 데이터, 버전 데이터, 보안 키들 등)를 요구하지 않는다. 상기의 관점에서, 해시들은, 변조되거나 또는 대체된 펌웨어 프로그램 파일들(112)을 식별하는데 사용하기 위한 유용한 도구가 될 수 있다.
도 1에 도시된 예시적 구현에서, 기지의 양호한 사전-검증기(104)가 먼저 로딩될 수 있으며, 이어서 파일 출처를 인증하기 위한 기지의 방법들(예를 들어, RSA 암호화)에 따라 106에 나타낸 바와 같이 해시 테이블(108)의 서명을 검증할 수 있다. 예를 들어, 해시 테이블(108)은 펌웨어 프로그램 파일들(112)의 기지의 양호한 버전들에 대한 해시 값들을 포함할 수 있다. 해시들은 디바이스(100)에 의해 로딩되는 각 펌웨어 프로그램 파일(112)에 대해 결정될 수 있으며, 이어서 해시들이 110에 나타낸 바와 같이 해시 테이블(108)에 저장되어 있는 해시들과 비교될 수 있다. 특정 펌웨어 프로그램 파일(112)에 대응하는 해시가 해시 테이블(108)에 있는 것으로 결정된 경우에는, 펌웨어 프로그램 파일(112)은 양호한 것으로 간주될 수 있으며, 실행하도록 허용된다. 펌웨어 프로그램(132)에 대응하는 임의의 해시가 해시 테이블(108)에 위치하지 않는 경우에는, 보안 액션을 취해야 할 필요가 있는 문제가 존재할 수 있다. 보안 액션은 플랫폼-고유의 것일 수 있으며, 예를 들어, 해시 테이블(108)에 위치하지 않는 해시에 대응하는 펌웨어 프로그램 파일(112)의 실행을 정지할 수도 있고, 디바이스(100)의 활성화를 정지할 수도 있으며, 및/또는 보안 문제가 디바이스(100)에 존재할 수도 있다는 통지를 발행할 수도 있다. 이러한 방식으로, 본 발명에 따른 다양한 실시예들은, 하드웨어 신뢰 루트의 무결성이 디바이스(100)에서 유지되는 것을 계속 확보하면서, 디바이스(100) 활성화를 위해 요구되는 시간 및 메모리 자원들의 양을 실질적으로 감소시킬 수 있게 된다.
도 2는 본 발명의 적어도 일 실시예에 따라 사용가능한 디바이스(100')에 대한 예시적 구성을 도시한 것이다. 디바이스(100')는 도 1에 나타낸 바와 같은 동작들을 수행하는데 사용가능한 장치의 일 예이다. 본 발명에 따른 실시예들이 디바이스(100')를 이용할 수 있지만, 이러한 실시예들이 개시된 구성을 갖는 디바이스들만으로 한정되지는 않는다. 예시적 디바이스(100')는 디바이스 동작들을 관리하도록 구성된 시스템 모듈(200)을 포함할 수 있다. 예를 들어, 시스템 모듈(200)은 프로세싱 모듈(202), 메모리 모듈(204)(예를 들어, PBF(102')를 포함), 전원 모듈(206), 사용자 인터페이스 모듈(208), 및 통신 모듈(212)과 상호작용하기 위한 통신 인터페이스 모듈(210)을 포함할 수 있다. 통신 모듈(212)이 시스템 모듈(200)로부터 분리된 것으로 도시되어 있지만, 이 위치는 단지 본 명세서의 설명을 위한 것이다. 통신 모듈(212)과 관련된 일부 또는 전부의 기능은 시스템 모듈(200) 내에 포함될 수도 있다.
디바이스(100')에서, 프로세싱 모듈(202)은 별도의 컴포넌트들에 위치한 하나 이상의 프로세서들을 포함할 수 있으며, 또는 대안적으로, 단일 컴포넌트(예를 들어, SOC(System-on-a-Chip) 구성에서) 및 임의의 프로세서-관련 지원 회로(예를 들어, 브리지 인터페이스들 등)로 구현된 하나 이상의 프로세싱 코어들을 포함할 수 있다. 예시적 프로세서들로는, 펜티엄(Pentium), 제온(Xeon), 아이테니엄(Itanium), 셀러론(Celeron), 아톰(Atom), 코어 I-시리즈 제품군, 고급 RISC(예를 들어, 축소 명령 세트 컴퓨팅) 머신 또는 "ARM" 프로세서들 등에 있는 것을 포함하는 인텔사에서 입수 가능한 각종 x86-기반 마이크로프로세서들을 포함할 수 있다. 지원 회로의 예들로는, 인터페이스를 제공하도록 구성된 칩셋들(예를 들어, 인텔사에서 입수 가능한 노스브리지(Northbridge), 사우스브리지(Southbridge) 등)을 포함할 수 있으며, 이러한 인터페이스를 통해 프로세싱 모듈(202)은, 디바이스(100')의 상이한 버스들 등 상에서 상이한 속도로 동작할 수 있는 다른 시스템 컴포넌트들과 상호작용할 수 있다. 또한, 지원 회로와 일반적으로 연관된 일부 또는 전부의 기능은, 프로세서(예를 들어, 인텔사에서 입수 가능한 샌디브리지(Sandy Bridge) 집적 회로와 같은 SOC 패키지)와 동일한 물리적 패키지에 포함될 수도 있다.
프로세싱 모듈(202)은 디바이스(100')에서 각종 인스트럭션들을 실행하도록 구성될 수 있다. 인스트럭션들은 프로세싱 모듈(202)로 하여금 데이터 판독, 데이터 기록, 데이터 처리, 데이터 공식화, 데이터 변환, 데이터 전환 등과 관련된 액티비티들을 수행하게 하도록 구성된 프로그램 코드를 포함할 수 있다. 정보(예를 들어, 인스트럭션들, 데이터 등)는 메모리 모듈(204)에 저장될 수 있다. 메모리 모듈(206)은 고정형 또는 이동형의 형식의 RAM(random access memory) 또는 ROM(read-only memory)을 포함할 수 있다. RAM은 예를 들어, SRAM(static RAM) 또는 DRAM(Dynamic RAM)과 같은 디바이스(100')의 동작 중에 정보를 유지하도록 구성된 메모리를 포함할 수 있다. ROM은, 디바이스(100')가 활성화될 경우 스타트업 인스트럭션들을 제공하기 위해 BIOS, UEFL 등으로 구성된 메모리들, 프로그래머블 메모리들(예를 들어, EPROMS(electronic programmable ROMs), 플래시 등)을 포함할 수 있다. 다른 고정형 및/또는 이동형 메모리로는, 자기 메모리들(예를 들어, 플로피 디스크들, 하드 드라이브 등), 전자 메모리들(예를 들어, 고체 상태 플래시 메모리(예, eMMC(embedded multimedia card) 등)), 이동식 메모리 카드들 또는 스틱들(예, uSD(micro storage device), USB 등), 광 메모리들(예를 들어, CD-ROM(compact disc-based ROM)) 등을 포함할 수 있다. 전원 모듈(206)은 내부 전원 소스들(예를 들어, 배터리) 및/또는 외부 전원 소스들(예를 들어, 전기기계적 또는 태양 발전기, 전력 망, 연료 전지 등), 및 작동에 필요한 전력을 디바이스(100')에 공급하도록 구성된 관련 회로를 포함할 수 있다.
사용자 인터페이스 모듈(208)은 각종 입력 메커니즘들(예를 들어, 마이크로폰들, 스위치들, 버튼들, 노브들, 키보드들, 스피커들, 터치-감지 표면들, 이미지들 및/또는 센스 근접, 거리, 움직임, 제스처 등을 캡처하도록 구성된 하나 이상의 센서들) 및 각종 출력 메커니즘들(예를 들어, 스피커들, 디스플레이들, 조명/점멸 표시기들, 진동, 움직임 등을 위한 전기기계적 컴포넌트들)과 같은, 사용자들이 디바이스(100')와 상호작용하는 것을 가능하게 하도록 구성된 컴포넌트들을 포함할 수 있다. 통신 인터페이스 모듈(210)은 통신 프로세서(114)를 포함할 수 있고, 통신 모듈(214)을 위해 패킷 라우팅 및 다른 제어 기능들을 처리하도록 구성될 수 있으며, 이는 유선 및/또는 무선 통신들을 지원하도록 구성된 자원들을 포함할 수도 있다. 유선 통신들은 이더넷, USB(Universal Serial Bus), 파이어 와이어, DVI(Digital Visual Interface), HDMI(High-Definition Multimedia Interface) 등과 같은 직렬 및 병렬 유선 매체들을 포함할 수도 있다. 예를 들어, 무선 통신들은 인접 무선 매체들(예를 들어, NFC(Near Field Communications) 표준, IR(infrared), OCR(optical character recognition), 자기 캐릭터 감지 등에 기초하는 것과 같은 RF(radio frequency)), 근거리 무선 매체들(예를 들어, 블루투스, WLAN, Wi-Fi 등) 및 장거리 무선 매체들(예를 들어, 셀룰러, 위성 등)을 포함할 수도 있다. 일 실시예에서, 통신 인터페이스 모듈(212)은, 통신 모듈(214)에서 활성화되는 무선 통신들이 서로 간섭하는 것을 방지하도록 구성될 수 있다. 이 기능을 수행함에 있어서, 통신 인터페이스 모듈(212)은, 예를 들어 전송대기 메시지들의 상대적 우선순위에 기초하여, 통신 모듈(214)을 위한 액티비티들을 스케줄링할 수도 있다.
동작의 일 예에서, 디바이스(100')의 활성화 시에, 프로세싱 모듈(202)은 (예를 들어, BIOS, UEF1, 코어부트(coreboot) 등을 사용하여 포맷되는 ROM으로부터) PBF(102')를 로딩하기 위해 메모리 모듈(204)에 액세스할 수 있다. PBF(102')는 프로세싱 모듈(202)로 하여금 사전-검증기(104) 다음에 해시 테이블(108)을 뒤따라 로딩하게 할 수 있다. 사전-검증기(104)는 해시 테이블(108)의 서명을 먼저 검증하여, 해시 테이블(108)의 인증을 확립할 수 있다. 이어서, PBF(102')가, 펌웨어 프로그램 파일들(112)을 로딩하고, 각 로딩된 펌웨어 프로그램 파일(112)에 대한 해시를 결정하고, 또한 로딩된 펌웨어 프로그램 파일들(112) 각각에 대한 해시들이 해시 테이블(108)에 저장되어 있는지의 여부를 판정하도록, 프로세싱 모듈(102)에게 지시할 수 있다. 이어서, 해시가 해시 테이블(108)에 위치해 있는 각 프로그램 파일들이 실행되도록 허용될 수 있다(예를 들어, 이어서 프로세싱 모듈(202)에 의해 실행될 수 있다). 펌웨어 프로그램 파일들(112)에 대응하는 임의의 해시들이 해시 테이블에 존재하지 않는 것으로 결정된 경우에는, 프로세싱 모듈(202)이 보안 액션을 수행함으로써, 디바이스(100')가 (예를 들어, 악성 코드로 인해) 손상되는 것을 방지할 수 있다. 예시적 보안 액션들로는 특정 펌웨어 프로그램 파일(112)의 실행을 정지하는 것과, 디바이스(102')의 부트을 정지하는 것과, 및/또는 PBF(102')과의 보안 문제에 관한 통지를 제공하는 것을 포함할 수 있다.
도 3은 본 발명의 적어도 하나의 실시예에 따른 예시적 프로그램 구조들을 도시한 것이다. 초기에, 파일들이 디바이스(100)의 PBF(102)로부터 로딩되는 방식은, 디바이스(100)의 구성(예를 들어, 메모리 타입, 부트 시스템 포맷, 운영 시스템 등)에 의해 규정될 수 있다. 예를 들어, UEFI가 채용되는 경우에, 파일들은 UEFI 플랫폼 초기화 사양 버전 1.2, 1, 볼륨 3에 따라 PBF(102)에서 검색될 수 있다. 동작의 일 예에서, 펌웨어 볼륨(firmware volume; FV) 헤더(300), 이하 "파일(300)" 다음에는, 펌웨어 파일 #1(302), 이하 "파일(302)"이 먼저 뒤따라 로딩될 수 있다. UEFI에 기초하는 실제의 사용 케이스의 일 예에서는, 파일들(300 및 302)이, 플랫폼 초기화의 사전-확장가능 펌웨어 인터페이스(Pre- Extensible Firmware Interface; PEI) 단계 중의 일부일 수 있다. 예를 들어, 파일들(300 및 302)은, DXE(Driver Execution Environment)(예를 들어, 펌웨어 프로그램 파일들(112))로 로딩될 파일들이 기지의 양호한 버전들에 대응하여 해시들을 갖고 있다는 검증에 기초하여, 그 드라이버 실행 환경(DXE)에서 파일들을 실행할지 여부를 판정하는 것에 이용될 수 있다. 일 실시예에서, 파일(302)의 서명이 사전-검증기(104)에 의해(예를 들어, RSA 암호화를 사용하여) 검증됨으로써, 후속 로딩되는 파일들의 해시들을 체크하기 이전에 그것의 인증을 체크할 수 있다. 예를 들어, 파일(302)의 서명을 검증하는데 사용되는 공개 키는, 안전한 보관을 위해 PEI에 상주할 수 있다. 그러나, 디바이스(100)의 부트 매니페스트(boot manifest)로부터의 공개 키는, 부트 메모리(예를 들어, ROM)의 메모리 공간을 보존하면서 보안의 관점에서 PEI 공개 키와 동등한 것으로 고려될 수 있기 때문에, 파일(302)을 서명할 시에 사용될 수도 있다.
본 발명의 다양한 실시예들에 따른, 파일(300)은 파일(예를 들어, 및 그것의 각종 컨텐츠들)을 식별하는 확장된 헤더 타입 EFI_FV_EXT_TYPE_GUIDE__TYPE(0X0002)를 포함할 수 있다. 또한, 파일(300)은, 예를 들어, PBD(102)에서 파일을 식별하는 헤더 EFI_FV_EXT_TYPE_OEM_TYPE를 포함하는 정보, 파일(300)의 포맷을 식별하는 EFI_FIRMWARE_CONTENTS_SIGNED_GUIDE의 예시적 포맷 타입, WIN_CERTIFICATE_UEF1_GUIDE를 포함하는 예시적 데이터 및 파일(300)을 인증하는데 사용하기 위한 EFI_CERT_TYPE_RSA2048_SHA256_GUIDE의 예시적 인증서 타입을 포함할 수 있다. 파일(302)은, 예를 들어, FV 해시 테이블(108’)과 같은 파일의 컨텐츠를 식별하는 헤더 Type_EFI_FV_FI LETYPE_RAW를 포함하는 정보를 포함할 수 있다. FV 해시 테이블(108’)은, 예를 들어, 기지의 양호한 버전들 펌웨어 파일들(112)에 대응하는(예를 들어, 그것의 컨텐츠들을 식별 및 해석하는데 필요할 수 있는 정보와 함께) 해시 값들을 저장하기 위한 표준화된 구조를 포함할 수 있다. 예를 들어, FV 해시 테이블(108’)은 전역 고유 식별자(global unique identifier; GUID), 해시 테이블 구조에 대한 버전 정보, 테이블에 저장된 해시들의 개수에 대한 표시 등을 포함할 수 있다. 또한, 테이블에 저장된 각각의 해시는, 펌웨어 데이터 타입(예를 들어, 펌웨어 볼륨, 펌웨어 파일, 펌웨어 파일 섹션 등을 포함하는 해시의 소스였던 기지의 양호한 코드의 식별), 해시 타입(예를 들어, 해시 값과 함께 보안 해시 알고리즘(256)(SHA-256), SHA-1 등)과 같은 대응하는 정보를 포함할 수 있다.
도 4는 본 발명의 적어도 일 실시예에 따른 플랫폼 부트 펌웨어에 대한 신뢰의 연속성을 위한 예시적 동작들을 도시한 것이다. 동작(400)에서, 사전 검증기 실행은, 예를 들어, 디바이스(예를 들어, 디바이스 부트)의 활성화 동안에 디바이스에서 완료될 수 있다. 동작(402)에서는, 해시 테이블 및 펌웨어 프로그램 파일들이 또한 디바이스 내로 로딩될 수 있다. 이어서, 해시 테이블의 서명이 검증될 수 있는지(예를 들어, 해시 테이블이 인증될 수 있는 경우)에 관한 결정이 동작(404)에서 이루어질 수 있다. 해시 테이블이 검증될 수 없는 것으로 동작(404)에서 결정되는 경우에는, 동작(406)에서 플랫폼 특정 보안 액션이 수행될 수 있다. 예를 들어, 디바이스는 부트 프로세스를 중지하고, 및/또는 (예를 들어, 디바이스의 스피커에서 음을 방출하고, 디바이스 디스플레이 상에 메시지를 디스플레이하는 등에 의해서) 가능한 보안 문제가 디바이스에 존재할 수도 있음을 나타내는 통지를 생성할 수 있다.
동작(404)에서 해시 테이블이 서명된 것으로 결정된 경우에는, 동작(408)에서, 후속의 펌웨어 프로그램 파일이 해싱될 수 있다(예를 들어, 해시는 무결성이 아직 확인되지 않은 프로그램 펌웨어 파일의 컨텐츠들에 기초하여 생성될 수 있다). 이어서, 대응 해시가 해시 테이블에 위치될 수 있는지의 여부에 관한 결정이 동작(410)에서 이루어질 수 있다. 동작(410)에서, 어떠한 대응 해시도 해시 테이블에서 발견될 수 없는 것으로 결정된 경우에는, 동작(406)에서, 플랫폼 특정 보안 액션이 수행될 수 있다. 또한, 전술한 예시적 액션들에 추가하여, 디바이스는, 그 실행을 스킵(skip)하는 것이 디바이스 활성화를 방해하지 않을 것이라고 결정되는 경우, 펌웨어 프로그램 파일의 실행을 스킵할 수도 있다. 동작(410)에서, 대응 해시가 해시 테이블에 존재하는 것으로 결정된 경우에는(예를 들어, 펌웨어 프로그램 파일이 기지의 양호한 버전임), 동작(412)에서, 해시에 대응하는 파일이 실행될 수 있다. 동작(414)에서는, 모든 펌웨어 프로그램 파일들이 해싱되었는지의 여부에 관한 추가 결정이 이루어질 수 있다. 동작(414)에서 모든 펌웨어 프로그램 파일들이 해싱된 것이 아니라는 결정 다음에는, 동작(408)으로 복귀하여, 후속의 펌웨어 프로그램 파일을 해싱할 수 있다. 이와 달리, 동작(414)에서 모든 파일들이 해싱된 것으로 결정된 경우에는, 동작(416)에서, 디바이스가 계속 부트할 수 있다. 선택적으로는, 동작(416) 다음에 동작(400)으로 복귀하여, 예를 들어, 디바이스가 활성화되는 후속의 시간을 준비할 수 있다.
도 4는 일 실시예에 따른 각종 동작들을 도시하고 있지만, 도 4에 도시된 동작들 모두가 다른 실시예들에서 필수적인 것이 아니라는 것을 이해해야 한다. 실제로, 본 발명의 다른 실시예들에서, 도 4에 도시된 동작들 및/또는 본 명세서에 기재된 다른 동작들이, 도면들 중 어느 것에 구체적으로 나타나 있지 않지만, 본 발명에 따른 방식으로 충분히 조합될 수 있다는 것으로, 본 명세서에서 완전히 고려된다. 따라서, 하나의 도면에 정확히 나타나 있지 않은 특징들 및/또는 동작들에 관한 청구범위는, 본 발명의 범위 및 내용 내에 있는 것으로 간주된다.
본 명세서의 임의의 실시예에서 사용되는, 용어"모듈"은 전술한 동작들 중의 임의의 것을 수행하도록 구성된 소프트웨어, 펌웨어 및/또는 회로를 지칭할 수 있다. 소프트웨어는 소프트웨어 패키지, 코드, 인스트럭션들, 인스트럭션 세트들, 및/또는 비-일시적 컴퓨터 판독가능한 저장 매체에 기록된 데이터로 구현될 수 있다. 펌웨어는 메모리 디바이스들에 하드-코딩(예를 들어, 비휘발성)되는, 코드, 인스트럭션들 또는 인스트럭션 세트들, 및/또는 데이터로 구현될 수 있다. 본 명세서의 임의의 실시예에서 사용되는 "회로"는, 예를 들어, 단독으로 또는 임의의 조합으로, 하드와이어드 회로, 프로그램가능 회로(예를 들어, 하나 이상의 개별 인스트럭션 프로세싱 코어들을 포함하는 컴퓨터 프로세서), 상태 머신 회로, 및/또는 프로그램가능 회로에 의해 실행된 인스트럭션들을 저장하는 펌웨어를 포함할 수 있다. 모듈들은, 대형 시스템, 예를 들어, IC(integrated circuit), SoC(system on-chip), 데스크탑 컴퓨터들, 랩탑 컴퓨터들, 태블릿 컴퓨터들, 서버들, 스마트 폰들 등 중의 일부를 형성하는 회로로서, 집합적으로 또는 개별적으로, 구현될 수 있다.
본 명세서에 설명된 임의의 동작들은, 개별적으로 또는 그 조합으로, 거기에 저장된 하나 이상의 저장 매체들, 하나 이상의 프로세서들에 의해 실행되는 경우에 본 방법들을 수행하는 인스트럭션들을 포함하는 시스템에서 구현될 수 있다. 여기서, 프로세서는 예를 들어, 서버 CPU, 모바일 디바이스 CPU, 및/또는 다른 프로그램가능 회로를 포함할 수 있다. 또한, 본 명세서에 설명된 동작들은 복수의 물리적 디바이스들, 예를 들어 하나 이상의 상이한 물리적 위치에 있는 프로세싱 구조들에 걸쳐 분산될 수 있음이 의도된다. 저장 매체는 임의의 타입의 유형 매체, 예를 들어, 하드 디스크, 플로피 디스크, 광 디스크, CD-ROM(compact disk read-only memory), CD-RW(compact disk rewritable), 및 광 자기 디스크를 포함하는 임의의 타입의 디스크, ROM(read-only memory), 동적 및 정적 RAM과 같은 RAM(random access memory), EPRO(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리들, SSD(Solid State Disk), eMMC(embedded multimedia card), SDIO(secure digital input/output) 카드, 자기 또는 광 카드와 같은 반도체 디바이스들, 또는 전자 인스트럭션들을 저장하기에 적합한 임의의 타입의 매체를 포함할 수 있다. 다른 실시예들은 프로그램 가능한 제어 디바이스에 의해 실행되는 소프트웨어 모듈들로서 구현될 수 있다.
따라서, 본 발명은 플랫폼 부트 펌웨어에 대한 신뢰의 연속성에 관한 것이다. 디바이스는 플랫폼 부트 펌웨어가 저장되는 ROM(read-only memory)을 포함하는 프로세싱 모듈 및 메모리 모듈을 포함할 수 있다. 활성화 시에, 프로세싱 모듈은 플랫폼 부트 펌웨어를 로딩할 수 있다. 플랫폼 부트 펌웨어는, 프로세싱 모듈로 하여금 신뢰된 사전-검증기 파일을 먼저 로딩하게 하여, 플랫폼 부트 펌웨어로부터 로딩되는 해시 테이블의 서명을 로딩 및 검증하게 할 수 있다. 그 후에, 프로세싱 모듈은, 플랫폼 부트 펌웨어로부터 펌웨어 프로그램 파일들을 로딩하고, 각 파일에 대한 해시를 계산하고, 각 프로그램 해시가 해시 테이블에 존재하는지의 여부를 검증할 수 있다. 해시 테이블에 해시들을 갖는 펌웨어 프로그램 파일들은 실행되도록 허용될 수 있다. 어떠한 펌웨어 프로그램 파일 해시도 해시 테이블에 존재하지 않는 경우, 프로세싱 모듈은 플랫폼 특정 보안 액션들을 수행하여, 디바이스가 손상되는 것을 방지할 수 있다.
다음의 예들은 또 다른 실시예들과 관련된 것이다. 일 예에서, 디바이스가 제공된다. 디바이스는 적어도 플랫폼 부트 펌웨어를 포함하는 메모리 모듈, 및 디바이스가 활성화될 때 플랫폼 부트 펌웨어를 로딩하는 프로세싱 모듈을 포함할 수 있으며, 이 플랫폼 부트 펌웨어는 프로세싱 모듈로 하여금, 해시 테이블을 로딩하고, 해시 테이블 다음에 로딩되는 플랫폼 부트 펌웨어 파일들에 대한 해시들을 계산하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하게 한다.
상기 예시적 디바이스는, 메모리 모듈이 플랫폼 부트 펌웨어를 저장하기 위한 ROM(read-only memory)을 포함하는 것으로 더 구성될 수 있다. 이러한 구성에서 본 예시적 디바이스는, ROM이 기본 입/출력 시스템(Basic Input/Output System; BIOS), 통합 확장 펌웨어 인터페이스(Unified Extensible Firmware Interface; UEFI) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로 더 구성될 수 있다.
상기 예시적 디바이스는, 플랫폼 부트 펌웨어의 로딩은, 프로세싱 모듈로 하여금 사전-검증기 파일을 로딩하여, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 해시 테이블의 서명을 검증하게 하는 것을 더 포함하는 것으로, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다. 이러한 구성에서, 상기 예시적 디바이스는, 사전-검증기 파일이 플랫폼 부트 펌웨어 파일들 중의 어느 파일들에 대한 서명들에 대해서도 검증하지 않는 것으로 더 구성될 수 있다.
상기 예시적 디바이스는, 플랫폼 부트 펌웨어의 로딩은, 프로세싱 모듈로 하여금 해시 테이블에 해시들이 존재하는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하게 하는 것을 더 포함하는 것으로, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
상기 예시적 디바이스는, 부트 프로세스는, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우, 프로세싱 모듈로 하여금 보안 액션을 수행하게 하는 것을 더 포함하는 것으로, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
다른 예에서는, 방법이 제공된다. 본 방법은 디바이스가 활성화되는 경우에 해시 테이블 및 플랫폼 부트 펌웨어 파일을 로딩하고, 플랫폼 부트 펌웨어 파일들의 각각에 대한 해시들을 계산하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들의 각각이 해시 테이블에 존재하는지의 여부를 판정하는 것을 포함할 수 있다.
상기 예시적 방법은, 해시 테이블 및 플랫폼 부트 펌웨어 파일들은 디바이스에서 메모리 모듈로부터 로딩되고, 메모리 모듈은 ROM을 포함하는 것으로, 더 구성될 수 있다. 이러한 구성에서, 본 예시적 방법은, ROM이 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로, 더 구성될 수 있다.
상기 예시적 방법은, 사전-검증기 파일을 로딩하고, 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 사전-검증기 파일로 해시 테이블의 서명을 검증하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다. 이러한 구성에서, 본 예시적 방법은, 사전-검증기 파일로 플랫폼 부트 펌웨어 파일들에 대한 서명들은 검증하지 않는 것으로, 더 구성될 수 있다.
상기 예시적 방법은, 해시 테이블에 해시들이 존재하는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하는 것을, 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
상기 예시적 방법은, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우에 보안 액션을 수행하는 것을, 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
다른 예에서는, 적어도 디바이스를 포함하는 시스템이 제공되며, 본 시스템은 상기 예시적 방법들 중의 어느 방법을 수행하도록 구성된다.
다른 예에서는, 상기 예시적 방법들 중의 어느 방법을 수행하도록 구성된 칩셋이 제공된다.
다른 예에서는, 컴퓨팅 디바이스 상에서 실행됨에 따라 그 컴퓨팅 디바이스로 하여금 상기 예시적 방법들 중의 어느 방법을 수행하게 하는 복수의 인스트럭션을 포함하는 적어도 하나의 머신 판독가능한 매체가 제공된다.
다른 예에서는, 상기 예시적 방법들 중의 어느 방법을 수행하도록 구성되는 플랫폼 부트 펌웨어에 대한 신뢰의 연속성으로 구성된 디바이스가 제공된다.
다른 예에서는, 상기 예시적 방법들 중의 어느 방법을 수행하기 위한 수단을 가진 디바이스가 제공된다.
다른 예에서는, 디바이스가 제공된다. 본 디바이스는 적어도 플랫폼 부트 펌웨어를 포함하는 메모리 모듈, 및 디바이스가 활성화되는 경우에 플랫폼 부트 펌웨어를 로딩하는 프로세싱 모듈을 포함할 수 있으며, 이 플랫폼 부트 펌웨어는 프로세싱 모듈로 하여금, 해시 테이블을 로딩하게 하고, 해시 테이블 다음에 로딩되는 플랫폼 부트 펌웨어 파일들에 대한 해시들을 계산하게 하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하게 한다.
상기 예시적 디바이스는, 메모리 모듈이 플랫폼 부트 펌웨어를 저장하기 위한 ROM을 포함하는 것으로 더 구성될 수 있다. 이러한 구성에서, 본 예시적 디바이스는, ROM이 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로 더 구성될 수 있다.
상기 예시적 디바이스는, 플랫폼 부트 펌웨어의 로딩은, 프로세싱 모듈로 하여금 사전-검증기 파일을 로딩하게 하여, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 해시 테이블의 서명을 검증하게 하는 것을 더 포함하는 것으로, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
상기 예시적 디바이스는, 플랫폼 부트 펌웨어의 로딩은 프로세싱 모듈로 하여금, 해시들이 해시 테이블에 존재하는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하게 하는 것을 더 포함하는 것으로, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
상기 예시적 디바이스는, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우, 부트 프로세스는 프로세싱 모듈로 하여금 보안 액션을 수행하게 하는 것을 더 포함하는 것으로, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
다른 예에서는, 방법이 제공된다. 본 방법은, 디바이스가 활성화될 경우 해시 테이블 및 플랫폼 부트 펌웨어 파일들을 로딩하고, 플랫폼 부트 펌웨어 파일들의 각각에 대한 해시들을 계산하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들의 각각이 해시 테이블에 존재하는지의 여부를 판정하는 것을 포함할 수 있다.
상기 예시적 방법은, 해시 테이블 및 플랫폼 부트 펌웨어 파일이 디바이스의 메모리 모듈로부터 로딩되며, 이 메모리 모듈은 ROM을 포함하는 것으로 더 구성될 수 있다. 이러한 구성에서, 본 예시적 방법은, ROM이 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로 더 구성될 수 있다.
상기 예시적 방법은, 사전-검증기 파일을 로딩하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 사전-검증기 파일로 해시 테이블의 서명을 검증하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
상기 예시적 방법은, 해시 테이블에 해시들이 존재하지 않는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
상기 예시적 방법은, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우에 보안 액션을 수행하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
다른 예에서는, 적어도 디바이스를 포함하는 시스템이 제공되며, 본 시스템은 상기 예시적 방법들 중의 어느 방법을 수행하도록 구성된다.
다른 예에서는, 상기 예시적 방법들 중의 어느 방법을 수행하도록 구성되는 칩셋이 제공된다.
다른 예에서는, 컴퓨팅 디바이스 상에서 실행됨에 따라 그 컴퓨팅 디바이스로 하여금 상기 예시적 방법들 중의 어느 방법을 실행하게 하는 복수의 인스트럭션들을 포함하는 적어도 하나의 머신 판독가능한 매체가 제공된다.
다른 예에서는, 디바이스가 제공된다. 본 디바이스는 적어도 플랫폼 부트 펌웨어를 포함하는 메모리 모듈, 및 디바이스가 활성화될 경우 플랫폼 부트 펌웨어를 로딩하는 프로세싱 모듈을 포함할 수 있으며, 이 플랫폼 부트 펌웨어는 프로세싱 모듈로 하여금 해시 테이블을 로딩하게 하고, 해시 테이블 다음에 로딩되는 플랫폼 부트 펌웨어 파일들에 대한 해시들을 계산하게 하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하게 한다.
상기 예시적 디바이스는, 메모리 모듈이 플랫폼 부트 펌웨어를 저장하기 위한 ROM을 포함하는 것으로 더 구성될 수 있다. 이러한 구성에서, 본 예시적 디바이스는, ROM이 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로 더 구성될 수 있다.
상기 예시적 디바이스는, 플랫폼 부트 펌웨어의 로딩은, 프로세싱 모듈로 하여금 사전-검증기 파일을 로딩하게 하여, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 해시 테이블의 서명을 검증하게 하는 것을 더 포함하도록, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다. 이러한 구성에서, 본 예시적 디바이스는, 사전-검증기 파일이 플랫폼 부트 펌웨어 파일들 중의 어느 파일들에 대한 서명들에 대해서도 검증하지 않는 것으로 더 구성될 수 있다.
상기 예시적 디바이스는, 플랫폼 부트 펌웨어의 로딩은, 프로세싱 모듈로 하여금 해시 테이블에 해시들이 존재하는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하게 하는 것을 더 포함도록, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
상기 예시적 디바이스는, 부트 프로세스는, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우에 프로세싱 모듈로 하여금 보안 액션을 수행하게 하는 것을 더 포함하도록, 단독으로 또는 상기 추가 구성들과 조합하여 더 구성될 수 있다.
다른 예에서는, 방법이 제공된다. 본 방법은, 디바이스가 활성화될 경우 해시 테이블 및 플랫폼 부트 펌웨어 파일을 로딩하고, 플랫폼 부트 펌웨어 파일들의 각각에 대한 해시들을 계산하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들의 각각이 해시 테이블에 존재하는지의 여부를 판정하는 것을 포함할 수 있다.
상기 예시적 방법은, 해시 테이블 및 플랫폼 부트 펌웨어 파일들이 디바이스의 메모리 모듈로부터 로딩되며, 이 메모리 모듈은 ROM을 포함하는 것으로 더 구성될 수 있다. 이러한 구성에서, 본 예시적 방법은, ROM이 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로 더 구성될 수 있다.
상기 예시적 방법은, 사전-검증기 파일을 로딩하고, 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 사전-검증기 파일로 해시 테이블의 서명을 검증하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다. 이러한 구성에서, 본 예시적 방법은, 사전-검증기 파일로 플랫폼 부트 펌웨어 파일들에 대한 서명들은 검증하지 않는 것으로 더 구성될 수 있다.
상기 예시적 방법은, 해시 테이블에 해시들이 존재하는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
상기 예시적 방법은, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우에 보안 액션을 수행하는 것을 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
다른 실시예에서는, 시스템이 제공된다. 본 시스템은, 디바이스가 활성화될 경우 해시 테이블 및 플랫폼 부트 펌웨어 파일들을 로딩하기 위한 수단, 플랫폼 부트 펌웨어 파일들의 각각에 대한 해시들을 계산하기 위한 수단, 및 그 계산된 플랫폼 부트 펌웨어 파일 해시들의 각각이 해시 테이블에 존재하는지의 여부를 판정하기 위한 수단을 포함할 수 있다.
상기 예시적 시스템은, 해시 테이블 및 플랫폼 부트 펌웨어 파일들이 디바이스의 메모리 모듈로부터 로딩되며, 이 메모리 모듈은 ROM을 포함하는 것으로 더 구성될 수 있다. 이러한 구성에서, 본 예시적 시스템은, ROM이 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는 것으로 더 구성될 수 있다.
상기 예시적 시스템은, 사전-검증기 파일을 로딩하기 위한 수단, 및 그 계산된 플랫폼 부트 펌웨어 파일 해시들이 해시 테이블에 존재하는지의 여부를 판정하기 이전에 사전-검증기 파일로 해시 테이블의 서명을 검증하기 위한 수단을, 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다. 이러한 구성에서, 본 예시적 시스템은, 사전-검증기 파일로 플랫폼 부트 펌웨어 파일들에 대한 서명들은 검증하지 않는 것으로 더 구성될 수 있다.
상기 예시적 시스템은, 해시 테이블에 해시들이 존재하는 것으로 결정되는 플랫폼 부트 펌웨어 파일들을 실행하기 위한 수단을, 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
상기 예시적 시스템은, 어떠한 플랫폼 부트 펌웨어 파일 해시들도 해시 테이블에 존재하지 않는 것으로 결정되는 경우에 보안 액션을 수행하기 위한 수단을, 단독으로 또는 상기 추가 구성들과 조합하여 더 포함할 수 있다.
본 명세서에서 사용된 용어 및 표현은 한정이 아닌 설명의 용어로서 사용된 것이고, 그러한 용어 및 표현의 사용 시에, 기재 및 도시되어 있는 특징들 중의 임의의 등가물들 또는 그 부분들을 배제하는 것을 의도하지 않으며, 또한 다양한 변형이 청구범위 내에서 가능함이 인식된다. 따라서, 본 청구범위는 이러한 등가물 모두를 포괄하는 것으로 의도된다.

Claims (19)

  1. 디바이스로서,
    적어도 플랫폼 부트 펌웨어(platform boot firmware)를 포함하는 메모리 모듈과,
    상기 디바이스가 활성화되는 경우 상기 플랫폼 부트 펌웨어를 로딩하는 프로세싱 모듈을 포함하고,
    상기 플랫폼 부트 펌웨어는, 상기 프로세싱 모듈로 하여금, 해시 테이블(hash table)을 로딩하게 하고, 상기 해시 테이블 다음에 로딩되는 플랫폼 부트 펌웨어 파일들에 대한 해시(hash)들을 계산하게 하고, 상기 계산된 플랫폼 부트 펌웨어 파일 해시들이 상기 해시 테이블에 존재하는지의 여부를 판정하게 하는
    디바이스.
  2. 제 1 항에 있어서,
    상기 메모리 모듈은 상기 플랫폼 부트 펌웨어를 저장하는 판독 전용 메모리(read-only memory)를 포함하는
    디바이스.
  3. 제 2 항에 있어서,
    상기 판독 전용 메모리는 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템(coreboot system)에 기초하여 플랫폼 부트 펌웨어를 저장하는
    디바이스.
  4. 제 1 항에 있어서,
    상기 플랫폼 부트 펌웨어를 로딩하는 것은,
    상기 계산된 플랫폼 부트 펌웨어 파일 해시들이 상기 해시 테이블에 존재하는지의 여부를 판정하기 이전에, 상기 프로세싱 모듈로 하여금, 사전-검증기 파일(pre-verifier file)을 로딩하게 하여 상기 해시 테이블의 서명을 검증하게 하는 것을 더 포함하는
    디바이스.
  5. 제 4 항에 있어서,
    상기 사전-검증기 파일은 상기 플랫폼 부트 펌웨어 파일들 중의 어느 파일의 서명에 대해서도 검증을 하지 않는
    디바이스.
  6. 제 1 항에 있어서,
    상기 플랫폼 부트 펌웨어를 로딩하는 것은,
    상기 프로세싱 모듈로 하여금 상기 해시 테이블 내에 해시들을 갖는 것으로 결정된 플랫폼 부트 펌웨어 파일들을 실행하게 하는 것을 더 포함하는
    디바이스.
  7. 제 1 항에 있어서,
    상기 부트 프로세스는,
    상기 플랫폼 부트 펌웨어 파일 해시들 중의 어느 것도 상기 해시 테이블에 존재하지 않는 것으로 결정된 경우, 상기 프로세싱 모듈로 하여금 보안 액션(security action)을 수행하게 하는 것을 더 포함하는
    디바이스.
  8. 디바이스가 활성화되는 경우, 해시 테이블 및 플랫폼 부트 펌웨어 파일들을 로딩하는 단계와,
    상기 플랫폼 부트 펌웨어 파일들의 각각에 대한 해시들을 계산하는 단계와,
    상기 계산된 플랫폼 부트 펌웨어 파일 해시들의 각각이 상기 해시 테이블에 존재하는지의 여부를 판정하는 단계를 포함하는
    방법.
  9. 제 8 항에 있어서,
    상기 해시 테이블 및 플랫폼 부트 펌웨어 파일들은 상기 디바이스의 메모리 모듈로부터 로딩되며, 상기 메모리 모듈은 판독 전용 메모리를 포함하는
    방법.
  10. 제 9 항에 있어서,
    상기 판독 전용 메모리는 BIOS(Basic input/Output System), UEFI(Unified Extensible Firmware Interface) 또는 코어부트 시스템에 기초하여 플랫폼 부트 펌웨어를 저장하는
    방법.
  11. 제 8 항에 있어서,
    사전-검증기 파일을 로딩하는 단계와,
    상기 계산된 플랫폼 부트 펌웨어 파일 해시들이 상기 해시 테이블에 존재하는지의 여부를 판정하기 이전에 상기 사전-검증기 파일로 상기 해시 테이블의 서명을 검증하는 단계를 더 포함하는
    방법.
  12. 제 11 항에 있어서,
    상기 사전-검증기 파일로 상기 플랫폼 부트 펌웨어 파일들에 대한 서명들은 검증하지 않는
    방법.
  13. 제 8 항에 있어서,
    상기 해시 테이블 내에 해시들을 갖는 것으로 결정된 플랫폼 부트 펌웨어 파일들을 실행하는 단계를 더 포함하는
    방법.
  14. 제 8 항에 있어서,
    상기 플랫폼 부트 펌웨어 파일 해시들 중의 어느 것도 상기 해시 테이블에 존재하지 않는 것으로 결정되는 경우 보안 액션을 수행하는 단계를 더 포함하는
    방법.
  15. 적어도 디바이스를 포함하는 시스템으로서,
    상기 시스템은 제 8 항 내지 제 14 항 중 어느 한 항에 기재된 방법을 수행하도록 구성되는
    시스템.
  16. 제 8 항 내지 제 14 항 중 어느 한 항에 기재된 방법을 수행하도록 구성되는 칩셋.
  17. 복수의 인스트럭션을 포함하는 적어도 하나의 머신 판독가능한 매체로서,
    상기 복수의 인스트럭션은, 컴퓨팅 디바이스 상에서 실행됨에 따라, 상기 컴퓨팅 디바이스로 하여금, 제 8 항 내지 제 14 항 중 어느 한 항의 방법을 수행하게 하는
    머신 판독가능한 매체.
  18. 제 8 항 내지 제 14 항 중 어느 한 항의 방법을 수행하도록 구성되는 플랫폼 부트 펌웨어에 대한 신뢰의 연속성으로 구성되는 디바이스.
  19. 제 8 항 내지 제 14 항 중 어느 한 항의 방법을 수행하는 수단을 포함하는 디바이스.
KR1020157020779A 2013-03-01 2014-02-28 플랫폼 부트 펌웨어에 대한 신뢰의 연속성 KR101702289B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/782,512 US9223982B2 (en) 2013-03-01 2013-03-01 Continuation of trust for platform boot firmware
US13/782,512 2013-03-01
PCT/US2014/019238 WO2014134389A1 (en) 2013-03-01 2014-02-28 Continuation of trust for platform boot firmware

Publications (2)

Publication Number Publication Date
KR20150103376A true KR20150103376A (ko) 2015-09-10
KR101702289B1 KR101702289B1 (ko) 2017-02-06

Family

ID=51421630

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157020779A KR101702289B1 (ko) 2013-03-01 2014-02-28 플랫폼 부트 펌웨어에 대한 신뢰의 연속성

Country Status (5)

Country Link
US (1) US9223982B2 (ko)
EP (1) EP2962241B1 (ko)
KR (1) KR101702289B1 (ko)
CN (1) CN104995629B (ko)
WO (1) WO2014134389A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022245030A1 (ko) * 2021-05-18 2022-11-24 삼성전자 주식회사 전자 장치 및 전자 장치에 보안 부팅을 적용하는 방법

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9721101B2 (en) * 2013-06-24 2017-08-01 Red Hat, Inc. System wide root of trust chaining via signed applications
US9703950B2 (en) * 2012-03-30 2017-07-11 Irdeto B.V. Method and system for preventing and detecting security threats
US9189631B2 (en) * 2013-06-07 2015-11-17 Dell Inc. Firmware authentication
US9798880B2 (en) 2013-11-13 2017-10-24 Via Technologies, Inc. Fuse-enabled secure bios mechanism with override feature
US9367689B2 (en) 2013-11-13 2016-06-14 Via Technologies, Inc. Apparatus and method for securing BIOS in a trusted computing system
US10049217B2 (en) 2013-11-13 2018-08-14 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9767288B2 (en) 2013-11-13 2017-09-19 Via Technologies, Inc. JTAG-based secure BIOS mechanism in a trusted computing system
US9779243B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Fuse-enabled secure BIOS mechanism in a trusted computing system
US9183394B2 (en) 2013-11-13 2015-11-10 Via Technologies, Inc. Secure BIOS tamper protection mechanism
US10095868B2 (en) 2013-11-13 2018-10-09 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US9547767B2 (en) 2013-11-13 2017-01-17 Via Technologies, Inc. Event-based apparatus and method for securing bios in a trusted computing system during execution
US10055588B2 (en) 2013-11-13 2018-08-21 Via Technologies, Inc. Event-based apparatus and method for securing BIOS in a trusted computing system during execution
US9779242B2 (en) 2013-11-13 2017-10-03 Via Technologies, Inc. Programmable secure bios mechanism in a trusted computing system
US9129113B2 (en) 2013-11-13 2015-09-08 Via Technologies, Inc. Partition-based apparatus and method for securing bios in a trusted computing system during execution
US9507942B2 (en) 2013-11-13 2016-11-29 Via Technologies, Inc. Secure BIOS mechanism in a trusted computing system
US9672361B2 (en) * 2014-04-30 2017-06-06 Ncr Corporation Self-service terminal (SST) secure boot
US9524390B2 (en) 2014-09-09 2016-12-20 Dell Products, Lp Method for authenticating firmware volume and system therefor
TW201619866A (zh) * 2014-11-20 2016-06-01 萬國商業機器公司 客製化資訊設備的方法
US9916451B2 (en) * 2015-02-09 2018-03-13 Dell Products L.P. Information handling system boot pre-validation
US9612887B2 (en) 2015-06-26 2017-04-04 Intel Corporation Firmware-related event notification
US9935945B2 (en) 2015-11-05 2018-04-03 Quanta Computer Inc. Trusted management controller firmware
CN108351923B (zh) * 2016-01-28 2021-10-01 惠普发展公司,有限责任合伙企业 与统一可扩展固件接口系统可执行的脚本有关的阈值
US20170230186A1 (en) * 2016-02-05 2017-08-10 Samsung Electronics Co., Ltd. File management apparatus and method for verifying integrity
US9965292B2 (en) * 2016-02-26 2018-05-08 American Megatrends Inc. Method of bluetooth pairing with UEFI firmware and computer system thereof
US10365961B2 (en) * 2016-09-09 2019-07-30 Dell Products L.P. Information handling system pre-boot fault management
US20180088927A1 (en) * 2016-09-28 2018-03-29 Intel Corporation ROOT OF TRUST (RoT) APPLICATION FOR INTERNET OF THINGS (IoT) DEVICES
CN106776105B (zh) * 2016-11-15 2020-02-21 惠州Tcl移动通信有限公司 一种系统启动文件的校验及编译方法
US10491401B2 (en) 2017-02-21 2019-11-26 Google Llc Verification of code signature with flexible constraints
US11263326B2 (en) * 2017-06-02 2022-03-01 Apple Inc. Method and apparatus for secure system boot
US11025627B2 (en) * 2017-07-10 2021-06-01 Intel Corporation Scalable and secure resource isolation and sharing for IoT networks
US10489594B2 (en) 2017-07-19 2019-11-26 Dell Products, Lp System and method for secure migration of virtual machines between host servers
US10262158B1 (en) * 2017-07-27 2019-04-16 American Megatrends, Inc. Restricting the use of a firmware tool to a specific platform
US11074348B2 (en) 2017-08-24 2021-07-27 International Business Machines Corporation Securing and changing immutable data in secure bootup
KR102434444B1 (ko) 2017-11-29 2022-08-19 한국전자통신연구원 가상 트러스트 컴퓨팅 베이스를 이용한 기기 보안성 검증 방법 및 장치
US20190236279A1 (en) * 2018-01-31 2019-08-01 Hewlett Packard Enterprise Development Lp Perform security action based on inventory comparison
US11042644B2 (en) 2018-02-01 2021-06-22 Quixant Plc Method and system for security verification in a booting process with a multi-core processor
US11068600B2 (en) * 2018-05-21 2021-07-20 Kct Holdings, Llc Apparatus and method for secure router with layered encryption
CN110677250B (zh) 2018-07-02 2022-09-02 阿里巴巴集团控股有限公司 密钥和证书分发方法、身份信息处理方法、设备、介质
CN110795742B (zh) 2018-08-02 2023-05-02 阿里巴巴集团控股有限公司 高速密码运算的度量处理方法、装置、存储介质及处理器
CN110795774B (zh) 2018-08-02 2023-04-11 阿里巴巴集团控股有限公司 基于可信高速加密卡的度量方法、设备和系统
US10740084B2 (en) 2018-08-16 2020-08-11 Intel Corporation Soc-assisted resilient boot
US11165766B2 (en) 2018-08-21 2021-11-02 International Business Machines Corporation Implementing authentication protocol for merging multiple server nodes with trusted platform modules utilizing provisioned node certificates to support concurrent node add and remove
CN110874478B (zh) 2018-08-29 2023-05-02 阿里巴巴集团控股有限公司 密钥处理方法及装置、存储介质和处理器
US10885197B2 (en) 2018-09-21 2021-01-05 International Business Machines Corporation Merging multiple compute nodes with trusted platform modules utilizing authentication protocol with active trusted platform module provisioning
US11206141B2 (en) 2018-09-21 2021-12-21 International Business Machines Corporation Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
US10776488B2 (en) * 2018-09-24 2020-09-15 Dell Products L.P. Extend root of trust to include firmware of individual components of a device
CN109614156B (zh) * 2018-12-26 2021-10-15 贵州华芯通半导体技术有限公司 支持启动类外部设备的驱动的方法、装置和系统
US10853085B2 (en) 2019-03-22 2020-12-01 Dell Products L.P. Adjustable performance boot system
CN110363011B (zh) * 2019-07-19 2024-05-07 腾讯科技(深圳)有限公司 用于验证基于uefi的bios的安全性的方法和设备
US11347858B2 (en) * 2019-07-22 2022-05-31 Dell Products L.P. System and method to inhibit firmware downgrade
FR3099607B1 (fr) * 2019-07-30 2021-11-05 Stmicroelectronics Grand Ouest Sas Composant électronique à micrologiciel
CN111695111A (zh) * 2020-06-15 2020-09-22 浙江中控技术股份有限公司 固件程序的安全启动方法及装置
FR3113963B1 (fr) 2020-09-10 2023-06-30 Thales Sa Chaine de confiance avancee en aeronautique domaine de l'invention
CN112269609A (zh) * 2020-11-20 2021-01-26 深圳市友华通信技术有限公司 嵌入式linux设备的安全启动方法和装置
US11989304B2 (en) * 2022-03-09 2024-05-21 Dell Products L.P. Secure multi-BIOS-image system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US20070300007A1 (en) * 2006-06-21 2007-12-27 Intel Corporation Using multiple non-volatile memory devices to store data in a computer system
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW377370B (en) 1996-04-12 1999-12-21 Du Pont Waterborne fluoropolymer solutions for treating hard surfaces
US5919257A (en) * 1997-08-08 1999-07-06 Novell, Inc. Networked workstation intrusion detection system
US6263431B1 (en) * 1998-12-31 2001-07-17 Intle Corporation Operating system bootstrap security mechanism
FI114416B (fi) * 2001-06-15 2004-10-15 Nokia Corp Menetelmä elektroniikkalaitteen varmistamiseksi, varmistusjärjestelmä ja elektroniikkalaite
JP4769608B2 (ja) * 2006-03-22 2011-09-07 富士通株式会社 起動検証機能を有する情報処理装置
US8239686B1 (en) 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
US20090193211A1 (en) * 2008-01-24 2009-07-30 Broadcom Corporation Software authentication for computer systems
US8909940B2 (en) 2008-06-23 2014-12-09 Intel Corporation Extensible pre-boot authentication
US20090327741A1 (en) 2008-06-30 2009-12-31 Zimmer Vincent J System and method to secure boot uefi firmware and uefi-aware operating systems on a mobile internet device (mid)
US7853780B2 (en) 2008-07-31 2010-12-14 Oracle America, Inc. Core initialization code validation
RU2472215C1 (ru) 2011-12-28 2013-01-10 Закрытое акционерное общество "Лаборатория Касперского" Способ выявления неизвестных программ с использованием эмуляции процесса загрузки

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070061597A1 (en) * 2005-09-14 2007-03-15 Micky Holtzman Secure yet flexible system architecture for secure devices with flash mass storage memory
US20070300007A1 (en) * 2006-06-21 2007-12-27 Intel Corporation Using multiple non-volatile memory devices to store data in a computer system
US20080244553A1 (en) * 2007-03-28 2008-10-02 Daryl Carvis Cromer System and Method for Securely Updating Firmware Devices by Using a Hypervisor

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Freescale Semiconductor, Inc.-'Secure Boot on i.MX50, i.MX53, andi.MX 6 Series using HABv4', page1-43, 2012.10.25 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2022245030A1 (ko) * 2021-05-18 2022-11-24 삼성전자 주식회사 전자 장치 및 전자 장치에 보안 부팅을 적용하는 방법

Also Published As

Publication number Publication date
CN104995629B (zh) 2018-07-17
EP2962241A4 (en) 2016-09-14
US9223982B2 (en) 2015-12-29
EP2962241A1 (en) 2016-01-06
WO2014134389A1 (en) 2014-09-04
CN104995629A (zh) 2015-10-21
US20140250291A1 (en) 2014-09-04
EP2962241B1 (en) 2019-02-20
KR101702289B1 (ko) 2017-02-06

Similar Documents

Publication Publication Date Title
KR101702289B1 (ko) 플랫폼 부트 펌웨어에 대한 신뢰의 연속성
US10931451B2 (en) Securely recovering a computing device
US8254568B2 (en) Secure booting a computing device
US8826405B2 (en) Trusting an unverified code image in a computing device
US9292302B2 (en) Allowing bypassing of boot validation in a computer system having secure boot enabled by default only under certain circumstances
US10878096B2 (en) BIOS startup method and data processing method
US8539610B2 (en) Software security
US20130031631A1 (en) Detection of unauthorized device access or modifications
US10592661B2 (en) Package processing
US9436828B2 (en) Systems and methods for command-based entry into basic input/output system setup from operating system
US20160065375A1 (en) Dynamic integrity validation of a high level operating system
US20170300692A1 (en) Hardware Hardened Advanced Threat Protection
US20160350537A1 (en) Central processing unit and method to verify mainboard data
CN107077560B (zh) 用于建立安全工作空间的所有权的系统
CN110363011B (zh) 用于验证基于uefi的bios的安全性的方法和设备
US11809876B2 (en) Trusted platform module protection for non-volatile memory express (NVMe) recovery
CN107360167B (zh) 一种认证方法及装置
US10778650B2 (en) Systems and methods for management domain attestation service
US20220342996A1 (en) Information processing apparatus, method of controlling the same, and storage medium
US20230367860A1 (en) Instruction verifications
CN115687039A (zh) 一种云平台验证方法、组件及arm云平台

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right