Dela via


Använda SQL Server 2016 och senare versioner i FIPS 140-2-kompatibelt läge

Den här artikeln beskriver FIPS 140-2-instruktionerna och hur du använder SQL Server2016 i FIPS 140-2-kompatibelt läge.

Ursprunglig produktversion: SQL Server 2016 och senare Original KB-nummer: 4014354

Kommentar

  • Termerna "FIPS 140-2-kompatibel", "FIPS 140-2-efterlevnad" och "FIPS 140-2-kompatibelt läge" definieras här för användning och tydlighet. Dessa villkor är inte erkända eller definierade myndighetsvillkor. De USA och kanadensiska regeringarna känner igen valideringen av kryptografiska moduler mot standarder som FIPS 140-2 i stället för att använda kryptografiska moduler på ett angivet eller överensstämmande sätt.

    I den här artikeln Vi använder FIPS 140-2-kompatibel, FIPS 140-2-efterlevnad och FIPS 140-2-kompatibelt läge för att innebära att SQL Server 2016 och senare versioner endast använder FIPS 140-2-verifierade instanser av algoritmer och hashfunktioner i alla instanser där krypterade eller hashade data importeras till eller exporteras från SQL Server 2016 och senare versioner. Dessutom innebär det att SQL Server 2016 och senare versons hanterar nycklar på ett säkert sätt, vilket krävs av FIPS 140-2-validerade kryptografiska moduler. Nyckelhanteringsprocessen omfattar även både nyckelgenerering och nyckellagring.

  • Vi använder "certifierad" här för att betyda att instansen av algoritmen är FIPS 140-2 verifierad eller att operativsystemet innehåller FIPS140-2-verifierade instanser av algoritmer.

Vad är FIPS?

Federal Information Processing Standard (FIPS) är en standard som utvecklats av följande två myndigheter:

  • National Institute of Standards and Technology (NIST) i USA
  • Den kommunikationssäkerhetsetablering (CSE) i Kanada

FIPS-standarder rekommenderas eller ges i uppdrag att användas i federala myndighetsstyrda IT-system i USA och Kanada.

Vad är FIPS 140-2?

FIPS 140-2 är en instruktion med titeln "Säkerhetskrav för kryptografiska moduler". Den anger vilka krypteringsalgoritmer och vilka hashalgoritmer som kan användas och hur krypteringsnycklar ska genereras och hanteras. Vissa maskinvaru-, programvaru- och processer som innehåller algoritmerna kan betraktas som FIPS 140-2-certifierade och andra maskinvaru-, programvaru- och processer som anropar rätt algoritmer kan betraktas som FIPS 140-2-kompatibla.

Vad är skillnaden mellan att vara FIPS 140-2-kompatibel och FIPS 140-2-certifierad?

SQL Server 2016 och senare versioner kan konfigureras och köras på ett sätt som är kompatibelt med FIPS 140-2. Om du vill konfigurera SQL Server 2016 och senare versioner på det här sättet måste det köras på ett operativsystem som är FIPS 140-2-certifierat eller som tillhandahåller kryptografiska moduler som är certifierade. Skillnaden mellan efterlevnad och certifiering är inte subtil. Algoritmer kan certifieras. Det är inte tillräckligt att använda en algoritm bara för att den visas på de godkända listorna i FIPS 140-2. I stället måste du använda en instans av en sådan algoritm som är certifierad. Det innebär att instansen är myndighetsvaliderad. Certifiering kräver testning och verifiering av ett amerikanskt eller kanadensiskt myndighetsgodkänt utvärderingslabb. Windows Server 2012 och senare versioner och Windows 8 och senare versioner innehåller den certifierade instansen av varje tillåten algoritm. Viktigast av allt är att ett anrop till var och en av dessa algoritmer endast tillhandahåller den certifierade instansen.

Vilka program kan vara FIPS 140-2-kompatibla?

Alla program som utför kryptering eller hashning och som körs på en certifierad version av Windows kan vara kompatibla med endast certifierade instanser av de godkända algoritmerna och genom att uppfylla kraven för nyckelgenerering och nyckelhantering. Detta kräver att du antingen använder Windows-funktionen för nyckelgenerering och nyckelhantering eller uppfyller kraven för nyckelgenerering och nyckelhantering i programmet. Det kan finnas områden i ett FIPS-kompatibelt program där inkompatibla algoritmer eller processer är aktiverade. Till exempel tillåts vissa interna processer som finns kvar i systemet och vissa externa data som är planerade att krypteras ytterligare av en certifierad algoritminstans.

Är SQL Server 2016 och senare versioner alltid FIPS 140-2-kompatibla?

Nej. SQL Server 2016 och senare versioner kan vara FIPS 140-2-kompatibla eftersom den kan konfigureras och köras så att den endast använder FIPS 140-2-certifierade algoritminstanser. Dessutom anropas dessa instanser med hjälp av CryptoAPI eller CGN för kryptering eller genom hashning i varje instans där FIPS 140-2compliance krävs.

