Определите анклавы 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).