KR102030858B1 - 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법 - Google Patents

디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법 Download PDF

Info

Publication number
KR102030858B1
KR102030858B1 KR1020147004666A KR20147004666A KR102030858B1 KR 102030858 B1 KR102030858 B1 KR 102030858B1 KR 1020147004666 A KR1020147004666 A KR 1020147004666A KR 20147004666 A KR20147004666 A KR 20147004666A KR 102030858 B1 KR102030858 B1 KR 102030858B1
Authority
KR
South Korea
Prior art keywords
confidentiality
platform
firmware
list
computing device
Prior art date
Application number
KR1020147004666A
Other languages
English (en)
Other versions
KR20140051350A (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 KR20140051350A publication Critical patent/KR20140051350A/ko
Application granted granted Critical
Publication of KR102030858B1 publication Critical patent/KR102030858B1/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers

Landscapes

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

Abstract

본 발명의 하나 이상의 특징에 따르면, 장치의 펌웨어 환경의 환경설정을 나타내는 표지가 생성된다. 장치의 기밀이 획득되고, 펌웨어 환경의 환경설정을 나타내는 표지와 장치의 기밀에 기초하여 플랫폼 기밀이 생성된다. 플랫폼 기밀에 기초하여 하나 이상의 키들이 생성될 수 있다.

Description

디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법{DIGITAL SIGNING AUTHORITY DEPENDENT PLATFORM SECRET}
본 발명은 디지털 서명 권한자에 기초하여 플랫폼 기밀을 생성하는 기법에 관한 것이다.
컴퓨터는 아주 흔하게 되고 있으며 컴퓨터의 사용자가 사적으로 보관하고자 하는 데이터를 저장하기 위해 자주 사용된다. 그러나, 컴퓨터는 사용자가 사적으로 유지하고자 하는 데이터에 액세스하는 것과 같은 다양한 바람직하지 않은 액션을 수행할 수 있는 악의적인 프로그램에 의해 공격의 표적이 될 수 있다. 이러한 악의적인 프로그램으로부터 컴퓨터들을 보호하는 것은 여전히 쉽지 않다.
본 요약은 이하의 상세한 설명에서 보다 자세히 설명될 선택적인 개념들을 단순화된 형태로 소개하고자 제공된다. 본 요약은 청구 대상의 필수 특징 또는 핵심 특징을 나타내고자 하는 것이 아니며, 청구 대상의 범위를 한정하기 위해 사용되는 것도 아니다.
하나 이상의 예시들에 따르면, 장치의 펌웨어 환경의 환경설정(configuration)을 나타내는 표지(representation)가 생성된다. 해당 장치의 기밀(secret)이 획득되며, 펌웨어 환경의 환경설정의 표시 및 해당 장치의 기밀 모두에 기초하여 플랫폼 기밀(platform secret)이 생성된다.
하나 이상의 예시들에 따르면, 펌웨어 환경의 환경설정의 표시 및 해당 장치의 기밀 모두에 적어도 부분적으로 기초하여 생성된 플랫폼 기밀이 획득된다. 플랫폼 기밀에 기초하여, 하나 이상의 키(key)들이 생성된다.
도면들에서 동일한 도면 부호는 동일한 특징을 나타내기 위해 사용되었다.
도 1은 하나 이상의 실시예들에 따른 디지털 서명 권한자 의존형 플랫폼 기밀을 구현하는 예시적인 장치를 도시한다.
도 2는 하나 이상의 실시예들에 따른 디지털 서명 권한자 의존형 플랫폼 기밀을 구현하는 예시적인 장치를 도시한다.
도 3은 하나 이상의 실시예들에 따른 권한자의 예시적인 리스트를 도시한다.
도 4는 하나 이상의 실시예들에 따른 권한자들의 다른 예시적인 리스트를 도시한다.
도 5는 하나 이상의 실시예들에 따른 디지털 서명 권한자 의존형 플랫폼 기밀을 생성하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 6은 하나 이상의 실시예들에 따른 디지털 서명 권한자 의존형 플랫폼 기밀을 사용하기 위한 예시적인 프로세스를 도시하는 흐름도이다.
도 7은 하나 이상의 실시예들에 따른 디지털 서명 권한자 의존형 플랫폼 기밀을 구현하기 위해 구성 가능한 예시적인 컴퓨팅 장치를 도시한다.
이하에서는 디지털 서명 권한자 의존형 플랫폼 기밀에 대해 설명하도록 한다. 장치의 부팅 프로세스 동안, 하나 이상의 펌웨어 컴포넌트들이 장치 상에 로딩되어 장치의 펌웨어 환경의 환경설정(configuration)을 나타내는 표지presentation)가 생성된다. 펌웨어 환경의 환경설정 표시는, 예를 들어 로딩된 펌웨어 컴포넌트들 중 적어도 하나에 디지털 서명을 한(또는 디지털 서명을 할 수 있었던) 권한자(authority) 각각에 대한 식별자, 컴포넌트들에 디지털 서명을 해도 되는 권한자들의 리스트를 수정하도록 허가된 권한자들의 신원(identification), 컴포넌트를 증명하도록 허가되지 않은 권한자들을 식별하는 취소 기록(revocation record) 및/또는 로딩되도록 허가되지 않은 특정 컴포넌트들의 식별자, 운영 체제 로더(operating system loader)에 디지털 서명하는 권한자의 식별자 등을 포함하는 하나 이상의 권한자들의 리스트와 같은 다양한 형태를 가질 수 있다. 장치의 기밀(secret)도 획득되는데, 장치의 기밀은 일반적으로 장치의 프로세서 또는 다른 부분에 포함되는 키(key)이다. 펌웨어 환경의 환경설정 표지는 장치의 기밀과 결합되어 플랫폼 기밀을 생성한다. 이러한 플랫폼 기밀은 장치에 의해 사용될 키들 또는 다른 값들을 생성하는 기초로서 사용된다. 따라서, 이러한 키들 또는 다른 값들은 (권한자들의 리스트에 의해 식별된 것처럼) 특정 장치 및 로딩된 펌웨어 컴포넌트들에 디지털 서명한 권한자들에 (장치의 기밀에 기초하여) 연관된다.
본 명세서에서는 대칭 키 암호화(symmetric key cryptography)), 공개 키 암호화(public key cryptography) 및 공개 키/개인 키 쌍(public/private key pairs)을 참조한다. 이러한 키 암호화는 본 기술 분야의 통상적인 지식을 가진 자에게 주지된 것이지만, 독자의 이해를 돕기 위해 이러한 암호화에 대한 간단한 개요가 제시된다. 공개 키 암호화에서, 엔티티(예를 들어, 사용자, 하드웨어 또는 소프트웨어 컴포넌트, 장치, 도메인 등)는 공개/개인 키 쌍과 연관되어 있다. 공개 키는 공개적으로 사용 가능하지만, 엔티티는 개인 키를 비밀리에 유지한다. 개인 키 없이는 공개 키를 이용해 암호화된 데이터를 해독(decrypt)하기가 연산적으로 매우 어렵다. 따라서, 데이터는 공개 키를 가지는 임의의 엔티티에 의해 암호화될 수 있지만 대응하는 개인 키를 가지는 엔티티에 의해서만 해독될 수 있다. 또한, 데이터 및 개인 키를 이용하여 해당 데이터에 대한 디지털 서명이 생성될 수 있다. 개인 키 없이는 공개 키를 이용하여 인증될 수 있는 서명을 생성하기가 연산적으로 매우 어렵다. 서명된 공개 키, 서명 및 데이터 상에 적절한 디지털 서명 인증 알고리즘을 실행함으로써 공개 키를 가지는 임의의 엔티티가 공개 키를 사용하여 디지털 서명을 인증할 수 있다.
한편, 대칭 키 암호화에서는 공유 키(대칭 키라고도 함)가 두 엔티티 모두에게 알려지고 비밀로 유지된다. 공유 키를 갖는 임의의 엔티티는 일반적으로 그 공유 키를 이용하여 암호화된 데이터를 해독할 수 있다. 공유 키가 없이, 그 공유 키를 이용하여 암호화된 데이터를 해독하는 것은 연산적으로 매우 어렵다. 따라서, 두 엔티티 모두가 공유 키를 알고 있으면 각각은 상대방에 의해 해독될 수 있는 데이터를 암호화할 수 있지만, 한 엔티티가 공유 키를 알지 못하면 그 엔티티는 데이터를 해독하지 못한다. 또한, 대칭 키 암호화에 따라, 예컨대, 키-해쉬(keyed-hash) 메시지 인증 코드 메커니즘을 이용하여 디지털 서명을 생성할 수 있다. 공유 키가 있으면 어떤 엔티티라도 디지털 서명을 생성하고 인증할 수 있다. 예를 들어, 신뢰되는 제3자가 특정 엔티티의 신원에 기초하여 대칭 키를 생성한 후, 해당 특정 엔티티에 대해 (이를테면, 그 대칭 키를 사용하여 데이터를 암호화 및 해독함으로써) 디지털 서명을 생성하고 인증할 수 있다.
도 1은 본 발명의 하나 이상의 실시예에 따라 디지털 서명 권한자 의존형 플랫폼 기밀을 구현하는 예시적인 장치(100)를 나타낸다. 장치(100)는 물리적 장치나 가상 장치와 같이 다양한 유형의 장치일 수 있다. 예컨대, 장치(100)는 데스크탑 컴퓨터, 서버 컴퓨터, 랩탑 또는 노트북 컴퓨터, 태블릿이나 노트패드 컴퓨터, 이동국, 엔터테인먼트 기기, 디스플레이 장치에 통신가능하게 결합된 셋-탑 박스, 텔레비전 또는 기타 디스플레이 장치, 셀룰러 또는 기타 무선 전화, 게임 콘솔, 자동차용 컴퓨터(automotive computer) 등과 같은 물리적 장치일 수 있다. 장치(100)는 물리적 장치 상에서 실행되는 가상 머신과 같은 가상 장치일 수도 있다. (전술한 다양한 유형의) 다양한 물리적 장치 상에서 가상 머신이 실행될 수 있다. 따라서, 장치(100)는 상당한 메모리와 프로세서 자원을 구비하는 풀 리소스 장치(예를 들어, 퍼스널 컴퓨터, 게임 콘솔)일 수도 있고 제한된 메모리 및/또는 프로세싱 리소스를 구비하는 저성능 장치(이를테면, 전통적인 셋-탑 박스, 소지형 게임 콘솔)일 수도 있다.
장치(100)의 전원을 켜거나 장치(100)를 리셋하면, 장치(100)는 부팅된다. 장치(100)의 부팅이란 장치(100)의 개시 동작(beginning operation)을 의미하며, 통상적으로 장치(100)의 운영 체제를 로딩하고 실행하는 것을 말한다. 장치(100)의 부팅은 통상 두 단계를 포함한다. 첫 번째 단계에서는 사전 운영 체제(pre-operating system) 환경의 컴포넌트들이 장치(100) 상에 로딩되어 실행된다. 사전 운영 체제 환경에서는 다양한 컴포넌트나 모듈들이 운영 체조의 부팅을 포함하는 다양한 동작을 수행하면서 실행된다. 두 번째 단계에서는 운영 체제 환경의 컴포넌트들이 장치(100) 상에 로딩되어 실행된다. 운영 체제 환경에서는 운영 체제가 장치(100) 상에서 실행된다.
컴포넌트의 로딩이란 그 컴포넌트를 휘발성 (또는 비휘발성) 메모리로 복사하고, 선택적으로 다른 컴포넌트나 데이터 저장부에 대한 추가적인 환경설정을 수행하는 것을 의미한다. 컴포넌트를 실행한다는 것은 장치(100)의 프로세서나 컨트롤러에 의해 그 컴포넌트의 명령어를 실행하는 것을 말한다. 장치(100)가 부팅된 후, 운영 체제에 의해 다양한 다른 프로그램들이 장치(100) 상에서 실행될 수 있다.
부팅 동작 중에 펌웨어(102)가 장치(100)에 의해 로딩되어 실행된다. 펌웨어(102)는 장치(100)의 비휘발성 메모리, 장치(100)에 연결된 착탈가능 매체, 장치(100)에 (예를 들어 네트워크를 통해) 연결된 다른 장치 등과 같은 다양한 소스로부터 얻을 수 있다. 펌웨어(102)는 운영 체제 로더(104)를 로딩하고 실행한다. 운영 체제 로더(104)는 운영 체제 커널(106)을 로딩하고 실행한다. 운영 체제 커널(106)은 다양한 추가 운영 체제 컴포넌트 및/또는 사용자 모드 컴포넌트를 로딩하고 실행한다. 이들 운영 체제 컴포넌트와 사용자 모드 컴포넌트는 그러한 컴포넌트를 실행하라는 사용자의 요청 또는 다른 컴포넌트나 모듈로부터의 요청에 응답하여 실행된다.
안전 부팅 환경설정(secure boot configuration)인 경우, 펌웨어(102)는 로딩되기 전(및/또는 실행되기 전) 인증되는 복수의 컴포넌트들을 포함한다. 컴포넌트는 그 컴포넌트가 용인된 권한자에 의해 디지털 서명되었음을 인증하거나, 그 컴포넌트가 로딩 금지된 것으로 식별되지 않음을 인증하거나, 그 컴포넌트가 다양한 특징이나 특성을 갖고 있음을 인증하는 등의 다양한 방식에 의해 인증될 수 있다. 본 명세서에서 권한자란 컴포넌트의 발행자(publisher)나 배포자(distributor), 신뢰되는 제3자, 컴포넌트의 재판매자(reseller) 등과 같이 디지털 서명을 생성하는 엔티티를 가리킨다. 정책(112)은 펌웨어(102)의 어느 컴포넌트가 로딩 및/또는 실행될지를 나타내고 펌웨어(102)의 컴포넌트를 로딩 및/또는 실행하기 전에 인증하는 데 사용되는 기준을 포함한다. 정책(112)은 컴포넌트들에 디지털 서명을 할 수 있는 용인된 권한자들을 식별하는 리스트 (또는 리스트를 획득할 수 있는 위치)나 로딩이 금지된 컴포넌트들을 식별하는 리스트 (또는 리스트를 획득할 수 있는 위치)와 같은 다양한 기준을 포함할 수 있다.
장치(100)는 플랫폼 기밀 생성 모듈(114)도 포함한다. 모듈(114)은 특정 장치(100) 및 장치(100)의 펌웨어 환경의 환경설정을 나타내는 표지에 기초하여 플랫폼 기밀을 생성한다. 펌웨어 환경의 환경설정을 나타내는 표지는, 이를테면, 펌웨어(102)의 컴포넌트들에 디지털 서명을 한 (또는 디지털 서명을 할 수 있었던) 권한자들의 리스트, 컴포넌트들에 디지털 서명을 할 수 있는 정책(112) 내에서 용인된 권한자들의 리스트를 수정하도록 허용되는 권한자들의 신원(identifications), 펌웨어(102)의 컴포넌트를 인증하는 것이 허용되지 않은 권한자들을 식별하는 취소 기록(revocation record) 및/또는 펌웨어(102)로서 로딩되어서는 안 되는 특정 컴포넌트들의 식별자, 운영 체제 로더(104)에 디지털 서명을 한 권한자의 식별자 등을 포함할 수 있다. 플랫폼 기밀은 특정한 장치의 조합 및 그 장치의 펌웨어 환경의 환경설정을 나타내는 표지와 결합된 기밀값이다. 펌웨어 환경의 환경설정을 나타내는 표지 및 플랫폼 기밀의 생성에 대해서는 이하에서 더 자세히 논의하도록 한다.
하나 이상의 실시예에서, 펌웨어(102) 및 운영체제 로더(104)는 (사전-부팅(pre-boot) 환경 또는 사전-운영 체제(pre-operating system) 환경으로도 지칭하는) 사전-실행 환경(pre-execution environment)의 일부로서 구현되는데, 이는 운영 체제가 부팅을 마치고 실행되기 전에 장치(100) 상에서 실행되는 환경을 가리킨다. 이러한 실시예에서, 펌웨어(102)와 운영 체제 로더(104)는 장치(100)의 네트워크 인터페이스 카드와 같은 장치(100) (예컨대, ROM이나 플래시 메모리) 상에 저장될 수 있다. 이와는 달리, 펌웨어(102)와 운영 체제 로더(104)를 사전-실행 환경 동안 다른 장치나 서비스로부터 획득할 수도 있다. 예를 들어, 펌웨어(102)와 운영 체제 로더(104)는 다른 장치나 서비스로부터 장치(100)로 제공되는 부팅 이미지의 일부로서 포함될 수도 있다.
사전-실행 환경은 다양한 방식으로 구현될 수 있으며, 다양한 통상의 기법에 기초할 수 있다. 이를테면, 사전-실행 환경은 UEFI(Unified Extensible Firmware Interface) 표준 버전 2.3이나 다른 버전에 따라 구현될 수 있다. 다른 예로서, 사전-실행 환경은 PXE(Preboot eXecution Environment) 표준 버전 2.0 또는 다른 버전에 따라 구현될 수도 있다. 또 다른 예로서, 사전-실행 환경은 다양한 퍼스널 컴퓨터 BIOS (basic input/output system) 버전을 이용하여 구현될 수도 있다.
도 2는 하나 이상의 실시예에 따라 디지털 서명 권한자 의존형 플랫폼 기밀을 구현하는 예시적인 시스템(200)을 도시하고 있다. (선택적으로 이용가능한 컴포넌트(204)를 제외한) 시스템(200)은 도 1의 장치와 같은 장치의 일부로서 포함된다. 부팅 과정 중에 이용가능한 컴포넌트들(202) 중 선택된 것들이 펌웨어 컴포넌트(204)로서 로딩된다. 이용가능한 컴포넌트들(202)은 펌웨어 컴포넌트(204)로서 획득되고 로딩될 수 있는 컴포넌트들을 의미하지만, 이용가능한 컴포넌트들(202) 전부가 펌웨어 컴포넌트(204)로서 실제로 로딩될 필요는 없다. 이용가능한 컴포넌트들(202) 중 어느 것이 펌웨어 컴포넌트(204)로서 로딩될지는 다양한 방식으로 식별될 수 있는데, 시스템(200)을 구현하는 장치에 결합되거나 일부로서 포함되는 하드웨어가 무엇인지, 펌웨어 컴포넌트(204)들 중 특정한 것들의 환경설정이 어떠한지 등에 따를 수 있다. 이용가능한 컴포넌트들(202) 중 선택된 것들은 로컬 저장 장치, 다른 장치나 서비스, 전술한 장치들로부터 획득될 수 있다.
이용가능한 컴포넌트(202)는 펌웨어 컴포넌트(204)로서 로딩되기 전에 인증된다. 하나 이상의 실시예에서, 특정 컴포넌트(예를 들어, 로딩된 초기 컴포넌트)는 다른 로딩된 펌웨어 컴포넌트(204)들의 인증을 관리한다. 이 특정 컴포넌트는 예컨대 기록불가능(non-writeable) 저장 매체에 저장될 수도 있고, 컴포넌트가 조작되지 않도록 보호하는 방식으로 달리 저장될 수도 있다. 이와는 달리, 복수의 펌웨어 컴포넌트(204)들이 다른 로딩된 펌웨어 컴포넌트(204)들의 인증을 관리할 수도 있다. 이를테면, 초기 컴포넌트가 판독불가능 저장 매체에 저장되거나 컴포넌트가 조작되지 않도록 보호하는 방식으로 저장되고, 그 초기 컴포넌트가 하나 이상의 추가 펌웨어 컴포넌트(204)들을 인증하고 로딩할 수도 있다. 이어서, 이들 하나 이상의 추가 펌웨어 컴포넌트(204)들 각각이 하나 이상의 또 다른 펌웨어 컴포넌트(204)들을 인증하고 로딩하는 식으로 계속될 수 있다.
정책(206)은 펌웨어 컴포넌트(204)를 인증하는 다양한 기준을 포함한다. 하나 이상의 실시예에서, 정책(206)은 용인된 권한자들의 기록과 취소 기록(취소되거나 기타 허용불가능한 권한자 및/또는 컴포넌트들의 기록)을 포함한다. 이들 기록은 하나 이상의 리스트, 하나 이상의 데이터베이스 등 다양한 형태를 취할 수 있다. 용인된 권한자들의 기록은 컴포넌트를 인증하도록 허용되는 권한자들의 식별자들을 포함한다. 취소 기록은 컴포넌트를 인증하는 것이 허용되지 않는 권한자들의 식별자들 및/또는 로딩되어서는 안 되는 특정 컴포넌트들의 식별자들을 포함한다. (용인된 것이든 취소된 것이든) 권한자의 식별자는 권한자의 공개키, 권한자의 공개 키와 관련된 공개 키 등 다양한 형태를 취할 수 있다. 특정 컴포넌트의 식별자도 그 컴포넌트에 해쉬 함수를 적용하여 생성한 해쉬값과 같은 다양한 형태를 취할 수 있다.
어떤 컴포넌트가 용인된 권한자에 의해 디지털 서명을 받지 않거나, 취소 기록 내에서 확인되는 권한자에 의해 디지털 서명을 받거나, 그 컴포넌트의 식별자가 취소 기록 내에 포함된다면, 그 컴포넌트는 인증되지 않는다. 어떤 컴포넌트가 용인된 권한자에 의해 디지털 서명을 받으면, 그 컴포넌트는 (그 컴포넌트에 디지털 서명을 한 권한자가 취소 기록 내에서도 확인되거나 그 컴포넌트의 식별자가 취소 기록 내에 포함되지 않는 한) 인증된 것이다.
시스템(200)을 구현하는 장치의 펌웨어 환경의 환경설정을 나타내는 펌웨어 환경의 환경설정 표지(208)가 생성된다. 펌웨어 환경의 환경설정은 다양한 정보를 포함할 수 있으며, 일반적으로 펌웨어 컴포넌트(204)들 및/또는 펌웨어 컴포넌트(204)로서 로딩되는 것이 허용되지 않는 펌웨어 컴포넌트(204)를 로딩함에 있어 기초가 되는 권한자들을 참조한다. 펌웨어 환경의 환경설정 표지(208)는 권한자 리스트(220), 취소 기록(222), 운영 체제 로더 권한자(224) 및/또는 권한자 수정 리스트(226)를 포함한다. 권한자 리스트(220)는 펌웨어 컴포넌트(204)에 디지털 서명을 한 (또는 디지털 서명을 할 수 있었던) 권한자들의 리스트이다. 취소 기록(222)은 펌웨어 컴포넌트(204)를 인증하는 것이 허용되지 않는 권한자들 및/또는 펌웨어 컴포넌트(204)로서 로딩되는 것이 허용되지 않는 특정 컴포넌트들의 식별자들의 기록을 의미한다. 운영 체제 로더 권한자(224)는 (도 1의 운영 체제 로더(104)와 같은) 운영 체제 로더에 디지털 서명을 한 권한자의 식별자 등을 나타낸다. 권한자 수정 리스트(226)는 컴포넌트들에 디지털 서명을 할 수 있는 용인된 권한자들의 리스트를 수정하도록 허용되는 권한자들의 신원을 가리킨다.
어떤 컴포넌트가 펌웨어 컴포넌트(204)로서 로딩되면, 그 컴포넌트에 디지털 서명을 한 권한자의 식별자가 권한자 리스트(220)에 (예를 들어, 그 컴포넌트를 인증한 컴포넌트에 의해) 추가될 수 있다. 리스트라고 지칭하였지만, 권한자 리스트는 데이터베이스나 기타 레코드일 수도 있다.
하나 이상의 실시예에서, 어떤 컴포넌트에 디지털 서명을 한 권한자의 식별자가 각 펌웨어 컴포넌트(204)에 대한 권한자 리스트(220)에 추가된다. 이러한 실시예에서, 권한자 리스트(220)는 펌웨어 컴포넌트(204)로서 로딩된 컴포넌트들에 디지털 서명을 한 권한자들의 리스트로서 펌웨어 컴포넌트(204)가 로딩된 순서를 취한다.
도 3은 하나 이상의 실시예에 따른 권한자 리스트(302)를 도시하고 있다. 권한자 리스트(302)는 예를 들어 도 2의 권한자 리스트(220)와 같은 것일 수 있다. 복수의 컴포넌트(304)가 그들이 펌웨어 컴포넌트로서 로딩된 순서에 따라 도시되어 있고, 각 컴포넌트에 디지털 서명을 한 권한자들도 나타나 있다. 따라서, 6개의 펌웨어 컴포넌트들이 다음 순서대로 로딩되어 있다: 컴포넌트 A, 컴포넌트 D, 컴포넌트 C, 컴포넌트 E, 컴포넌트 F, 컴포넌트 B. 컴포넌트 A, E, F는 권한자 R에 의해 디지털 서명을 받았고, 컴포넌트 B와 D는 권한자 S에 의해 디지털 서명을 받았으며, 컴포넌트 C는 권한자 T에 의해 디지털 서명을 받았다. 권한자 리스트(302)는 펌웨어 컴포넌트(204)로서 로딩된 컴포넌트들에 디지털 서명을 한 권한자들의 리스트로서, 펌웨어 컴포넌트(204)들이 로딩된 순서를 취한다. 그러므로, 권한자 리스트(302)는 권한자 R, 권한자 S, 권한자 T, 권한자 R, 권한자 R, 권한자 S를 갖는다.
도 2로 돌아오면, 다른 실시예에서, 어떤 컴포넌트에 디지털 서명을 하는 권한자의 식별자는 그 권한자의 식별자가 권한자 리스트(220)에 아직 포함되어 있지 않은 경우에 한해 권한자 리스트(220)에 추가되는 것으로, 그 권한자의 식별자가 권한자 리스트(220)에 이미 포함되어 있다면 그 권한자의 다른 식별자를 권한자 리스트(220)에 추가할 필요는 없다. 이러한 실시예에서, 권한자 리스트(220)는 펌웨어 컴포넌트(204)들 중 적어도 하나에 대해 디지털 서명을 한 권한자들의 리스트로서, 이들 하나 이상의 권한자들이 어느 컴포넌트에 디지털 서명을 했는지, 그리고 이들 하나 이상의 권한자들이 얼마나 많은 컴포넌트들에 디지털 서명을 했는지 여부는 고려하지 않는다.
도 4는 하나 이상의 실시예에 따른 예시적인 권한자 리스트(402)를 도시하고 있다. 권한자 리스트(402)는 이를테면 도 2의 권한자 리스트(220)일 수 있다. 도 3과 관련하여 논의한 것과 유사하게, 복수의 컴포넌트들(304)이 펌웨어 컴포넌트로서 로딩된 순서대로 도시되어 있다. 권한자 리스트(402)는 펌웨어 컴포넌트(204)들 중 적어도 하나에 대해 디지털 서명을 한 권한자들의 리스트로서, 이들 하나 이상의 권한자들이 어느 컴포넌트에 디지털 서명을 했는지, 그리고 이들 하나 이상의 권한자들이 얼마나 많은 컴포넌트들에 디지털 서명을 했는지 여부는 상관없다. 따라서, 권한자 리스트(402)는 권한자 R, 권한자 S, 권한자 T를 갖는다.
도 2로 돌아가서, 권한자 리스트(220)는 정책(206)으로부터 제공된 용인된 권한자들의 기록일 수 있다. 그러므로, 어느 권한자가 펌웨어 컴포넌트(204)에 대해 디지털 서명을 했는지를 식별하는 대신, 권한자 리스트(220)는 펌웨어 컴포넌트(204)들에 대해 디지털 서명을 할 수 있었던 권한자들을 식별하고, 이들 권한자들이 하나 이상의 펌웨어 컴포넌트(204)들에 대해 실제로 디지털 서명을 했는지 여부는 따지지 않는다.
펌웨어 환경의 환경설정 표지(208)는 정책(206)으로부터의 취소 기록을 취소 기록(222)으로서 포함할 수 있다. 따라서, 펌웨어 환경의 환경설정 표지(208)는 컴포넌트를 인증하도록 허용되지 않은 권한자들의 식별자 및/또는 로딩되는 것이 허용되지 않은 특정 컴포넌트들의 식별자를 포함할 수 있다.
펌웨어 환경의 환경설정 표지(208)는 운영 체제 로더 권한자(224)도 포함할 수 있다. 운영 체제 로더 권한자(224)는 시스템(200)을 구현하는 장치 상에 로딩된 (도 1의 운영 체제 로더(104)와 같은) 운영 체제 로더에 디지털 서명을 한 권한자의 식별자이다.
펌웨어 환경의 환경설정 표지(208)는 권한자 수정 리스트(226)도 포함할 수 있다. 권한자 수정 리스트(226)는 컴포넌트들에 디지털 서명을 할 수 있는 (예컨대, 정책(206)을 수정해도 되는) 용인된 권한자들의 리스트를 수정하도록 허용된 권한자들의 신원(예를 들어 리스트)을 나타낸다.
또한, 시스템(200)에 하나의 펌웨어 환경의 환경설정 표지(208)만 포함되는 것으로 도시하였지만, 복수의 펌웨어 환경의 환경설정 표지(208)들이 시스템(200) 내에 포함될 수 있다는 점에 유의하여야 한다. 예컨대, 어떤 펌웨어 환경의 환경설정 표지는 펌웨어 컴포넌트(204)로서 로딩된 컴포넌트들에 디지털 서명을 한 권한자들의 리스트를 그 펌웨어 컴포넌트(204)들이 로딩된 순서대로 포함할 수 있고, 다른 표지는 적어도 하나의 펌웨어 컴포넌트(204)에 대해 디지털 서명을 한 권한자들의 리스트를 포함할 수 있는데, 이들 하나 이상의 권한자들이 어느 컴포넌트에 디지털 서명을 했는지 그리고 이들 하나 이상의 권한자들이 얼마나 많은 컴포넌트들에 디지털 서명을 했는지와는 무관하게 할 수 있다. 다른 예로서, 어떤 펌웨어 환경의 환경설정 표지는 권한자 리스트 및 운영체제 로더 권한자를 포함할 수 있고, 다른 펌웨어 환경의 환경설정 표지는 권한자 리스트와 취소 기록을 포함할 수 있으며, 또 다른 펌웨어 환경의 환경설정 표지도 권한자 리스트와 취소 기록을 포함할 수 있다.
나아가, 본 명세서와 시스템(200)에서는 펌웨어 환경의 환경설정 표지(208)에 포함될 수 있는 정보의 예로서 특정한 것들만 논의되고 도시되었지만, 펌웨어 환경의 환경설정 표지(208) 내에 다른 정보를 포함할 수도 있다.
펌웨어 환경의 환경설정 표지(208)는 통합 모듈(210)에 제공되거나 통합 모듈(210)이 이용가능하도록 된다. 통합 모듈(210)은 펌웨어 컴포넌트(204)들 중 하나로서 포함될 수도 있고, 다른 방식으로 구현될 수도 있다. 통합 모듈(210)은 플랫폼 기밀(212)을 생성함에 있어 펌웨어 환경의 환경설정 표지(208)를 이용한다. 통합 모듈(210)은 펌웨어 환경의 환경설정 표지(208)를 그대로 (즉, 생성된 형태 그대로) 이용할 수도 있고, 펌웨어 환경의 환경설정 표지(208) 내의 정보를 수정하거나 모듈(210)이 펌웨어 환경의 환경설정 표지(208)로부터 원하는 정보를 추출할 수도 있다. 예컨대, 권한자 리스트(220)가 펌웨어 컴포넌트(204)로서 로딩된 컴포넌트들에 디지털 서명을 한 권한자 리스트를 사용하되 이들 하나 이상의 권한자들의 어느 컴포넌트에 디지털 서명을 했는지 그리고 이들 하나 이상의 권한자들이 얼마나 많은 컴포넌트들에 디지털 서명을 했는지를 고려하지 않는다면, 통합 모듈(210)은 자신이 사용하는 권한자들을 권한자 리스트(220)에 존재하는 순서대로 사용하는 것이 아니라, 권한자 리스트(220)로부터 추출할 수 있을 것이다. 다른 예로서, 펌웨어 환경의 환경설정 표지(208)가 취소 기록(222)을 포함하되 통합 모듈(210)이 권한자 리스트와 운영 체제 로더 권한자를 사용한다면, 통합 모듈(210)은 펌웨어 환경의 환경설정 표지(208)로부터 권한자 리스트(220) 및 운영 체제 로더 권한자(224)를 추출하고 취소 기록(222)은 추출하지 않을 것이다.
하나 이상의 실시예에서, 통합 모듈(210)은 하나 이상의 펌웨어 컴포넌트(204)들에 디지털 서명을 한 권한자들의 리스트를 사용하되, 이들 하나 이상의 권한자들의 어느 컴포넌트에 디지털 서명을 했는지 그리고 이들 하나 이상의 권한자들이 얼마나 많은 컴포넌트들에 디지털 서명을 했는지는 고려하지 않는다. 통함 모듈(210)은 권한자들의 리스트를 (이를테면 알파벳 순서로, 계수적으로(numerically), 다른 알려진 순서에 따라) 순서화(sort)하고, 순서화된 리스트를 사용하여 플랫폼 기밀(212)을 생성한다. 통합 모듈(210)은 중복되는 권한자가 존재하면 권한자 리스트로부터 중복되는 것들을 제거할 수 있다(예를 들어, 특정 권한자가 권한자 리스트(220) 내에 여러 번 포함되면, 이 특정 권한자가 권한자 리스트(220) 내에 한 번만 포함되도록 통합 모듈(210)이 중복되는 것들을 제거할 수 있다). 그러므로, 이러한 실시예에서는, 플랫폼 기밀(212)이 적어도 하나의 펌웨어 컴포넌트(204)에 디지털 서명을 한 권한자들의 식별자에 기초하여 생성된다. 따라서, 플랫폼 기밀(212)은 각 권한자가 어느 펌웨어 컴포넌트들에 대해 디지털 서명을 했는지, 각 권한자가 얼마나 많은 펌웨어 컴포넌트들에 대해 디지털 서명을 했는지, 펌웨어 컴포넌트(204)들이 어떤 순서로 로딩되었는지에 대해서는 고려하지 않고 생성된다.
하나 이상의 실시예에서, 통합 모듈(210)은 펌웨어 컴포넌트(204)로서 로딩된 컴포넌트들에 디지털 서명을 한 권한자들이 이들 펌웨어 컴포넌트(204)가 로딩된 순서대로 포함된 리스트를 사용한다. 이러한 실시예는 펌웨어 컴포넌트(204)들이 로딩된 순서에 의존하므로 통합 모듈(210)은 통상적으로 권한자 리스트를 순서화하지 않는다 (그러나 순서화할 수도 있다). 그러므로, 이러한 실시예에서 플랫폼 기밀(212)은 각 권한자가 얼마나 많은 펌웨어 컴포넌트들에 대해 디지털 서명을 했는지, 펌웨어 컴포넌트(204)들이 어떤 순서로 로딩되었는지에 의해 결정된다.
다른 실시예에서는 통합 모듈이 정책(206)으로부터 제공된 용인된 권한자들의 기록인 권한자 리스트를 이용한다. 그러므로, 이러한 실시예에서 플랫폼 기밀(212)은 컴포넌트들 인증하도록 허용된 권한자들에 기초하여 생성되며, 이들 권한자들이 펌웨어 컴포넌트에 대해 실제로 디지털 서명을 생성하였는지 여부는 고려하지 않는다.
하나 이상의 실시예에서, 통합 모듈(210)은 권한자 리스트(220) 및/또는 취소 기록(222)에 더하여 또는 이에 갈음하여 운영 체제 로더 권한자(224)를 사용한다. 따라서, 이러한 실시예에서 플랫폼 기밀(212)은 운영 체제 로더에 디지털 t명을 한 권한자에 기초하여 생성되어, 서로 다른 운영 체제에 대한 펌웨어 컴포넌트(204) 및/또는 정책(206)이 동일할지라도 이들 서로 다른 운영 체제에 대해서는 서로 다른 플랫폼 기밀들이 생성되게 된다. 운영 체제 로더 권한자(224)는 권한자 리스트(220)의 식별된 위치(예를 들어, 끝부분)에 첨부될 수도 있고, 권한자 리스트(220) 내에 권한자(예컨대, 마지막 권한자)로서 포함될 수도 있다.
통합 모듈(210)은 장치 기밀(214)을 사용할 수도 있는데, 장치 기밀은 시스템(200)을 구현하는 장치의 기밀로서, 장치가 다르면 기밀도 달라진다 (또는 달라질 가능성이 임계치보다 높다). 하나 이상의 실시예에서, 장치 기밀(214)은 프로세서 내의 복수의 퓨즈 (예를 들어, 수백 개)를 이용하는 장치 내에 포함되고, 이들 퓨즈들 중 여러 가지 조합을 블로우시키거나 블로우시키지 않음으로써 특정 이진 키값이 인코딩된다. 이와는 달리, 장치 기밀(214)은 프로세서가 아닌 다른 하드웨어 컴포넌트 내에 포함되거나, 퓨즈가 아닌 다른 하드웨어 구성요소를 이용하는 등과 같이 다른 방식으로 장치 내에 포함될 수 있다. 장치 기밀(214)은 전형적으로 펌웨어 컴포넌트(204)들에는 액세스가능하지만 다른 컴포넌트(예를 들어, 도 1의 운영 체제 커널(106))에는 그렇지 않도록 보호된다. 장치 기밀(214)은 다른 방식으로 보호될 수도 있는데, 펌웨어 컴포넌트들에 의해서만 액세스가능한 인터페이스를 통해 검색되거나, 특정 위치에 어떤 값이 기록될 때까지만 액세스가능하도록 하고 그 이후에는 액세스가능하지 않도록 하거나 (이를테면, 통합 모듈(210)이 장치 기밀(214)을 검색한 후 그 특정 위치에 기록), 간접적으로 액세스가능하도록 (예컨대, 시스템(200) 상의 다른 키를 언록(unlock)하거나 언씰(unseal)하기 위한 인증값(authorization value)으로 사용) 하는 등의 방식을 취할 수 있다.
통합 모듈(210)은 펌웨어 환경의 환경설정 표지(208)와 장치 기밀(214)을 통합하여 플랫폼 기밀(212)을 생성한다. 통합 모듈(210)은 다양한 통합 프로세스나 기법을 이용하여 펌웨어 환경의 환경설정 표지(208)와 장치 기밀(214)을 생성할 수 있다. 하나 이상의 실시예에서, 펌웨어 환경의 환경설정 표지(208)는 다양한 식별자들의 리스트이고, 장치 기밀(214)이 펌웨어 환경의 환경설정 표지(208)에 추가(예를 들어, 표지의 시작이나 끝에 첨부)되며, 결과값은 메시지 인증 코드(MAC: message authentication code)나 해쉬-기반 메시지 인증 코드(HMAC: hash-based message authentication code) 또는 기타 키 도출 함수로 입력된다. 이를테면, 통합 프로세스는 DES3-CBC-MAC(Triple Data Encryption Standard Cipher Block Chaining Message Authentication Code), SHA-1(Secure Hash Algorithm 1)을 이용한 HMAC 등을 사용할 수 있다. HMAC의 출력은 플랫폼 기밀(212)이다. 이와는 달리, 통합 프로세스는 장치 기밀(214)을 펌웨어 환경의 환경설정 표지(208)에 추가(표지의 시작이나 끝에 첨부)하는 것과 같이 다른 형태를 취할 수도 있고, 결과값을 인증값으로서 다른 컴포넌트로 제공하여 플랫폼 기밀(212)인 키를 언록하거나 인출하도록 한다.
그리고, 통합 모듈(210)은 통합 프로세스에서 사용되는 값으로서 다른 엔티티로부터 수신된 값을 사용(예컨대, 장치 기밀(214)이 권한자 리스트(208)와 통합되는 것과 유사한 방식으로 권한자 리스트(208)와 그 값을 통합)할 수 있다. 이를테면, 기업 환경에서는 엔터프라이즈 값(enterprise value)이 통합 모듈(210)에 제공되어, 그 엔터 프라이 값이 장치가 속한 환경(특정 도메인, 네트워크 등)을 다른 환경으로부터 구별하는 역할을 수행할 수 있다. 이 엔터프라이즈 값은 사전-실행 환경 변수 또는 기업 네트워크의 서버나 서비스에 의해 제공되는 다른 값으로서, 또는 기업 네트워크 관리자에 의해 제공되는 등 상이한 방식에 따라 제공될 수 있다. 이 엔터프라이즈 값으로 인해 플랫폼 기밀(212)이 특정 기업 환경에 기초하게 되어, 장치 기밀(214)이 발견되고 펌웨어 환경의 환경설정 표지(208)가 알려지더라도, 플랫폼 기밀(212)은 이 엔터프라이즈 값 없이는 생성되지 않도록 할 수 있다.
플랫폼 기밀(212)은 특정 장치 기밀 및 펌웨어 환경의 환경설정 모두에 관련된 기밀이다. 플랫폼 기밀(212)은 동일한 펌웨어 환경의 환경설정 표지를 포함하는 후속 부팅에 대해 용이하게 재생성될 수 있다. 이를테면, 펌웨어 환경의 환경설정 표지(208)가 펌웨어 컴포넌트(204)들 중 적어도 하나에 디지털 서명을 한 권한자들의 리스트인 권한자 리스트(220)를 포함하고, 이들 하나 이상의 권한자들이 어느 컴포넌트에 디지털 서명을 했는지, 그리고 이들 하나 이상의 권한자들이 얼마나 많은 컴포넌트에 디지털 서명을 했는지는 고려하지 않는다고 가정해 보기로 한다. 권한자 리스트 내에 있지 않은 다른 권한자가 디지털 서명을 한 추가 펌웨어 컴포넌트가 펌웨어 컴포넌트로서 로딩된다면, 권한자 리스트 변경으로 인해 다른 플랫폼 기밀이 생성될 것이다. 마찬가지로, 상이한 장치 상에 동일한 펌웨어 컴포넌트들이 로딩된다면, 장치 기밀 변경으로 인해 상이한 플랫폼 기밀이 생성될 것이다. 그러나, 어떤 펌웨어 컴포넌트가 자신의 이전 버전과 동일한 권한자에 의해 디지털 서명을 받은 새로운 버전을 발행한다면, 동일한 플랫폼 기밀(212)이 생성될 것이다.
플랫폼 기밀(212)은 다양한 컴포넌트에 제공되어 다양한 방식으로 사용될 수 있다. 예컨대, 플랫폼 기밀(212)은 암호화 및/또는 해독에 사용되는 하나 이상의 추가 키를 생성하거나 암호화 및/또는 해독에 사용되는 하나 이상의 추가 키를 검색하기 위한 기초로 사용될 수 있다. 이들 키는 공개 키, 개인 키, 및/또는 대칭 키를 포함할 수 있다. 하나 이상의 실시예에서, 플랫폼 기밀(212)은 (도 1의 운영 체제 로더(104)와 같은) 운영 체제 로더에 제공되어, 데이터를 암호화 및 해독하는 하나 이상의 키를 생성하는 데 사용된다. 운영 체제 로더는 다른 컴포넌트들이 플랫폼 기밀(212)을 액세스하지 못하도록 플랫폼 기밀(212)을 보호할 수도 있고, 운영 체제 로더가 하나 이상의 키를 생성한 후 플랫폼 기밀(212)을 삭제할 수도 있다.
하나 이상의 실시예에서, 운영 체제 커널은 하나 이상의 볼륨 키를 사용하여 (시스템(200)을 포함하는 장치에 의해 사용되는 저장 장치와 같은) 저장부(storage volumes) 상에서 데이터 암호화를 지원한다. 운영 체제 로더는 플랫폼 기밀을 이용하여 공개/개인 키 쌍을 생성한 후, 운영 체제 커널을 실행하기 전에 플랫폼 기밀과 개인 키를 삭제한다. 운영 체제 커널은 플랫폼 기밀이나 개인 키에 대해서는 모르지만, 공개 키를 이용하여 하나 이상의 볼륨 키를 암호화할 수 있다. 이어서, 암호화된 하나 이상의 볼륨 키는 (디스크나 플래시 메모리 등에) 저장될 수 있다. 후속하는 부팅 시에, 운영 체제 로더는 동일한 공개/개인 키 쌍을 재생성하고, 개인 키를 이용하여 하나 이상의 볼륨 키를 해독한 후 운영 체제 커널에 제공할 수 있다. 따라서, 볼륨 키를 보호하면서도, 후속 부팅 시 용이하게 재생성할 수 있다.
펌웨어 환경의 환경설정 표지(208) (또는 통합 모듈(210)에 의해 사용된 펌웨어 환경의 환경설정 표지(208)의 적어도 일부분)와 장치 기밀(214)이 변경되지 않는 한 플랫폼 기밀(212)을 재생성할 수 있다. 그러므로, 운영 체제 로더와 같은 다른 컴포넌트는 자신이 복수의 부팅에 걸쳐 생성한 키들을 유지할 필요가 없게 된다. 오히려, 이들 다른 컴포넌트들은 후속 부팅 중에 플랫폼 기밀에 기초하여 키들을 간단히 재생성할 수 있어서, 그러한 키들을 안전하게 유지하는 것과 관련된 우려가 없어진다.
펌웨어 컴포넌트(204)에 관한 추가 정보도 선택적으로 유지할 수 있다. 이 추가 정보는 펌웨어 환경의 환경설정 표지(208) 및/또는 하나 이상의 다른 기록 또는 리스트 내에 유지될 수 있다. 각 펌웨어 컴포넌트가 정책(206)의 어느 부분을 준수하는지 등과 같은 다양한 추가 정보가 유지될 수 있다. 이를테면, 컴포넌트를 인증하기 위해 준수되는 특정 기준을 나타내는 표지(예컨대, 컴포넌트에 디지털 서명을 한 특정 권한자)일 수 있다. 이 추가 정보는 (안전한 방식으로) 유지되고 도 1의 운영 체제 로더(104) 및/또는 운영 체제 커널(106)과 같은 다른 모듈이나 컴포넌트에 의해 액세스될 수 있다. 이러한 추가 정보를 유지함으로써 다른 모듈이나 컴포넌트는 컴포넌트를 인증하기 위해 준수된 특정 기준과 같은 다른 정보뿐 아니라 로딩된 펌웨어 컴포넌트의 로그도 추후 볼 수 있다. 이러한 추가 정보는 플랫폼 기밀(212)을 생성함에 있어서 통합 모듈(210)에 의해 사용될 수도 있다 (예를 들어, 이러한 추가 정보는 권한자 리스트(220), 취소 기록(222), 운영 체제 로더 권한자(224) 및/또는 권한자 수정 리스트(226)에 첨부되거나 이들과 통합될 수 있다).
도 5는 하나 이상의 실시예에 따라 디지털 서명 권한자 의존형 플랫폼 기밀을 생성하는 예시적인 프로세스(500)를 나타내는 흐름도이다. 프로세스(500)는 도 1의 장치(100)와 같은 장치에 의해 수행되며, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합에 의해 실행될 수 있다. 프로세스(500)는 전형적으로 하나 이상의 펌웨어 컴포넌트(예컨대, 도 1의 펌웨어(102)나 도 2의 펌웨어(204))에 의해 수행된다. 프로세스(500)는 일련의 동작들로서 도시되어 있으며, 도시된 것과 다른 순서로 다양한 동작들을 수행할 수 있다. 프로세스(500)는 디지털 서명 권한자 의존형 플랫폼 기밀을 생성하는 예시적인 프로세스로서, 디지털 서명 권한자 의존형 플랫폼 기밀의 생성에 대한 추가 논의가 서로 다른 도면들을 참조하여 본 명세서에 포함되어 있다.
프로세스(500)에서, 프로세스(500)를 구현하는 장치의 펌웨어 환경의 환경설정을 나타내는 표지가 생성된다(동작 502). 이 표지는 전술한 것과 같은 다양한 정보를 포함할 수 있다.
장치의 기밀이 획득된다(동작 504). 이 기밀은 전술한 다양한 방식으로 장치 내에 포함될 수 있다.
펌웨어 환경의 환경설정 표지와 장치의 기밀에 기초하여, 플랫폼 기밀이 생성된다 (동작 506). 플랫폼 기밀은 펌웨어 환경의 환경설정 표지와 장치의 기밀을 통합하는 등 전술한 여러 가지 방식으로 생성될 수 있다.
도 6은 하나 이상의 실시예에 따라 디지털 서명 권한자 의존형 플랫폼 기밀을 이용하는 예시적인 프로세스(600)를 나타내는 흐름도이다. 프로세스(600)는 프로세스(600)는 도 1의 장치(100)와 같은 장치에 의해 수행되며, 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합에 의해 실행될 수 있다. 프로세스(600)는 전형적으로 운영 체제 로더(예컨대, 도 1의 운영 체제 로더(104))에 의해 수행된다. 프로세스(600)는 일련의 동작들로서 도시되어 있으며, 도시된 것과 다른 순서로 다양한 동작들을 수행할 수 있다. 프로세스(600)는 디지털 서명 권한자 의존형 플랫폼 기밀을 이용하는 예시적인 프로세스로서, 디지털 서명 권한자 의존형 플랫폼 기밀의 이용에 대한 추가 논의가 서로 다른 도면들을 참조하여 본 명세서에 포함되어 있다.
프로세스(600)에서, 플랫폼 기밀이 획득된다 (동작 602). 플랫폼 기밀은 전술한 바와 같이 장치의 기밀 및 장치의 펌웨어 환경의 환경설정 표지 모두에 적어도 부분적으로 기초하여 생성된다.
플랫폼 기밀에 기초하여, 하나 이상의 키가 생성된다 (동작 604). 전술한 바와 같이 서로 다른 키들이 생성될 수 있다. 또한, 전술한 바와 같이, 하나 이상의 키들을 생성한 후, 플랫폼 기밀이 삭제될 수도 있다.
전술한 디지털 서명 권한자 의존형 플랫폼 기밀 기법은 다양한 이용 시나리오를 지원한다. 생성된 플랫폼 기밀은 권한자 리스트에 기초하여 생성될 수 있어서, 플랫폼 기밀을 변경하지 않고도 펌웨어 컴포넌트에 대한 변화를 허용한다. 이는, 예컨대, 발행자들이 오류를 바로잡거나, 새로운 특성을 추가하는 등의 동작을 수행하기 위해 자신의 펌웨어 컴포넌트들을 변경할 수 있도록 허용하고, 이들 변경으로 인해 플랫폼 기밀이 변경되지 않도록 한다. 또한, 사용된 권한자 리스트에 따라, 발행자는 새로운 펌웨어 컴포넌트에 추가될 수도 있고 펌웨어 컴포넌트들의 순서를 변경할 수도 있는데, 이러한 추가나 순서변경이 플랫폼 기밀에 변화를 초래하지 않도록 할 수 있다. 그리고, 생성된 플랫폼 기밀은 운영 체제 로더에 디지털 서명을 한 권한자에 적어도 부분적으로 기초하여 생성되어, 서로 다른 운영 체제들이 동일한 펌웨어 컴포넌트들을 사용하면서 장치 상에서 실행될 수 있도록 하되, 서로 다른 플랫폼 기밀을 갖고 각 운영 체제가 다른 운영 체제의 기밀을 판독하지 못하도록 방지한다.
도 7은 하나 이상의 실시예에 따라 디지털 서명 권한자 의존형 플랫폼 기밀을 구현하도록 구성된 예시적인 컴퓨팅 장치(700)를 도시하고 있다. 컴퓨팅 장치(700)는 예컨대 도 1의 장치(100)일 수 있다.
컴퓨팅 장치(700)는 하나 이상의 프로세스 또는 프로세싱 유닛(703), 하나 이상의 메모리 및/또는 저장 컴포넌트(706)를 포함할 수 있는 하나 이상의 컴퓨터 판독가능 매체(704), 다양한 컴포넌트들과 장치들이 서로 통신하도록 하는 버스(710)를 포함한다. 컴퓨터 판독가능 매체(704) 및/또는 하나 이상의 I/O 장치(708) 컴퓨팅 장치(700)의 일부로서 포함될 수도 있고 컴퓨팅 장치(700)에 결합될 수도 있다. 프로세서(702), 컴퓨터 판독가능 매체(704), 하나 이상의 장치(708) 및/또는 버스(710)는 선택적으로 단일 컴포넌트 또는 칩(예컨대, system on a chip)으로 구현될 수도 있다. 버스(710)는 하나 이상의 여러 유형의 버스 구조물을 나타내며, 메모리 버스나 메모리 컨트롤러, 주변형 버스, 고속 그래픽 포트, 프로세서나 로컬 버스 등 다양한 버스 아키텍쳐를 이용하는 버스를 포함할 수 있다. 버스(710)는 유선 및/또는 무선 버스를 포함할 수 있다.
메모리/저장 컴포넌트(706)는 하나 이상의 컴퓨터 저장 매체를 나타낸다. 컴포넌트(706)는 (RAM과 같은) 휘발성 매체 및/또는 (ROM, 플래시 메모리, 광학 디스크, 자기 디스크 등과 같은) 비휘발성 매체를 포함한다. 컴포넌트(706)는 착탈가능 매체(예를 들어, 플래시 메모리 드라이브, 착탈가능 하드 드라이브, 광학 디스크 등)는 물론 고정형 매체(예컨대, RAM, ROM, 고정형 하드 드라이브 등)을 포함할 수 있다.
본 명세서에서 논의된 기법은 하나 이상의 프로세싱 유닛(702)에 의해 명령어들을 실행하게 하는 소프트웨어로 구현될 수 있다. 프로세싱 유닛(702), 프로세싱 유닛(702)의 다양한 캐시 메모리, (도시하지 않은) 장치(700)의 다른 캐시 메모리, 다른 컴퓨터 판독가능 매체 등과 같이 컴퓨팅 장치(700)의 서로 다른 컴포넌트에 서로 다른 명령어들이 저장될 수 있음을 이해해야 한다. 그리고, 컴퓨팅 장치(700) 내에서 명령어들이 저장되는 위치는 시간의 흐름에 따라 변경될 수 있음도 이해해야 한다.
하나 이상의 입력/출력 장치들(708)은 사용자로 하여금 컴퓨팅 장치(700)에 커맨드나 정보를 입력하도록 하고, 사용자 및/또는 다른 컴포넌트나 장치로 정보가 표시되도록 한다. 입력 장치의 예로는 키보드, 커서 제어 장치(예컨대, 마우스), 마이크로폰, 스캐너 등이 있다. 출력 장치의 예로는 디스플레이 장치(예컨대, 모니터나 프로젝터), 스피커, 프린터, 네트워크 카드 등이 있다.
본 명세서에서는 일반적인 소프트웨어나 프로그램 모듈의 맥락에서 다양한 기법들을 기술할 수 있다. 일반적으로, 소프트웨어는 루틴, 프로그램, 객체, 컴포넌트, 데이터 구조체 등, 특정한 태스크를 수행하거나 구체적인 추상적 데이터 유형을 구현하는 것을 지칭한다. 이들 모듈과 기법의 구현체 (implementation)는 소정 형태의 컴퓨터 판독가능 매체에 저장되거나 이를 통해 전송될 수 있다. 컴퓨터 판독가능 매체는 컴퓨팅 장치가 접속할 수 있는 임의의 입수가능한 매체(들)일 수 있다. 예를 들어, 컴퓨터 판독가능 매체는 "컴퓨터 저장 매체"와 "통신 매체"를 포함할 수 있다.
"컴퓨터 저장 매체"는 컴퓨터 판독가능 명령어, 데이터 구조체, 프로그램 모듈 등과 같은 정보를 저장하는 임의의 방법이나 기법에 의해 구현되는 휘발성 및 비휘발성, 착탈가능형 및 비-착탈가능형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래쉬 메모리나 기타 다른 메모리 기법, CD-ROM, DVD나 기타 다른 광학적 저장부, 자기 카세트, 자기 테이프, 자기 디스크 저장부나 기타 다른 자기적 저장 장치, 또는 원하는 정보를 저장하는 데 사용될 수 있고 컴퓨터가 접속할 수 있는 임의의 다른 매체를 포함하는데, 본 발명은 이에 한정되는 것은 아니다. 컴퓨터 저장 매체는 단순한 신호 전송, 반송파, 신호 그 자체와는 달리 정보의 저장을 위한 매체를 가리킨다. 그러므로, 컴퓨터 저장 매체는 비-신호 함유 매체(non-signal bearing media)를 가리키며 통신 매체는 아니다.
"통신 매체"란 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조체, 프로그램 모듈, 반송파나 기타 전송 매커니즘과 같은 변조된 데이터 신호 내의 데이터를 구현한다. 통신 매체는 정보 전달 매체도 포함한다. "변조된 데이터 신호"란 신호 내의 정보가 인코딩되도록 자신의 특성 세트(characteristic set) 하나 이상이 설정되거나 변경된 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크나 직접-유선 접속과 같은 유선 매체, 어쿠스틱, RF, 적외선 및 기타 무선 매체와 같은 무선 매체를 포함하지만, 이에 한정되지는 않는다. 전술한 것들의 임의의 조합 역시 컴퓨터 판독가능 매체의 범주 안에 포함된다.
일반적으로, 본 명세서에 기술된 작용이나 기법은 소프트웨어, 펌웨어, 하드웨어(예를 들어 고정식 로직 회로), 수동 프로세싱(manual processing), 이들의 조합을 이용하여 구현될 수 있다. 본 명세서에서 사용된 "모듈" 및 "컴포넌트"라는 용어는 일반적으로 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 나타낸다. 소프트웨어 구현의 경우, 모듈이나 컴포넌트는 프로세서(CPU나 CPU들) 상에서 수행될 때 특정 작업을 수행하는 프로그램 코드를 나타낸다. 프로그램 코드는 하나 이상의 컴퓨터 판독가능 메모리 장치에 저장될 수 있는데, 이에 대한 추가 설명은 도 7을 참조하면 된다. 하드웨어 구현의 경우, 모듈이나 컴포넌트는 기능적 블럭 또는 특정 작업을 수행하는 다른 하드웨어를 나타낸다. 이를테면, 하드웨어 구현에서 모듈이나 컴포넌트는 ASIC(application-specific integrated circuit), FPGA(filed-programmable gate array), CPLD(complex programmable logic device) 등일 수 있다. 본 명세서에서 설명된 디지털 서명 권한자 의존형 플랫폼 기밀 기법의 특징들은 플랫폼-독립형으로서, 이 기법들은 다양한 프로세서들을 갖는 다양한 상용화된 컴퓨팅 플랫폼 상에서 구현될 수 있다.
본 발명이 구조적 특징 및/또는 방법적 동작에 특유한 표현을 사용하여 설명되었지만, 첨부하는 특허청구범위에 정의된 청구 대상이 전술한 특정 특징이나 동작들로 국한될 필요는 없다. 오히려, 전술한 특정 특징과 동작은 청구항들을 구현하는 예시적인 형태로서 개시된 것이다.