Hur kan SQL Server 2016 och senare versioner konfigureras att vara FIPS 140-2-kompatibla?

Operativsystemskrav

Du måste installera SQL Server 2016 och senare versioner på en värd som kör någon av följande Windows-klienter och -servrar.

Krav för Windows-systemadministration

FIPS-läget måste anges innan SQL Server 2016 eller en senare version startas. SQL Server läser inställningen vid start. Följ dessa steg för att ställa in FIPS-läget:

  1. Logga in på Windows som Windows-systemadministratör.
  2. Välj start.
  3. Välj Kontrollpanelen.
  4. Välj Administrationsverktyg. (Du kan behöva växla till stora ikoner för nästa steg.)
  5. Välj Lokal säkerhetsprincip. Fönstret Lokala säkerhetsinställningar visas.
  6. I navigeringsfönstret väljer du Säkerhetsalternativ för lokala principer>.
  7. Dubbelklicka på Systemkryptografi i fönstret till höger: Använd FIPS-kompatibla algoritmer för kryptering, hashning och signering.
  8. I dialogrutan som visas väljer du Aktiverad>Tillämpa.
  9. Välj OK.
  10. Stäng fönstret Lokala säkerhetsinställningar .

Krav för SQL Server-administratör

När SQL Server-tjänsten (när en slutpunkt har konfigurerats för antingen Service Broker eller Databasspegling) upptäcker att FIPS-läget är aktiverat vid start loggar SQL Server följande meddelande i SQL Server-felloggen:

Service Broker-transport körs i FIPS-efterlevnadsläge.

Dessutom kan följande meddelande vara loggat i Windows-händelseloggen:

Databasspeglingstransport körs i FIPS-efterlevnadsläge.

Du kan kontrollera att servern körs i FIPS-läge genom att leta efter dessa meddelanden.

Kommentar

  • För dialogsäkerhet (mellan tjänster) använder krypteringsprocessen den FIPS-certifierade instansen av AES om FIPS-läget är aktiverat. Om FIPS-läget är inaktiverat använder krypteringsprocessen fortfarande AES.
  • När du konfigurerar en tjänstkoordinatorslutpunkt i FIPS-läge måste administratören ange "AES" för tjänstkoordinatorn. Om slutpunkten har konfigurerats till RC4 genererar SQL Server ett fel. Transportlagret startar därför inte.

Hur fungerar SQL Server 2016 och senare versioner i FIPS 140-2-kompatibelt läge?

  • När FIPS-läget i Windows är aktiverat körs SQL Server 2016 och senare versioner i enlighet med FIPS 140-2 i alla områden där användaren inte har något val om att kryptera eller hash. (SQL Server 2016 och senare versioner använder CryptoAPI i Windows och använder endast certifierade instanser av algoritmerna.)

  • När FIPS-läget i Windows är aktiverat aktiverar SQL Server 2016 och senare versioner endast FIPS 140-2-kompatibel kryptering i alla områden där användaren kan välja om kryptering ska användas eller inte.

  • Viktig information för programvaruutvecklare: På alla områden där utvecklaren eller användaren skriver sin egen kod för kryptering eller hashning måste de instrueras att endast använda CryptoAPI (och därför endast de certifierade instanserna) och att endast ange de algoritmer som tillåts av FIPS 140-2.För den officiella NIST-listan över FIPS 140-2-godkända kryptografiska algoritmer, se Bilagorna A, C och D i valideringsprogrammet för kryptografiska moduler.

Vad är effekten av att köra SQL Server 2016 eller en senare version i FIPS 140-2-kompatibelt läge?

  • När du använder starkare kryptering kan det ha en liten effekt på prestanda för de processer för vilka mindre robust kryptering tillåts när processen inte fungerar som FIPS 140-2-kompatibel.

  • Valet av kryptering för SSIS (UseEncryption=True) genererar ett fel som anger att den tillgängliga krypteringen är inkompatibel med FIPS-efterlevnad och inte tillåts. Med andra ord utförs ingen kryptering av meddelandeprocessen.

  • När du använder kryptering tillsammans med äldre DTS är krypteringen inte kompatibel med FIPS 140-2. För DTS är FIPS-läget i Windows inte markerat. Därför är det användarens ansvar att inte välja någon kryptering för att förbli kompatibel.

  • Eftersom de flesta SQL Server 2016- och senare versioner av kryptering och hashprocesser redan är FIPS 140-2-kompatibla, kommer körning med fullständig efterlevnad (dvs. med FIPS-läge i Windows aktiverat) att ha liten eller ingen effekt på användningen eller på programmets prestanda.

Var kan jag lära mig mer om FIPS 140-2?

Mer information om FIPS 140-2 finns i CMVP FIPS 140-2 Standarder och dokument.

Kontaktinformationen för andra företag i denna artikel kan hjälpa dig att hitta den tekniska support du behöver. Denna kontaktinformation kan ändras utan föregående meddelande. Microsoft garanterar inte att den här kontaktinformationen från tredje part är korrekt.