Verwenden von SQL Server 2016 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 vorgestellt.

Ursprüngliche Produktversion:   SQL Server 2016
Ursprüngliche KB-Nummer:   4014354

Hinweis

  • Die Begriffe "FIPS 140-2-kompatibel", "FIPS 140-2-Compliance" und "FIPS 140-2-kompatibler Modus" sind hier zur Verwendung und Klarheit definiert. Diese Begriffe sind keine anerkannten oder definierten Regierungsbedingungen. Die Regierungen der Vereinigten Staaten und Kanadas erkennen die Validierung kryptografischer Module anhand von Standards wie FIPS 140-2 an, anstatt kryptografische Module auf eine bestimmte oder konforme Weise zu verwenden.

    In diesem Artikel verwenden wir FIPS 140-2-kompatibel, FIPS 140-2-Compliance und FIPS 140-2-kompatiblen Modus, um zu bedeuten, dass SQL Server 2016 nur FIPS 140-2-überprüfte Instanzen von Algorithmen und Hashfunktionen in allen Instanzen verwendet, in denen verschlüsselte oder mit Hash versehene Daten in SQL Server 2016 importiert oder aus SQL Server 2016 exportiert werden. Darüber hinaus bedeutet dies, dass SQL Server 2016 Schlüssel auf sichere Weise verwaltet, wie dies für FIPS 140-2-validierte kryptografische Module erforderlich ist. Der Schlüsselverwaltungsprozess umfasst auch die Schlüsselgenerierung und den Schlüsselspeicher.

  • Wir verwenden hier "zertifiziert", um zu bedeuten, dass die Instanz des Algorithmus FIPS 140-2 überprüft wurde oder dass das Betriebssystem FIPS140-2-überprüfte 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 wurde:

  • National Institute of Standards and Technology (NIST) in den Vereinigten Staaten
  • Die Kommunikationssicherheitseinrichtung (Communications Security Establishment, CSE) in Kanada

FIPS-Standards werden entweder empfohlen oder für die Verwendung in von der Regierung betriebenen IT-Systemen in den USA und Kanada vorgeschrieben.

Was ist FIPS 140-2?

FIPS 140-2 ist eine Anweisung mit dem Titel "Security Requirements for Cryptographic Modules". Es gibt an, welche Verschlüsselungsalgorithmen und welche Hashalgorithmen 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 betrachtet werden, und andere Hardware, Software und Prozesse, die die richtigen Algorithmen aufrufen, können als FIPS 140-2-kompatibel betrachtet werden.

Was ist der Unterschied zwischen FIPS 140-2-kompatibel und FIPS 140-2-zertifiziert?

SQL Server 2016 kann auf eine Weise konfiguriert und ausgeführt werden, die FIPS 140-2 entspricht. Um SQL Server 2016 auf diese Weise zu konfigurieren, muss es unter 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. Für die Zertifizierung sind Tests und Überprüfungen durch die USA erforderlich. oder durch die kanadische Regierung genehmigtes Evaluierungslabor. Windows Server 2012 und neuere Versionen sowie Windows 8 und spätere Versionen enthalten die zertifizierte Instanz jedes zulässigen Algorithmus. Am wichtigsten ist, dass ein Aufruf dieser Algorithmen nur die zertifizierte Instanz bereitstellt.

Welche Anwendungen können FIPS 140-2-kompatibel sein?

Alle Anwendungen, die Verschlüsselung oder Hashing ausführen und mit einer zertifizierten Version von Windows ausgeführt werden, können nur mithilfe der zertifizierten Instanzen der genehmigten Algorithmen und durch Einhaltung der Anforderungen an die Schlüsselgenerierung und die Schlüsselverwaltung konform sein. Dies erfordert entweder die Verwendung der Windows Funktion für die Schlüsselgenerierung und Schlüsselverwaltung oder die Einhaltung der Anforderungen der Schlüsselgenerierung und Schlüsselverwaltung innerhalb der Anwendung. Bereiche in einer FIPS-kompatiblen Anwendung können vorhanden sein, in denen nicht konforme Algorithmen oder Prozesse aktiviert sind. Beispielsweise sind einige interne Prozesse zulässig, die im System verbleiben, und einige externe Daten, die durch eine zertifizierte Algorithmusinstanz zusätzlich verschlüsselt werden sollen.

Ist SQL Server 2016 immer FIPS 140-2 kompatibel?

Nein. SQL Server 2016 kann FIPS 140-2-kompatibel sein, da es 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 für die Verschlüsselung oder durch Hashing in jeder Instanz aufgerufen, in der FIPS 140-2compliance erforderlich ist.

Wie kann SQL Server 2016 als FIPS 140-2-kompatibel konfiguriert werden?

Betriebssystemanforderungen

Sie müssen SQL Server 2016 auf einem Host installieren, auf dem eines der folgenden Betriebssysteme ausgeführt wird:

  • Windows Server 2012
  • Windows Server 2012 R2
  • Windows Server 2016
  • Windows 8
  • Windows 8.1
  • Windows 10

