《数据库安全管理加密系统.doc》由会员分享,可在线阅读,更多相关《数据库安全管理加密系统.doc(16页珍藏版)》请在三一办公上搜索。
1、数据库信息系统必备 数据库安全管理加密系统数据库安全管理加密系统以软硬件结合方式彻底解决数据泄密问题,即使数据库非法侵入或拷贝,得到的也是一堆无法可解的乱码,而目前银行、电信部门客户数据外泄案频发,公安部门对保密要求更高,数据库裸放在服务器中,随时有泄密危险。目 录1.产品背景32.产品简介53.产品架构63.1 DBLOCK安全平台63.2 服务器端代理(Server Agent)73.3 WEB管理控制台(Console)83.4 安全策略和安全审计中心94.产品功能及特点104.1 数据库数据透明加密104.2 数据库透明访问,不需对应用作任何修改104.3 数据传输加密114.4 透明
2、安全代理114.5 三权分立管理134.6 完善的系统审计功能144.7 支持多数据库系统144.8 DBLOCK系统特点14数据库安全管理加密系统最近几年,个人信息大规模泄露、造成巨大损失的事件时有发生:1、招商银行、工商银行员工兜售客户信息,造成损失达3000多万元。 2、京东商城客户账号泄密案件。 3、CSDN几百万用户注册信息库被黑客盗取。4、天涯社区论坛4000万用户数据泄露。5、taobao泄密事件.6、开心网账号泄密事件1. 产品背景随着计算机技术的飞速发展,各类信息系统的应用已深入到各个领域。但随之而来应用系统和数据库的安全问题尤为凸显。数据库系统作为信息的聚集体,是计算机信息
3、系统的核心部件,其安全性至关重要。小则关系到企业兴衰、大则关系到国家安全。在涉密单位或者大型企事业单位中,广泛的实施了安全防护措施,包括机房安全、物理隔离、防火墙、入侵检测、加密传输等等。但就应用系统本身和数据库的安全问题却一直得不到应有的重视。同时,之前的市场上也缺乏有效的应用系统和数据库安全的统一解决方案。这就致使数据库及其应用系统在安全方面普遍存在一些安全隐患。其中比较严峻的几个方面表现在:(1)应用系统身份验证强度问题。目前许多应用系统本身缺乏有效的强身份认证安全机制,应用服务提供者如何验证用户的有效身份,用户如何验证服务提供者的身份,如何保证在网络上传输的数据不被篡改。(2)数据库安
4、全问题。由于国内只能购买到C2安全级别的数据库安全系统,该类系统采用自主访问控制(DAC)模式,DBA角色能拥有至高的权限,权限可以不受限制的传播。这就使得获取DBA角色的权限成为攻击者的目标。一旦攻击者获得DBA角色的权限,数据库将对其彻底暴露,毫无任何安全性可言。数据库系统是一个复杂的系统,根据已经公布的资料,数据库存在许多漏洞,其中不少是致命的缺陷和漏洞。举例来说,号称拥有全球最安全的数据库产品的Oracle 公司在2006 年1 月发布了其季度安全补丁包,该补丁包修补了多个产品中的80 多个漏洞。其中不少漏洞可以非常容易地被黑客利用,一旦遭到攻击将给用户造成严重影响。数据库及其应用系统
5、每天都可能受到包括SQL注入攻击在内的广泛的攻击。攻击者利用应用程序设计中的漏洞,对数据库系统发起攻击,获得不应该具有的权限,甚至下载整个数据库文件,给数据库的安全造成严重威胁。C2级数据库采用基于口令的认证方式。本身缺乏有效的登录口令管理机制,口令更换周期长,使用复杂口令很困难,口令泄露的风险大。由于C2级商业数据库管理系统在上述各个安全方面的不可信,攻击者可能通过非正常途径来访问数据库,破坏系统的安全性。2. 产品简介DBLOCK数据库安全管理系统(简称“DBLOCK 系统”)是一款多数据库平台安全加固系统,该产品能够实现对数据库数据的加密存储、强制权限控制、敏感数据访问审计。DBLOCK
6、系统可以防止绕过企业边界(FireWall、IDSIPS等)防护的外部数据攻击、来自于内部的高权限用户(DBA、开发人员、第三方外包服务提供商)的数据窃取、以及由于磁盘、磁带失窃等引起的数据泄密。在对现有应用不做任何更改的情况下,DBLOCK系统可以对数据库应用系统中的数据,进行数据透明加密;并在现有的数据库权限访问控制的基础上,增加了数据安全管理员(DSA)进行加密数据的加密和解密权限控制,有效防止数据库特权用户访问敏感数据;同时增加了数据审计员(DAA)对安全行为和敏感信息的访问进行审计追踪。当前主流数据库安全加固方案包括前置代理、应用加密和数据库自带加密选件TDE。前置代理需要应用大幅改
7、造、大量数据库核心特性无法使用;应用加密必须由应用实现数据加密,加密数据无法检索。同时需对应用系统进行大幅度的改造,已有系统无法透明移植;另外国外数据库所提供的TDE 不能集成国产加密算法,不符合国家密码政策。因此这几种方案一直未能得到有效推广。DBLOCK 通过自主专利SQL 智能分析引擎和密文索引等核心技术,突破了传统数据库安全产品的技术瓶颈,可以实现数据高度安全、应用完全透明、密文高效访问。DBLOCK系统当前支持Oracle、SQL server、DB2、Sybase 等多种数据库平台,满足用户的多种部署需求。3. 产品架构DBLOCK 系统由三部分组成:客户端代理(Client Ag
8、ent)、DBLOCK安全平台、服务器代理(Server Agent)。客户端代理:运行在所需保护的应用客户端或连接数据库的应用服务器上面,支持Windows、Unix、Linux主流操作系统平台。DBLOCK安全平台:独立的硬件设备,安装在网络环境中,主要完成基于机器特征的身份认证、资源访问权限控制、密钥管理、数据库数据实时加/解密、安全策略管理、Web Service均由核心设备完成。服务器代理:驻留在数据库内部,主要实现数据库与DBLOCK安全通讯,表空间内的密文数据索引,和密文数据存储。3.1 DBLOCK安全平台DBLOCK安全平台由WEB管理控制台、API 调用库、安全守护进程构成
9、。主要为客户端代理(Client Agent)、服务器端代理(Server Agent)和WEB管理控制台服务,并实现对加密设备的兼容,系统配置信息和审计日志存储在“ODBC数据存储中心”中。WEB管理控制台负责安全守护进程加解密功能的启动和停止。API 调用库,对外供服务器端代理(Server Agent)调用完成加解密功能,供服务器端代理(Server Agent)获得加密设备信息和密钥生成;同时对客户端代理(Client Agent)提供终端安全认证;对内供WEB管理控制台完成加解密功能的启动。安全守护进程是一个独立运行的服务进程,负责提供远程或进程间的服务形式,可以通过远程TCP/IP
10、 方式或进程间通讯方式(Shared Memory)与客户端进行通讯;主要提供数据的授权控制下加解密服务,密钥的生成和更新功能。3.2 服务器端代理(Server Agent)服务端代理是DBLOCK系统实现应用透明和性能管理的关键部分。该子系统驻留在数据库实例内部,由数据库扩展存储过程、视图、触发器、SQL 语法分析工具、外部程序和专属于DBLOCK系统的“系统表”构成,互相协作,实现对敏感数据的透明加密和对加密数据的高性能访问。服务器端代理(Server Agent)的核心机制包括:1)利用“服务端代理”中的SQL 分析模块对提交的SQL语句【包括Insert、Update 和Delete
11、 操作的INSTEAD OF 类型】进行语法分析和扩展,根据DBMS中的“加密字典”对SQL语句进行“解析扩展”。例如:解析前的语句“SELECT yhmm FROM ybxxb”;解析后“SELECT dbo.str_Decode(yhmm) as yhmm FROM ybxxb”。其中yhmm为数据库中的密文字段,str_Decode()为用户自定义函数UDF(User Defined Function),dbo为DBMS中str_Decode()的拥有者。2)加密系统将重组后的SQL语句提交给DBMS,DBMS通过“数据库对象【视图】”调用“加/解密动态库”对数据库中的密文数据进行解密,
12、并将解密后的结果反馈给“数据库对象【视图】”。3)利用数据库的视图在被加密列所在的表上创建二个视图。一个内层视图包含ROWID 伪列信息来标识行数据;另一个与原表同名的视图作为对外的视图(透明视图),屏蔽了ROWID 列,以保证表结构的一致性。前面提到的触发器是建立在内层视图上的,可以利用该视图的ROWID 列信息来定位数据更新。在视图的select 语句中包含有相应加密列的解密操作,完成对外的加密数据透明访问。4)利用数据库的索引和优化器扩展机制实现密文索引查询和约束处理通过实现数据库 的Data Cartridges 提供的索引扩展和优化器扩展接口,来支持对密文数据的索引功能和相应的Opt
13、imizer 统计功能,提供索引方式的等于和范围查询,提高查询性能。同时,通过密文索引,可以实现对各种数据库 约束的处理(例如唯一值约束、主键约束等)5)通过实现数据预取和专门的缓存机制解决性能瓶颈结合密文索引和借鉴数据库自身的优化器机制,设计、实现面向全表扫描、索引扫描、跳跃扫描三种查询方式的数据预取和缓存管理,大范围的减少频繁的PL/SQL 程序调用(减少SQL引擎和PL/SQL 引擎切换的开销)和外部加解密程序调用,全面的提升系统的性能。6)严格遵守数据库 的事务管理特性,保证数据的正确性保证性能的同时,严格遵循数据库的MVCC、读一致性和隔离级别(读提交、串行化)特性,并遵循这些特性来
14、实现内部的密文缓存管理、密文索引管理,保证在并发事务模型下的事务正确性、并发读一致性和持久性。3.3 WEB管理控制台(Console)“WEB管理控制台”是DBLOCK 系统提供的图形化集成环境,用于DSA 可视化进行用户权限控制、密钥及算法管理、加解密处理、密文索引维护等安全管理工作。“WEB管理控制台”通过HTTPS建立连接,直接和安全代理模块进行通讯,同时通过访问安全服务模块和安全策略中心,从而为系统的DSA 提供各种可视化操作。“WEB管理控制台”的核心功能包括:1) 可视化导航数据库对象可以按树形模型展示模式、表、列、用户等Oracle 数据库对象,方便DSA 进行各种安全管理操作
15、。2) 用户安全权限控制DSA 可以将数据库中任一用户的属性信息同步到安全策略中心,从而将该用户注册到DBLOCK 系统中。通过“WEB管理控制台”,DSA 可以对一个用户设置列级安全访问权限,包括对某一列的加密、解密、明文访问、密钥转化等四种权限。3) 加解密处理“WEB管理控制台”提供对单列、以及多列同时进行加解密处理,包括对主外键、Unique、not null 等约束列的加解密,同时可以支持VARCHAR、VARCHAR2、CHAR、NUMBER、DATE、CLOB、BLOB 等核心数据类型。4) 密文索引管理“WEB管理控制台”支持多种密文索引的管理操作用以优化查询访问性能。包括新建
16、密文索引、重建密文索引和删除密文索引等。3.4 安全策略和安全审计中心安全策略和安全审计中心,负责存储系统的安全策略信息和安全审计信息。安全策略信息是由安全管理子系统配置,安全服务子系统读取并执行;安全策略信息包括用户名和认证信息,用户的授权信息,列的加密策略信息;安全策略信息被专门的安全策略密钥进行加密保护,防止用户通过非正常渠道篡改。安全审计信息存储两类信息:一类是DSA 用户的操作信息,包括对授权用户的配置,加密列的增密和脱密策略,加密策略修改信息,DSA 用户的登录信息;另一类对数据库 用户对安全服务的使用信息,包括登录信息,操作信息,异常访问信息。安全审计信息被专门的安全审计密钥进行
17、加密保护,防止非法的读取和篡改。4. 产品功能及特点4.1 数据库数据透明加密DBLOCK 系统的基本功能是对主流关系型数据库表数据进行透明加/脱密。系统采用国家密码局认证的加密引擎可按策略对用户指定的敏感数据进行加解密处理,可以对指定的列采用指定的加密算法和密钥、密钥向量值等进行加密处理。加密后的数据以密文的形式存储在数据库表空间。支持数据类型,包括VARCHAR、VARCHAR2、CHAR、NUMBER、DATE、CLOB、BLOB 类型的加密。4.2 数据库透明访问,不需对应用作任何修改DBLOCK采用数据库透明加密技术,不需要对应用程序作任何修改,不改变原有数据库的使用方式。对于授权用
18、户的数据加解密、查询优化、数据库管理等过程完全透明。系统使用人员、开发人员、维护人员无需关注数据加解密过程,数据的加/解密均由DBLOCK设备内部在后台完成。系统透明特性主要体现在以下方面:-SQL 语句透明:对所有SELECT、UPDATE、INSERT、DELETE 操作的SQL 语句进行操作,应用程序不需要进行任何改造;-对数据库内部所运行的函数、存储过程访问完全透明;-约束透明:主外键、唯一索引、NOT NULL 等约束完全透明。-开发接口透明:主流开发接口的应用完全透明,包括:JDBC、ODBC、OCI 、ADO.NET 等。-管理工具透明:Oracle 管理工具、命令行工具,以及I
19、MPORT、EXPORT、RMAN 等备份恢复工具的使用透明。4.3 数据传输加密提供完善的VPN网关特性,提供SSL VPN组网方式,内置高性能硬件加/脱密组件,支持DES、3DES、AES、SCB2等多种加密算法,同时结合迈科龙公司自主专利的基于机器特征和可信路径传输加密的专利技术确保数据网络传输的机密性、完整性,保证数据传输安全。4.4 透明安全代理 屏蔽用户和应用程序直接访问数据库所有通道和隐通道。部署DBLOCK之前,应用服务器和用户直接连接到数据库服务器,如下图所示:由于数据库服务器直接与用户和应用服务器连接并提供服务,极易受到形形色色的攻击。并且数据库系统存在的未知的隐通道,也很
20、容易被攻击者利用。数据库服务器通常采用默认的端口,比如Oracle的1521端口,SQL SERVER的1433端口。攻击者可以轻易的扫描这些端口,得知数据库的类型,进而进行攻击。部署DBLOCK之后,DBLOCK介于数据库服务器和应用服务器之间,如下图所示:数据库服务器与应用程序之间通过DBLOCK安全模块进行隔离。所有对数据库的访问都必须经过DBLOCK安全模块进行。各种隐蔽通道也相应被屏蔽,防止攻击者直接利用。应用软件到数据库的访问经过二次认证和独立权限检查。在部署DBLOCK以前,由于数据库直接与应用程序进行连接,且只能通过口令进行认证,数据库极易受到假冒用户的连接和恶意的攻击。由于D
21、BA角色具有超级权限,当恶意攻击者将自己的角色提高到DBA时,整个数据库将完全被其操纵。应用服务器也极易在类似SQL注入攻击的过程中,成为攻击者的跳板。部署DBLOCK之后,应用程序对数据库的访问,必须经过DBLOCK和数据库系统两层身份认证和权限检查。DBLOCK使用动态访问凭证(一次一密)、机器特征(IP地址、MAC地址、以及硬盘序列号、主板序列号等多种计算机系统的特征),结合数字证书的验证方式,确保访问来源的真实性,杜绝IP地址欺骗和假冒用户的连接。DBLOCK提供与数据库系统完全独立的授权检查,对每个IP来源上的每一个用户单独进行权限控制。权限的控制可以精确到表一级。就算攻击者成功攻陷
22、应用服务器,并将角色提高到DBA也是徒劳。由于DBLOCK提供了独立的权限管理,攻击者仍然只能获得受限的权限,不能获取DBA的特权。从而有效的遏制了越权访问、SQL注入攻击、存储过程非法使用等攻击类型。采用基于一次一密的动态服务凭证(动态口令)连接数据库。为解决数据库用户登录口令管理困难的问题,DBLOCK提供动态口令功能。所有密码管理交给DBLOCK托管,在每次需要登录的时候,通过动态密码客户端获取当前登录口令。服务器端在每次响应口令请求之后,自动更换登录口令,使之前的口令作废。这样,管理员不必担心口令泄露的问题。因为即使得到的口令不小心被泄露,也不会威胁到数据库,因为真正的登录口令已经被改
23、变。口令客户端和服务器端通过SSL加密连接,确保网络传输的安全。动态口令采用硬件随机数发生器生成,具有很高的强度。口令客户端同样采用证书的验证方式,结合IP地址、MAC地址、以及硬盘序列号、主板序列号等多种计算机系统的特征,确保访问来源的真实性,杜绝假冒用户的连接。4.5 三权分立管理DBLOCK系统采用DSA、DBA、DAA分权的机制,在数据库用户管理的安全机制上,增设了安全管理员(Data Security Administrator,DSA)和安全审计员(DAA)。DSA 通过数据安全管理工具,完成日常的加密数据配置、密文权限控制等安全维护和管理操作,对访问数据库数据进行授权,只有经DB
24、A和DSA同时对某用户授权,用户才能对数据进行访问,有效制约了特权用户(DBA、开发人员、数据库维护人员)对数据无限制的访问。通过DSA对数据访问权限的控制,有效防止了特权用户的产生,工作人员不能同时具备DBA 和DSA 的权限,也就是不存在能够设置加密策略的同时,又可以进行数据管理的特权用户。同时系统增设审计管理员(Data Audit Administrator,DAA)。DAA通过审计管理工具,进行审计开关的控制,检索、分析密文访问操作的审计信息工作。4.6 完善的系统审计功能DBLOCK系统能够审计来自每个应用服务器的访问情况。包括请求的数据库,连接的时间,连接断开的时间,通信量大小等
25、信息。强制审计每次非法进入数据库系统的企图,以及每次非法越权访问的企图。审计信息加密存储,任何人不可修改审计记录。4.7 支持多数据库系统Oracle 9i及以上版本Sybase 12.0及以上版本IBM DB2 9.0 及以上版本Microsoft SQL Server 2005 及以上版本4.8 DBLOCK系统特点 集中安全管理通过安全密钥的统一管理,达到对应用安全管理的目的,通过设置密钥访问策略,DBLOCK可以管理用户对安全存储数据的访问方式,比如,DBLOCK中设置了用户A对密钥A的访问权限是周一到周五可以访问,那么用户在周一到周五就可以查询使用密钥A加密了的数据库数据,而周六和周
26、日由于违反策略就不能够访问。 加解密由DBLOCK硬件设备完成,对应用程序完全透明采用基于数据库底层数据加密技术,在数据加密后不影响原有应用程序的使用方式,也无需对应用程序进行更改,所有数据的加解密都是在DBLOCK硬件中完成的,既能够加快加密速度,又能够保证操作安全,同时不会占用数据库服务器的资源。 数据库权限统一管理通过映射数据库用户到本地用户,从而可以是得应用程序通过数据库用户访问数据库的时候,能够得到映射用户的权限,从而访问数据库中的安全记录。 支持多台设备负载均衡,解决大数据量集中访问的性能瓶颈对于用户数量较大,业务集中,需要处理的数据量特别大的业务系统,当达到单台设备的瓶颈的时候,我们可以通过增加一台或多台新的设备来扩展性能,DBLOCK支持负载均衡,能够无缝接入一台或多台新的设备提高性能。