Исполняемый исполняемый файл Intel SGX на удаленной машине - PullRequest
0 голосов
/ 28 января 2019

Я портировал некоторый код в SGX, в Linux, который я хотел бы в конце концов запустить на удаленном сервере.
Я заметил, что если я собираю программу, а затем использую тот же исполняемый файл для запуска программывнутри SGX на другом компьютере, отличном от того, на котором программа была построена с использованием SGX SDK, код по-прежнему выполняется без проблем.

Теперь, если во время сборки я посмотрю на значение MRENCLAVE, я наблюдаючто значение отличается, если я создаю один и тот же код на разных машинах.Если я отправляю исполняемую сборку на машине A на машину B и не собираю ее снова на машине B, то значение MRENCLAVE - это то, которое я получил от сборки его на машине A. Вопрос в том, что это значение будет другим, если я соберукод на самой машине B.Не вызывает ли это никаких проблем, если я хочу выполнить аттестацию кода на машине B, но не хочу перестраивать проект на машине B и вместо этого использовать сборку с машины A?

1 Ответ

0 голосов
/ 29 января 2019

Насколько мне известно, измерение MRENCLAVE зависит от цепочки используемых инструментов (см. https://pdfs.semanticscholar.org/bc12/7b2228219f2b36b66bebe71a844e510e8efe.pdf,, разделы 5.6.3 и 5.6.4), поскольку оно косвенно является хешем инструкций по сборке и создается явным образоминструкции по сборке при создании анклава (EEXTEND).Таким образом, я ожидаю, что вы, по крайней мере, используете разные версии компилятора на упомянутых машинах?

...