Dela via


Krypteringshierarki

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-databas i Microsoft Fabric

SQL Server krypterar data med en hierarkisk krypterings- och nyckelhanteringsinfrastruktur. Varje lager krypterar lagret under det med hjälp av en kombination av certifikat, asymmetriska nycklar och symmetriska nycklar. Asymmetriska nycklar och symmetriska nycklar kan lagras utanför SQL Server i en EKM-modul (Extensible Key Management).

Följande bild visar att varje lager i krypteringshierarkin krypterar lagret under den och visar de vanligaste krypteringskonfigurationerna. Åtkomsten till början av hierarkin skyddas vanligtvis av ett lösenord.

Diagram över krypteringskombinationer i en stack.

Tänk på följande begrepp:

  • Kryptera data med symmetriska nycklar i stället för certifikat eller asymmetriska nycklar för bästa prestanda.

  • Databashuvudnycklar (DMK) skyddas av SMK (Service Master Key). Tjänstens huvudnyckel skapas av SQL Server-konfigurationen och krypteras med Windows Data Protection API (DPAPI).

  • Andra krypteringshierarkier som staplar ytterligare lager är möjliga.

  • En EKM-modul (Extensible Key Management) innehåller symmetriska eller asymmetriska nycklar utanför SQL Server.

  • Transparent datakryptering (TDE) måste använda en symmetrisk nyckel som kallas databaskrypteringsnyckeln som skyddas av antingen ett certifikat som skyddas av DATABASENs DMK master eller av en asymmetrisk nyckel som lagras i en EKM.

  • Tjänsthuvudnyckeln och alla huvudnycklar för databasen är symmetriska nycklar.

Följande bild visar samma information på ett annat sätt.

Diagram över krypteringskombinationer i ett hjul.

Det här diagrammet illustrerar följande ytterligare begrepp:

  • I den här bilden anger pilar vanliga krypteringshierarkier.

  • Symmetriska och asymmetriska nycklar i EKM kan skydda åtkomsten till de symmetriska och asymmetriska nycklar som lagras i SQL Server. Den streckade linjen som är associerad med EKM anger att nycklar i EKM kan ersätta de symmetriska och asymmetriska nycklar som lagras i SQL Server.

Bakgrund

Azure SQL och SQL Server använder RSA-algoritmen för asymmetrisk kryptering. RSA-algoritmen kan inte användas i sin "rena" form eftersom den saknar semantisk säkerhet och inte är säker mot valda klartextattacker eller chiffertextattacker på grund av dess deterministiska natur. Om du krypterar samma meddelande två gånger skapas samma chiffertext.

För att uppnå säkerhet kräver meddelanden utfyllnad. För närvarande krypteras data med RSA med hjälp av utfyllnadsschemat PKCS #1 v1.5. En specifik svaghet i PKCS#1 v1.5-utfyllnad är att den inte är särskilt redundant, med byte inbäddade som slumpmässiga utan något specifikt framtvingat värde. En sekvens med slumpmässiga byte kan vara "korrekt vadderad" med liten sannolikhet. En angripare skulle behöva cirka en miljon avbrutna handskakningar för att återställa klartexten med råstyrkestyrka.

Nyare versioner av PKCS#1 v1.5 beskriver en ny utfyllnadstyp med namnet Optimal asymmetrisk krypteringsutfyllnad (OAEP), som använder en hashfunktion för att lägga till betydande intern redundans, vilket gör det osannolikt att en slumpmässig sträng matchar utfyllnadsformatet. OAEP introducerar viss hashning mellan RSA-krypteringen och utfyllnadskontrollen. Hasheringen från OAEP ändrar angriparens förmåga att förstå vad de ser.

Från SQL Server 2025 (17.x) Förhandsversion och senare introducerades OAEP-256-stöd för RSA-baserad kryptering. Byte till OAEP-utfyllnadsläge styrs av databasens kompatibilitetsnivå. Den här funktionen är tillgänglig för databaser på kompatibilitetsnivån 170 eller högre.

Krypteringsmekanismer

SQL Server tillhandahåller följande mekanismer för kryptering:

  • Transact-SQL funktioner

  • Asymmetriska nycklar

  • Symmetriska nycklar

  • Certifikaten

  • Transparent datakryptering

Transact-SQL funktioner

Enskilda objekt kan krypteras när de infogas eller uppdateras med hjälp av Transact-SQL funktioner. Mer information finns i ENCRYPTBYPASSPHRASE och DECRYPTBYPASSPHRASE.

Certifikaten

