¿Qué es la firma mediante Bloque de mensajes del servidor?
Este artículo describe la firma del Bloque de mensajes del servidor (SMB) 2.x y 3.x en Windows y Windows Server. El artículo también describe las consideraciones de seguridad y la configuración de directivas para firma SMB.
La firma SMB significa que cada mensaje SMB contiene una firma generada mediante una clave de sesión y AES. La firma SMB agrega una firma que contiene un hash de todo el mensaje en el encabezado SMB. Si alguien manipula el mensaje en tránsito, los datos del mensaje alterado no coinciden con el hash de la firma. El hash también incluye las identidades del emisor original y el destinatario previsto. Los errores de coincidencia de firmas alertan a los usuarios de una posible alteración, lo que les ayuda a proteger sus implementaciones frente a ataques de retransmisión y suplantación de identidad.
Funcionamiento de la firma
La firma SMB es una característica de seguridad que usa la clave de sesión y el conjunto de cifrado para agregar una firma a un mensaje que pasa por una conexión. La integridad de los mensajes SMB2 se manifiesta en una sesión firmada en la que los paquetes firmados fluyen del cliente al servidor. En una sesión firmada, cada paquete firmado incluye una firma que el receptor puede validar. A diferencia de la firma SMB1, que usa el algoritmo hash MD5 [RFC1321], SMB2 usa un hash mejor para las firmas. El modelo de seguridad de MS-SMB2 se basa en la autenticación de la identidad del cliente-usuario antes de acceder a un recurso compartido en el servidor. Una vez autenticado el usuario, el servidor puede exigir la firma o el cifrado de los mensajes. El servidor también controla el acceso al recurso compartido en función de los usuarios, grupos o notificaciones autorizados a tener distintos niveles de acceso.
Los algoritmos de firma han evolucionado con el tiempo; con la firma SMB 2.02 se mejoró con HMAC-SHA-256, reemplazando al antiguo método MD5 que había en SMB1. Además, SMB 3.0 incorporó AES-CMAC. Windows Server 2022 y Windows 11 incorporaron la aceleración de firma AES-128-GMAC. Para obtener más información sobre la firma AES-128-GMAC, consulte Aceleración de firma AES-128-GMAC.
La firma SMB está habilitada en todas las versiones de Windows. Los requisitos de firma de SMB pueden implicar la firma saliente, que abarca el tráfico del cliente del SMB y la firma entrante, que abarca el tráfico al servidor. Windows y Windows Server solo pueden requerir la firma saliente, solo la firma de entrada, ambas o ninguna. Si el entorno usa servidores de archivos que no son de Microsoft, la configuración del sistema puede impedir que la configuración predeterminada y las conexiones surtan efecto. En este caso, es posible que tenga que deshabilitar el requisito para la firma SMB. Consulte Control del comportamiento de firma SMB para obtener instrucciones sobre cómo deshabilitar la firma SMB.
Consideraciones sobre la seguridad en SMB2 y SMB3
Todas las claves criptográficas usadas en la firma SMB 2.x y 3.x se derivan de la clave de sesión. La seguridad de la firma y el cifrado SMB 2/3 se basa en la clave de sesión. Si alguien cambia un mensaje durante la transmisión, el hash no coincide y SMB sabe que alguien ha manipulado los datos. La firma también confirma las identidades del remitente y el destinatario, y evita ataques de retransmisión.
Al usar la firma SMB, debe tener en cuenta lo siguiente:
- Dado que la propia clave de sesión se deriva de su contraseña, el uso de una contraseña larga, compleja y que no conste en un diccionario mejora la firma y el cifrado SMB.
- Se recomienda usar Kerberos en lugar de NTLMv2 para que la clave de sesión se inicie fuerte.
- No se conecte a recursos compartidos mediante direcciones IP o registros CNAME; de lo contrario, se usará NTLM en lugar de Kerberos. Se recomienda usar Kerberos. Para obtener más información sobre las alternativas al uso de registros CNAME, consulte Uso de alias de nombre de equipo en lugar de registros CNAME de DNS.
De forma predeterminada, los controladores de dominio requieren la firma SMB de cualquier persona que se conecte a ellos, normalmente para que SYSVOL y NETLOGON obtengan la directiva de grupo y los scripts de inicio de sesión. La protección de UNC desde el cliente también requiere la firma cuando se habla con esos mismos dos recursos compartidos y va más allá al requerir Kerberos. La firma SMB también se usa automáticamente como parte de la integridad previa a la autenticación para evitar ataques de degradación. Para obtener más información, consulte Integridad de la autenticación previa de SMB 3.1.1 en Windows 10.
Ubicaciones de directiva para la firma de SMB
Las directivas para la firma SMB se encuentran en Configuración del equipo>Configuración de Windows>Configuración de seguridad>Directivas locales>Opciones de seguridad.
Cliente de redes de Microsoft: firmar digitalmente las comunicaciones (siempre)
Clave del Registro:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
Valor del Registro: RequireSecuritySignature
Tipo de datos:REG_DWORD
Datos: 0 (deshabilitar), 1 (habilitar)Servidor de red Microsoft: firmar digitalmente las comunicaciones (siempre)
Clave del Registro:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
Valor del Registro: RequireSecuritySignature
Tipo de datos:REG_DWORD
Datos: 0 (deshabilitar), 1 (habilitar)
Nota:
En estas directivas siempre se indica que se requiere la firma SMB.
Descripción de "RequireSecuritySignature" y "EnableSecuritySignature"
Se omite la configuración del Registro EnableSecuritySignature para los clientes y servidores SMB2 y versiones posteriores. Por lo tanto, esta configuración no hace nada a menos que esté usando SMB1. La firma SMB 2.02 y posteriores se controla únicamente por ser obligatoria o no. Esta configuración se usa cuando el servidor o el cliente requieren la firma SMB. La firma no se produce solo cuando el servidor y el cliente tienen la firma establecida en 0.
En resumen, SMB se firma cuando:
- Tanto el cliente SMB como el servidor tienen RequireSecuritySignature establecido en 1.
- El cliente SMB tiene RequireSecuritySignature establecido en 1 y el servidor tiene RequireSecuritySignature establecido en 0.
- El cliente SMB tiene RequireSecuritySignature establecido en 1 y el servidor tiene RequireSecuritySignature establecido en 0.
La firma no se usa cuando:
- El cliente SMB como el servidor tienen RequireSecuritySignature establecido en 0.
Auditoría de cifrado y firma de SMB
A partir de Windows 11, versión 24H2, los administradores pueden habilitar la auditoría para que el cliente SMB detecte clientes o servidores de terceros que no admiten el cifrado o la firma de SMB. Si un dispositivo o software de terceros indica que admite SMB 3.1.1, pero no admite la firma de SMB, infringe el requisito del protocolo de integridad de autenticación previa de SMB 3.1.1.
La configuración de la auditoría de firma y cifrado SMB puede modificarse en la directiva de grupo o a través de PowerShell. Esta configuración de directiva de grupo se almacena en las rutas de acceso:
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 PowerShell, la ejecución de los siguientes comandos habilita la auditoría de la misma configuración:
Set-SmbServerConfiguration -AuditClientDoesNotSupportEncryption $true
Set-SmbServerConfiguration -AuditClientDoesNotSupportSigning $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportEncryption $true
Set-SmbClientConfiguration -AuditServerDoesNotSupportSigning $true
El Visor de eventos captura estos eventos en las siguientes rutas de acceso con sus respectivos identificadores de evento:
Path | Id. del evento |
---|---|
Registros de aplicaciones y servicios\Microsoft\Windows\SMBClient\Audit | 31998 31999 |
Registros de aplicaciones y servicios\Microsoft\Windows\SMBServer\Audit | 3021 3022 |
Contenido relacionado
En los artículos siguientes se proporciona información adicional sobre SMB: