不需要改应用的透明加密方案

  • 安策数据加密保护-HSM支撑数据库透明加密实践

    1. 可扩展的密钥管理Oracle有一个内置的选项,可以将加密密钥存储在外部设备上
    2. MS SQL使用一个名为EKM的扩展 

    3. EKM是一种允许SQL服务器使用TDE并将密钥存储在硬件安全设备(即HSM)上的功能。

          EKM(Extensible Key Management)即“可扩展密钥管理”,这是SQL Server 2008的新增功能之一。该功能增强了SQL Server 2008的密钥管理能力,它允许将密钥存储在之外,这对于提升安全非常重要。

    数据库透明加密流程图TDE逻辑图
    TDE透明加密流程图

          SQL Server 提供数据加密功能以及可扩展的密钥管理 (EKM) ,使用Microsoft 加密 API (MSCAPI) 提供程序进行加密和密钥生成。在临时密钥容器中可创建用于数据和密钥加密的加密密钥,并且必须先将它们从访问接口中导出,然后才能存储在数据库中。这个方法启用密钥管理,其中包括加密密钥层次结构和密钥备份,由 SQL Server 处理。(如图:TDE透明加密流程图)

    总结:EKM是一种允许SQL服务器使用TDE并将密钥存储在硬件安全设备(HSM)上的功能模块,EKM提供程序创建凭据并将其映射到登录名,按登录名访问EKM模块。

    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中。

    使用 EKM 在 SQL Server 上启用 TDE

    TDE 使用称为数据库加密密钥的对称密钥来加密整个数据库的存储。还可以使用受主数据库的数据库主密钥保护的证书来保护数据库加密密钥。


    3、EKM实践优点:

    其他授权检查(启用责任分离)。

    更高性能的基于硬件的加密/解密。

    外部加密密钥生成。

    外部加密密钥存储(物理分离数据和密钥)。

    加密密钥检索。

    外部加密密钥保留(启用加密密钥旋转)。

    更易于加密密钥恢复。

    可管理的加密密钥分发。

    安全的加密密钥处置。



    来源:安策信息原创、陈庆文 | 关键词:TDE  MSSQL  透明加密  HSMTDE  EKMTDE   | 受欢迎指数(

与我们一起实践过安全的企业代表