Tworzenie aplikacji przy użyciu funkcji Always Encrypted z bezpiecznymi enklawami

Dotyczy: SQL Server 2019 (15.x) i nowsze wersje na Windows Azure SQL Database

Funkcja Always Encrypted z bezpiecznymi enklawami rozszerza funkcję Always Encrypted , aby umożliwić bogatsze funkcje zapytań aplikacji w zaszyfrowanych poufnych kolumnach bazy danych. Wykorzystuje bezpieczne technologie enklaw, aby umożliwić wykonawcy zapytań w aparacie bazy danych delegowanie obliczeń na zaszyfrowanych kolumnach do bezpiecznej enklawy aparatu bazy danych wewnątrz procesu.

Important

Enklawy Always Encrypted with Intel Software Guard Extensions (Intel SGX) osiągną koniec wsparcia 31 października 2027 roku. Migruj dotknięte bazy danych przed tą datą. Po 31 października 2027 roku Azure automatycznie przenosi każdą bazę danych, która pozostaje w warstwie obliczeniowej serii DC, do obsługiwanej standardowej warstwy obliczeniowej (non-DC) i umożliwia enklawy bezpieczeństwa oparte na wirtualizacji (VBS). Opcje migracji znajdziesz w przewodniku migracji Always Encrypted with Intel SGX Enclaves.

Wymagania wstępne

Środowisko musi spełniać następujące wymagania, aby obsługiwać funkcję Always Encrypted z bezpiecznymi enklawami.

  • Twoja instancja SQL Server lub serwer bazy danych w usłudze Azure SQL Database muszą być poprawnie skonfigurowane do obsługi enklaw i poświadczania, jeśli ma to zastosowanie/jest wymagane. Aby uzyskać więcej informacji, zobacz konfigurowanie bezpiecznej enklawy i uwierzytelnianie.
  • Upewnij się, że aplikacja:
    • Używa wersji sterownika klienta, która obsługuje funkcję Always Encrypted z bezpiecznymi enklawami.

    • Włącza funkcję Always Encrypted podczas nawiązywania połączenia z bazą danych.

    • Ustawia protokół zaświadczania, który określa, czy sterownik klienta musi potwierdzić enklawę przed przesłaniem zapytań enklawy; a jeśli tak, której usługi zaświadczania powinna użyć. Najnowsze wersje sterowników obsługują następujące protokoły zaświadczania:

      • Attestacja Microsoft Azure — wymusza zaświadczenie przy użyciu usługi Microsoft Azure Attestation.
      • Usługa Host Guardian — wymusza uwierzytelnianie przy użyciu usługi Host Guardian.
      • Brak — umożliwia korzystanie z enklaw bez zaświadczania.

      W poniższej tabeli określono protokoły zaświadczania prawidłowe dla konkretnych produktów SQL i technologii enklawy:

      Product Technologia enklawy Obsługiwane protokoły zaświadczania
      SQL Server 2019 (15.x) i nowsze Enklawy VBS Usługa Ochrona hosta, Brak
      Azure SQL Database Enklawy SGX (w bazach danych serii DC) Zaświadczenie platformy Microsoft Azure
      Azure SQL Database Enklawy VBS Żaden
    • Ustawia adres URL atestacji, który jest właściwy dla danego środowiska, jeśli używasz atestacji.

Sterowniki klienta dla Always Encrypted z bezpiecznymi enklawami

Aby tworzyć aplikacje korzystające z funkcji Always Encrypted z bezpiecznymi enklawami, potrzebna jest wersja sterownika klienta SQL, która obsługuje bezpieczne enklawy. Sterownik klienta odgrywa następującą kluczową rolę:

  • Przed przesłaniem zapytania, które używa bezpiecznej enklawy do programu SQL Server lub usługi Azure SQL Database do wykonania, sterownik inicjuje zaświadczenie enklawy (jeśli jest skonfigurowane) w celu sprawdzenia, czy bezpieczna enklawa jest godna zaufania i może być bezpiecznie używana do przetwarzania poufnych danych. Aby uzyskać więcej informacji na temat zaświadczania, zobacz również Attestacja Bezpiecznej Enklawy.
  • Sterownik klienta ustanawia bezpieczną sesję z enklawą, negocjując wspólny sekret.
  • Sterownik używa wspólnego sekretu do szyfrowania kluczy szyfrowania kolumn, których enklawa będzie potrzebować do przetworzenia zapytania, i wysyła klucze do programu SQL Server, który przekazuje je do bezpiecznej enklawy odszyfrowującej klucze.
  • Na koniec sterownik przesyła zapytanie do wykonania, co wyzwala obliczenia wewnątrz bezpiecznej enklawy.

Następujące sterowniki klienta obsługują funkcję Always Encrypted z bezpiecznymi enklawami: