Conectando ao mecanismo de banco de dados usando proteção estendida

O SQL Server oferece suporte para a Proteção Estendida desde o SQL Server 2008 R2. A Proteção Estendida para Autenticação é um recurso dos componentes de rede implementado pelo sistema operacional. Há suporte para a Proteção Estendida no Windows 7 e no Windows Server 2008 R2. A Proteção Estendida está incluída nos service packs para sistemas operacionais Microsoft mais antigos. O SQL Server é mais seguro quando as conexões são estabelecidas com o uso da Proteção Estendida.

Observação importanteImportante

O Windows não habilita a Proteção Estendida por padrão. Para obter informações sobre como habilitar a Proteção Estendida no Windows, consulte Proteção Estendida para autenticação.

Descrição da Proteção Estendida

A Proteção Estendida usa associação de serviço e de canal para ajudar a impedir um ataque de retransmissão de autenticação. Em um ataque de retransmissão de autenticação, um cliente que pode executar autenticação NTLM (por exemplo, Windows Explorer, Microsoft Outlook, um aplicativo .NET SqlClient etc.), se conecta a um invasor (por exemplo, um servidor de arquivos CIFS mal-intencionado). O invasor usa as credenciais do cliente para se passar pelo cliente e se autenticar em um serviço (por exemplo, uma instância do serviço Mecanismo de Banco de Dados).

Há duas variações deste ataque:

  • Em um ataque de atração, o cliente é atraído para se conectar voluntariamente ao invasor.

  • Em um ataque de falsificação, o cliente pretende se conectar a um serviço válido, mas não sabe que o DNS e/ou o roteamento IP foram adulterados para redirecionar a conexão para o invasor.

O SQL Server dá suporte para a associação de serviço e canal para ajudar a reduzir esses ataques em instâncias do SQL Server.

Associação de serviço

A associação de serviço lida com ataques de atração exigindo que um cliente envie um SPN (nome da entidade de serviço) assinado do serviço SQL Server ao qual o cliente pretende se conectar. Como parte da resposta de autenticação, o serviço verifica se o SPN recebido no pacote corresponde a seu próprio SPN. Se um cliente for atraído para se conectar a um invasor, esse cliente incluirá o SPN assinado do invasor. O invasor não pode retransmitir o pacote para autenticação no serviço SQL Server real como o cliente, porque isso incluiria o SPN do invasor. A associação de serviço incorre em um custo único insignificante, mas não lida com ataques de falsificação. A associação de serviço ocorre quando um aplicativo cliente não usa a criptografia para conectar-se ao SQL Server.

Associação de canal

A associação de canal estabelece um canal seguro (Schannel) entre um cliente e uma instância do serviço SQL Server. O serviço verifica a autenticidade do cliente comparando o CBT (token da associação de canal) do cliente específico a esse canal com seu próprio CBT. A associação de canal lida com ataques de atração e falsificação. No entanto, ela incorre em um custo de tempo real maior, porque requer a criptografia TLS de todo o tráfego da sessão. A associação de canais ocorre quando um aplicativo cliente usa a criptografia para conectar-se ao SQL Server.

Suporte do sistema operacional

Os seguintes links fornecem mais informações sobre o modo como o Windows dá suporte à Proteção Estendida:

Configurações

