打印相关通信:RPC over TCP 与 RPC over Named Pipes 对比
大家都知道微软在Windows 11 22H2版本里给打印相关的通信做了安全升级,把RPC over TCP设成了客户端和服务器通信的默认方式,虽然RPC over Named Pipes还能用,但官方明确不推荐了。那为啥TCP版本成了新的安全标准呢?咱们来拆解下它比Named Pipes更安全的核心原因:
网络访问管控更精准
RPC over Named Pipes是基于SMB协议实现的,而SMB本身是局域网内共享的基础协议,默认情况下很容易在同一网段内被扫描到,给攻击者横向移动留了机会。而RPC over TCP可以通过防火墙精准管控端口(哪怕是动态RPC端口,也能通过组策略固定范围),只允许指定IP或网段的设备访问,大大缩小了暴露的范围。身份验证与加密更可靠
TCP版的RPC支持更强的身份验证机制,比如Kerberos双向身份验证,能确保通信双方都是合法的。而Named Pipes的身份验证依赖SMB的验证体系,历史上SMB协议出过不少漏洞,而且早期SMB版本的加密强度不足,甚至部分场景下会出现明文传输的情况,很容易被窃取敏感信息。攻击面更小,安全性更集中
Named Pipes和SMB栈深度绑定,SMB作为一个复杂的文件共享协议,本身就有很多攻击向量,攻击者可以通过SMB的漏洞间接利用Named Pipes发起攻击。而RPC over TCP相对独立,协议逻辑更聚焦于远程过程调用,微软对它的安全更新和防护措施更集中,出现漏洞的概率更低,就算出问题也更容易快速修复。跨网络场景更安全
如果需要跨网段或者远程访问打印服务器,RPC over TCP的适配性和安全性更好。Named Pipes依赖NetBIOS和SMB,跨网络场景下很容易被网络设备拦截,而且传输过程中更容易被嗅探;TCP则是通用的网络传输协议,配合VPN或加密隧道使用时,能保证通信的完整性和保密性。
备注:内容来源于stack exchange,提问作者Sergio Yepes

