I am currently reading up on Intel's SGX, especially the remote attestation part. I am having a questions regarding this topic.
Let us consider the following protocol:
Enclave A and B do remote attestation. Each of them generates an asymmetric key pair (sk_X, pk_X). They exchange the quotes:
A -> B: QUOTE{pk_A}
B -> A: QUOTE{pk_B}
Let us consider there is a MitM attacker, who intercepts whose quotes and forwards them. Is it possible for the attacker to read out the public keys or are they somehow encrypted? I could not find proper information in the documentation.
I found the following document: intel-sgx-developer-guide
A quote includes the following data:
- Measurement of the code and data in the enclave.
- A hash of the public key in the ISV certificate presented at enclave initialization time.
- The Product ID and the Security Version Number (SVN) of the enclave.
- Attributes of the enclave, for example, whether the enclave is running in debug mode.
- User data included by the enclave in the data portion of the report structure. Allows establishing a secure channel bound to the remote attestation process so a remote server may provision secrets to the entity that has been attested
- A signature block over the above data, which is signed by the Intel EPID group key
It sounds like everyone would be able to read the data. In order to prevent a MitM attack, the enclaves have to verify the hash of the public key of the ISV (independent software vendor) and maybe the product ID.