安全功能
GBase 8s提供和支持的安全功能包括:身份认证与鉴别、数据加密存储、自主访问控制、安全标记、强制访问控制、数据完整性保护、安全审计、三权分立等,参见如下示意图:
身份鉴别功能
用户标识
在GBase 8s中,每个数据库用户都有一个不可重复的唯一性用户标识,并在DBMS的整个生命周期实现该用户标识的唯一性。
用户鉴别
按照基本鉴别、不可伪造鉴别及一次性使用鉴别要求进行用户身份鉴别,用户在使用DBMS时必须首先给出用户标识,通过检验合格后才能进入使用DBMS。用户身份鉴别采用了用户密码及数据证书双重认证的鉴别机制。
数据库用户的密码使用杂凑算法加密处理后存储在GBase 8s的系统表中,从而保证了密码自身的安全性。
自主访问控制
采用访问控制表访问方式以实现自主访问控制,即采用如下表所示的访问控制表。
客体1 | 客体2 | …… | 客体n | |
---|---|---|---|---|
主体1 | 操作1.1 | 操作1.2 | …… | 操作1.n |
主体2 | 操作2.1 | 操作2.2 | …… | 操作2.n |
…… | …… | …… | …… | …… |
主体m | 操作m.1 | 操作m.2 | …… | 操作m.n |
其中主体即为用户,客体包括基表、视图、列、存储过程、函数等,操作包括SELECT,INSERT,UPDATE,DELETE,ALTER、INDEX、REFERENCE,EXECUTE等。
根据访问控制表,每个主体拥有一定操作权限,并可将权限授予(或收回)另一个主体,称为授权。
当一个主体访问某个客体时,自主访问控制根据访问控制表检查,以确认主体对客体访问的操作是否在表中允许,若为允许操作,则访问为合法,否则为非法操作,此时访问不能进行。
目前自主访问控制的主体粒度为用户级,客体粒度为字段(属性)级。
安全标记与强制访问控制
安全标记
GBase 8s中的主体(数据库用户)与客体(数据对象)均需标以敏感标记(简称标记),标记分为安全等级标记与范畴标记,等级标记是用正整数表示,而范畴标记则用集合表示。
由负责强制访问控制管理的安全管理员创建全局等级与全局范畴,并利用所创建的等级与范畴标记系统中的主体(代理)和客体。
强制访问控制(MAC)
强制访问控制(MAC)功能提供客体(数据对象)在主体(数据库用户)之间共享的控制,与自主访问控制(DAC)不同的是,强制访问控制由安全管理员管理;自主访问控制尽管也作为系统安全策略的一部分,但主要由客体的拥有者管理。强制访问控制通过无法绕开的访问控制限制来防止各种直接和间接的攻击,一个用户无权将任何数据资源的访问权授予别的用户。GBase 8s在传统的自主访问控制基础上增加了安全标记及强制访问控制功能。
GBase 8s的强制访问控制模型以BLP模型作为核心基础,并加以适当的扩充,模型的主要内容为:
-
主体与客体
在GBase 8s中主体是指数据库用户,客体包括数据表、视图、存储过程和函数等。
-
安全标记(层次等级与非层次范畴)
敏感标记又称标记,每个主体、客体均有标记,标记分为安全等级标记与范畴标记,等级标记是用正整数表示,而范畴标记则用集合表示。标记是由层次等级标记I及非层次范畴标记S的二元组组成:(I,S),它们间有偏序关系。
设有L1= (I1,S1), L2= (I2,S2) 则:L1 ≤ L2成立的充分必要条件是:(I1≤I2)∧ (S1 ⊆S2)
-
强制访问控制安全策略
Bell-La Padula模型的基本安全策略是“下读上写”。在GBase 8s中,基于实用性和灵活性的考虑对安全策略进行了扩充,除了采用向下读、向上写原则外,还设置有向上读向下写原则,以及将写分为插入,修改/删除两种操作而形成的下读等写的安全访问策略。
数据完整性
GBase 8s提供一系列强有力的方法来确保数据库的完整性。
- 物理存储完整性保护
GBase 8s的数据文件按照页方式进行存储,每个页为16KB,数据文件存储的示意图如下:
每一个页数据的存储结构如下:
Page Header |
User Records |
Free Space |
Page Directory |
Page Trailer |
Page Trailer存储了本页的校验码信息,当向页中写入数据时将页的校验码信息写到Page Trailer中;当从页中读取数据时,首先重新计算该页的校验码信息,然后和Page Trailer的校验码信息进行对比,如果不相等,说明此页的完整性信息被破坏了,如果相等,说明该页的数据完整性得到了保证,可正常访问,GBase 8s通过页中保存校验码信息的方式来检查以库结构形式存储在数据库中的用户数据是否出现完整性错误。
- ACID事务处理模式
GBase 8s支持ACID事务属性,确保每个独立事务的数据完整性与有效性,具备完善的提交、回滚机制,结合重做日志和回滚段共同作用确保在灾难恢复时数据的一致性。
- 外键功能
GBase 8s支持外键功能,用来确保数据的参考完整性。
- 约束功能
GBase 8s支持更改约束和唯一索引的过滤模式,或启用或禁 用约束、索引和触发器,或正在重置它们的约束模式时绕过外键约束的引用完整性检查。
数据安全性
GBase 8s通过数据存储加密保证数据存储的安全性。GBase 8s的数据存储加密采用库内加密的方式,在数据库管理系统的内核存储引擎级进行数据加解密处理,从而对于合法用户来讲是完全透明的,因此也称为透明加密。
现有存储加密包括如下技术特点:
- 透明加密:存储加密由数据库内核在后端安全存储引擎中实现,对于合法用户来说完全透明,不影响合法数据库用户的前端操作,不存在功能损失;
- 硬件加密:通过集成国家密码管理局审批的密码卡,为基于共享存储的数据库集群提供高强度的加密函数及有效的密钥管理;
- PCI/PCI-E标准接口;
- 对称密码算法SM1;
- 加解密运算速度快(大于1000Mbps)。
- 完善的密钥保护:采用多级密钥管理机制,主密钥存储在安全硬件之内,正常运行情况下密钥不以明文方式出现在加密卡外;
- 加密数据无膨胀:加密后密文与加密前明文的大小相同,防止了密文膨胀的问题。
由于采用了较为合理的优化机制,GBase 8s存储加密功能的综合性能衰减低于15%。
客体重用
客体重用是指在计算机信息系统可信计算基的空闲存储客体空间中,对客体初始指定、分配或再分配一个主体之前,撤销该客体所含信息的所有授权。当主体获得对一个已被释放的客体的访问权时,当前主体不能获得原主体活动所产生的任何信息。客体重用功能可以防止重要的客体介质在重新分配给其他主体的时候产生信息泄漏。
由GBase 8s系统自动实现,系统在每次对资源作分配后,将自动清除资源中包含的残留信息。这些资源包括内存单元及磁盘区域,从而避免了客体重用的安全隐患。
内存单元:内存中不需要的信息将会被清零并删除,可保证不需要的资源信息不会残留到内存中。
磁盘区域:残留到磁盘区域的信息当不使用时将会自动删除,例如在一个会话期间,在磁盘上创建的临时表当会话关闭时,将会自动把残留在磁盘上的临时表文件给删除。
安全审计
GBase 8s 提供安全审计机制,对用户在数据库中的活动事件进行记录,该活动可能是修改或展示数据,或者是审计和安全策略的配置等。通过对这些活动的记录就可对可疑的活动进行分析。
为便于独立审计,设有专门的审计员进行审计管理,审计员可利用专门的审计操作界面对审计事件进行选择,查阅有关审计数据,处理报警信号。
用户权限三权分立
传统商业数据库通常定义一个超级管理员,该管理员具有至高无上的权力,可以操作任何的数据库功能,管理任何的数据,这便造成了特权用户缺少权力约束的安全隐患,这种系统机制存在的安全漏洞很难从应用的角度去规避。
GBase 8s安全数据管理系统分权的基本安全思想是最小特权的授权原则,对一个主体(用户)仅赋予完成预定任务所必需的最小权限。基于该安全策略,把数据库管理系统的用户由原来单一的超级数据库管理员变成现在的三类角色:安全管理员、审计管理员、数据管理员。它们分别承担着不同的职责,并且期望它们三者之一应不能涉及其他两者的权力范围,从而实现整个数据库系统的分权管理,即所谓的三权分立原则。
三类用户的具体职责分配大致如下:安全管理员主要负责完成系统的安全(标记)管理功能,审计管理员负责完成系统的审计功能,数据管理员主要负责完成自主访问控制(DAC)、系统维护管理等功能。这三类管理员用户之间分工明确,各司其职,既相互制约又相互配合,共同实现数据库的安全管理功能。