Intel® Software Guard Extensions (Intel® SGX)
Use hardware-based isolation and memory encryption to provide more code protection in your solutions.

Sealing problem

AlvaroPastor
Beginner
281 Views

Hi,

I would like to ask something about sealing. If you seal your data using MRENCLAVE and as Intel states "anyone can load your enclave", how can you prevent that attacker load your enclave and unseal your data? 

Thanks.

0 Kudos
1 Solution
JesusG_Intel
Moderator
261 Views

Hello Alvaro,


You are correct. This is why you have to implement a policy for checking a shared secret between the untrusted application and the enclave before the enclave returns the unsealed data.


Enclaves do not trust the application that loads them, that is why those applications are called "unstrusted."


One way to do this is to create a payload structure that includes a secret and the data. When unsealing the payload, the untrusted application has to provide the enclave the secret that was originally sealed with the data. The enclave compares the provided secret to the original secret that it sealed. If they match, the enclave returns the data to the untrusted application.


Refer to http://www.sgx101.com/portfolio/password_wallet/ for an example of how to seal a user's password and the wallet together. Before returning the unsealed data, the enclave checks that the password provided by the untrusted application matches the unsealed password.


Sincerely,

Jesus G.

Intel Customer Support


View solution in original post

2 Replies
JesusG_Intel
Moderator
262 Views

Hello Alvaro,


You are correct. This is why you have to implement a policy for checking a shared secret between the untrusted application and the enclave before the enclave returns the unsealed data.


Enclaves do not trust the application that loads them, that is why those applications are called "unstrusted."


One way to do this is to create a payload structure that includes a secret and the data. When unsealing the payload, the untrusted application has to provide the enclave the secret that was originally sealed with the data. The enclave compares the provided secret to the original secret that it sealed. If they match, the enclave returns the data to the untrusted application.


Refer to http://www.sgx101.com/portfolio/password_wallet/ for an example of how to seal a user's password and the wallet together. Before returning the unsealed data, the enclave checks that the password provided by the untrusted application matches the unsealed password.


Sincerely,

Jesus G.

Intel Customer Support


JesusG_Intel
Moderator
245 Views

This thread has been marked as answered and Intel will no longer monitor this thread. If you want a response from Intel in a follow-up question, please open a new thread.


Reply