Intel® Software Guard Extensions (Intel® SGX)
Discussion board focused on hardware-based isolation and memory encryption to provide extended code protection in solutions.

Sealing problem

AlvaroPastor
ビギナー
1,732件の閲覧回数

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 件の賞賛
1 解決策
JesusG_Intel
モデレーター
1,712件の閲覧回数

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


元の投稿で解決策を見る

2 返答(返信)
JesusG_Intel
モデレーター
1,713件の閲覧回数

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
モデレーター
1,696件の閲覧回数

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.


返信