Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2019 (15.x) en hoger - alleen Windows
In dit artikel wordt beschreven hoe u SQL Server-computers registreert om te attesteren met de Host Guardian-service (HGS).
Notitie
Voor het registreren van een SQL Server bij HGS is een gezamenlijke inspanning van de HGS-beheerder en de SQL Server-computerbeheerder vereist. Zie Rollen en verantwoordelijkheden bij het configureren van attestation met HGS-.
Voordat u begint, moet u ervoor zorgen dat u ten minste één HGS-computer hebt geïmplementeerd en de HGS-attestation-service hebt ingesteld. Zie De Host Guardian-service implementeren voor SQL Servervoor meer informatie.
Stap 1: De attestation-clientonderdelen installeren
Notitie
Deze stap moet worden uitgevoerd door de computerbeheerder van SQL Server.
Als u wilt dat een SQL-client controleert of deze met een betrouwbare SQL Server-computer communiceert, moet de SQL Server-computer succesvol attesteren met de Host Guardian Service. Het attestation-proces wordt beheerd door een optioneel Windows-onderdeel met de naam HGS-client. De onderstaande stappen helpen u dit onderdeel te installeren en te beginnen met het attesteren.
Zorg ervoor dat de SQL Server-computer voldoet aan de vereisten die worden beschreven in het HGS-planningsdocumenten.
Voer de volgende opdracht uit in een PowerShell-console met verhoogde bevoegdheid om de host guardian-Hyper-V ondersteuningsfunctie te installeren, die HGS-client en de attestation-onderdelen bevat.
Enable-WindowsOptionalFeature -Online -FeatureName HostGuardian -AllStart opnieuw om de installatie te voltooien.
Stap 2: Controleren of beveiliging op basis van virtualisatie wordt uitgevoerd
Notitie
Deze stap moet worden uitgevoerd door de computerbeheerder van SQL Server.
Wanneer u de Host Guardian Hyper-V Ondersteuningsfunctie installeert, wordt beveiliging op basis van virtualisatie (VBS) automatisch geconfigureerd en ingeschakeld.
De enclaves voor SQL Server Always Encrypted worden beveiligd door en uitgevoerd in de VBS-omgeving.
VBS kan niet worden gestart als op de computer geen IOMMU-apparaat is geïnstalleerd en ingeschakeld.
Als u wilt controleren of VBS wordt uitgevoerd, opent u het hulpprogramma Systeeminformatie door msinfo32.exe uit te voeren en de Virtualization-based security items onder aan het systeemoverzicht te vinden.
schermopname van 
Het eerste item dat moet worden gecontroleerd, is Virtualization-based security, die de volgende drie waarden kan hebben:
-
Runningbetekent dat VBS correct is geconfigureerd en kan worden gestart. Als op de computer deze status wordt weergegeven, kunt u doorgaan naar stap 3. -
Enabled but not runningbetekent dat VBS is geconfigureerd voor uitvoering, maar dat de hardware niet beschikt over de minimale beveiligingsvereisten voor het uitvoeren van VBS. Mogelijk moet u de configuratie van de hardware in BIOS of UEFI wijzigen om optionele processorfuncties zoals een IOMMU in te schakelen of als de hardware de vereiste functies niet ondersteunt, moet u mogelijk de VBS-beveiligingsvereisten verlagen. Lees deze sectie verder voor meer informatie. -
Not enabledbetekent dat VBS niet is geconfigureerd voor uitvoering. Met de functie Host Guardian Hyper-V Ondersteuning wordt VBS automatisch ingeschakeld. Het is daarom raadzaam stap 1 te herhalen als u deze status ziet.
Als VBS niet op de computer wordt uitgevoerd, controleer de Virtualization-based security eigenschappen. Vergelijk de waarden in het Required Security Properties item met de waarden in het Available Security Properties item.
De vereiste eigenschappen moeten gelijk zijn aan of een subset van de beschikbare beveiligingseigenschappen om VBS uit te voeren.
In de context van het attesteren van SQL Server-enclaves hebben de beveiligingseigenschappen het volgende belang:
-
Base virtualization supportis altijd vereist, omdat deze de minimale hardwarefuncties vertegenwoordigt die nodig zijn om een hypervisor uit te voeren. -
Secure Bootwordt aanbevolen maar niet vereist voor SQL Server Always Encrypted. Beveiligd opstarten beschermt tegen rootkits door te vereisen dat een door Microsoft ondertekende bootloader onmiddellijk wordt uitgevoerd nadat de UEFI-initialisatie is voltooid. Als u TPM-attestation (Trusted Platform Module) gebruikt, wordt beveiligd opstarten gemeten en afgedwongen, ongeacht of VBS is geconfigureerd om Beveiligd opstarten te vereisen. -
DMA Protectionwordt aanbevolen maar niet vereist voor SQL Server Always Encrypted. DMA-beveiliging maakt gebruik van een IOMMU om VBS en enclavegeheugen te beschermen tegen aanvallen met directe geheugentoegang. In een productieomgeving moet u altijd computers met DMA-beveiliging gebruiken. In een ontwikkel-/testomgeving is het geen probleem om de vereiste voor DMA-beveiliging te verwijderen. Als het SQL Server-exemplaar is gevirtualiseerd, hebt u waarschijnlijk geen DMA-beveiliging beschikbaar en moet u de vereiste verwijderen dat VBS moet worden uitgevoerd. Bekijk het vertrouwensmodel voor informatie over de verlaagde beveiligingsgaranties bij het uitvoeren op een virtuele machine.
Voordat u de vereiste VBS-beveiligingsfuncties verlaagt, neemt u contact op met uw OEM- of cloudserviceprovider om te controleren of er een manier is om de ontbrekende platformvereisten in te schakelen in UEFI of BIOS (bijvoorbeeld het inschakelen van Secure Boot, Intel VT-d of AMD IOV).
Als u de vereiste platformbeveiligingsfuncties voor VBS wilt wijzigen, voert u de volgende opdracht uit in een PowerShell-console met verhoogde bevoegdheid:
# Value 0 = No security features required
# Value 1 = Only Secure Boot is required
# Value 2 = Only DMA protection is required (default configuration)
# Value 3 = Both Secure Boot and DMA protection are required
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 0
Nadat u het register hebt gewijzigd, start u de SQL Server-computer opnieuw op en controleert u of VBS opnieuw wordt uitgevoerd.
Als de computer wordt beheerd door uw bedrijf, kan Groepsbeleid of Microsoft Endpoint Manager eventuele wijzigingen die u aanbrengt in deze registersleutels overschrijven na het opnieuw opstarten. Neem contact op met uw IT-helpdesk om te zien of ze beleidsregels implementeren die uw VBS-configuratie beheren.
Stap 3: De attestation-URL configureren
Notitie
Deze stap moet worden uitgevoerd door de computerbeheerder van SQL Server.
Vervolgens configureert u de SQL Server-computer met de URL voor de HGS-attestation-service die u hebt verkregen van de HGS-beheerder.
Werk in een PowerShell-console met verhoogde bevoegdheid de volgende opdracht bij en voer deze uit om de attestation-URL te configureren.
- Vervang
hgs.bastion.localdoor de naam van het HGS-cluster - U kunt
Get-HgsServeruitvoeren op elke HGS-computer om de clusternaam op te halen - De attestation-URL moet altijd eindigen op
/Attestation - SQL Server maakt geen gebruik van de belangrijkste beveiligingsfuncties van HGS, dus geef een dummy-URL op, zoals
http://localhostvoor-KeyProtectionServerUrl
Set-HgsClientConfiguration -AttestationServerUrl "https://hgs.bastion.local/Attestation" -KeyProtectionServerUrl "http://localhost"
Tenzij u deze machine eerder bij HGS hebt geregistreerd, meldt de opdracht een attestatiefout. Dit resultaat is normaal.
Het AttestationMode veld in de cmdlet-uitvoer geeft aan welke attestation-modus HGS gebruikt.
Ga verder met stap 4A- om de computer te registreren in de TPM-modus of stap 4B om de computer te registreren in de hostsleutelmodus.
Stap 4A: Een computer registreren in TPM-modus
Notitie
Deze stap wordt gezamenlijk uitgevoerd door de SQL Server-computerbeheerder en de HGS-beheerder. Zie de onderstaande notities voor meer informatie.
Voorbereiden
Notitie
Deze actie moet worden uitgevoerd door de computerbeheerder van SQL Server.
In deze stap verzamelt u informatie over de TPM-status van de computer en registreert u deze bij HGS.
Als de HGS-attestation-service is geconfigureerd voor het gebruik van de hostsleutelmodus, gaat u naar stap 4B.
Voordat u TPM-metingen gaat verzamelen, moet u ervoor zorgen dat u werkt aan een bekende goede configuratie van de SQL Server-computer. Op de computer moet alle benodigde hardware zijn geïnstalleerd en de meest recente firmware- en software-updates zijn toegepast. HGS vergelijkt de computers met deze basislijn wanneer ze attesteren, dus het is belangrijk om in de meest veilige en beoogde toestand te verkeren bij het verzamelen van de TPM-metingen.
Er zijn drie gegevensbestanden verzameld voor TPM-attestation, waarvan sommige opnieuw kunnen worden gebruikt als u identieke computers hebt geconfigureerd.
| Attestatieartefact | Wat het meet | Uniciteit |
|---|---|---|
| Platformidentificatie | De openbare goedkeuringssleutel in de TPM van de computer en het goedkeuringssleutelcertificaat van de TPM-fabrikant. | 1 voor elke computer |
| TPM-basislijn | De platformcontrole-registers (PCR's) in de TPM meten de firmware- en besturingssysteemconfiguratie die tijdens het opstartproces is geladen. Voorbeelden hiervan zijn de status Beveiligd opstarten en of crashdumps zijn versleuteld. | Eén basislijn per unieke computerconfiguratie (identieke hardware en software kunnen dezelfde basislijn gebruiken) |
| Code-integriteitsbeleid | Het Windows Defender Application Control beleid dat u vertrouwt om de computers te beveiligen | Eén per uniek CI-beleid dat op de computers wordt toegepast. |
U kunt meer dan één van elk attestation-artefact op HGS configureren ter ondersteuning van een gemengde vloot hardware en software. HGS vereist alleen dat een computerverklaring overeenkomt met één beleid uit elke beleidscategorie. Als u bijvoorbeeld drie TPM-basislijnen hebt geregistreerd op HGS, kunnen de computermetingen overeenkomen met een van deze basislijnen om te voldoen aan de beleidsvereiste.
Een code-integriteitsbeleid configureren
Notitie
Deze onderstaande stappen moeten worden uitgevoerd door de SQL Server-computerbeheerder.
HGS vereist dat op elke computer die attesteren in de TPM-modus een WDAC-beleid (Windows Defender Application Control) wordt toegepast. WdAC-codeintegriteitsbeleid beperkt welke software op een computer kan worden uitgevoerd door elk proces te controleren dat probeert code uit te voeren op basis van een lijst met vertrouwde uitgevers en bestandshashes. Voor de SQL Server-use-case worden enclaves beveiligd door beveiliging op basis van virtualisatie en kunnen ze niet worden gewijzigd vanuit het hostbesturingssysteem. De striktheid van het WDAC-beleid heeft dus geen invloed op de beveiliging van versleutelde query's. Daarom is het raadzaam om een controlemodusbeleid te implementeren op de SQL Server-computers om te voldoen aan de attestation-vereiste zonder extra beperkingen op het systeem op te leggen.
Als u al een aangepast WDAC-code-integriteitsbeleid op de computers gebruikt om de configuratie van het besturingssysteem te beveiligen, kunt u doorgaan naar TPM-attestation-informatie verzamelen.
Er zijn vooraf gemaakte voorbeeldbeleidsregels beschikbaar op elk besturingssysteem Windows Server 2019, Windows 10 versie 1809 en hoger. Met het
AllowAll-beleid kan elke software zonder beperkingen op de computer worden uitgevoerd. Converteer het beleid naar een binair formulier dat wordt begrepen door het besturingssysteem en HGS om het te gebruiken. Voer in een PowerShell-console met verhoogde bevoegdheid de volgende opdrachten uit om hetAllowAll-beleid te compileren:# We are changing the policy to disable enforcement and user mode code protection before compiling $temppolicy = "$HOME\Desktop\allowall_edited.xml" Copy-Item -Path "$env:SystemRoot\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml" -Destination $temppolicy Set-RuleOption -FilePath $temppolicy -Option 0 -Delete Set-RuleOption -FilePath $temppolicy -Option 3 ConvertFrom-CIPolicy -XmlFilePath $temppolicy -BinaryFilePath "$HOME\Desktop\allowall_cipolicy.bin"Volg de richtlijnen in de implementatiehandleiding voor Windows Defender Application Control om het
allowall_cipolicy.bin-bestand te implementeren op de SQL Server-computers met behulp van groepsbeleid. Voor werkgroepcomputers volgt u hetzelfde proces met behulp van de editor voor lokaal groepsbeleid (gpedit.msc).Voer
gpupdate /forceuit op de SQL Server-computers om het nieuwe code-integriteitsbeleid te configureren en start vervolgens de computers opnieuw op om het beleid toe te passen.
TPM-attestation-informatie verzamelen
Notitie
Deze onderstaande stappen moeten worden uitgevoerd door de SQL Server-computerbeheerder.
Herhaal de volgende stappen voor elke SQL Server-computer die wordt bevestigd met HGS:
Voer met de computer in een bekende goede staat de volgende opdrachten uit in PowerShell om de TPM-attestation-informatie te verzamelen:
# Collects the TPM EKpub and EKcert $name = $env:computername $path = "$HOME\Desktop" (Get-PlatformIdentifier -Name $name).Save("$path\$name-EK.xml") # Collects the TPM baseline (current PCR values) Get-HgsAttestationBaselinePolicy -Path "$path\$name.tcglog" -SkipValidation # Collects the applied CI policy, if one exists Copy-Item -Path "$env:SystemRoot\System32\CodeIntegrity\SIPolicy.p7b" -Destination "$path\$name-CIpolicy.bin"Deel de drie attestation-bestanden met de HGS-beheerder.
De SQL Server-computer registreren bij HGS
Notitie
Deze onderstaande stappen moeten worden uitgevoerd door de HGS-beheerder.
Herhaal de volgende stappen voor elke SQL Server-computer die wordt bevestigd met HGS:
Kopieer de attestation-bestanden die u hebt verkregen van de SQL Server-computerbeheerder naar de HGS-server.
Voer op de HGS-server de volgende opdrachten uit in een PowerShell-console met verhoogde bevoegdheid om de SQL Server-computer te registreren:
# TIP: REMEMBER TO CHANGE THE FILENAMES # Registers the unique TPM with HGS (required for every computer) Add-HgsAttestationTpmHost -Path "C:\temp\SQL01-EK.xml" # Registers the TPM baseline (required ONCE for each unique hardware and software configuration) Add-HgsAttestationTpmPolicy -Name "MyHWSoftwareConfig" -Path "C:\temp\SQL01.tcglog" # Registers the CI policy (required ONCE for each unique CI policy) Add-HgsAttestationCiPolicy -Name "AllowAll" -Path "C:\temp\SQL01-CIpolicy.bin"Tip
Als er een fout optreedt bij het registreren van de unieke TPM-identificatie, moet u ervoor zorgen dat u de tussenliggende TPM- en basiscertificaten hebt geïmporteerd op de HGS-computer die u gebruikt.
Naast het platform-id-, TPM-basislijn- en code-integriteitsbeleid zijn er ingebouwde beleidsregels geconfigureerd en afgedwongen door HGS die u mogelijk moet wijzigen. Deze ingebouwde beleidsregels worden gemeten vanuit de TPM-basislijn die u van de server verzamelt en vertegenwoordigen verschillende beveiligingsinstellingen die moeten worden ingeschakeld om de computer te beveiligen. Als er computers zijn waarop geen IOMMU aanwezig is om te beveiligen tegen DMA-aanvallen (bijvoorbeeld een VIRTUELE machine), moet u het IOMMU-beleid uitschakelen.
Als u de IOMMU-vereiste wilt uitschakelen, voert u de volgende opdracht uit op de HGS-server:
Disable-HgsAttestationPolicy Hgs_IommuEnabled
Notitie
Als u het IOMMU-beleid uitschakelt, zijn IOMMU's niet vereist voor computerattest met HGS. Het is niet mogelijk om het IOMMU-beleid voor slechts één computer uit te schakelen.
U kunt de lijst met geregistreerde TPM-hosts en -beleidsregels bekijken met de volgende PowerShell-opdrachten:
Get-HgsAttestationTpmHost
Get-HgsAttestationTpmPolicy
Stap 4B: Een computer registreren in de hostsleutelmodus
Notitie
Deze stap wordt gezamenlijk uitgevoerd door de SQL Server-computerbeheerder en de HGS-beheerder. Zie de onderstaande notities voor meer informatie.
In deze stap wordt u begeleid bij het proces voor het genereren van een unieke sleutel voor de host en het registreren bij HGS. Als de HGS-attestation-service is geconfigureerd voor het gebruik van de TPM-modus, volgt u de richtlijnen in stap 4A.
Een sleutel genereren voor een SQL Server-computer
Notitie
Dit onderdeel moet gezamenlijk worden uitgevoerd door de COMPUTERbeheerder van SQL Server.
Attestation van hostsleutels werkt door een asymmetrisch sleutelpaar op de SQL Server-computer te genereren en HGS te voorzien van de openbare helft van die sleutel.
Herhaal de volgende stappen voor elke SQL Server-computer die wordt bevestigd met HGS:
Voer de volgende opdracht uit in een PowerShell-console met verhoogde bevoegdheid om het sleutelpaar te genereren:
Set-HgsClientHostKey Get-HgsClientHostKey -Path "$HOME\Desktop\$env:computername-key.cer"Als u al een hostsleutel hebt gemaakt en een nieuw sleutelpaar wilt genereren, gebruikt u in plaats daarvan de volgende opdrachten:
Remove-HgsClientHostKey Set-HgsClientHostKey Get-HgsClientHostKey -Path "$HOME\Desktop\$env:computername-key.cer"Deel het certificaatbestand met de HGS-beheerder.
De SQL Server-computer registreren bij HGS
Notitie
Deze onderstaande stappen moeten worden uitgevoerd door de HGS-beheerder.
Herhaal de volgende stappen voor elke SQL Server-computer die wordt bevestigd met HGS:
Kopieer het certificaatbestand, dat u hebt verkregen van de SQL Server-computerbeheerder, naar een HGS-server.
Voer de volgende opdracht uit in een PowerShell-console met verhoogde bevoegdheid om de SQL Server-computer te registreren:
Add-HgsAttestationHostKey -Name "YourComputerName" -Path "C:\temp\yourcomputername.cer"
Stap 5: controleer of de host kan worden bevestigd
Notitie
Deze stap moet worden uitgevoerd door de computerbeheerder van SQL Server.
Nadat u de SQL Server-computer hebt geregistreerd bij HGS (stap 4A voor TPM-modus, stap 4B voor de host-sleutelmodus), moet u bevestigen dat de attestatie succesvol kan worden uitgevoerd.
U kunt de configuratie van de HGS-attestation-client controleren en op elk gewenst moment een attestation-poging uitvoeren met Get-HgsClientConfiguration-.
De uitvoer van de opdracht ziet er ongeveer als volgt uit:
PS C:\> Get-HgsClientConfiguration
IsHostGuarded : True
Mode : HostGuardianService
KeyProtectionServerUrl : http://localhost
AttestationServerUrl : http://hgs.bastion.local/Attestation
AttestationOperationMode : HostKey
AttestationStatus : Passed
AttestationSubstatus : NoInformation
FallbackKeyProtectionServerUrl :
FallbackAttestationServerUrl :
IsFallbackInUse : False
De twee belangrijkste velden in de uitvoer zijn AttestationStatus, waarmee wordt aangegeven of de computer de attestatie heeft doorstaan, en AttestationSubStatus, waarin wordt uitgelegd aan welke beleidsregels de computer niet heeft voldaan als de computer de attestatie niet heeft doorstaan.
De meest voorkomende waarden die in AttestationStatus kunnen worden weergegeven, worden hieronder uitgelegd:
AttestationStatus |
Uitleg |
|---|---|
| Vervallen | De host heeft eerder attestatie doorstaan, maar het gezondheidscertificaat dat werd uitgegeven, is verlopen. Zorg ervoor dat de host- en HGS-tijd gesynchroniseerd zijn. |
InsecureHostConfiguration |
De computer voldoet niet aan een of meer attestation-beleidsregels die zijn geconfigureerd op de HGS-server. Zie AttestationSubStatusvoor meer informatie. |
| Niet geconfigureerd | De computer is niet geconfigureerd met een attestation-URL. de attestation-URL configureren |
| Doorgegeven | De computer heeft attestation doorstaan en wordt vertrouwd om SQL Server-enclaves uit te voeren. |
TransientError |
De attestation-poging is mislukt vanwege een tijdelijke fout. Deze fout betekent meestal dat er een probleem is opgetreden bij het contact opnemen met HGS via het netwerk. Controleer de netwerkverbinding en zorg ervoor dat de computer de naam van de HGS-service kan oplossen en routeren. |
TpmError |
Het TPM-apparaat van de computer heeft een fout gerapporteerd tijdens de poging tot attestatie. Controleer de TPM-logboeken voor meer informatie. Het wissen van de TPM kan het probleem oplossen, maar zorg ervoor dat u BitLocker en andere aan de TPM gerelateerde services onderbreekt voordat u de TPM wist. |
UnauthorizedHost |
De hostsleutel is niet bekend bij HGS. Volg de instructies in stap 4B om de computer te registreren bij HGS. |
Wanneer in AttestationStatusInsecureHostConfigurationwordt weergegeven, wordt het veld AttestationSubStatus gevuld met een of meer beleidstitels die zijn mislukt.
In de onderstaande tabel worden de meest voorkomende waarden uitgelegd en wordt uitgelegd hoe u de fouten kunt oplossen.
| AttestationSubStatus | Wat betekent het en wat u moet doen |
|---|---|
| Code-Integriteit-Politiek | Het code-integriteitsbeleid op de computer is niet geregistreerd bij HGS-of de computer momenteel geen code-integriteitsbeleid gebruikt. Zie Een code-integriteitsbeleid configureren voor hulp. |
| DumpsIngeschakeld | De computer is geconfigureerd om crashdumps toe te staan, maar het Hgs_DumpsEnabled-beleid staat geen dumps toe. Schakel dumps op deze computer uit of schakel het Hgs_DumpsEnabled-beleid uit om door te gaan. |
| FullBoot | De computer is hervat vanuit een slaapstand of sluimerstand, wat resulteert in wijzigingen in de TPM-metingen. Start de computer opnieuw op om schone TPM-metingen te genereren. |
| SluimerstandIngeschakeld | De computer is geconfigureerd om sluimerstand met niet-versleutelde sluimerstandbestanden toe te staan. Schakel de sluimerstand op de computer uit om dit probleem op te lossen. |
| Hypervisor Afgedwongen Code-Integriteitsbeleid | De computer is niet geconfigureerd voor het gebruik van een code-integriteitsbeleid. Controleer het groepsbeleid of lokaal groepsbeleid > Computerconfiguratie > Beheersjablonen > System > Device Guard > Beveiliging op basis van virtualisatie > Beveiliging op basis van code-integriteit inschakelen. Dit beleidsitem moet zijn ingeschakeld zonder UEFI-vergrendeling. |
| Iommu | Op deze computer is geen IOMMU-apparaat ingeschakeld. Als het een fysieke computer is, schakelt u de IOMMU in het UEFI-configuratiemenu in. Als het een virtuele machine is en een IOMMU niet beschikbaar is, voert u Disable-HgsAttestationPolicy Hgs_IommuEnabled uit op de HGS-server. |
| SecureBoot | Beveiligd opstarten is niet ingeschakeld op deze computer. Schakel Beveiligd opstarten in het UEFI-configuratiemenu in om deze fout op te lossen. |
| VirtualSecureMode | Beveiliging op basis van virtualisatie wordt niet uitgevoerd op deze computer. Volg de richtlijnen in stap 2: controleer of VBS wordt uitgevoerd op de computer. |