详解微软的安全策略

上传人:xiao****1972 文档编号:84782543 上传时间:2019-03-04 格式:DOC 页数:8 大小:128.95KB
返回 下载 相关 举报
详解微软的安全策略_第1页
第1页 / 共8页
详解微软的安全策略_第2页
第2页 / 共8页
详解微软的安全策略_第3页
第3页 / 共8页
详解微软的安全策略_第4页
第4页 / 共8页
详解微软的安全策略_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《详解微软的安全策略》由会员分享,可在线阅读,更多相关《详解微软的安全策略(8页珍藏版)》请在金锄头文库上搜索。

1、详解微软Microsoft SQL Server 2005的安全策略SQL服务器2005提供了验证和授权方面的很多改进,还有支持加密技术这使得数据库的设计和执行更加安全。软件的安全性是一个重要的话题,因为每天都有一些新的攻击被发现。Windows 2003服务器是微软下线的第一个标榜着“默认安全”的服务器,这个服务器锁定在默认状态下,你不得不去分别的激活每一个你想得到的服务。所以,对攻击者来说要登陆系统是一件难事。同样的策略也应用在了SQL服务器2005上:整个数据库服务器被锁定在默认状态下,每项服务和特性都要在明确的被激活才能获得。正因为如此,SQL服务器和SQL服务器界面配置工具一同发行,

2、图1这样你就可以在安装时决定哪项服务和特性处在激活状态。验证验证是第一个必须成功完成的项目,以便于得到登陆SQL服务器的权限,图2阐明了该安全概念的模式。图2和以前版本的相似,SQL服务器2005支持Windows和复合验证两种模式,微软建议使用Windows验证模式作为安全的保障。在该模式下,安全检查将针对现有目录而执行。但是这种模式的缺点是用户和数据库服务器必须存在于同一现有目录域下。当你使用建立于复合验证模式的SQL服务器时,SQL服务器将提交登陆凭证。该配置在一些方案中很敏感,但是缺点就是你不能够像现有目录那样使用安全的基础配置。SQL服务器2005的一个新功能就是,当你使用Windo

3、ws验证模式时,它可以在验证过程中管理密码和退出策略。你可以管理帐户的权限,比如增强式密码和数据有效期。然而,只有在Windows 2003 Server系统中安装的SQL 服务器2005才拥有这样的功能。在其他的Windows操作平台上这些功能的应用编程接口(API)不可用。当你设定一个帐户的密码时可以做如下限制:1、密码长度至少6字符(SQL服务器支持的密码的长度为1-128字符)。2、密码必须使用不同类型的字符(大写字母、小写字母、数字、特殊符号等)。3、密码中间不能出现Admin, Administrator, Password, sa或 sysadmin。4、除了这些限制外,密码不能

4、为空。当你生成新的注册用户时,你可以通过SQL语句CREATE LOGIN来使用CHECK_EXPIRATION和CHECK_POLICY扩展名 。CHECK_EXPIRATION控制登陆的有效期,CHECK_POLICY激活上述的密码限制策略。新选项MUST_CHANGE使用户在第一次登陆时可以改变密码。(SQL服务器2005测试第二版目前不支持该功能),表1列出了这些新功能的代码:表1CREATE LOGIN Paul WITH PASSWORD=Pssw0rd1MUST_CHANGE, CHECK_EXPIRATION = ON,CHECK_POLICY = ON在Windows Ser

5、ver 2003操作平台运行的SQL服务器2005也可支持端点验证,这样可以确保当SQL服务器通过Http.sys暴露XML Web服务时能够安全的交流信息。授权当用户成功通过SQL服务器的验证后,授权程序将决定用户在数据库中有哪些权利。在这个部分,SQL服务器2005有两个新的特性:l用户和模式(Schema)分离l执行语境用户和模式(Schema)分离模式(Schema)是一个你可以有逻辑的将数据库对象(表格、存储规程、视图等)分类的容器。它和.NET Framework类库里的命名空间一样。 因为SQL服务器内的模式也可以拥有一个系主,你可以规定在给定模式里的所有对象都属于同一个系主。S

6、QL服务器2000没有很好的执行模式:模式的名称与用户名相同。所以,在模式和数据库对象的系主之间有直接的关系(见图3)。(图片较大,请拉动滚动条观看)图3SQL服务器2000内的一个大问题就是模式必须使用一个全当限名称(模式.对象名称)。但是当你从数据库内撤销一个用户时,那么对象的全当限名称就改变了。不幸的是,你在数据库内做的这项改变在客户端查询中也改变了,而且这样的改变有时候代价昂贵。在SQL服务器2005中,模式是数据库中的一个单独对象,有它自己的名字和系主,和用户不再有关系(见图4)。图4现在你可以在数据库中删除和增加用户,而不用在软件中更改(即不是在客户端也不是在数据库端)。此外,你可

