KR101408524B1 - 신뢰 플랫폼 모듈(tpm) 공유 방법 및 신뢰 플랫폼 모듈(tpm) 공유 시스템 - Google Patents

신뢰 플랫폼 모듈(tpm) 공유 방법 및 신뢰 플랫폼 모듈(tpm) 공유 시스템 Download PDF

Info

Publication number
KR101408524B1
KR101408524B1 KR1020097011034A KR20097011034A KR101408524B1 KR 101408524 B1 KR101408524 B1 KR 101408524B1 KR 1020097011034 A KR1020097011034 A KR 1020097011034A KR 20097011034 A KR20097011034 A KR 20097011034A KR 101408524 B1 KR101408524 B1 KR 101408524B1
Authority
KR
South Korea
Prior art keywords
tpm
level process
platform module
trusted platform
sle
Prior art date
Application number
KR1020097011034A
Other languages
English (en)
Other versions
KR20090091148A (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 KR20090091148A publication Critical patent/KR20090091148A/ko
Application granted granted Critical
Publication of KR101408524B1 publication Critical patent/KR101408524B1/ko

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Storage Device Security (AREA)
  • Hardware Redundancy (AREA)
  • Stored Programmes (AREA)

Abstract

신뢰 플랫폼 모듈(TPM)을 공유하는 시스템(1)은 운영 체제(OS)(121) 레벨 프로세스를 실행하도록 동작가능한 TPM(130)을 포함하되, TPM(130)은 OS(121) 레벨 프로세스의 실행을 중단하고 비-OS(121) 레벨 프로세스를 실행하도록 동작가능하다.

Description

신뢰 플랫폼 모듈(TPM) 공유 방법 및 신뢰 플랫폼 모듈(TPM) 공유 시스템{SYSTEM AND METHOD FOR SHARING ATRUSTED PLATFORM MODULE}
신뢰 컴퓨팅 그룹(Trusted Computing Group: TCG)은 신뢰 플랫폼 모듈(Trusted Platform Module: TPM)과 같은 하드웨어 활용 신뢰 컴퓨팅 및 보안 기술에 대한 산업 표준 규격을 전개하고 진행한다. TPM은 컴퓨팅 플랫폼 상의 다양한 장치 및/또는 하드웨어의 무결성을 저장하고 보고하는 데 사용되고, 암호, 키 및 인증서와 같은 플랫폼 정보와 비밀을 안전하게 보호하고 저장하는 데 사용된다. TPM은 본래 단일 명령 처리 장치이므로, TPM은 컴퓨팅 시스템에 의해 유발된 하나의 프로세스로 데이터를 연산하지만, TPM이 제 1 프로세스의 처리를 완료할 때까지 어떠한 다른 프로세스도 TPM에 의해 작동될 수 없다. 또한, 현재 TPM에서 실행하고 있는 프로세스를 개시하였던 개체 이외의 어떠한 개체도 그 프로세스의 실행 동안에 TPM과의 접속을 설정할 수 없다. 또한, 단일 개체는 보통 TPM과 통신하기를 원하는 운영 체제(OS) 레벨에서 유발된 모든 프로세스/개체에 대한 스케줄러로서 동작한다. 이 스케줄러 개체는 전형적으로 동작 중에 TPM의 제어를 그만두지 않는다.
오로지 TPM을 사용하는 2 개의 개체는 TCG 소프트웨어 스택(TSS) 및 TPM 베이직 서비스(TBS)이다. TSS는 TCG 규격 및 가이드라인에 따라 보안 서비스를 제공하고, 컴퓨터의 OS의 제어 내에서 실행하며, TBS는 윈도우 운영 체제의 최근의 TPM 인식 버전에 대한 TPM을 가상화한다. 그러나, 일부 경우에, OS의 제어를 벗어나 암호화 또는 해독화와 같은 보안 동작을 수행하는 것이 바람직할 수 있는데, 이는 OS의 외부에 있는 컴퓨터 시스템의 펌웨어가 부주의하든 부적당하든 사용자 동작에 의한 간섭에 더 저항적일 수 있으며, 변경될 가능성이 적기 때문이다. 불행히도, 키와 소프트웨어를 저장하는 데 이용가능한 메모리는 전형적으로 펌웨어 및 펌웨어 내에 존재할 수 있는 기본 입/출력 시스템(BIOS)으로 제한된다. 그러나, 만일 BIOS, 펌웨어, 외부 장치 또는 컴퓨터 마더보드 상의 다른 회로와 같은 다른 개체가 보안 동작에 대한 TPM 기능에 영향을 주려고 한다면, TPM의 단일 프로세스 동작가능 제한은 TSS/TBS와의 충돌 위험을 도입한다. 충돌은 지연 및 상태 손상의 형태를 취할 수 있다. 지연은 TSS/TBS가 TPM을 사용하는 동안 발생하지만, 제어를 그만두지 않을 것이다. 만일 다른 개체가 TSS/TBD에 의한 사용 기간 중에 TPM을 사용하였고 변경되지 않은 채로 있도록 TSS/TBS가 의존하였던 레지스터의 상태를 변경하였다면 상태 손상이 발생할 수 있다.
본 발명의 바람직한 실시예 및 본 발명의 이점은 다수의 도면의 동일하고 대응하는 부분에 동일한 번호가 사용되는 도 1 내지 도 3을 참조함으로써 최상으로 이해된다.
도 1은 신뢰 플랫폼 모듈(TPM)을 공유하는 시스템의 실시예를 도시하는 블록도이다.
도 2는 도 1의 TPM을 공유하는 시스템의 실시예를 더 도시하는 블록도이다.
도 3은 TPM을 공유하는 방법의 실시예를 도시하는 순서도이다.
도 1은 신뢰 플랫폼 모듈(TPM)을 공유하는 시스템(1)의 실시예를 도시하는 블록도이다. 도 1에 도시된 실시예에서, 시스템(1)은 중앙 처리 장치(CPU)(110), 메모리(120), TPM(130), 펌웨어(140) 및 회로(150)를 보유한 마더보드(100)를 구비하는 컴퓨터 시스템(10)을 포함한다. 도 1에 도시된 실시예에서, 펌웨어(140)는 기본 입/출력 시스템(BIOS)(141)을 포함한다. 회로(150)는 다른 보안 장치, 내장형 장치, 플랫폼 확장, 인터페이스 또는 버스 제어기를 포함하는 마더보드(100) 상의 임의의 회로 또는 장치일 수 있지만, 이들로 제한되지 않는다. BIOS(141)는 운영 체제(OS)(121)가 로딩되고 실행되기 전에 컴퓨터 시스템(10)에서 실행하는 펌웨어이다. 그러나, 종래의 BIOS를 통합시키지 않고 대신 다른 펌웨어 시스템을 사용하는 컴퓨터 시스템(10)의 다른 방법 및/또는 실시예가 이용될 수 있음을 알아야 한다. 컴퓨터 시스템(10)은 PC, PDA, 마이크로제어기, 내장형 시스템, 통신 장치 및 오락 장치와 같은 임의의 유형의 컴퓨팅 시스템을 포함할 수 있지만, 이들로 제한되지 않는다. 본 명세서에 사용된 바와 같이, 용어 "TPM"은 하드웨어 활용 신뢰 컴퓨팅에 대한 기초를 제공하는 임의의 장치를 포함하고, 신뢰 컴퓨팅 그룹(TCG)에 의해 생성된 규격을 만족시키는 장치로 제한되지 않는다.
도 1에서, TPM(130)은 TPM 비지 플래그(busy flag)(131)(TPM(130)이 사용되는 중이거나 시스템 집약성 개체(System Locality Entity: SLE)에 의해 발행된 프로세스 및/또는 요청을 현재 실행하는 중임을 나타냄) 및 요청 플래그(132)(TPM(130)을 사용하여 SLE로부터 발행된 시스템 집약성 프로세스 및/또는 요청을 실행하라는 요청을 나타냄)를 포함한다. SLE는 제한된 TPM 내부 암호 기능에 대한 액세스가 허용되고 TPM 내부 암호 능력의 일반적인 사용을 위해 사용자 또는 애플리케이션에게 노출하지 않는 TPM 제한에 부착하는 개체이다. SLE는 이들 제한에 부착하고 임의의 구성요소일 수 있는 플랫폼 펌웨어(예컨대, 펌웨어(140)), BIOS(예컨대, BIOS(141)), 마더보드(100) 상의 다른 칩, 키보드, 지문 인식기 등과 같은 주변 장치를 포함할 수 있다. 따라서 SLE는 TPM의 내부 암호 기능을 범용 애플리케이션 및 사용자를 배제하는 논리 경계까지 확장한다. SLE는 불량 OS가 속일 수 없는 하드웨어 신호를 사용하거나 그 집약성에 대해 지정된 메모리 매핑 입/출력(MMIO) 범위 상에서 TPM과 통신함으로써 자신의 "집약성"을 증명한다. 또한, SLE가 하이퍼바이저/가상 기계 모니터(Hypervisor/Virtual Machine Monitor)와 같이 물리적 또는 가상일 수 있음을 알아야 한다.
도 1에 도시된 실시예에서, 컴퓨터 시스템(10)은 플러그인 카드, 매체 인식기, 보안 장치 또는 컴퓨터 시스템(10)과 함께 사용될 수 있는 임의의 다른 유형의 장치일 수 있는 애드인(add-in) 장치(101)도 포함한다. 도 1에서, 스마트 카드(11), USB 장치(12) 및 보안 장치(13)는 컴퓨터 시스템(10)과 통신적으로 결합되는 것으로 도시된다. 보안 장치(13)는 지문 인식기 또는 망막 스캐너와 같은 생체인식 장치와 같은 임의의 유형 또는 보안 관련 장치를 포함할 수 있지만, 이것으로 제한되지 않는다. 도 1에 도시된 시스템(1)에서, 하나 이상의 SLE 개체(예컨대, 스마트 카드(11), USB 장치(12), 보안 장치(13), 애드인 장치(101), 펌웨어(140), BIOS(141), 회로(150) 등 중 하나 이상)는 TPM(130)으로부터 서비스를 사용 및/또는 요청할 수 있다. 동작시에, TPM(130)의 서비스를 사용 및/또는 요청하기 위해, 요청 플래그(132)가 설정되거나 OS(121)를 통해 통지가 전달되는데, 이는 CPU(110)에 의해 처리되고 메모리(120)에 적어도 일시적으로 저장된다.
몇몇 실시예에서, 시스템 버스를 통해 TPM(130)으로 범용 입/출력(GPIO) 메시지를 전달하고 MMIO를 사용함으로써 요청 플래그(132)가 설정되거나 제거될 수 있다. MMIO는 메모리와 입/출력(I/O) 장치 양자 모두에 액세스하는 데 동일한 버스를 사용하며, 그 결과 몇몇 메모리 주소가 메모리 공간에 액세스하기 위해서가 아니라 I/O를 위해 보존된다. TCG 규격은 상이한 집약성에 대한 메모리 범위를 규정한다. TPM(130)은 TPM(130)과 통신하는 주어진 집약성에 있다는 것을, 그 개체가 TPM(130)과 통신하는 데 사용하였던 메모리 범위에 기초하여 보장한다.
도 2는 도 1의 시스템(1)을 더 도시하는 블록도이다. 도 2에 도시된 실시예 에서, 컴퓨팅 시스템(10)은 사용자 프로세스 계층(21), 시스템 프로세스 계층(22), 커널 모드 계층(23) 및 펌웨어/하드웨어 계층(24)을 포함한다. OS(121)는 사용자 프로세스 계층(21)으로부터 시스템 프로세스 계층(22)을 통해 커널 모델 계층(23)으로 확장한다. 사용자 프로세스 계층(21)은 TPM(130)의 보안 기능의 사용을 원하는 2 개의 애플리케이션(211,212)을 포함한다. 예컨대, 애플리케이션(211,212)은 예컨대, 오디오 파일 또는 DVD를 재생하는 데 필요할 수 있는 데이터를 처리하기 위해 암호화 또는 해독화를 요청할 수 있다. TPM(130)의 리소스를 사용하기를 원하는 애플리케이션 또는 다른 개체의 유형 및 수량이 다양할 수 있음을 알아야 한다.
OS 레벨(예컨대, 계층(21,22,23) 내에서 OS(121) 제어에 의해 제어되고/되거나 OS(121) 제어 하에서 수행됨)에서, TPM(130)의 원하는 보안 기능을 획득 및/또는 액세스하기 위해, 애플리케이션(211,212) 중 하나는 TPM(130) 상의 프로세스의 실행을 개시한다. 애플리케이션(211,212)은 TCG 소프트웨어 스택(TSS)(221)을 통해 TPM(130)과 인터페이싱한다. TSS(221)는 TPM 장치 드라이버 라이브러리(TDLL) 또는 TPM 베이직 서비스(TBS)(222)에 액세스한다. TSS(221) 및 TDDL/TBS(222)는 사용자 프로세스 계층(21)의 아래에 있는 시스템 프로세스 계층(22)에 배치된다. TDDL/TBS(222)는 입/출력(I/O) 시스템(232)을 사용하여 TPM(130)을 구동하기 위해 특정 TPM 장치 드라이버(231)를 선택한다. I/O 시스템(232)은 GPIO 또는 MMIO를 포함할 수 있지만, 이것으로 제한되지 않는다.
사용자 프로세스 계층(21), 시스템 프로세스 계층(22), 커널 모드 계층(23) 및 펌웨어/하드웨어 계층(24)은 리소스에 대한 상이한 액세스 정도를 나타내는데, 계층이 높을수록 액세스 정도가 커진다. 예컨대, 컴퓨터 시스템(10)의 수명의 진행을 통해, 컴퓨터 시스템(10)의 사용자(들)는 사용자 프로세스 계층(21) 내에 애플리케이션(211,212)과 같은 다수의 애플리케이션을 설치, 패치 및 삭제할 수 있다. 그러나, 몇몇 실시예에서, TPM(130)은 변형 억제적이고 사용자에 의해 변경가능하지 않다. 일반적으로, OS(121)의 제어 하에서 실행하는 애플리케이션(211,212)과 같은 임의의 애플리케이션은 사용자, 해커 또는 바이러스의 공격을 받기 쉽다. 예컨대, 공격은 데이터를 복제하거나 손상시키기 위해 데이터에 대한 부적당한 액세스를 획득하려는 시도를 포함할 수 있다. 따라서, 액세스가 더 제한되는 OS(121)의 외부로 보안 서비스를 이동시킴으로써, 다수의 형태의 컴퓨터 공격을 막을 수 있다.
SLE(234)는 펌웨어/하드웨어 계층(24) 내에 배치될 수 있는 임의의 유형의 장치를 포함하며, 따라서 사용자 애플리케이션 계층(21)에 배치된 애플리케이션(211,212)에 의해 제공된 것보다 높은 보안 레벨을 제공할 가능성이 있을 수 있다. 몇몇 실시예에서, SLE(234)는 스마트 카드(11), USB 장치(12), 보안 장치(13), 애드인 장치(101), 펌웨어(140), BIOS(141) 또는 회로(150)(도 1) 중 하나 이상을 포함할 수 있다. 그러나, 다른 유형의 애플리케이션 및/또는 개체가 펌웨어/하드웨어 계층(24)에 존재할 수 있고 SLE(234)를 포함할 수 있음을 알아야 한다.
SLE(234)는 요청 플래그(132)를 설정하거나 다른 유형의 통지를 전송함으로 써 사용하는 애플리케이션(211,212)에 대해 TPM(130) 상에서 실행하는 OS(121) 레벨 프로세스를 인터럽트하도록 구성된다. 예컨대, 통지는 TPM(130), TSS(221), TBS(222), 애플리케이션(211 또는 212) 또는 OS(121) 내의 임의의 다른 개체로 전송될 수 있다. 요청 플래그(132)는 I/O 시스템(232)을 사용하여 또는 OS(121)를 통해 진행함으로써 설정될 수 있다. 통지는 또한 I/O 시스템(232)을 통해 TPM(130)으로 또는 가능하게는 WMI를 사용하여 적합한 수신자로 라우팅하기 위해 OS(121)로 전달될 수 있다. 따라서, TPM(130)에 의한 비-OS(121) 레벨 프로세스의 실행을 인에이블링하기 위해 OS(121) 레벨 프로세스(예컨대, SLE(234)와 관련되고/되거나 OS(121)의 계층(21,22,23)의 외부 및/또는 밖에 있는 개체에 의해 발행된 프로세스)가 인터럽트 및/또는 중단된다.
TPM(130)이 OS(121) 레벨 애플리케이션(예컨대, OS(121)의 제어 하에서 애플리케이션(211 및/또는 212))에 대한 OS(121) 레벨 프로세스 및/또는 요청을 실행하는 중일 때, TPM(130)이 사용되는 중임을 나타내는 TPM 비지 플래그(131)는 설정되지 않는다. TCG TPM 규격이 단일 프로세스, 단일 사용자 장치를 제공하므로, 만일 TPM(130)이 TCG 규격을 만족시키면, 현재 프로세스는 TPM(130)의 독점 사용을 갖는다. 시스템(1)의 실시예는 OS(121) 레벨 프로세스의 실행을 인터럽트하거나 중단하고 SLE(234) 프로세스를 실행하라는 요청 플래그(132)를 사용하여, SLE(231)(예컨대, 스마트 카드(11), USB 장치(12), 보안 장치(13), 애드인 장치(101), 펌웨어(140) 또는 회로(150) 중 하나)에 의한 요청을 시그널링함으로써 TPM(130)의 공유를 가능하게 하는 적어도 하나의 메커니즘을 제공한다.
도 3은 TPM 공유 방법의 실시예를 도시하는 순서도이다. 방법은 (예컨대, 애플리케이션(211 또는 212)을 대신하여) TSS(221)가 TPM(130) 상에서 OS(121) 레벨 프로세스를 실행하는 블록(301)에서 시작한다. 도 3은 TSS(221)를 사용하여 설명되지만, TDDL/TBS(222) 또는 TPM(130) 리소스에 대한 액세스를 가진 다른 OS(121) 레벨 애플리케이션과 같은 다른 개체가 TPM(130)을 사용하는 중일 수 있다. 블록(302)에서, SLE(234)(예컨대, 펌웨어(140), BIOS(141), 회로(150), 마더보드(100) 상의 다른 회로, 마더보드(100) 외부의 장치 및/또는 TPM(130)을 사용하도록 허가되는 임의의 다른 SLE)가 TPM(130)을 사용하기를 원함을 나타낸다. 전술한 바와 같이, 이 요청은 OS(121)의 외부에서 수행되는 암호화 또는 해독화 프로세스용일 수 있다.
블록(303)에서, SLE(234)는 TPM(130)을 사용하라는 허가를 획득하기 위해 TPM(130)에게 그 자체를 인증한다. 예컨대, 인증은 MMIO를 통해 사전정의된 지역성 메모리 범위를 사용하여 메시지를 전송하라고 요청할 수 있다. 블록(304)에서, SLE(140)는 예컨대, 요청 플래그(132)를 설정하고/하거나 WMI, GPIO, MMIO 또는 SLE(234)가 TPM(130) 또는 OS(121)에서 실행하는 프로세스를 시그널링하게 하는 임의의 다른 방법을 사용하여 통지를 전송함으로써 TPM(130)의 사용을 요청한다. 다른 방법도 사용될 수 있음을 알아야 한다(예컨대, 인터럽트 요청(IRQ)을 사용함).
블록(305)에서, TSS(221)는 요청 플래그(132) 상태를 모니터링하거나 SLE(234) 요청의 통지를 수신함으로써 SLE(234) 요청을 알게 된다. TSS(221)에서 SLE(234)로의 TPM(130)의 제어의 핸드오프가 협조적으로 또는 우선적으로 수행될 수 있다. 결정 블록(306)에서, SLE(234)는 협조적 방안 또는 우선적 방안으로 계속된다. 만일 우선적 방안이 선택되면, 방법은 SLE(234)가 TSS(221)의 실행을 중단하고 TPM(130)의 상태를 저장하는 블록(307a)으로 진행하고, 방법은 블록(310)으로 진행한다. 만일 결정 블록(306)에서 협조적 방안이 선택되면, 방법은 SLE(234)가 대기하는 동안 TSS(221)가 클린업(clean up) 프로세스를 시작하는 블록(307b)으로 진행한다. 예컨대, 몇몇 실시예에서, 협조적 방안을 사용하면, TSS(221)는 그 자신의 프로세스를 중단하고, TPM(130)을 저장한 후 요청 플래그(132)를 삭제한다. 결정 블록(308)에서, 요청 플래그(132)의 상태를 모니터링함으로써 TSS(221)가 클린업 프로세스를 완료하였는지 여부가 결정된다. 만일 TSS(221)가 아직 완료되지 않았으면, 방법은 요청 플래그(132)를 모니터링함으로써 TSS(221)가 완료되었는지 여부를 결정하기 위해 SLE(234)가 TSS(221)의 상태를 모니터링하는 것을 계속하는 블록(309)으로 진행한다. 몇몇 실시예에서, 시스템(1)은 (예컨대, 시스템 설계자, 사용자, 관리자 등에 의해 설정된) 모든 장치에 대한 선취(preemption), 모든 장치에 대한 협력을 사용하거나, 특정 장치에 대한 협력 및 다른 장치에 대한 선취를 사용하도록 구현될 수 있음을 알아야 한다. 다른 실시예에서, 협조적 프로세스를 수행하는지 또는 우선적 프로세스를 수행하는지 여부의 결정은 태스크의 우선순위에 기반한다(예컨대, 우선적 프로세스를 사용하는 높은 우선순위의 태스크 및 협조적 프로세스를 사용하는 낮은 우선순위의 태스크). TCG 규격에 따라 구현되면, TPM(130)은 레지스터 값을 저장하고 복구하기 위해 SaveState() 및 RestoreState() 명령에 각각 응답할 수 있다. TSS(221) 또는 SLE(234)는 어느 쪽이 TPM(130)의 제 어를 가지든지 이러한 명령을 발행할 수 있다.
TSS(221)가 TPM(130)의 제어를 릴리스하면, TSS(221)는 (예컨대, 요청 플래그(132)를 제거하고/하거나 TSS(221)를 사용하여 TPM(130) 기능에 액세스하고 있었던 OS(121) 내의 애플리케이션에게 상태를 보고함으로써) 그 릴리스를 시그널링한다(블록 310). 몇몇 실시예에서, TSS(221)는 선취되었음을 보고하거나 프로세스를 완료하는 시간 추정치 -SLE(234)가 TPM(130)을 사용할 시간을 포함함- 를 제공한다. 블록(311)에서, SLE(234)는 액세스하고/하거나 TPM(130)을 제어하며 비지 플래그(131)를 설정한다. 블록(312)에서, SLE(234)는 그 자신의 프로세스를 실행하고, 그 결정 또는 완료에 따라, TPM(130)을 릴리스한다(블록 313). 몇몇 실시예에서, TPM(130)을 릴리스하는 것은 펌웨어(140) 프로세스를 클린업하고, 비지 플래그(131)를 제거하며, TSS(221) 프로세스로부터 상태를 복구하고, TSS(221)에 알리는 것을 포함한다.
블록(314)에서, TSS(221)는 TPM(130)에 재접속한다. 몇몇 실시예에서, TPM(130)에 대한 재접속은 SLE(234)와 관련된 프로세스가 완료되었다는 통지를 TSS(221)가 수신한 것에 응답하여 또는 TSS(221)가 비지 플래그(131)를 모니터링한 결과로서 발생한다. 몇몇 실시예에서, TPM(130) 및/또는 TPM(130)에 액세스하는 데 TSS(221)를 사용해온 OS(121) 내의 애플리케이션은, TSS(221)에 대한 프로세스의 완료를 용이하게 하도록 TPM(130) 사용이 TSS(221)로 리턴함을 보장하기 위해 SLE(234)에 대한 프로세스가 완료된다는 통지를 받는다. 만일 저장되었던 TPM(130) 상태가 SLE(234)에 의해 복구되지 않았다면, TSS(221)는 TPM(130) 상태를 복구한다. TSS(221) 프로세스의 실행은 재개된다(블록 315).
따라서, 시스템(1)의 실시예는 TPM(130)에 의한 OS 레벨 프로세스의 완료 이전에 TPM(130)의 제어가 포기될 수 있도록 TPM(130) 리소스의 공용을 가능하게 한다. 몇몇 실시예에서, 시스템(1)은 TPM(130) 리소스 공유에 대한 우선적 및/또는 협조적 방안을 가능하게 한다.

Claims (10)

  1. 신뢰 플랫폼 모듈(Trusted Platform Module: TPM)을 공유하는 방법에 있어서,
    TPM에 의해 운영 체제(Operating System: OS) 레벨 프로세스를 실행하는 단계와,
    비-OS 레벨 프로세스에 의한 상기 TPM의 사용 요청을 운영 체제(OS)를 통해 수신하는 단계와,
    상기 TPM(130)에 의해 상기 OS 레벨 프로세스의 실행을 중지하는 단계와,
    상기 OS 레벨 프로세스의 실행을 중지한 후에, 상기 TPM(130)에 의해 상기 비-OS 레벨 프로세스를 실행하는 단계를 포함하되,
    상기 비-OS 레벨 프로세스를 실행하는 단계는, 시스템 집약성 개체(System Locality Entity: SLE)를 위해 지정된 메모리 매핑 입력/출력(Memory Mapped Input/Output: MMIO) 범위 상에서 상기 TPM과 통신하는 상기 SLE와 연관된 비-OS 레벨 프로세스를 실행하는 단계를 포함하는
    신뢰 플랫폼 모듈(TPM) 공유 방법.
  2. 제 1 항에 있어서,
    상기 비-OS 레벨 프로세스의 실행 후에, 상기 TPM(130)에 의해 상기 OS 레벨 프로세스의 실행을 재개하는 단계를 더 포함하는
    신뢰 플랫폼 모듈(TPM) 공유 방법.
  3. 제 1 항에 있어서,
    상기 OS 레벨 프로세스의 실행을 중지하면서 상기 TPM(130)의 상태를 저장하는 단계를 더 포함하는
    신뢰 플랫폼 모듈(TPM) 공유 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 비-OS 레벨 프로세스에 관하여 상기 TPM(130)의 사용 요청을 나타내도록 설정된 플래그(132)를 모니터링하는 단계를 더 포함하는
    신뢰 플랫폼 모듈(TPM) 공유 방법.
  6. 신뢰 플랫폼 모듈(TPM)을 공유하는 시스템(1)에 있어서,
    컴퓨터 시스템과,
    운영 체제(OS) 레벨 프로세스를 실행하도록 상기 컴퓨터 시스템 상에서 동작가능한 TPM(130)을 포함하되,
    상기 TPM(130)은 비-OS 레벨 프로세스에 의한 상기 TPM의 사용 요청을 운영 체제(OS)를 통해 수신하고, 상기 OS 레벨 프로세스의 실행을 중지하며, 상기 OS 레벨 프로세스의 중지 후에, 상기 비-OS 레벨 프로세스를 실행하도록 동작가능하며,
    상기 비-OS 레벨 프로세스는, 시스템 집약성 개체(SLE)를 위해 지정된 메모리 매핑 입력/출력(MMIO) 범위 상에서 상기 TPM과 통신하도록 동작가능한 상기 SLE와 연관되어 있는
    신뢰 플랫폼 모듈(TPM) 공유 시스템.
  7. 삭제
  8. 제 6 항에 있어서,
    상기 TPM(130)은 상기 비-OS 레벨 프로세스를 실행하라는 요청을 나타내는 요청 플래그(132)를 포함하는
    신뢰 플랫폼 모듈(TPM) 공유 시스템.
  9. 제 6 항에 있어서,
    상기 OS는 상기 비-OS 레벨 프로세스를 실행하기 위해 상기 TPM(130)의 사용을 요청하는 통지를 수신하도록 동작가능한
    신뢰 플랫폼 모듈(TPM) 공유 시스템.
  10. 신뢰 플랫폼 모듈(TPM)을 공유하는 시스템(1)에 있어서,
    컴퓨터 시스템과,
    운영 체제(OS) 레벨 프로세스를 실행하도록 상기 컴퓨터 시스템 상에서 동작가능한 TPM(130) - 상기 TPM(130)은 비-OS 레벨 프로세스에 의한 상기 TPM의 사용 요청을 운영 체제(OS)를 통해 수신하고, 상기 OS 레벨 프로세스의 실행을 중지하며, 상기 OS 레벨 프로세스의 중지 후에, 상기 비-OS 레벨 프로세스를 실행하도록 동작가능함 - 과,
    상기 비-OS 레벨 프로세스를 실행하라는 요청을 나타내는 요청 플래그(132)를 설정하며, 시스템 집약성 개체(SLE)를 위해 지정된 메모리 매핑 입력/출력(MMIO) 범위 상에서 상기 TPM과 통신하도록 동작가능한 SLE(234)를 포함하는
    신뢰 플랫폼 모듈(TPM) 공유 시스템.
KR1020097011034A 2006-10-30 2007-10-11 신뢰 플랫폼 모듈(tpm) 공유 방법 및 신뢰 플랫폼 모듈(tpm) 공유 시스템 KR101408524B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/589,555 US8082551B2 (en) 2006-10-30 2006-10-30 System and method for sharing a trusted platform module
US11/589,555 2006-10-30
PCT/US2007/021878 WO2008054619A2 (en) 2006-10-30 2007-10-11 System and method for sharing atrusted platform module

Publications (2)

Publication Number Publication Date
KR20090091148A KR20090091148A (ko) 2009-08-26
KR101408524B1 true KR101408524B1 (ko) 2014-06-17

Family

ID=39344841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097011034A KR101408524B1 (ko) 2006-10-30 2007-10-11 신뢰 플랫폼 모듈(tpm) 공유 방법 및 신뢰 플랫폼 모듈(tpm) 공유 시스템

Country Status (7)

Country Link
US (1) US8082551B2 (ko)
EP (1) EP2080095A2 (ko)
JP (1) JP5118706B2 (ko)
KR (1) KR101408524B1 (ko)
CN (1) CN101535957A (ko)
BR (1) BRPI0716305A2 (ko)
WO (1) WO2008054619A2 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080120510A1 (en) * 2006-11-20 2008-05-22 David Carroll Challener System and method for permitting end user to decide what algorithm should be used to archive secure applications
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US8375221B1 (en) * 2011-07-29 2013-02-12 Microsoft Corporation Firmware-based trusted platform module for arm processor architectures and trustzone security extensions
US9256734B2 (en) * 2012-04-27 2016-02-09 Broadcom Corporation Security controlled multi-processor system
US10437591B2 (en) * 2013-02-26 2019-10-08 Qualcomm Incorporated Executing an operating system on processors having different instruction set architectures
US9230081B2 (en) * 2013-03-05 2016-01-05 Intel Corporation User authorization and presence detection in isolation from interference from and control by host central processing unit and operating system
US9606818B2 (en) 2013-03-14 2017-03-28 Qualcomm Incorporated Systems and methods of executing multiple hypervisors using multiple sets of processors
US9396012B2 (en) 2013-03-14 2016-07-19 Qualcomm Incorporated Systems and methods of using a hypervisor with guest operating systems and virtual processors
US10114756B2 (en) 2013-03-14 2018-10-30 Qualcomm Incorporated Externally programmable memory management unit
US9535686B2 (en) * 2013-03-15 2017-01-03 International Business Machines Corporation Dynamic library replacement
CN103455756B (zh) * 2013-08-02 2016-12-28 国家电网公司 一种基于可信计算的进程控制方法
JP7195434B2 (ja) 2019-07-08 2022-12-23 三菱電機株式会社 冷媒分配器、熱交換器、熱交換器ユニット、及び冷凍サイクル装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139442A1 (en) 2001-09-20 2004-07-15 Keiichi Miyamoto Task switching system, task switching method and dsp modem

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5185191A (en) 1986-12-23 1993-02-09 Elf Atochem North America, Inc. Surface modified, U.V. stabilized, polyvinyl chloride article
US5164226A (en) 1986-12-23 1992-11-17 Atochem North America, Inc. Process for surface modification of polymer articles
US5110634A (en) 1987-07-23 1992-05-05 Atochem North America Process for making a surface modified polymer article
US5184191A (en) * 1991-03-20 1993-02-02 Bio-Rad Laboratories, Inc. Sample table for multi-mode spectrum analysis
US5293486A (en) 1991-06-28 1994-03-08 Digital Equipment Corporation Deterministic method for allocation of a shared resource
US5237045A (en) 1992-01-09 1993-08-17 The United States Of America As Represented By The Secretary Of The Navy Curing phthalonitrile resins with acid and amine
US6116284A (en) 1999-08-06 2000-09-12 Case Corporation Guide structure for pneumatic applicator
EP1203278B1 (en) 1999-08-13 2012-02-08 Hewlett-Packard Development Company, L.P. Enforcing restrictions on the use of stored data
FR2807212A1 (fr) 2000-03-31 2001-10-05 Atofina Structure comprenant un primaire fluore et electrode a base de cette structure
US6620342B1 (en) 2000-10-23 2003-09-16 Atofina Chemicals, Inc. Narrow composition distribution polyvinylidene fluoride RECLT films, processes, articles of manufacture and compositions
FR2817076A1 (fr) 2000-11-20 2002-05-24 Atofina Poudre microcomposite a base d'un electroconducteur et d'un fluoropolymere et objets fabriques avec cette poudre
WO2002086808A1 (fr) * 2001-04-17 2002-10-31 Mobilty Co., Ltd. Systeme et procede de protection d'informations
JP3863447B2 (ja) * 2002-03-08 2006-12-27 インターナショナル・ビジネス・マシーンズ・コーポレーション 認証システム、ファームウェア装置、電気機器、及び認証方法
JP4144880B2 (ja) * 2004-04-09 2008-09-03 インターナショナル・ビジネス・マシーンズ・コーポレーション プラットフォーム構成測定装置、プログラム及び方法、プラットフォーム構成認証装置、プログラム及び方法、プラットフォーム構成証明装置、プログラム及び方法、並びに、プラットフォーム構成開示装置、プログラム及び方法
US20050240995A1 (en) 2004-04-23 2005-10-27 Ali Valiuddin Y Computer security system and method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040139442A1 (en) 2001-09-20 2004-07-15 Keiichi Miyamoto Task switching system, task switching method and dsp modem

Also Published As

Publication number Publication date
EP2080095A2 (en) 2009-07-22
JP2010508572A (ja) 2010-03-18
JP5118706B2 (ja) 2013-01-16
WO2008054619A2 (en) 2008-05-08
CN101535957A (zh) 2009-09-16
KR20090091148A (ko) 2009-08-26
US8082551B2 (en) 2011-12-20
US20080189707A1 (en) 2008-08-07
WO2008054619A3 (en) 2008-08-07
BRPI0716305A2 (pt) 2016-05-24

Similar Documents

Publication Publication Date Title
KR101408524B1 (ko) 신뢰 플랫폼 모듈(tpm) 공유 방법 및 신뢰 플랫폼 모듈(tpm) 공유 시스템
US10235515B2 (en) Method and apparatus for on-demand isolated I/O channels for secure applications
US8201239B2 (en) Extensible pre-boot authentication
US8909940B2 (en) Extensible pre-boot authentication
KR101802800B1 (ko) 다중 운영 시스템 환경을 위한 미디어 보호 정책 시행
TWI526931B (zh) 用於虛擬機器之繼承產品啟動
KR101952226B1 (ko) 보안 인터렉션 방법 및 장치
JP4805238B2 (ja) セキュアなロケーションアウェアプラットフォームを可能にする方法、装置及びシステム
JP6063941B2 (ja) システム管理要求のための仮想高特権モード
US10810036B1 (en) Traffic management on an interconnect
US10210326B2 (en) USB stack isolation for enhanced security
CN107567629B (zh) 在可信执行环境容器中的动态固件模块加载器
EP3319283B1 (en) Server data port learning at data switch
US20100287290A1 (en) Virtual Hotplug Techniques
CN102436559A (zh) 一种状态切换方法及***
CN109711161B (zh) 一种监控方法及电子设备
JP2021528744A (ja) 周辺デバイスへのアクセスを制御するためのシステム及び方法
CN113391881A (zh) 中断的管理方法、装置、电子设备及计算机存储介质
US9411980B2 (en) Preventing modifications to code or data based on the states of a master latch and one or more hardware latches in a hosting architecture
CN116069584B (zh) 将监控服务扩展到可信云运营商域中
EP2609539B1 (en) Virtual hotplug techniques
JP2010211339A (ja) 仮想計算機システム、仮想計算機システムの通信制御プログラム及び仮想計算機システムの通信制御方法
WO2019209893A1 (en) Operating system on a computing system
KR101098382B1 (ko) 망 이중화 시스템 및 그 제공방법
KR20110096516A (ko) 망 이중화 시스템 및 그 제공방법

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
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180601

Year of fee payment: 5