> > There are some other use cases that already require tenant to send key to CSP. For example, the > > VM > > image can be provided by tenant and encrypted by tenant's own key, and tenant needs to send key > > to > > CSP when asking CSP to run that encrypted image. > > > I can imagine a few reasons why one would want to encrypt one’s image. > For example, the CSP could issue a public key and state, or even > attest, that the key is wrapped and locked to particular PCRs of their > TPM or otherwise protected by an enclave that verifies that the key is > only used to decrypt the image for the benefit of a hypervisor. Right. I think before tenant releases key to CSP it should always use attestation authority to verify the trustiness of computer node. I can understand that the key can be wrapped by TPM before sending to CSP but need some catch up about using enclave part. The thing is computer node can be trusted doesn't mean it cannot be attacked, or even it doesn't mean it can prevent, ie some malicious admin, to get tenant key even by using legitimate way. There are many SW components involved here. Anyway this is not related to MKTME itself like you mentioned below, therefore the point is, as we already see MKTME itself provides very weak security protection, we need to see whether MKTME has value from the whole use case's point of view (including all the things you mentioned above) -- we define the whole use case, we clearly state who/what should be in trust boundary, and what we can prevent, etc. > > I don’t see what MKTME has to do with this. The only remotely > plausible way I can see to use MKTME for this is to have the > hypervisor load a TPM (or other enclave) protected key into an MKTME > user key slot and to load customer-provided ciphertext into the > corresponding physical memory (using an MKTME no-encrypt slot). But > this has three major problems. First, it's effectively just a fancy > way to avoid one AES pass over the data. Second, sensible scheme for > this type of VM image protection would use *authenticated* encryption > or at least verify a signature, which MKTME can't do. The third > problem is the real show-stopper, though: this scheme requires that > the ciphertext go into predetermined physical addresses, which would > be a giant mess. My intention was to say if we are already sending key to CSP, then we may prefer to use the key for MKTME VM runtime protection as well, but like you said we may not have real security gain here comparing to TME, so I agree we need to find out one specific case to prove that. Thanks, -Kai