Определите анклавы SGX, работающие в той же системе

У меня есть два приложения A1 и A2, оба создают там свой собственный анклав E1 и E2. Третье приложение A3 связано с A1 и A2. Возможно ли для A3 определить, действительно ли два анклава E1 и E2 работают в одной системе?

2 ответа

Решение

Подписывающая личность предоставляется органом, который подписывает анклав до его распространения. Это значение называется MRSIGNER и будет одинаковым для всех анклавов, подписанных с одинаковыми правами доступа. Таким образом, в одной и той же фирме-разработчике все анклавы должны иметь одинаковое значение MRSIGNER, если они подписаны с одинаковым идентификатором подписи.

Эти значения MRSIGNER из двух разных анклавов в среде разработки можно использовать для проверки того, принадлежат ли два анклава одной и той же среде.

Я не согласен с ответом Сурентара. Если E1 и E2 подписаны одним и тем же идентификатором подписи, MRSIGNER всегда будет одинаковым для E1 и E2. Потому что MRSIGNER - это хэш этой идентичности.

Если A3 также выполняется на той же платформе, он может просто создать анклав E3 и использовать локальную аттестацию, которая будет успешной только для анклавов на той же платформе.

Если у вас есть контроль над E1 и E2, они могут использовать локальную аттестацию, чтобы убедиться, что они работают на одной и той же платформе. Тогда A3 должен будет использовать удаленную аттестацию, чтобы убедиться, что он может доверять выражению E1 (или E2).

Другие вопросы по тегам