Delen via


Versleutelingshiërarchie

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-database in Microsoft Fabric

SQL Server versleutelt gegevens met een hiërarchische versleutelings- en sleutelbeheerinfrastructuur. Elke laag versleutelt de laag eronder met behulp van een combinatie van certificaten, asymmetrische sleutels en symmetrische sleutels. Asymmetrische sleutels en symmetrische sleutels kunnen buiten SQL Server worden opgeslagen in een EKM-module (Extensible Key Management).

In de volgende afbeelding ziet u dat elke laag van de versleutelingshiërarchie de onderliggende laag versleutelt en de meest voorkomende versleutelingsconfiguraties weergeeft. De toegang tot het begin van de hiërarchie wordt meestal beveiligd met een wachtwoord.

Diagram van versleutelingscombinaties in een stack.

Houd rekening met de volgende concepten:

  • Versleutel gegevens met behulp van symmetrische sleutels in plaats van certificaten of asymmetrische sleutels voor de beste prestaties.

  • Databasehoofdsleutels (DMK) worden beveiligd door de Service Master Key (SMK). De servicehoofdsleutel wordt gemaakt door de INSTALLATIE van SQL Server en wordt versleuteld met de Windows Data Protection-API (DPAPI).

  • Andere versleutelingshiërarchieën die extra lagen stapelen, zijn mogelijk.

  • Een EKM-module (Extensible Key Management) bevat symmetrische of asymmetrische sleutels buiten SQL Server.

  • Transparent Data Encryption (TDE) moet een symmetrische sleutel gebruiken die de databaseversleutelingssleutel wordt genoemd die wordt beveiligd door een certificaat dat wordt beveiligd door de DMK van de master database of door een asymmetrische sleutel die is opgeslagen in een EKM.

  • De servicehoofdsleutel en alle databasehoofdsleutels zijn symmetrische sleutels.

In de volgende afbeelding ziet u dezelfde informatie op een alternatieve manier.

Diagram van versleutelingscombinaties in een wiel.

In dit diagram ziet u de volgende aanvullende concepten:

  • In deze afbeelding geven pijlen algemene versleutelingshiërarchieën aan.

  • Symmetrische en asymmetrische sleutels in het EKM kunnen de toegang tot de symmetrische en asymmetrische sleutels die zijn opgeslagen in SQL Server beveiligen. De stippellijn die is gekoppeld aan EKM geeft aan dat sleutels in het EKM de symmetrische en asymmetrische sleutels kunnen vervangen die zijn opgeslagen in SQL Server.

Achtergrond

Azure SQL en SQL Server gebruiken het RSA-algoritme voor asymmetrische versleuteling. Het RSA-algoritme kan niet worden gebruikt in de 'pure' vorm omdat het geen semantische beveiliging heeft en niet veilig is tegen gekozen aanvallen met tekst zonder opmaak of coderingsaanvallen vanwege deterministische aard. Als u hetzelfde bericht twee keer versleutelt, wordt dezelfde coderingstekst geproduceerd.

Om beveiliging te bereiken, moeten berichten worden opgevuld. Op dit moment worden gegevens versleuteld met RSA met behulp van het PKCS #1 v1.5-opvullingsschema. Een specifieke zwakte van de PKCS#1 v1.5-opvulling is dat deze niet erg redundant is, waarbij de ingesloten bytes willekeurig zijn zonder een specifiek afgedwongen waarde. Een reeks willekeurige bytes kan "correct opgevuld" worden met een geringe waarschijnlijkheid. Een aanvaller zou ongeveer een miljoen afgebroken handshakes nodig hebben om de platte tekst met brute force te herstellen.

Nieuwere versies van PKCS#1 v1.5 beschrijven een nieuw opvullingstype met de naam Optimal Asymmetric Encryption Padding (OAEP), dat gebruikmaakt van een hash-functie om aanzienlijke interne redundantie toe te voegen, waardoor het onwaarschijnlijk is dat een willekeurige tekenreeks overeenkomt met de opvullingsindeling. OAEP introduceert een hashfunctie tussen RSA-versleuteling en padding controle. De hashing van OAEP verandert de mogelijkheid van de aanvaller aanzienlijk om te begrijpen wat ze zien.

Vanaf SQL Server 2025 (17.x) Preview is OAEP-256-ondersteuning voor RSA-versleuteling geïntroduceerd. Overschakelen naar de OAEP-opvullingsmodus wordt aangestuurd door het compatibiliteitsniveau van de database. Deze functie is beschikbaar voor databases op het 170-niveau van databasecompatibiliteit of hoger.

Versleutelingsmechanismen

SQL Server biedt de volgende mechanismen voor versleuteling:

  • Transact-SQL functies

  • Asymmetrische sleutels

  • Symmetrische sleutels

  • Certificaten

  • Transparante Gegevensversleuteling

Transact-SQL functies

Afzonderlijke items kunnen worden versleuteld wanneer ze worden ingevoegd of bijgewerkt met Transact-SQL functies. Zie ENCRYPTBYPASSPHRASE en DECRYPTBYPASSPHRASE voor meer informatie.

Certificaten

