Condividi tramite


Usare SQL Server 2016 e versioni successive in modalità conforme a FIPS 140-2

Questo articolo presenta le istruzioni FIPS 140-2 e come usare SQL Server2016 in modalità conforme a FIPS 140-2.

Versione originale del prodotto: SQL Server 2016 e versioni successive Numero KB originale: 4014354

Note

  • I termini "conforme a FIPS 140-2", "conformità FIPS 140-2" e "modalità conforme a FIPS 140-2" sono definiti qui per uso e chiarezza. Questi termini non sono riconosciuti o definiti per enti pubblici. I governi Stati Uniti e canadesi riconoscono la convalida dei moduli crittografici in base a standard come FIPS 140-2 anziché usare moduli crittografici in modo specifico o conforme.

    In questo articolo viene usata la conformità FIPS 140-2, la conformità FIPS 140-2 e la modalità conforme a FIPS 140-2 per indicare che SQL Server 2016 e versioni successive usano solo istanze convalidate FIPS 140-2 di algoritmi e funzioni hash in tutte le istanze in cui i dati crittografati o con hash vengono importati o esportati da SQL Server 2016 e versioni successive. Ciò significa anche che SQL Server 2016 e versioni successive gestiranno le chiavi in modo sicuro, come richiesto dai moduli di crittografia fips 140-2 convalidati. Il processo di gestione delle chiavi include anche la generazione di chiavi e l'archiviazione delle chiavi.

  • In questo caso viene usato "certificato" per indicare che l'istanza dell'algoritmo è convalidata da FIPS 140-2 o che il sistema operativo contiene istanze convalidate da FIPS140-2 di algoritmi.

Che cos'è FIPS?

Federal Information Processing Standard (FIPS) è uno standard sviluppato dai due organismi governativi seguenti:

  • Il National Institute of Standards and Technology (NIST) nel Stati Uniti
  • L'istituzione della sicurezza delle comunicazioni (CSE) in Canada

Gli standard FIPS sono consigliati o imposti per l'uso nei sistemi IT gestiti dal governo federale nei Stati Uniti e canada.

Che cos'è FIPS 140-2?

FIPS 140-2 è un'istruzione intitolata "Security Requirements for Cryptographic Modules". Specifica quali algoritmi di crittografia e quali algoritmi di hash possono essere usati e come devono essere generate e gestite le chiavi di crittografia. Alcuni hardware, software e processi che contengono gli algoritmi possono essere considerati certificati FIPS 140-2 e altri hardware, software e processi che chiamano gli algoritmi corretti possono essere considerati conformi a FIPS 140-2.

Qual è la differenza tra essere conforme a FIPS 140-2 e essere certificato FIPS 140-2?

SQL Server 2016 e versioni successive possono essere configurati ed eseguiti in modo conforme a FIPS 140-2. Per configurare SQL Server 2016 e versioni successive in questo modo, deve essere eseguito in un sistema operativo certificato FIPS 140-2 o che fornisce moduli crittografici certificati. La differenza tra conformità e certificazione non è sottile. Gli algoritmi possono essere certificati. Non è sufficiente usare un algoritmo solo perché è elencato negli elenchi approvati in FIPS 140-2. È invece necessario usare un'istanza di tale algoritmo certificato. Ciò significa che l'istanza è convalidata per enti pubblici. La certificazione richiede test e verifica da parte di un lab di valutazione approvato dal governo statunitense o canadese. Windows Server 2012 e versioni successive e Windows 8 e versioni successive contengono l'istanza certificata di ogni algoritmo consentito. Soprattutto, una chiamata a ognuno di questi algoritmi fornisce solo l'istanza certificata.

Quali applicazioni possono essere conformi a FIPS 140-2?

Tutte le applicazioni che eseguono la crittografia o l'hashing e che vengono eseguite in una versione certificata di Windows possono essere conformi usando solo le istanze certificate degli algoritmi approvati e rispettando i requisiti di generazione e gestione delle chiavi. Ciò richiede l'uso della funzione Windows per la generazione di chiavi e la gestione delle chiavi o la conformità ai requisiti di generazione delle chiavi e di gestione delle chiavi all'interno dell'applicazione. Le aree in un'applicazione conforme a FIPS possono esistere in cui sono abilitati algoritmi o processi non conformi. Ad esempio, alcuni processi interni che rimangono nel sistema e alcuni dati esterni che devono essere crittografati ulteriormente da un'istanza di algoritmo certificato sono consentiti.

SQL Server 2016 e versioni successive sono sempre conformi a FIPS 140-2?

No. SQL Server 2016 e versioni successive possono essere conformi a FIPS 140-2 perché possono essere configurati ed eseguiti in modo che usi solo le istanze dell'algoritmo certificato FIPS 140-2. Inoltre, queste istanze vengono chiamate usando CryptoAPI o CGN per la crittografia o eseguendo l'hashing in ogni istanza in cui è necessaria la conformità FIPS 140-2.

Come è possibile configurare SQL Server 2016 e versioni successive in modo che siano conformi a FIPS 140-2?

Requisiti per il sistema operativo

È necessario installare SQL Server 2016 e versioni successive in un host che esegue uno dei seguenti client e server Windows.

