Intel SGX запускает исполняемый файл на удаленной машине

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

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


sgx
person Mayank    schedule 28.01.2019    source источник


Ответы (1)


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

person Marc    schedule 29.01.2019