Intel Confidential Computing
Discussion board focused on Intel Confidential Computing technologies and how they can protect data and AI security, privacy, and sovereignty.

Sealing problem

AlvaroPastor
Beginner
2,403 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
2,383 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

0 Kudos
2 Replies
JesusG_Intel
Moderator
2,384 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


0 Kudos
JesusG_Intel
Moderator
2,367 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.


0 Kudos
Reply