码迷,mamicode.com
首页 > 其他好文 > 详细

Chapter 2 User Authentication, Authorization, and Security(3):保护服务器避免暴力攻击

时间:2014-08-22 16:29:39      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:sql server 2012   security   dba   安全   暴力破解   

原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693,专题目录:http://blog.csdn.net/dba_huangzj/article/details/37906349

未经作者同意,任何人不得以“原创”形式发布,也不得已用于商业用途,本人不负责任何法律责任。

        前一篇:http://blog.csdn.net/dba_huangzj/article/details/38705965

 

前言:

 

暴力攻击(Brute-force attack)是通过几乎所有可能的字符组合尝试破解密码,或者使用一个字典表,包含几乎所有可能的密码来实现密码破解的方法。如果你的密码很简单,那么很快就会被破解。所以,测试密码是非常重要的。

 

实现:

 

1. 首先查找SQL 密码没有使用强制密码策略的:

 

SELECT name, is_disabled 
FROM sys.sql_logins 
WHERE is_policy_checked = 0 
ORDER BY name;


 

2. 然后对这些登录使用强密码策略:

 

ALTER LOGIN Fred WITH CHECK_POLICY = ON,CHECK_EXPIRATION = ON;


 

这个命令不会更改现有密码,直到密码过期前密码依然有效。可以使用下面函数检查密码到期时间:

SELECT LOGINPROPERTY(‘Fred‘, ‘DaysUntilExpiration‘);


 

3. 你还可以强制在登录时修改密码,但是需要先提供一个协商好的密码并告知使用者,比如下面的代码,就是把Fred这个登录名强制登陆时修改密码,然后你使用了You need to change me ! 这个作为“初始密码”,你需要告知用户,登陆时使用它,登录成功后会提示你修改密码。

ALTER LOGIN Fred WITH PASSWORD = ‘You need to change me !‘ MUST_CHANGE, CHECK_POLICY = ON, CHECK_EXPIRATION = ON;


原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693

bubuko.com,布布扣

 

4. 可以使用脚本把所有需要修改的登录名全部显式出来:

SELECT  ‘ALTER LOGIN ‘ + QUOTENAME(name) + ‘ WITH PASSWORD = ‘‘You 
need to change me 11‘‘ MUST_CHANGE, CHECK_POLICY = ON, CHECK_ 
EXPIRATION = ON; 
‘ 
FROM    sys.sql_logins 
WHERE   is_policy_checked = 0 
ORDER BY name;


 

如果需要在应用程序中允许用户修改他们的密码,可以参照这篇文章:http://msdn.microsoft.com/zh-cn/library/ms131024.aspx (以编程方式更改密码)

 

原理:

 

 

最好的保护密码避免暴力攻击的方法是使用WIndows密码策略,因为它仅允许你使用强密码。另外暴力攻击密码会在SQL Server的错误日志和Windows的事件日志中留底。

SQL登录的密码或密钥是不存储在任何系统表中,仅存储密码的hash值,也就是说没有办法解密。hash值会存储在系统表中,以便后续登录时与传输的密码使用hash函数生成的hash值匹配。

 

 原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693

更多:

 

过期策略的其中一个组成部分是【lockout threshold】,如果要启用对SQL 登录的失败尝试锁定,需要对CHECK_POLICY 选项设为ON,并且把你的帐号锁定策略在Active Directory或者本地配置。

 

bubuko.com,布布扣

 

可以使用下面语句查询是否有锁定的帐号:

SELECT name 
FROM sys.sql_logins 
WHERE LOGINPROPERTY(name, N‘isLocked‘) = 1 
ORDER BY name;
原文出处:http://blog.csdn.net/dba_huangzj/article/details/38756693

Chapter 2 User Authentication, Authorization, and Security(3):保护服务器避免暴力攻击

标签:sql server 2012   security   dba   安全   暴力破解   

原文地址:http://blog.csdn.net/dba_huangzj/article/details/38756693

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!