Skip to content

Commit 26b94a6

Browse files
committed
docs: add PIID reference for manifest
1 parent ad043dd commit 26b94a6

File tree

2 files changed

+57
-0
lines changed

2 files changed

+57
-0
lines changed

docs/docs/architecture/components/manifest.md

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,59 @@ Attributes specifies various attested properties of the TDX VM and is documented
305305

306306
The extended features available mask (`XFAM`) determines the set of extended features available for use by the guest and is documented in Section 3.4.2 (`XFAM`) in the [TDX ABI Spec].
307307

308+
### `ReferenceValues.tdx.AllowedPIIDs`
309+
310+
These are matched against the `PIID` field from the PCK certificate, as documented in section 1.3.5 of the [SGX PCK Spec].
311+
If the list is empty or null, all PIIDs are accepted.
312+
313+
In case hardware is operated by you instead of a third party, or you are able to gain physical access to the hardware to audit it,
314+
you can obtain the PIID with the following steps:
315+
316+
1. Install and run Intel's [`PCKIDRetrievalTool`].
317+
This should place a CSV file in your working directory.
318+
2. Retrieve the following fields from the CSV file:
319+
- `EncryptedPPID`
320+
- `PCE_ID`
321+
- `CPUSVN`
322+
- `PCE ISVSVN`
323+
3. Use these values to [request a PCK certificate from Intel PCS](https://api.portal.trustedservices.intel.com/content/documentation.html#pcs-certificate-v4).
324+
Note that the response contains intermediate certificates in the `SGX-PCK-Certificate-Issuer-Chain` header that are required to verify the PCK certificate's signature.
325+
4. Verify that the PCK certificate chains back to Intel's root, for example with `openssl verify`.
326+
5. Parse the PCK certificate to find the SGX extension address:
327+
328+
```sh
329+
openssl asn1parse -in pck.pem
330+
```
331+
332+
Example output, showing the extension address `624` right after its ASN.1 OID:
333+
334+
```txt
335+
613:d=5 hl=2 l= 9 prim: OBJECT :1.2.840.113741.1.13.1
336+
624:d=5 hl=4 l= 554 prim: OCTET STRING [HEX DUMP]: [...]
337+
```
338+
339+
6. Parse the SGX extension to find the PIID:
340+
341+
```sh
342+
openssl asn1parse -in pck.pem --strparse $ADDRESS
343+
```
344+
345+
Example output with `ADDRESS=624`, showing the PIID right after its ASN.1 OID:
346+
347+
```txt
348+
454:d=2 hl=2 l= 10 prim: OBJECT :1.2.840.113741.1.13.1.6
349+
466:d=2 hl=2 l= 16 prim: OCTET STRING [HEX DUMP]:E90210702A2CC5AD9764F29DDC8FDE8C
350+
```
351+
352+
Copy the value shown after `[HEX DUMP]` into the `AllowedPIIDs` field.
353+
354+
:::warning
355+
356+
The EncryptedPPID must be retrieved from a machine by physically accessing it.
357+
If you retrieve this value via a remote channel, your traffic could already be redirected to a hostile environment that allows an attacker physical access.
358+
359+
:::
360+
308361
## `WorkloadOwnerKeyDigests` {#workload-owner-key-digests}
309362

310363
A list of workload owner public key digests.
@@ -330,3 +383,5 @@ Doing the same for the `SeedshareOwnerKeys` field makes Coordinator recovery and
330383
[`snphost`]: https://github.com/virtee/snphost
331384
[SEV ABI Spec]: https://www.amd.com/content/dam/amd/en/documents/developer/56860.pdf
332385
[TDX ABI Spec]: https://cdrdv2.intel.com/v1/dl/getContent/733579
386+
[SGX PCK Spec]: https://api.trustedservices.intel.com/documents/Intel_SGX_PCK_Certificate_CRL_Spec-1.5.pdf
387+
[`PCKIDRetrievalTool`]: https://github.com/intel/confidential-computing.tee.dcap/blob/717f2a91ca732c3309b0c59d21757463133eb440/tools/PCKRetrievalTool/README.txt

tools/vale/styles/config/vocabularies/edgeless/accept.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,10 @@ paravisor
119119
passthrough
120120
PCIe?
121121
PCRs?
122+
PIIDs?
122123
plaintext
123124
podman
125+
PPID
124126
precalculator
125127
protobuf
126128
proxied

0 commit comments

Comments
 (0)