Usare SQL Server 2016 e versioni successive in modalità conforme a FIPS 140-2
Questo articolo presenta le istruzioni FIPS 140-2 e illustra come usare SQL Server2016 in modalità conforme a FIPS 140-2.
Versione originale del prodotto: SQL Server numero KB originale 2016 e versioni successive: 4014354
Nota
I termini "conformità FIPS 140-2", "conformità FIPS 140-2" e "modalità conforme a FIPS 140-2" sono definiti qui per l'uso e la chiarezza. Questi termini non sono riconosciuti o definiti per enti pubblici. I governi Stati Uniti e canadese riconoscono la convalida dei moduli di crittografia rispetto a standard come FIPS 140-2 anziché usare moduli crittografici in modo specificato o conforme.
In questo articolo vengono usate la modalità 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 con convalida 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 convalidati da FIPS 140-2. Il processo di gestione delle chiavi include anche la generazione di chiavi e l'archiviazione delle chiavi.
In questo caso si usa "certified" per indicare che l'istanza dell'algoritmo è convalidata da FIPS 140-2 o che il sistema operativo contiene istanze di algoritmi con convalida FIPS140-2.
Che cos'è FIPS?
Il Federal Information Processing Standard (FIPS) è uno standard sviluppato dai due enti governativi seguenti:
- Il National Institute of Standards and Technology (NIST) del Stati Uniti
- The Communications Security Establishment (CSE) in Canada
Gli standard FIPS sono consigliati o imposti per l'uso in sistemi IT gestiti dal governo federale nel Stati Uniti e in Canada.
Che cos'è FIPS 140-2?
FIPS 140-2 è un'istruzione intitolata "Requisiti di sicurezza per i moduli di crittografia". Specifica quali algoritmi di crittografia e quali algoritmi di hash possono essere usati e come generare e gestire 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 la conformità FIPS 140-2 e la certificazione FIPS 140-2?
SQL Server 2016 e versioni successive possono essere configurate ed eseguite 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 di crittografia 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 dal governo. 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'hash e che vengono eseguite in una versione certificata di Windows possono essere conformi solo usando le istanze certificate degli algoritmi approvati e rispettando i requisiti di generazione delle chiavi e gestione delle chiavi. Ciò richiede l'uso della funzione Windows per la generazione di chiavi e la gestione delle chiavi o il rispetto dei requisiti di generazione e gestione delle chiavi all'interno dell'applicazione. In un'applicazione conforme a FIPS possono esistere aree in cui sono abilitati algoritmi o processi non conformi. Ad esempio, sono consentiti alcuni processi interni che rimangono nel sistema e alcuni dati esterni che dovrebbero essere crittografati da un'istanza di algoritmo certificato.
Le versioni SQL Server 2016 e 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 certificate FIPS 140-2. Inoltre, queste istanze vengono chiamate tramite CryptoAPI o CGN per la crittografia o tramite hash 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 del 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 versione successiva. SQL Server legge l'impostazione all'avvio. Per impostare la modalità FIPS, seguire questa procedura:
- Accedere a Windows come amministratore di sistema di Windows.
- Selezionare Start.
- Selezionare Pannello di controllo.
- Selezionare Strumenti di amministrazione. Potrebbe essere necessario passare a icone di grandi dimensioni per il passaggio successivo.
- Selezionare Criteri di sicurezza locali. Viene visualizzata la finestra Impostazioni di sicurezza locali .
- Nel riquadro di spostamento selezionareOpzioni di sicurezzacriteri> locali.
- Nel riquadro a destra fare doppio clic su Crittografia di sistema: usare algoritmi conformi FIPS per la crittografia, l'hash e la firma.
- Nella finestra di dialogo visualizzata selezionare Applica abilitato>.
- Selezionare OK.
- Chiudere la finestra Impostazioni di sicurezza locale .
SQL Server requisito di amministratore
Quando il servizio SQL Server (quando un endpoint è configurato per Service Broker o il mirroring del database) rileva che la modalità FIPS è abilitata all'avvio, SQL Server registra il messaggio seguente nel log degli errori SQL Server:
Il trasporto di Service Broker è in esecuzione in modalità di conformità FIPS.
Inoltre, è possibile che nel registro eventi di Windows sia registrato il messaggio seguente:
Il trasporto del mirroring del database è in esecuzione in modalità di conformità FIPS.
È possibile verificare che il server sia in esecuzione in modalità FIPS cercando questi messaggi.
Nota
- Per la sicurezza della finestra di dialogo (tra servizi), il processo di crittografia usa l'istanza di AES con certificazione FIPS se è abilitata la modalità FIPS. Se la modalità FIPS è disabilitata, il processo di crittografia usa ancora AES.
- Quando si configura un endpoint service broker in modalità FIPS, l'amministratore deve specificare "AES" per Service Broker. Se l'endpoint è configurato su RC4, SQL Server genera un errore. Pertanto, il livello di trasporto non verrà avviato.
In che modo SQL Server 2016 e versioni successive funzionano 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 verranno eseguite 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 può scegliere se usare la crittografia, SQL Server 2016 e versioni successive abiliteranno solo la crittografia conforme a FIPS 140-2 o non abiliteranno 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'hash, deve essere richiesto di usare solo CryptoAPI (e quindi solo le istanze certificate) e di specificare solo gli algoritmi consentiti da FIPS 140-2. Per l'elenco ufficiale NIST di algoritmi crittografici approvati FIPS 140-2, vedere Gli allegati A, C e D nel programma di convalida del modulo di crittografia.
Qual è l'effetto dell'esecuzione di SQL Server 2016 o 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 del 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. Di conseguenza, è responsabilità dell'utente selezionare nessuna crittografia per rimanere conforme.
Poiché la maggior parte SQL Server 2016 e versioni successive i processi di crittografia e hash sono già conformi a FIPS 140-2, l'esecuzione in conformità completa (ovvero con la modalità FIPS in Windows attivata) avrà un effetto minimo o negativo sull'uso o sulle prestazioni dell'applicazione.
Dove è possibile ottenere altre informazioni su FIPS 140-2?
Per altre informazioni su FIPS 140-2, vedere Standard e documenti di CMVP FIPS 140-2.
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.