首页 理论教育 多级安全数据库产品介绍

多级安全数据库产品介绍

时间:2023-06-09 理论教育 版权反馈
【摘要】:系统拥有16个层次化的安全标签,也拥有64个非层次化的安全标签。由于提供的安全功能很多,这里仅重点介绍用户身份认证及鉴别、DAC、MAC、客体重用、审计、虚拟私有数据库和标签安全。

多级安全数据库产品介绍

1.Sybase Secure SQL Server

Sybase Secure SQL Server是Sybase公司的安全数据库系统产品,也是第一个开发出来的多级安全数据库管理系统服务器。它是一个基于可信主体的数据库管理系统,同时采用了C/S结构。最初发布时,结构的客户部分可以在Ultrix、SE/VMS和SUNMLS上运行,服务器部分只能在Ultrix上运行。Ultrix不是一个可信产品,因而无法提供可信DBMS所要求的可信操作系统环境。但是Sybase公司已经探讨过将服务转向DEC RISC CMW、SUN CMW和SeVMS。

Sybase Secure SQL Server可以分为两类:TCB的执行域(或称为TCB域)及非可信软件的执行域(或称为用户域)。TCB域又可以进一步划分为I/O域和策略域,其中I/O域处理系统的底层功能,策略域用于实现安全策略索引/页管理。为减少绕过和破坏保护机制的行为带来的风险,Sybase Secure SQL Server为每个域提供各自的硬件域,用于区别其他域的硬件。Sybase Secure SQL Server还提供了实现物理完整性的保护机制。为了防止故意错误,采用循环冗余校验机制作为数据页的一个完整性域。Sybase Secure SQL Server与网络加密装置协同确保数据在不可信的网络上进行端到端的安全传输。

Secure Sybase为系统的每一个元组提供一个安全标签,并借助这些标签执行MAC。系统拥有16个层次化的安全标签,也拥有64个非层次化的安全标签。Sybase采用关系存储元数据,因此,Sybase可以标识元数据关系中的每一行。

Secure Sybase可以对表的创建、选择、删除、更新和插入操作提供DAC,但是不支持对视图的DAC操作。识别和授权功能由数据库管理系统负责处理,与底层的操作系统无关,根据需要,识别和授权也可以由客户机自行处理。Secure Sybase支持审计,包括登录、退出、各种请求、破坏完整性的审计。Secure Sybase服务器也通过支持安全人员和系统管理员的角色,提供可信的工具管理。

Secure Sybase支持多实例的插入、更新和删除。多实例在删除和更新的时候可能会关闭,但不会在插入的时候关闭。Secure Sybase允许将关系的全部内容降级。用户可以在较低等级创建空的关系,然后原有的关系内容可以复制到新的关系中。并发控制通过系统中的表级锁、页面级锁处理。

在实际工作过程中,Securc Sybase将客体分为基本客体和次要客体。基本客体对应表的列,代表了可以赋予标签的最小客体。次要客体对应表和数据库。次要客体涉及自主访问控制列表(ACL),其中定义了授权访问的用户(组)的标识和允许进行的操作(插入、删除、更新和选择)。基本客体的强制访问控制标签和次要客体的访问控制列表存储在数据字典里,只能由TCB可信软件访问。

Secure Sybase的主体是利用Sybase Transact-SQL查询语言进行数据库查询的用户(组)。一个用户可以指派一个特殊的角色。在执行连接操作时,不同的角色可以使用不同类型的操作。用户通过既定的服务器协议把连接请求传给服务器。当接收到连接请求后,登录过程执行用户认证步骤,确认用户的角色及用户安全等级的有效性。对于允许的每一个连接,TCB都会产生一个非可信的进程,以连接时授予用户的安全等级运行,并把控制转交给命令解释器,然后进入循环的可用状态,等待新的命令。

用户的操作是Sybase Transact-SQL请求,有插入、删除、更新和选择等。非可信用户进程的命令解释器负责接收操作命令。接着,SQL解析器和SQL编译器把用户的请求转化为二进制指令组成的精简集合,转交可信的TCB软件执行,并且在执行过程中检查用户的安全特性。精简集合又称为过程,包括用户请求所涉及的表、索引和各种操作信息。过程由TCB来执行,目的是实现MAC和DAC控制。TCB可信软件负责执行数据的访问控制。用户请求执行一个过程或使用一个视图时,需要拥有访问此过程和视图所涉及的所有表的自主授权。如果自主访问控制没有问题,那么这些表被提交给进一步的强制访问控制。

