KR20100080405A - 클라이언트 플랫폼들 상의 콘텐츠 보호 - Google Patents

클라이언트 플랫폼들 상의 콘텐츠 보호 Download PDF

Info

Publication number
KR20100080405A
KR20100080405A KR1020090131216A KR20090131216A KR20100080405A KR 20100080405 A KR20100080405 A KR 20100080405A KR 1020090131216 A KR1020090131216 A KR 1020090131216A KR 20090131216 A KR20090131216 A KR 20090131216A KR 20100080405 A KR20100080405 A KR 20100080405A
Authority
KR
South Korea
Prior art keywords
content
component
memory
management layer
security management
Prior art date
Application number
KR1020090131216A
Other languages
English (en)
Other versions
KR101158184B1 (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 KR20100080405A publication Critical patent/KR20100080405A/ko
Application granted granted Critical
Publication of KR101158184B1 publication Critical patent/KR101158184B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

수신 컴퓨팅 시스템 상의 멀웨어(malware)로부터 콘텐츠를 보호하는 것을 보장하는 클라이언트 보안 관리 계층 및 콘텐츠 재생기를 제공하기 위한 방법, 컴퓨터 시스템, 및 그를 위한 명령어들을 갖춘 컴퓨터 판독 가능 매체가 개시된다. 클라이언트 보안 관리 계층은 컴퓨터 시스템의 프로세서 상에서 실행되는 콘텐츠 재생기와 같은 컴포넌트를 대신하여 컴퓨터 시스템의 메모리의 보호되는 부분에 대한 액세스를 제어한다. 클라이언트 보안 관리 계층은 컴포넌트로부터 암호화된 콘텐츠를 수신하고, 컴포넌트의 무결성을 확인하고, 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하고, 컴포넌트의 무결성의 확인에 응답하여 메모리의 보호되는 부분 내에 해독된 콘텐츠 키를 배치한다. 다른 실시예들도 설명되고 청구된다.
Figure P1020090131216
보안 클라이언트 플랫폼, 컴퓨터 시스템, 멀웨어, 콘텐츠 재생기, 액세스 제어

Description

클라이언트 플랫폼들 상의 콘텐츠 보호{PROTECTING CONTENT ON CLIENT PLATFORMS}
<저작권 공시>
본 명세서에는 저작권 보호를 받는 자료가 포함되어 있다. 저작권 소유자는 그러한 자료가 특허 상표청의 파일들 또는 레코드들에 나타날 때 어느 누군가에 의한 특허 명세서의 복사 재생을 반대하지 않지만, 그 외에는 저작권에 대한 모든 권리가 보존된다.
<기술 분야>
본 발명은 일반적으로 디지털 콘텐츠의 보호에 관한 것이다.
디지털 권리 관리는 기술 및 오락 산업에 대해 어려운 과제이다. 날마다, 인터넷으로부터의 영화들 및 음악 파일들의 불법 다운로딩에 의해 수백만 달러가 소실된다. 콘텐츠 스크램블링(content scrambling) 방식들 및 향상된 액세스 콘텐츠 시스템과 같은, 지금까지 구현된 해결책들은 이러한 데이터 손실들에 대한 불충분한 보호를 제공하였다.
이러한 손실들은 악화시키는 것은 컴퓨터 시스템들의 제어를 획득하고/획득 하거나 디지털 콘텐츠를 훔치려고 하는 멀웨어에 의한 복잡하고 발전된 공격들이다. 이러한 공격들은 소프트웨어 프로그램을 파괴하려는 시도들로부터 교체 목적들을 위한 프로그램의 파괴에 이르는 다양한 상이한 형태들을 취할 수 있다. 소프트웨어 프로그램의 코드, 구성 정보, 및/또는 메인 메모리 내의 콘텐츠 그리고 전송 중에 콘텐츠를 보호하는 키들과 같은 런타임(run-time) 데이터의 보호는 기술 및 엔터테인먼트 산업에 대해 특별한 난제이다.
본 발명의 실시예들은 콘텐츠 서버로부터 수신되는 콘텐츠를 보호하고, 수신 콘텐츠 재생기에 대한 보호 서비스들을 제공하기 위한 방법, 시스템 및 그를 위한 명령어들을 갖는 컴퓨터 판독 가능 저장 매체를 제공할 수 있다. 보안 클라이언트 플랫폼이 그의 무결성(integrity)의 인증을 콘텐츠 서버에 제공한다. 이러한 무결성 인증은 콘텐츠를 훔치도록 설계된 "콘텐츠 리퍼들(content rippers)"로서 알려진 소프트웨어에 대한 보호는 물론, 보호되는 "주지된" 콘텐츠 재생기의 존재에 대한 인증을 포함한다. 콘텐츠 서버는 콘텐츠 키들을, 무결성이 보호되는 "주지된" 콘텐츠 재생기에 제공한다.
다양한 실시예들은 하나 이상의 요소를 포함할 수 있다. 요소는 일정한 동작들을 수행하도록 구성된 임의의 구조를 포함할 수 있다. 각각의 요소는 설계 파라미터들의 주어진 세트 또는 성능 제약들에 대해 요구되는 바와 같이, 하드웨어, 소프트웨어 또는 이들의 임의의 조합으로서 구현될 수 있다. 예로써, 실시예는 특정 구조에서 제한된 수의 요소들로 설명될 수 있으나, 실시예는 주어진 구현에 대해 요구되는 바에 따라 대안적인 구조들에서 더 많거나 적은 요소들을 포함할 수 있다. "하나의 실시예" 또는 "일 실시예"에 대한 임의의 언급은 그 실시예와 관련하여 설명되는 특별한 특징, 구조 또는 특성이 적어도 하나의 실시예에 포함된다는 것을 의미한다는 점에 주목할 가치가 있다. 명세서 내의 다양한 곳에서 "일 실시 예에서"라는 문구의 출현들은 이들 모두가 반드시 동일 실시예를 지칭하는 것은 아니다.
도 1은 본 발명의 일 실시예에 따른, 콘텐츠 서버로부터 수신되는 콘텐츠를 보호하기 위한 플랫폼(100)을 나타낸다. 플랫폼(100)은 실행 운영 체제(OS)(108)의 도메인일 수 있는 실행 환경(104)을 가질 수 있다. OS(108)는 이하에 더욱 상세하게 논의되는 기반 관리 모듈(116)에 의해 선택된 컴포넌트들에 제공되는 인트라 파티션(intra-partition) 메모리 액세스 보호들을 받는 소프트웨어 컴포넌트(112)와 같은 실행 환경(104) 내의 다른 컴포넌트들의 일반 동작을 실행하고 제어하도록 구성되는 컴포넌트일 수 있다.
일부 실시예들에서, 컴포넌트(112)는 감시(supervisory) 레벨 컴포넌트, 예컨대 커널 컴포넌트일 수 있다. 다양한 실시예에서, 커널 컴포넌트는 서비스들(예를 들어, 로더, 스케쥴러, 메모리 관리자 등), (예컨대, 네트워크 카드, USB(universal serial bus) 인터페이스, 디스크 드라이브 등에 대한) 확장부들/드라이버들, 또는 서비스-드라이버 하이브리드(예를 들어, 코드의 실행을 감시하기 위한 침입 검출기들)일 수 있다. 대안으로, 실시예들에서, 컴포넌트(112)는 애플리케이션 프로세스, 스레드, 또는 기타 사용자 공간 프로그램, 서비스 또는 라이브러리일 수 있다.
본 명세서에서 사용된 바와 같이, "컴포넌트"라는 용어는 원하는 출력을 얻는 데 사용될 수 있는 프로그래밍 논리 및 관련 데이터를 지칭하는 것을 의도한다. 컴포넌트라는 용어는 "모듈" 또는 "에이전트"와 동의어일 수 있으며, 하드웨어 또는 펌웨어로, 또는 예를 들어 C++, 인텔 아키텍처 32비트(IA-32) 실행 가능 코드 등과 같은 프로그래밍 언어로 작성되는, 아마도 진입(entry) 및 탈출(exit) 포인트들을 구비하는, 소프트웨어 명령어들의 집합으로 구현될 수 있는 프로그래밍 논리를 지칭할 수 있다.
소프트웨어 컴포넌트는 컴파일되어 실행 가능 프로그램에 링크되거나, 동적 링크 라이브러리에 설치되거나, BASIC과 같은 번역 언어(interpretive language)로 작성될 수 있다. 소프트웨어 컴포넌트들은 다른 컴포넌트들로부터 또는 그들 자신들로부터 호출될 수 있고/있거나 검출되는 이벤트들 또는 인터럽트들에 응답하여 호출될 수 있다는 것을 알 것이다. 소프트웨어 명령어들은 머신 액세스 가능 매체 내에 제공될 수 있으며, 머신에 의해 액세스될 때, 머신이 본 발명의 실시예들의 컴포넌트들과 관련하여 설명되는 동작들 또는 실행들을 수행하게 할 수 있다. 머신 액세스 가능 매체는 펌웨어, 예를 들어 EEPROM(electrically erasable programmable read-only memory), 또는 다른 기록 가능/기록 불가능 매체, 예를 들어 ROM(read-only memory), RAM(random access memory), 자기 디스크 저장 장치, 광학 디스크 저장 장치 등일 수 있다. 하드웨어 컴포넌트들은 게이트들 및 플립-플롭들과 같은 접속된 논리 유닛들을 포함할 수 있고/있거나 프로그래밍 가능한 게이트 어레이들 또는 프로세서들과 같은 프로그램 가능 유닛들을 포함할 수 있다는 것도 이해할 것이다. 일부 실시예들에서, 여기에 설명되는 컴포넌트들은 소프트웨어 모듈들로서 구현되지만, 하드웨어 또는 펌웨어로 표현될 수도 있다. 또한, 주 어진 수의 개별 소프트웨어/하드웨어 컴포넌트들만이 도시되고/도시되거나 설명될 수 있지만, 그러한 컴포넌트들은 본 발명의 실시예들의 사상 및 범주를 벗어나지 않고 추가 컴포넌트들 또는 더 적은 컴포넌트들에 의해 표현될 수 있다.
실행 환경(104)의 선택된 컴포넌트들의 인트라 파티셔닝에 더하여, 관리 모듈(116)은 하나 이상의 프로세서(들)(120), 네트워크 인터페이스 제어기(NIC)(124), 저장 장치(128) 및/또는 메모리(132)와 같은 하드웨어 리소스들(118)에 대한 일반 컴포넌트 액세스를 조정할 수 있다.
프로세서(들)(120)는 플랫폼(100)의 컴포넌트들의 프로그래밍 명령어들을 실행할 수 있다. 프로세스(들)(120)는 단일 및/또는 다중 코어 프로세서(들), 제어기(들), 주문형 집적 회로(ASIC)(들) 등일 수 있다.
일 실시예에서, 저장 장치(128)는 운영 체제(들), 프로그램 파일들, 구성 파일들 등과 같은 플랫폼(100) 상의 컴포넌트들의 실행을 위해 사용될 영구적 콘텐츠를 저장하기 위한 비휘발성 저장 장치를 나타낼 수 있으나, 이에 한정되는 것은 아니다. 일 실시예에서, 저장 장치(128)는 저장된 콘텐츠(136)를 포함할 수 있으며, 컴포넌트(112)에 대한 소스 콘텐츠의 영구 저장소를 나타낼 수 있다. 소스 콘텐츠의 영구 저장소는 예를 들어 실행 가능 파일들 및/또는 코드 세그먼트들, 다른 루틴들에 대한 링크들(예를 들어, 동적 링크 라이브러리(DLL)에 대한 호출), 데이터 세그먼트 등을 구비할 수 있는 실행 가능 코드 저장소를 포함할 수 있다.
다양한 실시예에서, 저장 장치(128)는 디스크들 및 관련 드라이브들(예를 들어, 자기, 광학), USB 저장 장치들 및 관련 포트들, 플래시 메모리, ROM, 비휘발성 반도체 장치 등과 같은 집적 및/또는 주변 저장 장치들을 포함할 수 있으나, 이에 한정되는 것은 아니다.
다양한 실시예에서, 저장 장치(128)는 플랫폼(100)의 물리적 일부인 저장 리소스일 수 있거나, 반드시 그 일부는 아니지만, 플랫폼(100)에 의해 액세스될 수 있다. 예를 들어, 저장 장치(128)는 플랫폼(100)에 의해 네트워크(140)를 통해 네트워크 인터페이스 제어기(124)를 경유하여 액세스될 수 있다.
예를 들어, OS(108)의 로딩 컴포넌트 또는 에이전트로부터의 로드 요청시, 관리 모듈(116) 및/또는 OS(108)는 저장 장치(128)로부터 저장된 콘텐츠(136)를 실행 환경(104) 내의 컴포넌트(112)의 동작을 위한 액티브 콘텐츠(144)로서 메모리(132) 내에 로딩할 수 있다.
다양한 실시예에서, 메모리(132)는 플랫폼(100) 상의 컴포넌트들의 동작을 위한 액티브 콘텐츠를 제공하는 휘발성 저장 장치일 수 있다. 다양한 실시예에서, 메모리(132)는 RAM, DRAM(dynamic RAM), SRAM(static RAM), SDRAM(synchronous DRAM), DDRRAM(dual-data rate RAM), 캐시 등을 포함할 수 있다.
일부 실시예들에서, 메모리(132)는 그 안에 저장된 콘텐츠를 다수의 메모리 위치 그룹으로 조직화할 수 있다. 고정 및/또는 가변 크기를 가질 수 있는 이러한 조직화된 그룹들은 가상 메모리 관리를 용이하게 할 수 있다. 메모리 위치들의 그룹들은 페이지들, 세그먼트들 또는 이들의 조합일 수 있다.
페이징을 이용하는 가상 메모리는 보다 작은 물리적 메모리 페이지를 갖는 큰 논리/선형 어드레스 공간의 에뮬레이션을 용이하게 할 수 있다. 따라서, 실행 환경(104)은 컴포넌트들이 동작할 수 있는 가상 실행 환경을 제공할 수 있으며, 이어서 컴포넌트들은 메모리(132)의 물리 페이지들로 맵핑될 수 있다. OS(108) 및/또는 관리 모듈(116)에 의해 유지되는 페이지 테이블들은 실행 환경(104)의 컴포넌트들에 의해 제공되는 논리/선형 어드레스들을 메모리(132)의 물리 어드레스로 맵핑할 수 있다.
다양한 실시예에서, 컴포넌트(112) 또는 그의 부분들은 컴포넌트(112)에 보호 서비스들을 제공하기 위한 인트라 파티셔닝을 위해 선택될 수 있다. 예를 들어, 컴포넌트(112)는 콘텐츠 서버로부터 콘텐츠를 수신하기 위한 콘텐츠 재생기를 나타낼 수 있다. 관리 모듈(116)은 컴포넌트(112)에 대한 OS(108) 또는 다른 컴포넌트들에 의한 액세스를 제어하기 위해 컴포넌트(112)의 부분들을 식별하고 파티셔닝할 수 있다. 파티셔닝된 부분들은 특정 컴포넌트의 임의 부분, 최대로는 전부를 포함할 수 있다. 파티셔닝된 부분은 동일 실행 환경 내의 다른 컴포넌트들로부터 물리적으로 또는 가상적으로 격리될 수 있으며, 따라서 실행 환경내(intr-execution environment) 액세스들은 필요에 따라 기반 플랫폼에 의해 모니터링되고 제한될 수 있다. 인트라 파티셔닝은, 컴포넌트(112)가 완전히 분리된 실행 환경에서 분리된 OS와 더불어 동작하는 것을 필요로 하지 않고, 예를 들어 OS(108)로부터의 컴포넌트(112)의 격리를 용이하게 할 수 있다. 또한, 인트라 파티셔닝은 예를 들어 멀웨어, 루트키트(rootkit), 중대한 런타임 고장 등에 의해 소정의 방식으로 위험해질 수 있는 실행 환경에서 컴포넌트(112)에 대해 다른 컴포넌트들로부터의 소정 레벨의 보호, 심지어 특권 레벨과 유사하거나 그보다 높은 레벨들의 보호를 제공할 수 있다. 본 발명의 실시예들은 컴포넌트(112)와 실행 환경(104)의 다른 컴포넌트들, 예를 들어 OS(108) 사이에 허락된 상호작용들을 계속 허가하면서 보호 서비스들을 제공할 수 있다. 컴포넌트(112)에 대한 OS(108)에 의한 액세스의 제어는 다양한 레벨의 액세스 제한을 포함할 수 있다.
다양한 실시예에서, 실행 환경 내의 콘텐츠를 보호하기 위한 컴포넌트들의 인트라 파티셔닝은 가상화 기술(VT) 인에이블드 플랫폼에서 동작하는 가상 머신들과 같은 다수의 실행 환경들을 갖는 플랫폼에서 유용할 수 있다. 그러한 실시예에서, 관리 모듈은 가상 머신 모니터(VMM)를 포함하거나 그 일부일 수 있다.
하드웨어 및 하이퍼바이저의 플랫폼 인증은 TCG(Trusted Computing Group) 표준의 본문에 정의되어 있다. TCG에 의해 정의되는 인증 메커니즘들은 "평가되는 코드"가 클라이언트 플랫폼 상에서 실행되고 있다는 사실에 대한 인증을 제공하는 것을 포함한다. 코드는 코드의 현재 버전과 코드의 오리지널 "골드 표준"을 비교함으로써 평가된다. 오리지널 "골드 표준"으로부터의 코드의 임의의 변형들은 코드가 손상되었다는, 아마도 바이러스 또는 다른 멀웨어에 의해 개서(overwrite)되었다는 지시들이다.
TCG 표준들 하에서 플랫폼 인증을 위해 통상적으로 평가되는 코드는 시스템 하드웨어 컴포넌트들 및 하이퍼바이저 코드를 식별하고 초기화하는 BIOS 코드와 같은 코드를 포함한다. 하이퍼바이저는 다수의 운영 체제가 호스트 컴퓨터 시스템 상에서 실행되는 것을 가능하게 하며, "가상 머신 모니터"로도 지칭된다. 플랫폼 인증을 위한 평가는 오늘날 이용 가능한 운영 체제들 및 애플리케이션 프로그램들 의 무수한 버전들로 인해 통상적으로 운영 체제로 또는 애플리케이션 프로그램들로 확장되지 않는다. 이용 가능한 운영 체제들 및 애플리케이션 프로그램들의 그렇게 많은 버전과 관련하여, 평가되는 코드와의 비교를 위해 코드의 각각의 버전의 확인된 오리지널 "골드 표준" 사본을 유지하는 것은 관리 불가능한 부담으로서 간주된다.
"Secure Vault Service for Software Components within an Execution Environment"라는 제목으로 2007년 8월 2일자로 출원된 특허 출원 11/229,126이 본 출원의 양수인에게 양도되었고, 그 전체가 본 명세서에 참고 문헌으로 포함된다. 특허 출원 11/229,126은 가상 머신 내의 운영 체제 및 애플리케이션 프로그램 컴포넌트들을 평가하고 보호하는 데 사용될 수 있는 보안 금고 서비스(secure vault service)를 설명하고 있다. 보안 금고 서비스는 운영 체제보다 높은 특권 레벨에서 실행되는 가상 머신 모니터에 의해 제공된다. 따라서, 보안 금고 서비스는 운영 체제가 손상된 시스템상에서도 데이터 및 프로그램 컴포넌트들을 보호할 수 있다. 보안 금고 서비스를 제공하는 가상 머신 모니터는 본 명세서에서 "클라이언트 보안 관리 계층"으로 지칭된다.
도 2는 본 발명의 일 실시예에 따른, 컴포넌트들에 대해 병렬 실행 환경들 및 보호 서비스들을 제공하기 위해 가상화를 이용하는 플랫폼(200)을 나타낸다. 다양한 실시예에서, 플랫폼(200)은 도 1의 플랫폼(100)과 유사하거나, 실질적으로 교환 가능할 수 있다. 또한, 후술하는 요소들은 전술한 유사한 명칭의 요소들과 유사하거나, 실질적으로 교환 가능하며, 그 반대도 마찬가지다.
이 실시예에서, 플랫폼(200) 상의 관리 모듈, 예를 들어 가상 머신 모니터(VMM)(204)는 플랫폼 하드웨어(208), 예를 들어 하나 이상의 프로세서(들)(212), 네트워크 인터페이스 제어기(NIC)(216), 저장 장치(220) 및/또는 메모리(224)의 다수의 추상화들 및/또는 뷰들을 하나 이상의 독립적으로 동작하는 실행 환경 또는 "가상 머신(VM)", 예를 들어 게스트 VM(228) 및 보조 VM(232)에 제공할 수 있다. 보조 VM(232)은 게스트 VM(228)으로부터 격리되어, 독립적으로 그리고 안전하게 코드를 실행하도록 구성될 수 있으며, 게스트 VM(228)의 컴포넌트들이 보조 VM(232)의 컴포넌트들을 변경하거나, 수정하거나, 판독하거나, 다른 방법으로 영향을 주는 동작들을 수행하는 것을 방지할 수 있다. 플랫폼(200)은 2개의 VM들을 도시하지만, 다른 실시예들은 임의 수의 VM을 이용할 수 있다.
게스트 VM(228) 및 보조 VM(232)에서 동작하는 컴포넌트들은 이들이 가상 머신이 아니라 전용 컴퓨터 상에서 실행되는 것처럼 각각 동작할 수 있다. 즉, 게스트 VM(228) 및 보조 VM(232)에서 동작하는 컴포넌트들은 다양한 이벤트들을 제어하고 하드웨어(208)에 대한 완전한 액세스를 갖기를 각각 기대할 수 있다. VMM(204)은 하드웨어(208)에 대한 VM 액세스를 관리할 수 있다. VMM(204)은 소프트웨어(예를 들어, 독립 프로그램 및/또는 호스트 운영 체제의 컴포넌트로서), 하드웨어, 펌웨어 및/또는 이들의 임의의 조합으로 구현될 수 있다.
게스트 VM(228)은 OS(236) 및 컴포넌트(240)를 포함할 수 있다. 지정된 이벤트 시에, VMM(204)은 컴포넌트(240)의 부분들을 식별하고 파티셔닝하여, OS(236) 및 다른 컴포넌트들에 의한 파티셔닝된 부분들에 대한 액세스를 제어할 수 있다. 이러한 파티셔닝된 부분들 중 하나 이상은 콘텐츠 서버로부터 콘텐츠를 수신하기 위한 콘텐츠 재생기를 나타내는 데 사용될 수 있다. 다양한 실시예에서, 지정된 이벤트는 저장된 콘텐츠(244)가 저장 장치(220)에서 메모리(224)로 액티브 콘텐츠(248)로서 로딩될 때, 또는 컴포넌트(240)가 보호를 요청할 때일 수 있다. 그러나, 다양한 실시예에서, 다른 지정된 이벤트들이 추가적으로/대안적으로 사용될 수 있다.
컴포넌트(240)는 보호를 위해 VMM(204)에, 더 구체적으로는 VMM(204)의 무결성 서비스 모듈(ISM)(252)에 등록할 수 있다. 다양한 실시예에서, 등록은 등록 이벤트의 발생시에, 예를 들어 액티브 콘텐츠(248)의 메모리(224) 내로의 로딩 시에, 주기적으로 및/또는 일부 다른 이벤트 기반 방식으로 발생될 수 있다. 다양한 실시예에서, 등록은 컴포넌트(240), VM(228) 내의 다른 컴포넌트, 예를 들어 OS(236), VMM(204) 또는 VM(232)의 컴포넌트에 의해 개시될 수 있다.
등록의 수신시, ISM(252)은 VM(232)에서 동작하는 무결성 평가 모듈(IMM)(256)과 협력하여, 컴포넌트(240)의 무결성을 인증 및 검증할 수 있다. 컴포넌트(240)의 무결성의 인증 및 검증은 허가되지 않은 변경 및/또는 악의적인 종료를 방지하도록 조력할 수 있으며, 승인된 컴포넌트들만이 관리자, 사용자 또는 다른 정책에 의해 정의되는 바와 같은 보호를 제공받을 수 있음을 보장할 수 있다. IMM(256)은 OS(260)와 관련하여 VM 도메인(232)에서 또는 개별 하드웨어에서 동작할 수 있으며, 따라서 OS(236)와 충분히 무관할 수 있다. VM(228)의 환경 밖에서 실행됨으로써, IMM(256)은 OS(236)와 관련해서는 존재하지 않거나 아마도 손상될 수 있는 정확하고 신뢰성 있는 메모리 평가 능력들을 갖출 수 있다.
IMM(256)은 통과, 실패, 조건부 통과, 조건부 실패 등과 같은 검증 요청에 대한 응답을 ISM(252)에 제공할 수 있다. 다양한 실시예에서, 조건들(qualifications)은 통과와 실패 사이의 무결성 검증의 정도들을 반영할 수 있다. IMM(256)은 컴포넌트 및 그의 데이터를 효과적으로 식별하거나 인증하며, 컴포넌트가 메모리 내에 예상되는 정확한 형태를 갖는 것을 보증한다.
일부 실시예들에서, 액티브 콘텐츠(248)는 컴포넌트(240)의 무결성의 검증에 사용될 정보의 집합일 수 있는 무결성 목록(manifest)을 포함할 수 있다. 다양한 실시예에서, 무결성 목록은 하나 이상의 무결성 검사 값 및/또는 저장된 콘텐츠(244)를 커버하는 재배치 해결(fix-up) 위치들, 예를 들어 코드 저장소 및/또는 정적 및/또는 구성 설정들/데이터를 포함할 수 있다. IMM(256)은 액티브 콘텐츠(248)로부터 무결성 목록에 액세스할 수 있고, 컴포넌트(240)가 무결성 목록에 전체적으로 또는 부분적으로 대응함을 검증할 수 있다. IMM(256)은 무결성 목록 구조에 대한 암호 서명을 검증하는 무결성 목록 자체의 진정성을 검증하여, 무결성 목록이 그의 올바른 형태로부터 변경되지 않은 것을 보장할 수 있다. 예를 들어, 바이트 단위의 분석을 통해, 또는 암호 해시들의 분석을 통해 이미지들의 비교가 행해질 수 있다.
다양한 실시예에서, IMM(256)은 예를 들어 직접 메모리 액세스(DAM) 또는 직접 물리 메모리 액세스를 통해 메모리(224)에서 직접 액티브 콘텐츠(248)를 검색할 수 있다. 다양한 실시예에서, 컴포넌트(240)의 선형 어드레스는 예를 들어 ISM(252)을 통해 IMM(256)에 제공될 수 있으며, IMM(256)은 가상 대 물리 맵핑을 수행하여, 액티브 콘텐츠(248)의 물리 메모리 위치들을 식별할 수 있다. 일 실시예에서, VMM(204)은 액티브 콘텐츠(248)에 대한 액세스를 제공하기 위해 IMM(256)에 특수 인터페이스들을 제공할 수 있다.
다양한 실시예에서, 액티브 콘텐츠(248)의 무결성 평가는 최초 등록시에, 주기적으로 그리고/또는 컴포넌트(240)가 실행되고 있는 동안에 일부 다른 이벤트 기반 방식으로 수행될 수 있다. 최초 등록 요청 또는 이벤트 처리 요청시의 무결성 평가는 액티브 콘텐츠(248) 및/또는 저장된 콘텐츠(244)의 초기 상태가 예상대로 콘텐츠가 제조되었거나 최종 로딩된 때의 콘텐츠의 상태에 기초하는지를 판정하는 데 도움이 될 수 있다. 주기적 또는 이벤트 기반 무결성 평가들은 액티브 콘텐츠(248) 및/또는 저장된 콘텐츠(244)의 보호되는 속성들을 부적절하게 변경하는 공격들을 검출하는 데 도움이 될 수 있다.
컴포넌트들의 무결성 평가에 대한 추가 상세들은 "Signed Manifest for Run-time Verification of Software Program Identity and Integrity"라는 제목으로 2005년 6월 30일자로 출원된 미국 특허 출원 번호 11/173,851; "Identifier Associated with memory Locations for Managing Memory Accesses"라는 제목으로 2005년 12월 30일자로 출원된 미국 특허 출원 번호 11/322,669; 및 "Intra-Partitioning of Software Components within an Execution Environment"라는 제목으로 2006년 3월 30일자로 출원된 미국 특허 출원 번호 11/395,488에 설명되어 있으며, 이들 특허 출원들은 그 전체가 본 명세서에 참고 문헌으로 포함된다.
도 2를 다시 참조하면, ISM(252)은 액티브 컴포넌트(248)의 무결성의 검증 및 메모리 내의 위치를 반영하는 응답을 IMM(256)으로부터 수신할 수 있다. 검증에 실패한 경우, ISM(252)은 요청을 거절하고 경보를 발동할 수 있다. 검증에 성공한 경우, ISM(252)은 메모리 관리자(264)와 협력하여, 보호 서비스들을 위해 컴포넌트(240)의 부분들을 인트라 파티셔닝할 수 있다. 여기서, 보호는 메모리 내의 금고 또는 은닉된 페이지들 주위에 설정될 수 있으며, 따라서 이들은 검증된 컴포넌트에 의해서만 그리고/또는 컴포넌트 자체의 전체의 주위에서만 액세스될 수 있다.
도 2는 가상 파티션들인 실행 환경들을 도시하고 있지만, 다른 실시예들은 다른 메커니즘들을 통해, 예를 들어 서비스 프로세서, (예를 들어, 시스템 관리 모드(SMM) 또는 보안 실행 모드(SMX) 등과 같은) 보호 실행 모드 및/또는 임베드된 마이크로컨트롤러를 이용하여 상이한 실행 환경들을 제공할 수 있다. 다양한 실시예에서, 위에서 보인 바와 같은 가상화된 파티션(예를 들어, 가상화 기술(VT) 방식에서의 가상 머신), 및/또는 완전히 분리된 하드웨어 파티션(예를 들어, 능동 관리 기술(AMT), "매니지어빌리티 엔진(manageability engine)(ME)", 격리된 플랫폼 자원들을 이용하는 플랫폼 자원 계층(PRL), 시스템 관리 모드(SMM) 및/또는 다른 동등하거나 유사한 기술들을 이용함)을 포함하는 각종의 상이한 유형의 파티션들을 통해 호스트 환경으로부터 보조 환경이 파티셔닝될 수 있다. 다양한 실시예들에서, AMT, ME 및 PRL 기술들을 구현하기 위해 VT 플랫폼이 또한 사용될 수 있다.
도 1 및 2와 관련하여 전술한 플랫폼들은 콘텐츠 서버로부터 수신되는 콘텐 츠를 보호하고 수신 콘텐츠 재생기에 대한 보호 서비스들을 제공하는 데 사용될 수 있다.
도 3은 본 발명의 일 실시예에 따른 보안 플랫폼(300)을 위한 아키텍처를 나타내는 블록도이다. 보안 플랫폼(300)은 그의 무결성에 대한 인증을 콘텐츠 서버(360)와 같은 원격 처리 시스템에 제공한다. 이러한 무결성 인증은 콘텐츠를 훔치도록 설계된 "콘텐츠 리퍼들"로서 알려진 소프트웨어에 대한 보호는 물론, 보호되는 "주지된" 콘텐츠 재생기(330)의 존재에 대한 인증을 포함한다. 콘텐츠 서버(360)는 암호화된 콘텐츠를 콘텐츠 키들과 함께, 무결성이 보호되는 "주지된" 콘텐츠 재생기(330)에 제공한다. 보안 플랫폼(300)은 시스템 메모리(340) 내의 콘텐츠 및 콘텐츠 키들을 보호하기 위한 클라이언트 보안 관리 계층(310)을 포함한다. 콘텐츠 키들은 클라이언트 보안 관리 계층(310)에 의해, 검증되고 확인된 코드를 갖는 허가된 "주지된" 콘텐츠 재생기(330)로만 릴리스된다.
클라이언트 보안 관리 계층(310)은 메모리(340) 내의 콘텐츠 재생기에 대한 메모리의 보호 부분(342) 내의 콘텐츠 재생기의 코드, 데이터 및 프레임 버퍼들의 보호를 제공한다. 예를 들어, 콘텐츠 재생기(330)에 의한 사용을 위해 운영 체제 커널(320)에 의해 할당되는 보호되는 코드(344), 보호되는 데이터(346) 및 보호되는 프레임 버퍼 메모리(348)는 콘텐츠 재생기(330)에 의해서만 액세스될 수 있으며, 다른 애플리케이션들로부터 격리된다. 클라이언트 보안 관리 계층(310)은 콘텐츠 재생기(330)에 의해 프레임 버퍼들 내에 배치된 프레임들을 가로채거나, 메모리(340)를 판독하거나, 영구 저장 장치로부터 또는 통신 링크(350)와 같은 네트워 크 채널로부터 파일을 판독함으로써 콘텐츠가 "도난"될 수 없음을 보장한다. 콘텐츠 재생기에 대한 메모리의 보호 부분(342)은 허가되지 않은 애플리케이션들에 의한 액세스로부터는 물론, 운영 체제에 의한 액세스로부터 보호된다.
보안 플랫폼(300)은 전술한 특허 출원 11/229,126의 클라이언트 보안 관리 계층의 능력들을 이용하여, 클라이언트 콘텐츠 재생기(330), 보호되는 프레임 버퍼 메모리(348)를 포함하는, 클라이언트 콘텐츠 재생기(330)에 의해 사용되는 메모리(340), 및 보호되는 코드(344) 및 보호되는 데이터(346)와 같은, 메모리(340) 내에 저장된 데이터를 평가하고 보호할 수 있다. 또한, 보안 플랫폼(300)은 클라이언트 보안 관리 계층(310)에 의한 플랫폼 인증을 이용하여, 동적 콘텐츠가 클라이언트 플랫폼(300) 상에서 보호될 것임을 콘텐츠 서버(360)와 같은 콘텐츠 제공자들에게 보장할 수 있다.
보안 플랫폼(300)은, 콘텐츠의 허가된 사용자가 악의를 갖거나 클라이언트 플랫폼(300)에 멀웨어가 설치된 경우에도, 원격 서버에 의해 제공되는 콘텐츠가 허가되지 않은 방식으로 복제될 수 없음을 원격 콘텐츠 서버(360)에게 확인시킨다. 이러한 확인은 클라이언트 보안 관리 계층(310)이 콘텐츠가 저장된 메모리(340)에 대한 허가되지 않은 액세스를 (콘텐츠 재생기에 대한 메모리의 보호 부분(342)을 이용하여) 방지하기 때문에 제공될 수 있다. 확인에 응답하여, 콘텐츠 서버(360)는 콘텐츠 키로 암호화된 콘텐츠를 클라이언트 플랫폼(300)에 제공한다. 클라이언트 보안 관리 계층(310)에 의하여 보안 플랫폼(300)에서 제공되는 보호들로 인해, 허가된 사용자조차도 콘텐츠 리핑(ripping) 소프트웨어를 이용하여 콘텐츠의 불법 복사를 행할 수 없다.
일 실시예에서, 콘텐츠 재생기(330)는 사용자를 특정 하드웨어 사례로 한정하지 않고 하나의 플랫폼에서 다른 플랫폼으로 콘텐츠 키들을 전송하도록 구성된다. 이러한 이동 능력은 예를 들어 시스템 고장의 경우에 이용될 수 있으며, 따라서 주지되고 검증된 콘텐츠 재생기(330)가 상이한 하드웨어 상에 재설치될 수 있다. 그러한 이동은 콘텐츠 재생기(330)에 대한 인증 요구에 더하여 새로운 하드웨어 플랫폼이 평가되고, 검증되고, 인증되는 것을 필요로 할 것이다. 다른 실시예에서, 보안 플랫폼(300)은 하나의 플랫폼 상의 허가된 콘텐츠 재생기(330)로부터 다른 플랫폼으로 콘텐츠 키들의 전달을 가능하게 하도록 구성되는 또 하나의 허가되고 보호되는 애플리케이션(도시되지 않음)을 포함한다. 플랫폼의 평가 및 인증은 아래에 더 상세히 설명된다.
일 실시예에서, 보안 플랫폼(300)은 플랫폼의 보안 능력을 향상시키기 위한 하드웨어 확장을 제공하는 Intel® Trusted Execution Technology(TXT) 플랫폼인 플랫폼 하드웨어(302)를 포함한다. 평가된 부트가 BIOS에서 인에이블되어, 플랫폼 인증 능력을 제공한다. 평가된 부트를 인에이블링함으로써, 시스템 리셋 명령어에 의해 시작되는 부트 프로세스 동안에 실행되는 모든 명령어들이 평가되고, 평가들이 기록된다. 이어서, 명령어들이 예상되는 소프트웨어 및 펌웨어와 일치하는지를 확인하기 위하여, 평가들이 예상되는 소프트웨어 및 펌웨어의 "골드 표준" 사본과 비교될 수 있다.
또한, 일 실시예에서, 플랫폼 하드웨어(302)는 사용자에 의해 인에이블된 신뢰 플랫폼 모듈(TPM)(304)을 포함한다. TPM은 플랫폼(300) 내에서 기능하므로, TPM의 기능은 이어지는 TPM(304)의 설명에서 일반적으로 설명될 것이다. TPM은 하드웨어 컴포넌트, 통상적으로는 마이크로컨트롤러로서, 처리 시스템 내에 위치하며, 처리 시스템의 보안을 향상시키기 위한 다양한 기능 및 서비스를 제공한다. TPM은 인터넷의 www.trustedcomputinggroup.org/home에서 입수할 수 있는, 2003년 10월 2일자의 Trusted Computing Group(TCG) TPM 사양 버전 1.2(이하, "TMP 사양")와 같은 사양들에 따라 구현될 수 있다.
TCG-컴플라이언트 TMP은 키들, 패스워드들 및 디지털 인증서들을 안전하게 저장한다. TPM은 디지털 인증서들에서 사용하기 위한 키들을 생성하고, 디지털 서명을 생성하고, 암호화를 제공할 수 있는 핵심 보안 기술들을 제공한다. 보안 동작들은 정의된 인터페이스들을 이용하여 보안 서브시스템을 통해 액세스되고 제어된다. 하드 디스크 암호화, 보안 이메일 및 식별/액세스 관리와 같은 애플리케이션들은 TPM에 의해 제공되는 보안 기능들로부터 이익을 얻는다.
TPM은 프로세서(들) 및 칩셋을 포함하는 플랫폼의 하드웨어 컴포넌트들은 물론, 펌웨어 및 운영 체제와 같은 플랫폼 내에 상주하는 소프트웨어와 같은 특성들에 기초하여 플랫폼의 식별 및/또는 무결성을 인증한다. TPM은 소프트웨어 프로세스들의 감사 및 기록은 물론, 플랫폼 부트 무결성, 파일 무결성 및 소프트웨어 라이센싱의 검증도 지원할 수 있다. TPM은 종종 플랫폼에 대한 신뢰의 근거를 제공하는 것으로서 설명된다.
TPM은 플랫폼의 구성에 대한 정보를 저장함으로써 보안 기능을 제공한다. 이어서, 이러한 정보는 TPM의 주요 기능들, 즉 플랫폼 인증 및 보호되는 저장 양자를 위해 사용될 수 있다. 플랫폼은 원격 엔티티가 플랫폼의 신뢰성에 대한 결정을 행할 수 있게 하는 데 필요한 정보를 원격 엔티티에 제공할 수 있다. 플랫폼은 또한 키들 또는 민감한 데이터가 시스템이 공지된 "양호한" 구성에 있는 동안에만 릴리스되는 것을 보장하도록 TPM에 지시할 수 있다.
플랫폼 상태를 저장하기 위하여, TPM은 플랫폼 구성 레지스터들(도 3의 TPM(304)의 PCR(306)과 같은 PCR들)을 이용하여, 플랫폼에 대한 소프트웨어 및 구성 정보의 160비트 SHA1 (보안 해싱 알고리즘 1) 해시들의 형태로 평가들을 저장한다. 이러한 평가들은 부트 블록에서 시작된다. 각각의 부트 컴포넌트는 다음 부트 컴포넌트를 평가하여 그를 TPM에 기록하며, 이어서 운영 체제가 그의 코어의 평가를 인계할 때까지 그 컴포넌트를 론칭한다(launch). PCR들에 대한 각각의 기입은 이전 평가를 개서하는 것이 아니라 레지스터에 평가를 추가하는 것이므로, 어떠한 엔티티도 이전 컴포넌트에 의해 행해진 그의 코드의 평가를 변경할 수 없다. 따라서, 평가들의 체인이 형성되며, 따라서 (평가에 대한 신뢰의 근거로서 알려진) 체인의 시작 및 각각의 링크가 신뢰성이 있는 경우, 전체 체인은 신뢰성을 갖는다.
인증은 플랫폼이 그의 구성을 신뢰성 있는 방식으로 원격 당사자에게 보고할 수 있게 하는 TPM 기능들 및 프로토콜들의 세트를 지칭한다. 예를 들어, TPM은 플랫폼 상태를 저장하는 데 사용되는 PCR들에 서명하는 능력을 제공한다. 예를 들어, 플랫폼은 인증 식별 키(AIK)를 이용하여, PCR들에 서명할 수 있다. 그러한 서 명된 PCR들은 인용문으로서 지칭될 수 있다.
인용문이 실제 TPM에 의해 서명되었다는 증거를 원격 엔티티에 제공하기 위하여, 각각의 TPM은 한 세트의 증명서들을 갖는다. 예를 들어, TPM 제조자에 의해 서명된 배서 증명서는 TPM이 TPM 사양을 충족시킴을 말한다. 또한, 제조자는 배서 키(EK)로서 알려진 고유 키를 TPM에 저장하며, 제조자는 EK를 이용하여 배서 증명서에 서명한다. 이론적으로, EK는 PCR들의 인용문에 서명하는 데 직접 사용될 수 있다. 그러나, EK는 고유하므로, 일부 구현들에서는 프라이버시를 제공하기 위하여 제삼자가 대신 사용된다. 구체적으로, 플랫폼은 프라이버시 인증 당국(CA)으로 알려진 제삼자를 이용하여 각각의 AIK에 대한 식별 증명서를 생성한다. TCG는 TPM이 EK 및 배서 증명서를 이용하여 TPM이 실제 TPM임을 프라이버시 CA에게 증명하는 것을 가능하게 하는 프로토콜을 정의하였다. 그러면, 프라이버시 CA는 TPM이 그가 소유하고 있다고 주장하는 AIK들에 대한 식별 증명서들을 생성한다.
원격 엔티티가 TPM의 제조자, 프라이버시 CA 및 평가에 대한 신뢰의 근거를 신뢰하는 것으로 가정하면, 식별 증명서가 수반된 AIK에 의해 서명된 인용문은 플랫폼의 현재 상태의 암호 증거이다. 신뢰되는 플랫폼의 원격 인증을 가능하게 하는 데 사용될 수 있는 또 하나의 암호 프로토콜은 직접 익명 인증(DAA)이다.
TPM이 제공하는 또 다른 세트의 서비스들은 키들 및 다른 데이터의 보안 저장이다. TPM은, (a) 요청자가 비밀 SHA1 해시를 통해 허가를 제공하고, (b) PCR들에 의해 결정된 바와 같은 현재의 구성이 "양호한" 상태를 지시하는 경우에만, 그가 사용을 허가하는 RSA(Rivest-Shamir-Adleman) 키들을 생성할 수 있다. 이러한 기능은 플랫폼이 데이터를 암호화하는 것을 가능하게 하며, 따라서 머신이 위험에 처하거나, 외부 매체로부터 부팅되거나, 또는 다른 방법으로 손상되는 경우에, 데이터가 액세스될 수 없는 상태로 유지될 것이다.
보안 저장과 같은 서비스들을 지원하기 위하여, TPM은 상이한 동작들에 대해 단일 목적 유형들을 갖는 키들을 생성한다. 유형 EK의 키만이 프라이버시 CA로부터 식별 증명서들을 해독하는 데 이용 가능하다. AIK들은 다른 키들을 서명하고 PCR들을 인용하는 데 사용된다. 저장 키(SK)들은 다른 키들을 보호하거나 데이터를 "봉인"하는 데 사용되는데, 이는 패스워드 또는 PCR 바인딩들을 이용하여 데이터를 보호하는 데이터의 특수 암호화이다. 바인딩 키(BK)들은 임의의 데이터를 암호화하고, 데이터를 TPM 바인딩된 데이터 구조로 변환하는 데 사용된다. 서명 키(SigK)들은 임의의 데이터를 서명하는 데 사용된다.
도 3을 다시 참조하면, 일 실시예에서, 클라이언트 보안 관리 계층(310)은 수신된 콘텐츠가 보호됨을 인증하는 플랫폼 인증을 콘텐츠 서버(360)에 제공한다. 이에 응답하여, 콘텐츠 서버(360)는 암호화된 콘텐츠를 암호화된 콘텐츠 키와 함께 제공한다. 일 실시예에서, 콘텐츠 키는 클라이언트 보안 관리 계층(310)에 대한 인증 식별자 키(AIK)의 공개 부분을 이용하여 암호화된다. 콘텐츠, 암호화된 콘텐츠 키 및 콘텐츠 정책이 클라이언트 콘텐츠 재생기(330)로 전송된다. 클라이언트 콘텐츠 재생기(330)는 그의 무결성을 클라이언트 보안 관리 계층(310)에 증명하며, 클라이언트 보안 관리 계층(310)은 해독된 콘텐츠 키를 보호되는 메모리(342) 내에서 허가된 클라이언트 콘텐츠 재생기(330)에 제공한다. 클라이언트 보안 관리 계 층(310)에 의한 해독된 콘텐츠 키의 제공은 콘텐츠 재생기(330)에 대해 클라이언트 보안 관리 계층(310)에 의해 유지되는 정책들을 고려할 수 있다. 클라이언트 콘텐츠 재생기(330)는 콘텐츠를 해독하고, 콘텐츠 재생기(330)에 의한 사용을 위해 보호되는 콘텐츠 재생기에 대한 메모리의 보호 부분(342) 내에 있는 보호되는 프레임 버퍼 메모리(348)로 콘텐츠를 렌더링한다. 결과적으로, 콘텐츠 리퍼 소프트웨어는 영구 저장 장치, 메모리(340), 보호되는 프레임 버퍼 메모리(348) 또는 네트워크 채널(350) 중 어느 것으로부터도 콘텐츠를 훔칠 수 없다. 이러한 메커니즘은 콘텐츠 보호를 위해 그래픽 하드웨어에서의 암호화를 가능하게 하기 위한 비싼 실리콘 게이트들의 필요를 없애며, 개별 또는 집적 그래픽 어댑터들에 걸쳐 작동한다.
일 실시예에서, 플랫폼 하드웨어(302)의 TPM(304)은 서명을 위한 인증 식별 키(AIK) 및 암호화를 위한 AIK를 갖는다. 이러한 AIK들은 PCR들(306)에 저장될 수 있으며, 프라이버시 인증 당국에 의해 또는 DAA를 이용하여 인증될 수 있다. TPM(304)은 특히 클라이언트 보안 관리 계층 키(316)로서 도시된 클라이언트 보안 관리 계층(310)에 대한 AIK를 취득할 수도 있다. 클라이언트 보안 관리 계층(310)은 클라이언트 보안 관리 계층 키(316)를 이용하여, 콘텐츠 서버(360)와 같은 원격 처리 시스템에 대해 플랫폼(300)의 신뢰성을 표명한다.
컴퓨터 시스템 내의 상이한 아키텍처의 컴포넌트들이 리소스들에 대한 상이한 액세스 레벨들을 갖는다는 것을 이해함으로써, 플랫폼(300)의 아키텍처 내에서의 클라이언트 보안 관리 계층(310)의 역할이 더 이해될 수 있다. 보호 링은 컴퓨터 시스템의 아키텍처 내에서의 특권의 한 세트의 계층적 레벨들 또는 계층들 중 하나이다. 특권의 사용은 일반적으로, 펌웨어 레벨에서 상이한 프로세서 모드들을 제공하는 일부 프로세서 아키텍처들에 의해 하드웨어 방식(hardware-enforced)으로 실시된다. 링들은 최상위 특권(최고 신뢰, 일반적으로 0번)에서 최하위 특권(최저 신뢰, 일반적으로 최고 링 번호를 가짐)까지의 계층 구조로 구성된다. 대부분의 운영 체제들에서, 링 0은 최상위 특권을 갖는 레벨이며, 프로세서 및 메모리와 같은 물리 하드웨어와 가장 직접 상호작용한다. 인텔 가상화 기술(VT-x) 플랫폼은 이러한 개념을 링 0 레벨보다 더 신뢰되는 "루트(root)" 특권 레벨을 포함하도록 확장한다. 루트 특권 레벨에서 실행되는 코드는 플랫폼의 부팅시에 평가된다. 일 실시예에서, 도 3에 도시된 바와 같은 루트 특권 레벨은 인텔 VT-x 플랫폼에서 정의된 바와 같은 루트 특권 레벨이지만, 본 발명은 그것으로 한정되지 않는다. 클라이언트 보안 관리 계층(310)은 전통적인 운영 체제 커널 코드에 의해 사용되는 링 0 레벨보다 더 신뢰되는 특권 레벨에서 특정 동작들이 발생하게 할 수 있는 대안적인 가상화 기술들을 이용하여 구현될 수 있다는 것이 상상된다.
클라이언트 보안 관리 계층(310)은 링 0 특권 레벨에서 동작하는 운영 체제 커널(320)보다 높은 특권을 갖는 루트 특권 레벨에서 동작하는 것으로서 도 3에 도시되어 있다. 클라이언트 보안 관리 계층(310)에 대한 코드는 플랫폼(300)의 부팅시에 평가된다. 결과적으로, 플랫폼(300)의 부팅 후에, TPM(304)의 PCR 레지스터들(306)은 클라이언트 보안 관리 계층(310)에 대한 코드의 평가들을 포함하는 SHA-1 해시 값들을 갖는다. TMP(304)에 의해 클라이언트 보안 관리 계층(310)에 대한 클라이언트 보안 관리 계층 키(316)가 AIK로서 생성된다.
도 3에서, 운영 체제 커널(330)은 링 3 특권 레벨에서 동작하는 콘텐츠 재생기(330)와 같은 애플리케이션 프로그램들보다 높은 링 0 특권 레벨에서 동작한다. 링 0보다 훨씬 더 높은 특권 레벨인 루트 특권 레벨에서 동작함으로써, 클라이언트 보안 관리 계층(310)은 메모리(340) 내의 콘텐츠 재생기에 대한 메모리의 보호 부분(342)이 운영 체제 커널(320)에 의해서도 액세스될 수 없는 것을 보장할 수 있다.
클라이언트 보안 관리 계층(310)은 런타임 메모리 보호 컴포넌트(312) 및 콘텐츠 보호 관리자(314)를 포함한다. 런타임 메모리 보호 컴포넌트(312)는 콘텐츠 재생기에 대한 메모리의 보호 부분(342) 내의 보호되는 코드(344) 및 보호되는 데이터(346) 양자는 물론, 보호되는 프레임 버퍼 메모리(348)를 보호한다. 런타임 메모리 보호 컴포넌트(312)는 전술한 특허 출원 11/229,126에 기술된 보안 금고 서비스 기능을 이용하여, 콘텐츠 재생기에 대한 메모리의 보호 부분(342) 내의 보호되는 코드(344), 보호되는 데이터(346) 및 보호되는 프레임 버퍼 메모리(348)를 보호할 수 있다. 보호되는 코드(344)는 예를 들어 콘텐츠 재생기(330)와 같은 보호되는 컴포넌트와 관련된 데이터 링크 라이브러리들, 실행 가능 코드 및 다른 소프트웨어를 포함할 수 있다. 보호되는 데이터(346)는 예를 들어 콘텐츠 서버(360)로부터 콘텐츠 재생기(330)에 의해 다운로드된 콘텐츠와 같은 데이터는 물론, 다운로드된 콘텐츠에 대한 암호화 및 해독 키들을 포함할 수 있다. 마찬가지로, 보호되는 프레임 버퍼 메모리(348)는 콘텐츠 재생기(330)에 의해 사용자에 의한 표시를 위해 콘텐츠를 렌더링하는 데 사용된다. 콘텐츠 재생기에 대한 메모리의 보호 부 분(342)에 대한 액세스를 제한함으로써, 클라이언트 보안 관리 계층(310)의 런타임 메모리 보호 컴포넌트(312)는 링 0 특권 레벨에서 실행되는 운영 체제 커널(320) 또는 링 3 특권 레벨에서 실행되는 다른 애플리케이션 프로그램들이 위험에 처하게 되는 경우에 보호를 제공한다.
클라이언트 보안 관리 계층(310)의 콘텐츠 보호 관리자(314)는 플랫폼 하드웨어(302)의 TPM(304)에 의해 제공되는 보안 특징들을 이용하여, 플랫폼(300)의 신뢰성을 증명한다. 예를 들어, 클라이언트 보안 관리 계층(310)은 예를 들어 TPM(304)에 의해 생성된 AIK일 수 있는 클라이언트 보안 관리 계층 키(316)를 이용하여, 플랫폼(300)의 신뢰성을 콘텐츠 서버(360)와 같은 원격 처리 시스템에 대해 증명한다. 클라이언트 보안 관리 계층(310)의 콘텐츠 보호 관리자(314)의 동작은 아래에 더 상세히 설명된다.
도 4는 도 3의 보안 플랫폼 아키텍처에 의해 제공되는 환경에서 동작하도록 구성되는, 도 3의 콘텐츠 재생기(330)와 같은 콘텐츠 재생기의 동작 방법의 흐름도이다. 도 4와 관련하여 수행되는 액션들은 도 3의 컴포넌트들에 의해 수행되는 것으로 설명된다. 시동시에, 콘텐츠 재생기(330)는 "메모리 및 콘텐츠 보호를 위해 클라이언트 보안 관리 계층에 등록하는" 단계(410)로 이행된다. 이 단계에서, 콘텐츠 재생기(330)는 클라이언트 보안 관리 계층(310)에 대한 하이퍼콜(hypercall)들을 호출하여, 메모리의 보호되는 부분(342)을 제공하여, 그의 동적 링크 라이브러리들을 포함하는 그의 코드 및 데이터는 물론, 콘텐츠를 렌더링하는 데 사용될 프레임 버퍼 메모리(348)를 보호한다. 이러한 클라이언트 보안 관리 계층(310)에 대한 하이퍼콜들은 전술한 특허 출원 11/229,126에 기술된 보안 금고 서비스들을 호출할 수 있다. 클라이언트 보안 관리 계층(310)이 콘텐츠 재생기에 대한 메모리의 보호 부분(342)을 제공하는 것 등에 의해 이러한 콘텐츠 재생기(330)에 대한 보호를 제공하면, 콘텐츠 재생기(330)에 대한 보호되는 코드(344), 보호되는 데이터(346) 및 보호되는 프레임 버퍼들(348)은 클라이언트 보안 관리 계층(310)으로부터의 콘텐츠 재생기(330)와 동일한 액세스 허가들을 갖지 못한 임의의 링 0 또는 링 3 컴포넌트에 의해 액세스될 수 없다.
클라이언트 보안 관리 계층(310)에 대한 등록 프로세스의 일부로서, 콘텐츠 재생기(330)에 대한 목록이 애플리케이션 식별자와 함께 생성될 수 있다. 이러한 목록은 전술한 "Signed Manifest for Run-Time Verification of Software Program Identity and Integrity"라는 제목으로 2005년 6월 30일자로 출원된 특허 출원 11/173,851에 따라 생성될 수 있다. 목록은 콘텐츠 재생기(330)의 무결성을 검증하는 데 사용될 수 있고, 후속 상호작용들에서 콘텐츠 재생기(330)의 무결성을 확인하기 위해 클라이언트 보안 관리 계층(310)에 의해 사용될 수 있는 정보를 포함할 수 있다.
도 4를 다시 참조하면, "메모리 및 콘텐츠 보호를 위해 클라이언트 보안 관리 계층에 등록하는" 단계(410)에서 클라이언트 보안 관리 계층(310)에 처음 등록한 후에, 콘텐츠 재생기(330)는 "클라이언트 보안 관리 계층으로부터 보안 정보를 요청하는" 단계(420)로 이행된다. 일 실시예에서, 콘텐츠 재생기(330)에 의해 요청되는 보안 정보는 클라이언트 보안 관리 계층(310)에 대한 PCR 값들을 포함한다. 보안 정보에 대한 요청에 응답하여, 클라이언트 보안 관리 계층(310)은 TPM 내의 특정 PCR 레지스터들의 PCR 값들을 포함하는 서명된 블로브(blob)를 제공한다. 블로브는 AIK 서명 키를 이용하여 서명된다. 블로브는 또한 클라이언트 보안 관리 계층(310)의 AIK 암호화 키의 공개 부분 및 프라이버시 인증 당국으로부터 수신된 인증서들을 포함한다. 여기에 설명되는 실시예에서, 보안 정보는 AIK 기반 암호화 방식에 따라 관리되는 것으로서 설명된다. 이 분야의 통상의 기술자는 대안으로 보안 정보가 사용자의 프라이버시를 보호하는 직접 익명 인증과 같은 다른 방식들을 이용하여 관리될 수 있다는 것을 이해할 것이다.
"클라이언트 보안 관리 계층으로부터 보안 정보를 요청하는" 단계(420)로부터, 콘텐츠 재생기(330)는 "콘텐츠 서버로부터 콘텐츠를 요청하고, 클라이언트 보안 관리 계층으로부터의 보안 정보를 제공하는" 단계(430)로 이행된다. 콘텐츠 재생기(330)는 클라이언트 보안 관리 계층(310)에 의해 제공되는 보안 정보를 이용하여, 플랫폼(300)이 안전함을 콘텐츠 서버(360)에 대해 증명한다. 콘텐츠 요청은, 콘텐츠 서버와 관련된 콘텐츠 사용자의 계정에 대한 사용자 증명서들, 클라이언트 보안 관리 계층(310)으로부터 수신된 서명된 블로브, 및 콘텐츠에 대해 요청된 정책 파라미터들을 포함한다. 예를 들어, 정책 파라미터들은 콘텐츠의 비디오를 재생하기 위한 사용자의 라이센스가 만료되기 전에 사용자가 비디오를 재생하도록 허가된 횟수를 지시할 수 있다. 콘텐츠 서버(360)에 의한 콘텐츠에 대한 요청의 처리는 도 5와 관련하여 더 상세히 설명된다.
콘텐츠 서버로부터 콘텐츠를 요청하고, 클라이언트 보안 관리 계층으로부터 의 보안 정보를 제공하는" 단계(430)로부터, 콘텐츠 재생기(330)는 "콘텐츠 서버로부터 콘텐츠 및 암호화된 콘텐츠 키를 수신하는" 단계(440)로 이행된다. 콘텐츠 재생기(330)는 콘텐츠 서버(360)로부터 암호화된 콘텐츠 및 암호화된 콘텐츠 키를 포함하는 패키지된 블로브를 수신한다. 이어서, 콘텐츠 재생기(330)는 "클라이언트 보안 관리 계층으로부터 해독 키를 요청하는" 단계(450)로 이행된다. 콘텐츠 재생기(330)는 암호화된 콘텐츠 키를 그 자신의 애플리케이션 식별자와 함께 클라이언트 보안 관리 계층(310)으로 전송한다(도 5와 관련하여 더 후술함). 클라이언트 보안 관리 계층(310)에 의한 암호화된 콘텐츠 키의 처리는 도 6과 관련하여 아래에 더 상세히 설명된다.
"클라이언트 보안 관리 계층으로부터 해독 키를 요청하는" 단계(450)에 응답하여, 콘텐츠 재생기(330)는 해독 키를 수신하며, 콘텐츠 재생기(330)는 이 해독 키를 이용하여, 콘텐츠 서버(360)에 의해 제공된 암호화된 콘텐츠를 해독할 수 있다. 콘텐츠 재생기(330)는 "클라이언트 보안 관리 계층에 의해 제공된 해독 키를 이용하여 콘텐츠를 해독하는" 단계(460)로 진행하여, 콘텐츠 서버(360)에 의해 제공된 콘텐츠를 해독한다. 콘텐츠 재생기(330)는 암호화된 콘텐츠를 콘텐츠 재생기에 대한 메모리의 보호 부분(342)에 로딩하고, 해독 키를 이용하여 콘텐츠를 해독한다. 콘텐츠 재생기(330)는 "콘텐츠를 렌더링하는" 단계(470)로 진행하여, 보호되는 코드(344)에 포함된 표준 애플리케이션 프로그램 인터페이스들을 이용하여 보호되는 프레임 버퍼들 상에 해독된 콘텐츠를 렌더링한다. 해독된 콘텐츠는 콘텐츠를 렌더링하기 위해 운영 체제 커널(320)을 호출하는 대신에 콘텐츠 재생기(330)에 대한 메모리의 보호 부분 내의 보호되는 데이터(346) 내에 직접 기입된다.
도 5는 본 발명의 보안 플랫폼과 관련하여 동작하도록 구성되는 콘텐츠 서버의 동작 방법의 흐름도이다. 콘텐츠 재생기(330)로부터의 콘텐츠에 대한 요청의 수신에 응답하여, 콘텐츠 서버(360)는 "콘텐츠 재생기로부터의 콘텐츠에 대한 요청 및 클라이언트 보안 관리 계층으로부터의 보안 정보를 검증하는" 단계(510)에 나타난 바와 같이 요청을 검증한다. 예를 들어, 콘텐츠 서버(360)는 서명된 블로브에서 제공되는 클라이언트 보안 관리 계층(310)의 인증서들을 프라이버시 인증 당국의 루트 인증서에 대비하여 검증할 수 있다. 이어서, 콘텐츠 서버(360)는 PCR 레지스터의 해시 값들과 해시 값들의 골드 표준 사본을 비교하여, 클라이언트 보안 관리 계층(310)의 유효성을 수립할 수 있다. 또한, 콘텐츠 서버(360)는 콘텐츠 재생기(330)에 대한 사용자 증명서들을 사용자 데이터베이스에 대비하여 인증하는 것은 물론, 요청의 일부로서 제공되는 정책 파라미터들을 검사할 수 있다. 콘텐츠는 예를 들어, 콘텐츠 요청에서 제공되는 정책 내의 값들과 서비스 데이터베이스에 저장된 사용자의 정책에 대한 값들을 비교할 때 더 제한적인 정책에 따라 제공될 수 있다.
"콘텐츠 재생기로부터의 콘텐츠에 대한 요청 및 클라이언트 보안 관리 계층으로부터의 보안 정보를 검증하는" 단계(510)로부터, 콘텐츠 서버(360)는 "암호화된 콘텐츠 및 암호화된 콘텐츠 키를 포함하는 패키지된 블로브를 생성하는" 단계(520)로 이행된다. 일 실시예에서, 콘텐츠 서버(360)는 콘텐츠 키(CK)라고 하는 대칭 키 내에 콘텐츠를 암호화하고, 클라이언트 보안 관리 계층(310)의 AIK 암호화 키 내에 CK, 콘텐츠 정책(CP) 및 애플리케이션 식별자(AI)를 암호화한다. 예를 들어, 이 실시예에서, 패키지된 블로브는 다음과 같이 콘텐츠 서버(360)에 대한 서비스를 이용하여 생성된다.
BLOB=서명 서비스 키 (E CK (콘텐츠)∥E AIK 암호화 (CK∥CP∥AI)
이 공식에서, 블로브는 서명된 서비스 키를 이용하여, 2개의 컴포넌트로 이루어진 연결된 스트링을 암호화함으로써 생성된다. 제1 컴포넌트는 콘텐츠 키를 이용하여 콘텐츠를 암호화하고, 제2 컴포넌트는 인증 식별 키를 이용하여 콘텐츠 키, 콘텐츠 정책 및 인증 식별자의 연결된 스트링을 암호화한다. 패키지된 블로브는 "암호화된 콘텐츠 및 암호화된 콘텐츠 키를 검증된 콘텐츠 재생기에 제공하는" 단계(530)에서 콘텐츠 재생기(330)로 다시 전송된다.
도 6은 도 3의 보안 플랫폼 아키텍처를 제공하기 위한 클라이언트 보안 관리 계층의 동작의 흐름도이다. 클라이언트 보안 관리 계층(310)은 도 4의 "메모리 및 콘텐츠 보호를 위해 클라이언트 보안 관리 계층에 등록하는" 단계(410)를 참조하여 설명된 바와 같이 애플리케이션 프로그램들에 의한 등록 요청들에 응답한다. 그러한 등록 요청에 응답하여, 클라이언트 보안 관리 계층(310)은 "컴포넌트들에 의한 등록에 응답하여 메모리 및 콘텐츠 보호를 제공하는" 단계(610)로 이행된다. 메모리 보호는 클라이언트 보안 관리 계층(310)의 런타임 메모리 보호 컴포넌트(312)와 관련하여 전술한 바와 같이 제공될 수 있다. 전술한 바와 같이, 클라이언트 보안 관리 계층(310)의 런타임 메모리 보호 컴포넌트(312)는 콘텐츠 재생기에 대한 메모리의 보호 부분(342) 내의 보호되는 코드(344), 보호되는 데이터(346) 및 보호되는 프레임 버퍼 메모리(348)를 보호한다. 런타임 메모리 보호 컴포넌트(312)는 전술한 특허 출원 11/229,126에 설명된 보안 금고 서비스 기능을 이용하여, 콘텐츠 재생기에 대한 메모리의 보호 부분(342) 내의 보호되는 코드(344), 보호되는 데이터(346) 및 보호되는 프레임 버퍼 메모리(348)를 보호할 수 있다.
도 6과 관련하여 제공되는 서비스들은 클라이언트 보안 관리 계층(310)에 의해 수행되는 것으로 설명되지만, 콘텐츠 보호는 클라이언트 보안 관리 계층(310)의 콘텐츠 보호 관리자(314)에 의해 제공될 수 있다. 클라이언트 보안 관리 계층(310)은 "컴포넌트로부터 해독 요청들을 수신하는" 단계(620)에 나타난 바와 같이 컴포넌트들로부터 해독 요청들을 수신할 수 있다. 그러한 해독 요청에 응답하여, 클라이언트 보안 관리 계층(310)은 "컴포넌트의 무결성을 확인하는" 단계(630)로 이행될 수 있다. 컴포넌트들의 무결성을 확인함에 있어서, 클라이언트 보안 관리 계층(310)은 해독 요청 내에서 콘텐츠 재생기(330)에 의해 제공되는 애플리케이션 식별자를 패키지된 블로브 내에서 콘텐츠 서버(360)에 의해 제공되는 애플리케이션 식별자와 대비하여 검증할 수 있다. 클라이언트 보안 관리 계층(310)은 해독 키를 콘텐츠 재생기(330)에 제공하기 전에 콘텐츠 재생기(330)에 대한 목록을 검증하는 것과 같이 콘텐츠 재생기(330)의 무결성을 검증하기 위해 다른 무결성 평가들을 더 수행할 수 있다.
컴포넌트의 무결성 확인에 응답하여, 클라이언트 보안 관리 계층(310)은 콘텐츠 재생기(330)로 반환된 패키지된 블로브 내에서 콘텐츠 서버(360)에 의해 제공되는 콘텐츠 키 및 다른 파라미터들을 해독할 수 있다. 클라이언트 보안 관리 계 층(310)은 해독 요청을 콘텐츠 정책에 대비하여 검증할 수 있으며, 또한 패키지된 블로브로부터의 정책 정보를 정책 데이터베이스에 (보호되지 않는 링 3 애플리케이션을 이용하여) 등록할 수 있다. 해독된 콘텐츠 키를 콘텐츠 재생기(330)에 제공하기 전에 해독 요청을 콘텐츠 정책과 대비하여 검증함으로써, 클라이언트 보안 관리 계층(310)은 콘텐츠가 전달된 후에 클라이언트 콘텐츠 재생기(330)가 콘텐츠 서버(360)에 대한 네트워크에 더 이상 접속되지 않은 경우에도 제공 콘텐츠 서버(360)에 의해 요구되는 정책들을 실시할 수 있다.
이어서, 제어는 "컴포넌트의 무결성을 확인하는" 단계(630)로부터 "컴포넌트에 대한 보호 메모리 내에 해독 키를 배치하는" 단계(640)로 이행되며, 여기서 클라이언트 보안 관리 계층(310) 및/또는 클라이언트 보안 관리 계층(310)의 런타임 메모리 보호 컴포넌트(312)는 콘텐츠 재생기에 대한 메모리의 보호 부분(342)과 같은 컴포넌트에 대한 메모리의 보호 부분 내에 해독 키를 배치한다.
설명된 메커니즘은 추가적인 하드웨어의 필요 없이 표준 특징들을 이용하여 플랫폼 상에서 콘텐츠 보호를 제공한다. 이러한 메커니즘은 보호자를 보호되는 컴포넌트(즉, 콘텐츠 재생기)보다 높은 특권 레벨에 배치함으로써 안전한 암호 기술들을 이용하므로, 본 발명의 클라이언트 보안 관리 계층에 의해 제공되는 보호 서비스들은 다른 혼란 기반 기술들보다 회피하기 어렵다. 설명된 메커니즘은 원격 콘텐츠 서비스 제공자들이 공격자들에 대한 높은 회복도로 클라이언트들에게 콘텐츠를 배포하는 것을 가능하게 한다. 이러한 메커니즘은 침입을 방지하며, 플랫폼 하드웨어, 운영 체제 또는 추가적인 드라이버들의 수정을 필요로 하지 않는다.
여기에 설명되는 메커니즘들의 실시예들은 하드웨어, 소프트웨어, 펌웨어, 또는 그러한 구현 접근법들의 조합으로 구현될 수 있다. 본 발명의 실시예들은 적어도 하나의 프로세서, 데이터 저장 시스템(휘발성 및 비휘발성 메모리 및/또는 저장 요소들을 포함함), 적어도 하나의 입력 장치 및 적어도 하나의 출력 장치를 포함하는 프로그램 가능한 시스템들 상에서 실행되는 컴퓨터 프로그램들로서 구현될 수 있다.
프로그램 코드는 여기에 설명되는 기능들을 수행하기 위한 데이터를 입력하고 출력 정보를 생성하도록 적용될 수 있다. 본 발명의 실시예들은 또한, 본 발명의 동작들을 수행하기 위한 명령어들을 포함하거나, 여기에 설명되는 구조들, 회로들, 장치들, 프로세서들 및/또는 시스템 특징들을 정의하는 HDL과 같은 설계 데이터를 포함하는 머신 액세스 가능 매체를 포함한다. 그러한 실시예들은 프로그램 제품들로도 지칭될 수 있다.
그러한 기계 액세스 가능 저장 매체들은 하드 디스크, 플로피 디스크, 광 디스크, 컴팩트 디스크 판독 전용 메모리(CD-ROM), 기입 가능한 컴팩트 디스크(CD-RW) 및 광자기 디스크를 포함하는 임의의 다른 타입의 디스크, ROM, DRAM, SRAM과 같은 RAM, EPROM, 플래시 메모리, EEPROM을 포함하는 반도체 장치, 자기 또는 광학 카드, 또는 전자 명령어들을 저장하기에 적합한 임의의 다른 타입의 매체와 같은 저장 매체들을 포함하는, 머신 또는 장치에 의해 제조되거나 형성되는 입자들의 유형적 배열들을 포함할 수 있지만, 이에 한정되지 않는다.
출력 정보는 하나 이상의 출력 디바이스에 주지된 방식으로 인가될 수 있다. 본 출원의 목적을 위해, 처리 시스템은 예를 들어 디지털 신호 프로세서(DSP), 마이크로컨트롤러, 주문형 집적 회로(ASIC) 또는 마이크로프로세서와 같은 프로세스를 갖는 임의의 시스템을 포함한다.
프로그램들은 처리 시스템과 통신하도록 하이 레벨 절차적 언어 또는 객체 지향 프로그래밍 언어로 구현될 수 있다. 프로그램들은 또한 필요에 따라 어셈블리 또는 기계 언어로 구현될 수 있다. 사실상, 여기에 설명되는 메커니즘들은 임의의 특정 프로그래밍 언어로 범위가 한정되지 않는다. 임의의 경우에, 언어는 컴파일되거나 해석되는 언어일 수 있다.
콘텐츠 서버로부터 수신되는 콘텐츠를 보호하기 위한 보안 플랫폼을 제공하기 위한 방법들 및 시스템들의 실시예들이 본 명세서에 설명된다. 본 발명의 특정 실시예들이 도시되고 설명되었지만, 첨부된 청구항들의 범위로부터 벗어나지 않고, 다양한 변경, 변화 및 수정이 이루어질 수 있다는 것은 이 분야의 기술자들에게 명백할 것이다. 따라서, 이 분야의 기술자는 본 발명의 더 넓은 양태들에서 본 발명으로부터 벗어나지 않고 변경들 및 수정들이 이루어질 수 있다는 것을 인식할 것이다. 첨부된 청구항들은 본 발명의 진정한 범위 및 사상 내에 있는 그러한 모든 변경, 변형 및 수정들을 그의 범위 내에 포함한다.
도 1은 본 발명의 일 실시예에 따른, 실행 환경 내의 소프트웨어 컴포넌트들에 대한 보호를 제공하기 위한 플랫폼을 나타내는 도면.
도 2는 본 발명의 일 실시예에 따른, 병렬 실행 환경들을 이용하는 플랫폼을 나타내는 도면.
도 3은 본 발명의 일 실시예에 따른 보안 플랫폼을 위한 아키텍처를 나타내는 블록도.
도 4는 도 3의 보안 플랫폼 아키텍처에 의해 제공되는 환경에서 동작하도록 구성되는, 도 3의 콘텐츠 재생기와 같은 콘텐츠 재생기의 동작 방법의 흐름도.
도 5는 도 3의 보안 플랫폼 아키텍처에 의해 제공되는 환경과 함께 동작하도록 구성되는 콘텐츠 서버의 동작 방법의 흐름도.
도 6은 도 3의 보안 플랫폼 아키텍처를 제공하도록 구성되는 클라이언트 보안 관리 계층의 동작 방법의 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100: 플랫폼
104: 실행 환경
108: OS
112: 소프트웨어 컴포넌트
116: 관리 모듈
118: 하드웨어 리소스들
120: 프로세서(들)
124: 네트워크 인터페이스 제어기
128: 저장 장치
132: 메모리

Claims (33)

  1. 컴포넌트를 대신하여 컴퓨터 시스템의 메모리의 보호되는 부분에 대한 액세스를 제어하는 단계;
    상기 컴포넌트로부터 암호화된 콘텐츠 키를 수신하는 단계;
    상기 컴포넌트의 무결성(integrity)을 확인하는 단계;
    상기 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하는 단계; 및
    상기 컴포넌트의 무결성의 확인에 응답하여 상기 메모리의 보호되는 부분 내에 상기 해독된 콘텐츠 키를 배치하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서, 상기 메모리의 보호되는 부분에 대한 액세스를 제어하는 단계는 상기 컴퓨터 시스템의 운영 체제에 의한 상기 메모리의 보호되는 부분에 대한 액세스를 방지하는 단계를 포함하는 방법.
  3. 제1항에 있어서, 상기 메모리의 보호되는 부분에 대한 액세스를 제어하는 단계는 허가되지 않은 애플리케이션에 의한 상기 메모리의 보호되는 부분에 대한 액세스를 방지하는 단계를 포함하는 방법.
  4. 제1항에 있어서,
    상기 해독된 콘텐츠 키는 콘텐츠 제공자로부터 상기 컴포넌트에 의해 수신된 콘텐츠에 대응하고,
    상기 컴포넌트는 상기 해독된 콘텐츠 키를 이용하여 상기 콘텐츠를 해독하는 방법.
  5. 제1항에 있어서,
    상기 컴포넌트로부터 특정 콘텐츠에 대한 해독 요청을 수신하는 단계; 및
    상기 암호화된 콘텐츠 키를 해독하기 전에 상기 특정 콘텐츠에 대한 콘텐츠 정책이 상기 특정 콘텐츠의 해독을 허가하는 것으로 결정하는 단계
    를 더 포함하는 방법.
  6. 제5항에 있어서, 상기 특정 콘텐츠에 대한 콘텐츠 정책이 상기 특정 콘텐츠의 해독을 허가하는 것으로 결정하는 단계는 상기 특정 콘텐츠를 제공한 콘텐츠 서버에 대한 접속 없이 수행되는 방법.
  7. 제1항에 있어서, 상기 컴포넌트의 무결성을 확인하는 단계는 상기 컴포넌트에 대한 목록(manifest)을 검증하는 단계를 포함하는 방법.
  8. 제1항에 있어서, 상기 컴포넌트의 무결성을 확인하는 단계는 상기 컴포넌트에 대한 코드가 상기 컴포넌트에 대한 코드에 대한 표준과 매칭되는 것을 확인하는 단계를 포함하는 방법.
  9. 컴퓨터 시스템의 메모리의 보호되는 부분의 보호를 받기 위해 클라이언트 보안 관리 계층에 컴포넌트로서 등록하는 단계;
    콘텐츠 제공자로부터 암호화된 콘텐츠 및 암호화된 콘텐츠 키를 수신하는 단계;
    상기 암호화된 콘텐츠 키를 상기 클라이언트 보안 관리 계층에 제공하는 단계 - 상기 클라이언트 보안 관리 계층은 상기 컴포넌트의 무결성을 확인하고, 상기 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하고, 상기 해독된 콘텐츠 키를 상기 메모리의 보호되는 부분에 배치함 -; 및
    상기 해독된 콘텐츠 키를 이용하여, 상기 암호화된 콘텐츠를 상기 메모리의 보호되는 부분 내로 해독하는 단계
    를 포함하는 방법.
  10. 제9항에 있어서, 수신된 콘텐츠가 허가되지 않은 복사로부터 보호된다는 인증서를 상기 콘텐츠 제공자에게 제공하는 단계를 더 포함하는 방법.
  11. 제10항에 있어서, 상기 인증서는 상기 클라이언트 보안 관리 계층에 대한 식별 정보를 포함하는 방법.
  12. 컴퓨터 시스템으로서,
    프로세서;
    상기 프로세서에 결합되는 메모리;
    클라이언트 보안 관리 계층
    을 포함하고,
    상기 클라이언트 보안 관리 계층은,
    상기 프로세서 상에서 실행되는 컴포넌트를 대신하여 상기 메모리의 보호되는 부분에 대한 액세스를 제어하고,
    상기 컴포넌트로부터 암호화된 콘텐츠 키를 수신하고,
    상기 컴포넌트의 무결성을 확인하고,
    상기 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하고,
    상기 컴포넌트의 무결성의 확인에 응답하여 상기 해독된 콘텐츠 키를 상기 메모리의 보호되는 부분 내에 배치하도록 구성되는 컴퓨터 시스템.
  13. 제12항에 있어서, 상기 클라이언트 보안 관리 계층은 상기 컴퓨터 시스템의 운영 체제에 의한 상기 메모리의 보호되는 부분에 대한 액세스를 방지함으로써 상기 메모리의 보호되는 부분에 대한 액세스를 제어하도록 더 구성되는 컴퓨터 시스템.
  14. 제12항에 있어서, 상기 클라이언트 보안 관리 계층은 상기 컴퓨터 시스템 상 에서 실행되는 허가되지 않은 애플리케이션에 의한 상기 메모리의 보호되는 부분에 대한 액세스를 방지함으로써 상기 메모리의 보호되는 부분에 대한 액세스를 제어하도록 더 구성되는 컴퓨터 시스템.
  15. 제12항에 있어서,
    상기 해독된 콘텐츠 키는 콘텐츠 제공자로부터 상기 컴포넌트에 의해 수신된 콘텐츠에 대응하고,
    상기 컴포넌트는 상기 해독된 콘텐츠 키를 이용하여 상기 콘텐츠를 해독하는 컴퓨터 시스템.
  16. 제12항에 있어서,
    상기 클라이언트 보안 관리 계층은,
    상기 컴포넌트로부터 특정 콘텐츠에 대한 해독 요청을 수신하고,
    상기 암호화된 콘텐츠 키를 해독하기 전에 상기 특정 콘텐츠에 대한 콘텐츠 정책이 상기 특정 콘텐츠의 해독을 허가하는 것으로 결정하도록 더 구성되는 컴퓨터 시스템.
  17. 제16항에 있어서, 상기 클라이언트 보안 관리 계층은 상기 특정 콘텐츠를 제공한 콘텐츠 서버에 대한 접속 없이 상기 특정 콘텐츠에 대한 콘텐츠 정책이 상기 특정 콘텐츠의 해독을 허가하는 것으로 결정하도록 더 구성되는 컴퓨터 시스템.
  18. 제12항에 있어서, 상기 클라이언트 보안 관리 계층은 상기 컴포넌트에 대한 목록을 검증함으로써 상기 컴포넌트의 무결성을 확인하도록 더 구성되는 컴퓨터 시스템.
  19. 제12항에 있어서, 상기 클라이언트 보안 관리 계층은 상기 컴포넌트에 대한 코드가 상기 컴포넌트에 대한 코드에 대한 표준과 매칭되는 것을 확인함으로써 상기 콘텐츠의 무결성을 확인하도록 더 구성되는 컴퓨터 시스템.
  20. 컴퓨터 시스템으로서,
    프로세서;
    메모리;
    클라이언트 보안 관리 계층; 및
    콘텐츠 재생기
    를 포함하고,
    상기 콘텐츠 재생기는,
    상기 메모리의 보호되는 부분의 보호를 받기 위해 상기 클라이언트 보안 관리 계층에 컴포넌트로서 등록하고,
    콘텐츠 제공자로부터 암호화된 콘텐츠 및 암호화된 콘텐츠 키를 수신하고,
    상기 암호화된 콘텐츠 키를 상기 클라이언트 보안 관리 계층에 제공하고 - 상기 클라이언트 보안 관리 계층은 상기 컴포넌트의 무결성을 확인하고, 상기 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하고, 상기 해독된 콘텐츠 키를 상기 메모리의 보호되는 부분 내에 배치함 -,
    상기 해독된 콘텐츠 키를 이용하여 상기 암호화된 콘텐츠를 상기 메모리의 보호되는 부분 내로 해독하도록 구성되는 컴퓨터 시스템.
  21. 제20항에 있어서, 상기 콘텐츠 재생기는 수신된 콘텐츠가 허가되지 않은 복사로부터 보호된다는 인증서를 상기 콘텐츠 제공자에게 제공하도록 더 구성되는 컴퓨터 시스템.
  22. 제21항에 있어서, 상기 인증서는 상기 클라이언트 보안 관리 계층에 대한 식별 정보를 포함하는 컴퓨터 시스템.
  23. 컴퓨터 판독 가능 저장 매체로서,
    컴퓨터 시스템 상에서 실행되는 컴포넌트를 대신하여 상기 컴퓨터 시스템의 메모리의 보호되는 부분에 대한 액세스를 제어하고,
    상기 컴포넌트로부터 암호화된 콘텐츠 키를 수신하고,
    상기 컴포넌트의 무결성을 확인하고,
    상기 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하고,
    상기 컴포넌트의 무결성의 확인에 응답하여 상기 해독된 콘텐츠 키를 상기 메모리의 보호되는 부분 내에 배치하도록 구성되는 명령어들을 포함하는 컴퓨터 판독 가능 저장 매체.
  24. 제23항에 있어서, 상기 명령어들은 상기 컴퓨터 시스템의 운영 체제에 의한 상기 메모리의 보호되는 부분에 대한 액세스를 방지함으로써 상기 메모리의 보호되는 부분에 대한 액세스를 제어하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  25. 제23항에 있어서, 상기 명령어들은 상기 컴퓨터 시스템 상에서 실행되는 허가되지 않은 애플리케이션에 의한 상기 메모리의 보호되는 부분에 대한 액세스를 방지함으로써 상기 메모리의 보호되는 부분에 대한 액세스를 제어하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  26. 제23항에 있어서,
    상기 해독된 콘텐츠 키는 콘텐츠 제공자로부터 상기 컴포넌트에 의해 수신된 콘텐츠에 대응하고,
    상기 컴포넌트는 상기 해독된 콘텐츠 키를 이용하여 상기 콘텐츠를 해독하는 컴퓨터 판독 가능 저장 매체.
  27. 제23항에 있어서,
    상기 명령어들은,
    상기 컴포넌트로부터 특정 콘텐츠에 대한 해독 요청을 수신하고,
    상기 암호화된 콘텐츠 키를 해독하기 전에 상기 특정 콘텐츠에 대한 콘텐츠 정책이 상기 특정 콘텐츠의 해독을 허가하는 것으로 결정하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  28. 제23항에 있어서, 상기 명령어들은 상기 특정 콘텐츠를 제공한 콘텐츠 서버에 대한 접속 없이 상기 특정 콘텐츠에 대한 콘텐츠 정책이 상기 특정 콘텐츠의 해독을 허가하는 것으로 결정하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  29. 제23항에 있어서, 상기 명령어들은 상기 컴포넌트에 대한 목록을 검증함으로써 상기 컴포넌트의 무결성을 확인하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  30. 제23항에 있어서, 상기 명령어들은 상기 컴포넌트에 대한 코드가 상기 컴포넌트에 대한 코드에 대한 표준과 매칭되는 것을 확인함으로써 상기 콘텐츠의 무결성을 확인하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  31. 컴퓨터 판독 가능 저장 매체로서,
    컴퓨터 시스템의 메모리의 보호되는 부분의 보호를 받기 위해 상기 컴퓨터 시스템의 클라이언트 보안 관리 계층에 컴포넌트로서 등록하고,
    콘텐츠 제공자로부터 암호화된 콘텐츠 및 암호화된 콘텐츠 키를 수신하고,
    상기 암호화된 콘텐츠 키를 상기 클라이언트 보안 관리 계층에 제공하고 - 상기 클라이언트 보안 관리 계층은 상기 컴포넌트의 무결성을 확인하고, 상기 암호화된 콘텐츠 키를 해독하여 해독된 콘텐츠 키를 제공하고, 상기 해독된 콘텐츠 키를 상기 메모리의 보호되는 부분 내에 배치함 -,
    상기 해독된 콘텐츠 키를 이용하여 상기 암호화된 콘텐츠를 상기 메모리의 보호되는 부분 내로 해독하도록 구성되는 명령어들을 포함하는 컴퓨터 판독 가능 저장 매체.
  32. 제31항에 있어서, 상기 명령어들은 수신된 콘텐츠가 허가되지 않은 복사로부터 보호된다는 인증서를 상기 콘텐츠 제공자에게 제공하도록 더 구성되는 컴퓨터 판독 가능 저장 매체.
  33. 제32항에 있어서, 상기 인증서는 상기 클라이언트 보안 관리 계층에 대한 식별 정보를 포함하는 컴퓨터 판독 가능 저장 매체.
KR1020090131216A 2008-12-30 2009-12-24 클라이언트 플랫폼들 상의 콘텐츠 보호 KR101158184B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/319,034 2008-12-30
US12/319,034 US8213618B2 (en) 2008-12-30 2008-12-30 Protecting content on client platforms

Publications (2)

Publication Number Publication Date
KR20100080405A true KR20100080405A (ko) 2010-07-08
KR101158184B1 KR101158184B1 (ko) 2012-06-20

Family

ID=42104503

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020090131216A KR101158184B1 (ko) 2008-12-30 2009-12-24 클라이언트 플랫폼들 상의 콘텐츠 보호

Country Status (5)

Country Link
US (1) US8213618B2 (ko)
EP (1) EP2207121B1 (ko)
JP (2) JP2010157224A (ko)
KR (1) KR101158184B1 (ko)
CN (1) CN101894224B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8712037B2 (en) 2010-12-23 2014-04-29 Electronics And Telecommunications Research Institute Data encoding and decoding apparatus and method thereof for verifying data integrity
KR20190108574A (ko) * 2017-01-24 2019-09-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 크로스-플랫폼 엔클레이브 신원

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8555380B2 (en) * 2008-02-28 2013-10-08 Intel Corporation Automatic modification of executable code
CN101983379B (zh) * 2008-04-02 2014-04-02 惠普开发有限公司 盘驱动器数据加密
US8468356B2 (en) * 2008-06-30 2013-06-18 Intel Corporation Software copy protection via protected execution of applications
US8738932B2 (en) * 2009-01-16 2014-05-27 Teleputers, Llc System and method for processor-based security
US9400891B2 (en) * 2009-01-23 2016-07-26 Randall Stephens Owner controlled transmitted file protection and access control system and method
US9189620B2 (en) * 2009-06-30 2015-11-17 Intel Corporation Protecting a software component using a transition point wrapper
TW201116023A (en) * 2009-09-25 2011-05-01 Ibm A method and a system for providing a deployment lifecycle management of cryptographic objects
US8418259B2 (en) * 2010-01-05 2013-04-09 Microsoft Corporation TPM-based license activation and validation
US8601284B2 (en) * 2010-01-27 2013-12-03 International Business Machines Corporation Secure connected digital media platform
US8442224B2 (en) * 2010-06-28 2013-05-14 Intel Corporation Protecting video content using virtualization
CN102004890B (zh) * 2010-12-07 2013-04-03 武汉大学 一种基于网络环境的通用数字版权保护方法
US8528099B2 (en) 2011-01-27 2013-09-03 Oracle International Corporation Policy based management of content rights in enterprise/cross enterprise collaboration
US8954722B2 (en) * 2011-03-04 2015-02-10 Broadcom Corporation Enforcing software updates in an electronic device
US9317690B2 (en) 2011-03-28 2016-04-19 Mcafee, Inc. System and method for firmware based anti-malware security
US9038176B2 (en) 2011-03-31 2015-05-19 Mcafee, Inc. System and method for below-operating system trapping and securing loading of code into memory
US9262246B2 (en) 2011-03-31 2016-02-16 Mcafee, Inc. System and method for securing memory and storage of an electronic device with a below-operating system security agent
EP2691908B1 (en) * 2011-03-28 2018-12-05 McAfee, LLC System and method for virtual machine monitor based anti-malware security
CN103582889B (zh) * 2011-06-06 2015-11-25 株式会社索思未来 内容数据再生方法及缩略图图像生成方法
CN103140856B (zh) * 2011-09-13 2016-02-17 松下电器产业株式会社 内容再生系统、信息处理终端、媒体服务器、安全器件以及服务器安全器件
WO2013081623A1 (en) 2011-12-01 2013-06-06 Intel Corporation Secure provision of a digital content protection scheme
CN102567233B (zh) * 2011-12-23 2014-07-02 福建升腾资讯有限公司 基于磁盘虚拟技术的usb存储设备数据保护方法
US20130298187A1 (en) * 2012-05-04 2013-11-07 Ca, Inc. Managing virtual identities
US8938796B2 (en) 2012-09-20 2015-01-20 Paul Case, SR. Case secure computer architecture
US9268707B2 (en) 2012-12-29 2016-02-23 Intel Corporation Low overhead paged memory runtime protection
US9355261B2 (en) * 2013-03-14 2016-05-31 Appsense Limited Secure data management
US9411983B2 (en) * 2013-03-15 2016-08-09 Intel Corporation Apparatus and method to protect digital content
US10073966B2 (en) * 2013-04-29 2018-09-11 Sri International Operating system-independent integrity verification
WO2015003088A1 (en) * 2013-07-02 2015-01-08 Sony Corporation Content-bound trusted executables
US9215251B2 (en) 2013-09-11 2015-12-15 Appsense Limited Apparatus, systems, and methods for managing data security
US9292686B2 (en) * 2014-01-16 2016-03-22 Fireeye, Inc. Micro-virtualization architecture for threat-aware microvisor deployment in a node of a network environment
US9503433B2 (en) * 2014-03-27 2016-11-22 Intel Corporation Method and apparatus for cloud-assisted cryptography
US20150294119A1 (en) 2014-04-10 2015-10-15 International Business Machines Corporation Booting a multi-node computer system from a primary node dynamically selected based on security setting criteria
US9594929B2 (en) * 2014-08-11 2017-03-14 Honeywell International Inc. Open architecture security methods and systems
US9692599B1 (en) * 2014-09-16 2017-06-27 Google Inc. Security module endorsement
FR3030827B1 (fr) * 2014-12-19 2017-01-27 Stmicroelectronics (Grenoble 2) Sas Procede et dispositif de traitement securise de donnees cryptees
US10162767B2 (en) 2015-06-27 2018-12-25 Mcafee, Llc Virtualized trusted storage
CN105678183B (zh) * 2015-12-30 2018-09-18 青岛海信移动通信技术股份有限公司 一种智能终端的用户数据管理方法及装置
GB201700367D0 (en) * 2017-01-10 2017-02-22 Trustonic Ltd A system for recording and attesting device lifecycle
US10924282B2 (en) * 2018-05-24 2021-02-16 Cyber Pack Ventures, Inc. System and method for measuring and reporting IoT boot integrity
CN112567366B (zh) * 2018-05-28 2024-10-11 加拿大皇家银行 用于确保电子交易平台安全的系统和方法
US11893127B2 (en) * 2018-12-21 2024-02-06 Acronis International Gmbh System and method for indexing and searching encrypted archives
CN109922056B (zh) 2019-02-26 2021-09-10 创新先进技术有限公司 数据安全处理方法及其终端、服务器
CN110096887B (zh) 2019-03-22 2020-06-30 阿里巴巴集团控股有限公司 一种可信计算方法及服务器
CA3146035A1 (en) 2019-08-12 2021-02-18 Audio Visual Preservation Solutions, Inc. Source identifying forensics system, device, and method for multimedia files
US11583775B1 (en) * 2020-01-07 2023-02-21 Gregory D. Guida System and method for providing player directed content in a gaming machine
JP7380251B2 (ja) * 2020-01-27 2023-11-15 株式会社Ihi 仮想マシンにおけるデータ改ざんの監視方法及び装置
US20210314360A1 (en) * 2020-04-03 2021-10-07 Make Great Sales Limited System and method for the detection of website content theft
EP4060538A1 (en) 2021-03-17 2022-09-21 Secure Thingz Limited A provisioning control apparatus and method for provisioning electronic components for electronic devices

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1644802B1 (en) * 2003-06-27 2016-11-23 Disney Enterprises, Inc. Dual virtual machine and trusted platform module architecture for next generation media players
GB2404537B (en) 2003-07-31 2007-03-14 Hewlett Packard Development Co Controlling access to data
US7634807B2 (en) * 2003-08-08 2009-12-15 Nokia Corporation System and method to establish and maintain conditional trust by stating signal of distrust
US20050273629A1 (en) * 2004-06-04 2005-12-08 Vitalsource Technologies System, method and computer program product for providing digital rights management of protected content
US20050283601A1 (en) * 2004-06-22 2005-12-22 Sun Microsystems, Inc. Systems and methods for securing a computer boot
US7634664B2 (en) 2005-02-15 2009-12-15 Hewlett-Packard Development Company, L.P. Devices, systems, and methods for secure download of data
US7613921B2 (en) 2005-05-13 2009-11-03 Intel Corporation Method and apparatus for remotely provisioning software-based security coprocessors
US7908483B2 (en) * 2005-06-30 2011-03-15 Intel Corporation Method and apparatus for binding TPM keys to execution entities
US7523323B2 (en) 2005-09-15 2009-04-21 Intel Corporation Method and apparatus for quick resumption
JP4950195B2 (ja) * 2006-07-03 2012-06-13 パナソニック株式会社 証明装置、検証装置、検証システム、コンピュータプログラム及び集積回路
US8151262B2 (en) 2007-03-30 2012-04-03 Lenovo (Singapore) Pte. Ltd. System and method for reporting the trusted state of a virtual machine
US8661552B2 (en) 2007-06-28 2014-02-25 Microsoft Corporation Provisioning a computing system for digital rights management
US20090007104A1 (en) * 2007-06-29 2009-01-01 Zimmer Vincent J Partitioned scheme for trusted platform module support
US8782801B2 (en) * 2007-08-15 2014-07-15 Samsung Electronics Co., Ltd. Securing stored content for trusted hosts and safe computing environments
US8064605B2 (en) * 2007-09-27 2011-11-22 Intel Corporation Methods and apparatus for providing upgradeable key bindings for trusted platform modules
US20090092248A1 (en) * 2007-10-04 2009-04-09 Advanced Micro Devices, Inc. Encryption-based authentication for binding modules
US20100082960A1 (en) * 2008-09-30 2010-04-01 Steve Grobman Protected network boot of operating system
US8788841B2 (en) * 2008-10-23 2014-07-22 Samsung Electronics Co., Ltd. Representation and verification of data for safe computing environments and systems

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8712037B2 (en) 2010-12-23 2014-04-29 Electronics And Telecommunications Research Institute Data encoding and decoding apparatus and method thereof for verifying data integrity
KR20190108574A (ko) * 2017-01-24 2019-09-24 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 크로스-플랫폼 엔클레이브 신원

Also Published As

Publication number Publication date
US20100169667A1 (en) 2010-07-01
KR101158184B1 (ko) 2012-06-20
JP2012181862A (ja) 2012-09-20
EP2207121A1 (en) 2010-07-14
EP2207121B1 (en) 2013-03-20
US8213618B2 (en) 2012-07-03
CN101894224B (zh) 2015-03-18
CN101894224A (zh) 2010-11-24
JP2010157224A (ja) 2010-07-15

Similar Documents

Publication Publication Date Title
KR101158184B1 (ko) 클라이언트 플랫폼들 상의 콘텐츠 보호
US11514159B2 (en) Method and system for preventing and detecting security threats
Buhren et al. Insecure until proven updated: analyzing AMD SEV's remote attestation
US10333967B2 (en) Method and system for dynamic platform security in a device operating system
KR100930218B1 (ko) 소프트웨어 기반 보안 코프로세서를 제공하는 방법, 장치및 처리 시스템
KR100996784B1 (ko) 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체
US20080022129A1 (en) Secure platform voucher service for software components within an execution environment
JP2005527019A (ja) マルチトークンのシール及びシール解除
KR20100085956A (ko) 서비스 커넬 설계에 의한 보안 정책 차별화
Dewan et al. A hypervisor-based system for protecting software runtime memory and persistent storage.
EP3642721A1 (en) A cache unit useful for secure execution
US8656190B2 (en) One time settable tamper resistant software repository
Safford et al. Trusted computing and open source
Cases Hardware-Enabled Security

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
X091 Application refused [patent]
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20150529

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160527

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170601

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180529

Year of fee payment: 7