Устранение распространенных неполадок Always Encrypted с безопасными анклавами

Область применения: SQL Server 2019 (15.x) и более поздних версий — только база данных SQL Azure Для Windows

В этой статье описывается, как определить и устранить распространенные проблемы, которые могут возникнуть при выполнении инструкций Transact-SQL (TSQL) с использованием Always Encrypted с безопасными анклавами.

Сведения о том, как выполнять запросы с использованием безопасных анклавов, см. в разделе Выполнение инструкций Transact-SQL с помощью безопасных анклавов.

Ошибки при подключении к базе данных

Чтобы выполнить инструкции с помощью безопасного анклава, необходимо включить Always Encrypted, указать протокол аттестации и, если применимо, URL-адрес аттестации для подключения к базе данных, как описано в предварительных требованиях для выполнения инструкций с использованием безопасных анклавах. Однако подключение завершится ошибкой, если указать протокол аттестации, но база данных SQL Azure или целевой экземпляр SQL Server не поддерживает безопасные анклавы или неправильно настроен.

Ошибки аттестации при использовании Аттестации Microsoft Azure

Заметка

Этот раздел относится только к базе данных SQL Azure с анклавами Intel SGX.

Прежде чем драйвер клиента отправит инструкцию T-SQL на логический сервер Azure SQL для выполнения, драйвер активирует следующий рабочий процесс аттестации анклава с помощью Аттестации Microsoft Azure.

  1. Драйвер клиента передает URL-адрес аттестации, указанный в подключении к базе данных, на логический сервер Azure SQL.
  2. Логический сервер Azure SQL собирает свидетельства об анклаве, среде его размещения и коде, выполняемом в анклаве. Затем сервер отправляет поставщику аттестации запрос на аттестацию, указанный в URL-адресе аттестации.
  3. Поставщик аттестации проверяет свидетельство на соответствие настроенной политике и выдает токен аттестации логическому серверу Azure SQL. Поставщик аттестации подписывает токен аттестации с помощью закрытого ключа.
  4. Логический сервер Azure SQL отправляет токен аттестации драйверу клиента.
  5. Клиент обращается к поставщику аттестации по указанному URL-адресу аттестации для получения открытого ключа и проверяет подпись в токене аттестации.

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

  • Логическому серверу Azure SQL не удается подключиться к поставщику аттестации в службе "Аттестация Azure" (шаг 2 указанного выше рабочего процесса), указанному в URL-адресе аттестации. К вероятным причинам относятся:
    • Неверный или неполный URL-адрес аттестации. Дополнительные сведения см. в разделе Определение URL-адреса аттестации для политики аттестации.
    • Поставщик аттестации был случайно удален.
    • Брандмауэр разрешает доступ к поставщику аттестации, но запрещает доступ к службам Майкрософт.
    • Временная ошибка сети, которая приводит к недоступности поставщика аттестации.
  • Логический сервер SQL Azure не авторизован для отправки запросов аттестации поставщику аттестации. Убедитесь, что администратор поставщика аттестации добавил серверу базы данных роль "Читатель аттестации".
  • Сбой проверки политики аттестации (на шаге 3 приведенного выше рабочего процесса).
    • Наиболее вероятной основной причиной является неверная политика аттестации. Убедитесь, что вы используете политику, рекомендованную Майкрософт. Дополнительные сведения см. в разделе Создание и настройка поставщика аттестации.
    • Сбой проверки политики может также происходить из-за бреши в системе безопасности, приводящего к компрометации анклава на стороне сервера.
  • Клиентскому приложению не удается подключиться к поставщику аттестации и получить открытый ключ подписи (на шаге 5). К вероятным причинам относятся:
    • Настройка брандмауэров между приложением и поставщиком аттестации может блокировать подключения. Чтобы устранить неполадки с заблокированным подключением, проверьте, что вы можете подключиться к конечной точке OpenID поставщика аттестации. Например, используйте веб-браузер на компьютере, на котором размещено приложение, чтобы узнать, можно ли подключиться к конечной точке OpenID. Дополнительные сведения см. в разделе Конфигурация метаданных — Get.

