Использование удаленной аттестации Intel SGX в архитектуре клиент-сервер

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

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

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

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

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

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

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

P.S.: Этот вопрос как бы связан с лицензированием разработчиков Intel SGX и открытым исходное программное обеспечение


person Marc    schedule 28.01.2019    source источник


Ответы (1)


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

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

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

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

person VincBreaker    schedule 24.03.2019