← Documents Documentation/ABI/testing/configfs-tsm-report GitHub 원문 ↗

Linux 6.18.37 · ABI / testing

TSM attestation report configfs ABI

TSM attestation report instance의 nonce input, provider-specific report와 supplemental blob, generation conflict detection, privilege level 및 SVSM service selection을 설명합니다.

Source pathDocumentation/ABI/testing/configfs-tsm-report
Source versionLinux v6.18.37
TranslationDUJINLABS 전문 번역 + 해설

요약·해설과 원문, 전문 번역을 서로 분리했습니다. API 이름, symbol, source path는 원문 표기를 사용합니다.

1. 요약·해설

원문의 핵심 논리와 kernel programming 관점의 보충 설명입니다. 아래의 전문 번역과는 별도로 작성했습니다.

Attestation input, report와 supplemental blob

configfs-tsm-report:1-44

최대 64-byte input으로 attestation report를 만들고 provider에 따라 report, certificate table 또는 service manifest 같은 supplemental data를 제공합니다.

Provider format과 generation conflict detection

configfs-tsm-report:46-74

Provider가 outblob 형식을 식별하며 input이나 option write마다 증가하는 generation으로 동시 변경을 감지합니다.

Attestation privilege level

configfs-tsm-report:76-94

VMPL 같은 privilege level을 지원하는 provider는 floor부터 TSM_PRIVLEVEL_MAX(3)까지 report level을 지정할 수 있게 합니다.

Service-provider report와 manifest selection

configfs-tsm-report:96-145

SVSM service provider, 전체 또는 특정 service GUID, 요청할 manifest version을 선택해 service-specific attestation report를 생성합니다.

2. 영어 원문 전체

번역 기준이 된 Linux v6.18.37 원문입니다. 줄 번호는 이 버전의 파일 좌표입니다.

