Предположим следующий сценарий: мы хотим реализовать менеджер паролей с открытым исходным кодом, который использует центральную службу, позволяющую различным клиентам (на разных устройствах) синхронизировать свои локальные базы данных. Неважно, находится ли этот сервис в компании или на сервере пользователя (сравните со сценариями использования owncloud). Чтобы сделать наше приложение более «безопасным», мы хотим использовать анклав Intel SGX для центральной службы (пожалуйста, игнорируйте текущие исследования атак на анклавы SGX).
Тогда типичный рабочий процесс будет таким:
- локальный клиент подтверждает центральный анклав
- пользователь регистрируется/логинится
- (локальная и удаленная базы данных синхронизируются)
- пользователь хранит / извлекает пароли
Теперь мой вопрос: должен ли каждый пользователь нашего менеджера паролей регистрироваться в службе аттестации Intel (IAS)? Если да, то не будет ли это означать, что, поскольку совместное использование закрытого ключа действительно плохо, каждое отдельное устройство должно быть зарегистрировано?
Согласно моим исследованиям, да, по крайней мере на этапе разработки и тестирования. Я не смог найти никакой общедоступной информации для производственных сценариев. Все, что я знаю, это то, что регистрация бизнеса меняет поведение анклава (его можно запустить в рабочем режиме), что здесь не имеет никакого значения. У меня две мысли по этому поводу:
- Если я прав, разве это не еще одно препятствие для SGX? Использование SGX без функции аттестации кажется бесполезным.
- Как такие службы, как https://www.fortanix.com/, обходят или решают проблему? Их документация не дает намека на необходимое взаимодействие с Intel.
Описанный выше сценарий является лишь примером; его можно улучшить, и мы не планируем его реализовывать. Но было намного проще описать сценарий, который можно легко представить и который кажется реалистичным вариантом использования SGX, чем описывать наши текущие планы проекта.
P.S.: Этот вопрос как бы связан с лицензированием разработчиков Intel SGX и открытым исходное программное обеспечение