Общие сведения о подписывание блока сообщений сервера
В этой статье описывается подписывание SMB 2.x и 3.x, а также определение необходимости подписывания SMB.
Введение
Подписывание SMB (также известное как сигнатуры безопасности) — это механизм безопасности в протоколе SMB. Подписывание SMB означает, что каждое сообщение SMB содержит сигнатуру, созданную с помощью ключа сеанса. Клиент помещает хэш всего сообщения в поле сигнатуры заголовка SMB.
Подписывание SMB впервые появилось в Microsoft Windows 2000, Microsoft Windows NT 4.0 и Microsoft Windows 98. Алгоритмы подписывания со временем развивались. Подписывание SMB 2.02 было улучшено благодаря внедрению кода проверки подлинности сообщений на основе хэша (HMAC) SHA-256, заменив старый метод MD5 конца 1990-х годов, который использовался в SMB1. В SMB 3.0 добавлены алгоритмы AES-CMAC. В Windows Server 2022 и Windows 11 мы добавили ускорение подписывания AES-128-GMAC. Если требуется оптимальное сочетание производительности и защиты, рассмотрите возможность обновления до последних версий Windows.
Как подписывание SMB защищает подключение
Если кто-то изменяет сообщение во время передачи, хэш не будет совпадать, и SMB будет знать, что кто-то подделал данные. Подпись также подтверждает удостоверения отправителя и получателя. Это предотвращает атаки ретранслятора. В идеале вы используете Kerberos вместо NTLMv2, чтобы ключ сеанса запускал сильный. Не подключайтесь к общим папкам с помощью IP-адресов и не используйте записи CNAME, иначе вместо Kerberos будет использоваться NTLM. Вместо этого используйте Kerberos. Дополнительные сведения см. в статье Использование псевдонимов имен компьютеров вместо записей CNAME DNS .
Расположения политик для подписывания SMB
Политики для подписывания SMB находятся в разделе Конфигурация> компьютераПараметры>windows Параметры> безопасностиЛокальные политики>Параметры безопасности.
-
Сетевой клиент Майкрософт: обмен данными с цифровой подписью (всегда)
Раздел реестра:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
Значение реестра: RequireSecuritySignature
Тип данных: REG_DWORD
Данные: 0 (отключить), 1 (включить) -
Сетевой клиент Майкрософт: цифровая подпись сообщений (если сервер согласен)
Раздел реестра:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManWorkstation\Parameters
Значение реестра: EnableSecuritySignature
Тип данных: REG_DWORD
Данные: 0 (отключить), 1 (включить) -
Сетевой сервер Майкрософт: обмен данными с цифровой подписью (всегда)
Раздел реестра:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
Значение реестра: RequireSecuritySignature
Тип данных: REG_DWORD
Данные: 0 (отключить), 1 (включить) -
Сетевой сервер Майкрософт: цифровая подпись сообщений (если клиент соглашается)
Раздел реестра:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters
Значение реестра: EnableSecuritySignature
Тип данных: REG_DWORD
Данные: 0 (отключить), 1 (включить)
Примечание В этих политиках "всегда" означает, что требуется подписывание SMB, а "если сервер согласен" или "если клиент согласен" означает, что подпись SMB включена.
Основные сведения о requireSecuritySignature и EnableSecuritySignature
Параметр реестра EnableSecuritySignature для клиента SMB2+ и сервера SMB2+ игнорируется. Таким образом, этот параметр ничего не делает, если вы не используете SMB1. Подписывание SMB 2.02 и более поздних версий контролируется исключительно по требованию или нет. Этот параметр используется, если сервер или клиент требует подписывания SMB. Подписывание не выполняется только в том случае, если для обоих подписей задано значение 0 .
- | Сервер — RequireSecuritySignature=1 | Сервер — RequireSecuritySignature=0 |
---|---|---|
Клиент — RequireSecuritySignature=1 | Подписал | Подписал |
Клиент — RequireSecuritySignature=0 | Подписал | Не подписан |
Справочные материалы
Настройка подписывания SMB с уверенностью
Защита пользователей от атак перехвата с помощью SMB Client Defense
Безопасность SMB 2 и SMB 3 в Windows 10: структура подписи и криптографических ключей