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

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

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

Предварительные требования

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

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

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

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

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

      В следующей таблице указаны протоколы аттестации, допустимые для определенных продуктов 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 с безопасными анклавами.