Claims (20)

  1. 장치 내에서 상기 장치의 펌웨어 환경의 환경설정(configuration)을 나타내는 표지(representation)를 생성하는 단계와,
    상기 장치의 기밀(secret)을 획득하는 단계와,
    동일한 플랫폼 기밀(platform secret)이 상이한 버전의 펌웨어 컴포넌트를 갖는 펌웨어 환경에 대해 생성되도록 상기 펌웨어 환경의 환경설정을 나타내는 표지와 상기 장치의 기밀에 기초하여 플랫폼 기밀을 생성하는 단계를 포함하는
    플랫폼 기밀 생성을 위한 방법.
  2. 제 1 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 상기 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 한 하나 이상의 권한자들(authorities)을 식별하는 권한자 리스트를 포함하되, 상기 하나 이상의 권한자들이 상기 펌웨어 컴포넌트들 중 어느 펌웨어 컴포넌트에 대해 디지털 서명을 했는지, 그리고 상기 하나 이상의 권한자들이 상기 펌웨어 컴포넌트들 중 몇 개의 펌웨어 컴포넌트에 대해 디지털 서명을 했는지에 대해서는 고려하지 않는
    플랫폼 기밀 생성을 위한 방법.
  3. 제 1 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 상기 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 할 수 있는 용인된 권한자들의 리스트를 수정하도록 허용되는 하나 이상의 권한자들의 신원(identification)을 포함하는
    플랫폼 기밀 생성을 위한 방법.
  4. 제 1 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 상기 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 한 하나 이상의 권한자들의 리스트를 포함하고, 상기 장치 상에 로딩된 운영 체제 로더(operating system loader)에 대해 디지털 서명을 한 권한자의 식별자(identifier)를 상기 권한자들의 리스트의 식별된 장소에서 포함하는
    플랫폼 기밀 생성을 위한 방법.
  5. 제 1 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 하나 이상의 권한자들을 식별하는 권한자들의 리스트를 포함하되, 상기 하나 이상의 권한자들은 상기 장치의 정책에 따라 상기 하나 이상의 권한자들에 의해 디지털 서명을 받은 특정 펌웨어 컴포넌트들을 상기 장치 상에 로딩하도록 허용되는 권한자들로서, 상기 특정 펌웨어 컴포넌트가 상기 장치 상에 실제로 로딩되었는지에 대해서는 고려하지 않는
    플랫폼 기밀 생성을 위한 방법.
  6. 제 1 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 펌웨어 컴포넌트를 인증(verify)하도록 허용되지 않은 권한자들의 식별자들을 포함하는
    플랫폼 기밀 생성을 위한 방법.
  7. 제 1 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 로딩되도록 허용되지 않은 특정 펌웨어 컴포넌트들의 식별자들을 포함하는
    플랫폼 기밀 생성을 위한 방법.
  8. 제 1 항에 있어서,
    상기 플랫폼 기밀을 생성하는 단계는 상기 펌웨어 환경의 환경설정을 나타내는 표지와 상기 장치의 기밀을 키 유도 함수에 대한 입력으로 사용하는 단계와, 상기 키 유도 함수의 출력을 상기 플랫폼 기밀로 사용하는 단계를 포함하는
    플랫폼 기밀 생성을 위한 방법.
  9. 제 1 항에 있어서,
    상기 플랫폼 기밀을 생성하는 단계는 상기 장치가 위치한 환경을 다른 환경과 구별하는 엔터프라이즈 값(enterprise value)에 적어도 부분적으로 기초하여 상기 플랫폼 기밀을 생성하는 단계를 더 포함하는
    플랫폼 기밀 생성을 위한 방법.
  10. 제 1 항에 있어서,
    상기 장치의 기밀은 상기 장치의 프로세서의 복수의 퓨즈 내에서 인코딩되는
    플랫폼 기밀 생성을 위한 방법.
  11. 플랫폼 기밀 생성을 위한 컴퓨팅 장치로서,
    하나 이상의 프로세서와,
    복수의 명령어들을 저장하는 하나 이상의 컴퓨터 저장 매체를 포함하되,
    상기 복수의 명령어들은 상기 하나 이상의 프로세서에 의해 실행되어 상기 하나 이상의 프로세서로 하여금
    상기 컴퓨팅 장치의 기밀과 상기 컴퓨팅 장치의 펌웨어 환경의 환경설정을 나타내는 표지에 적어도 부분적으로 기초하여 생성된 플랫폼 기밀을 상기 컴퓨팅 장치 내에서 획득 - 상기 플랫폼 기밀은 운영 체제 커널을 실행하기 전에 하나 이상의 키들을 생성하도록 상기 컴퓨팅 장치의 운영 체제 로더에 의해 사용가능함 - 하도록 하고,
    상기 플랫폼 기밀에 기초하여 하나 이상의 키들을 생성하도록 하는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  12. 제 11 항에 있어서,
    상기 복수의 명령어들은 상기 하나 이상의 프로세서로 하여금, 상기 컴퓨팅 장치를 추후에 부팅할 때, 상기 하나 이상의 키들을 유지하는 대신, 상기 플랫폼 기밀에 기초하여 상기 하나 이상의 키들을 재생성하도록 하는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  13. 제 11 항에 있어서,
    상기 복수의 명령어들은 상기 하나 이상의 프로세서로 하여금, 다른 키를 언록(unlock)하기 위한 인증값으로서 상기 플랫폼 기밀을 사용하도록 하는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  14. 제 11 항에 있어서,
    상기 하나 이상의 키들은 공개 키/개인 키 쌍(public/private key pairs)을 포함하고,
    상기 복수의 명령어들은 또한 상기 하나 이상의 프로세서로 하여금,
    상기 컴퓨팅 장치의 저장부 상의 데이터를 암호화하는 데 사용되는 볼륨 키를 생성하도록 하고,
    상기 공개 키/개인 키 쌍의 개인 키를 사용하여 상기 볼륨 키를 암호화하도록 하고,
    상기 암호화된 볼륨 키를 저장하도록 하고,
    상기 공개 키/개인 키 쌍의 개인 키를 삭제하도록 하고,
    상기 플랫폼 기밀을 삭제하도록 하는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  15. 제 11 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 상기 컴퓨팅 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 한 하나 이상의 권한자들을 식별하는 권한자 리스트를 포함하되, 상기 하나 이상의 권한자들이 상기 펌웨어 컴포넌트들 중 어느 펌웨어 컴포넌트에 대해 디지털 서명을 했는지, 그리고 상기 하나 이상의 권한자들이 상기 펌웨어 컴포넌트들 중 몇 개의 펌웨어 컴포넌트에 대해 디지털 서명을 했는지에 대해서는 고려하지 않는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  16. 제 11 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 상기 컴퓨팅 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 한 하나 이상의 권한자들을 식별하는 권한자들의 리스트를 포함하되, 상기 리스트의 순서는 상기 펌웨어 컴포넌트들이 상기 컴퓨팅 장치 상에 로딩된 순서인
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  17. 제 11 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 펌웨어 컴포넌트를 인증하도록 허용되지 않은 권한자들의 식별자들을 포함하는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  18. 제 11 항에 있어서,
    상기 펌웨어 환경의 환경설정을 나타내는 표지는 로딩되도록 허용되지 않은 특정 펌웨어 컴포넌트들의 식별자들을 포함하는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  19. 제 11 항에 있어서,
    상기 플랫폼 기밀은 또한 상기 컴퓨팅 장치가 위치한 환경을 다른 환경과 구별하는 엔터프라이즈 값에 적어도 부분적으로 기초하여 생성되는
    플랫폼 기밀 생성을 위한 컴퓨팅 장치.
  20. 장치 내에서 상기 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 한 권한자들의 리스트를 생성하는 단계 - 상기 권한자들의 리스트는 상기 장치 상에 로딩된 펌웨어 컴포넌트들에 대해 디지털 서명을 한 하나 이상의 권한자들을 식별하되, 상기 하나 이상의 권한자들이 상기 펌웨어 컴포넌트들 중 어느 펌웨어 컴포넌트에 대해 디지털 서명을 했는지, 그리고 상기 하나 이상의 권한자들이 상기 펌웨어 컴포넌트들 중 몇 개의 펌웨어 컴포넌트에 대해 디지털 서명을 했는지에 대해서는 고려하지 않음 - 와,
    상기 장치의 기밀을 획득하는 단계와,
    상기 권한자들의 리스트와 상기 장치의 기밀 모두의 조합에 키 유도 함수를 적용함으로써, 상이한 운영 체제의 펌웨어 컴포넌트들 중 적어도 일부가 동일한 경우에도 상기 상이한 운영 체제에 대해 상이한 플랫폼 기밀이 생성되도록, 특정 운영 체제에 특정한 플랫폼 기밀을 생성하는 단계와,
    상기 플랫폼 기밀에 기초하여, 상기 장치의 저장부의 데이터를 암호화하는 데 사용되는 하나 이상의 볼륨 키를 생성하는 단계를 포함하는
    플랫폼 기밀 생성을 위한 방법.
