KR101332135B1 - Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들 - Google Patents

Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들 Download PDF

Info

Publication number
KR101332135B1
KR101332135B1 KR1020110054061A KR20110054061A KR101332135B1 KR 101332135 B1 KR101332135 B1 KR 101332135B1 KR 1020110054061 A KR1020110054061 A KR 1020110054061A KR 20110054061 A KR20110054061 A KR 20110054061A KR 101332135 B1 KR101332135 B1 KR 101332135B1
Authority
KR
South Korea
Prior art keywords
tpm
request
packetized
command
management console
Prior art date
Application number
KR1020110054061A
Other languages
English (en)
Other versions
KR20110133004A (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 KR20110133004A publication Critical patent/KR20110133004A/ko
Application granted granted Critical
Publication of KR101332135B1 publication Critical patent/KR101332135B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/04Network management architectures or arrangements
    • H04L41/044Network management architectures or arrangements comprising hierarchical management structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/305Authentication, i.e. establishing the identity or authorisation of security principals by remotely controlling device operation
    • 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/606Protecting data by securing the transmission between two devices or processes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/76Routing in software-defined topologies, e.g. routing between virtual machines
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)
  • Hardware Redundancy (AREA)

Abstract

TPM 액세스들을 가상화하기 위한 시스템, 방법 및 장치의 실시예들이 설명된다. 일부 실시예들에서, 소프트웨어 프로그램을 실행하기 위한 CPU 코어, CPU 코어에 결합되고, 소프트웨어 프로그램에 의해 요청된 신뢰 플랫폼 모듈(TPM) 명령을 수신하고, 적어도 TPM 네트워크 패킷을 생성함으로써 관리성 펌웨어를 이용하여 TPM 명령을 처리하는 관리성 엔진, 및 관리성 엔진에 결합되어, 처리를 위해 TPM 네트워크 패킷을 장치 외부의 원격 TPM으로 전송하는 네트워크 인터페이스를 포함하는 장치가 그러한 가상화 프로세스의 일부로서 이용된다.

Description

