Может ли SGX доказать, что два анклава находятся на разных компьютерах? - PullRequest
0 голосов
/ 13 октября 2018

Представьте себе облачного провайдера, арендующего клиенту две виртуальные машины.Предположим, что клиент хочет проверить, работают ли две виртуальные машины на разных физических компьютерах, несмотря на то, что поставщик облачных услуг, возможно, пытается обмануть клиента.

Обе машины предоставляют SGX и имеют включенный TPM.

Моей первой мыслью было использование удаленной аттестации и сравнение используемых ключей, поскольку на каждой физической машине был установлен уникальный ключ подтверждения, установленный на заводе.,Однако в документации SGX четко указано, что для удаленной аттестации для обеспечения конфиденциальности используются групповые ключи, поэтому заказчик не сможет определить, подписаны ли две удаленные аттестации на другом оборудовании.

Предположим, я уже установил безопасный анклавна каждой машине.

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

Этот связанный вопрос предполагает, чтопросто использование TPM не работает (на самом деле это не так), но заставляет меня задуматься, сможем ли мы использовать SGX для завершения работы.

Итак, мои вопросы:

1) Сработает ли вышеизложенное?

2) Если да, можете ли вы помочь мне найти убедительную документацию, подтверждающую, что это возможно?

3) Если нет, могу ли я что-то еще сделать

Ответы [ 2 ]

0 голосов
/ 18 января 2019

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

Вывод ключей SGX детерминистически предоставляет криптографические ключи для анклавов, которыепривязаны либо к идентификатору анклава, либо к идентификатору подписавшего.Это означает, что два анклава, которые подписаны одним и тем же ключом подписавшего, могут получить один и тот же ключ, если они выполняются на одной и той же платформе (хосте).

Примечание. Это, конечно, работает, только если вывод ключа непод влиянием виртуализации, которая, насколько мне известно, имеет место, хотя я не тестировал ее.

0 голосов
/ 15 октября 2018

Во-первых, давайте не будем смешивать здесь термины.Удаленная аттестация SGX - это не то же самое, что аттестация на основе TPM (с использованием команды Quote);поэтому я не уверен, как вы думаете, EK TPM входит в него.Но я не очень разбираюсь в SGX, поэтому придерживаюсь TPM:

Если вы можете получить две цитаты, подписанные двумя ключами аттестации, для которых у вас есть сертификаты, подписанные производителем TPM, это само по себе доказывает, что выРазговариваем с двумя разными машинами.То есть вы можете подделать TPM в программном обеспечении, но вы не можете подделать сертификат.Если у вас нет сертификата AK, вы можете взять открытый ключ из сертификата EK и заставить TPM доказать, что у него есть доступ к соответствующему секретному ключу, например, MakeCredential, за которым следует ActivateCredential.Производители TPM предоставляют сертификаты EK, по крайней мере те, на которые я смотрел.

...