Requisiti di amministrazione del sistema Windows

La modalità FIPS deve essere impostata prima dell'avvio di SQL Server 2016 o di una versione successiva. SQL Server legge l'impostazione all'avvio. Per impostare la modalità FIPS, seguire questa procedura:

  1. Accedere a Windows come amministratore di sistema di Windows.
  2. Selezionare Inizio.
  3. Selezionare Pannello di controllo.
  4. Selezionare Strumenti di amministrazione. Potrebbe essere necessario passare a icone di grandi dimensioni per il passaggio successivo.
  5. Selezionare Criteri di sicurezza locali. Verrà visualizzata la finestra Impostazioni di sicurezza locali.
  6. Nel riquadro di spostamento selezionare Opzioni di sicurezza criteri>locali.
  7. Nel riquadro a destra fare doppio clic su Crittografia di sistema: usare algoritmi conformi FIPS per la crittografia, l'hashing e la firma.
  8. Nella finestra di dialogo visualizzata selezionare Abilitato>Applica.
  9. Seleziona OK.
  10. Chiudere la finestra Impostazioni di sicurezza locali.

Requisito dell'amministratore di SQL Server

Quando il servizio SQL Server (quando un endpoint è configurato per Service Broker o mirroring del database) rileva che la modalità FIPS è abilitata all'avvio, SQL Server registra il messaggio seguente nel log degli errori di SQL Server:

Il trasporto di Service Broker è in esecuzione in modalità di conformità FIPS.

Inoltre, è possibile trovare il messaggio seguente registrato nel registro eventi di Windows:

Il trasporto mirroring del database è in esecuzione in modalità di conformità FIPS.

È possibile verificare che il server sia in esecuzione in modalità FIPS cercando questi messaggi.

Note

  • Per la sicurezza della finestra di dialogo (tra servizi), il processo di crittografia usa l'istanza certificata FIPS di AES se la modalità FIPS è abilitata. Se la modalità FIPS è disabilitata, il processo di crittografia usa comunque AES.
  • Quando si configura un endpoint di Service Broker in modalità FIPS, l'amministratore deve specificare "AES" per Service Broker. Se l'endpoint è configurato per RC4, SQL Server genera un errore. Pertanto, il livello di trasporto non inizierà.

In che modo SQL Server 2016 e versioni successive vengono gestite in modalità conforme a FIPS 140-2?

  • Con la modalità FIPS in Windows attivata, in tutte le aree in cui l'utente non ha scelta se crittografare o hash e come verrà eseguita, SQL Server 2016 e versioni successive verrà eseguito in conformità con FIPS 140-2. SQL Server 2016 e versioni successive useranno CryptoAPI in Windows e useranno solo le istanze certificate degli algoritmi.

  • Con la modalità FIPS in Windows attivata, in tutte le aree in cui l'utente ha la possibilità di scegliere se usare la crittografia, SQL Server 2016 e versioni successive abiliterà solo la crittografia conforme a FIPS 140-2 o non abiliterà alcuna crittografia.

  • Informazioni importanti per gli sviluppatori di software: in tutte le aree in cui lo sviluppatore o l'utente scrive il proprio codice per la crittografia o l'hashing, deve essere richiesto di usare solo CryptoAPI (e pertanto solo le istanze certificate) e di specificare solo gli algoritmi consentiti da FIPS 140-2.Per l'elenco NIST ufficiale di algoritmi crittografici approvati FIPS 140-2, vedere A, C e D in Cryptographic Module Validation Program.

Qual è l'effetto dell'esecuzione di SQL Server 2016 o di una versione successiva in modalità conforme a FIPS 140-2?

  • Quando si usa una crittografia più avanzata, può avere un piccolo effetto sulle prestazioni per i processi per i quali è consentita una crittografia meno affidabile quando il processo non funziona come conforme a FIPS 140-2.

  • La selezione della crittografia per SSIS (UseEncryption=True) genererà un errore che indica che la crittografia disponibile non è compatibile con la conformità FIPS e non è consentita. In altre parole, non viene eseguita alcuna crittografia del processo di messaggio.

  • Quando si usa la crittografia insieme a DTS legacy, la crittografia non è conforme a FIPS 140-2. Per DTS, la modalità FIPS in Windows non è selezionata. Pertanto, è responsabilità dell'utente selezionare nessuna crittografia per rimanere conforme.

  • Poiché la maggior parte dei processi di crittografia e hash di SQL Server 2016 e versioni successive è già conforme a FIPS 140-2, l'esecuzione con la conformità completa (ovvero con la modalità FIPS in Windows attivata) avrà poco o nessun effetto sull'uso o sulle prestazioni dell'applicazione.

Dove è possibile ottenere altre informazioni su FIPS 140-2?

Per altre informazioni su FIPS 140-2, vedere CMVP FIPS 140-2 Standards and Documents.For more information about FIPS 140-2, see CMVP FIPS 140-2 Standards and Documents.

Microsoft fornisce informazioni di contatto di terze parti allo scopo di facilitare l'individuazione del supporto tecnico. Queste informazioni di contatto sono soggette a modifica senza preavviso. Microsoft non garantisce l'accuratezza di queste informazioni di contatto di terze parti.