Как значение MRENCLAVE работает в удаленной аттестации Intel SGX?

Интересно, как значение MRENCLAVE работает в удаленной аттестации Intel SGX. я нашел это

«MRENCLAVE однозначно идентифицирует любой конкретный анклав, поэтому использование идентификатора анклава ограничит доступ к запечатанным данным только для экземпляров этого анклава. ПРИМЕЧАНИЕ. Различные сборки/версии анклава приведут к другому значению MRENCLAVE». (https://software.intel.com/en-us/blogs/2016/05/04/introduction-to-intel-sgx-sealing)

Насколько я понимаю, MRENCLAVE используется для того, чтобы клиент проверял, совпадают ли полученные MRENCLAVE от поставщика услуг и предполагаемые MRENCLAVE, сгенерированные клиентом. Если нет, то как мы можем проверить, выполняет ли поставщик услуг предполагаемый код и данные при удаленной аттестации?

я имею в виду, что у Алисы есть код анклава и его MRENCLACE (моментальный снимок кода и данных), а затем запросить у Боба его выполнение. Тогда как Алиса может проверить, выполнил ли Боб точный код с цитатой, отправленной Бобом? Я думал, что MRENCLAVE делает это


person 송제호    schedule 07.12.2019    source источник


Ответы (1)


Вы можете внедрить удаленную аттестацию, чтобы доказать, что внутри анклава выполнялись определенные вычисления.

Отчет об аттестации содержит как поле MRSIGNER, так и поле report_data, которое можно заполнить произвольными данными. Как вы уже объяснили, первый можно использовать для проверки исходного кода анклава. Второй можно использовать для доказательства существования закрытого ключа внутри анклава. Сгенерировав пару ключей внутри анклава, вы можете поместить открытый ключ в поле report_data и использовать закрытый ключ для подписи результатов вычислений.

Вы видите полное объяснение в этом ответ

person proslaniec    schedule 10.12.2019