TPM2 "개체 컨텍스트"란 무엇입니까?

TPM2 "개체 컨텍스트"란 무엇입니까?

매뉴얼 페이지tpm2_load다음과 같은 예가 있습니다.

개체를 로드하려면 먼저 기본 개체 아래에 개체를 만들어야 합니다. 따라서 첫 번째 단계는 주 개체를 만드는 것입니다.

tpm2_createprimary -c primary.ctx

2단계는 기본 개체 아래에 개체를 만드는 것입니다.

tpm2_create -C primary.ctx -u key.pub -r key.priv

tpm2_createprimary에서 생성하고 사용하는 Primary.ctx 파일은 정확히 무엇입니까 tpm2_create? 매뉴얼 페이지tpm2_createprimary이를 "객체 컨텍스트"라고 부릅니다.

-c, --key-context=FILE:

생성된 메인 객체의 객체 컨텍스트를 저장하기 위한 파일 경로입니다.

다음을 통해 파일 내용에 대한 정보를 얻을 수 있습니다 tpm2_print -t TPMS_CONTEXT primary.ctx.

version: 1
hierarchy: owner
handle: 0x80000000 (2147483648)
sequence: 128
contextBlob:
        size: 1506

그러나 나는 아직도 내가 보고 있는 것이 무엇인지 이해하지 못했습니다. 이 "객체 컨텍스트" 파일은 무엇이며 왜 필요한가요?

답변1

저는 현재 이것에 대해서도 연구 중이며, 지금까지 제가 이해한 바에 따르면 "컨텍스트"는 본질적으로 개체의 암호화된 형태이거나 TPM(및 TPM만)이 해당 개체를 다시 파생하는 데 사용할 수 있는 정보입니다. TPM의 보호된 하드웨어 공간입니다.

이러한 기능이 필요한 이유는 TPM에서 작동하는 RAM/메모리의 양이 극히 적기 때문에 특정 개체와 관련된 TPM에서 수행하려는 작업을 수행하려면 해당 개체를 불러와야 할 수 있기 때문인 것 같습니다. 작업을 수행하려는 시점에 TPM을 다시 로드합니다. 예를 들어 TPM이 다음과 같은 기능만 지원하는 것은 드문 일이 아닌 것 같습니다.특정 시점에 실제로 로드된 개체의 대략적인 수입니다.

암호화되지 않은 전체 키를 TPM 외부의 파일에 저장하면 TPM의 목적 중 일부가 무효화됩니다. 왜냐하면 이러한 키를 사용하는 암호화 작업은 작업에 대한 인증 정책을 시행하는 TPM의 능력을 넘어 TPM 외부에서 수행될 수 있기 때문입니다. 예를 들어 올바른 비밀번호를 사용해야만 수행할 수 있습니다. 따라서 이러한 개체 컨텍스트 파일 자체에는 TPM만 해독할 수 있는 암호화된 데이터가 포함되어 있는 것 같습니다.

또한 이렇게 저장된 컨텍스트는 TPM 실행의 단일 전원 공급 장치 수명 동안에만 사용할 수 있는 것으로 나타납니다. 즉, 전원 재설정 후에는 사용할 수 없게 됩니다. 이는 TPM의 휘발성 RAM에 있는 "비영구 엔터티"에 적용되기 때문입니다. 비휘발성 RAM에 저장된 객체만 전원 재설정 시 안정적으로 사용할 수 있습니다. tpm2_evictcontrol여기에는 재설정 사이에 저장/지울 수 있는 "직렬화된 영구 핸들"을 생성하는 도구와 그 사이에 사용되는 휘발성 RAM이 포함되지만 이에 대해 100% 확신할 수는 없습니다.

내 말이 맞는지 아직 100% 확신할 수 없습니다. 여기서 더 명확한 결론을 내릴 수 있으면 이 답변을 업데이트하겠습니다.


일부 참고자료:

1 부~의TPM 2.0 라이브러리 사양정의하다문맥다음과 같이:

4.17 문맥

동일한 유형의 다른 객체와 구별하거나 데이터 객체의 한 버전을 다른 버전과 구별하기 위해 데이터 객체에 대한 한정된 정보를 제공하는 데이터 모음입니다.

이것"TPM 2.0 실용 가이드"이 책(무료 다운로드, CC BY-NC 라이센스)에는 다음 내용이 포함되어 있습니다.

18장, 294쪽

TPM의 내부 메모리는 제한되어 있으므로 개체, 세션 및 시퀀스를 메모리 안팎으로 동적으로 교체해야 합니다. 예를 들어 Microsoft 에뮬레이터로 구현된 TPM 2.0의 참조 구현에서는 개체 슬롯 3개에 대한 공간만 허용됩니다. 개체 슬롯은 개체 또는 시퀀스를 위한 내부 TPM 메모리입니다. 세 개의 세션 슬롯도 있습니다.

페이지 295:

TPM2_ContextSave임시 엔터티의 컨텍스트를 저장하고 해당 엔터티의 컨텍스트를 반환합니다. 반환된 컨텍스트는 암호화되고 무결성이 보호됩니다. 이를 수행하는 방법은 컨텍스트가 저장된 정확히 동일한 TPM에만 로드되도록 허용하는 것입니다. 저장된 컨텍스트는 다른 TPM에 로드할 수 없습니다.

8장 100페이지로 돌아가서:

비지속적 엔터티는 전원 주기 전반에 걸쳐 지속되지 않습니다. (정확히 말하면 사양에서 언급하는 것처럼 TPM 재설정(다시 시작)을 통해 지속되지 않습니다. TPM 다시 시작(최대 절전 모드에서 재개) 또는 TPM 재개(절전 모드에서 재개)를 통해 지속됩니다.) 엔터티는 저장될 수 있습니다(참조). 리소스 TPM2_ContextSave), TPM 암호화 메커니즘은 전원을 껐다 켠 후에 저장된 컨텍스트가 로드되는 것을 방지하여 변동성을 적용합니다.

관련 정보