Attualmente sto leggendo su SGX di Intel, in particolare sulla parte di attestazione remota. Ho delle domande su questo argomento.
Consideriamo il seguente protocollo:
L'enclave A e B eseguono l'attestazione remota. Ciascuno di essi genera una coppia di chiavi asimmetriche (sk_X, pk_X). Si scambiano le virgolette:
A -> B: QUOTE{pk_A}
B -> A: QUOTE{pk_B}
Consideriamo che c'è un attaccante MitM, che intercetta le cui citazioni e le inoltra. È possibile che l'attaccante legga le chiavi pubbliche o sia in qualche modo crittografato? Non sono riuscito a trovare le informazioni corrette nella documentazione.
Ho trovato il seguente documento: intel-sgx -sviluppatore-guida
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
Sembra che tutti siano in grado di leggere i dati. Per prevenire un attacco MitM, le enclave devono verificare l'hash della chiave pubblica dell'ISV (fornitore di software indipendente) e forse l'ID del prodotto.