O que é a assinatura do protocolo?

Este artigo descreve a assinatura SMB 2.x e a assinatura 3.x no Windows e no Windows Server. O artigo também descreve considerações de segurança e configurações de política da assinatura SMB.

A assinatura SMB significa que cada mensagem do SMB contém uma assinatura gerada usando uma chave de sessão e AES. A assinatura SMB adiciona uma assinatura contendo um hash de toda a mensagem no cabeçalho do SMB. Se alguém adulterar a mensagem em trânsito, os dados na mensagem adulterada não corresponderão ao hash da assinatura. O hash também inclui as identidades do remetente original e do destinatário planejado. As incompatibilidades de assinaturas alertam os usuários sobre possíveis irregularidades, ajudando-os a proteger suas implementações contra ataques de retransmissão e falsificação.

Como funciona a assinatura

A assinatura SMB é um recurso de segurança que usa a chave de sessão e o conjunto de codificação para adicionar uma assinatura a uma mensagem que atravessa uma conexão. A integridade da mensagem da SMB2 se manifesta em uma sessão assinada onde os pacotes assinados fluem do cliente para o servidor. Em uma sessão assinada, cada pacote assinado inclui uma assinatura que o receptor pode validar. Ao contrário da assinatura SMB1, que usa o algoritmo de hash MD5 [RFC1321], a SMB2 usa um hash melhor para a assinatura. O modelo de segurança na MS-SMB2 depende da autenticação da identidade cliente-usuário antes de acessar um compartilhamento no servidor. Depois que o usuário é autenticado, o servidor pode exigir assinatura de mensagem ou criptografia. O servidor também controla o acesso ao compartilhamento com base em quais usuários, grupos ou declarações estão autorizados a ter vários níveis de acesso.

Os algoritmos de assinatura evoluíram ao longo do tempo, e a assinatura SMB 2.02 foi melhorada com HMAC-SHA-256, substituindo o antigo método MD5 que estava na SMB1. Além disso, a SMB 3.0 introduziu a AES-CMAC. O Windows Server 2022 e o Windows 11 introduziram a aceleração de assinatura AES-128-GMAC. Para saber mais sobre a assinatura AES-128-GMAC, confira Aceleração da assinatura AES-128-GMAC.

A assinatura SMB está habilitada em todas as versões do Windows. Os requisitos de assinaturas SMB podem envolver assinaturas de saída, que abrangem o tráfego do cliente SMB, e assinaturas de entrada, que abrangem o tráfego em direção ao servidor. O Windows e o Windows Server podem exigir somente assinaturas de saída, somente assinaturas de entrada, ambas ou nenhuma das duas. Se o ambiente usar servidores de arquivos que não sejam da Microsoft, as configurações do sistema poderão impedir que as configurações e conexões padrão entrem em vigor. Nesse caso, talvez seja necessário desabilitar o requisito de assinatura SMB. Consulte Controlar o comportamento da assinatura SMB para obter orientação sobre como desabilitar a assinatura SMB.

Considerações de segurança na SMB2 e na SMB3

Todas as chaves criptográficas usadas nas assinaturas SMB 2.x e 3.x são derivadas da chave de sessão. A segurança da assinatura e criptografia SMB 2/3 depende da chave de sessão. Se alguém alterar uma mensagem durante a transmissão, o hash não corresponderá, e o SMB saberá que alguém violou os dados. A assinatura também confirma as identidades do remetente e do destinatário e evita ataques de retransmissão.

Ao usar a assinatura SMB, você deve considerar:

  • Como a própria chave de sessão é derivada da sua senha, o uso de uma senha longa, complexa e não dicionária melhora a assinatura e a criptografia SMB.
  • O uso de Kerberos em vez de NTLMv2 é recomendado para que sua chave de sessão comece forte.
  • Não se conecte a compartilhamentos usando endereços IP ou registros CNAME, caso contrário, NTLM será usado em vez de Kerberos. Recomendamos o uso do Kerberos. Para saber mais sobre alternativas ao uso de registros CNAME, confira Usar aliases de nome de computador no lugar de registros CNAME DNS.