KR1020147004666A 2011-08-25 2012-08-08 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법 KR102030858B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/218,029 US8924737B2 (en) 2011-08-25 2011-08-25 Digital signing authority dependent platform secret
US13/218,029 2011-08-25
PCT/US2012/049880 WO2013028353A1 (en) 2011-08-25 2012-08-08 Digital signing authority dependent platform secret

Publications (2)

Publication Number Publication Date
KR20140051350A KR20140051350A (ko) 2014-04-30
KR102030858B1 true KR102030858B1 (ko) 2019-10-10

Family

ID=47745392

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147004666A KR102030858B1 (ko) 2011-08-25 2012-08-08 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법

Country Status (6)

Country Link
US (1) US8924737B2 (ko)
EP (1) EP2748752B1 (ko)
JP (1) JP6073320B2 (ko)
KR (1) KR102030858B1 (ko)
CN (1) CN103765429B (ko)
WO (1) WO2013028353A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9384351B2 (en) * 2013-03-15 2016-07-05 Intel Corporation Method and apparatus for implementing a secure boot using multiple firmware sources
WO2014150478A1 (en) * 2013-03-15 2014-09-25 Insyde Software Corp. System and method for managing and diagnosing a computing device equipped with unified extensible firmware interface (uefi)-compliant firmware
KR20140136166A (ko) * 2013-05-20 2014-11-28 삼성전자주식회사 관리자 권한 획득 방지 방법 및 장치
US10360370B2 (en) * 2016-07-22 2019-07-23 Hewlett Packard Enterprise Development Lp Authenticated access to manageability hardware components
CN108933788B (zh) * 2018-07-03 2020-11-06 西南交通大学 一种基于fpga的rssp-ii协议mac码快速验证装置
US11361660B2 (en) * 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11323275B2 (en) 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11025422B2 (en) * 2019-07-23 2021-06-01 Nasuni Corporation Cloud-native global file system with constant-time rekeying
US11340797B2 (en) * 2019-10-04 2022-05-24 Zettaset, Inc. Dedicated encrypted container storage
US11893118B2 (en) * 2021-05-25 2024-02-06 Microsoft Technology Licensing, Llc Transfer of ownership of a computing device via a security processor

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216369B2 (en) 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US20070127719A1 (en) * 2003-10-14 2007-06-07 Goran Selander Efficient management of cryptographic key generations
US7458002B2 (en) 2003-08-19 2008-11-25 Infineon Technologies Ag Processor having electronic fuses for storing secret data

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3581001B2 (ja) * 1998-01-20 2004-10-27 富士通株式会社 記憶装置、記憶媒体及び識別情報記録方法
EP1030237A1 (en) * 1999-02-15 2000-08-23 Hewlett-Packard Company Trusted hardware device in a computer
DE19935286A1 (de) * 1999-07-27 2001-02-01 Deutsche Telekom Ag Verfahren zur sicheren verteilten Generierung eines Chiffrierschlüssels
EP1429224A1 (en) 2002-12-10 2004-06-16 Texas Instruments Incorporated Firmware run-time authentication
DE10238095B4 (de) * 2002-08-21 2007-08-30 Audi Ag Verfahren zum Schutz vor Manipulationen an einem Steuergerät für mindestens eine Kfz-Komponente und Steuergerät
US20050010811A1 (en) 2003-06-16 2005-01-13 Zimmer Vincent J. Method and system to support network port authentication from out-of-band firmware
JP2005038411A (ja) * 2003-06-30 2005-02-10 Sony Corp 機器認証情報組込システム、端末機器、機器認証情報処理方法、機器認証情報処理プログラム、提供サーバ、機器認証情報提供方法、機器認証情報提供プログラム、及び記憶媒体
US7318150B2 (en) 2004-02-25 2008-01-08 Intel Corporation System and method to support platform firmware as a trusted process
US7490245B2 (en) * 2004-07-24 2009-02-10 Lenovo (Singapore) Pte. Ltd. System and method for data processing system planar authentication
US7774596B2 (en) 2005-02-02 2010-08-10 Insyde Software Corporation System and method for updating firmware in a secure manner
US8738822B2 (en) * 2005-05-03 2014-05-27 Flexera Software Llc System and method for controlling operation of a component on a computer system
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities
US8429724B2 (en) * 2006-04-25 2013-04-23 Seagate Technology Llc Versatile access control system
JP2008055849A (ja) * 2006-09-01 2008-03-13 Ricoh Co Ltd 画像形成装置及びその管理方法
JP5096022B2 (ja) * 2007-03-15 2012-12-12 株式会社リコー 情報処理装置、ソフトウェア検証方法及びソフトウェア検証プログラム
US7836309B2 (en) 2007-07-20 2010-11-16 Microsoft Corporation Generic extensible pre-operating system cryptographic infrastructure
JP4991592B2 (ja) * 2008-02-18 2012-08-01 株式会社リコー ソフトウェア改ざん検知方法、ソフトウェア改ざん検知プログラム及び機器
JP2009244827A (ja) * 2008-03-13 2009-10-22 Ricoh Co Ltd 画像記録装置、画像表示装置及び画像暗号化システム
US8201239B2 (en) 2008-06-23 2012-06-12 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)
GB2466071B (en) 2008-12-15 2013-11-13 Hewlett Packard Development Co Associating a signing key with a software component of a computing platform
US8086839B2 (en) 2008-12-30 2011-12-27 Intel Corporation Authentication for resume boot path
US8566613B2 (en) * 2010-06-11 2013-10-22 Intel Corporation Multi-owner deployment of firmware images

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7216369B2 (en) 2002-06-28 2007-05-08 Intel Corporation Trusted platform apparatus, system, and method
US7458002B2 (en) 2003-08-19 2008-11-25 Infineon Technologies Ag Processor having electronic fuses for storing secret data
US20070127719A1 (en) * 2003-10-14 2007-06-07 Goran Selander Efficient management of cryptographic key generations

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Patrick Röder 외3인, "Hades-Hardware Assisted Document Security", Second Workshop on Advances in Trusted Computing (WATC 2006 Fall), pp.1-13.