Há três configurações de conexão do SQL Server que afetam a associação de serviço e de canal. As configurações podem ser definidas com o uso do SQL Server Configuration Manager ou da WMI e podem ser exibidas usando-se a faceta Configurações de Protocolo de Servidor do Gerenciamento Baseado em Diretivas.

  • Forçar criptografia

    Os valores possíveis são Ativa e Inativa. Para usar a associação de canal, a opção Forçar Criptografia deve ser definida como Ativa e todos os clientes serão forçados a criptografar. Se for Inativa, somente a associação de serviço será garantida. A opção Forçar Criptografia está localizada em Protocolos para Propriedades MSSQLSERVER (Guia Sinalizadores) no SQL Server Configuration Manager.

  • Proteção estendida

    Os valores possíveis são Ativa, Permitida e Obrigatória. A variável Proteção Estendida permite que os usuários configurem o nível de Proteção Estendida para cada instância do SQL Server. A Proteção Estendida está em Protocolos para Propriedades MSSQLSERVER (guia Avançado) no Gerenciador de Configurações do SQL Server.

    • Quando definida como Ativada, a Proteção Estendida está desabilitada. A instância do SQL Server aceitará conexões de qualquer cliente, independentemente de o cliente estar protegido ou não. A opção Desativada é compatível com sistemas operacionais mais antigos e sem patches, mas é menos segura. Use essa configuração se você souber que os sistemas operacionais cliente não têm suporte para proteção estendida.

    • Quando definida como Permitida, a Proteção Estendida é necessária para conexões de sistemas operacionais com suporte para a Proteção Estendida. A Proteção Estendida é ignorada para conexões de sistemas operacionais que não têm suporte para Proteção Estendida. As conexões de aplicativos cliente desprotegidos que estejam sendo executados em sistemas operacionais cliente protegidos são rejeitadas. Essa configuração é mais segura que Desativada, mas não é a configuração mais segura. Use essa configuração em ambientes mistos, onde alguns sistemas operacionais dão suporte à Proteção Estendida e outros não.

    • Quando definida como Obrigatória, somente conexões de aplicativos protegidos em sistemas operacionais protegidos são aceitas. Essa configuração é a mais segura dentre as três, mas conexões de sistemas operacionais ou aplicativos sem suporte para Proteção Estendida não poderão ser estabelecidas com o SQL Server.

  • SPNs NTLM aceitos

    A variável SPNs NTLM Aceitos é necessária quando um servidor é conhecido por mais de um SPN. Quando um cliente tentar se conectar ao servidor usando um SPN válido que o servidor não conhece, a associação de serviço falhará. Para evitar esse problema, os usuários poderão especificar vários SPNs que representam o servidor usando SPNs NTLM Aceitos. A opção SPNs NTLM Aceitos corresponde a uma série de SPNs separados por ponto e vírgula. Por exemplo, para permitir os SPNs MSSQLSvc/ HostName1.Contoso.com e MSSQLSvc/ HostName2.Contoso.com, digite MSSQLSvc/HostName1 .Contoso .com; MSSQLSvc/HostName2 .Contoso .com na caixa SPNs NTLM Aceitos. Essa variável tem um tamanho máximo de 2.048 caracteres. A opção SPNs NTLM Aceitos está localizada em Protocolos para Propriedades MSSQLSERVER (Guia Avançado) no SQL Server Configuration Manager.

Habilitando a Proteção Estendida para o mecanismo de banco de dados

Para usar a Proteção Estendida, o servidor e o cliente devem ter um sistema operacional com suporte para Proteção Estendida e a Proteção Estendida deve estar habilitada no sistema operacional. Para obter mais informações sobre como habilitar a Proteção Estendida para o sistema operacional, consulte Proteção estendida para autenticação.

O SQL Server dá suporte para a Proteção Estendida desde o SQL Server 2008 R2. A Proteção Estendida para algumas versões anteriores do SQL Server será disponibilizada em atualizações futuras. Depois de habilitar a Proteção Estendida no computador de servidor, use as seguintes etapas para habilitar a Proteção Estendida no SQL Server 2008 R2:

  1. No menu Iniciar, escolha Todos os Programas, aponte para Microsoft SQL Server e clique em SQL Server Configuration Manager.

  2. Expanda Configuração de Rede do SQL Server e clique com o botão direito do mouse em Protocolos para <NomeDaInstância> e clique em Propriedades.

  3. Para associação de canal e associação de serviço, na guia Avançado, defina a Proteção Estendida com a configuração apropriada.

  4. Se desejar, quando um servidor for conhecido por mais de um SPN, na guia Avançado, configure o campo SPNs NTLM Aceitos conforme descrito na seção "Configurações".

  5. Para associação de canal, na guia Sinalizadores, defina Forçar Criptografia como Ativa.

  6. Reinicie o serviço Mecanismo de Banco de Dados.

Configurando outros componentes do SQL Server

Para obter mais informações sobre como configurar o Reporting Services, consulte Proteção Estendida para Autenticação com Reporting Services.

Ao usar o IIS para acessar dados do Analysis Services usando uma conexão HTTP ou HTTPS, o Analysis Services pode aproveitar a Proteção Estendida fornecida pelo IIS. Para obter mais informações sobre como configurar o IIS para usar a Proteção Estendida, consulte Configure Extended Protection in IIS 7.5 (em inglês).