软件测试中用EKM提升SQL Server 2008数据库安全

发表于:2010-05-31来源:作者:点击数: 标签:软件测试数据库SqlsqlSQL
软件 测试 中用EKM提升SQL Server 2008数据库 安全 1、为什么要添加 EKM功能? 我们知道,为防止 数据库和日志文件被无权限的人访问或黑客攻击,加密是一种很主要的手段。此前的SQL Server自带的数据加密功能可以加密文件,但它将密钥存储在SQL Server中,这

软件测试中用EKM提升SQL Server 2008数据库安全

1、为什么要添加 EKM功能?
   我们知道,为防止 数据库和日志文件被无权限的人访问或黑客攻击,加密是一种很主要的手段。此前的SQL Server自带的数据加密功能可以加密文件,但它将密钥存储在SQL Server中,这带来了安全隐患。

SQL Server 2005并不允许在本地SQL Server 2005加密环境中运用第三方的密钥或密钥管理程序。这样,如果公司在其它运用 中运用第三方加密产品对数据执行 了加密,而你却不能用这个产品对SOL Server的数据执行 加密或管理SQL Server的密钥,这是相当麻烦的。

EKM弥补了这个弱点,它允许密钥存储在数据库之外,包括特殊的硬件(例如智能卡、USB设备)或被称为硬件安全模块(Hardware Security Modules,HSM)的软件模块中。因此,在SQL Server 2008中引入EKM是非常实用的。

2、将密钥存储在HSM中

EKM功能在SQL Server 2008的企业版、开发版、评估版中都可用,它允许密钥存储在数据库之外的HSM中,与加密数据分开存储。

把密钥存储在HSM中可以防止 它们被数据库所有者和其他高级别数据库用户访问,因为这些用户没有权限访问存储密钥的HSM。只有那些在加密解密流程中拥有HSM设备权限的最终用户,才能用这些密钥加密新数据或查看现有巳加密数据(须要留心的是:如果HSM 设备没有运用过,sysadmin用户组的成员仍然可以访问密钥)。如果要让用户可以运用第三方的HSM,须要在SQL Server 2008的EKM中将这些第三方厂商的EKM/HSM模块注册到SOL Server 2008中。

3、如何 启用/禁用EKM?

(1).启用EKM

要在数据库中运用 EKM,必须先用系统存储流程 sp_configure来启用SOL Server实例的EKM功能。

启用EKM提供程序高级选项

sp_configure 'show advanced options',1;

GO

RECONFIGURE;

GO

启用EKM提供程序

sp_configure 'EKM provider enabled',1;

GO

RECONFIGURE;

GO

启用EKM之后,要建立一个EKM Provider(或者更多,你可能用到了多个HSM ),运用新的CREATE CRYPTOGRAPHIC PROVIDER的DDL(Data Definition Language,数据解释语言)语句。

CREATE CRYPTOGRAPHIC PROVIDER EKM_Prov

FROM FILE = 'C:\EKM_Files\KeyProvFile.dll';

GO

启用了EKM并建立了Provider之后,就可以用这个Provider作为密钥。而如果要用EKM Provider模块执行 安全登录,我们也可以用它来执行 认证。

(2).禁用EKM

在某些情况下,我们可能须要在数据库中禁用一个Provider并启用新的Provider。例如,如果公司选择了另外一个第三方密钥提供商作为标准。在SOL Server 2008中,我们可以禁用Provider,但仍然把它保留在数据库中,在准备好之后再长久删除它,这样就可以从容地找出运用到旧Provider的对象,把它们修改为运用新的Provider。不过,笔者建议最好保留旧的Provider,以防出错。要禁用一个Provider,运用 ALTER CRYPTOGRAPHIC PROVIDER语句,可执行如下命令:

ALTER CRYPTOGRAPHIC PROVIDER pEKM_Prov_ModuIe
  FROM FILE=''DISABLE

4、如何 获知EKM运用情况?

部署和实施EKM的数据库管理员和开发人员还须要对存储EKM Provider的元数据视图及有关的信息有一定的认识。SQL Server 2008提供了一系列新的目录视图、动态管理视图和动态管理函数,数据库管理员们可以用它们检查EKM Provider和EKM的运用情况。

运用 这些视图和函数我们可获取与EKM有关的信息,例如SQL Sewer实例中正在运用的Provider列表、运用 EKM 的认证信息列表、数据库中每个Provider ID的密钥列表、rovider的属性,以及每个Provider ID运用的加密算法等。

总结:通过以上对EKM相比较较基本的分析,我们看到SQL Server的加密功能在SQL Server 2008中有了很大的提升。很多数据库管理员为能不能要运用加密而犹豫不决,这是因为他们担心密钥的存储疑问,以往密钥和加密数据是存储在一起的,而现在SQL Sewer 2008中有了一个新的工具,它可以消除管理员们的这个担心,EKM功能值得一用。

原文转自:http://www.ltesting.net