Also Published As

Publication number Publication date
CN103765429A (zh) 2014-04-30
EP2748752A1 (en) 2014-07-02
US20130054946A1 (en) 2013-02-28
WO2013028353A1 (en) 2013-02-28
US8924737B2 (en) 2014-12-30
JP2014524628A (ja) 2014-09-22
CN103765429B (zh) 2016-08-31
KR20140051350A (ko) 2014-04-30
EP2748752B1 (en) 2017-09-27
JP6073320B2 (ja) 2017-02-01
EP2748752A4 (en) 2015-04-22

Similar Documents

Publication Publication Date Title
KR102030858B1 (ko) 디지털 서명 권한자 의존형 플랫폼 기밀 생성 기법
US9424431B2 (en) Protecting operating system configuration values using a policy identifying operating system configuration settings
EP3120291B1 (en) Rapid data protection for storage devices
US10803175B2 (en) Device attestation through security hardened management agent
EP3047375B1 (en) Virtual machine manager facilitated selective code integrity enforcement
WO2020192406A1 (zh) 数据存储、验证方法及装置
JP4982825B2 (ja) コンピュータおよび共有パスワードの管理方法
CN112513857A (zh) 可信执行环境中的个性化密码安全访问控制
EP2583410B1 (en) Single-use authentication methods for accessing encrypted data
US10423791B2 (en) Enabling offline restart of shielded virtual machines using key caching
US9762396B2 (en) Device theft protection associating a device identifier and a user identifier
US8607071B2 (en) Preventing replay attacks in encrypted file systems
CN114244565B (zh) 密钥分发方法、装置、设备及存储介质
CN116089967B (zh) 数据防回滚方法和电子设备
CN115470525B (zh) 一种文件保护方法、***、计算设备及存储介质
CN114117460A (zh) 数据保护方法、装置、电子设备及存储介质

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant