Verwenden von SQL Server 2016 und höheren Versionen im FIPS 140-2-kompatiblen Modus
In diesem Artikel werden die FIPS 140-2-Anweisungen und die Verwendung von SQL Server2016 im FIPS 140-2-kompatiblen Modus erläutert.
Ursprüngliche Produktversion: SQL Server 2016 und höher Original KB-Nummer: 4014354
Notiz
Die Begriffe "FIPS 140-2-konform", "FIPS 140-2 Compliance" und "FIPS 140-2-kompatibler Modus" sind hier für die Verwendung und Klarheit definiert. Diese Begriffe werden nicht erkannt oder definiert. Die USA und kanadischen Regierungen erkennen die Validierung kryptografischer Module gegen Standards wie FIPS 140-2 an, anstatt kryptografische Module auf bestimmte oder konforme Weise zu verwenden.
In diesem Artikel verwenden wir FIPS 140-2-konform, FIPS 140-2-Compliance und FIPS 140-2-kompatiblen Modus, um zu bedeuten, dass SQL Server 2016 und höhere Versionen nur FIPS 140-2-validierte Instanzen von Algorithmen und Hashingfunktionen in allen Instanzen verwenden, in denen verschlüsselte oder hashed-Daten in SQL Server 2016 und höhere Versionen importiert oder exportiert werden. Darüber hinaus bedeutet dies, dass SQL Server 2016 und spätere Versons Schlüssel auf sichere Weise verwalten, wie für FIPS 140-2-validierte kryptografische Module erforderlich. Der Schlüsselverwaltungsprozess umfasst auch sowohl die Schlüsselgenerierung als auch die Schlüsselspeicherung.
Wir verwenden hier "zertifiziert", um zu bedeuten, dass die Instanz des Algorithmus FIPS 140-2 validiert ist oder dass das Betriebssystem FIPS140-2-validierte Instanzen von Algorithmen enthält.
Was ist FIPS?
Der Federal Information Processing Standard (FIPS) ist ein Standard, der von den folgenden beiden Regierungsbehörden entwickelt wird:
- Das National Institute of Standards and Technology (NIST) im USA
- Die Communications Security Establishment (CSE) in Kanada
FIPS-Standards werden entweder empfohlen oder für die Verwendung in vom Bund betriebenen IT-Systemen in den USA und Kanada vorgeschrieben.
Was ist FIPS 140-2?
FIPS 140-2 ist eine Anweisung mit dem Titel "Sicherheitsanforderungen für kryptografische Module". Es gibt an, welche Verschlüsselungsalgorithmen und welche Hashingalgorithmen verwendet werden können und wie Verschlüsselungsschlüssel generiert und verwaltet werden sollen. Einige Hardware, Software und Prozesse, die die Algorithmen enthalten, können als FIPS 140-2 zertifiziert und andere Hardware, Software und Prozesse, die die richtigen Algorithmen aufrufen, als FIPS 140-2 kompatibel betrachtet werden.
Was ist der Unterschied zwischen FIPS 140-2 konform und FIPS 140-2 zertifiziert?
SQL Server 2016 und höhere Versionen können so konfiguriert und ausgeführt werden, dass sie mit FIPS 140-2 kompatibel sind. Um SQL Server 2016 und höhere Versionen auf diese Weise zu konfigurieren, muss sie auf einem Betriebssystem ausgeführt werden, das FIPS 140-2 zertifiziert ist oder kryptografische Module bereitstellt, die zertifiziert sind. Der Unterschied zwischen Compliance und Zertifizierung ist nicht subtil. Algorithmen können zertifiziert werden. Es reicht nicht aus, einen Algorithmus zu verwenden, nur weil er in den genehmigten Listen in FIPS 140-2 aufgeführt ist. Stattdessen müssen Sie eine Instanz eines solchen Algorithmus verwenden, der zertifiziert ist. Dies bedeutet, dass die Instanz von der Regierung überprüft wird. Die Zertifizierung erfordert Tests und Überprüfungen durch ein vom US- oder kanadischen Behörden genehmigtes Bewertungslabor. Windows Server 2012 und höhere Versionen sowie Windows 8 und höhere Versionen enthalten die zertifizierte Instanz jedes zulässigen Algorithmus. Am wichtigsten ist, dass jeder dieser Algorithmen nur die zertifizierte Instanz aufruft.
Welche Anwendungen können FIPS 140-2 kompatibel sein?
Alle Anwendungen, die Verschlüsselung oder Hashing ausführen und auf einer zertifizierten Version von Windows ausgeführt werden, können nur mit den zertifizierten Instanzen der genehmigten Algorithmen kompatibel sein und die Anforderungen an die Schlüsselgenerierung und die Schlüsselverwaltung erfüllen. Dies erfordert entweder die Verwendung der Windows-Funktion für die Schlüsselgenerierung und die Schlüsselverwaltung oder die Einhaltung der Anforderungen an die Schlüsselgenerierung und die Schlüsselverwaltung innerhalb der Anwendung. Bereiche in einer FIPS-kompatiblen Anwendung können vorhanden sein, wenn nicht kompatible Algorithmen oder Prozesse aktiviert sind. Beispielsweise sind einige interne Prozesse, die im System verbleiben, und einige externe Daten, die durch eine zertifizierte Algorithmusinstanz zusätzlich verschlüsselt werden sollen, zulässig.
Sind SQL Server 2016 und höhere Versionen immer FIPS 140-2 kompatibel?
-Nr. SQL Server 2016 und höhere Versionen können FIPS 140-2-kompatibel sein, da sie konfiguriert und ausgeführt werden kann, sodass nur die FIPS 140-2-zertifizierten Algorithmusinstanzen verwendet werden. Darüber hinaus werden diese Instanzen mithilfe von CryptoAPI oder CGN zur Verschlüsselung oder durch Hashing in jeder Instanz aufgerufen, in der FIPS 140-2compliance erforderlich ist.
Wie kann SQL Server 2016 und höhere Versionen so konfiguriert werden, dass sie FIPS 140-2 kompatibel sind?
Betriebssystemanforderungen
Sie müssen SQL Server 2016 und höhere Versionen auf einem Host installieren, auf dem einer der folgenden Windows-Clients und -Server ausgeführt wird.
Windows-Systemverwaltungsanforderungen
Der FIPS-Modus muss festgelegt werden, bevor SQL Server 2016 oder eine höhere Version gestartet wird. SQL Server liest die Einstellung beim Start. Führen Sie die folgenden Schritte aus, um den FIPS-Modus festzulegen:
- Melden Sie sich bei Windows als Windows-Systemadministrator an.
- Wählen Sie Starten aus.
- Wählen Sie Systemsteuerung.
- Wählen Sie "Verwaltungstools" aus. (Möglicherweise müssen Sie für den nächsten Schritt zu großen Symbolen wechseln.)
- Wählen Sie Lokale Sicherheitsrichtlinie aus. Das Fenster "Lokale Sicherheitseinstellungen " wird angezeigt.
- Wählen Sie im Navigationsbereich die Sicherheitsoptionen für lokale Richtlinien>aus.
- Doppelklicken Sie im Bereich auf der rechten Seite auf die Systemkryptografie: Verwenden Sie FIPS-kompatible Algorithmen für Verschlüsselung, Hashing und Signierung.
- Wählen Sie im daraufhin angezeigten Dialogfeld "Aktiviert" die>Option "Übernehmen" aus.
- Klicken Sie auf OK.
- Schließen Sie das Fenster " Lokale Sicherheitseinstellungen" .
SQL Server-Administratoranforderung
Wenn der SQL Server-Dienst (wenn ein Endpunkt für Service Broker oder Datenbankspiegelung konfiguriert ist) erkennt, dass der FIPS-Modus beim Start aktiviert ist, protokolliert SQL Server die folgende Meldung im SQL Server-Fehlerprotokoll:
Der Dienstbrokertransport wird im FIPS-Compliancemodus ausgeführt.
Darüber hinaus finden Sie möglicherweise die folgende Meldung, die im Windows-Ereignisprotokoll protokolliert wird:
Der Transport der Datenbankspiegelung wird im FIPS-Kompatibilitätsmodus ausgeführt.
Sie können überprüfen, ob der Server im FIPS-Modus ausgeführt wird, indem Sie nach diesen Nachrichten suchen.
Notiz
- Für die Dialogsicherheit (zwischen Diensten) verwendet der Verschlüsselungsprozess die FIPS-zertifizierte Instanz von AES, wenn der FIPS-Modus aktiviert ist. Wenn der FIPS-Modus deaktiviert ist, verwendet der Verschlüsselungsprozess weiterhin AES.
- Wenn Sie einen Dienstenbrokerendpunkt im FIPS-Modus konfigurieren, muss der Administrator "AES" für den Dienstbroker angeben. Wenn der Endpunkt auf RC4 konfiguriert ist, generiert SQL Server einen Fehler. Daher wird die Transportschicht nicht gestartet.
Wie werden SQL Server 2016 und höhere Versionen im FIPS 140-2-kompatiblen Modus betrieben?
Wenn der FIPS-Modus in Windows aktiviert ist, gibt es in allen Bereichen, in denen der Benutzer keine Wahl hat, ob er verschlüsseln oder hashen soll und wie er ausgeführt wird, SQL Server 2016 und höhere Versionen werden in Übereinstimmung mit FIPS 140-2 ausgeführt. (SQL Server 2016 und höhere Versionen verwenden CryptoAPI in Windows und verwenden nur die zertifizierten Instanzen der Algorithmen.)
Wenn der FIPS-Modus in Windows aktiviert ist, wählen Sie in allen Bereichen, in denen der Benutzer die Verschlüsselung verwenden soll, SQL Server 2016 und höhere Versionen aktivieren entweder nur FIPS 140-2-kompatible Verschlüsselung oder keine Verschlüsselung.
Wichtige Informationen für Softwareentwickler: In allen Bereichen, in denen der Entwickler oder Benutzer seinen eigenen Code zur Verschlüsselung oder Hashing schreibt, müssen sie angewiesen werden, nur CryptoAPI (und daher nur die zertifizierten Instanzen) zu verwenden und nur die Algorithmen anzugeben, die von FIPS 140-2 zulässig sind. Für die offizielle NIST-Liste der genehmigten KRYPTOGRAFiealgorithmen FIPS 140-2, siehe Anhänge A, C und D im Validierungsprogramm für kryptografische Module.
Welche Auswirkungen hat die Ausführung von SQL Server 2016 oder einer höheren Version im FIPS 140-2-kompatiblen Modus?
Wenn Sie eine stärkere Verschlüsselung verwenden, wirkt sich dies möglicherweise auf die Leistung für diese Prozesse aus, für die weniger robuste Verschlüsselung zulässig ist, wenn der Prozess nicht als FIPS 140-2 kompatibel funktioniert.
Die Auswahl der Verschlüsselung für SSIS (UseEncryption=True) generiert einen Fehler, der angibt, dass die verfügbare Verschlüsselung nicht mit FIPS-Compliance kompatibel ist und nicht zulässig ist. Mit anderen Worten, es wird keine Verschlüsselung des Nachrichtenvorgangs ausgeführt.
Wenn Sie die Verschlüsselung zusammen mit älteren DTS verwenden, ist die Verschlüsselung nicht mit FIPS 140-2 kompatibel. Für DTS ist der FIPS-Modus in Windows nicht aktiviert. Daher liegt es in der Verantwortung des Benutzers, keine Verschlüsselung auszuwählen, um konform zu bleiben.
Da die meisten SQL Server 2016- und höheren Versionen Verschlüsselungs- und Hashprozesse bereits FIPS 140-2 kompatibel sind, hat die Ausführung bei vollständiger Compliance (d. h. mit aktivierter FIPS-Modus in Windows) wenig oder gar keine Auswirkungen auf die Verwendung oder leistung der Anwendung.
Wo kann ich mehr über FIPS 140-2 erfahren?
Weitere Informationen zu FIPS 140-2 finden Sie unter CMVP FIPS 140-2 Standards and Documents.
Die Kontaktinformationen zu den in diesem Artikel erwähnten Drittanbietern sollen Ihnen helfen, den benötigten technischen Support zu finden. Diese Kontaktinformationen können ohne vorherige Ankündigung geändert werden. Microsoft garantiert nicht die Genauigkeit dieser Kontaktinformationen von Drittanbietern.