원문 전체 펼치기
1 What: /sys/kernel/config/tsm/report/$name/inblob
2 Date: September, 2023
3 KernelVersion: v6.7
5 Description:
6 (WO) Up to 64 bytes of user specified binary data. For replay
7 protection this should include a nonce, but the kernel does not
8 place any restrictions on the content.
9
10 What: /sys/kernel/config/tsm/report/$name/outblob
11 Date: September, 2023
12 KernelVersion: v6.7
14 Description:
15 (RO) Binary attestation report generated from @inblob and other
16 options The format of the report is implementation specific
17 where the implementation is conveyed via the @provider
18 attribute.
19
20 What: /sys/kernel/config/tsm/report/$name/auxblob
21 Date: October, 2023
22 KernelVersion: v6.7
24 Description:
25 (RO) Optional supplemental data that a TSM may emit, visibility
26 of this attribute depends on TSM, and may be empty if no
27 auxiliary data is available.
28
29 When @provider is "sev_guest" this file contains the
30 "cert_table" from SEV-ES Guest-Hypervisor Communication Block
31 Standardization v2.03 Section 4.1.8.1 MSG_REPORT_REQ.
32 https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56421.pdf
33
34 What: /sys/kernel/config/tsm/report/$name/manifestblob
35 Date: January, 2024
36 KernelVersion: v6.10
38 Description:
39 (RO) Optional supplemental data that a TSM may emit, visibility
40 of this attribute depends on TSM, and may be empty if no
41 manifest data is available.
42
43 See 'service_provider' for information on the format of the
44 manifest blob.
45
46 What: /sys/kernel/config/tsm/report/$name/provider
47 Date: September, 2023
48 KernelVersion: v6.7
50 Description:
51 (RO) A name for the format-specification of @outblob like
52 "sev_guest" [1] or "tdx_guest" [2] in the near term, or a
53 common standard format in the future.
54
55 [1]: SEV Secure Nested Paging Firmware ABI Specification
56 Revision 1.55 Table 22
57 https://www.amd.com/content/dam/amd/en/documents/epyc-technical-docs/specifications/56860.pdf
58
59 [2]: Intel® Trust Domain Extensions Data Center Attestation
60 Primitives : Quote Generation Library and Quote Verification
61 Library Revision 0.8 Appendix 4,5
62 https://download.01.org/intel-sgx/latest/dcap-latest/linux/docs/Intel_TDX_DCAP_Quoting_Library_API.pdf
63
64 What: /sys/kernel/config/tsm/report/$name/generation
65 Date: September, 2023
66 KernelVersion: v6.7
68 Description:
69 (RO) The value in this attribute increments each time @inblob or
70 any option is written. Userspace can detect conflicts by
71 checking generation before writing to any attribute and making
72 sure the number of writes matches expectations after reading
73 @outblob, or it can prevent conflicts by creating a report
74 instance per requesting context.
75
76 What: /sys/kernel/config/tsm/report/$name/privlevel
77 Date: September, 2023
78 KernelVersion: v6.7
80 Description:
81 (WO) Attribute is visible if a TSM implementation provider
82 supports the concept of attestation reports for TVMs running at
83 different privilege levels, like SEV-SNP "VMPL", specify the
84 privilege level via this attribute. The minimum acceptable
85 value is conveyed via @privlevel_floor and the maximum
86 acceptable value is TSM_PRIVLEVEL_MAX (3).
87
88 What: /sys/kernel/config/tsm/report/$name/privlevel_floor
89 Date: September, 2023
90 KernelVersion: v6.7
92 Description:
93 (RO) Indicates the minimum permissible value that can be written
94 to @privlevel.
95
96 What: /sys/kernel/config/tsm/report/$name/service_provider
97 Date: January, 2024
98 KernelVersion: v6.10
100 Description:
101 (WO) Attribute is visible if a TSM implementation provider
102 supports the concept of attestation reports from a service
103 provider for TVMs, like SEV-SNP running under an SVSM.
104 Specifying the service provider via this attribute will create
105 an attestation report as specified by the service provider.
106 The only currently supported service provider is "svsm".
107
108 For the "svsm" service provider, see the Secure VM Service Module
109 for SEV-SNP Guests v1.00 Section 7. For the doc, search for
110 "site:amd.com "Secure VM Service Module for SEV-SNP
111 Guests", docID: 58019"
112
113 What: /sys/kernel/config/tsm/report/$name/service_guid
114 Date: January, 2024
115 KernelVersion: v6.10
117 Description:
118 (WO) Attribute is visible if a TSM implementation provider
119 supports the concept of attestation reports from a service
120 provider for TVMs, like SEV-SNP running under an SVSM.
121 Specifying an empty/null GUID (00000000-0000-0000-0000-000000)
122 requests all active services within the service provider be
123 part of the attestation report. Specifying a GUID request
124 an attestation report of just the specified service using the
125 manifest form specified by the service_manifest_version
126 attribute.
127
128 See 'service_provider' for information on the format of the
129 service guid.
130
131 What: /sys/kernel/config/tsm/report/$name/service_manifest_version
132 Date: January, 2024
133 KernelVersion: v6.10
135 Description:
136 (WO) Attribute is visible if a TSM implementation provider
137 supports the concept of attestation reports from a service
138 provider for TVMs, like SEV-SNP running under an SVSM.
139 Indicates the service manifest version requested for the
140 attestation report (default 0). If this field is not set by
141 the user, the default manifest version of the service (the
142 service's initial/first manifest version) is returned.
143
144 See 'service_provider' for information on the format of the
145 service manifest version.
146

3. 한국어 전문 번역

영어 원문의 문단 순서와 의미를 유지한 전체 번역입니다. 코드, 함수명, symbol과 URL은 원문 표기를 유지합니다.

Attestation report input

1-8
항목내용
What/sys/kernel/config/tsm/report/$name/inblob
Date2023년 9월
KernelVersionv6.7
Contact[email protected]
AccessWrite-only
Description사용자가 지정하는 최대 64 byte의 binary data이다. Replay protection을 위해 nonce를 포함해야 하지만 kernel은 내용에 제한을 두지 않는다.

Provider-specific binary attestation report

10-18
항목내용
What/sys/kernel/config/tsm/report/$name/outblob
Date2023년 9월
KernelVersionv6.7
Contact[email protected]
AccessRead-only
Description@inblob과 다른 option으로 생성한 binary attestation report이다. Report 형식은 implementation마다 다르며 @provider attribute가 implementation을 알려 준다.

Optional auxiliary와 manifest blob

20-44
Attribute도입내용
auxblob2023년 10월 / v6.7TSM이 내보낼 수 있는 선택적 supplemental data를 담는 read-only attribute이다. 노출 여부는 TSM에 달려 있고 auxiliary data가 없으면 비어 있을 수 있다.
manifestblob2024년 1월 / v6.10TSM이 내보낼 수 있는 선택적 supplemental manifest data를 담는 read-only attribute이다. 노출 여부는 TSM에 달려 있고 manifest data가 없으면 비어 있을 수 있다.

@provider가 `sev_guest`이면 `auxblob`에는 SEV-ES Guest-Hypervisor Communication Block Standardization v2.03 Section 4.1.8.1 `MSG_REPORT_REQ`의 `cert_table`이 들어 있다.

`manifestblob`의 형식에 관한 정보는 `service_provider`를 참조한다.

outblob format provider

46-62
항목내용
What/sys/kernel/config/tsm/report/$name/provider
Date2023년 9월
KernelVersionv6.7
Contact[email protected]
AccessRead-only
Description@outblob의 format specification 이름이다. 가까운 시점의 예로 `sev_guest`와 `tdx_guest`가 있고, 미래에는 공통 표준 형식이 될 수 있다.

`sev_guest`는 SEV Secure Nested Paging Firmware ABI Specification Revision 1.55 Table 22를, `tdx_guest`는 Intel Trust Domain Extensions Data Center Attestation Primitives의 Quote Generation Library 및 Quote Verification Library Revision 0.8 Appendix 4와 5를 참조한다.

동시 변경을 탐지하는 generation counter

64-74
항목내용
What/sys/kernel/config/tsm/report/$name/generation
Date2023년 9월
KernelVersionv6.7
Contact[email protected]
AccessRead-only
Description@inblob 또는 option을 쓸 때마다 값이 증가한다.

Userspace는 attribute를 쓰기 전에 generation을 확인하고 @outblob을 읽은 뒤 write 횟수가 예상과 맞는지 검사해 conflict를 탐지할 수 있다. 또는 요청 context마다 report instance를 하나씩 만들어 conflict를 막을 수 있다.

TVM attestation privilege level

76-94
AttributeAccess내용
privlevelWrite-onlySEV-SNP `VMPL`처럼 서로 다른 privilege level에서 실행하는 TVM의 attestation report 개념을 provider가 지원할 때 보인다. 이 attribute로 privilege level을 지정한다. 최소값은 @privlevel_floor이며 최대값은 TSM_PRIVLEVEL_MAX(3)이다.
privlevel_floorRead-only@privlevel에 쓸 수 있는 최소 허용값을 나타낸다.

두 attribute의 공통 경로 prefix는 `/sys/kernel/config/tsm/report/$name/`이며, 도입 시점은 2023년 9월, kernel version은 v6.7, contact는 `[email protected]`이다.

Service-provider attestation report

96-111
항목내용
What/sys/kernel/config/tsm/report/$name/service_provider
Date2024년 1월
KernelVersionv6.10
Contact[email protected]
AccessWrite-only
DescriptionSEV-SNP가 SVSM 아래에서 실행되는 경우처럼 TVM용 service provider에서 오는 attestation report 개념을 TSM provider가 지원할 때 보인다. 이 attribute로 service provider를 지정하면 해당 provider가 정의한 attestation report를 만든다.
지원 값현재 지원되는 service provider는 `svsm`뿐이다.

`svsm` service provider는 Secure VM Service Module for SEV-SNP Guests v1.00 Section 7을 참조한다. 원문은 `site:amd.com "Secure VM Service Module for SEV-SNP Guests"`와 document ID `58019`로 검색하도록 안내한다.

전체 또는 특정 service GUID 선택

113-129
항목내용
What/sys/kernel/config/tsm/report/$name/service_guid
Date2024년 1월
KernelVersionv6.10
Contact[email protected]
AccessWrite-only
VisibilityTVM의 service-provider attestation report를 TSM provider가 지원할 때 보인다.

빈/null GUID `00000000-0000-0000-0000-000000`를 지정하면 service provider 안의 모든 active service를 attestation report에 포함하도록 요청한다. 특정 GUID를 지정하면 `service_manifest_version` attribute가 정한 manifest 형식을 사용해 그 service만을 대상으로 report를 요청한다.

Service GUID 형식에 관한 정보는 `service_provider`를 참조한다.

요청할 service manifest version

131-145
항목내용
What/sys/kernel/config/tsm/report/$name/service_manifest_version
Date2024년 1월
KernelVersionv6.10
Contact[email protected]
AccessWrite-only
VisibilityTVM의 service-provider attestation report를 TSM provider가 지원할 때 보인다.
DescriptionAttestation report에 요청하는 service manifest version을 나타낸다. 기본값은 0이다.

사용자가 이 field를 설정하지 않으면 service의 default manifest version, 즉 해당 service의 초기/첫 manifest version을 반환한다. Service manifest version 형식은 `service_provider`를 참조한다.

TSM report instance의 input, generation과 output
Report instance $name 생성generation 확인inblob에 nonce 포함 binary input 기록Option 기록generation 증가outblob 읽기예상 write 수와 generation 비교
Providersev_guest 또는 tdx_guest 등Provider-specific outblob선택적 auxblob
service_provider = svsmservice_guid 선택service_manifest_version 선택Service-specific report선택적 manifestblob
privlevel_floorprivlevel 선택최대 TSM_PRIVLEVEL_MAX(3)선택 privilege level의 report

Report option을 쓰는 동안 generation이 증가하고, provider가 정한 형식으로 report와 선택적 supplemental blob이 생성된다.