TPM 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들{SYSTEMS, METHODS, AND APPARATUS TO VIRTUALIZE TPM ACCESSES}
본 발명은 일반적으로 데이터 처리의 분야, 구체적으로는 보안 데이터 처리에 관한 것이다.
로컬 또는 원격 마이크로컴퓨터들 상에서 수행되고 있는 점점 증가하는 수의 금융 및 개인 트랜잭션들은 "신뢰(trusted)" 또는 "보안(secured)" 마이크로프로세서 환경들의 설정에 대한 소정의 추진력을 갖는다. 이러한 환경들이 해결하려고 하는 문제는 프라이버시가 침해되거나 데이터가 손상 또는 남용되는 문제이다. 사용자들은 그들의 사적인 데이터가 공개되는 것을 원하지 않는다. 그들은 그들의 데이터가 변경되거나 부적절한 트랜잭션들에서 사용되는 것도 원하지 않는다. 이러한 것들의 예는 의료 기록들의 우연한 공개 또는 온라인 은행 또는 다른 보관소로부터의 자금의 전자적 도난을 포함할 수 있다. 마찬가지로, 콘텐츠 제공자들은 디지털 콘텐츠(예를 들어, 일반적으로 음악, 다른 오디오, 비디오 또는 다른 타입의 데이터)가 허가없이 복제되는 것을 방지하려고 노력한다.
그러한 신뢰 마이크로프로세서 시스템의 한 컴포넌트는 TCG TPM Specification , Version 1.2에 개시된 바와 같은 신뢰 플랫폼 모듈(TPM)이다.
본 발명은 첨부 도면들에 한정이 아니라 예시적으로 도시된다.
도 1은 신뢰 컴퓨팅을 구현하기 위한 시스템의 도면.
도 2는 컴퓨터가 TPM 명령 기반 패킷을 생성하는 방법의 일 실시예의 도면.
도 3은 관리 콘솔에 의한 수신 TPM 네트워크 패킷들의 처리를 위한 방법의 일 실시예의 도면.
도 4는 TPM 서버에 의한 전송된 TPM 네트워크 패킷의 처리를 위한 방법의 일 실시예의 도면.
도 5는 관리 콘솔에 의한 응답 패킷의 처리를 위한 방법의 일 실시예의 도면.
도 6은 요청 컴퓨터가 응답 TPM 패킷을 처리하는 방법의 일 실시예의 도면.
도 7은 본 발명의 일 실시예에 따른 시스템의 블록도.
도 8은 본 발명의 일 실시예에 따른 시스템의 블록도.
도 9는 본 발명의 일 실시예에 따른 시스템의 블록도.
아래의 설명은 신뢰 실행의 기술들을 설명한다. 아래의 설명에서는, 본 발명의 실시예들의 더욱 완전한 이해를 제공하기 위해, 논리적 구현들, 소프트웨어 모듈 할당 및 동작의 상세들과 같은 다양한 특정 상세들이 설명된다. 그러나, 이 분야의 기술자는 본 발명의 실시예들이 그러한 구체적인 상세들 없이도 실시될 수 있다는 것을 알 것이다. 다른 예들에서는, 본 발명의 실시예들을 불명료하게 하지 않기 위해, 제어 구조들, 게이트 레벨 회로들 및 풀 소프트웨어 명령어 시퀀스들은 상세히 도시되지 않았다. 이 분야의 통상의 기술자들은 포함된 설명들을 이용하여, 과도한 실험 없이도 적절한 기능을 구현할 수 있을 것이다.
데이터 처리 시스템은 중앙 처리 유닛(CPU), 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM) 등과 같은 하드웨어 자원들을 포함할 수 있다. 이러한 처리 시스템은 기본 입출력 시스템(BIOS), 가상 머신 모니터(VMM), 및 하나 이상의 운영 체제(OS)와 같은 소프트웨어 자원들도 포함할 수 있다. 컴퓨터 시스템은 시동 또는 리셋될 때 BIOS를 로딩한 후에 VMM을 로딩할 수 있다. VMM은 호스트 OS의 최상부에서 실행되거나, VMM은 대체로 호스트 OS로서 서빙하는 제어를 포함하는 하이퍼바이저로서 구현될 수 있다. VMM은 하나 이상의 가상 머신(VM)을 생성할 수 있으며, VM들은 상이한 게스트 OS들로 또는 동일 게스트 OS의 상이한 인스턴스들로 부팅될 수 있다. 가상화와 관련된 처리 시스템의 소정 양태들을 관리하기 위한 능력을 VMM에 제공하는 게스트 OS는 서비스 OS로서 참조될 수 있다. 따라서, VMM은 다수의 OS 및 애플리케이션이 독립 파티션들에서 실행되는 것을 가능하게 할 수 있다.
데이터 처리 시스템 내의 CPU는 가상화를 위한 하드웨어 지원(예를 들어, 명령어들 및 데이터 구조들)을 제공할 수 있다. 상이한 타입의 프로세서들은 가상화를 지원하기 위한 상이한 특징들을 제공할 수 있다. 처리 시스템은 인텔사에 의해 개발된 바와 같은 LaGrande Technology (LT) 또는 Intel® Trusted Execution Technology (TXT)로서 참조되는 특징들도 포함할 수 있다. LT/Intel® TXT 특징들은 VMM의 보호된 측정 및 런칭을 제공할 수 있다. 상이한 타입의 프로세서들은 VMM의 보호된 측정 및 런칭을 제공하기 위한 상이한 특징들을 제공할 수 있다.
도 1은 신뢰 컴퓨팅을 구현하기 위한 시스템을 도시한다. 도시된 예에서, 이 시스템은 3개의 주요 컴포넌트, 즉 컴퓨터(신뢰 플랫폼)(101)(데스크탑, 랩탑, 넷북 등), 관리 콘솔(MGMT 콘솔)(123) 및 TPM 서버(125)를 포함한다. 그러나, 일부 실시예들에서는, 이러한 컴포넌트들 중 하나 이상이 통합된다(예를 들어, TPM 서버(125)와 관리 콘솔(123)은 하나의 엔티티일 것이다). 다른 실시예들에서, 이러한 컴포넌트들 및 이들의 서브컴포넌트들은 추가적인 엔티티들에 걸쳐 분산된다.
컴퓨터(101)는 TPM을 이용한 신뢰 실행을 요구하기 위한 것들을 포함하는 명령어들을 처리함으로써 소프트웨어 프로그램들을 실행하기 위한 적어도 하나의 CPU 코어(103)를 포함한다. 일부 실시예들에서, CPU 코어(103)는 운영 체제들, 애플리케이션들 및 가상 머신들을 포함하는 플랫폼(101)의 소프트웨어의 적어도 일부의 해시를 생성하는 명령어들을 실행한다. 해시는 이용가능한 경우에 TPM(121) 내에 국지적으로, 그렇지 않은 경우에는 외부에 저장된다.
CPU 코어(103)는 메모리 제어기(105)에 결합된다. 일부 실시예들에서, 메모리 제어기(105)는 CPU 코어(103)와 동일한 다이 상에 위치한다(통합 메모리 제어기). 다른 실시예들에서, 메모리 제어기는 CPU 코어(103)를 포함하는 다이 외부에(예를 들어, 노스브리지 내에) 위치한다.
메모리 제어기(105)는 관리성 엔진(ME)(107)도 포함한다. ME(107)는 ME 펌웨어(115)를 실행하는 마이크로컨트롤러 또는 다른 프로세서이다. 일 실시예에서, ME(107)는 베이스보드 관리 제어기(BMC)이다. ME(107)는 통상적으로 보조 전력으로 동작하며, 전부는 아니지만 대부분의 전력 상태들에서 이용 가능하다. 다른 실시예에서, 마이크로컨트롤러 ME는 BMC와 연계하여 사용된다.
ME 펌웨어(115)는 플래시 메모리(111)에 저장된다. ME(107), ME 펌웨어(115) 및 ME 데이터 저장 장치(117)를 통해, 컴퓨터(101)의 원격 대역외(OBB) 관리가 이용될 수 있다. 예를 들어, 원격 애플리케이션이 플랫폼 셋업 및 구성을 수행할 수 있다. 일 실시예에서, 코어(103)를 포함하는 CPU는 결합된 칩셋이 TPM 명령들의 전송과 같은 ME(107)의 보안 컴퓨팅 특징들을 이용할 수 있는지를 지시하는 데 사용되는 레지스터들을 구비한다. ME 펌웨어(115)는 ME(107) 상에서 실행되며, 실행 동안 저장을 위해 CPU(103)에 결합된 RAM의 일부를 이용할 수 있다. ME 펌웨어(115)는 후술하는 바와 같은 로컬 TPM(121)의 부재시에 요청들을 처리하는 것, (ME 데이터 저장 장치(117) 또는 다른 저장 장치 내에 TPM 요청 정보를 배치하고 검색하는) TPM 요청들의 저장 장치 관리자로서 동작하는 것, (리스가 이루어진 때, 리스가 만료될 때, 기타 등등에) 네트워크 인터페이스(119) 내의 전용 필터들을 이용하여 OS의 DHCP 리스들을 추적하는 것, 네트워크 인터페이스(119)와 상호작용하여 접속들을 유지하거나 취득하는 것, 칩셋의 전력 상태를 판독하고, 이를 이용하여 그 자신을 언제 셧다운 또는 파워업할지를 결정하는 것(그리고 일부 실시예들에서는 ME(107) 및 ME 데이터 저장 장치(117)와 같은 다른 컴포넌트들의 전력을 제어하는 것), ME 데이터 저장 장치(117) 또는 다른 비휘발성 메모리에 소프트웨어의 버전 번호들(안티바이러스 보호 버전 등)을 저장하는 것, 들어오는 위협들을 사전 차단하는 것, 원하는 소프트웨어 에이전트들(안티바이러스 등)이 실행되고 있는지를 검증하고, 이들이 실행되고 있지 않은 경우에 관리 콘솔에 알리는 것, 주 전력이 셧오프될 때에도 플랫폼의 자산들을 발견하는 것, 및/또는 ME(107)를 이용하여 통상적인 TPM 프로세스들에서 TPM 명령들을 로컬 TPM(121)으로 라우팅하는 것 중 하나 이상을 수행한다.
ME 데이터 저장 장치(117)는 패스워드들, 네트워크 구성, 인증서들 및 액세스 제어 리스트들(ACLs)과 같은 OEM 구성 가능 파라미터들 및/또는 셋업 및 구성 파라미터들을 포함한다. ME 데이터 저장 장치(117)는 경보들 및 시스템 방어 정책들의 리스트들 및 시동시에 BIOS(113)에 의해 캡처된 하드웨어 정보 등의 다른 구성 정보도 포함할 수 있다. BIOS(113)는 측정된 런칭 환경(MLE)에서 이용될 수 있는 보안 부트 절차들을 저장한다.
메모리 제어기(105)는 입출력 제어 허브(ICH) 또는 주변 장치 제어 허브(PCH)(109)에 결합된다. ICH/PCH(109)는 키보드, PCI 장치, PCI 익스프레스 장치 등과 같은 I/O 장치들에 결합된다. ICH에 통상적으로 결합되는 장치들 중 하나는 무선(예를 들어, WLAN) 또는 유선(예를 들어, 이더넷) 접속과 같은 네트워크 인터페이스(119)이다.
일부 실시예들에서 ME가 보조 전력으로 동작할 수 있는 것에 더하여, BIOS(113), ME 펌웨어(115), ME 데이터 저장 장치(117), TPM(121) 및/또는 네트워크 접속(119)도 보조 전력으로 동작한다. 또한, ICH/PCH(109)의 부분들 또는 전체가 보조 전력으로 동작할 수 있다.
또한, TPM(121)이 컴퓨터(101) 내에 포함될 수 있다. 일 실시예에서, TPM(121)은 TCG TPM Specification , Version 1.2에서의 신뢰 컴퓨팅 그룹(TCG)에 의해 정의된다. TPM(121)은 암호 키들 및 소프트웨어 및 정책들의 해시들을 저장한다. TPM(121)은 측정들 및 측정들을 이용하기 위한 메커니즘들을 위한 보관소를 제공한다. 시스템은 측정들을 이용하여, 현재의 플랫폼 구성을 제공하고, 민감한 정보의 장기적 보호를 제공한다. TPM(121)은 측정들을 플랫폼 구성 레지스터들(PCR들)에 저장한다. PCR들은 일정량의 공간에 제한되지 않은 수의 측정들을 허가하는 저장 영역을 제공한다. 이들은 암호 해시들의 고유 특성에 의해 이러한 특징을 제공한다. 외부 엔티티들은 결코 PCR 레지스터에 직접 기입하지 않으며, 이들은 PCR 내용들을 "연장"한다. 연장 동작은 PCR의 현재 값을 취하고, 새로운 값을 첨부하고, 결합된 값에 대해 암호 해시를 수행하며, 해시 결과는 새로운 PCR 값이다. 암호 해시들의 특성들 중 하나는 이들이 순서에 의존한다는 것이다. 이것은 A에 이어서 B를 해싱하는 것이 B에 이어서 A를 해싱하는 것과 다른 결과를 생성한다는 것을 의미한다. 이러한 순서 특성은 PCR 내용들이 측정들의 순서를 지시할 수 있게 한다.
전술한 바와 같이, TPM(121)은 하드웨어 의사 난수 생성기에 더하여 암호 키들의 보안 생성 및 이들의 사용의 제한을 위한 능력을 제공한다. 이것은 또한 원격 인증 및 봉인 저장과 같은 능력들을 포함한다. TPM(121)은 하드웨어 장치들을 인증하는 데에도 사용될 수 있다. 각각의 TPM(121)은 고유 비밀 RSA 키가 생성시에 번인(burn in)되게 하므로, 플랫폼 인증을 수행할 수 있다. 예를 들어, 이것은 TPM(121)에 대한 액세스를 시도하는 시스템이 예측된 시스템인지를 검증하는 데 사용될 수 있다.
컴퓨터(101)의 다른 컴포넌트들은 도시되지 않았다. 예를 들어, 컴퓨터(101)는 메모리 제어기에 결합되는 랜덤 액세스 메모리(RAM), 그래픽 프로세서, 대용량 비휘발성 저장 장치(기계 또는 반도체) 등을 포함할 수 있다. 일부 실시예들에서, 대용량 비휘발성 저장 장치(또는 다른 비휘발성 저장 장치)는 신뢰 플랫폼의 요소들을 정의하는 런칭 제어 정책들을 유지한다. 이러한 정책들은 예를 들어 OEM 또는 VAR에 의해 기입되며, 보호 위치에 존재한다. 이러한 정책들의 해시는 TPM(121) 내에 저장되고, 시스템 부팅시에 검증된다.
통상적으로, 신뢰 실행을 지원하는 컴퓨터들은 TPM 디코드 공간이라고 하는 로컬 TPM(121)에 전용화된 어드레스 공간의 일부를 갖는다. 예를 들어, 일부 실시예들에서, 이 어드레스 공간은 0xFED40000 내지 0xFED4FFF(포함됨)의 메모리 맵핑 I/O(MMIO) 범위 내에 위치한다. 통상적으로, 이 범위에 대한 모든 액세스들은 TPM(121)으로 전송된다. 컴퓨터(101) 상에서 실행되는 호스트 소프트웨어는 TCG(신뢰 컴퓨팅 그룹) 표준들에서 정의된 포맷들에 따라 명령들을 형성한다. 명령들은 이 범위에 위치하는 레지스터들에 판독 및 기입 명령들을 발행함으로써 실행된다. 본질적으로, 소프트웨어는 명령 패키지를 준비하고, 이 범위 내의 페이로드 레지스터(들)에 기입하고, 명령 레지스터들에 값들을 기입한다. 예를 들어, 드라이버는 MMIO 트랩에 의해 캡처된 후에 TPM(121)으로 전달되는 표준 TPM 메모리 어드레스(예를 들어, 0xFED4XXXX)에 명령들을 기입한다.
불행하게도, TPM(121)과 같은 로컬 TPM의 사용은 단점들을 가질 수 있다. 잠재적인 단점들 중 하나는, a) TPM과 관련된 패스워드가 유실되어, 암호화된 데이터가 액세스될 수 없게 되는 것, b) 암호화된 데이터를 포함하는 드라이브 고장 및/또는 c) 플랫폼이 고장날 수 있고, 이동 가능하지 않은 키들과 관련된 임의의 데이터가 유실되는 것 중 어느 하나가 발생하는 경우에, TPM(121)을 이용하는 임의의 프로그램에 의해 암호화된 데이터가 액세스될 수 없거나 복원되지 못할 수 있다는 것이다. 또한, TPM(121)의 소유권이 이전되는 경우, 액세스를 갖도록 의도되지 않은 것들에게 암호화된 데이터가 개방될 수 있다.
옵션인 로컬 TPM(121)을 갖지 않거나 로컬 TPM(121)을 사용하지 않기로 선택한 플랫폼들에 대해서는 로컬 TPM(121) 대신에 관리 콘솔(123) 및/또는 TPM 서버(125)가 사용될 수 있다. 관리 콘솔(123)은 통상적으로 관리자에 의해 플랫폼(101)을 원격적으로 관리하는 데 사용될 수 있으며, 서버와 같은 원격 컴퓨터일 수 있다. 일부 실시예들에서, 이것은 Intel® Active Management Technology (AMT)를 이용하여 행해진다. 또한, 잠재적인 "원격" TPM으로서 서빙할 때, 관리 콘솔(123)은 플랫폼으로부터의 TPM 네트워크 패킷 요청들을 저장하기 위한 패킷 저장 장치(129) 및 어떤 컴퓨터(101)가 요청을 하였는지 그리고 요청을 처리하기 위해 어떤 TPM 서버(125)가 선택되었는지에 관한 정보를 저장하기 위한 라우팅 정보 저장 장치(131)를 포함할 수 있다. 예를 들어, 라우팅 정보 저장 장치(131) 내의 레코드는 패킷 저장 위치에 대한 필드, 요청 시간, 패킷 수신 시간, 수신 패킷의 처리 시간(TPM 서버로 전송되거나 내부적으로 처리됨), (전송된 경우) 수신 패킷이 전송된 TPM 서버의 식별자 및/또는 요청 플랫폼의 식별자 중 하나 이상을 포함할 수 있다. 일부 실시예들에서, 관리 콘솔(123)은 TPM(133)을 포함한다. 관리 콘솔은 TPM 네트워크 패킷들을 (로컬 또는 다른 서버 상의) 적절한 TPM으로 그리고 다시 요청 플랫폼으로 라우트하는 라우팅 논리(하드웨어, 소프트웨어 또는 펌웨어)도 포함한다. 네트워크 인터페이스(119)와 관리 콘솔(123) 사이의 통신 채널은 통상적으로 SSL/IPSEC 또는 다른 보안 프로토콜들을 이용하여 보호된다. 또한, 통신 채널은 TCP/IP를 이용하여 또는 본질적으로 (데이터 센터에 적합한) 이더넷을 통해 라우팅될 수도 있다. 도시되지 않았지만, 관리 콘솔(123) 및 TPM 서버(125)는 네트워크 인터페이스들, CPU 코어(들) 등도 포함한다. 관리 콘솔(123)은 관리자가 정보를 구성하거나 TPM 서버(125) 및 플랫폼(101) 중 하나 또는 양자로부터 원격적으로 수신하기 위한 기능도 포함한다.
TPM 서버(125)는 관리 콘솔(123)에 결합되며, 관리 콘솔(123)에 의해 전송된 요청들을 처리하기 위한 적어도 하나의 TPM(127)을 포함한다. 일부 실시예들에서, 컴퓨터(101)는 관리 콘솔(123)의 중재 없이 TPM 서버(125)와 상호작용한다. 관리 콘솔(123)과 상호작용하는 데 이용할 수 있는 둘 이상의 TPM 서버(125)가 존재할 수 있다. 마찬가지로, 컴퓨터(101)는 그것이 어떻게 준비되었는지(어떻게 신뢰되는지 등)에 따라 둘 이상의 관리 콘솔(123)과 상호작용할 수 있다. 도시되지 않았지만, 관리 콘솔(123) 및 TPM 서버(125)는 네트워크 인터페이스들, CPU 코어(들) 등도 포함한다.
위의 것들을 이용할 수 있는 처리 시스템들은 시스템 관리를 지원하는 내장 정보 기술(EIT)을 포함한다. 예를 들어, EIT 플랫폼이 Intel® TXT 및 TPM의 능력을 이용하여 검증된 부팅을 지원할 수 있다. 또한, 플랫폼 내의 가상 머신(VM)이 TPM의 코어 능력을 이용할 수 있다. 그러한 VM은 예를 들어 Microsoft® Windows VistaTM과 같은 사용자 OS를 실행할 수 있다. 그러나, 통상의 플랫폼은 TPM의 보안 보증을 유지하면서 다수의 VM 사이에 하드웨어 TPM을 공유하지 못할 수 있다.
도 2는 컴퓨터(101)와 같은 컴퓨터가 TPM 명령 기반 패킷을 생성하는 방법의 일 실시예를 나타낸다. 201에서, 컴퓨터 상에서 실행되는 소프트웨어 프로그램에 의해 TPM 디코드 공간에 액세스하기 위한 요청이 행해진다. 이 요청은 TPM 명령의 형태일 수 있다.
203에서, 로컬 TPM이 이용 가능한지에 대한 결정이 이루어진다. 도 1의 TPM(121)과 같은 로컬 TPM의 이용 가능성이 여러 상이한 방식으로 공지될 수 있다. 일부 실시예들에서는, 부팅시에 로컬 TPM이 플랫폼에 등록된다. 이 경우, 플랫폼은 그가 이용 가능한(그리고 아마도 BIOS 내에서 실행되도록 셋업되는) 로컬 TPM을 갖는다는 것을 안다. 다른 실시예들에서, 로컬 TPM은 부팅 후에 시동되고, OS에 등록된다. 다른 실시예들에서, 로컬 TPM의 이용 가능성은 플랫폼이 임의의 부팅 프로세스를 수행할 필요 없이 ME가 액세스할 수 있는 (BIOS와 같은) 비휘발성 메모리에 저장된다. 예를 들어, 로컬 TPM이 존재하는 것이 공지되고, (ME(107), ME 펌웨어(115), ME 데이터(117), TPM(121) 등과 같은) 적절한 컴포넌트들이 (적어도 부분적으로) 파워 온된다. 로컬 TPM이 이용 가능한 경우, 205에서 TPM 요청이 처리를 위해 로컬 TPM으로 라우팅된다. 이 예에서, 요청은 통상적으로 행해지는 바와 같이 처리된다.
로컬 TPM이 이용 가능하지 않은 경우, 207에서 ME가 요청을 수신한다. 예컨대, ME(107)는 CPU 코어(103)로부터 요청을 수신할 것이다. 일부 실시예들에서, 메모리 제어기(105)는 요청을 가로채어 ME(107)로 라우팅하는 것을 담당한다. 예를 들어, 메모리 제어기(105)가 0xFED40001에 대한 액세스 요청을 수신한 경우, 이 요청을 로컬 TPM(121)으로 전송하는 대신에 MIMO 트랩시에 ME(107)로 전송할 것이다. 이러한 시나리오에서, 로컬 TPM(121)과 통상적으로 관련되는 위치들은 ME(107)와 대신 관련된다. 다른 실시예들에서는 ME(107) 자신이 가로채기를 수행한다.
요청의 수신시, 209에서 ME 펌웨어는 적어도 내부 라우팅 정보(어느 CPU 코어, 소켓 등이 요청을 행하였는지)를 저장한다. 이러한 정보는 ME 데이터(117) 내에 저장될 수 있다. ME 펌웨어는 요청 자체 또는 그의 패킷화된 버전(후술함)을 추가로 저장할 수 있다. 예를 들어, TPM 명령 요청, TPM 명령 요청의 패킷 버전, 요청 시간, 패킷 버전이 전송된 시간, 패킷 버전이 누구에게 전송되었는지에 대한 식별자(어드레스 또는 이름), 누가 요청을 행하였는지에 관한 식별자(소프트웨어 프로그램, 코어, 소켓 등) 및/또는 요청의 식별자 중 하나 이상이 저장될 수 있다.
211에서, TPM 명령에 기초하여 네트워크 패킷이 생성된다. 예를 들어, ME(107)는 ME 펌웨어(115)를 실행하여 TPM 명령 패킷을 생성할 것이다. 일부 실시예들에서, 이 패킷은 적어도 TCP/IP 페이로드의 일부를 구성하는 TPM 명령을 갖는 TCP/IP 패킷일 수 있다. 추가적인 페이로드 정보는 알려진 경우에 TPM 서버 식별자를 포함할 수 있다. 로컬 네트워크들에서, 패킷은 TCP/IP 패킷이 아닐 수 있다.
213에서, ME는 이렇게 생성된 패킷을 컴퓨터의 네트워크 인터페이스들 중 하나로 전송한다. 예를 들어, ME 펌웨어(115)를 이용하는 ME(107)는 TPM 네트워크 패킷을 NIC, WLAN 등으로 전송한다. 전술한 바와 같이, 네트워크 인터페이스는 TPM 네트워크 패킷들을 어디로 전송할지(관리 콘솔 또는 TPM 서버의 어드레스)를 아는 것이 필요하다. 일부 실시예들에서, 이러한 정보는 예를 들어 부팅 전에 준비(provisioning) 프로세스 동안에 셋업된다. 예를 들어, 준비 동안에, 컴퓨터는 임의의 소프트웨어가 플랫폼 상에서 실행되어야 하는 필요성을 제거하는 원격 구성을 허가하도록 설정된다. 통상적으로, 이러한 파라미터들은 원격 구성에서 관리자에 의해 셋업된다.
이어서, 215에서, 네트워크 인터페이스는 처리를 위해, 이용되는 구현에 따라, TPM 네트워크 패킷을 관리 콘솔 또는 TPM 서버로 전송한다. 따라서, 오리지널 TPM 명령은 상이한 위치에서 처리되도록 "가상화"되었다.
도 3은 관리 콘솔에 의해 수신 TPM 네트워크 패킷들을 처리하는 방법의 일 실시예를 나타낸다. 301에서, 관리 콘솔은 소정의 플랫폼으로부터 처리할 TPM 네트워크 패킷을 수신한다. 예를 들어, 관리 콘솔(123)은 플랫폼(101)으로부터 네트워크 인터페이스(119)를 통해 TPM 네트워크 패킷을 수신한다.
이어서, 303에서, 관리 콘솔은 그가 TPM 네트워크 패킷을 처리할 수 있는지를 결정한다. 예를 들어, TPM 네트워크 패킷을 적어도 부분적으로 디코딩하여, 이 패킷이 TPM 명령을 포함하는지를 결정한 후에, 관리 콘솔(123)은 그가 요청을 처리할 로컬 TPM(133)을 갖는지를 결정한다. 관리 콘솔은 또한 그의 TPM 또는 TPM들이 요청을 처리할 대역폭을 갖는지를 결정할 수 있다. 일부 실시예들에서, 관리 콘솔은 패킷을 처리하기 전에 패킷을 그의 패킷 저장 장치 내에 임시로 저장하고, 그의 라우팅 정보 저장 장치 내에서 TPM 네트워크 패킷에 관한 엔트리를 생성한다. 305에서, 관리 콘솔은 요청을 처리할 수 있는 경우에 TPM 네트워크 패킷의 명령을 처리하고, 요청을 행한 플랫폼으로 응답을 반송한다.
관리 콘솔이 패킷을 처리할 수 없는 경우(로컬 TPM이 이용가능하지 않은 경우), 307에서 관리 콘솔은 (예를 들어, 저장 장치(129)에) TPM 네트워크 패킷을 저장하고, (저장 장치(131)와 같은) 그의 관련 라우팅 정보 저장 장치 내에서 TPM 네트워크 패킷에 관한 엔트리를 생성한다. 예를 들어, TPM 네트워크 패킷은 패킷 저장 장치(129)에 저장되고, 누가 TPM 네트워크 패킷을 전송하였는지 그리고 이 패킷이 누구에게 전달되었는지 등을 상술하는 엔트리가 생성될 것이다. 위에서는 TPM 네트워크 패킷의 저장을 설명하였지만, 일부 실시예들에서는 TPM 명령과 같은 패킷의 일부만이 저장된다.
309에서, 관리 콘솔은 TPM 네트워크 패킷을 적절한 TPM 서버로 전송한다. 관리 콘솔은 전송 네트워크 인터페이스의 MAC 어드레스에 기초하는 타겟 TPM 서버의 위치 및/또는 네트워크 관리자에 의해 설정된 다른 정적 정보를 갖도록 구성될 수 있다. 일부 실시예들에서, TPM 네트워크 패킷을 전송할 때, 이전 라우팅 정보(TCP/IP 등)가 삭제되고, 요청을 처리하도록 선택된 TPM 서버에 대응하는 새로운 라우팅 정보로 대체된다. 또한, 일부 실시예들에서는, 전송되는 패킷을 오리지널 패킷과 연관시키는 식별자가 전송되는 패킷 내에 배치된다. 또한, 관리 콘솔의 식별자가 전송되는 패킷 내에 포함될 수 있다. 예를 들어, 패킷 저장 장치(129) 내의 패킷의 위치가 전송되는 패킷에 포함된다. 이러한 정보는 관리 콘솔(123)이 TPM 서버(125)부터의 응답을 전송되는 요청과 연관시키는 것을 도울 수 있다.
도 4는 전송된 TPM 네트워크 패킷들을 TPM 서버에 의해 처리하기 위한 방법의 일 실시예를 나타낸다. 401에서, TPM 서버는 관리 콘솔로부터 TPM 네트워크 패킷을 수신한다. 예를 들어, TPM 서버(125)는 관리 콘솔(123)로부터 TPM 네트워크 패킷을 수신하며, 이 TPM 네트워크 패킷은 플랫폼(101)으로부터 개시되었다.
이어서, 403에서, TPM 서버는 요청을 행한 플랫폼에 국한된 것과 같은 방식으로 TPM 네트워크 패킷으로부터의 TPM 명령을 처리(실행)한다. TPM 명령이 그와 관련된 응답(반환 데이터, 상태 등)을 갖는 경우, 405에서 TPM 서버는 응답을 패킷화하고, 이를 관리 서버로 전송한다. 일부 실시예들에서, 패킷 응답은 오리지널 요청과 관련된 식별자를 포함한다. 예를 들어, 전송된 패킷이 하나 이상의 식별자를 포함하는 경우, 이 식별자들이 반송된다. 일부 실시예들에서, 응답 패킷은 오리지널 요청을 행한 컴퓨터를 식별한다.
도 5는 관리 콘솔에 의해 응답 패킷을 처리하기 위한 방법의 일 실시예를 나타낸다. 501에서, 관리 콘솔은 TPM 서버로부터 TPM 네트워크에 패킷에 대한 응답을 수신한다. 예를 들어, 관리 콘솔(123)은 그가 TPM 서버(125)로 전송한 TPM 네트워크 패킷에 대한 응답을 수신한다.
503에서, 관리 콘솔은 오리지널 패킷과 관련된 라우팅 정보를 검색한다. 일부 실시예들에서는, 오리지널 패킷도 검색된다. TPM으로부터의 응답은 요청의 소스 어드레스를 그의 목적지 어드레스로서 부여받는다. 505에서, 관리 콘솔은 적절한 요청 플랫폼으로 응답을 전송한다.
도 6은 요청 컴퓨터가 응답 TPM 패킷을 처리하기 위한 방법의 일 실시예를 나타낸다. 601에서, 요청 플랫폼은 TPM 응답을 수신한다. 예를 들어, 네트워크 인터페이스(119)는 TPM 응답 패킷을 수신한다. 603에서, 네트워크 인터페이스는 이 응답을 ME 펌웨어로 전송한다.
605에서, ME 펌웨어는 (존재할 경우) 내부 라우팅 정보를 검색하고, 행해진 요청에 응답을 연관시킨 후에 응답을 내부 페이로드로서 전송한다. 예를 들어, ME 펌웨어(115)는 요청을 행한 CPU 코어(103)의 식별자를 검색하고, 이를 그 코어로 전송한다. 이러한 연관은 요청 자체, 누가 요청을 행하였는지에 대한 식별자, 요청의 식별자 등과 같은 저장된 정보 중 하나 이상에 기초하여 수행될 수 있다. 코어(또는 소프트웨어)의 관점에서, 응답은 TPM 디코드 범위에 대한 판독/기입에 대한 응답으로서 보일 것이다. 따라서, 오리지널 요청을 발행한 소프트웨어도 응답을 수신할 것이다. 지연을 제외하고, 소프트웨어는 TPM 구현 뒤의 상세들을 알지 못한다. 일부 실시예들에서는 오리지널 요청도 검색된다.
위의 설명은 대부분 관리 콘솔을 요청 컴퓨터와 TPM 서버 사이의 중재자로서 이용하였지만, 일부 실시예들에서는, 요청 컴퓨터의 어드레스가 알려진 경우(예를 들어, 어드레스가 전송 패킷 내에 포함된 경우), TPM 서버가 응답을 직접 요청 컴퓨터로 반환한다.
위의 구성은 많은 이점을 제공한다. 그러한 하나의 이점은 잘못 구성된 TPM으로 인해 손상된 플랫폼들을 복구하는 능력이다. 플랫폼 상에서 실행되는 소프트웨어가 TPM을 잘못 구성하거나 잘못된 또는 무효 상태로 되게 하는 경우에, 플랫폼은 셧다운될 수 있고, TPM이 복구된 후에 재부팅될 수 있다. TPM이 복구될 수 없는 경우, 다른 TPM이 활성화되고, 준비될 수 있으며, 관리 콘솔은 응답을 새로운 TPM으로 재지향시키도록 프로그래밍될 수 있다.
관리 콘솔 및 관련 소프트웨어는 TPM을 이용하고 있는 플랫폼과 무관하게 TPM 상에서 실행될 수 있다. 또한, 다른 관리/유지 활동들이 TPM 상에서 오프라인으로 수행될 수 있다.
또 하나의 이점은 주 TPM과 더불어 백업 TPM이 이용될 수 있다는 것이다. (로컬 TPM 또는 주 TPM 서버와 같은) 주 TPM이 오프라인으로 되는 것이 필요한 경우, 관리 콘솔은 주 TPM이 유지 보수를 위해 다운되는 동안에 요청들을 백업 TPM으로 재지향시키도록 프로그래밍될 수 있다.
또한, TPM에 저장된 정책들 또는 데이터는 플랫폼의 위치에 관계없이 이용될 수 있다. 예를 들어, 임의의 VM 정책들이 TPM에 저장되고, VM이 새로운 노드로 이동한 경우, TPM은 플랫폼으로부터 분리되어 있으므로, VMM/하이퍼바이저는 정책들에 대한 즉석 액세스를 갖는다.
이제, 도 7을 참조하면, 본 발명의 일 실시예에 따른 시스템(700)의 블록도가 도시되어 있다. 시스템(700)은 그래픽 메모리 제어기 허브(GMCH)(720)에 결합되는 하나 이상의 처리 요소(710, 715)를 포함할 수 있다. 추가적인 처리 요소들(715)의 옵션 성질은 도 5에 파선들로 표시된다.
각각의 처리 요소는 단일 코어이거나, 대안으로서 다수의 코어를 포함할 수 있다. 처리 요소들은 옵션으로서 처리 코어들 외에 집적 회로 제어기 및/또는 집적 I/O 제어 논리와 같은 다른 온-다이 요소들을 포함할 수 있다. 또한, 적어도 일 실시예에서, 처리 요소들의 코어(들)는 멀티스레드화될 수 있는데, 이는 이들이 코어마다 둘 이상의 하드웨어 스레드 컨텍스트를 포함할 수 있기 때문이다.
도 7은 GMCH(720)가 예를 들어 동적 랜덤 액세스 메모리(DRAM)일 수 있는 메모리(740)에 결합될 수 있음을 도시한다. DRAM은 적어도 일 실시예에서 비휘발성 캐시와 연관될 수 있다.
GMCH(720)는 칩셋 또는 칩셋의 일부일 수 있다. GMCH(720)는 프로세서(들)(710, 715)와 통신하고, 프로세서(들)(710, 715)와 메모리(740) 사이의 상호작용을 제어할 수 있다. GMCH(720)는 시스템(700)의 프로세서(들)(710, 715)와 다른 요소들 간의 가속 버스 인터페이스로서도 동작할 수 있다. 적어도 일 실시예에서, GMCH(720)는 프론트사이드 버스(FSB)(795)와 같은 멀티드롭 버스를 통해 프로세서(들)(710, 715)와 통신한다.
더욱이, GMCH(720)는 (평판 디스플레이와 같은) 디스플레이(740)에 결합된다. GMCH(720)는 통합 그래픽 가속기를 포함할 수 있다. GMCH(720)는 다양한 주변 장치들을 시스템(700)에 결합하는 데 사용될 수 있는 입출력(I/O) 제어기 허브(ICH)(750)에 더 결합된다. 예를 들어, 도 7에는 다른 주변 장치(770)와 함께 ICH(750)에 결합되는 개별 그래픽 장치일 수 있는 외부 그래픽 장치(760)가 도시되어 있다.
대안으로서, 추가적인 또는 상이한 처리 요소들도 시스템(700) 내에 존재할 수 있다. 예를 들어, 추가적인 처리 요소(들)(715)는 프로세서(710)와 동일한 추가적인 프로세서(들), 프로세서(710)와 다르거나 비대칭인 추가적인 프로세서(들), (예를 들어, 그래픽 가속기 또는 디지털 신호 처리(DSP) 유닛과 같은) 가속기, 필드 프로그래머블 게이트 어레이 또는 임의의 다른 처리 요소를 포함할 수 있다. 구조적, 미세 구조적, 열적, 전력 소비 특성 등을 포함하는 장점 기준들의 스펙트럼과 관련하여 물리 자원들(710, 715) 사이에는 다양한 차이가 존재할 수 있다. 이러한 차이들은 그들 자신을 처리 요소들(710, 715) 사이의 비대칭성 및 이질성으로서 효과적으로 표현할 수 있다. 적어도 일 실시예에서, 다양한 처리 요소들(710, 715)은 동일한 다이 패키지 내에 존재할 수 있다.
이제, 도 8을 참조하면, 본 발명의 일 실시예에 따른 제2 시스템(800)의 블록도가 도시되어 있다. 도 8에 도시된 바와 같이, 멀티프로세서 시스템(800)은 점대점 상호접속 시스템이며, 점대점 상호접속(850)을 통해 결합되는 제1 처리 요소(870) 및 제2 처리 요소(880)를 포함한다. 도 8에 도시된 바와 같이, 처리 요소들(870, 880)의 각각은 제1 및 제2 프로세서 코어들(즉, 프로세서 코어들(874a, 874b) 및 프로세서 코어들(884a, 884b))을 포함하는 멀티코어 프로세서들일 수 있다.
대안으로서, 처리 요소들(870, 880) 중 하나 이상은 가속기 또는 필드 프로그래머블 게이트 어레이와 같은, 프로세서가 아닌 다른 요소일 수 있다.
2개의 처리 요소(870, 880)만이 도시되지만, 본 발명의 범위는 이에 한정되지 않음을 이해해야 한다. 다른 실시예들에서는, 하나 이상의 추가 처리 요소가 소정 프로세서 내에 존재할 수 있다.
제1 처리 요소(870)는 메모리 제어기 허브(MCH)(872) 및 점대점(P-P) 인터페이스들(876, 878)을 더 포함할 수 있다. 마찬가지로, 제2 처리 요소(880)는 MCH(882) 및 P-P 인터페이스들(886, 888)을 포함할 수 있다. 프로세서들(870, 880)은 PtP 인터페이스 회로들(878, 888)을 이용하여 점대점(PtP) 인터페이스(850)를 통해 데이터를 교환할 수 있다. 도 8에 도시된 바와 같이, MCH들(872, 882)은 각각의 프로세서들에 논리적으로 접속된 주 메모리의 부분들일 수 있는 각각의 메모리들, 즉 메모리(842) 및 메모리(844)에 프로세서들을 결합한다.
프로세서들(870, 880)은 각각 점대점 인터페이스 회로들(876, 894, 886, 898)을 이용하여 개별 PtP 인터페이스들(852, 854)을 통해 칩셋(890)과 데이터를 교환할 수 있다. 칩셋(890)은 고성능 그래픽 인터페이스(839)를 통해 고성능 그래픽 회로(838)와도 데이터를 교환할 수 있다. 본 발명의 실시예들은 임의 수의 처리 코어를 갖는 임의의 프로세서 내에 또는 도 8의 PtP 버스 에이전트들의 각각 내에 위치할 수 있다. 일 실시예에서, 임의의 프로세서 코어는 로컬 캐시 메모리(도시되지 않음)를 포함하거나 그와 연관될 수 있다. 더욱이, 공유 캐시(도시되지 않음)가 양 프로세서들 중 어느 하나에 포함될 수 있지만, p2p 상호접속을 통해 프로세서들에 접속될 수 있으며, 따라서 어느 하나 또는 양 프로세서들의 로컬 캐시 정보는 프로세서가 저전력 모드에 있는 경우에 공유 캐시에 저장될 수 있다.
제1 처리 요소(870) 및 제2 처리 요소(880)는 각각 P-P 상호접속들(876, 886, 884)을 통해 칩셋(890)에 결합될 수 있다. 도 8에 도시된 바와 같이, 칩셋(890)은 P-P 인터페이스들(894, 898)을 포함한다. 더욱이, 칩셋(890)은 칩셋(890)을 고성능 그래픽 엔진(848)에 결합하는 인터페이스(892)를 포함한다. 일 실시예에서는, 버스(849)를 이용하여, 그래픽 엔진(848)과 칩셋(890)을 결합할 수 있다. 대안으로, 점대점 상호접속(849)이 이러한 컴포넌트들을 결합할 수 있다.
또한, 칩셋(890)은 인터페이스(896)를 통해 제1 버스(816)에 결합될 수 있다. 일 실시예에서, 제1 버스(816)는 주변 컴포넌트 상호접속(PCI) 버스, 또는 PCI 익스프레스 버스 또는 다른 3세대 I/O 상호접속 버스와 같은 버스일 수 있지만, 본 발명의 범위는 이에 한정되지 않는다.
도 8에 도시된 바와 같이, 다양한 I/O 장치들(814)이 제1 버스(816)를 제2 버스(820)에 결합하는 버스 브리지(818)와 함께 제1 버스(816)에 결합될 수 있다. 일 실시예에서, 제2 버스(820)는 로우 핀 카운트(LPC) 버스일 수 있다. 일 실시예에서, 예를 들어, 키보드 마우스(822), 통신 장치들(826) 및 코드(830)를 포함할 수 있는 디스크 드라이브 또는 다른 대용량 저장 장치와 같은 데이터 저장 유닛(828)을 포함하는 다양한 장치들이 제2 버스(820)에 결합될 수 있다. 또한, 오디오 I/O(824)가 제2 버스(820)에 결합될 수 있다. 다른 구조들도 가능하다는 점에 유의한다. 예를 들어, 도 8의 점대점 구조 대신에, 시스템은 멀티 드롭 버스 또는 다른 그러한 구조를 구현할 수 있다.
이제, 도 9를 참조하면, 본 발명의 일 실시예에 따른 제3 시스템(900)의 블록도가 도시되어 있다. 도 8 및 9의 동일 요소들은 동일 참조 번호들을 가지며, 도 8의 소정 양태들은 도 9의 다른 양태들을 불명확하게 하지 않기 위해 도 9로부터 생략되었다.
도 9는 처리 요소들(870, 880)이 각각 통합 메모리 및 I/O 제어 논리("CL")(872, 882)를 포함할 수 있음을 보여준다. 적어도 일 실시예에서, CL(872, 882)은 도 7 및 8과 관련하여 전술한 것과 같은 메모리 제어기 허브 논리(MCH)를 포함할 수 있다. 또한, CL(872, 882)은 I/O 제어 논리도 포함할 수 있다. 도 9는 메모리들(842, 844)이 CL(872, 882)에 결합될 뿐만 아니라, I/O 장치들(914)도 제어 논리(872, 882)에 결합됨을 보여준다. 레거시 I/O 장치들(915)이 칩셋(890)에 결합된다.
여기에 설명된 메커니즘들의 실시예들은 하드웨어, 소프트웨어, 펌웨어 또는 이러한 구현 접근법들의 조합으로 구현될 수 있다. 본 발명의 실시예들은 적어도 하나의 프로세서, (휘발성 및 비휘발성 메모리 및/또는 저장 요소들을 포함하는) 데이터 저장 시스템, 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치를 포함하는 프로그래머블 시스템들 상에서 실행되는 컴퓨터 프로그램으로서 구현될 수 있다.
도 8에 도시된 코드(830)와 같은 프로그램 코드는 여기에 설명된 기능들을 수행하여 출력 정보를 생성하도록 입력 데이터에 적용될 수 있다. 따라서, 본 발명의 실시예들은 본 발명의 동작 실시예들을 수행하기 위한 명령어들 또는 여기에 설명되는 구조들, 회로들, 장치들, 프로세서들 및/또는 시스템 특징들을 정의하는 HDL과 같은 설계 데이터를 포함하는 기계 판독 가능 매체들도 포함한다. 이러한 실시예들은 프로그램 제품들로도 참조될 수 있다.
이러한 기계 판독 가능 저장 매체들은 하드 디스크, 플로피 디스크, 광 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 재기입 가능 컴팩트 디스크(CD-RW) 및 광자기 디스크를 포함하는 임의의 다른 타입의 디스크, 판독 전용 메모리(ROM), 동적 랜덤 액세스 메모리(DRAM), 정적 랜덤 액세스 메모리(SRAM)와 같은 랜덤 액세스 메모리(RAM), 소거 가능하고 프로그래밍 가능한 판독 전용 메모리(EPROM), 플래시 메모리, 전기적으로 소거 가능하고 프로그래밍 가능한 판독 전용 메모리(EEPROM)와 같은 반도체 장치, 자기 또는 광학 카드, 또는 전자 명령어들을 저장하기에 적합한 임의의 다른 타입의 매체와 같은 저장 매체를 포함하는 기계 또는 장치로 제조되거나 형성된 파티클들의 유형 배열들을 포함할 수 있지만, 이에 한정되지 않는다.
출력 정보는 공지 방식으로 하나 이상의 출력 장치에 적용될 수 있다. 본 출원의 목적으로, 처리 시스템은 예를 들어 디지털 신호 프로세서(DSP), 마이크로컨트롤러, 주문형 집적 회로(ASIC) 또는 마이크로프로세서와 같은 프로세서를 갖는 임의의 시스템을 포함한다.
프로그램들은 처리 시스템과 통신하기 위해 고레벨 절차 또는 객체 지향 프로그래밍 언어로 구현될 수 있다. 프로그램들은 필요한 경우에 어셈블리 또는 기계 언어로도 구현될 수 있다. 사실상, 여기에 설명되는 메커니즘들은 임의의 특정 프로그래밍 언어로 그 범위가 한정되지 않는다. 어느 경우에나, 언어는 컴파일되거나 해석되는 언어일 수 있다.
적어도 일 실시예의 하나 이상의 양태는 기계에 의해 판독될 때 기계가 여기에 설명되는 기술들을 수행하기 위한 논리를 형성하게 하는, 프로세서 내의 다양한 논리를 나타내는 기계 판독 가능 매체 상에 저장된 표현 데이터에 의해 구현될 수 있다. "IP 코어들"로서 알려진 이러한 표현들은 유형의 기계 판독 가능 매체 상에 저장되고, 다양한 고객 또는 제조 설비에 제공되어, 논리 또는 프로세서를 실제로 제조하는 제조 기계들 내에 로딩될 수 있다.
위의 설명은 본 발명의 바람직한 실시예들을 예시하는 것을 의도한다. 위의 설명으로부터, 특히 성장이 빠르고, 추가적인 진보들이 쉽게 예상되지 않는 그러한 기술 분야에서, 본 발명은 첨부된 청구항들 및 이들의 균등물들의 범위 내에서 본 발명의 원리들로부터 벗어나지 않고 이 분야의 기술자들에 의해 배열 및 상세가 변경될 수 있다는 것도 분명해야 한다.

