Да, это возможно.
Конструкция SGX поддерживает одновременное использование нескольких анклавов в системе, что необходимо в многопроцессорных средах.Это достигается за счет разделения EPC на 4 КБ страницы, которые можно назначать различным анклавам.EPC использует тот же размер страницы, что и функция преобразования адресов архитектуры.
(источник)
Просмотр документов Intel SGX SDK (страница92) вы можете видеть, что функция sgx_create_enclave
различает экземпляры анклавов, принимая уникальные enclave_id
:
sgx_status_t sgx_create_enclave (
const char *file_name,
const int debug,
sgx_launch_token_t *launch_token,
int *launch_token_updated,
sgx_enclave_id_t *enclave_id, // here
sgx_misc_attribute_t *misc_attr
);
Эти идентификаторы анклавов используются приложением для выполнения вызовов ECALL с использованием недоверенных прокси-функций:
// demo.edl
enclave {
trusted {
public void get_secret([out] secret_t* secret);
};
}
// generated function signature
sgx_status_t get_secret(sgx_enclave_id_t eid, secret_t* secret);
Вы можете найти полное объяснение на стр. 27