不需要编译的可信操作可以直接送到TCB中执行,但只能通过适合的可信路径来执行,就是通过一个终端和Sybase Secure SQL Server的TCB之间的一个连接。可信路径通常在为安全管理员和可信用户提供的可信接口中。例如,安全管理员通过合适的接口执行数据库安全管理、角色管理、审计管理,系统管理员存储数据、数据库属主修改数据库属性/转储数据库日志、表的属主修改访问授权/访问模式等。

2.Trusted Oracle

Oracle公司将Trusted Oracle 7作为多级安全数据库产品,除了提供Oracle 7所有的功能外,还增加了MAC和标签功能。Trusted Oracle7的release 7.2版本包括了Oracle 7 release 7.2所有的安全功能,即包括用于实现最小特权的粒度权限、权限管理的用户可配置角色、灵活审计、用于增强访问控制和警告处理的存储过程和触发器、元组级锁、鲁棒的复制及恢复机制、全分布式数据库通信、使用外部鉴别机制等。另外,Trusted Oracle7也提供了一套完整的多级安全功能,包括灵活的标签管理和策略执行、多级安全结构、信息流动和散播控制。与SeaView原型系统一样,Trusted Oracle7也是基于内核结构,也就是Hinke-Schaefer方式。当然,Oracle也支持采用可信主体方式开发MLS/DBMS。

Trusted Oracle早期版本的目标是能在SE/VMS和HP/UX操作系统上运行。Trusted Oracle达到了TCSEC的B1级。由于提供的安全功能很多,这里仅重点介绍用户身份认证及鉴别、DAC、MAC、客体重用、审计、虚拟私有数据库和标签安全。

Trusted Oracle同时支持数据库认证和操作系统认证。采用数据库认证方式时,要求每一个数据库用户都拥有合法的数据库用户名和密码,连接数据库时输入并进行认证。采用操作系统认证时,不需要显示提供数据库用户名和密码,只需将操作系统中用户的用户名传给数据库服务器,由数据库服务器在完成连接之前鉴别用户并进行授权。这两种认证机制可以根据用户系统需求自行确定。(www.xing528.com)

DAC就是根据用户持有的权限访问客体,系统及客体的属主可以自主地把有关权限授予用户。Trusted Oracle的视图支持DAC。借助视图,可以使用户获得完成工作时必需的数据,但无需获取访问构成视图的表的权限。同样,通过存储过程、函数和包,用户可以获取需要的数据但无需持有所有表、视图的访问权限。实际上,存储过程和函数是存储在数据库的SQL和PL/SQL命令块,包就是一起存储和管理的多个存储过程和函数。DAC可以通过角色定义和实现,管理非常简便。

Trusted Oracle系统支持元组级的MAC。在Hinke-Schaefer方案中,就是通过把元组存为底层可信操作系统的存储对象而实现的。系统中的所有数据都被赋予一个标签,标识客体的敏感程度,在Trusted Oracle底层多级安全操作系统中有效的标签也可以用于Trusted Oracle数据库。这种方式容易保证系统各部分MAC策略的一致性,并且便于进行系统维护。Trusted Oracle使用ROWLABEL字段记录标签,该字段在创建表时由系统自动产生。在数据库中,每个数据和索引行都拥有标签,数据库标签与操作系统标签的存储尺寸不相同。

Trusted Oracle比其他所有MLS/DBMS都灵活一点的是,其为MAC提供了两种模式:操作系统MAC模式和DBMS MAC模式。在操作系统MAC模式中,Trusted Oracle依赖操作系统提供强制访问控制。数据库服务器将数据库信息存储为由操作系统管理的单一等级文件,具有相同的敏感等级,操作系统则在文件等级实现强制访问控制。此时,数据库服务器不需要从底层操作系统获取任何权限,因此完全受底层操作系统MAC的约束。在DBMS MAC模式中,Trusted Oracle利用存储在每一行的标签来实现底层操作系统提供的强制访问控制策略。在确定用户能否访问特殊行时,Trusted Oracle向底层操作系统请求策略决定,然后在数据库对象上执行相关决定。此时,Trusted Oracle作为一个可信主体运行,对应进程具有绕开底层操作系统MAC的权限,通常认为可信主体的这种权限不会破坏整个系统的安全策略。