Claims (15)

  1. 장치로서,
    소프트웨어 프로그램을 실행하기 위한 프로세서 코어 수단;
    상기 소프트웨어 프로그램에 의해 요청된 신뢰 플랫폼 모듈(trusted platform module; TPM) 명령을 수신하고, 적어도 TPM 네트워크 패킷을 생성함으로써 관리성 펌웨어를 이용하여 상기 TPM 명령을 처리하기 위한 관리성 엔진 수단(manageability engine means);
    메모리 맵핑 입출력(memory mapped input/output; MIMO) 트랩에서 상기 소프트웨어 프로그램에 의해 요청된 TPM 명령을 가로채어, 상기 TPM 명령을 상기 관리성 엔진에 전송하기 위한 메모리 제어기; 및
    처리를 위해 상기 장치 외부의 원격 TPM에 상기 TPM 네트워크 패킷을 전송하기 위한 네트워크 인터페이스 수단
    을 포함하는 장치.
  2. 삭제
  3. 제1항에 있어서, 디스에이블되는 로컬 TPM을 더 포함하고, 상기 로컬 TPM은 인에이블되는 경우에 상기 TPM 명령을 처리하는 장치.
  4. 제1항 또는 제3항에 있어서, 상기 소프트웨어 프로그램에 의해 요청된 상기 TPM 명령은 0xFED4000 내지 ED4FFFF의 메모리 맵핑 입출력(MIMO) 어드레스 범위에서 레지스터에 액세스하려고 시도되는 장치.
  5. 시스템으로서,
    소프트웨어 프로그램을 실행하기 위한 프로세서 코어 수단, 상기 소프트웨어 프로그램에 의해 요청된 신뢰 플랫폼 모듈(TPM) 명령을 수신하고, 적어도 TPM 네트워크 패킷을 생성함으로써 관리성 펌웨어를 이용하여 상기 TPM 명령을 처리하기 위한 관리성 엔진 수단, 메모리 맵핑 입출력(MIMO) 트랩에서 상기 소프트웨어 프로그램에 의해 요청된 TPM 명령을 가로채어, 상기 TPM 명령을 상기 관리성 엔진에 전송하기 위한 메모리 제어기, 및 처리를 위해 장치 외부의 원격 TPM에 상기 TPM 네트워크 패킷을 전송하기 위한 네트워크 인터페이스 수단을 포함하는 플랫폼; 및
    수신된 TPM 네트워크 패킷들을 저장하기 위한 패킷 저장 수단, 상기 TPM 네트워크 패킷이 전송되는 장소를 포함하는, 상기 수신된 TPM 네트워크 패킷들에 관한 정보를 저장하기 위한 라우팅 정보 저장 수단, 및 수신된 TPM 네트워크 패킷들을 라우팅하기 위한 라우팅 수단을 포함하는, 상기 네트워크 인터페이스에 결합되는 관리 콘솔 수단
    을 포함하는 시스템.
  6. 제5항에 있어서, 상기 관리 콘솔 수단은 수신된 TPM 네트워크 패킷들을 처리하기 위한 로컬 TPM을 더 포함하고, 상기 관리 콘솔은 상기 처리된 수신된 TPM 네트워크 패킷들과 관련된 임의의 응답들을 상기 플랫폼에 전송하는 시스템.
  7. 제5항 또는 제6항에 있어서, 상기 관리 콘솔에 결합되어, 상기 관리 콘솔에 의해 수신된 TPM 네트워크 패킷들을 처리하기 위한 TPM 서버를 더 포함하고, 상기 TPM 서버는 상기 처리된 수신된 TPM 네트워크 패킷들과 관련된 임의의 응답들을 상기 관리 콘솔에 전송하는 시스템.
  8. 제5항 또는 제6항에 있어서, 상기 관리 콘솔 수단은 상기 TPM 네트워크 패킷들을 상기 TPM 서버에 전송하기 전에 상기 수신된 패킷들로부터 어드레스 정보를 제거하고 새로운 어드레스 정보를 추가하는 시스템.
  9. 삭제
  10. 제5항 또는 제6항에 있어서, 디스에이블되는 로컬 TPM을 더 포함하고, 상기 로컬 TPM은 인에이블된 경우에 상기 TPM 명령을 처리하는 시스템.
  11. 플랫폼의 관리 엔진에서 상기 플랫폼 상에서 실행되는 소프트웨어 프로그램으로부터 신뢰 플랫폼 모듈(TPM) 명령 요청을 수신하는 단계;
    상기 TPM 명령 요청을 패킷화하여, 상기 플랫폼 외부의 TPM으로 전송될 수 있게 하는 단계;
    패킷화된 TPM 명령 요청을 상기 플랫폼 외부의 TPM을 아는 외부 엔티티에 전송하여, 상기 패킷화된 TPM 명령 요청을 처리하는 단계; 및
    상기 패킷화된 TPM 명령 요청과 관련된 정보를 저장하여, 임의의 응답이 상기 패킷화된 TPM 명령 요청과 관련되게 하는 단계
    를 포함하는 방법.
  12. 제11항에 있어서,
    로컬 TPM이 메모리 맵핑 입출력(MIMO) 트랩의 발생시에 상기 TPM 명령 요청을 처리할 수 없는 것으로 결정하는 단계; 및
    상기 TPM 명령 요청을 상기 관리 엔진에 전송하는 단계
    를 더 포함하는 방법.
  13. 제11항 또는 제12항에 있어서,
    상기 패킷화된 TPM 명령 요청에 대한 응답을 수신하는 단계;
    상기 응답을 상기 패킷화된 TPM 명령 요청과 연관시키는 단계; 및
    상기 응답을 상기 요청을 행한 상기 소프트웨어 프로그램에 전송하는 단계
    를 더 포함하는 방법.
  14. 제11항 또는 제12항에 있어서,
    상기 패킷화된 TPM 명령 요청과 관련된 상기 정보는,
    상기 패킷화된 TPM 요청의 사본;
    상기 패킷화된 TPM 요청을 전송받은 엔티티의 식별자; 및
    어떤 소프트웨어 프로그램이 상기 요청을 행하였는지에 대한 식별자
    를 포함하는 방법.
  15. 제11항 또는 제12항에 있어서,
    상기 패킷화된 TPM 명령 요청과 관련된 상기 정보는,
    상기 패킷화된 TPM의 식별자;
    상기 패킷화된 TPM 요청을 전송받은 엔티티의 식별자; 및
    어떤 소프트웨어 프로그램이 상기 요청을 행하였는지에 대한 식별자
    를 포함하는 방법.
