Все, что вам нужно знать о подписи Windows SMB
Подписание блоков сообщений сервера, или сокращенно SMB, — это функция Windows, позволяющая использовать цифровую подпись на уровне пакетов. Этот механизм безопасности является частью протокола SMB и также известен как сигнатуры безопасности.
Зачем нужно это подписание?
Это необходимо просто потому, что цифровая подпись помогает получателям подтвердить происхождение и подлинность входящего пакета. При этом исключается любое вмешательство и атаки типа «человек посередине». В целом, это делает ваши пакеты более безопасными во время передачи.
Эта функция появилась в Windows 2000 и с тех пор поддерживается всеми версиями операционных систем Windows. Однако по умолчанию он включен только на контроллерах домена. Если вам интересно, почему он включен на контроллерах домена, то это потому, что SMB — это протокол, используемый клиентами для загрузки информации о групповой политике, а подписывание SMB гарантирует, что эта информация получена из подлинного источника и аутентична.
Версии подписи SMB
Существует две версии подписи SMB. Первая версия, называемая подписыванием SMB1, применяется к серверам Windows 98, Windows NT 4.0, Windows 2000 и Windows 2003. Вторая версия, называемая подписыванием SMB2, была представлена для Windows Vista и Windows Server 2008 и более поздних версий.
Мы увидим, как настроить каждую из этих версий.
Настройка подписи Windows SMB1
Все версии Windows поддерживают подписывание SMB, поэтому вы можете настроить его в любой версии. Однако для работы SMB-подпись должна быть включена на обоих компьютерах в SMB-подключении. По умолчанию подписание SMB включено для исходящих сеансов в следующих версиях.
- Windows сервер 2003
- Windows XP
- Windows 2000
- Windows NT 4.0
- Windows 98
По умолчанию подписание SMB включено для входящих сеансов в следующих версиях.
- Все контроллеры домена под управлением Windows Server 2003
- Все контроллеры домена на базе Windows 2000 Server
- Все контроллеры домена на базе Windows NT 4.0 Server
Таким образом, вам придется настроить те версии, в которых подпись SMB не включена по умолчанию.
Групповые политики — это хороший и рекомендуемый способ настройки подписывания SMB, поскольку изменение значения локального реестра не работает, если оно отличается от переопределяющей политики домена. Вот почему мы не рекомендуем изменять значение реестра напрямую.
Давайте теперь посмотрим на групповые политики, которые вам придется изменить.
Политика №1
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanManWorkstationParameters
- Имя групповой политики — сетевой клиент Microsoft: использовать цифровую подпись для связи (если сервер согласен).
- Имя значения — EnableSecuritySignature
- Тип данных — REG_DWORD
- Значения по умолчанию — 0 отключено, 1 включено. В Windows Server 2003, Windows XP и Windows 2000 он включен по умолчанию.
Политика № 2
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanManWorkstationParameters
- Имя групповой политики — сетевой клиент Microsoft: использовать цифровую подпись (всегда)
- Имя значения — RequireSecuritySignature
- Тип данных — REG_DWORD
- Значения по умолчанию — 0 отключено, 1 включено. В Windows Server 2003, Windows XP и Windows 2000 он по умолчанию отключен.
Политика № 3
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanManServerParameters
- Имя групповой политики — сетевой клиент Microsoft: использовать цифровую подпись для связи (если клиент согласен).
- Имя значения — EnableSecuritySignature
- Тип данных — REG_DWORD
- Значения по умолчанию — 0 отключено, 1 включено. В Windows Server 2003, Windows XP и Windows 2000 он включен по умолчанию. В Windows NT 4.0 он по умолчанию отключен.
Политика № 4
HKEY_LOCAL_MACHINESystemCurrentControlSetServicesLanManServerParameters
- Имя групповой политики — сетевой клиент Microsoft: использовать цифровую подпись (всегда)
- Имя значения — RequireSecuritySignature
- Тип данных — REG_DWORD
- Значения по умолчанию — 0 отключено, 1 включено. В Windows Server 2003, Windows XP и Windows 2000 он включен по умолчанию, а в Windows NT 4.0 по умолчанию отключен.
В дополнение к этим параметрам необходимо создать новый параметр реестра на компьютерах под управлением Windows 2000, чтобы подключить их к Windows NT 4.0 посредством подписи SMB. Параметр: Все эти вышеуказанные настройки должны быть установлены на «включено» для подписывания SMB.
Значение: enableW9xsecuritysignature
Тип данных — REG_DWORD
Данные: 0 отключено, 1 включено.
С этим значением не связана групповая политика.
Настройка подписи SMB2
Подпись SMB2 — это значительно упрощенная версия SMB1, поскольку она использует новый алгоритм хеширования под названием HMAC SHA-256, который заменяет старый алгоритм под названием MD5. Итак, вам нужно будет настроить только один параметр: требуется ли подпись или нет. Вы можете настроить это либо с помощью групповой политики, либо с помощью параметров реестра как на клиентах, так и на серверах SMB2.
Сценарии подписания SMB
После изменения указанных выше значений конфигурации возможны следующие сценарии.
Для начала, если подпись SMB включена и требуется как на клиенте, так и на сервере, или если SMB отключена как на клиентском, так и на серверном компьютерах, то соединение установлено успешно. Это также то, что вам нужно для успешного сеанса подписи. Конечно, подписи не будет, если значения отключены как на клиенте, так и на сервере.
С другой стороны, если подпись включена и требуется на стороне клиента, но отключена на сервере, или если подпись отключена на клиенте, но включена и требуется на компьютере-сервере, тогда соединение не будет установлено. В первом сценарии клиент получает ошибку «ERROR_LOGIN_WKSTA_CONNECTION», а во втором сценарии клиент получает сценарий «STATUS_ACCESS_DENIED».
Вам придется изменить статусы в соответствии с сообщением, чтобы подпись SMB работала.
Поведение подписи SMB
Клиент и сервер обмениваются данными во время подписания SMB, и в случае несовместимости выдает вышеуказанные ошибки.
Это поведение подписи немного отличается, если вы используете старую версию SMB1, и это связано с тем, что более старые версии, такие как Windows 98, Windows 2003 server и Windows XP, имели другое поведение подписи. Однако это поведение было изменено в 2008 году, чтобы соответствовать поведению в Windows 2008 и Vista.
Итак, если у вас более старая версия, вам следует исправить или обновить ее, чтобы удалить неправильную конфигурацию.
Это может вызвать интересный вопрос: может ли кто-нибудь изменить поведение подписи SMB?
Как правило, оставьте параметры подписи SMB по умолчанию. Но вы также можете перенастроить этот параметр подписи в определенных ситуациях, например, в приведенных ниже.
- Поскольку для подписания SMB требуются дополнительные ресурсы обработки для вычислений хэша, вы можете отключить «обязательный» параметр на контроллерах домена, особенно если у вас мало ресурсов. Однако это может открыть вашу групповую политику для возможного вмешательства.
- Вы также можете отключить «обязательный» параметр на своих контроллерах домена, если хотите использовать устройства оптимизации WAN для ускорения трафика между офисами, расположенными в разных городах или странах.
- Вы можете включить «обязательный» параметр на всех клиентах и серверах SMB, чтобы весь ваш SMB-трафик был подписан. Однако это также не рекомендуется, так как это снизит производительность SMB, так как потребуется больше ресурсов.
Когда вы меняете поведение по умолчанию, лучше всего делать это с помощью параметров групповой политики, а не изменять значения реестра.
В целом, подписывание SMB добавляет дополнительный уровень безопасности, поскольку исключает возможность подделки или атак «человек посередине» во время связи. Его также легко реализовать, поскольку все версии Windows поддерживают его в той или иной форме.
Использовали ли вы подписывание SMB? Пожалуйста, расскажите нам о своем опыте в разделе комментариев.