Использование Intel SGX Remote Attestation в архитектуре клиент-сервер - PullRequest
0 голосов
/ 28 января 2019

Предположим следующий сценарий: мы хотим реализовать менеджер паролей с открытым исходным кодом, который использует центральную службу, которая позволяет различным клиентам (на разных устройствах) синхронизировать свои локальные базы данных.Не имеет значения, запущена ли эта служба компанией или на сервере пользователя (сравните со сценариями использования owncloud).Чтобы сделать наше приложение более «безопасным», мы хотим использовать анклав Intel SGX для центральной службы (пожалуйста, не обращайте внимания на текущие исследования атак на анклавы SGX).

Тогда типичным рабочим процессом будет:

  1. локальный клиент подтверждает центральный анклав
  2. пользовательские регистры / журналы в
  3. (локальная и удаленная база данныхсинхронизируются)
  4. пользователь хранит / получает пароли

Теперь мой вопрос: нужно ли каждому пользователю нашего менеджера паролей регистрироваться в службе аттестации Intel (IAS)?Если да, разве это не означает, что, поскольку обмен секретными ключами действительно плох, каждое устройство должно быть зарегистрировано?

Согласно моим исследованиям, ответ, по крайней мере, на этапе разработки и тестирования, да.Я не смог найти публичную информацию для сценариев производства.Все, что я знаю, это то, что регистрация бизнеса меняет поведение анклава (его можно запустить в производственном режиме), что здесь не имеет значения.У меня есть две мысли по этому поводу:

  1. Если я прав, не является ли это еще одним ограничителем шоу для SGX?Использование SGX без функции аттестации кажется бесполезным.
  2. Как такие сервисы, как https://www.fortanix.com/ обходят или решают проблему?Их документация не дает подсказки для необходимого взаимодействия с Intel.

Вышеописанный сценарий является лишь примером;его можно улучшить, и мы не планируем его внедрять.Но было гораздо проще описать сценарий, который легко представить и представляется реалистичным вариантом использования SGX, чем описание наших текущих планов проекта.

PS: Этот вопрос является своего рода последовательным Лицензия Intel SGX для разработчиков и ПО с открытым исходным кодом

1 Ответ

0 голосов
/ 24 марта 2019

Для создания предложения не требуется зарегистрированный в Intel сертификат, но для проверки предложения необходимо связаться с IAS (служба аттестации Intel), для которого требуется сертификат, зарегистрированный в Intel.Таким образом, для каждого узла, проверяющего, является ли удаленная аттестация действительной, потребуется такой сертификат при наивном подходе.

Конечно, можно использовать SGX для предоставления прокси, который будет иметь такую ​​структуру:

  1. Создайте два сертификата и соответствующий им закрытый ключ, один из них я назову IAS-conn-cert, а другой - Proxy-cert.
  2. Зарегистрируйте их IAS-conn-cert дляIAS.

Конечно, вы должны верить, что эти сертификаты действительно были созданы в анклаве.Для этого вы можете удаленно засвидетельствовать информацию о другом поставщике услуг, которому доверяете.Теперь закрепите (например, жестким кодом) Proxy-cert в вашем клиентском приложении.Когда ему нужно проверить цитату, он подключается к анклаву с помощью этого закрепленного прокси-сертификата, таким образом зная, что он подключается к анклаву.Анклав затем подключится к IAS и передаст все, что он получает от клиента, в IAS и наоборот.Теперь клиент может связываться с IAS, не имея собственного зарегистрированного в IAS сертификата, но при этом может быть уверен, что в прокси-сервере нет подделок, поскольку он доверяет тому, что прокси-сертификат действительно был создан в неопасном анклаве.

...