Por padrão, os controladores de domínio exigem a assinatura SMB de qualquer pessoa que se conecte a eles, normalmente para SYSVOL e NETLOGON, para obter scripts de logon e política de grupo. O UNC Hardening do cliente também requer assinatura ao falar com esses mesmos dois compartilhamentos e vai além ao exigir o Kerberos. A assinatura SMB também é usada automaticamente como parte da integridade de pré-autenticação para evitar ataques de downgrade. Para obter mais informações, confira Integridade pré-autenticação do SMB 3.1.1 no Windows 10.

Locais de política para assinatura SMB

As políticas da assinatura SMB estão localizadas em Configuração do Computador,>Configurações do Windows>, Configurações de Segurança>, Políticas Locais>, Opções de Segurança.

  • Cliente de rede Microsoft: Assinar comunicações digitalmente (sempre)
    Chave do registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
    Valor do registro: RequireSecuritySignature
    Tipo de dados: REG_DWORD
    Dados: 0 (desabilitar), 1 (habilitar)

  • Servidor de rede Microsoft: assinar comunicações digitalmente (sempre)
    Chave do registro: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
    Valor do registro: RequireSecuritySignature
    Tipo de dados: REG_DWORD Dados: 0 (desabilitar), 1 (habilitar)

Observação

Nessas políticas, sempre indica que a assinatura SMB é necessária.

Noções básicas sobre "RequireSecuritySignature" e "EnableSecuritySignature"

A configuração do registro EnableSecuritySignature para clientes e servidores SMB2 e versões posteriores é ignorada. Portanto, essa configuração não faz nada, a menos que você esteja usando a SMB1. A assinatura SMB 2.02 e versões posteriores é controlada apenas por ser necessária ou não. Essa configuração é usada quando o servidor ou o cliente requer assinatura SMB. A assinatura não ocorre somente quando o servidor e o cliente têm a assinatura definida como 0.

Em suma, o SMB é assinado quando:

  • O cliente e o servidor SMB têm RequireSecuritySignature definido como 1.
  • O cliente SMB tem RequireSecuritySignature definido como 1 e o servidor SMB tem RequireSecuritySignature definido como 0.
  • O servidor SMB tem RequireSecuritySignature definido como 1 e o cliente SMB tem RequireSecuritySignature definido como 0.

A assinatura não é usada quando:

  • O cliente e o servidor SMB têm RequireSecuritySignature definido como 0.

Assinatura SMB e auditoria de criptografia

A partir do Windows 11, versão 24H2, os administradores podem habilitar a auditoria para o cliente SMB para detectar clientes ou servidores de terceiros que não dão suporte à criptografia ou assinatura SMB. Se um dispositivo ou software de terceiros alegar oferecer suporte ao SMB 3.1.1, mas não der suporte à assinatura SMB, ele violará o requisito do protocolo de integridade de pré-autenticação do SMB 3.1.1.

É possível modificar o ajuste das configurações de auditoria de assinatura e criptografia SMB na Política de Grupo ou por meio do PowerShell. Essas configurações da Política de Grupo são armazenadas nos caminhos:

  • Computer Configuration\Administrative Templates\Network\Lanman Server\Audit client does not support encryption

  • Computer Configuration\Administrative Templates\Network\Lanman Server\Audit client does not support signing

  • Computer Configuration\Administrative Templates\Network\Lanman Workstation\Audit server does not support encryption

  • Computer Configuration\Administrative Templates\Network\Lanman Workstation\Audit server does not support signing

Para o PowerShell, a execução dos seguintes comandos permite auditar as mesmas configurações:

Set-SmbServerConfiguration -AuditClientDoesNotSupportEncryption $true
Set-SmbServerConfiguration -AuditClientDoesNotSupportSigning $true

Set-SmbClientConfiguration -AuditServerDoesNotSupportEncryption $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportSigning $true

O Visualizador de Eventos captura esses eventos nos seguintes caminhos com as respectivas IDs de Evento:

Caminho ID do evento
Logs de serviços e aplicativos\Microsoft\Windows\SMBClient\Audit 31998
31999
Logs de serviços e aplicativos\Microsoft\Windows\SMBServer\Audit 3021
3022

Os artigos a seguir fornecerão informações adicionais sobre a SMB: