Разработка приложений с помощью Always Encrypted с безопасными анклавами

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

Always Encrypted с безопасными анклавами расширяет возможности Always Encrypted для реализации более широких возможностей запросов приложений к зашифрованным столбцам базы данных. Используемые технологии безопасных анклавов позволяют исполнителю запросов в ядре СУБД делегировать вычисления в зашифрованных столбцах безопасному анклаву внутри процесса ядра СУБД.

Необходимые компоненты

Ваша среда должна соответствовать следующим требованиям для поддержки Always Encrypted с безопасными анклавами.

  • Экземпляр SQL Server или сервер базы данных в База данных SQL Azure должен быть правильно настроен для поддержки анклавов и аттестации, если применимо или требуется. Дополнительные сведения см. в статье Настройка безопасного анклава и аттестации.
  • Убедитесь, что приложение:
    • Использует версию драйвера клиента, поддерживающую Always Encrypted с безопасными анклавами.

    • Включает Always Encrypted при подключении к базе данных.

    • Задает протокол аттестации, который определяет, должен ли драйвер клиента проверить анклав перед отправкой запросов анклава и, если да, какую службу аттестации она должна использовать. Последние версии драйверов поддерживают следующие протоколы аттестации:

      • Microsoft Аттестация Azure — применяет аттестацию с помощью Microsoft Аттестация Azure.
      • Служба защиты узла — применяет аттестацию с помощью службы защиты узлов.
      • Нет — позволяет использовать анклава без аттестации.

      В следующей таблице указаны протоколы аттестации, допустимые для определенных продуктов SQL и анклавных технологий:

      Продукт Технология анклава Поддерживаемые протоколы аттестации
      SQL Server 2019 (15.x) и более поздних версий Анклавы VBS Служба защиты узла, нет
      База данных SQL Azure Анклавы SGX (в базах данных серии DC) Аттестация Microsoft Azure
      База данных SQL Azure Анклавы VBS нет
    • Задает URL-адрес аттестации, допустимый для вашей среды, если вы используете аттестацию.

Драйверы клиента для Always Encrypted с безопасными анклавами

Для разработки приложений с помощью Always Encrypted с защищенными анклавами требуется версия драйвера клиента SQL, поддерживающая безопасные анклавы. Драйвер клиента играет следующую ключевую роль.

  • Перед отправкой запроса, использующего безопасный анклава в SQL Server или База данных SQL Azure для выполнения, драйвер инициирует аттестацию анклава (если она настроена) для проверки надежности безопасного анклава и может быть безопасно использован для обработки конфиденциальных данных. Дополнительные сведения об аттестации см. в статье Аттестация безопасного анклава.
  • Драйвер клиента устанавливает безопасный сеанс с анклава путем переговоров по общему секрету.
  • Драйвер использует общий секрет для шифрования ключей шифрования столбцов, которые потребуются анклаву для обработки запроса, и отправляет ключи в SQL Server, пересылающий их в безопасный анклав для расшифровки.
  • Наконец, драйвер отправляет запрос для выполнения, который активирует вычисления в безопасном анклаве.

Следующие драйверы клиента поддерживают Always Encrypted с безопасными анклавами.

См. также