KR1020110054061A 2010-06-03 2011-06-03 Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들 KR101332135B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/793,579 2010-06-03
US12/793,579 US8959363B2 (en) 2010-06-03 2010-06-03 Systems, methods, and apparatus to virtualize TPM accesses

Publications (2)

Publication Number Publication Date
KR20110133004A KR20110133004A (ko) 2011-12-09
KR101332135B1 true KR101332135B1 (ko) 2013-11-21

Family

ID=45053313

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110054061A KR101332135B1 (ko) 2010-06-03 2011-06-03 Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들

Country Status (8)

Country Link
US (2) US8959363B2 (ko)
JP (2) JP5503594B2 (ko)
KR (1) KR101332135B1 (ko)
CN (1) CN102271153B (ko)
BR (1) BRPI1103117A2 (ko)
DE (1) DE102011103218B4 (ko)
TW (1) TWI483201B (ko)
WO (1) WO2011153093A2 (ko)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10997531B2 (en) 2007-09-11 2021-05-04 Ciambella Ltd. System, method and graphical user interface for workflow generation, deployment and/or execution
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses
US10176018B2 (en) * 2010-12-21 2019-01-08 Intel Corporation Virtual core abstraction for cloud computing
US8782423B2 (en) 2012-06-19 2014-07-15 Microsoft Corporation Network based management of protected data sets
US8949818B2 (en) * 2012-06-29 2015-02-03 Intel Corporation Mechanism for facilitating dynamic and trusted cloud-based extension upgrades for computing systems
US9183402B2 (en) * 2012-08-17 2015-11-10 Broadcom Corporation Protecting secure software in a multi-security-CPU system
US9384367B2 (en) * 2012-09-04 2016-07-05 Intel Corporation Measuring platform components with a single trusted platform module
DK3011444T3 (en) 2013-06-18 2018-04-16 Ciambella Ltd METHOD AND APPARATUS FOR CODE VIRTUALIZATION AND GENERATION OF REMOTE PROCESS CALLS
US9830136B2 (en) 2013-07-12 2017-11-28 Ciambella Ltd. Method and apparatus for firmware virtualization
US20150163223A1 (en) * 2013-12-09 2015-06-11 International Business Machines Corporation Managing Resources In A Distributed Computing Environment
DE102014101836A1 (de) * 2014-02-13 2015-08-13 Fujitsu Technology Solutions Intellectual Property Gmbh Verfahren zum Hochfahren eines Produktions-Computersystems
WO2015181963A1 (ja) * 2014-05-30 2015-12-03 株式会社 東芝 情報処理装置およびトラステッド・プラットフォーム・モジュールのバージョン切り替え方法
CN104123511B (zh) * 2014-07-28 2017-05-03 浪潮集团有限公司 一种可信计算服务器中的bmc安全管理方法和系统
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
CN104410636A (zh) * 2014-12-01 2015-03-11 浪潮集团有限公司 一种云计算系统中增强bmc/smc安全性的方法
CN104484185B (zh) * 2014-12-30 2018-03-20 深圳市大疆创新科技有限公司 固件生成系统及方法
KR102411608B1 (ko) 2015-07-27 2022-06-21 삼성전자주식회사 보안 네트워크 시스템 및 그 데이터 처리 방법
US20170171176A1 (en) * 2015-12-11 2017-06-15 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Maintenance credential permitting performance of just maintenance-related actions when computing device requires repair and/or maintenance
CN108604186B (zh) 2015-12-21 2021-11-16 西安姆贝拉有限公司 用于创建和管理基于控制器的远程解决方案的方法和装置
US11087249B2 (en) 2016-05-24 2021-08-10 Ciambella Ltd. Method and apparatus for triggering execution of a workflow over a network
US10798780B2 (en) 2016-08-22 2020-10-06 Ciambella Ltd. Method and apparatus for creating and managing controller based remote solutions
US9804905B1 (en) * 2016-08-25 2017-10-31 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. System, method, and computer program for communicating between a software driver and a baseboard management controller
CN106874771A (zh) * 2017-02-16 2017-06-20 浪潮(北京)电子信息产业有限公司 一种构建可信硬件信任链的方法以及装置
CN108460282A (zh) * 2017-02-22 2018-08-28 北京大学 一种基于异构多核芯片的计算机安全启动方法
US10417458B2 (en) * 2017-02-24 2019-09-17 Microsoft Technology Licensing, Llc Securing an unprotected hardware bus
WO2018170079A1 (en) 2017-03-14 2018-09-20 Ciambella Ltd. Method and apparatus for automatically generating and incorporating code in development environments
JP2019022122A (ja) 2017-07-19 2019-02-07 富士ゼロックス株式会社 情報処理装置、情報処理システム及びプログラム
CN108446564B (zh) * 2018-02-22 2020-11-03 北京航空航天大学 基于tpm模块的虚拟化度量方法及装置
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
US11206141B2 (en) 2018-09-21 2021-12-21 International Business Machines Corporation Merging multiple compute nodes with trusted platform modules utilizing provisioned node certificates
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
CN109558149A (zh) * 2018-11-30 2019-04-02 厦门亿联网络技术股份有限公司 一种基于ubl的uboot解压缩方法及系统
US11308203B2 (en) * 2019-01-11 2022-04-19 Microsoft Technology Licensing, Llc Side-channel protection
CN110674525A (zh) * 2019-09-30 2020-01-10 联想(北京)有限公司 一种电子设备及其文件处理方法
CN113792423B (zh) * 2021-09-04 2023-10-24 苏州特比姆智能科技有限公司 一种tpm设备管理的数字孪生行为约束方法及系统
CN113987599B (zh) * 2021-12-28 2022-03-22 苏州浪潮智能科技有限公司 一种固件可信根的实现方法、装置、设备和可读存储介质
CN116126477B (zh) * 2023-04-04 2023-07-25 支付宝(杭州)信息技术有限公司 计算设备中访问tpm的方法和计算设备
CN117194286B (zh) * 2023-09-08 2024-03-26 上海合芯数字科技有限公司 微控制单元、处理器、访问方法和访问系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065415A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 플랫폼 장착용 모듈 및 플랫폼 장착용 모듈을 위한 기능변경 방법
KR20100031408A (ko) * 2008-09-12 2010-03-22 포항공과대학교 산학협력단 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7200758B2 (en) 2002-10-09 2007-04-03 Intel Corporation Encapsulation of a TCPA trusted platform module functionality within a server management coprocessor subsystem
KR100929870B1 (ko) * 2002-12-04 2009-12-04 삼성전자주식회사 컴퓨터 시스템의 바이오스 보안 유지방법
US7793287B2 (en) * 2003-10-01 2010-09-07 Hewlett-Packard Development Company, L.P. Runtime virtualization and devirtualization of I/O devices by a virtual machine monitor
US7484091B2 (en) 2004-04-29 2009-01-27 International Business Machines Corporation Method and system for providing a trusted platform module in a hypervisor environment
US7480804B2 (en) * 2004-04-29 2009-01-20 International Business Machines Corporation Method and system for hierarchical platform boot measurements in a trusted computing environment
US7590867B2 (en) 2004-06-24 2009-09-15 Intel Corporation Method and apparatus for providing secure virtualization of a trusted platform module
US20060095551A1 (en) 2004-10-29 2006-05-04 Leung John C K Extensible service processor architecture
CN1988534B (zh) 2005-12-23 2011-05-25 联想(北京)有限公司 可信计算系统和在内核态下访问tpm服务的方法
US20070239748A1 (en) * 2006-03-29 2007-10-11 Smith Ned M Management of reference data for platform verification
US8095931B1 (en) * 2006-04-27 2012-01-10 Vmware, Inc. Controlling memory conditions in a virtual machine
US9122875B2 (en) * 2006-05-02 2015-09-01 International Business Machines Corporation Trusted platform module data harmonization during trusted server rendevous
JP4950195B2 (ja) 2006-07-03 2012-06-13 パナソニック株式会社 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
US8272002B2 (en) * 2006-08-18 2012-09-18 Fujitsu Limited Method and system for implementing an external trusted platform module
US7900058B2 (en) * 2006-08-31 2011-03-01 Intel Corporation Methods and arrangements for remote communications with a trusted platform module
US20080155277A1 (en) * 2006-12-26 2008-06-26 Mallik Bulusu Hardware partitioned trust
US8099786B2 (en) 2006-12-29 2012-01-17 Intel Corporation Embedded mechanism for platform vulnerability assessment
US8108498B2 (en) * 2007-07-26 2012-01-31 Dell Products, Lp System and method of enabling access to remote information handling systems
US8060876B2 (en) * 2007-08-10 2011-11-15 Intel Corporation Methods and apparatus for creating an isolated partition for a virtual trusted platform module
US8584229B2 (en) * 2007-12-21 2013-11-12 Intel Corporation Methods and apparatus supporting access to physical and virtual trusted platform modules
US9047468B2 (en) * 2007-12-28 2015-06-02 Intel Corporation Migration of full-disk encrypted virtualized storage between blade servers
US8607065B2 (en) 2008-10-10 2013-12-10 Microsoft Corporation Trusted and confidential remote TPM initialization
CN101493870B (zh) 2008-12-17 2010-10-27 武汉大学 可信平台模块测试方法
CN101477602A (zh) 2009-02-10 2009-07-08 浪潮电子信息产业股份有限公司 一种可信计算环境中远程证明的方法
JP2011122398A (ja) 2009-12-14 2011-06-23 Toda Constr Co Ltd 構造物における接合部のずれ防止方法とずれ防止部材、および構造物における接合部の構造
US20110153909A1 (en) * 2009-12-22 2011-06-23 Yao Zu Dong Efficient Nested Virtualization
US8612633B2 (en) * 2010-03-31 2013-12-17 Microsoft Corporation Virtual machine fast emulation assist
US8959363B2 (en) 2010-06-03 2015-02-17 Intel Corporation Systems, methods, and apparatus to virtualize TPM accesses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090065415A (ko) * 2007-12-17 2009-06-22 한국전자통신연구원 플랫폼 장착용 모듈 및 플랫폼 장착용 모듈을 위한 기능변경 방법
KR20100031408A (ko) * 2008-09-12 2010-03-22 포항공과대학교 산학협력단 네크워크 시스템에서 가상화 및 신뢰 플랫폼 모듈을 이용한데이터 보안 처리 방법 및 기록매체

