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 vorgestellt.

Ursprüngliche Produktversion: SQL Server 2016 und höher Ursprüngliche KB-Nummer: 4014354

Hinweis

  • Die Begriffe "FIPS 140-2-konform", "FIPS 140-2-Konformität" und "FIPS 140-2-konformer Modus" werden hier aus Gründen der Verwendung und Der Übersichtlichkeit definiert. Diese Begriffe werden nicht erkannt oder definiert. Die USA und kanadischen Regierungen erkennen die Validierung kryptografischer Module anhand von Standards wie FIPS 140-2 an, anstatt kryptografische Module in einer bestimmten oder konformen Weise zu verwenden.

    In diesem Artikel verwenden wir FIPS 140-2-konform, FIPS 140-2-Konformität und FIPS 140-2-konformen Modus, um zu bedeuten, dass SQL Server 2016 und höhere Versionen nur FIPS 140-2-überprüfte Instanzen von Algorithmen und Hashfunktionen in allen Instanzen verwenden, in denen verschlüsselte oder gehashte Daten in SQL Server 2016 und höher importiert oder exportiert werden. Darüber hinaus bedeutet dies, dass SQL Server 2016 und höher Schlüssel auf sichere Weise verwalten, wie dies für FIPS 140-2-validierte Kryptografiemodule erforderlich ist. Der Schlüsselverwaltungsprozess umfasst auch sowohl die Schlüsselgenerierung als auch die Schlüsselspeicherung.

  • Wir verwenden hier "certified", um zu bedeuten, dass die instance 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 wurde:

  • Das National Institute of Standards and Technology (NIST) im USA
  • Das Communications Security Establishment (CSE) in Kanada

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

Was ist FIPS 140-2?

FIPS 140-2 ist eine Aussage mit dem Titel "Sicherheitsanforderungen für Kryptografiemodule". 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 betrachtet werden, und andere Hardware, Software und Prozesse, die die richtigen Algorithmen aufrufen, können als FIPS 140-2-konform betrachtet werden.

Was ist der Unterschied zwischen FIPS 140-2-Konform und FIPS 140-2-Zertifizierung?

SQL Server 2016 und höheren Versionen können auf eine Weise konfiguriert und ausgeführt werden, die mit FIPS 140-2 kompatibel ist. 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 zertifizierte Kryptografiemodule bereitstellt. 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 instance eines solchen Algorithmus verwenden, der zertifiziert ist. Dies bedeutet, dass die instance von der Regierung überprüft wird. Die Zertifizierung erfordert Tests und Überprüfungen durch ein von der US- oder kanadischen Regierung genehmigtes Evaluierungslabor. Windows Server 2012 und höher sowie Windows 8 und höheren Versionen enthalten die zertifizierten instance jedes zulässigen Algorithmus. Am wichtigsten ist, dass ein Aufruf dieser Algorithmen nur die zertifizierten instance bereitstellt.

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

Alle Anwendungen, die Verschlüsselung oder Hashing ausführen und unter einer zertifizierten Version von Windows ausgeführt werden, können kompatibel sein, indem nur die zertifizierten Instanzen der genehmigten Algorithmen verwendet werden und die Anforderungen zur Schlüsselgenerierung und Schlüsselverwaltung erfüllt werden. Dies erfordert entweder die Verwendung der Windows-Funktion für die Schlüsselgenerierung und Schlüsselverwaltung oder die Einhaltung der Anforderungen an die 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, die im System verbleiben, und einige externe Daten, die zusätzlich durch einen zertifizierten Algorithmus instance verschlüsselt werden sollen, zulässig.

Sind SQL Server 2016 und höhere Versionen immer FIPS 140-2 konform?

Nein SQL Server 2016 und höheren Versionen können FIPS 140-2-kompatibel sein, da sie so konfiguriert und ausgeführt werden kann, dass 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 jedem instance aufgerufen, in dem FIPS 140-2compliance erforderlich ist.

Wie können SQL Server 2016 und höhere Versionen so konfiguriert werden, dass sie FIPS 140-2-konform sind?

Betriebssystemanforderungen

Sie müssen SQL Server 2016 und höher 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:

  1. Melden Sie sich bei Windows als Windows-Systemadministrator an.
  2. Klicken Sie auf Start.
  3. Wählen Sie Systemsteuerung aus.
  4. Wählen Sie Verwaltung aus. (Möglicherweise müssen Sie für den nächsten Schritt zu großen Symbolen wechseln.)
  5. Wählen Sie Lokale Sicherheitsrichtlinie aus. Das Fenster Lokale Sicherheitseinstellungen wird angezeigt.
  6. Wählen Sie im Navigationsbereich Lokale Richtlinien>Sicherheitsoptionen aus.
  7. Doppelklicken Sie im Bereich auf der rechten Seite auf Systemkryptografie: FiPS-kompatible Algorithmen für Verschlüsselung, Hashing und Signierung verwenden.
  8. Wählen Sie im angezeigten Dialogfeld Aktiviert>Anwenden aus.
  9. Wählen Sie OK aus.
  10. 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:

Service Broker-Transport wird im FIPS-Konformitätsmodus ausgeführt.

Darüber hinaus wird möglicherweise die folgende Meldung im Windows-Ereignisprotokoll protokolliert:

Der Transport der Datenbankspiegelung 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 instance von AES, wenn der FIPS-Modus aktiviert ist. Wenn der FIPS-Modus deaktiviert ist, verwendet der Verschlüsselungsprozess weiterhin AES.
  • Wenn Sie einen Service Broker-Endpunkt im FIPS-Modus konfigurieren, muss der Administrator "AES" für den Service Broker 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, werden SQL Server 2016 und höhere Versionen in allen Bereichen, in denen der Benutzer keine Wahl hat, ob er verschlüsseln oder hashen und wie dies geschieht, in Übereinstimmung mit FIPS 140-2 ausgeführt. (SQL Server 2016 und höheren Versionen verwenden CryptoAPI in Windows und nur die zertifizierten Instanzen der Algorithmen.)

  • Wenn der FIPS-Modus in Windows aktiviert ist, aktivieren SQL Server 2016 und höhere Versionen in allen Bereichen, in denen der Benutzer die Wahl hat, ob die Verschlüsselung verwendet werden soll, entweder nur die FIPS 140-2-konforme Verschlüsselung oder keine Verschlüsselung.

  • Wichtige Informationen für Softwareentwickler: In allen Bereichen, in denen der Entwickler oder Benutzer seinen eigenen Code für die 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 zugelassen sind.Die offizielle NIST-Liste der von FIPS 140-2 zugelassenen Kryptografiealgorithmen finden Sie in den Anhängen A, C und D im Überprüfungsprogramm 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 nur geringfügig auf die Leistung der Prozesse aus, für die eine weniger robuste Verschlüsselung zulässig ist, wenn der Prozess nicht mit FIPS 140-2 kompatibel arbeitet.

  • Die Auswahl der Verschlüsselung für SSIS (UseEncryption=True) generiert einen Fehler, der angibt, dass die verfügbare Verschlüsselung mit der FIPS-Konformität nicht kompatibel und nicht zulässig ist. Anders ausgedrückt: Es wird keine Verschlüsselung des Nachrichtenprozesses durchgeführt.

  • Wenn Sie die Verschlüsselung zusammen mit legacy 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 hashing-Prozesse bereits FIPS 140-2-konform sind, hat die Ausführung bei vollständiger Konformität (d. h. bei aktiviertem FIPS-Modus in Windows) nur geringe oder 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.For more information about FIPS 140-2, see 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 Richtigkeit dieser Kontaktinformationen von Drittanbietern.