Ошибки аттестации при использовании службы защиты узла

Заметка

Этот раздел относится только к SQL Server 2019 (15.x) и более поздним версиям.

Прежде чем драйвер клиента отправляет инструкцию T-SQL в SQL Server для выполнения, драйвер активирует следующий рабочий процесс аттестации анклава с помощью службы защиты узлов (HGS).

  1. Драйвер клиента вызывает SQL Server для запуска аттестации.
  2. SQL Server собирает доказательства о его анклавах, его среде размещения и коде, работающем внутри анклава. SQL Server запрашивает сертификат работоспособности из экземпляра HGS, на котором размещен SQL Server, был зарегистрирован. Дополнительные сведения см. в статье Регистрация компьютера в службе защиты узла.
  3. HGS проверяет доказательства и выдает сертификат работоспособности SQL Server. HGS подписывает сертификат работоспособности с помощью своего закрытого ключа.
  4. SQL Server отправляет сертификат работоспособности драйверу клиента.
  5. Драйвер клиента обращается в HGS по URL-адресу аттестации, указанному для подключения к базе данных, чтобы получить открытый ключ HGS. Драйвер клиента проверяет подпись в сертификате работоспособности.

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

  • SQL Server не может подключиться к HGS (шаг 2 приведенного выше рабочего процесса) из-за периодических сетевых ошибок. Чтобы устранить проблему подключения, администратор компьютера SQL Server должен проверить, что компьютер может подключиться к компьютеру HGS.
  • Сбой проверки на шаге 3. Чтобы устранить проблему проверки, выполните следующие действия.
    • Администратор компьютера SQL Server должен работать с администратором клиентского приложения, чтобы убедиться, что компьютер SQL Server зарегистрирован в том же экземпляре HGS, что и экземпляр, на который ссылается URL-адрес аттестации на стороне клиента.
    • Администратор компьютера SQL Server должен подтвердить, что компьютер SQL Server может успешно проверить, следуя инструкциям на шаге 5. Убедитесь, что узел может успешно проверить.
  • Клиентскому приложению не удается подключиться к HGS и получить открытый ключ подписи (на шаге 5). Скорее всего, причина:
    • Настройка одного из брандмауэров между приложением и поставщиком аттестации может блокировать подключения. Убедитесь, что компьютер, на котором размещается приложение, может подключиться к компьютеру HGS.

Ошибки шифрования на месте

В этом разделе перечислены распространенные ошибки, которые могут возникнуть при использовании инструкций ALTER TABLE/ALTER COLUMN для шифрования на месте (в дополнение к ошибкам аттестации, описанным в предыдущих разделах). Дополнительные сведения см. в статье Настройка шифрования столбцов на месте с помощью Always Encrypted с безопасными анклавами.

  • Ключ шифрования столбца, который вы пытаетесь использовать для шифрования, расшифровки или повторного шифрования данных, не является ключом с поддержкой анклава. Дополнительные сведения о предварительных требованиях для шифрования на месте см. в разделе о предварительных требованиях. Сведения о подготовке ключей с поддержкой анклава см. в статье Подготовка ключей с поддержкой анклава.
  • Вы не включили Always Encrypted и вычисления анклава для подключения к базе данных. См. раздел Необходимые условия для выполнения инструкций, использующих безопасные анклавы.
  • Инструкция ALTER TABLE/ALTER COLUMN активирует криптографическую операцию и изменяет тип данных столбца или задает параметры сортировки с кодовой страницей, отличной от текущей кодовой страницы параметров сортировки. Объединение криптографических операций с изменениями на странице типа данных или параметров сортировки не допускается. Чтобы устранить эту проблему, используйте отдельные инструкции: одну инструкцию для изменения типа данных или кодовой страницы параметров сортировки и вторую для шифрования на месте.

Ошибки при выполнении конфиденциальных запросов DML с использованием безопасных анклавов

В этом разделе перечислены распространенные ошибки, которые могут возникнуть при выполнении конфиденциальных запросов DML с использованием безопасных анклавов (в дополнение к ошибкам аттестации, описанным в предыдущих разделах).

Далее

См. также