Also Published As

Publication number Publication date
JP5503594B2 (ja) 2014-05-28
US8959363B2 (en) 2015-02-17
TWI483201B (zh) 2015-05-01
DE102011103218A1 (de) 2012-04-05
DE102011103218B4 (de) 2022-12-01
JP2011258199A (ja) 2011-12-22
US9405908B2 (en) 2016-08-02
JP2014135072A (ja) 2014-07-24
US20110302425A1 (en) 2011-12-08
WO2011153093A3 (en) 2012-03-29
US20130298250A1 (en) 2013-11-07
CN102271153B (zh) 2015-02-25
WO2011153093A2 (en) 2011-12-08
JP5972924B2 (ja) 2016-08-17
KR20110133004A (ko) 2011-12-09
TW201211918A (en) 2012-03-16
BRPI1103117A2 (pt) 2012-11-06
CN102271153A (zh) 2011-12-07

Similar Documents

Publication Publication Date Title
KR101332135B1 (ko) Tpm 액세스들을 가상화하기 위한 시스템들, 방법들 및 장치들
KR102110273B1 (ko) 체인 보안 시스템들
JP5390703B2 (ja) 隠れ実行環境における整合性検証及び証明の提供
US9934022B2 (en) Secured firmware updates
US9823934B2 (en) Firmware updates during limited time period
US9047468B2 (en) Migration of full-disk encrypted virtualized storage between blade servers
US8971538B1 (en) Firmware validation from an external channel
US8938774B2 (en) System and method for I/O port assignment and security policy application in a client hosted virtualization system
US10177934B1 (en) Firmware updates inaccessible to guests
US20070088857A1 (en) Using sequestered memory for host software communications
US9565207B1 (en) Firmware updates from an external channel
US9734325B1 (en) Hypervisor-based binding of data to cloud environment for improved security
Yao et al. CryptVMI: A flexible and encrypted virtual machine introspection system in the cloud
US11934857B2 (en) Supporting execution of a computer program by using a memory page of another computer program
US20220300314A1 (en) Hypervisor-assisted secured memory sharing among host and guest operating system

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: 20161028

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20171027

Year of fee payment: 5