Windows Systemverwaltungsanforderungen

Der FIPS-Modus muss festgelegt werden, bevor SQL Server 2016 gestartet wird. SQL Server liest die Einstellung beim Start. Gehen Sie folgendermaßen vor, um den FIPS-Modus festzulegen:

  1. Melden Sie sich bei Windows als Windows Systemadministrator an.
  2. Klicken Sie auf Start.
  3. Klicken Sie auf "Systemsteuerung".
  4. Klicken Sie auf "Verwaltungstools". (Möglicherweise müssen Sie für den nächsten Schritt zu großen Symbolen wechseln.)
  5. Klicken Sie auf "Lokale Sicherheitsrichtlinie". Das Fenster "Lokale Sicherheit Einstellungen" wird angezeigt.
  6. Klicken Sie im Navigationsbereich auf "Lokale Richtlinien" und dann auf "Sicherheitsoptionen".
  7. Doppelklicken Sie im Bereich auf der rechten Seite auf Systemkryptografie: Verwenden Sie FIPS-konforme Algorithmen für Verschlüsselung, Hashing und Signatur.
  8. Klicken Sie im daraufhin angezeigten Dialogfeld auf "Aktiviert" und dann auf "Übernehmen".
  9. Klicken Sie auf OK.
  10. Schließen Sie das Fenster "Lokale Sicherheit Einstellungen".

SQL Server Administratoranforderung

Wenn der SQL Server-Dienst (wenn ein Endpunkt für den Dienstbroker oder die Datenbankspiegelung konfiguriert ist) erkennt, dass der FIPS-Modus beim Start aktiviert ist, protokolliert SQL Server die folgende Meldung im SQL Server Fehlerprotokoll:

Der Dienstbroker-Transport wird im FIPS-Konformitätsmodus ausgeführt.

Darüber hinaus finden Sie möglicherweise die folgende Meldung, die im Windows-Ereignisprotokoll protokolliert wurde:

Der Datenbankspiegelungstransport wird im FIPS-Konformitätsmodus ausgeführt.

Sie können überprüfen, ob der Server im FIPS-Modus ausgeführt wird, indem Sie nach diesen Nachrichten suchen.

Hinweis

  • 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 wird SQL Server 2016 im FIPS 140-2-kompatiblen Modus betrieben?

  • Wenn der FIPS-Modus in Windows aktiviert ist, wird SQL Server 2016 in Übereinstimmung mit FIPS 140-2 in allen Bereichen ausgeführt, in denen der Benutzer keine Wahl hat, ob er verschlüsseln oder hashen und wie er ausgeführt wird. (SQL Server 2016 verwendet CryptoAPI in Windows und verwendet nur die zertifizierten Instanzen der Algorithmen.)

  • Wenn der FIPS-Modus in Windows aktiviert ist, aktiviert ist, aktiviert SQL Server 2016 in allen Bereichen, in denen der Benutzer entscheiden kann, ob verschlüsselungskonforme FIPS 140-2-Verschlüsselung verwendet werden soll, oder aktiviert keine Verschlüsselung.

  • Wichtige Informationen für Softwareentwickler: In allen Bereichen, in denen der Entwickler oder Benutzer eigenen Code für Verschlüsselung oder Hashing schreibt, muss er angewiesen werden, nur CryptoAPI (und damit nur die zertifizierten Instanzen) zu verwenden und nur die Algorithmen anzugeben, die von FIPS 140-2 zulässig sind. Die offizielle NIST-Liste der genehmigten kryptografischen Algorithmen von FIPS 140-2 finden Sie unter "Prüfung von A, C und D" im Validierungsprogramm für kryptografische Module.

Welche Auswirkungen hat die Ausführung von SQL Server 2016 im FIPS 140-2-kompatiblen Modus?

  • Wenn Sie eine stärkere Verschlüsselung verwenden, wirkt sich dies möglicherweise nur geringfügig auf die Leistung der Prozesse aus, für die eine weniger robuste Verschlüsselung zulässig ist, wenn der Prozess nicht als FIPS 140-2-kompatibel ausgeführt wird.

  • Die Auswahl der Verschlüsselung für SSIS (UseEncryption=True) generiert einen Fehler, der angibt, dass die verfügbare Verschlüsselung mit der FIPS-Compliance nicht kompatibel und nicht zulässig ist. Mit anderen Worten: Es wird keine Verschlüsselung des Nachrichtenvorgangs ausgeführt.

  • Wenn Sie die Verschlüsselung zusammen mit älterem DTS verwenden, ist die Verschlüsselung nicht mit FIPS 140-2 kompatibel. Bei 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-Verschlüsselungs- und Hashingprozesse bereits FIPS 140-2-kompatibel sind, hat die Ausführung bei voller Compliance (d. h. bei aktivierter FIPS-Modus in Windows) nur geringe 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.