Разработка приложений с помощью 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-адрес аттестации, допустимый для вашей среды, если вы используете аттестацию.
- Если вы используете службу защиты SQL Server и узла (HGS), ознакомьтесь с разделом "Определение и предоставление общего доступа к URL-адресу аттестации HGS".
- Если вы используете База данных SQL Azure с анклавами Intel SGX и Microsoft Аттестация Azure, ознакомьтесь с URL-адресом аттестации для политики аттестации.
Драйверы клиента для Always Encrypted с безопасными анклавами
Для разработки приложений с помощью Always Encrypted с защищенными анклавами требуется версия драйвера клиента SQL, поддерживающая безопасные анклавы. Драйвер клиента играет следующую ключевую роль.
- Перед отправкой запроса, использующего безопасный анклава в SQL Server или База данных SQL Azure для выполнения, драйвер инициирует аттестацию анклава (если она настроена) для проверки надежности безопасного анклава и может быть безопасно использован для обработки конфиденциальных данных. Дополнительные сведения об аттестации см. в статье Аттестация безопасного анклава.
- Драйвер клиента устанавливает безопасный сеанс с анклава путем переговоров по общему секрету.
- Драйвер использует общий секрет для шифрования ключей шифрования столбцов, которые потребуются анклаву для обработки запроса, и отправляет ключи в SQL Server, пересылающий их в безопасный анклав для расшифровки.
- Наконец, драйвер отправляет запрос для выполнения, который активирует вычисления в безопасном анклаве.
Следующие драйверы клиента поддерживают Always Encrypted с безопасными анклавами.
Поставщик данных Microsoft .NET для SQL Server в .NET Framework 4.6 или более поздней версии и .NET Core 2.1 или более поздней версии. Если вы хотите использовать анклавы VBS без аттестации, требуется версия 4.1 или более поздней версии, которая совместима с платформа .NET Framework 4.6.1 или более поздней версии и .NET Core 3.1.
- Дополнительные сведения см. в статье Использование Always Encrypted с поставщиком данных Microsoft .NET для SQL Server.
- Пошаговое руководство см . в руководстве по разработке приложения .NET с помощью Always Encrypted с безопасными анклавами.
- См. также статью Пример использования поставщика Azure Key Vault с поддержкой Always Encrypted с безопасными анклавами.
Microsoft ODBC Driver for SQL Server версии 17.4 или выше. Если вы хотите использовать анклавы VBS без аттестации, требуется версия 18.1 или более поздняя.
- Дополнительные сведения см. в статье Использование функции Always Encrypted с драйвером ODBC.
- Сведения о включении вычислений анклава для подключения к базе данных с помощью ODBC см. в разделе Включение Always Encrypted с безопасными анклавами.
Microsoft ODBC Driver for SQL Server версии 8.2 или выше. Если вы хотите использовать анклавы VBS без аттестации, требуется версия 12.2 или более поздняя.
- Дополнительные сведения см. в статье Использование Always Encrypted с безопасными анклавами с драйвером JDBC.
Поставщик данных .NET Framework для SQL Server в .NET Framework 4.7.2 и выше.
- Дополнительные сведения см. в статье Использование Always Encrypted с поставщиком данных .NET Framework для SQL Server.
- Пошаговое руководство по разработке приложения платформа .NET Framework с помощью Always Encrypted с безопасными анклавами
Примечание.
Использование поставщика данных платформа .NET Framework для SQL Server (System.Data.SqlClient) не рекомендуется для новой разработки. Дополнительные сведения см. в разделе System.Data.SqlClient.