SMB 加密解决什么问题
SMB 签名只保证完整性,不保证机密性:同一网段里的嗅探者仍能读到共享内容。SMB3 提供传输加密(AES-GCM 或 AES-CCM),按共享或按服务器全局开启,适合跨不可信网络访问的文件服务与高敏感共享。开启后会话中的文件内容、目录列表与部分元数据都受保护,嗅探到的只是密文。
基本信息
| 适用平台 | Windows Server 2012+ / Windows 8+(SMB3 起支持) |
|---|---|
| 配置粒度 | Set-SmbShare -EncryptData(按共享)、Set-SmbServerConfiguration -EncryptData(全局) |
| 对应策略 | 网络安全: 配置 SMB 客户端/服务器加密要求 |
| 基线 | 高敏感共享 EncryptData=True |
典型使用场景
- 跨云或跨分支访问文件服务:链路过第三方网络,加密是底线要求
- 财务、法务等高敏感共享:即便在内网也按最高等级处理
- 合规对标:传输机密性条款常用 SMB 加密作为落地证据
- 客户端侧强制:配合拒绝非加密连接,防止被降级到明文会话
核查与启用
核查与启用
# 查看各共享的加密状态
Get-SmbShare | Select-Object Name, EncryptData
# 单共享开启
Set-SmbShare -Name Data -EncryptData $true -Force
# 服务器全局开启(所有共享)
Set-SmbServerConfiguration -EncryptData $true -Force
# 客户端强制(要求所有出站 SMB 会话加密)
Set-SmbClientConfiguration -RequireSecuritySignature $true -Force概念对照
| 机制 | 保护目标 | 典型配置项 |
|---|---|---|
| SMB 签名 | 完整性:防篡改、防中间人改写 | RequireSecuritySignature |
| SMB 加密 | 机密性:防嗅探读取内容 | EncryptData |
| SMB1 禁用 | 移除过时且不安全的协议版本 | Set-SmbServerConfiguration -EnableSMB1Protocol $false |
| SMB 方言 | 决定可用能力(加密需要 SMB3) | Get-SmbServerConfiguration 查看可用版本 |
加密带来 CPU 开销,大文件吞吐场景要实测;同时双方都必须支持 SMB3,老客户端连接加密共享会直接失败,先确认客户端版本再改配置。
排合规项时先看清要求的是完整性还是机密性:被要求「加密」而只开了签名,是审计里的常见失分点。
加密会话同样需要双方协商出 SMB3 方言:可用 Get-SmbConnection 在客户端侧确认实际使用的方言与是否加密,比只看服务端开关更接近真实状态。