KR102396070B1 - 신뢰가능 플랫폼 모듈에서의 운영 체제 컨텍스트 표현 기법 - Google Patents

신뢰가능 플랫폼 모듈에서의 운영 체제 컨텍스트 표현 기법 Download PDF

Info

Publication number
KR102396070B1
KR102396070B1 KR1020177008058A KR20177008058A KR102396070B1 KR 102396070 B1 KR102396070 B1 KR 102396070B1 KR 1020177008058 A KR1020177008058 A KR 1020177008058A KR 20177008058 A KR20177008058 A KR 20177008058A KR 102396070 B1 KR102396070 B1 KR 102396070B1
Authority
KR
South Korea
Prior art keywords
authorization
principal
request
trusted platform
platform module
Prior art date
Application number
KR1020177008058A
Other languages
English (en)
Other versions
KR20170059447A (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 KR20170059447A publication Critical patent/KR20170059447A/ko
Application granted granted Critical
Publication of KR102396070B1 publication Critical patent/KR102396070B1/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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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/62Protecting access to data via a platform, e.g. using keys or access control rules
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/86Secure or tamper-resistant housings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 기법이 개시된다. 적어도 일부 실시예에서, 운영 체제 컨텍스트의 표현에 대응하는 인가 프린서플이 신뢰가능 플랫폼 모듈에서 유도된다. 인가 프린서플은 신뢰가능 플랫폼 모듈에 저장된 보안 에셋에 액세스하기 위한 인가 정책을 규정하는데 사용될 수 있다.

Description

신뢰가능 플랫폼 모듈에서의 운영 체제 컨텍스트 표현 기법{REPRESENTATION OF OPERATING SYSTEM CONTEXT IN A TRUSTED PLATFORM MODULE}
컴퓨터의 사용이 점점 더 일반화됨에 따라서, 컴퓨터에 저장되는 데이터의 양이 증가했다. 이로써 사용자는, 비교적 작은 공간에 많은 양의 데이터를 저장할 수 있는 것을 포함한, 많은 이점을 얻을 수 있다. 그러나, 이 데이터 중 일부는 비밀로 유지되고자 하며, 즉 특정 개인에게만 보여졌으면 한다. 이 데이터는, 패스워드나 개인 식별 번호를 사용하는 것과 같은, 다양한 방식으로 보호될 수 있다. 이러한 보호가 유용하기는 하지만, 컴퓨터는 사전 공격(dictionary attack)이나, 혹은 패스워드나 개인 식별 번호를 추측하기 위해서 수없이 시도하는 무차별 대입 공격(brute force attack)과 같은 공격에 취약할 수 있다. 이러한 취약성으로 인해서 사용자의 자신의 컴퓨터에 대한 신뢰도가 감소되어서, 긍정적인 사용자 경험이 어려워질 수 있다.
[발명의 내용]
본 개요는 이하의 구체적인 내용에서 설명될 개념 중 일부를 선택해서 간략한 형태로 소개하기 위해서 제공되는 것이다. 본 개요는 청구되는 청구 대상의 핵심적인 특성이나 필수적인 특성을 나타내는 것이 아니고, 청구되는 청구 대상의 범주를 결정하는데 사용되고자 하는 것도 아니다.
신뢰가능 플랫폼 모듈(TPM)에서 운영 체제 컨텍스트(operating system context)를 표현하는 기법에 대해서 설명한다. 적어도 일부 실시예에서, 운영 체제 컨텍스트의 표현에 대응하는 인가 프린서플(authorization principal)이 신뢰가능 플랫폼 모듈에서 유도된다. 인가 프린서플은 신뢰가능 플랫폼 모듈에 저장된 보안 에셋(asset)에 액세스하기 위한 인가 정책을 규정하는데 사용될 수 있다.
삭제
첨부된 도면을 참조로 상세한 설명을 설명한다. 도면에서, 참조 번호 중 가장 큰 자리의 숫자는 그 참조 번호가 가장 먼저 나오는 도면을 가리킨다. 설명 및 도면의 여러 예시에서, 유사한 혹은 동일한 항목을 표시하는데 동일한 참조 번호를 사용했다.
도 1은 일 이상의 실시예에 따른, 본 명세서에 설명되는 기법을 이용하도록 동작 가능한 환경을, 예시적인 구현예로 나타내는 도면,
도 2는 일 이상의 실시예에 따른, 인가 프린서플의 예시적인 구현예를 나타내는 도면,
도 3은 일 이상의 실시예에 따른, 인가 정책의 예시적인 구현예를 나타내는 도면,
도 4는 일 이상의 실시예에 따른, 인가 프린서플을 유도하는 방법의 단계를 나타내는 흐름도,
도 5는 일 이상의 실시예에 따른, 보안 에셋으로 인가 정책을 바인딩하는 방법의 단계를 나타내는 흐름도,
도 6은 일 이상의 실시예에 따른, 인가 정책이 보안 에셋으로 바인딩되게 하는 방법의 단계를 나타내는 흐름도,
도 7은, 본 명세서에서 설명되는 기법의 실시예를 구현하도록 구성된, 도 1을 참조로 설명된 예시적인 시스템 및 컴퓨팅 장치를 나타내는 도면이다.
(개요)
신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 기법에 대해서 설명한다. 일반적으로, 신뢰가능 플랫폼 모듈이란, 보호된 하드웨어 및/또는 펌웨어 환경과 같이, 일반적인 시스템 액세스로부터 보호받는 기능을 가리킨다. 신뢰가능 플랫폼 모듈은 예컨대, 코드가 안전하게 실행될 수 있는 변형 억제(tamper-resistant) 환경을 나타낸다.
다양한 구현예에서, 신뢰가능 플랫폼 모듈을 통해서 구현되는 인가 프린서플을 이용해서 운영 체제 컨텍스트가 표현된다. 일반적으로, 운영 체제 컨텍스트가란, 운영 체제와 관련해서 일어날 수 있는 다양한 신원 기반(identity-based) 상태를 가리킨다. 운영 체제 컨텍스트 속성의 예로서, 사용자 식별자, 애플리케이션 및 프로세스 식별자, 그룹 식별자(예컨대, 사용자 그룹에 대한), 특권 식별자(예컨대, 다양한 액세스 및 보안 특권 레벨에 대한) 등을 들 수 있다.
다양한 구현예에 따라서, 인가 프린서플은 운영 체제 컨텍스트에 기초해서 규정된다. 예컨대, 운영 체제 컨텍스트 속성은 신뢰가능 플랫폼 모듈(TPM) 액세스 모듈에 의해서 처리되어서, 대응하는 인가 프린서플을 생성한다. 인가 프린서플은, 보안 키(예컨대, 개인키), 보안 인증서, 보호 데이터 등과 같은, 신뢰가능 플랫폼 모듈에 저장된 보안 에셋에 바인딩될 수 있다. 예컨대, 인가 정책은, 바인딩된 보안 에셋에 대한 액세스를 제어하는 인가 프린서플들로 구성될 수 있다.
다양한 구현예에 따라서, 본 명세서에서 개시되는 기법은, 운영 체제 컨텍스트가 신뢰가능 플랫폼 모듈에서 표시되는 것을 가능하게 하는 것으로, 따라서 기존 운영 체제 구현 방식에 비해서 시스템 보안을 증가시킬 수 있다. 또한, 본 명세서에서 설명되는 기법은, 신뢰가능 플랫폼 모듈에서 특징지어지고 표현되는 폭 넓은 운영 체제 관련 속성을 제공해서, 다양한 운영 체제 컨텍스트와 관련된 보안 에셋을 보호하는 기존 신뢰가능 플랫폼 모듈의 기능을 향상시키고 있다.
이하 설명에서는, 먼저 본 명세서에서 설명되는 기법을 사용하도록 동작 가능한 예시적인 환경을 설명한다. 다음으로, '예시적인 과정'이라는 섹션에서는, 일 이상의 실시예에 따른, 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 몇가지 예시적인 방법에 대해서 설명한다. 마지막으로, '예시적인 시스템 및 장치' 섹션에서는, 일 이상의 실시예에 따른, 본 명세서에서 설명되는 기법을 이용하도록 동작 가능한 예시적인 시스템 및 장치에 대해서 설명한다.
(예시적인 환경)
도 1은 본 명세서에 설명되는, 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 기법을 이용하도록 동작 가능한 환경(100)을, 예시적인 구현예로 나타내고 있다. 환경(100)은 임의의 적절한 장치로 실시될 수 있는 컴퓨팅 장치(102)를 포함하고 있으며, 임의의 적절한 장치로는 예컨대, 스마트폰, 태블릿 컴퓨터, 휴대형 컴퓨터(예컨대, 랩톱), 데스크톱 컴퓨터, 웨어러블 장치 등을 들 수 있지만 이것으로 한정되는 것은 아니다. 컴퓨팅 장치(102)의 다양한 예 중 하나가 도 7에 도시되어 있으며, 이하에서 설명한다.
일반적으로 컴퓨팅 장치(102)에는 여러 사용자(104)가 액세스할 수 있으며, 사용자(104)는 컴퓨팅 장치(102)를 활용해서 다양한 작업을 수행할 수 있는 개개인을 가리킨다. 사용자(104)는 예컨대, 생산 작업(예컨대, 워드 프로세싱, 데이터 처리 등), 통신(예컨대, 이메일, 소셜 네트워킹 등), 컨텐츠 소비(예컨대, 오디오 컨텐츠, 비디오 컨텐츠 등), 및 다른 다양한 작업에 컴퓨터(102)를 사용할 수 있다. 사용자(104)는 사용자 식별자(ID)(106)와 관련되어 있으며, 사용자 식별자(ID)(106)는 개개의 사용자(104)를 식별해서 개개의 사용자(104)를 구별하는데 활용될 수 있는 데이터를 가리킨다.
다양한 구현예에서, 사용자(104)는 다양한 기준체 기초해서 여러 그룹(108)으로 통합될 수 있다. 그룹(108) 각각은 예컨대, 공통의 보안 및/또는 액세스 권한을 공유하고 있는 사용자(104)의 집합을 가리킨다. 그룹(108)은 그룹 식별자(ID)(110)를 통해서 서로 구별되며, 그룹 식별자는 그룹(108)을 구별하는데 사용될 수 있는 그룹명을 가리킨다.
컴퓨팅 장치(102)는, 예컨대, 사용자(104)가 다양한 활동 및 작업을 수행할 수 있게 하는 여러가지 기능을 갖고 있다. 예컨대, 컴퓨팅 장치(102)는 운영 체제(112) 및 애플리케이션(114)을 포함한다. 일반적으로 운영 체제(112)는, 하드웨어, 커널-레벨 모듈 및 서비스 등과 같은, 컴퓨팅 장치(102)의 다양한 시스템 컴포넌트를 추출하는(abstract) 기능을 가리킨다. 운영 체제(112)는 예컨대, 컴퓨팅 장치(102)의 다양한 컴포넌트를 애플리케이션(114)으로 추출해서, 컴포넌트와 애플리케이션(114) 사이의 인터렉션을 가능하게 한다.
애플리케이션(114)은, 컴퓨팅 장치(102)를 통해서, 워드 프로세싱, 웹 브라우징, 이메일, 소셜 미디어, 기업용 업무 등과 같은 다양한 작업 및 활동이 수행될 수 있게 하는 기능을 가리킨다. 애플리케이션(114)은 로컬 런타임 환경을 통해서 컴퓨팅 장치(102)에 로컬하게 인스톨될 수도 있고, 및/또는 클라우드-기반 서비스, 웹 앱 등과 같은 원격 기능에 대한 포털을 나타낼 수도 있다. 따라서, 애플리케이션(114)은 로컬하게 실행되는 코드, 원격 호스팅되는 서비스에 대한 포털 등과 같은 다양한 형태를 취할 수 있다.
컴퓨팅 장치(102)는 또한 신뢰가능 플랫폼 모듈(TPM)(116)을 포함하며, 신뢰가능 플랫폼 모듈이란, 컴퓨팅 장치(102) 중에서, 컴퓨팅 장치(102)의 대부분의 혹은 모든 다른 기능에 의한 일반적인 액세스로부터, 보호되는 부분을 가리킨다. TPM(116)은, 별도의 전용 하드웨어 환경(예컨대, 전용 칩), 기존 하드웨어 환경의 하위 부분(예컨대, CPU의 서브-부분), 보호 펌웨어 환경 등과 같은 다양한 방식으로 구현될 수 있다. 일 이상의 구현예에서, TPM(116)은, TCG(Trusted Computing Group)로부터 입수 가능한 신뢰가능 플랫폼 모듈(TPM) 사양에 따른 모듈이다. 그러나, 이것으로 한정되는 것은 아니며, TPM(116)은 다양한 다른 방식으로 구현될 수 있다.
다양한 구현예에 따라서, TPM(116)과의 인터렉션은 TPM 액세스 모듈(118)에 의해 중개된다. 일반적으로 TPM 액세스 모듈(118)은, 운영 체제(112)의 컴포넌트, 애플리케이션(114), 사용자(104) 등과 같은, 컴퓨팅 장치(102)의 다른 컴포넌트가 TPM(116)과 인터렉트하는 것을 가능하게 하는 기능을 가리킨다. 적어도 일부 구현예에서, TPM 액세스 모듈(118)은 TPM(116)으로의 유일한 인터페이스의 역할을 한다. TPM 액세스 모듈(118)은 예컨대, TPM(116)용 장치 드라이버를 가리킨다. TPM 액세스 모듈(118)은, 운영 체제(112)의 컴포넌트, 컴퓨팅 장치(102)의 개별적인 시스템 컴포넌트(예컨대, 커널-레벨 컴포넌트), 이들의 조합 등과 같은 다양한 방식으로 구현될 수 있다.
TPM(116)은 TPM 프로세서(120) 및 TPM 저장부(112)를 포함한다. 다양한 구현예에 따라서, TPM 프로세서(120)는, TPM(116)이 다양한 프로세싱 작업을 수행하는데 활용할 수 있는 전용 하드웨어 프로세싱 유닛을 가리킨다. TPM 저장부(112)는 TPM(116)용 데이터 저장 용량을 가리키며, TPM(116) 외부에 있는 개체에 의한 액세스로부터 보호받는다.
TPM 저장부(112)에는 보안 에셋(124), 인가 정책(126) 및 인가 프린서플(128)이 저장된다. 일반적으로, 보안 에셋(124)은, 특정 개체의 신원, 다양한 타입의 데이터의 진위 및/또는 신뢰 상태 등을 확인하기 위해서 활용될 수 있는 다양한 타입의 보안-관련 정보를 가리킨다. 보안 에셋(124)의 예로는, 보안 키(예컨대, 암호화 키), 보안 인증서, 암호화 복호화 알고리즘, 보호 데이터 등을 들 수 있다. 인가 프린서플(128)이 TPM(116)의 다른 기능과는 별개로 도시되어 있지만, 적어도 일부 구현예에서 인가 프린서플(128)은 TPM 내의 기존의 개체(예컨대, 보안 에셋(124))에 의해 표현될 수도 있다. 보안 에셋(124)이 구성되어서 활용될 수 있는 방법에 대해서는 이하에서 상세하게 설명한다.
인가 정책(126)은 보안 에셋(124)에 대한 액세스를 제어하는 다양한 조건, 규칙, 파라미터, 명령어를 가리킨다. 예컨대, 개개의 인가 정책(126)은 개개의 보안 에셋(124)에 바인딩되어서, 개개의 보안 에셋(124)으로의 액세스가 제각각의 인가 정책(126)을 통해서 제어되게 할 수 있다.
다양한 구현예에 따라서, 인가 프린서플(128)은, 보안 에셋(124)에 대한 액세스를 제어하도록 인가 정책(126)을 구성하는 것과 같이, 운영 체제(OS) 컨텍스트를 TPM(116)에 표현하는 것을 가능하게 하는 루트 객체(root object)를 가리킨다. 일반적으로, OS 컨텍스트는, 컴퓨팅 장치(102)에 대한 다양한 실행 시나리오와 관련해서 일어날 수 있는 다양한 운영 체제 속성 및 파라미터를 가리킨다. 인가 프린서플(128)을 통해서 표현될 수 있는 다양한 OS 컨텍스트 속성의 예로는, 사용자 ID(106), 그룹 ID(110), 애플리케이션(114)에 대한 애플리케이션 식별자(ID)(130) 등을 들 수 있다. 인가 정책(126)은, 개개의 보안 에셋(124)를 특정 인가 정책(126)에 바인딩하는 하나 이상의 인가 프린서플(128)로 구성될 수 있으며, 이하에서는 이하에서 더 설명한다.
적어도 일부 구현예에서, 인가 프린서플(128)은 프린서플 식별자(ID)(132)를 통해서 개별적으로 식별될 수 있으며, 프린서플 식별자(ID)(132) 각각은 인가 프린서플(128)의 다양한 인스턴스를 나타내고 있다. 다양한 구현예에 따라서, 프린서플 식별자(ID)(132)는, 대응하는 인가 프린서플(128)가 작성되는 제각기의 OS 컨텍스트에 기초해서 생성된다. 예컨대, 특정 인가 프린서플(128)을 식별하는 프린서플 ID(132)는, 제각기의 OS 컨텍스트에 대한 식별자를 해시해서, 사용자 ID(106), 그룹 ID(110), 애플리케이션 ID(130), 및 이들의 조합의 다이제스트와 같은 OS 컨텍스트의 다이제스트를 생성함으로써 생성될 수 있다.
비록 프린서플 ID(132)가 인가 프린서플(128)과는 별개로 구현되는 것으로 도시되어 있지만, 이것으로 한정되는 것은 아니다. 예컨대, 적어도 일부 구현예에서, 프린서플 ID(132)는 인가 프린서플(128) 내로 내장될 수도 있고, 및/또는 그 일부로서 구현될 수 있다. 예컨대, 적어도 일부 구현예에서, 프린서플 ID(132)는, 인가 프린서플(128) 중에서, 각각의 인가 프린서플(128)을 식별해서 구별하는데 참조될 수 있는 부분을 가리킬 수도 있다.
프린서플 ID(132)를 사용하는 추가적인 구현예 혹은 대안의 구현예로서, TPM 액세스 모듈(118)은 인가 프린서플 매핑(134)을 활용해서 대응하는 인가 프린서플(128)에 대한 OS 컨텍스트의 매핑을 유지할 수 있고, 인가 프린서플 매핑(134)에 기초해서, 인가 프린서플(128)을 사용하여 TPM(116) 내의 인가 프린서플(128)에 바인딩된 보안 에셋(124)에 액세스할 수 있다.
TPM(116)은 또한 플랫폼 기능(136) 및 플랫폼 레지스터(138)를 포함한다. 플랫폼 기능(136)은, 승인 기능, 키 생성 기능, 암호화 및 복호화 기능, 컨텍스트-관련 기능 등과 같은 정보의 보안 저장을 제공하는데 사용되는 다양한 기능을 가리킨다. 다양한 구현예에 따라서, TPM 액세스 모듈(118)은 플랫폼 기능(136)과 인터렉트해서 인가 프린서플(128), 인가 정책(126) 등을 생성 및/또는 구성할 수 있다.
플랫폼 레지스터(138)는 컴퓨팅 장치(102)의 시스템 상태 및 컨텍스트 정보를 저장하기 위한 저장 위치를 나타낸다. 예컨대, 플랫폼 레지스터(138)는, 시스템 부팅 시간에 수집된 운영 체제(112)의 모듈의 측정값과 같은, 다양한 시스템 컴포넌트의 '측정값'을 저장하는데 활용될 수 있다. 적어도 일부 구현예에서, 플랫폼 레지스터는 TPM(116)의 PCR(platform configuration registers)를 가리킨다.
일반적으로, '측정값'은, 컴퓨팅 장치(102)의 코드 모듈, 컴퓨팅 장치(102)의 구성 데이터 등과 같은, 다양한 장치-관련 데이터를 식별 및/또는 특징짓는 방법을 가리킨다. 본 명세서에서 사용되는 용어 '코드 모듈'은 일반적으로, 애플리케이션(114)의 일부, 서비스, 운영 체제(112)의 모듈, 프로세스, 다양한 2진수 및/또는 실행 가능문(executables) 등과 같은, 실행 가능 코드의 일부분을 가리킨다. 측정값의 예로는, 장치-관련 데이터로부터 생성된 해시값, 데이터 시그니쳐, 장치-관련 데이터의 암화화된 버전 및/또는 장치-관련 데이터 중 일부 등을 들 수 있다. 예컨대, 측정값은 예컨대, SHA-1, SHA-2 등과 같이, SHA(Secure Hash Algorithm)를 장치-관련 데이터에 적용해서 생성될 수 있다.
다양한 구현예에 따라서, 장치-관련 데이터의 측정값은 시스템 부팅시에 생성되어서 플랫폼 레지스터(138)에 저장될 수 있다. 일반적으로, 플랫폼 레지스터(138)는 컴퓨팅 장치(102)의 장치-관련 데이터의 측정값의 시퀀스를 저장하고 있으며, 특정 플랫폼 레지스터(138)의 새로운 값은, 새로운 측정값을 기존 레지스터 값에 첨부하고, 연쇄값의 해시를 계산함으로써 계산된다. 이 처리는, 예컨대, 다수의 코드 모듈과 같은, 장치-관련 데이터의 다수의 다양한 인스턴스에서 반복될 수 있다. 다양한 구현예에 따라서, 플랫폼 레지스터(138)의 현재의 값을 계산하는데 사용되는 프로세스에 기초해서 장치-관련 데이터의 해시를 계산함으로써, 특정한 장치-관련 데이터(예컨대, 코드 모듈)가 로딩되었는지 여부에 대한 후속 판정이 행해질 수 있다. 계산된 해시를 플랫폼 레지스터(138)에 저장된 값과 비교해서, 해시가 그 값과 일치되는지 여부를 확인한다. 해시가 그 값과 일치하면, 이는 코드 모듈이 로딩되었다는 것을 나타내며, 코드 모듈의 현재 버전이 플랫폼 레지스터(138)에서 측정된 버전과 일치한다는 것을 나타낸다.
예컨대, 특정 코드 모듈이 보호 리소스에 대한(예컨대, 보안 에셋(124)에 대한) 액세스를 요청하면, 플랫폼 레지스터(138)의 현재의 측정값이 보안 에셋(124)의 인가 정책(126)에 저장된 값과 비교될 수 있다. 이 값들이 일치하면, 시스템은 인가 정책(126)이 구성되었을 때의 원래의 상태로부터 변경되지 않았으며, 따라서 안전하므로 보호 리소스에 대한 액세스가 허용될 수 있다고 판정할 수 있다. 측정값이 일치하지 않으면, 컴퓨팅 장치의 상태가 안전하지 않으므로, 보호 리소스에 대한 액세스는 거부될 수 있다고 판정할 수 있다. 일반적으로, 코드 모듈의 측정값을 비교하는 처리를 '입증(attestation)'이라고 한다.
환경(100)은 또한 원격 리소스(140)를 포함하며, 이는 컴퓨팅 장치(102)가 네트워크(142)를 통해서 통신해서 액세스 가능한 다양한 타입의 리소스를 나타낸다. 원격 리소스(140)의 예로는 웹 사이트, 컨텐츠 저장부, 네트워크-호스팅되는 애플리케이션(예컨대, 웹 앱), 네트워크-호스팅되는 서비스, 소셜 미디어 플랫폼 등을 들 수 있다. 일반적으로 원격 리소스(140)는, 컨텐츠, 서비스 등에 액세스하는 것과 같이, 컴퓨팅 장치(102)가 인터렉트할 수 있는 임의의 타입의 리소스를 나타낸다. 원격 리소스(140)는 다양한 타입의 컴퓨팅 장치 및/또는 컴퓨팅 장치의 조합을 통해서 구현될 수 있으며, 그 예는 이하에서 도 7과 관련해서 설명한다.
하나 이상의 네트워크(142)는, 환경(100)의 다양한 개체가 통신하는데 사용될 수 있는 네트워크를 가리킨다. 네트워크(142)로는 LAN, WAN, 인터넷 등과 같은 여러가지 다양한 구성을 상정할 수 있다. 적어도 일부 실시예에서, 환경(100) 및/또는 본 명세서의 다른 부분을 참조로 설명되는 기능은 분산형 환경(예컨대, '클라우드를 통해서')으로 구현될 수 있으며, 이에 대해서는 도 7을 참조로 더 설명한다.
도 2는 하나 이상의 구현예에 따른 인가 프린서플(128)의 예시적인 구현예를 나타낸다. 상술한 바와 같이 인가 프린서플(128)은, 운영 체제(112)와 인터렉트하는 다양한 개체의 식별자와 같은, 컴퓨팅 장치(102)에서 일어날 수 있는 다양한 OS 컨텍스트에 기초해서 유도된다.
도 2에는, 인가 프린서플(128)을 유도하는데 사용될 수 있는 다양한 OS 관련 신원 및 속성을 나타내는 OS 컨텍스트(200)의 세트가 포함되어 있다. 또한, OS 컨텍스트(200)에 기초해서 유도되는 인가 프린서플(202)의 세트도 도시되어 있다. 다양한 구현예에 따라서, 인가 프린서플(202)은 다양한 방식으로 유도될 수 있다. 예컨대, TPM(116)은 OS 컨텍스트(200)의 값을 TPM(116) 내부에 있는 키로 사인(sign)해서 인가 프린서플(202)을 생성할 수 있다.
인가 프린서플(202)은 (n)개의 인가 프린서플(204(1),..., 204(n))을 포함한다. 인가 프린서플(204(1), 204(2))은, 상술한 사용자 ID(106)와 같은, 사용자를 서로 구별하는데 사용될 수 있는 사용자 식별자로부터 유도된다. 인가 프린서플(204(3), 204(4), 204(5))은 상술한 그룹 ID(110)와 같은, 그룹을 서로 구별하는데 사용될 수 있는 그룹 식별자로부터 유도된다.
인가 프린서플(204(6), 204(7))은, 상술한 애플리케이션 ID(130)와 같은, 애플리케이션을 서로 구별하는데 사용될 수 있는 애플리케이션 식별자로부터 유도된다. 인가 프린서플(204(8), 204(9))은, 액세스 특권, 보안 특권, 인터렉션 특권 등과 같은, 특권 레벨을 서로 구별하는데 사용될 수 있는 특권 식별자로부터 유도된다. 이들 예시적인 인가 프린서플은 예시적인 것으로, 개시된 구현예의 사상 및 범주 내에서 다양한 다른 타입 및 인스턴스의 인가 프린서플이 사용될 수 있다는 것을 이해할 것이다.
다양한 구현예에 따라서, 다양한 실행 시나리오에서 발생할 수 있는 OS 전황의 다양한 조합을 특징짓기 위해서, 제각기의 인가 프린서플(202)은 다양한 방식으로 결합될 수 있다.
도 3은 일 이상의 구현예에 따른 인가 프린서플(126)의 예시적인 구현예를 나타낸다. 인가 프린서플(126)은 보안 에셋(302)으로 바인딩된 인가 정책(300)을 포함한다. 다양한 구현예에 따라서, 보안 에셋(302)은 상술한 보안 에셋(124)의 일례를 나타낸다. 인가 정책(300)은, 보안 에셋(302)에 대한 액세스를 허용하기 위해서는 만족되어야 하는 다양한 조건을 나타내고 있는 정책 조건(304)을 포함한다. 이 특정 예에서, 정책 조건(304)은 보안 에셋(302)에 대한 액세스가 허가되기 전에 적용되어야 하는 인가 프린서플의 세트를 나타낸다.
예컨대, 정책 조건(304)은 Principal( AppID _E)Principal(Group _B)라는 인가 프린서플을 나타낸다. 따라서, 요청 당사자가 Principal( AppID _E)Principal(Group _B) 모두에 대한 액세스를 갖고 있는 것으로서 승인되면(예컨대, 입증되면), 이 당사자는 보안 에셋(302)에 대한 액세스가 허용될 것이다. 반면에, 요청 당사자가 Principal( AppID _E)Principal(Group _B) 프린서플 중 하나 이상에 대한 액세스를 갖고 있지 않으면, 요청 당사자는 보안 에셋(302)에 대한 액세스가 거부될 것이다.
인가 프린서플(126)은 또한 보안 에셋(308)에 바인딩된 인가 정책(306)을 포함한다. 다양한 구현예에 따라서, 보안 에셋(308)은 상술한 보안 에셋(124)의 일례를 나타낸다. 인가 정책(302)은 보안 에셋(308)에 대한 액세스를 허용하기 위해서는 만족되어야 하는 다양한 조건을 나타내고 있는 정책 조건(310)을 포함한다. 이 특정 예에서, 정책 조건(310)은 보안 에셋(308)에 대한 액세스가 허가되기 전에 적용되어야 하는 인가 프린서플의 세트를 나타낸다.
예컨대, 정책 조건(310)은 Principal(User_A), Principal( AppID _J)Principals(Group _{ B,C })라는 인가 프린서플을 나타낸다. 따라서, 요청 당사자가 Principal(User_A)Principal( AppID _J) 프린서플 모두에 대한 액세스를 갖고 있는 것으로서 승인되면, 이 당사자는 보안 에셋(308)에 대한 액세스가 허용될 것이다. 반면에, 요청 당사자가 Principal(User_A)Principal( AppID _J)Principals(Group _{ B,C }) 프린서플 중 하나 이상에 대한 액세스를 갖고 있지 않으면, 요청 당사자는 보안 에셋(308)에 대한 액세스가 거부될 것이다.
이들 인가 정책 구성은 단지 예로서 제시된 것으로, 인가 정책은 다양한 인가 프린서플 및 조합의 여러가지 어레이를 반영하도록 다른 다양한 방식으로 구성될 수 있다는 것을 이해할 것이다.
이상 본 명세서에서 설명된 기법이 동작할 수 있는 예시적인 환경에 대해서 설명했으며, 이하에서는 일 이상의 실시예에 따른 일부 예시적인 과정을 설명한다.
(예시적인 과정)
이하의 섹션에서는, 일 이상의 실시예에 따른 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 일부 예시적인 과정을 설명한다. 예시적인 과정은 도 1의 환경(100), 도 7의 시스템(700) 및/또는 다른 적절한 환경에서 사용될 수 있다. 일례로, 절차는 예컨대, TPM 액세스 모듈(118)을 통해서 컴퓨팅 장치(102)에 의해 수행될 수 있다. 적어도 일부 실시예에서, 다양한 절차에 대해 설명된 방법은 사용자 인터렉션과는 무관하게 자동으로 구현된다.
도 4는 하나 이상의 실시예에 따른 방법의 단계를 나타내는 흐름도이다. 예컨대, 이 방법은 하나 이상의 실시예에 따라 인가 프린서플을 유도하는 예시적인 과정을 나타낸다.
단계 400에서는, 운영 체제 컨텍스트를 표현하는 것에 대응하는 인가 프린서플이 신뢰가능 플랫폼 모듈에서 유도되게 한다. 일반적으로 운영 체제(OS) 컨텍스트는, 운영 체제와 관련해서 일어날 수 있는 다양한 신원-기반 상태 조건을 나타낸다. 예컨대, TPM 액세스 모듈(118)은 프로세스(예컨대, 애플리케이션(114) 프로세스, 시스템 프로세스 등)로부터, 인가 프린서플을 생성하는 요청을 수신한다. 일반적으로, 이 프로세스는, 애플리케이션 프로세스, 시스템 프로세스 등과 같은, TPM(116)의 외부의 컴퓨팅 장치에서 실행될 수 있는 임의의 프로세스를 나타낸다.
예컨대, 인가 프린서플은 이 프로세스와 관련된 운영 체제 컨텍스트에 기초하고 있다. 따라서 TPM 액세스 모듈(118)은 인가 프린서플이 TPM(116)에서 유도되게 한다. 예컨대, OS 컨텍스트 데이터(예컨대, 사용자 ID, 애플리케이션 ID 등)를 TPM(116)가 신뢰가능 플랫폼 모듈에 대해 보안되어 있는 키를 이용해서 처리해서 인가 프린서플을 유도한다. 따라서, 개개의 인가 프린서플(128)은 다양한 OS 컨텍스트에 대해서 작성될 수 있다.
단계 402에서는, 신뢰가능 플랫폼 모듈과 인터페이스해서, 인가 프린서플을 신뢰가능 플랫폼 모듈에 저장된 보안 에셋에 바인딩시킨다. 예컨대, TPM 액세스 모듈(118)은, 보안 에셋에 대한 액세스가 인가 정책(126)에 의존하는 인가 프린서플이 만족되도록, 인가 프린서플(126)을 구성할 수 있다.
단계 404에서는, 인가 프린서플에 대한 액세스 요청을 수신한다. 예컨대, 프로세스가, 인가 프린서플에 바인딩된 보안 에셋에 대한 액세스를 허용하기 위해서, 인가 프린서플에 대한 액세스를 요청한다.
단계 406에서는, 이 요청에 대한 요청 컨텍스트가 인가 프린서플과 일치하는지 여부를 확인한다. 예컨대, 요청 컨텍스트는, 인가 프린서플에 대한 액세스를 요청하는 프로세스에 대한 OS 컨텍스트에 대응한다. OS 컨텍스트의 예로서, 이 프로세스와 관련된 사용자 식별자, 이 프로세스와 관련된 애플리케이션 식별자, 이 프로세스와 관련된 그룹 식별자, 이 프로세스와 관련된 특권 레벨 등을 들 수 있다.
다양한 구현예에 따라서, 요청 컨텍스트가 인가 프린서플과 일치하는지 여부를 확인하는 것은, 예컨대, 제공되는 OS 컨텍스트와 같은 요청 컨텍스트에 기초해서 인가 프린서플을 재작성함으로써, 인가 프린서플에 대한 액세스를 입증하는 것을 포함한다. 예컨대, 인가 프린서플을 생성하는데 사용되는 키(기본 키 및/또는 루트 키)를 적용해서 요청 컨텍스트를 처리한다. 이후에, 처리된 요청 컨텍스트를 인가 프린서플과 비교해서, 처리된 요청 컨텍스트가 인가 프린서플과 일치하는지 여부를 확인한다. 요청 컨텍스트(예컨대, 현재 OS 컨텍스트)에 기초해서 인가 프린서플을 재작성함으로, 관련 인가 정책이 인가 프린서플에 대한 액세스를 허용할지 여부를 확인하는데 사용될 수 있다.
요청에 대한 요청 컨텍스트가 인가 프린서플과 일치하면('예'), 단계 408에서는 요청 컨텍스트가 인가 프린서플과 일치하는 것에 응답해서 인가 프린서플에 대한 액세스를 허용한다. 적어도 일부 구현예에서, 인가 프린서플에 대한 액세스는, 인가 프린서플에 바인딩된 보안 에셋에 대한 액세스를 허용한다. 예컨대, 인가 프린서플에 대한 액세스 요청은 TPM(116)으로 포워딩될 수 있으며, 이는 요청 컨텍스트가 보안 에셋에 대한 보안 정책을 만족하는 것에 응답해서, 보안 에셋에 대한 액세스를 허용할 수 있다.
상술한 바와 같이, 요청 컨텍스트를 인가 프린서플과 일치시키는 것은, 인가 프린서플을 생성하는데 사용되는 키를 요청 컨텍스트에 적용함으로써 인가 프린서플을 재작성하려는 시도를 포함할 수 있다. 따라서, 인가 프린서플이 요청 컨텍스트를 이용해서 성공적으로 재작성되면, 인가 프린서플에 대한 액세스는 허가된다.
요청에 대한 요청 컨텍스트가 인가 프린서플과 일치하지 않으면('아니오'), 단계 410에서는, 요청 컨텍스트가 인가 프린서플과 일치하지 않는 것에 응답해서 인가 프린서플에 대한 액세스는 거부된다. 예컨대, TPM 액세스 모듈(118)은, 인가 프린서플에 대한 액세스 요청이 TPM(116)으로 포워딩되는 것을 차단한다.
상술한 바와 같이, 요청 컨텍스트를 인가 프린서플과 일치시키는 것은, 인가 프린서플을 생성하는데 사용되는 키를 요청 컨텍스트에 적용함으로써 인가 프린서플을 재작성하려는 시도를 포함할 수 있다. 따라서, 인가 프린서플이 요청 컨텍스트를 이용해서 성공적으로 재작성되지 못하면, 인가 프린서플에 대한 액세스는 허가되지 않는다.
도 5는 일 이상의 실시예에 따른 방법의 단계를 나타내는 흐름도이다. 예컨대, 이 방법은, 일 이상의 실시예에 따라 보안 에셋에 인가 정책을 바인딩하기 위한 예시적인 과정을 나타내는 것이다.
단계 500에서는, 신뢰가능 플랫폼 모듈에 저장된 보안 에셋에 대한 인가 정책을 구성하라는 요청을 수신한다. 예컨대, 이 요청은 컴퓨팅 장치(102)에 로컬하게 존재하는 애플리케이션 및/또는 다른 프로세스로부터 수신된다. 이와 다른 방식으로, 이 요청은 원격 리소스(140)와 같은 원격 개체로부터 수신될 수 있다. 다양한 구현예에 따라서, 이 요청은, 하나 이상의 운영 체제 컨텍스트의 하나 이상의 표현에 개별적으로 대응하는 하나 이상의 인가 프린서플을 식별한다. 적어도 일부 구현예에서, 보안 에셋은 상술한 보안 에셋(124)의 구현예를 표현한다.
단계 502에서는, 하나 이상의 인가 프린서플을 이용해서 신뢰가능 플랫폼 모듈에 인가 정책이 구성되게 한다. 예컨대, TPM 액세스 모듈(118)은 하나 이상의 인가 프린서플을 TPM(116)에 통신하고, 이는 이 하나 이상의 인가 프린서플로 인가 정책(126)을 채운다.
단계 504에서는, 인가 정책이 신뢰가능 플랫폼 모듈에 저장된 보안 에셋으로 바인딩되게 한다. 예컨대, TPM 액세스 모듈(118)은, 인가 정책이 보안 에셋으로 바인딩될 것이라는 것을 TPM(116)에 알린다. 다양한 구현예에 따라서, 보안 에셋에 대한 액세스 요청을 허가할지는 요청 컨텍스트가 인가 정책의 하나 이상의 인가 프린서플과 일치하는지 여부에 의존한다.
단계 504에서는, 보안 에셋에 대한 액세스 요청이 수신된다. 예컨대, 컴퓨팅 장치(102) 상에서 실행 중인 프로세스는 보안 에셋에 대한 액세스를 요청한다.
단계 508에서는, 요청의 요청 컨텍스트가 인가 정책을 만족하는지 확인한다. 예컨대, 요청 컨텍스트가, 인가 정책에 명시되는 하나 이상의 인가 프린서플과 일치하는지 여부를 판정한다. 상술한 바와 같이, 이 요청은, 예컨대, 애플리케이션(114) 중 하나와 관련된, 컴퓨팅 장치(102)에서 실행중인 프로세스에 의해 개시될 수 있다. 따라서, 요청 컨텍스트는 프로세스와 관련된 하나 이상의 OS 컨텍스트를 포함할 수 있으며, 그 예는 상기 설명했다.
다양한 구현예에서, 요청 컨텍스트가 인가 정책을 만족하는지 확인하는 것은 인가 정책에 바인딩된 하나 이상의 인가 프린서플을 재작성하려는 시도를 포함한다. 예컨대, 하나 이상의 인가 프린서플을 생성하는데 사용되는 키는 요청 컨텍스트에 적용된다. 따라서, 하나 이상의 인가 프린서플에 대한 액세스는, 하나 이상의 인가 프린서플이 요청 컨텍스트를 사용해서 성공적으로 재작성되는지 여부에 기초한다.
요청의 요청 컨텍스트가 인가 정책을 만족하면('예'), 단계 510에서, 요청의 요청 컨텍스트가 인가 정책을 만족하는 것에 응답해서, 이 요청을 허용한다. 예컨대, 인가 정책에 바인딩된 하나 이상의 인가 프린서플이 요청 컨텍스트를 이용해서 성공적으로 재작성되면, 보안 에셋에 대한 액세스 요청이 허용된다. 다양한 구현예에 따라서, 이 요청이 허용되면, 요청하는 개체는 보안 에셋에 액세스할 수 있다.
요청의 요청 컨텍스트가 인가 정책을 만족하지 않으면('아니오'), 단계 512에서, 요청의 요청 컨텍스트가 인가 정책을 만족하지 않는 것에 응답해서, 이 요청을 거부한다. 예컨대, 인가 정책에 바인딩된 하나 이상의 인가 프린서플이 요청 컨텍스트를 이용해서 성공적으로 재작성되지 않으면, 보안 에셋에 대한 액세스 요청이 거부된다. 예컨대, 요청하는 개체는 보안 에셋에 대한 액세스가 거부된다.
도 6은 일 이상의 실시예에 따른 방법의 단계를 나타내는 흐름도이다. 예컨대, 이 방법은 일 이상의 실시예에 따라서 인가 정책을 보안 에셋에 바인딩시키는 예시적인 과정을 나타낸다.
단계 600에서는, 컴퓨팅 장치의 프로세스에 대한 인가 프린서플을, 컴퓨팅 장치의 신뢰가능 플랫폼 모듈의 레지스터로 확대한다. 예컨대, TPM 액세스 모듈(118)은 특정 플랫폼 레지스터(138) 상에서 확대 동작을 수행해서, 프로세서의 하나 이상의 인가 프린서플을 레지스터로 확대시킨다. 예컨대, 레지스터는 신뢰가능 플랫폼 모듈의 PCR(platform configuration register)에 대응한다.
단계 602에서는, 신뢰가능 플랫폼 모듈의 레지스터로부터의 데이터에 대한 요청을, 요청중인 개체로부터 수신한다. 다양한 구현예에 따라서, 요청중인 개체는, 애플리케이션(114), 원격 리소스(140) 등과 같이, 신뢰가능 플랫폼 모듈의 외부에 위치한다.
단계 604에서는, 레지스터로부터 요청중인 개체로 데이터를 리턴하는데, 리턴된 데이터는 프로세스에 대한 인가 프린서플에 기초해서 생성된 식별자를 포함한다. 예컨대, 이 식별자는 적어도 부분적으로, 그 프로세스의 운영 체제 컨텍스트에 대응하는 인가 프린서플에 기초해서 생성된다. 예컨대, 상술한 바와 같이, 이 식별자는, 인가 프린서플(128)에 대해서 생성되는 프린서플 ID(132)에 대응할 수 있다. 상술한 바와 같이, 프린서플 ID(132)는 관련 인가 프린서플(128)과는 별개로 구현될 수도 있고, 혹은 다른 방안으로, 관련 인가 프린서플(132)의 내에 포함되거나, 및/또는 그 일부로서 구현되는 식별자로서 구현될 수 있다.
단계 606에서는, 신뢰가능 플랫폼 모듈 내에 저장된 보안 에셋이 인가 프린서플로 구성된 인가 정책에 바인딩될 것이라는 통지를, 요청 중인 개체로부터 수신한다. 예컨대, TPM 액세스 모듈(118)은 요청 중인 개체로부터 요청을 수신한다.
단계 608에서는, 인가 정책을 신뢰가능 플랫폼 모듈 내의 보안 에셋에 바인딩시키며, 인가 프린서플은 보안 에셋에 대한 액세스 조건을 나타낸다. 예컨대, TPM 액세스 모듈(118)은 TPM(116)과 인터렉트해서 보안 에셋에 대한 인가 정책을 구성한다. 일반적으로, 인가 정책은 보안 에셋에 액세스하기 위한 다양한 조건을 명시하고 있다. 예컨대, 인가 정책은, 보안 에셋에 대한 액세스는, 요청 중인 개체가 인가 정책에 명시된 하나 이상의 인가 프린서플과 일치하는지에 의존한다고 명시한다. 적어도 일부 구현예에서, 인가 정책은 보안 에셋에 대한 액세스 조건을 나타내는 인가 프린서플을 다수 명시하고 있다.
이상, 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표시하는 예시적인 과정에 대해서 설명했으며, 이하에서는 일 이상의 실시예에 따른 예시적인 시스템 및 장치에 대해서 설명한다.
(예시적인 시스템 및 장치)
도 7은, 본 명세서에 개시된 다양한 기법을 구현할 수 있는, 일 이상의 컴퓨팅 시스템 및/또는 장치로 표현되는 예시적인 컴퓨팅 장치(702)를 포함하는 예시적인 시스템(700)을 나타내고 있다. 예컨대, 컴퓨팅 장치(702)로서, 도 1을 참조로 상기 설명한 컴퓨팅 장치(102)가 실시될 수 있다. 컴퓨팅 장치(702)는 예컨대, 서비스 제공자의 서버, 클라이언트와 관련된 장치(예컨대, 클라이언트 장치), 온-칩 시스템, 및/또는 다른 적절한 컴퓨팅 장치나 컴퓨팅 시스템이 될 수 있다.
도시된 예시적인 컴퓨팅 장치(702)는 프로세싱 시스템(704), 하나 이상의 컴퓨터 판독 가능 매체(706) 및 하나 이상의 입출력(I/O) 인터페이스(708)을 포함하며, 이들은 서로 통신 가능하게 연결되어 있다. 도시되어 있지는 않지만, 컴퓨팅 장치(702)는 다양한 컴포넌트를 서로 연결시키는 시스템 버스나 혹은 다른 데이터 및 커맨드 전송 시스템을 더 포함하고 있다. 시스템 버스는, 메모리 버스나 메모리 컨트롤러, 주변 버스, USB, 및/또는 다양한 버스 아키텍쳐를 사용하는 프로세서나 로컬 버스와 같은, 다양한 버스 구조의 중 하나 혹은 이들의 조합을 포함할 수 있다. 제어 및 데이터 라인과 같은, 다른 다양한 예가 상정될 수 있다.
프로세싱 시스템(704)은, 하드웨어를 사용해서 하나 이상의 동작을 수행하는 기능부로 도시되어 있다. 따라서, 프로세싱 시스템(704)은 하드웨어 요소(710)로서 도시되어 있으며, 하드웨어 요소(710)는 프로세서, 기능 블록 등으로 구성될 수 있다. 이는, ASIC이나, 혹은 하나 이상의 반도체를 사용해서 형성된 다른 논리 소자로서 하드웨어에서 구현될 수 있다. 하드웨어 요소(710)는 이를 형성하는 재로나 여기서 사용되는 프로세싱 메커니즘에 의해서 한정되는 것이 아니다. 예컨대, 프로세서는 반도체 및/또는 트랜지스터(예컨대, 전자 집적 회로(IC))로 구성될 수 있다. 이 때, 프로세서-실행 가능 명령어는 전자적으로 실행 가능한 명령어가 될 수 있다.
컴퓨터 판독 가능 매체(706)는 메모리/저장부(712)를 포함하는 것으로 도시되어 있다. 메모리/저장부(712)는 하나 이상의 컴퓨터 판독 가능 매체와 관련된 메모리/저장부 용량을 나타낸다. 메모리/저장부(712)는 휘발성 매체(예컨대, RAM) 및/또는 비휘발성 매체(예컨대, ROM, 플래시 메모리, 광학 디스크, 자기 디스크 등)를 포함할 수 있다. 메모리/저장부(712)는 고정형 매체(예컨대, RAM, ROM, 고정형 하드 드라이브 등) 및 착탈형 매체(예컨대, 플래시 메모리, 착탈형 하드 드라이브, 광학식 디스크 등)을 포함할 수 있다. 컴퓨터-판독 가능 매체(706)는 이하 설명하는 바와 같은 다양한 방식으로 구성될 수 있다.
입출력 인터페이스(708)는, 사용자가 컴퓨팅 장치(702)에 커맨드 및 정보를 입력하는 것을 가능하게 하고, 다양한 입출력 장치를 이용하는 사용자 및/또는 다른 컴포넌트나 장치에 정보를 제시하는 것을 가능하게 하는 기능부를 가리킨다. 입력 장치의 예로는, 키보드, 커서 제어 장치(예컨대, 마우스), 마이크(예컨대, 음성 인식 및/또는 구술 입력), 스캐너, 터치 기능(예컨대, 물리적인 터치를 검출하도록 구성된 용량형 센서나 다른 센서), 카메라(예컨대, 적외선 주파수와 같은 휘발성이나 비휘발성 파장을 사용해서, 제스쳐와 같이, 터치를 포함하지 않는 움직임을 검출할 수 있음) 등을 들 수 있다. 출력 장치의 예로는 표시 장치(예컨대, 모니터나 프로젝터), 스피커, 프린터, 네트워크 카드, 촉각-응답 장치 등을 들 수 있다. 따라서, 컴퓨팅 장치(702)는 사용자 인터렉션을 지원하기 위해서 이하 설명하는 바와 같은 다양한 방식으로 구성될 수 있다.
본 명세서는 다양한 기법이 소프트웨어, 하드웨어 요소, 혹은 프로그램 모듈과 관련해서 설명될 수 있다. 일반적으로, 이러한 모듈은, 특정한 작업을 수행하거나 특정한 압축 데이터형을 실시하는 루틴, 프로그램, 객체, 요소, 컴포넌트, 데이터 구조 등을 포함한다. 여기서 사용되는 용어 '모듈', '기능', '개체', 및 '컴포넌트'는 일반적으로, 소프트웨어, 펌웨어, 하드웨어 혹은 이들의 조합을 가리킨다. 본 명세서에 설명되는 기법의 특성은 플랫폼-독립형으로, 이는 다양한 프로세서를 구비한 다양한 시중의 컴퓨팅 플랫폼에서 구현될 수 있다는 것을 의미한다.
상술한 모듈 및 기법의 구현예는, 컴퓨터 판독 가능 매체의 형태에 저장될 수도 있고, 혹은 일부 형태로 전송될 수도 있다. 컴퓨터 판독 가능 매체는 컴퓨팅 장치(702)가 액세스할 수 있는 다양한 매체를 포함할 수 있다. 예컨대, 컴퓨터 판독 가능 매체는 '컴퓨터 판독 가능 저장 매체' 및 '컴퓨터 판독 가능 신호 매체'를 포함할 수 있지만, 이것으로 한정되는 것은 아니다.
'컴퓨터 판독 가능 저장 매체'는, 단순한 신호 전송, 반송파, 혹은 신호 그 자체가 아니라, 정보를 영구적으로 저장할 수 있는 매체 및/또는 장치를 가리킬 수 있다. 컴퓨터 판독 가능 매체는 신호 자체는 포함하지 않는다. 컴퓨터 판독 가능 매체는 휘발성과 비휘발성의, 착탈형 및 착탈 불가형 매체 및/또는 저장 장치와 같은 하드웨어를 포함하며, 이는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈, 논리 소자/회로 혹은 데이터와 같은 정보를 저장하기에 적합한 방법이나 기술로 구현될 수 있다. 컴퓨터 판독 가능 저장 매체의 예로는 RAM, ROM, EEPROM, 플래시 메모리 혹은 다른 메모리 기술, 혹은 CD-ROM, DVD나 다른 광학식 저장부, 혹은 하드디스크, 자기 카세트, 자기 테이프, 자기 디스크 저장부나 다른 자기식 저장 장치, 혹은 다른 저장 장치, 유형의 매체, 그 외의 컴퓨터가 액세스할 수 있는 소망의 정보를 저장하기에 적합한 제조 물품을 들 수 있다.
'컴퓨터 판독 가능 신호 매체'는 네트워크를 통해서 컴퓨팅 장치(702)의 하드웨어에 명령어를 전송하도록 구성된 신호-유지 매체를 가리킨다. 신호 매체는 전형적으로 반송파, 데이터 신호, 혹은 다른 전송 메커니즘과 같은 변조된 데이터 신호 내의 컴퓨터 판독 가능 명령어, 데이터 구조체, 프로그램 모듈, 혹은 다른 데이터를 구현할 수 있다. 신호 매체는 또한 임의의 정보 전달 매체를 포함한다. 용어 '변조된 데이터 신호'는, 신호 내에 정보를 인코딩하는 방식으로 설정 혹은 변경된 하나 이상의 특성을 가진 신호를 의미한다. 예컨대, 통신 매체는 유선 네트워크나 직접 접속과 같은 유선 매체, 및 어쿠스틱, RF, 적외선 및 다른 무선 매체와 같은 무선 매체를 포함하지만, 이것으로 한정되는 것은 아니다.
상술한 바와 같이, 하드웨어 모듈(710) 및 컴퓨터-판독 가능 매체(706)는 하드웨어 형태로 구현된 명령어, 모듈, 프로그래밍 가능 장치 로직 및/또는 고정 장치 로직을 가리키며, 이는 본 명세서에 설명된 기법의 적어도 일부 측면을 구현하도록 일부 실시예에서 사용될 수 있는 것이다. 하드웨어 요소는 직접 회로나 온-칩 시스템, ASIC, FPGA, CPLD 및 실리콘이나 다른 하드웨어 장치의 다른 구현예의 컴포넌트를 포함할 수 있다. 여기서, 하드웨어 요소는, 이 하드웨어 요소 및 실행을 위한 명령어를 예컨대, 상술한 컴퓨터 판독 가능 저장 매체에 저장하는데 사용되는 하드웨어가 실시하는 명령어, 모듈 및/또는 로직에 의해 규정된 프로그램 작업을 수행하는 프로세싱 장치로서 동작할 수 있다.
본 명세서에 개시된 다양한 기술 및 모듈을 구현하는데, 이상의 내용이 조합해서 사용될 수도 있다. 따라서, 소프트웨어, 하드웨어 혹은 프로그램 모듈 및 다른 프로그램 모듈은, 컴퓨터 판독 가능 저장 매체의 일부 형태로 실시되는 하나 이상의 명령어 및/또는 로직으로 구현될 수도 있고, 및/또는 하나 이상의 하드웨어 요소(710)에 의해 구현될 수도 있다. 컴퓨팅 장치(702)는 소프트웨어 및/또는 하드웨어 모듈에 대응하는 특정 명령어 및/또는 기능을 구현하도록 구성될 수 있다. 따라서, 소프트웨어로서 컴퓨팅 장치(702)에 의해 실행 가능한 모듈의 구현은, 예컨대, 컴퓨터 판독 가능 저장 매체 및/또는 프로세싱 시스템의 하드웨어 요소(710)를 사용해서, 적어도 부분적으로 하드웨어에서 달성될 수 있다. 이 명령어 및/또는 기능은 하나 이상의 제조 물품(예컨대, 하나 이상의 컴퓨팅 장치(702) 및/또는 프로세싱 시스템(704))에 의해 본 명세서에 개시된 기법, 모듈 및 예시를 구현하도록 실행/동작될 수 있다.
도 7에는, 예시적인 시스템(700)이 유비쿼터스 환경을 인에이블시켜서, 사용자가 PC, 텔레비전 장치 및/또는 모바일 장치에서 애플리케이션을 실행시킬 때 단절없는 사용자 경험을 하게 하는 것도 도시되어 있다. 애플리케이션을 사용하거나, 비디오 게임을 하거나, 비디오를 보는 중에, 한 장치에서 다른 장치로 넘어갈 때 통상의 사용자 경험에서, 서비스 및 애플리케이션은 실질적으로 이 3가지 환경 모두에서 거의 유사하게 실행된다.
예시적인 시스템(700)에서, 다수의 장치가 중앙 컴퓨터 장치를 통해서 서로 접속되어 있다. 중앙 컴퓨터 장치는 이 다수의 장치에 대해 로컬할 수도 있고, 혹은 이 다수의 장치로부터 이격되어 위치될 수도 있다. 일 실시예에서, 중앙 컴퓨팅 장치는, 네트워크, 인터넷, 혹은 다른 데이터 통신 링크를 통해서 이 다수의 장치에 접속된 하나 이상의 서버 컴퓨터의 클라우드가 될 수도 있다.
일 실시예에서, 이 상호 접속 아키텍쳐는, 다수 장치 사이에서 기능이 전달되는 것을 가능하게 해서, 통상의 단절없는 경험을 다수 장치의 사용자에게 제공할 수 있다. 다수 장치 각각은 물리적인 요건 및 성능이 서로 다를 수 있으며, 중앙 컴퓨팅 장치는 플랫폼을 사용해서 그 장치에 맞춰져 있고 모든 장치에도 공통인 경험을, 장치에 제공하는 것을 가능하게 한다. 일 실시예에서, 타겟 장치의 분류가 작성되어서, 그 장치의 대표적인 분류에 경험이 맞춰진다. 장치의 분류는 장치의 물리적인 특성, 용례의 타입 혹은 다른 공통 특성으로 규정될 수 있다.
다양한 실시예에서, 컴퓨팅 장치(702)는 컴퓨터(714)에서 사용하기 위한 것, 모바일(716)에서 사용하기 위한 것, 및 텔레비전(718)에서 사용하기 위한 것 등과 같은, 다양한 구성을 상정할 수 있다. 이들 구성 각각은, 서로 다른 구조(construct) 및 성능을 구비한 장치를 포함하고 있으며, 따라서 컴퓨팅 장치(702)는 서로 다른 장치 분류 중 하나 이상에 따라서 구성될 수 있다. 예컨대, 컴퓨팅 장치(702)는 PC, 데스크톱, 멀티-스크린 컴퓨터, 랩톱 컴퓨터, 넷북 등을 포함한 장치의 컴퓨터(714) 분류로서 구현될 수 있다.
컴퓨팅 장치(702)는, 모바일 전화기, 휴대형 음악 플레이어, 휴대형 게임기, 태블릿 컴퓨터, 웨어러블 장치, 멀티-스크린 컴퓨터 등과 같은, 모바일 장치를 포함한 장치의 모바일(716) 분류로서 구현될 수도 있다. 컴퓨팅 장치(702)는, 평상시의 시청 환경에서 일반적으로 더 큰 스크린을 갖고 있거나 더 큰 스크린에 접속되는 장치를 포함한, 장치의 텔레비전(718) 분류로서 구현될 수도 있다. 이들 장치는 텔레비전, 셋톱 박스, 게임 콘솔 등을 포함한다.
본 명세서에 개시된 기법은 컴퓨팅 장치(702)의 다양한 구성의 지원을 받을 수 있으며, 본 명세서에 개시된 기법의 특정한 예로 한정되는 것은 아니다. 예컨대, 컴퓨팅 장치(102) 및/또는 TPM 액세스 모듈(118)을 참조로 설명한 기능은, 이하 설명하는 바와 같은 플랫폼(722)을 통해서 '클라우드'(720)를 이용하는 등의, 분산형 시스템을 통해서 모두 혹은 부분적으로 구현될 수 있다.
클라우드(720)는 리소스(724)에 대한 플랫폼(722)을 포함하고 및/또는 이것으로 나타나 있다. 플랫폼(722)은 하드웨어(예컨대, 서버) 및 클라우드(720)의 소프트웨어 리소스의 기본 기능을 이끌어낸다. 리소스(724)는, 컴퓨터 프로세싱이 컴퓨팅 장치(702)로부터 이격되어 있는 서버에서 실행되는 동안 사용될 수 있는 애플리케이션 및/또는 데이터를 포함할 수 있다. 리소스(724)는 또한 셀룰러 네트워크나 Wi-Fi 네트워크와 같은, 인터넷 및/또는 가입자 네트워크를 통해서 제공되는 서비스를 포함할 수 있다.
플랫폼(722)은 리소스 및 컴퓨팅 장치(702)를 다른 컴퓨팅 장치와 접속시키는 기능을 이끌어 낸다. 플랫폼(722)은, 자신을 통해서 구현되는 리소스(724)에 대해 요구되는 요건에 대응하는 리소스의 스케일링 레벨을 제공하도록, 리소스의 스케일링을 이끌어 내는 역할도 한다. 따라서, 상호 접속되는 장치 실시예에서, 본 명세서에 설명되는 기능의 구현은, 시스템(700)에서 분산될 수 있다. 예컨대, 이 기능은 부분적으로 컴퓨팅 장치(702)에서 구현될 수도 있고, 클라우드(720)의 기능을 이끌어 내는 플랫폼(722)을 통해서 구현될 수도 있다.
본 명세서에는, 여기서 설명된 기법을 수행하도록 구현될 수 있는 여러 방법이 개시되어 있다. 방법의 측면은 하드웨어, 펌웨어 혹은 소프트웨어, 혹은 이들의 조합으로 구현될 수 있다. 이 방법은 하나 이상의 장치에 의해 수행되는 동작을 명시하고 있는 단계의 세트로서 개시되며, 각 블록에 의해서 동작을 수행하기 위해서 개시된 순서로 반드시 한정되는 것은 아니다. 또한, 특정 방법에 대해서 개시된 동작은, 일 이상의 구현예에 따른 다양한 방법의 동작과 결합될 수도 있고, 및/또는 이와 교체될 수도 있다. 이 방법의 측면은 환경(100)을 참조로 상기 설명한 다양한 개체 사이의 인터렉션을 통해서 구현될 수 있다.
(결론)
신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 기법이 개시된다. 실시예들이 구조적인 특성 및/또는 방법적인 동작으로 특정된 표현으로 설명했지만, 첨부된 청구항에 정의된 실시예가 이 특정한 특성 혹은 설명되는 동작으로 반드시 한정되는 것은 아니라는 것을 이해할 것이다. 나아가, 특정한 특성 및 동작은 청구되는 실시예를 구현하는 예시적인 형태로서 개시되어 있다.

Claims (20)

  1. 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는 시스템으로서,
    하나 이상의 프로세서와,
    상기 하나 이상의 프로세서에 의한 실행에 응답하여, 상기 시스템으로 하여금 동작들을 수행하게 하는, 컴퓨터-실행 가능 명령어가 저장되어 있는 하나 이상의 컴퓨터-판독 가능 저장 매체를 포함하되,
    상기 동작들은,
    상기 운영 체제 컨텍스트의 표현(representation)에 대응하는 인가 프린서플(authorization principal)이 상기 신뢰가능 플랫폼 모듈에서 유도되게 하는 동작 - 상기 인가 프린서플은 상기 운영 체제 컨텍스트가 상기 신뢰가능 플랫폼 모듈에 표현될 수 있게 하는 루트 객체(root object)를 나타내고, 상기 운영 체제 컨텍스트는 운영 체제와 관련하여 일어나는 하나 이상의 신원-기반 상태 조건(identity-based state condition)을 나타냄 - 과,
    상기 신뢰가능 플랫폼 모듈과 인터페이스하여, 상기 인가 프린서플이 상기 신뢰가능 플랫폼 모듈 내에서 상기 신뢰가능 플랫폼 모듈에 저장된 보안 에셋에 바인딩되게 하는 동작과,
    상기 인가 프린서플에 대한 액세스 요청을 수신하는 동작과,
    상기 요청의 요청 컨텍스트가 상기 인가 프린서플과 일치하는지 여부에 기초하여 액션을 취하는 동작
    을 포함하고,
    상기 액션은,
    상기 요청 컨텍스트가 상기 인가 프린서플과 일치하는 것에 응답하여, 상기 보안 에셋에 액세스할 수 있도록 상기 인가 프린서플에 대한 액세스를 허용하는 것과,
    상기 요청 컨텍스트가 상기 인가 프린서플과 일치하지 않는 것에 응답하여, 상기 보안 에셋에 액세스할 수 없도록 상기 인가 프린서플에 대한 액세스를 거부하는 것
    중 하나를 포함하는,
    시스템.
  2. 제 1 항에 있어서,
    상기 동작들은 신뢰가능 플랫폼 모듈 드라이버에 의해 수행되는,
    시스템.
  3. 제 1 항에 있어서,
    상기 운영 체제 컨텍스트는, 사용자 식별자, 애플리케이션 식별자, 그룹 식별자 및 특권 레벨 중 하나 이상을 포함하는,
    시스템.
  4. 제 1 항에 있어서,
    상기 보안 에셋은, 상기 신뢰가능 플랫폼 모듈에 저장된 보안 키, 보안 인증서, 및 보호 데이터 중 하나 이상을 포함하는,
    시스템.
  5. 제 1 항에 있어서,
    상기 인가 프린서플은, 상기 보안 에셋에 액세스하기 위한 하나 이상의 조건을 명시하고 있는 인가 정책을 통해, 상기 보안 에셋에 바인딩되고,
    상기 하나 이상의 조건은, 상기 인가 프린서플에 대한 액세스가 상기 보안 에셋에 액세스하기 위한 조건임을 명시하는,
    시스템.
  6. 제 1 항에 있어서,
    상기 인가 프린서플에 대한 액세스 요청은, 상기 신뢰가능 플랫폼 모듈 외부의 프로세스에 의해 개시되고,
    상기 요청 컨텍스트는 상기 프로세스와 관련된 사용자 식별자, 상기 프로세스와 관련된 애플리케이션 식별자, 상기 프로세스와 관련된 그룹 식별자 및 상기 프로세스와 관련된 특권 레벨 중 하나 이상을 포함하는,
    시스템.
  7. 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는, 컴퓨터로 구현되는 방법으로서,
    상기 신뢰가능 플랫폼 모듈에 저장된 보안 에셋에 대한 인가 정책을 구성하라는 요청을 수신하는 단계 - 상기 요청은, 각각이 하나 이상의 운영 체제 컨텍스트의 하나 이상의 표현에 대응하는 하나 이상의 인가 프린서플을 나타내며, 상기 하나 이상의 인가 프린서플 중 적어도 하나의 인가 프린서플은 상기 하나 이상의 운영 체제 컨텍스트 중 하나의 운영 체제 컨텍스트가 상기 신뢰가능 플랫폼 모듈에 표현될 수 있게 하는 루트 객체를 나타내고, 상기 운영 체제 컨텍스트는 운영 체제와 관련하여 일어나는 하나 이상의 신원-기반 상태 조건을 나타냄 - 와,
    상기 하나 이상의 인가 프린서플로, 상기 신뢰가능 플랫폼 모듈에 상기 인가 정책이 구성되게 하는 단계와,
    상기 보안 에셋에 대한 액세스 요청 허용이 요청 컨텍스트가 상기 인가 정책의 상기 하나 이상의 인가 프린서플과 일치할 것을 조건으로 하도록, 상기 인가 정책이 상기 신뢰가능 플랫폼 모듈 내에서, 상기 신뢰가능 플랫폼 모듈에 저장된 상기 보안 에셋에 바인딩되게 하는 단계를 포함하는,
    컴퓨터로 구현되는 방법.
  8. 제 7 항에 있어서,
    상기 보안 에셋은, 상기 신뢰가능 플랫폼 모듈에 저장된 보안 키, 보안 인증서, 및 보호 데이터 중 하나 이상을 포함하는,
    컴퓨터로 구현되는 방법.
  9. 제 7 항에 있어서,
    상기 하나 이상의 운영 체제 컨텍스트는, 사용자 식별자, 애플리케이션 식별자, 그룹 식별자 및 특권 레벨 중 하나 이상을 포함하는,
    컴퓨터로 구현되는 방법.
  10. 제 7 항에 있어서,
    상기 하나 이상의 인가 프린서플은, 상기 하나 이상의 운영 체제 컨텍스트를 이용하여 생성된 하나 이상의 키를 포함하는,
    컴퓨터로 구현되는 방법.
  11. 제 7 항에 있어서,
    상기 하나 이상의 인가 프린서플은, 상기 보안 에셋에 액세스하기 위한 액세스 조건을 나타내는 복수의 인가 프린서플을 포함하는,
    컴퓨터로 구현되는 방법.
  12. 제 7 항에 있어서,
    상기 보안 에셋에 대한 액세스 요청을 수신하는 단계와,
    상기 요청에 응답하여 액션을 수행하는 단계
    를 더 포함하되,
    상기 액션은,
    상기 요청의 요청 컨텍스트가 상기 인가 정책을 만족하는 것에 응답하여, 상기 요청을 허용하는 것과,
    상기 요청의 요청 컨텍스트가 상기 인가 정책을 만족하지 않는 것에 응답하여, 상기 요청을 거부하는 것
    중 적어도 하나를 포함하는,
    컴퓨터로 구현되는 방법.
  13. 제 12 항에 있어서,
    상기 하나 이상의 인가 프린서플에 대한 액세스 요청은, 시스템 프로세스에 의해 개시되고,
    상기 요청 컨텍스트는 상기 시스템 프로세스와 관련된 사용자 식별자, 상기 시스템 프로세스와 관련된 애플리케이션 식별자, 상기 시스템 프로세스와 관련된 그룹 식별자 및 상기 시스템 프로세스와 관련된 특권 레벨 중 하나 이상을 포함하는,
    컴퓨터로 구현되는 방법.
  14. 신뢰가능 플랫폼 모듈에서 운영 체제 컨텍스트를 표현하는, 컴퓨터로 구현되는 방법으로서,
    상기 신뢰가능 플랫폼 모듈 외부의 요청 개체로부터, 상기 신뢰가능 플랫폼 모듈의 레지스터로부터의 데이터에 대한 요청을 수신하는 단계와,
    상기 레지스터로부터의 데이터를 상기 요청 개체에 반환하는 단계 - 상기 반환되는 데이터는 프로세스에 대한 인가 프린서플에 기초하여 생성되는 식별자를 포함하고, 상기 인가 프린서플은 상기 프로세스의 운영 체제 컨택스트에 대응하며, 상기 인가 프린서플은 상기 운영 체제 컨텍스트가 상기 신뢰가능 플랫폼 모듈에 표현될 수 있게 하는 루트 객체를 나타내고, 상기 운영 체제 컨텍스트는 운영 체제와 관련하여 일어나는 하나 이상의 신원-기반 상태 조건을 나타냄 - 와,
    상기 요청 개체로부터, 상기 신뢰가능 플랫폼 모듈 내에 저장된 보안 에셋이 상기 인가 프린서플로 구성되는 인가 정책에 바인딩될 것이라는 표시를 수신하는 단계와,
    상기 인가 프린서플이 상기 보안 에셋에 대한 액세스 조건을 나타내도록, 상기 인가 정책이 상기 신뢰가능 플랫폼 모듈 내에서, 상기 신뢰가능 플랫폼 모듈에 저장된 상기 보안 에셋에 바인딩되게 하는 단계를 포함하는,
    컴퓨터로 구현되는 방법.
  15. 제 14 항에 있어서,
    상기 요청 개체로부터 상기 요청을 수신하기 전에, 상기 데이터가 상기 레지스터로 확장되게 하는 단계 - 상기 데이터는 상기 인가 프린서플 및 상기 프로세스와 관련된 하나 이상의 다른 인가 프린서플을 포함함 - 를 더 포함하는,
    컴퓨터로 구현되는 방법.
  16. 제 14 항에 있어서,
    상기 레지스터는 상기 신뢰가능 플랫폼 모듈의 플랫폼 구성 레지스터를 포함하는,
    컴퓨터로 구현되는 방법.
  17. 제 14 항에 있어서,
    상기 보안 에셋은 상기 신뢰가능 플랫폼 모듈에 저장된 보안 키, 보안 인증서, 및 보호 데이터 중 하나 이상을 포함하는,
    컴퓨터로 구현되는 방법.
  18. 제 14 항에 있어서,
    상기 프로세스의 상기 운영 체제 컨텍스트는 상기 프로세스와 관련된 사용자 식별자, 상기 프로세스와 관련된 애플리케이션 식별자, 상기 프로세스와 관련된 그룹 식별자 및 상기 프로세스와 관련된 특권 레벨 중 하나 이상을 포함하는,
    컴퓨터로 구현되는 방법.
  19. 제 14 항에 있어서,
    상기 보안 에셋에 액세스할 수 있도록 하기 위한 상기 인가 프린서플에 대한 액세스 요청을 수신하는 단계와,
    상기 요청에 응답하여 액션을 수행하는 단계를 더 포함하되,
    상기 액션은,
    상기 요청의 하나 이상의 요청 컨텍스트가 상기 인가 정책의 상기 인가 프린서플과 일치하는 것에 응답하여 상기 요청을 허용하는 것과,
    상기 요청의 하나 이상의 요청 컨텍스트가 상기 인가 정책의 상기 인가 프린서플과 일치하지 않는 것에 응답하여 상기 요청을 거부하는 것
    중 적어도 하나를 포함하는,
    컴퓨터로 구현되는 방법.
  20. 제 14 항에 있어서,
    상기 인가 정책은 상기 인가 프린서플 및 적어도 하나의 다른 인가 프린서플로 구성되고, 상기 인가 프린서플 및 상기 적어도 하나의 다른 인가 프린서플은 상기 보안 에셋에 대한 액세스 조건을 나타내는,
    컴퓨터로 구현되는 방법.
KR1020177008058A 2014-09-25 2015-09-23 신뢰가능 플랫폼 모듈에서의 운영 체제 컨텍스트 표현 기법 KR102396070B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/497,221 US9767304B2 (en) 2014-09-25 2014-09-25 Representation of operating system context in a trusted platform module
US14/497,221 2014-09-25
PCT/US2015/051683 WO2016049157A1 (en) 2014-09-25 2015-09-23 Representation of operating system context in a trusted platform module

Publications (2)

Publication Number Publication Date
KR20170059447A KR20170059447A (ko) 2017-05-30
KR102396070B1 true KR102396070B1 (ko) 2022-05-09

Family

ID=54325669

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177008058A KR102396070B1 (ko) 2014-09-25 2015-09-23 신뢰가능 플랫폼 모듈에서의 운영 체제 컨텍스트 표현 기법

Country Status (11)

Country Link
US (1) US9767304B2 (ko)
EP (1) EP3198511B1 (ko)
JP (1) JP6584500B2 (ko)
KR (1) KR102396070B1 (ko)
CN (1) CN107077571B (ko)
AU (1) AU2015320713B2 (ko)
BR (1) BR112017004416B1 (ko)
CA (1) CA2959735C (ko)
MX (1) MX2017003931A (ko)
RU (1) RU2702276C2 (ko)
WO (1) WO2016049157A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3038394A1 (en) * 2014-12-22 2016-06-29 Gemalto Sa Method of restoring a secure element to a factory state
US10586076B2 (en) * 2015-08-24 2020-03-10 Acronis International Gmbh System and method for controlling access to OS resources
US11243782B2 (en) 2016-12-14 2022-02-08 Microsoft Technology Licensing, Llc Kernel soft reset using non-volatile RAM
CN111566678B (zh) 2018-12-03 2023-09-01 戴斯数字有限责任公司 利用动态关系认知的数据交互平台

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119230A (en) 1997-10-01 2000-09-12 Novell, Inc. Distributed dynamic security capabilities
US7275263B2 (en) 2003-08-11 2007-09-25 Intel Corporation Method and system and authenticating a user of a computer system that has a trusted platform module (TPM)
US20080040613A1 (en) 2006-08-14 2008-02-14 David Carroll Challener Apparatus, system, and method for secure password reset
US20090172328A1 (en) 2007-12-31 2009-07-02 Ravi Sahita System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US20120297455A1 (en) 2011-05-17 2012-11-22 Microsoft Corporation Target-based access check independent of access request

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6A (en) * 1836-08-10 Thomas blanghard
JPH11175402A (ja) * 1997-12-10 1999-07-02 Fujitsu Ltd カード型記憶媒体及びカード型記憶媒体のアクセス制御方法並びにカード型記憶媒体用アクセス制御プログラムを記録したコンピュータ読み取り可能な記録媒体
US7716494B2 (en) 2004-07-15 2010-05-11 Sony Corporation Establishing a trusted platform in a digital processing system
US7836299B2 (en) 2005-03-15 2010-11-16 Microsoft Corporation Virtualization of software configuration registers of the TPM cryptographic processor
US7930733B1 (en) 2006-04-10 2011-04-19 At&T Intellectual Property Ii, L.P. Method and system for execution monitor-based trusted computing
US7841000B2 (en) * 2006-10-16 2010-11-23 Lenovo (Singapore) Pte. Ltd. Authentication password storage method and generation method, user authentication method, and computer
JP5116325B2 (ja) * 2007-03-15 2013-01-09 株式会社リコー 情報処理装置、ソフトウェア更新方法及び画像処理装置
US8032741B2 (en) * 2007-08-22 2011-10-04 Intel Corporation Method and apparatus for virtualization of a multi-context hardware trusted platform module (TPM)
US8544092B2 (en) * 2009-03-12 2013-09-24 International Business Machines Corporation Integrity verification using a peripheral device
WO2010105249A1 (en) 2009-03-13 2010-09-16 Rutgers, The State University Of New Jersey Systems and methods for the detection of malware
US20100318782A1 (en) * 2009-06-12 2010-12-16 Microsoft Corporation Secure and private backup storage and processing for trusted computing and data services
US8560839B2 (en) * 2010-12-20 2013-10-15 Microsoft Corporation Tamper proof location services

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6119230A (en) 1997-10-01 2000-09-12 Novell, Inc. Distributed dynamic security capabilities
US7275263B2 (en) 2003-08-11 2007-09-25 Intel Corporation Method and system and authenticating a user of a computer system that has a trusted platform module (TPM)
US20080040613A1 (en) 2006-08-14 2008-02-14 David Carroll Challener Apparatus, system, and method for secure password reset
US20090172328A1 (en) 2007-12-31 2009-07-02 Ravi Sahita System and method for high performance secure access to a trusted platform module on a hardware virtualization platform
US20120297455A1 (en) 2011-05-17 2012-11-22 Microsoft Corporation Target-based access check independent of access request

Also Published As

Publication number Publication date
CA2959735A1 (en) 2016-03-31
RU2017109885A (ru) 2018-09-24
JP6584500B2 (ja) 2019-10-02
CA2959735C (en) 2022-10-18
RU2017109885A3 (ko) 2019-04-01
AU2015320713A1 (en) 2017-03-16
BR112017004416A2 (pt) 2017-12-05
JP2017530471A (ja) 2017-10-12
US20160092691A1 (en) 2016-03-31
EP3198511A1 (en) 2017-08-02
AU2015320713B2 (en) 2020-11-05
EP3198511B1 (en) 2020-07-15
BR112017004416B1 (pt) 2022-12-06
KR20170059447A (ko) 2017-05-30
WO2016049157A1 (en) 2016-03-31
CN107077571A (zh) 2017-08-18
MX2017003931A (es) 2017-06-26
CN107077571B (zh) 2020-03-27
US9767304B2 (en) 2017-09-19
RU2702276C2 (ru) 2019-10-07

Similar Documents

Publication Publication Date Title
US10831886B2 (en) Virtual machine manager facilitated selective code integrity enforcement
CN107408183B (zh) 通过安全硬化管理代理进行的设备证实
US20200034528A1 (en) Personalized and cryptographically secure access control in trusted execution environment
US9762396B2 (en) Device theft protection associating a device identifier and a user identifier
US8839353B2 (en) Attack protection for trusted platform modules
KR102396070B1 (ko) 신뢰가능 플랫폼 모듈에서의 운영 체제 컨텍스트 표현 기법
KR102028670B1 (ko) 클락 윌슨 모델을 적용한 모바일 장치 및 그것의 동작 방법
US10043018B2 (en) Access privilege analysis for a securable asset

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant