首页 > 代码库 > Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击
Chapter 1 Securing Your Server and Network(10):使用扩展保护避免授权中继攻击
未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。
前一篇:http://blog.csdn.net/dba_huangzj/article/details/38332605
前言:
在客户端和服务器互访过程中,授权是会一直保持,通过验证,可以接受或拒绝连接。因为身份验证中包含了地址、密码等信息,如果攻击者拦截了这方面的信息,就会出现授权中继攻击(authentication relay attack),有两种方式可以实现这种攻击,第一种称为:引诱攻击(luring attack),客户端被引诱到攻击者设置的服务器中。第二种称为:欺诈攻击(spoofing attack),也叫中间人攻击,攻击者通过DNS重定向、IP路由等技术拦截客户端和SQL Server之间的信息。
在2009年,微软发布安全报告(Security Advisory 973811),提供了两个机制:service binding(服务绑定) 和 channel binding(通道绑定)。Service-Binding 要求客户端提供已签字的SPN到授权信息中。如果攻击者尝试使用从链接信息中获取的证书或者没有提供已签名的SPN,将不能连接到SQL Server,这个功能对性能影响很少。
Channel binding提供了更高的安全性,但是会有一定的性能影响。通过使用安全传输层协议(Transport Layer Security (TLS)),继承自SSL,可以确保客户端的授权,这种授权使用Channel Binding Token (CBT) ,并且加密。
实现:
1、打开SQL Server配置管理器,在SQL Server网络配置节点,右键实例对应的协议,打开【属性】窗口并选中【高级】标签:
2、如果客户端支持【扩展保护】,选择下图中的:【必须】,否则,选择【允许】:
3、如果SQL Server服务属于某些SPN,把这个名字添加到【接受的NTLM SPN】中,以分号分开:
4、如果想启用Channel Binding Protection,并且强制所有连接加密,可以到【标志】标签中,把【强制加密】设为【是】,如果加密不需要强制,仅Service Binding会开启。
原理:
当在SQL Server配置管理器中启用【扩展保护】,可以选择对支持这种功能的客户端启用,也可以强制所有连接使用,Win 7和Windows Server 2008 R2已经内置了【扩展保护】,要为其他客户端启用,需要安装一个补丁:http://support.microsoft.com/kb/968389 。
更多:
更详细的信息可以访问:http://msdn.microsoft.com/zh-cn/library/ff487261.aspx 和http://blogs.technet.com/b/srd/archive/2009/12/08/extended-protection-for-authentication.aspx