7、以给模式指派权限来控制在特定模式中访问对象的权限。表二显示了在SQL服务器2005中的模式的使用。该代码也可以从Schemas.sql文件中下载获得。表2USE masterGO- Create database loginsCREATE LOGIN Paul WITH PASSWORD=pssw0rd1CREATE LOGIN Mary WITH PASSWORD=pssw0rd1USE TestDatabaseGOCREATE USER Paul FOR LOGIN PaulCREATE USER Mary FOR LOGIN Mary- Create a new schemaCREATE

8、 SCHEMA SalesData- Create a new table in the schema SalesDataCREATE TABLE SalesData.SalesPromotion(ID int,Name varchar(255)GRANT ALL ON SalesData TO PaulALTER USER Paul WITH DEFAULT SCHEMA = SalesDataGRANT SELECT ON SCHEMA:SalesData TO MARY执行语境SQL服务器2005的另一个特性就是可以让你改变存储程序、用户定义功能、触发程序的执行语境。你可以通过EXECU

9、TE AS语句来改变执行语境从而控制在哪个用户下面执行这些数据库对象。这可支持下列选项:lEXECUTE AS CALLER lEXECUTE AS USER=user name lEXECUTE AS SELF lEXECUTE AS OWNER EXECUTE AS CALLER是默认选项,只要用户认可就可以执行储存程序。通过 EXECUTE AS USER,你可以指定在哪些用户下该储存程序才执行。当你使用EXECUTE AS SELF,储存的程序就在创建者的认可下执行。最后,你可以使用EXECUTE AS OWNER在对象系主的认可下执行储存程序。密码系统当你请求使用密码系统时,你必须掌

10、管好密码(非对称加密算法个人密码或对称加密算法共享密码),SQL服务器2005提供两种密码管理方案:lManage the key yourself lSQL Server manages your key 当你自己管理密码时,SQL服务器通过一个指定的口令在数据库中储存对称密码,你必须在一个安全位置保存口令。当SQL服务器代你管理密码时,它采用Service Master Key和Database Master Key。图5显示了该过程。图5正如你所看到的,Service Master Key存在于服务器水平,这个密码是在安装SQL服务器过程生成的,并受到数据保护API(DPAPI)的保护。

11、通过一些T-SQL语句,你可以将Service Master Key转储到一个文件里,然后从文件里还原。Database Master Key存在于数据库水平,必须是由管理员来创建。它可以通过口令或Service Master Key来加密。表3显示了创建Database Master Key的方法。表3CREATE MASTER KEY ENCRYPTION BY PASSWORD=pssw0rd1当你创建了Database Master Key后,将出现以下选项:lEncryption with a symmetric key lEncryption with an asymmetric

12、key lEncryption with a certificate 你可以使用T-SQL语句CREATE SYMMETRIC KEY来创建对称密码。可通过口令或存储在sys.symmetric_keys中的Database Master Key来加密。对于对称密码,你必须在第一步中使用OPEN KEY 语句打开它(这包括解密过程)(见图6)。在这之后,你可以按照自己的意愿加密。图6对称密码的好处在于它的性能,它的运行速度比不对称密码快1,000-10,000倍。它的缺点是加密和解密使用的是同一个密码,双方都必须知道该密码。你可以通过CREATE ASYMMETRIC KEY语句创建不对称密码

13、,不对称密码也可以通过口令或Database Master Key来加密。表4显示了创建不对称密码的方法。表4Listing 4- Encryption with a passwordCREATE ASYMMETRIC KEY MyKeyName AUTHORIZATION User1WITH ALGORITHM = RSA_512ENCRYPTED BY PASSWORD = pssw0rd1- Encryption with the database master keyCREATE ASYMMETRIC KEY MyKeyName AUTHORIZATION User1WITH ALGO

14、RITHM = RSA_512不对称密码通常储存在sys.asymmetric_keys中,创建密码后,你可以通过EncryptByAsmKey来给数据加密,使用DecryptByAsmKey 来给数据解密。表5显示了加密和解密的功能的用法。表5DECLARE EncryptedStuff varchar(1000)SELECT EncryptedStuff = EncryptByAsmKey(AsymKey_ID(MyKeyName), My secret message)SELECT EncrytedStuffSELECT CAST(DecryptByAsmKey(AsymKey_ID(MyKeyName), EncryptedStuff)AS VARCHAR)最后,你可以使用证书来加密数据,可以通过将已有证书输入到数据库服务器或通过T-SQL语句CREATE CERTIFICATE 来创建一个新证书。证书也可以通过口令或Database Master Key来加密。表6显示了这两种可能的方法。表6- Encryption with a passwordCREATE CERTIFICATE MyCertificateName AUTHORIZATION User1WITH Subject My Subject, EXPIRY_DATE = 12/31/2006,EN

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号