intel / SGXDataCenterAttestationPrimitives

Other
279 stars 166 forks source link

How SGX1 verify SGX2-enclave-generated quote? #194

Open zzzzzzch opened 3 years ago

zzzzzzch commented 3 years ago

hi guys, In our project, we have a SGX 1.0 network, and we hope to support the addition of SGX 2.0 nodes in the existing network, that's to say, SGX1 enclave can verify SGX2-enclave-generated quote. How can we do it?

hyjiang commented 3 years ago

Actually quote verification doesn't depend on SGX1 and SGX2. But QvE is not in legacy LE White list, it means you cannot load QvE on SGX1 system, which means you cannot verify SGX2 quote in QvE on SGX1 system. But you can still using QVL to verify quote, it works even on non-SGX capable system.

guzongmin commented 3 years ago

@hyjiang QVL is not a trusted library. Is there any trusted way for SGX1 enclave to verify the SGX2 quote? The issue is: SGX1 enclave is running in untrusted OS.

hyjiang commented 3 years ago

@hyjiang QVL is not a trusted library. Is there any trusted way for SGX1 enclave to verify the SGX2 quote? The issue is: SGX1 enclave is running in untrusted OS.

Suppose there is good way to allow QvE on SGX1 system. Potential solutions I can see.

jsun39 commented 3 years ago

for the item 2, the Quote Verification maybe fail, because the MRSigner of QvE has changed.

hyjiang commented 3 years ago

for the item 2, the Quote Verification maybe fail, because the MRSigner of QvE has changed.

It works, because user can also modify and build TVL library by himself. Then the whole flow can work. But it means end user controls the whole trusted verification flow, and it may bring some potential security risk if user forgot to align with Intel latest QvE and TVL.

hyjiang commented 3 years ago

Update.

Intel has added QvE into SGX1 launch allow list. So it means you can launch QvE on SGX1 system, and ECDSA trusted quote verification can be done on SGX1 system.

Please restart AESM to update launch allow list and have a try.