Usar o SQL Server 2016 e versões posteriores no modo compatível com FIPS 140-2
Este artigo apresenta as instruções do FIPS 140-2 e como usar o SQL Server2016 no modo compatível com FIPS 140-2.
Versão original do produto: SQL Server 2016 e posterior Número original da base de conhecimento: 4014354
Observação
Os termos "compatível com FIPS 140-2", "conformidade com FIPS 140-2" e "modo compatível com FIPS 140-2" são definidos aqui para uso e clareza. Esses termos não são termos governamentais reconhecidos ou definidos. Os governos dos Estados Unidos e do Canadá reconhecem a validação de módulos criptográficos em relação a padrões como FIPS 140-2 em vez de usar módulos criptográficos de maneira especificada ou compatível.
Neste artigo, usamos o modo compatível com FIPS 140-2, conformidade com FIPS 140-2 e compatível com FIPS 140-2 para significar que o SQL Server 2016 e versões posteriores usam apenas instâncias validadas pelo FIPS 140-2 de algoritmos e funções de hash em todas as instâncias em que dados criptografados ou com hash são importados ou exportados do SQL Server 2016 e versões posteriores. Além disso, isso significa que o SQL Server 2016 e versões posteriores gerenciarão as chaves de maneira segura, conforme exigido dos módulos criptográficos validados pelo FIPS 140-2. O processo de gerenciamento de chaves também inclui geração e armazenamento de chaves.
Usamos "certificado" aqui para significar que a instância do algoritmo é validada pelo FIPS 140-2 ou que o sistema operacional contém instâncias de algoritmos validadas por FIPS140-2.
O que é FIPS?
O Federal Information Processing Standard (FIPS) é um padrão desenvolvido pelos dois órgãos governamentais a seguir:
- O Instituto Nacional de Padrões e Tecnologia (NIST) nos Estados Unidos
- O Estabelecimento de Segurança das Comunicações (CSE) no Canadá
Os padrões FIPS são recomendados ou obrigatórios para uso em sistemas de TI operados pelo governo federal nos Estados Unidos e no Canadá.
O que é FIPS 140-2?
O FIPS 140-2 é uma declaração intitulada "Requisitos de segurança para módulos criptográficos". Ele especifica quais algoritmos de criptografia e quais algoritmos de hash podem ser usados e como as chaves de criptografia devem ser geradas e gerenciadas. Alguns hardwares, softwares e processos que contêm os algoritmos podem ser considerados certificados pelo FIPS 140-2, e outros hardwares, softwares e processos que chamam os algoritmos corretos podem ser considerados compatíveis com o FIPS 140-2.
Qual é a diferença entre ser compatível com FIPS 140-2 e ser certificado FIPS 140-2?
O SQL Server 2016 e versões posteriores podem ser configurados e executados de maneira compatível com o FIPS 140-2. Para configurar o SQL Server 2016 e versões posteriores dessa maneira, ele deve ser executado em um sistema operacional certificado pelo FIPS 140-2 ou que forneça módulos criptográficos certificados. A diferença entre conformidade e certificação não é sutil. Os algoritmos podem ser certificados. É insuficiente usar um algoritmo apenas porque ele está listado nas listas aprovadas no FIPS 140-2. Em vez disso, você deve usar uma instância desse algoritmo que seja certificada. Isso significa que a instância é validada pelo governo. A certificação requer testes e verificação por um laboratório de avaliação aprovado pelo governo dos EUA ou Canadá. Windows Server 2012 e versões posteriores e Windows 8 e versões posteriores contêm a instância certificada de cada algoritmo permitido. Mais importante ainda, uma chamada para cada um desses algoritmos fornece apenas a instância certificada.
Quais aplicativos podem ser compatíveis com FIPS 140-2?
Todos os aplicativos que executam criptografia ou hash e que são executados em uma versão certificada do Windows podem ser compatíveis usando apenas as instâncias certificadas dos algoritmos aprovados e cumprindo os requisitos de geração e gerenciamento de chaves. Isso requer o uso da função Windows para geração e gerenciamento de chaves ou a conformidade com os requisitos de geração e gerenciamento de chaves no aplicativo. Áreas em um aplicativo compatível com FIPS podem existir onde algoritmos ou processos não compatíveis estão ativados. Por exemplo, alguns processos internos que permanecem no sistema e alguns dados externos que estão programados para serem criptografados adicionalmente por uma instância de algoritmo certificada são permitidos.
O SQL Server 2016 e versões posteriores são sempre compatíveis com FIPS 140-2?
Não. O SQL Server 2016 e versões posteriores podem ser compatíveis com o FIPS 140-2 porque podem ser configurados e executados para usar apenas as instâncias de algoritmo certificadas pelo FIPS 140-2. Além disso, essas instâncias são chamadas usando CryptoAPI ou CGN para criptografia ou hashing em todas as instâncias em que a conformidade com o FIPS 140-2 é necessária.
Como o SQL Server 2016 e versões posteriores podem ser configurados para serem compatíveis com FIPS 140-2?
Requisitos do sistema operacional
Você deve instalar o SQL Server 2016 e versões posteriores em um host que esteja executando um dos seguintes clientes e servidores Windows.
Requisitos de administração do sistema Windows
O modo FIPS deve ser definido antes que o SQL Server 2016 ou uma versão posterior seja iniciado. O SQL Server lê a configuração na inicialização. Para definir o modo FIPS, siga estas etapas:
- Faça logon no Windows como administrador de sistema do Windows.
- Selecione Iniciar.
- Selecione Painel de Controle.
- Selecione Ferramentas Administrativas. (Talvez seja necessário alternar para ícones grandes para a próxima etapa.)
- Selecione Política de Segurança Local. A janela Configurações de segurança local é exibida.
- No painel de navegação, selecione Opções de Segurança de Políticas>Locais.
- No painel à direita, clique duas vezes em Criptografia do sistema: Use algoritmos compatíveis com FIPS para criptografia, hash e assinatura.
- Na caixa de diálogo exibida, selecione Aplicar Habilitado>.
- Selecione OK.
- Feche a janela Configurações de segurança local.
Requisito de administrador do SQL Server
Quando o serviço SQL Server (quando um ponto de extremidade é configurado para Service Broker ou Espelhamento de Banco de Dados) detecta que o modo FIPS está habilitado na inicialização, o SQL Server registra a seguinte mensagem no log de erros do SQL Server:
O transporte do Service Broker está sendo executado no modo de conformidade com FIPS.
Além disso, você pode encontrar a seguinte mensagem registrada no log de eventos do Windows:
O transporte de espelhamento de banco de dados está sendo executado no modo de conformidade com FIPS.
Você pode verificar se o servidor está sendo executado no modo FIPS procurando essas mensagens.
Observação
- Para segurança de diálogo (entre serviços), o processo de criptografia usa a instância certificada pelo FIPS do AES se o modo FIPS estiver ativado. Se o modo FIPS estiver desabilitado, o processo de criptografia ainda usará AES.
- Quando você configura um terminal do service broker no modo FIPS, o administrador deve especificar "AES" para o service broker. Se o ponto de extremidade estiver configurado como RC4, o SQL Server gerará um erro. Portanto, a camada de transporte não será iniciada.
Como o SQL Server 2016 e versões posteriores são operados no modo compatível com FIPS 140-2?
Com o modo FIPS no Windows ativado, em todas as áreas em que o usuário não tem opção sobre criptografar ou hash e como isso será feito, o SQL Server 2016 e versões posteriores serão executados em conformidade com o FIPS 140-2. (O SQL Server 2016 e versões posteriores usarão o CryptoAPI no Windows e usarão apenas as instâncias certificadas dos algoritmos.)
Com o modo FIPS no Windows ativado, em todas as áreas em que o usuário tem a opção de usar criptografia, o SQL Server 2016 e versões posteriores habilitarão apenas a criptografia compatível com FIPS 140-2 ou não habilitarão nenhuma criptografia.
Informações importantes para desenvolvedores de software: Em todas as áreas em que o desenvolvedor ou usuário escreve seu próprio código para criptografia ou hash, ele deve ser instruído a usar apenas o CryptoAPI (e, portanto, apenas as instâncias certificadas) e especificar apenas os algoritmos permitidos pelo FIPS 140-2.Para a lista oficial do NIST de algoritmos criptográficos aprovados pelo FIPS 140-2, consulte os Anexos A, C e D no Programa de Validação do Módulo Criptográfico.
Qual é o efeito de executar o SQL Server 2016 ou uma versão posterior no modo compatível com FIPS 140-2?
Quando você usa criptografia mais forte, isso pode ter um pequeno efeito no desempenho dos processos para os quais a criptografia menos robusta é permitida quando o processo não está operando como compatível com FIPS 140-2.
A seleção de criptografia para SSIS (UseEncryption=True) gerará um erro informando que a criptografia disponível é incompatível com a conformidade com FIPS e não é permitida. Em outras palavras, nenhuma criptografia do processo de mensagem é executada.
Quando você usa a criptografia junto com o DTS herdado, a criptografia não é compatível com o FIPS 140-2. Para DTS, o modo FIPS no Windows não está marcado. Portanto, é responsabilidade do usuário selecionar nenhuma criptografia para permanecer em conformidade.
Como a maioria dos processos de criptografia e hash do SQL Server 2016 e versões posteriores já são compatíveis com FIPS 140-2, a execução em conformidade total (ou seja, com o modo FIPS no Windows ativado) terá pouco ou nenhum efeito sobre o uso ou o desempenho do aplicativo.
Onde posso saber mais sobre o FIPS 140-2?
Para obter mais informações sobre o FIPS 140-2, consulte Padrões e documentos do CMVP FIPS 140-2.
A Microsoft fornece informações de contato de terceiros para ajudá-lo a encontrar suporte técnico. Essas informações de contato podem ser alteradas sem aviso prévio. A Microsoft não garante a precisão dessas informações de contato de terceiros.