Re: [PATCH v3 4/4] platform/x86: intel_tdx_attest: Add TDX Guest attestation interface driver

Isaku Yamahata
2022-04-21T07:05:00Z

On Tue, Apr 19, 2022 at 06:26:43PM -0700,
Sathyanarayanan Kuppuswamy <sathyanarayanan.kuppuswamy@linux.intel.com> wrote:

> On 4/19/22 6:20 PM, Isaku Yamahata wrote:
> > If timeout occurs, the state of adev->tdquote_buf is unknown. It's not safe
> > to continue to using adev->tdquote_buf. VMM would continue to processing
> > getquote request with this buffer. What if TDX_CMD_GEN_QUOTE is issued again,
> > and tdquote_buf is re-used?
>
> This part is not clearly discussed in the specification. May be spec
> should define some reasonable timeout and teardown details.
>
> Regarding not using this buffer again, what happens if we de-allocate
> it on timeout and the host still updates it?

Until GET_QUOTE_IN_FLIGHT is cleared, the shared page is owned by VMM, TD
attestation driver shouldn't reuse/free the pages.

In the case of this driver, I think of two options
- don't timeout. wait for interrupt to arrive and check the shared GPA state.
- allow timeout. When the next request comes, check the shared GPA state.
If it's still GET_QUOTE_IN_FLIGHT, return EBUSY.

It's possible for VMM to keep the shared GPA forever maliciously(DoS) or
unintentionally due to bug. TD can't do much about it.
--
Isaku Yamahata <isaku.yamahata@gmail.com>