Ett offentligt nyckelcertifikat, som vanligtvis bara kallas för ett certifikat, är en digitalt signerad instruktion som binder värdet för en offentlig nyckel till identiteten för den person, enhet eller tjänst som innehåller motsvarande privata nyckel. Certifikat utfärdas och signeras av en certifikatutfärdare (CA). Entiteten som tar emot ett certifikat från en certifikatutfärdare är föremål för certifikatet. Certifikat innehåller vanligtvis följande information.

  • Ämnets offentliga nyckel.

  • Identifierarinformation för ämnet, till exempel namn och e-postadress.

  • Giltighetsperioden. Det här är hur lång tid certifikatet anses vara giltigt.

    Ett certifikat är endast giltigt under den angivna tidsperioden. varje certifikat innehåller giltiga från - och giltiga till-datum . Dessa datum anger gränserna för giltighetsperioden. När giltighetsperioden för ett certifikat har passerat måste den person eller enhet som innehar det utgångna certifikatet begära ett nytt certifikat.

  • Identifikationsinformation för utfärdare.

  • Utfärdarens digitala signatur.

    Den här signaturen intygar giltigheten för bindningen mellan den offentliga nyckeln och identifierarinformationen för ämnet. (Processen för digitalt signering av information innebär att informationen, liksom viss hemlig information som innehas av avsändaren, omvandlas till en tagg som kallas signatur.)

En viktig fördel med certifikat är att de befriar värdar från behovet av att underhålla en uppsättning lösenord för enskilda ämnen. I stället upprättar värden bara förtroende för en certifikatutfärdare, som sedan kan signera ett obegränsat antal certifikat.

När en värd, till exempel en säker webbserver, utser en utfärdare till betrodd rotutfärdare, litar värden implicit på de principer som utfärdaren har använt för att upprätta bindningar av de certifikat som den utfärdar. I själva verket litar värden på att utfärdaren har verifierat certifikatsinnehavarens identitet. En värd utser en utfärdare till betrodd rotutfärdare genom att placera det självsignerade certifikatet för utfärdaren, som innehåller utfärdarens offentliga nyckel, i certifikatarkivet för betrodd rotcertifikatutfärdare på värddatorn. Mellanliggande eller underordnade certifikatutfärdare är endast betrodda om de har en giltig certifieringssökväg från en betrodd rotcertifikatutfärdare.

Utfärdaren kan återkalla ett certifikat innan det upphör att gälla. Återkallande avbryter bindningen av en offentlig nyckel till en identitet som hävdas i certifikatet. Varje utfärdare har en lista över återkallade certifikat som kan användas av program när de kontrollerar giltigheten för ett visst certifikat.

De självsignerade certifikat som skapats av SQL Server följer X.509-standarden och stöder fälten X.509 v1.

Asymmetriska nycklar

En asymmetrisk nyckel består av en privat nyckel och motsvarande offentliga nyckel. Varje nyckel kan dekryptera data som krypterats av den andra. Asymmetrisk kryptering och dekryptering är relativt resursintensiva, men de ger en högre säkerhetsnivå än symmetrisk kryptering. En asymmetrisk nyckel kan användas för att kryptera en symmetrisk nyckel för lagring i en databas.

Symmetriska nycklar

En symmetrisk nyckel är en nyckel som används för både kryptering och dekryptering. Kryptering och dekryptering med hjälp av en symmetrisk nyckel är snabb och lämplig för rutinmässig användning med känsliga data i databasen. För att skydda nyckelmaterialet för den symmetriska nyckeln lagrar SQL Server nyckelmaterialet i krypterad form som använder asymmetrisk RSA-kryptering. Tidigare använde den här krypteringen PKCS#1 v1.5 utfyllnadsläge; Från och med databaskompatibilitetsnivå 170 använder krypteringen utfyllnadsläget OAEP-256.

Transparent datakryptering

Transparent datakryptering (TDE) är ett specialfall för kryptering med hjälp av en symmetrisk nyckel. TDE krypterar en hel databas med den symmetriska nyckeln som kallas databaskrypteringsnyckel. Databaskrypteringsnyckeln skyddas av andra nycklar eller certifikat som skyddas antingen av DMK eller av en asymmetrisk nyckel som lagras i en EKM-modul. Mer information finns i Transparent datakryptering (TDE).

Infrastruktur för SQL-databas

I SQL-databasen i Microsoft Fabric stöds för närvarande inte Always Encrypted, EKM och TDE. I SQL Database i Microsoft Fabric är Microsoft Entra-ID för databasanvändare den enda autentiseringsmetod som stöds. Mer information finns i Auktorisering i SQL-databas i Microsoft Fabric och Funktionsjämförelse.