Een certificaat met een openbare sleutel, meestal alleen een certificaat genoemd, is een digitaal ondertekende instructie waarmee de waarde van een openbare sleutel wordt gekoppeld aan de identiteit van de persoon, het apparaat of de service die de bijbehorende persoonlijke sleutel bevat. Certificaten worden uitgegeven en ondertekend door een certificeringsinstantie (CA). De entiteit die een certificaat van een CA ontvangt, is het onderwerp van dat certificaat. Certificaten bevatten doorgaans de volgende informatie.

  • De openbare sleutel van het onderwerp.

  • De id-gegevens van het onderwerp, zoals de naam en het e-mailadres.

  • De geldigheidsduur. Dit is de tijdsduur die het certificaat als geldig wordt beschouwd.

    Een certificaat is alleen geldig voor de periode die erin is opgegeven; elk certificaat bevat geldige van - en geldige tot-datums . Deze datums stellen de grenzen van de geldigheidsperiode in. Wanneer de geldigheidsperiode voor een certificaat is verstreken, moet een nieuw certificaat worden aangevraagd door het onderwerp van het nu verlopen certificaat.

  • Identificatiegegevens van uitgever.

  • De digitale handtekening van de uitgever.

    Deze handtekening bevestigt de geldigheid van de binding tussen de openbare sleutel en de id-informatie van het onderwerp. (Het proces van digitaal ondertekenende informatie omvat het transformeren van de informatie, evenals enkele geheime informatie die door de afzender wordt bewaard, in een tag die een handtekening wordt genoemd.)

Een belangrijk voordeel van certificaten is dat ze hosts ontlasten van de noodzaak om een set wachtwoorden voor afzonderlijke onderwerpen te onderhouden. In plaats daarvan stelt de host slechts een vertrouwensrelatie tot stand in een certificaatverlener, die vervolgens een onbeperkt aantal certificaten kan ondertekenen.

Wanneer een host, zoals een beveiligde webserver, een verlener aanwijst als een vertrouwde basisinstantie, vertrouwt de host impliciet het beleid dat de verlener heeft gebruikt om de bindingen van certificaten vast te stellen die deze uitgeeft. De host vertrouwt in feite dat de verlener de identiteit van het certificaatonderwerp heeft geverifieerd. Een host wijst een verlener aan als een vertrouwde basisinstantie door het zelfondertekende certificaat van de verlener, dat de openbare sleutel van de verlener bevat, in het certificaatarchief van de vertrouwde basiscertificeringsinstantie van de hostcomputer te plaatsen. Tussenliggende of onderliggende certificeringsinstanties worden alleen vertrouwd als ze een geldig certificeringspad hebben van een vertrouwde basiscertificeringsinstantie.

De verlener kan een certificaat intrekken voordat het verloopt. Intrekking annuleert de binding van een openbare sleutel met een identiteit die in het certificaat wordt assertieerd. Elke verlener onderhoudt een certificaatintrekkingslijst die door programma's kan worden gebruikt wanneer ze de geldigheid van een bepaald certificaat controleren.

De zelfondertekende certificaten die door SQL Server zijn gemaakt, volgen de X.509-standaard en ondersteunen de X.509 v1-velden.

Asymmetrische sleutels

Een asymmetrische sleutel bestaat uit een persoonlijke sleutel en de bijbehorende openbare sleutel. Elke sleutel kan gegevens ontsleutelen die door de andere zijn versleuteld. Asymmetrische versleuteling en ontsleuteling zijn relatief resource-intensief, maar ze bieden een hoger beveiligingsniveau dan symmetrische versleuteling. Een asymmetrische sleutel kan worden gebruikt voor het versleutelen van een symmetrische sleutel voor opslag in een database.

Symmetrische sleutels

Een symmetrische sleutel is één sleutel die wordt gebruikt voor zowel versleuteling als ontsleuteling. Versleuteling en ontsleuteling met behulp van een symmetrische sleutel is snel en geschikt voor routinegebruik met gevoelige gegevens in de database. Om het sleutelmateriaal van de symmetrische sleutel te beveiligen, slaat SQL Server het sleutelmateriaal op in versleutelde vorm die gebruikmaakt van asymmetrische RSA-versleuteling. In het verleden gebruikte versleuteling PKCS#1 v1.5 opvullingsmodus; vanaf databasecompatibiliteitsniveau 170 gebruikt de versleuteling de opvullingsmodus OAEP-256.

Transparante Gegevensversleuteling

Transparent Data Encryption (TDE) is een speciaal geval van versleuteling met behulp van een symmetrische sleutel. TDE versleutelt een volledige database met behulp van die symmetrische sleutel, de databaseversleutelingssleutel. De databaseversleutelingssleutel wordt beveiligd door andere sleutels of certificaten die worden beveiligd door de DMK of door een asymmetrische sleutel die is opgeslagen in een EKM-module. Zie TDE (Transparent Data Encryption)voor meer informatie.

Fabric SQL-database

In SQL Database in Microsoft Fabric worden Always Encrypted, EKM en TDE momenteel niet ondersteund. In SQL Database in Microsoft Fabric is Microsoft Entra ID voor databasegebruikers de enige ondersteunde verificatiemethode. Voor meer informatie, zie Autorisatie in SQL-database in Microsoft Fabric en Functievergelijking.