Utveckla program med Always Encrypted med säkra enklaver

Gäller för: SQL Server 2019 (15.x) och senare versioner i Windows Azure SQL Database

Always Encrypted med säkra enklaver utökar Always Encrypted för att möjliggöra rikare funktionalitet för programfrågor om krypterade känsliga databaskolumner. Den använder säkra enklavertekniker så att frågeexekutor i databasmotorn kan delegera beräkningar på krypterade kolumner till en säker enklav i databasmotorprocessen.

Förutsättningar

Din miljö måste uppfylla följande krav för att stödja Always Encrypted med säkra enklaver.

  • SQL Server-instansen eller databasservern i Azure SQL Database måste vara korrekt konfigurerad för att stödja enklaver och attestering, om tillämpligt/nödvändigt. Mer information finns i Konfigurera den säkra enklaven och attesteringen.
  • Se till att din applikation:
    • Använder en klientdrivrutinsversion som stöder Always Encrypted med säkra enklaver.

    • Aktiverar Always Encrypted när du ansluter till databasen.

    • Ange ett attesteringsprotokoll som avgör om klientdrivrutinen måste verifiera enklaven innan enklavförfrågningar skickas, och i så fall vilken attesteringsservice den ska använda. De senaste drivrutinsversionerna stöder följande attesteringsprotokoll:

      • Microsoft Azure Attestation – framtvingar attestering med hjälp av Microsoft Azure Attestation.
      • Tjänsten Värdskydd – framtvingar attestering med hjälp av Tjänsten Värdskydd.
      • Ingen – tillåter användning av enklaver utan attestering.

      Tabellen nedan anger attesteringsprotokoll som är giltiga för vissa SQL-produkter och enklaver:

      Produkt Enklavteknik Attesteringsprotokoll som stöds
      SQL Server 2019 (15.x) och senare VBS-enklaver Värdskyddstjänst, ingen
      Azure SQL Database SGX-enklaver (i DC-seriens databaser) Microsoft Azure Attestation (ett tjänst för verifiering av tillförlitlighet inom cloud computing)
      Azure SQL Database VBS-enklaver None
    • Anger en attesterings-URL som är giltig för din miljö, om du använder attestering.

Klientdrivrutiner för Always Encrypted med säkra enklaver

För att utveckla program med Always Encrypted med säkra enklaver behöver du en SQL-klientdrivrutinsversion som stöder säkra enklaver. Klientdrivrutinen spelar följande viktiga roll:

  • Innan du skickar en fråga som använder en säker enklav till SQL Server eller Azure SQL Database för körning initierar drivrutinen enklavattestering (om den är konfigurerad) för att verifiera att den säkra enklaven är tillförlitlig och kan användas på ett säkert sätt för att bearbeta känsliga data. Mer information om attestering finns i Säker enklavattestering.
  • Klientdrivrutinen upprättar en säker session med enklaven genom att förhandla om en delad hemlighet.
  • Drivrutinen använder den delade hemligheten för att kryptera kolumnkrypteringsnycklarna som enklaven behöver för att bearbeta frågan och skickar nycklarna till SQL Server, som vidarebefordrar dem till den säkra enklaven som dekrypterar nycklarna.
  • Slutligen skickar förarprogrammet frågan för exekvering, vilket utlöser beräkningar i den säkra enklaven.

Följande klientdrivrutiner stöder Always Encrypted med säkra enklaver:

Se även