Настройка аттестации для Always Encrypted с помощью Аттестации Azure

Применимо к:База данных SQL Azure

Служба "Аттестация Azure" — это решение для аттестации доверенных сред выполнения, включая анклавы Software Guard Extensions (Intel SGX).

Чтобы использовать службу "Аттестация Azure" для аттестации анклавов Intel SGX, используемых для Always Encrypted с безопасными анклавами в базе данных SQL Azure, выполните следующие действия.

  1. Создайте поставщика аттестации и настройте его с использованием рекомендуемой политики аттестации.

  2. Определите URL-адрес аттестации и предоставьте к нему доступ администраторам приложений.

Важно!

При использовании анклавов Intel SGX в База данных SQL Azure аттестация является обязательной и требуется microsoft Аттестация Azure. Анклавы VBS в База данных SQL Azure не поддерживают аттестацию. Эта статья относится только к анклавам Intel SGX.

Примечание.

За настройку аттестации отвечает администратор аттестации. Сведения о ролях и обязанностях при настройке анклавов Intel SGX и аттестации.

Создание и настройка поставщика аттестации

Поставщик аттестации — это ресурс в службе "Аттестация Azure", который сравнивает запросы аттестации с политиками аттестации и выдает маркеры аттестации.

Политики аттестации определяются с помощью грамматики правил утверждения.

Важно!

Поставщик аттестации создается с политикой по умолчанию для анклавов Intel SGX, который не проверяет код, выполняемый в анклаве. Корпорация Майкрософт настоятельно рекомендует установить рекомендуемую политику, используемую в следующих выходных данных, и не использовать политику по умолчанию для Always Encrypted с безопасными анклавами.

Корпорация Майкрософт рекомендует следующую политику для аттестации анклавов Intel SGX, используемых для Always Encrypted в базе данных SQL Azure.

version= 1.0;
authorizationrules 
{
       [ type=="x-ms-sgx-is-debuggable", value==false ]
        && [ type=="x-ms-sgx-product-id", value==4639 ]
        && [ type=="x-ms-sgx-svn", value>= 2 ]
        && [ type=="x-ms-sgx-mrsigner", value=="e31c9e505f37a58de09335075fc8591254313eb20bb1a27e5443cc450b6e33e5"] 
    => permit();
};

Политика проверяет:

  • Анклав в базе данных SQL Azure не поддерживает отладку.

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

  • Идентификатор продукта анклава совпадает с идентификатором анклава продукта, присвоенным Always Encrypted с безопасными анклавами.

    Каждый анклав имеет уникальный идентификатор продукта, который отличает его от других анклавов. Анклаву Always Encrypted присвоен идентификатор продукта 4639.

  • Номер версии безопасности (SVN) библиотеки больше или равен 2.

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

  • Библиотека в анклаве была подписана с помощью ключа подписывания Майкрософт (значение утверждения x-ms-sgx-mrsigner — это хэш ключа подписывания).

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

Важно!

Майкрософт может сменить ключ, используемый для подписывания двоичного файла анклава Always Encrypted, но это очень редкий случай. Перед тем как новая версия двоичного файла анклава, подписанная новым ключом, будет развернута в Базе данных SQL Azure, в этой статье будет указана новая рекомендуемая политика аттестации и инструкции по обновлению политики в поставщиках аттестации, чтобы обеспечить непрерывную работу приложений.

Инструкции по созданию поставщика аттестации и его настройке с помощью политики аттестации см. здесь:

Определение URL-адреса аттестации для политики аттестации

После настройки политики аттестации вам необходимо предоставить URL-адрес аттестации администраторам приложений, использующим Always Encrypted с защищенными анклавами в базе данных SQL Azure. URL-адрес аттестации — это Attest URI поставщика аттестации, содержащего политику аттестации. Он имеет следующий вид: https://MyAttestationProvider.wus.attest.azure.net.

Определение URL-адреса аттестации с помощью портала Azure

В области "Обзор" для поставщика аттестации скопируйте значение свойства Attest URI в буфер обмена.

Определение URL-адреса аттестации с помощью PowerShell

Используйте командлет Get-AzAttestation, чтобы получить свойства поставщика аттестации, включая AttestURI.

Get-AzAttestation -Name $attestationProviderName -ResourceGroupName $attestationResourceGroupName

Дополнительные сведения см. в разделе Создание и настройка поставщика аттестации.

Следующие шаги

См. также