Как intel SGX проверяет библиотеку анклавов перед запуском?
Я изучил и обнаружил, что анклав подписан закрытым ключом, и во время запуска анклавов он будет проверен с использованием открытого ключа, который поставляется вместе с библиотекой анклавов.
Мой вопрос заключается в том, как доверять бинарному файлу анклавов, когда он поставляется с открытым ключом.
Между ними кто-то может изменить код и снова подписать его своим закрытым ключом и прикрепить свой открытый ключ к SIGSTRUCT.
0 ответов
Вы правы. Код анклава может быть легко обработан, и злоумышленник может создать новую подпись. Платформа-исполнитель не распознает это вмешательство, так как подпись верна для (подделанного) кода. Платформа может иметь некоторый список разрешенных открытых ключей, но в модели угроз SGX платформа в любом случае является состязательной.
Проблема решается с помощью удаленной аттестации. Надежное аппаратное и программное обеспечение генерирует квоту для созданного анклава, которая содержит его значение измерения (MRENCLAVE), а также хэш подписывающего лица (MRSIGNER). С этими значениями удаленный верификатор может гарантировать, что анклав был создан правильно и не был подделан.
Следовательно, до (успешной) удаленной аттестации анклаву нельзя доверять (с секретами).