在实际使用中,也可以将操作系统MAC模式和DBMS MAC模式结合起来使用。当安全标准要求高于B1/E3时,这种方式非常有效。混合模式需要很多标签,将系统分为高敏感、低敏感等不同部分。最不敏感(或者最敏感)的信息存储在操作系统MAC数据库,其他信息存储在DBMS MAC数据库,两个逻辑部分建立并发连接,两者均支持MAC,但是,可以进一步隔离最不敏感(或者最敏感)的信息与一般敏感信息及其用户。

客体重用指的是当数据删除后,系统必须保证不会发生非法访问。Trusted Oracle 7保证客体重用的方法是只有当所有残余数据记录都被清除后,才可以为可信客体指派空间使用。

Oracle 7和Trusted Oracle 7都为用户提供了审计功能,负责记录用户的行为。在实际使用中,可以根据用户、数据库行为、访问的客体和系统权限来设计审计策略,还可以根据行为成功与否筛选审计条目。审计记录具有安全标签,用来记录被审计行为的安全等级,防止未授权用户读取审计信息。审计信息通过触发器机制实现,可以存储在数据库或操作系统的审计记录中。

从Oracle 8i开始,Oracle引入了虚拟私有数据库,提供可编程行级安全和安全应用程序上下文。虚拟私有数据库允许开发人员或DBA将安全策略附加到数据库表、视图和同义词。安全策略采用PL/SQL语句编写,当SQL语句访问与策略有关的客体时激活。安全策略和安全应用程序上下文可以同时使用。在企业范围内采用虚拟私有数据库能够降低部署应用程序的代价:安全可以在数据库范围内重用而不是局限于每个应用程序。虚拟私有数据库适用于宿主型、基于Web的应用程序。但是,虚拟私有数据库存在应用程序旁路(Application Bypass)问题,也就是说,用户不是通过应用程序而是使用数据库工具访问数据的。由于安全局限于单一的可信路径,没有与数据本身绑定,应用程序旁路问题可能降低安全性。虚拟私有数据库要求数据库具有策略函数,根据系统附加在SQL语句中的谓词返回访问条件,动态修改用户对数据的访问。安全应用程序上下文允许使用应用程序认为重要的任何虚拟属性来确定访问条件,包括组织特性、代价、审计号码、形势等。虚拟私有数据库可以作用于选定的字段,也可以采用可选择性的列伪装机制。

标签安全从Oracle 8i之后开始引入,用来代替Trusted Oracle。标签安全使用敏感标签,提供安全引擎和数据字典以管理数据的访问。通过少量编程甚至无需编程,标签安全就可以实现复杂的行级安全。敏感标签的目的是确定用户查看和修改数据的能力,其控制性甚至超过了传统的对象级权限,可以减少额外视图的个数。Oracle标签安全的标识包括三个组件:单层次等级、一个或多个水平分隔与门类、一个或多个组。等级(Level)是一个层次化组件,表明数据的敏感性。用户可以根据需要设计数据敏感等级的层数。分隔(Compartment)组件也称为门类,是非层次化的,主要用来隔离数据。Oracle最多支持9999个分隔。组是一个用来记录属组关系的组件,可以分层次使用。

Oracle可以通过标签安全在单个数据库中支持多个策略。策略就是具有名称的多个标签、用户标签授权、安全影响范围和用户访问权限,其基本构成包括最大及最小敏感等级、零个或多个分隔、零个或多个组、各分隔或组上的访问权限。Oracle的安全结构如图5-6所示。

978-7-111-39843-1-Chapter05-34.jpg

图5-6O racle的安全结构

Trusted Oracle是多级安全数据库管理系统仍保留的产品之一,当然,在每个版本中都有一些提高,如Oracle 10g、Oracle 11i等。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