Instruktioner för att använda SQL Server 2014 i FIPS 140-2-kompatibelt läge
I den här artikeln beskrivs anvisningarna för Federal Information Processing Standard Publication 140-2 (FIPS 140-2) och hur du använder Microsoft SQL Server 2014 i FIPS 140-2-kompatibelt läge.
Ursprunglig produktversion: SQL Server 2014
Ursprungligt KB-nummer: 3141890
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 men inte användningen av 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" i den meningen att SQL Server 2014 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 2014. Dessutom innebär det att SQL Server 2014 hanterar nycklar på ett säkert sätt, efter behov 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 FIPS 140-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 it-system som drivs av federala myndigheter 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. Annan maskinvara, programvara och processer som anropar rätt algoritmer kan vara FIPS 140-2-kompatibla.
Vad är skillnaden mellan FIPS 140-2-kompatibel och FIPS 140-2-certifierad?
SQL Server 2014 kan konfigureras och köras på ett sätt som är kompatibelt med FIPS 140-2. För att konfigurera SQL Server 2014 på det här sättet måste SQL Server 2014 köras på ett operativsystem som är FIPS 140-2-certifierat eller på ett operativsystem 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 myndighets validerad. Certifiering kräver testning och verifiering av ett USA eller kanadensiskt myndighetsgodkänt utvärderingslabb. Windows Server 2012 och senare versioner och även 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 programprodukter 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. Du kan göra detta med någon av följande metoder:
- Genom att använda Windows-funktionen för nyckelgenerering och nyckelhantering
- Genom att uppfylla kraven för nyckelgenerering och nyckelhantering i programmet
Tänk på att ett FIPS-kompatibelt program kan innehålla områden 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 ska krypteras ytterligare av en certifierad algoritminstans.
Är SQL Server 2014 alltid FIPS 140-2-kompatibel?
Nej. SQL Server 2014 kan vara FIPS 140-2-kompatibel eftersom den kan konfigureras och köras på ett sådant sätt att den endast använder FIPS 140-2-certifierade algoritminstanser som anropas med cryptoAPI för kryptering eller genom hashning i varje instans där FIPS 140-2-efterlevnad krävs.
Hur kan SQL Server 2014 konfigureras att vara FIPS 140-2-kompatibel?
Krav på operativsystem
Installera SQL Server 2014 på en server som baseras på något av följande operativsystem:
- Windows Server 2012
- Windows Server 2012 R2
- Windows 8
- Windows 8.1
- Windows 10
Krav för Windows-systemadministration
FIPS-läget måste anges innan SQL Server 2014 startas. SQL Server läser inställningen vid start. Följ dessa steg för att ställa in FIPS-läget:
- Logga in på Windows som Windows-systemadministratör.
- Klicka på Start.
- Klicka på Kontrollpanelen.
- Klicka på Administrationsverktyg. (Du kan behöva växla tillLarge Icons för nästa steg.)
- Klicka på Lokal säkerhetsprincip. Fönstret Lokala säkerhetsinställningar visas.
- I navigeringsfönstret klickar du påLokala principer och sedan på Säkerhetsalternativ.
- Dubbelklicka på Systemkryptografi i den högra rutan: Använd FIPS-kompatibla algoritmer för kryptering, hashning och signering.
- I dialogrutan som visas klickar du på Aktiverad och sedan på Använd.
- Klicka på OK.
- 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.
För dialogsäkerhet (mellan tjänster) använder krypteringen den FIPS-certifierade instansen av Advanced Encryption Standard (AES) om FIPS-läget är aktiverat. Om FIPS-läget är inaktiverat använder krypteringen RC4.
När du konfigurerar en tjänstkoordinatorslutpunkt i FIPS-läget måste administratören ange "AES" för tjänstkoordinatorn. Om slutpunkten har konfigurerats till RC4 genererar SQL Server ett fel. Därför startar inte transportlagret.
Hur fungerar SQL Server 2014 i FIPS 140-2-kompatibelt läge?
När FIPS-läget i Windows är aktiverat körs SQL Server 2014 i enlighet med FIPS 140-2 i alla områden där användaren inte har något val om huruvida det ska krypteras eller hashas och hur det ska göras. (SQL Server 2014 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 2014 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 programutvecklare: i 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 (National Institute of Standards and Technology) över FIPS 140-2 godkända kryptografiska algoritmer går du till Bilagorna A, C och D i valideringsprogrammet för kryptografiska moduler.
Vad är effekten av att köra SQL Server 2014 i FIPS 140-2-kompatibelt läge?
Användningen av starkare kryptering kan ha en liten effekt på prestanda för de processer för vilka mindre stark kryptering tillåts när processen inte fungerar som FIPS 140-2-kompatibel.
Valet av kryptering för SSIS (UseEncryption=True) genererar ett felmeddelande 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.
Användningen av kryptering tillsammans med äldre DTS är 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 2014-krypterings- och hashprocesser redan är FIPS 140-2-kompatibla, kommer körning med fullständig efterlevnad (dvs. med FIPS-läget i Windows aktiverat) att ha liten eller ingen effekt på produktens användning eller prestanda.
Var kan jag lära mig mer om FIPS 140-2?
Mer information om FIPS 140-2-standarden finns i följande NIST-publikation:
Säkerhetskrav för kryptografiska moduler
Ansvarsfriskrivning för information från tredje part
De produkter från andra tillverkare som diskuteras i denna artikel tillverkas oberoende av Microsoft. Produkternas funktion eller tillförlitlighet kan därför inte garanteras.