购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

第2章
CTF竞赛基础

CTF竞赛是一门综合性较强的比赛,涉及的层面和知识点比较多。CTF选手既需要掌握计算机网络、数据库理论,还需要熟悉操作系统、多种编程语言等。CTF竞赛是高强度的脑力运动,一般要持续十几个小时,甚至更长的时间,因此CTF选手还需要有充沛的体力和一定的耐力。 QJ5hIm6LRicUpEH02q7Gdh8PMqJ5aU9hQoLF4A1pfRHyJQ6i6Rk+GML37hlU2X8l



2.1 计算机网络基础

计算机网络是利用通信设备和线路将地理位置不同的、功能独立的两个或多个计算机系统连接起来,以功能完善的网络软件实现网络的硬件、软件及资源共享和信息传递的系统。

2.1.1 计算机网络的组成

计算机网络主要包括网络硬件和网络软件两大部分。

网络硬件是计算机网络系统的物质基础,包括网络服务器、工作站、传输介质和网络互连设备等。不同的计算机网络在硬件方面差别比较大。随着计算机技术和网络技术的发展,网络硬件日渐多样化,其功能更强大,也更复杂。

网络功能是由网络软件来实现的。在网络系统中,网络上的每个用户都可以享用系统中的各种资源,为此系统必须对用户行为进行控制。系统需要通过软件工具对网络资源进行全面的管理、调度和分配,并采取一系列安全保密措施,以防止用户对数据和信息的不合理访问,防止数据和信息被破坏和丢失,造成系统混乱。网络软件包括网络协议软件、网络通信软件、网络操作系统、网络管理软件以及网络应用软件等。

2.1.2 TCP/IP

TCP/IP是ARPANET实验的产物。1981年推出的IP(Internet Protocol,互联网协议)和早在1974年问世的TCP(Transmission Control Protocol,传输控制协议)合称为TCP/IP。这两个协议定义了一种在计算机网络间传送数据包的方法。TCP/IP是计算机网络中用得最为广泛的体系结构之一,是网络界的实际工业标准协议。TCP/IP参考模型与OSI参考模型的对应关系,如图2-1所示。

图2-1 TCP/IP参考模型与OSI参考模型的对应关系

TCP/IP簇被设计成四层模型,包括应用层、传输层、网络层和网络接口层。

1.网络接口层

TCP/IP的网络接口层对应OSI参考模型中的数据链路层和物理层。网络接口层定义与不同的网络进行连接的接口,负责把IP数据包发送到网络传输介质上,以及从网络传输介质上接收数据并解封装,取出数据包交给上一层——网络层。

2.网络层

网络层的主要功能是将数据封装成数据包,并从源主机发送到目的主机,解决如何进行数据包的路由选择、阻塞控制、网络互连等问题。

网络层的核心协议是IP,另外还有一些辅助协议,如ARP、RARP、ICMP、IGMP等。

IP负责为因特网上的每一台计算机规定一个地址,以便数据包在网络间寻址,它提供无连接的服务。任何数据在传送之前无须先建立一条穿过网络到达目的地的通路,每个数据包都可以经不同的通路转发至同一目的地。IP既不保证传输的可靠性,也不保证数据包按正确的顺序到达目的地,甚至不能保证数据包能够到达目的地,它仅提供“尽力而为”的服务,通过这种方式来保证数据包的传输效率。

IP用于对IP数据报的分割和封装。封装IP数据报时,在数据包前加上源主机的IP地址和目的主机的IP地址及其他信息。

ARP(Address Resolution Protocol,地址解析协议)负责将IP地址解析为主机的物理地址,以便按该地址发送和接收数据。

RARP(Reverse Address Resolution Protocol,反向地址解析协议)负责将物理地址解析成IP地址,这个协议主要是针对无盘工作站等获取IP地址而设计的。

ICMP(Internet Control Message Protocol,互联网控制报文协议)用于在主机和路由器之间传递控制消息,指出网络通不通、主机是否可达、路由是否可用等网络本身的消息及数据包传送错误的信息。

在网络中传输数据通常为单播方式,即一台主机发送而另一台主机接收,但有时也可以是一台主机发送、多台主机接收的多播方式,如视频会议、共享白板式多媒体应用等。IGMP(Internet Group Management Protocol,互联网组管理协议)负责对IP多播组进行管理,包括多播组成员的加入和删除等。

3.传输层

TCP/IP的传输层相当于OSI参考模型中的传输层,负责在源主机和目的主机的应用进程之间提供端到端的数据传输服务,如数据分段、数据确认、丢失和重传等。

TCP/IP结构包含两种传输层协议:传输控制协议(TCP)和用户数据报协议(UDP)。这两种协议的功能不同,对应的应用也不同。

TCP是一种可靠的、面向连接的、端对端的传输层协议,由TCP提供的连接称为虚连接。在发送方,TCP将用户提交的字节流分割成若干数据段并传递给网络层进行打包发送;在接收方,TCP将所接收的数据包重新装配并交付给接收用户,TCP负责发现传输导致的问题,并通过序列确认及包重发机制来解决IP传输的错误,直到所有数据安全正确地传输到目的地。

UDP是一种不可靠的、面向无连接的传输层协议。使用UDP发送报文之后,无法得知其是否安全、完整地到达。UDP将可靠性问题交给应用程序解决。UDP应用于那些对可靠性要求不高,但要求网络延迟较小的场合,如语音和视频数据的传输。

为了识别传输层之上的网络应用进程,传输层引入了端口的概念。要进行网络通信的进程向系统提出申请,系统返回一个唯一的端口号,将进程与端口号联系在一起,这一过程称为绑定。传输层使用其报文头中的端口号,把收到的数据送到不同的应用进程。

端口是一种软件结构,包括一些数据结构和I/O缓冲区,端口号的范围为0~65535,有些端口常被黑客、木马病毒利用。

4.应用层

TCP/IP的应用层综合了OSI参考模型中的应用层、表示层及会话层的功能。

应用层为用户的应用程序提供了访问网络服务的能力并定义了不同主机上的应用程序之间交换用户数据的一系列协议。由于不同的网络应用对网络服务的需求各不相同,因此应用层协议非常丰富,并且不断有新的协议加入。TCP/IP协议簇中的一些常用应用层协议如表2-1所示。

表2-1 TCP/IP常用应用层协议

TCP/IP可以为各式各样的应用提供服务,同时也允许IP在各式各样的网络构成的因特网上运行。

2.1.3 IP地址

1.IP地址概述

为了实现因特网上主机之间的通信,需要给连接在因特网上的每个主机(或路由器)分配一个在世界范围内唯一的标识符。IP地址由互联网名称与数字地址分配机构(Internet Corporation for Assigned Names and Numbers,ICANN)进行分配。IPv4采用4字节共32位的二进制数标识一台主机。IPv4面临的最大问题是网络地址资源不足,严重制约了互联网的应用与和发展。IPv6由互联网工程任务组(Internet Engineering Task Force,IETF)设计,是用于替代IPv4的IP,其地址数量号称能够为全世界的每一粒沙子分配一个地址。

IPv6的地址长度是128位,采用十六进制表示。IPv6有3种表示方法。

(1)冒分十六进制表示法

格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16位,用十六进制表示。例如:ABCD:EF01:2345:6789:ABCD:EF01:2345:6789。

在这种表示法中,每个X的前导0可以省略。例如:2022:0ABC:0001:0023:0000:0A00:A00B:C000可以记为2022:ABC:1:23:0:A00:A00B:C000。

(2)0位压缩表示法

在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为了保证地址解析的唯一性,地址中“::”只能出现一次,例如:AA01:0:0:0:0:0:0:BC01可以记为AA01::BC01,而0:0:0:0:0:0:0:0:1可以记为::1。

(3)内嵌IPv4地址表示法

为了实现IPv4和IPv6的互通,IPv4地址需要嵌入到IPv6地址中,此时地址可以表示为:X:X:X:X:X:X:d:d:d:d,前96位采用冒分十六进制表示,而最后32位地址仍使用IPv4的点分十进制表示,::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子。注意在前96位中,压缩0位的方法依旧适用。

2.报文内容

IPv6报文的整体结构分为IPv6报头、扩展头和上层协议数据3部分。

IPv6报头是必选报文头部,长度固定为40字节,包含该报文的基本信息。IPv6的报文头部结构,如图2-2所示。

扩展头是可选报头。可能存在0个、1个或多个扩展头。IPv6协议通过扩展头实现各种丰富的功能。使用扩展头时,将在IPv6报文的下一报头字段表明首个扩展头的类型,再根据该类型对扩展头进行读取与处理。每个扩展头同样包含下一报头字段,若接下来有其他扩展头,则在该字段中继续标明接下来的扩展头的类型,从而达到添加连续多个扩展头的目的。在最后一个扩展头的下一报头字段中,标明该报文上层协议的类型,用以读取上层协议数据。图2-3为报文扩展头使用的示例。

图2-2 IPv6报文头部结构

图2-3 IPv6报文扩展头使用示例

上层协议数据是该IPv6报文携带的上层数据,可能是ICMPv6报文、TCP报文、UDP报文或其他报文。

2.1.4 路由基础

在互连的网络中,具有相同网络号的主机之间可以直接进行通信。但是,网络号不同的主机之间不能直接通信。两个网络之间的通信必须通过路由器转发才能实现。

1.路由器的特征

路由器是在网络层上实现多个网络互连的设备。路由器利用网络层定义的“逻辑”地址(即IP地址)来区别不同的网络,实现网络的互连和隔离,保持各网络的独立性。路由器只转发IP数据报,不转发广播消息,而把广播消息限制在各自的网络内部。路由器具有以下特征。

1)路由器在网络层工作。当它接收到一个数据包后,先检查其中的IP地址,如果目标地址和源地址的网络号相同,就不理会该数据包;如果这两个地址不同,就将该数据包转发出去。

2)路由器具有选择路径的能力。在互联网中,从一个节点到另一个节点可能有许多路径,选择通畅快捷的近路,会大大提高通信速度、减轻网络系统的通信负荷、节约网络系统资源。这是集线器和二层交换机所不具备的性能。

3)路由器能够连接不同类型的局域网和广域网。网络类型不同,所传送数据的单元——帧的格式和大小就可能不同。数据从一种类型的网络传输到另一种类型的网络时,必须进行帧格式转换。

2.路由表

如何选择最佳传输路径(即路由算法)是路由器的关键问题。路由器的各种传输路径的相关数据存放在路由表(routing table)中。路由表中包含的信息决定了数据转发的策略。路由表中的信息包括网络的标志信息、经过路由器的个数和下一个路由器的地址等内容。路由表可以由系统管理员固定设置,也可以由系统动态调整。

(1)静态路由表

由系统管理员事先固定设置的路由表称为静态路由表,一般在安装系统时根据网络的配置情况设定,不随以后网络结构的改变而改变。

(2)动态路由表

动态路由表是路由器根据路由选择协议(routing protocol)提供的功能,自动学习和记忆网络运行情况而自动调整的路由表,可自动计算数据传输的最佳路径。

路由器通常依靠所建立及维护的路由表来决定如何转发。通常,路由器中转路由表的每一项至少有这样的信息:目标地址、网络掩码、下一跳地址及距离(metric)。

距离是路由算法用以确定到达目的地的最佳路径的计量标准。常用的距离为经由的最小路由器数(跳数)。

3.路由器工作过程

路由器有多个端口,不同的端口连接不同的网络,各网络中的主机通过与自己网络相连接的路由器端口,将待发送的数据帧发送到路由器上。

路由器转发IP数据报时,根据IP数据报中目的IP地址的网络号查找路由表,从而选择合适的端口,把IP数据报发送出去。

路由器在收到一个数据帧时,在网络层根据子网掩码提取地址中的网络号,使用IP地址中的网络号来查找路由表。

如果目的IP地址的网络号与源IP地址的网络号一致,则该路由器将此数据帧丢弃。

如果某端口所连接的是目的网络,就直接把数据报通过端口送到该网络上;否则,选择缺省网关,传送不知道往哪送的IP数据报。

经过这样逐级传送,可能有一部分IP数据报被送到目的地,也可能有一部分IP数据报被网络丢弃。

如图2-4所示,4个网络(网1~网4)通过3个路由器(R1~R3)连接在一起(注意:每一个路由器都有两个不同的IP地址)。设路由器R2的路由表如表2-2所示。

图2-4 路由器的应用

由于R2同时连接在网2和网3上,因此只要目的主机在网2或网3中,都可以由路由器R2通过接口0或1直接交付数据报,距离为1。

若目的主机在网1中,则下一跳路由器应为R1,其IP地址为20.0.0.7,距离为2。由于路由器R2和R1同时连接在网2上,因此路由器R2经网2将数据报转发到路由器R1。

若目的站点在网4中,则路由器R2应把数据报经网3转发给IP地址为30.0.0.1的路由器R3,距离为2。

表2-2 路由器R2的路由表

注意:

1)在同一个局域网中,主机和路由器的IP地址中的网络号是相同的;

2)每个路由器具有两个或两个以上的IP地址,即路由器的每一个接口都有一个不同网络号的IP地址;

3)路由器可以采用默认路由。此时,通过下一跳路由器的IP地址可以唯一地确定转发的端口,减少了路由表所占用的空间,节省了搜索路由表所用的时间;

4)其距离以驿站计,与信宿网络直接相连的路由器规定为1个驿站,相隔1个路由器为2个驿站,以此类推。

2.1.5 文件传输协议

文件传输协议(File Transfer Protocol,FTP)是一个应用程序(Application),主要用于Internet上文件的双向传输控制。

不同的操作系统使用的FTP应用程序不尽相同,而所有这些应用程序传输文件时都遵守同一种协议。FTP用户经常遇到两个概念:“下载”(Download)和“上传”(Upload)。“下载”文件是指从远程主机拷贝文件至自己的计算机上;“上传”文件是指将文件从自己的计算机中拷贝至远程主机上。用Internet语言来说,用户可通过客户机程序向(从)远程主机上传(下载)文件。

与大多数Internet服务一样,FTP也是一个客户机/服务器系统。支持FTP的服务器称为FTP服务器。用户通过一个支持FTP的客户机程序,连接到远程主机上的FTP服务器程序。用户通过客户机程序向服务器程序发出命令,服务器程序执行用户所发出的命令,并将执行的结果返回到客户机。比如说,用户发出一条命令,要求服务器向用户传送某个文件的一份拷贝,服务器会响应这条命令,将指定文件送至用户的机器上。客户机程序代表用户接收这个文件,将其存放在用户目录中。

使用FTP时必须首先登录,在远程主机上获得相应的权限以后,方可“下载”或“上传”文件。也就是说,要向一台计算机传送文件,就必须具有这一台计算机的相应授权。换言之,除非有用户ID和口令,否则不被允许传送文件。这种情况违背了Internet的开放性,Internet上的众多FTP主机不可能要求每个用户在每一台主机上都拥有账号,为解决这个问题,产生了匿名FTP机制。

如果系统管理员建立了匿名用户ID“anonymous”,那么Internet上的任何人在任何地方都可以使用该匿名ID连接到远程主机上,并从其下载文件,而无须成为其注册用户。通过FTP程序连接匿名FTP主机的方式同连接普通FTP主机的方式差不多,只是在要求提供用户标识ID时必须输入anonymous,该用户ID的口令可以是任意的字符串。习惯上,用自己的E-mail地址作为口令,系统维护程序能够记录谁在存取这些文件。

值得注意的是,匿名FTP并不适用于Internet上的所有主机,它只适用于那些提供了匿名服务的主机。当远程主机提供匿名FTP服务时,会指定某些目录向公众开放,允许匿名存取,系统中的其余目录则处于隐匿状态。作为一种安全措施,大多数匿名FTP主机都允许用户从其下载文件,而不允许用户向其上传文件,也就是说,用户可将匿名FTP主机上的所有文件全部拷贝到自己的机器上,但不能将自己机器上的任何一个文件拷贝至匿名FTP主机上。即使有些匿名FTP主机确实允许用户上传文件,用户也只能将文件上传至某一指定上传目录中。随后,系统管理员会去检查这些文件,他会将这些文件移至另一个公共下载目录中,供其他用户下载,利用这种方式,远程主机的用户得到了保护,避免了有人上传有问题的文件,如带病毒的文件。

在FTP服务器中,我们往往会给不同的部门或者某个特定的用户设置一个账户。但是,这个账户有个特点,就是其只能够访问自己的主目录。服务器通过这种方式来保障FTP服务上其他文件的安全性。我们称这类账户为Guest用户。拥有这类账户的用户,只能够访问其主目录下的文件,而不得访问主目录以外的文件。

TCP/IP中,FTP标准命令TCP端口号为21,Port方式数据端口为20。FTP的任务是从一台计算机将文件传送到另一台计算机,不受操作系统的限制。

需要进行远程文件传输的计算机必须安装和运行FTP客户程序。在Windows操作系统的安装过程中,通常都安装了TCP/IP软件,其中就包含了FTP客户程序,该程序是字符界面而不是图形界面。

启动FTP客户程序来进行工作的另一途径是使用IE浏览器,用户只需要在IE地址栏中输入如下格式的URL地址:

在cmd命令行下也可以用上述方法连接,通过put命令和get命令达到上传和下载的目的,通过ls命令列出目录。除了上述方法外还可以在cmd下输入“ftp”并回车,然后输入“open IP”来建立一个连接,此方法还适用于Linux下连接FTP服务器。 O6X9Fn8AgKzfXE8Qs5IVYoz0xkoja4JZZc/42swEaDrrqPio3MS1LjgxGnm23GXM



2.2 数据库安全基础

在人类社会的发展中,数据是一种极为重要的资源。作为计算机学科的一项重要技术,数据库的安全问题从未离开人们的视野,一直引起研究人员、开发人员、管理人员和客户的普遍关注。自1970年E. F. Codd提出关系数据模型开始,解决数据库各种安全问题的模型、方案、策略、原型系统、产品不断问世演化,实际上已经形成了一个重要而独特的安全领域——它既属于信息安全,又区别于传统的信息安全概念;既与数据库密切有关,又与传统数据库研究问题不同——数据库安全。

2.2.1 数据库安全概述

数据库安全问题的研究始于20世纪70年代。当时,IBM Almaden研究中心的System R项目重点研究了关系数据库系统的访问控制。在此期间,人们逐渐形成并认可了多级安全数据库的概念。1982年美国空军的暑期研讨班的召开促进了多级安全数据库系统的研制,启动了SeaView、LDV等一系列早期探索式原型系统,研究结果为后来的Oracle、Sybase、Informix等多级安全数据库产品广为借鉴采用。

20世纪80年代中期以后,人们发现数据库安全不仅仅是访问控制问题,还存在传统技术无法单独解决的一类新安全问题:推理通道。与此同时,计算机其他领域的研究应用不断蓬勃发展,推动人们逐步扩展数据库安全的外延与内涵,例如,与面向对象技术、Web技术、多媒体技术、网格技术、peer-to-peer技术、数据挖掘技术、无线通信技术等的融合。在与新技术、新应用密切结合的过程中,数据库安全也摆脱了数据库系统的单一局限,呈现出更为宽广的含义,涵盖了信息安全、数据服务质量等多个要素。

数据库安全发展演化的历程反映了人们发现问题、解决问题的过程,形成数据库安全原理与应用的主要线索,包括数据库安全的语义、访问控制、安全策略、多级安全数据库管理系统的设计与实现、推理通道的检测和消除、数据挖掘安全、隐私保护、数据库应用系统安全、SQL注入攻击、数据库木马、数据品质、加密查询、数据资产版权、数据库可存活性等内容。

2.2.2 数据库安全语义

数据库安全语义是在处理具体数据库安全问题时必须澄清的一个事项。不同背景的人们往往看到不同层次、不同深度的问题。如果无法准确了解数据库安全语义,那么在解决数据库安全问题时很有可能陷入盲人摸象的被动之中。

数据库安全,是指以保护数据库系统、数据库服务器和数据库中的数据、应用、存储,以及相关网络连接为目的,防止数据库系统机器数据泄露、遭到篡改或破坏的安全技术。

数据库安全技术将数据库作为核心保护对象,这与传统的网络安全防护体系不同。数据库安全技术更加注重从客户内部的角度进行安全防护。其内涵包括了保密性、完整性和可用性等安全属性。

1)保密性:不允许未经授权的用户存取信息。

2)完整性:只允许被授权的用户修改数据。

3)可用性:不应拒绝已授权用户对数据进行存取。

访问控制是数据库安全最早解决的问题之一。访问控制属于数据库安全的哪种语义?显然,访问控制是实现保密性的重要机制,也是实现完整性的机制。这时,人们对于数据库安全的理解又发生了转移和扩展。如果人们继续审视,可能还会发现,加密技术也是保密性的重要机制,可以加强数据库传输、数据库存储、数据库外包服务的安全性,加密过程可以采用XML加密标准,使用Java提供的安全对象……这样看来,数据库安全语义十分丰富。当我们用不同视角观察数据库安全问题时,会触及数据库安全语义的方方面面。

实际上,人们在发展安全技术的同时,也注意从系统工程、软件工程、质量工程、标准化等角度归纳数据库安全问题的共同特性,形成了丰富的安全语义。例如,国际标准化组织于1989年提出了OSI安全体系,定义了安全服务、安全机制、安全管理、安全威胁等内容。GB/T 9387.2定义了五大类安全防护措施。Web Services为Web应用集成和基于SOA的架构提出了16种左右的安全服务。拥有600多个遍及全球成员的OMG组织制定了一组适用于分布式对象的安全服务,提供了标准函数接口……因此,数据库安全的语义十分庞杂,我们非常有必要在这样一个共存交叉的知识概念中构造一个完整的体系,纲举目张地把握住数据库安全语义的实质内容。

当人们从正面理解数据库安全语义并实现安全保护功能的同时,攻击者始终在寻找数据库安全的漏洞,酝酿狡猾的数据库安全攻击模式,制造各种数据库安全威胁。在计算机领域,人们一开始的假设是“计算机用户是友好的”,可是现实告诉人们,这只是一种一厢情愿的想法,计算机用户并不都是友好的。因此,在21世纪,人们更加深入地研究、探讨了威胁问题。研究人员提出了各种威胁分析技术,Microsoft推出了威胁建模工具,软件开发过程开始引入攻击模式……可见,从负面效应分析数据库安全语义也是必要的,为我们诊断、处理、消除数据库安全隐患,提高数据库存活性奠定了基础。

2.2.3 访问控制策略与执行

最早的数据库安全研究是从访问控制模型开始的。数据库系统采用的访问控制模型不同于操作系统或文件系统的访问控制模型。首先,数据库系统的访问控制模型需要采用逻辑模型定义,授权操作的对象可以是关系、字段、元组,而关系、字段、元组本身符合关系数据模型的各种逻辑运算。其次,访问控制客体不是基于名称或引用的访问控制,而是基于内容的访问控制,控制决策与数据项的内容密切相关。因此,数据库的访问控制与SQL密切相关。

IBM的System R原型系统对于自主访问控制具有很大贡献,影响了后来不少的商业化数据库产品。这个原型系统提出并实现了分散授权管理、动态授权与撤销、采用视图实现基于内容的授权。这些机制甚至影响了SQL标准。在此基础上,人们还研究了肯定授权和否定授权、基于角色和任务的授权、临时授权和上下文敏感授权。

自主访问控制的缺陷是无法预期和控制权限的传播与扩散,因此,容易受到类似数据库木马的攻击。数据库木马是嵌入应用或者植入系统的恶意代码(例如存储过程),目的在于非法获取传递数据、控制或监控系统状态。高级的数据库木马可以利用隐蔽通道传递信息,不需要破坏系统现有的访问控制策略,巧妙通过系统锁、通信原语、异常、文件存在性、并发控制等机制构造一组表面上看起来合法的操作序列,将高安全等级数据传送到低等级用户。

强制访问策略起初应用于军事系统,通过主体、客体的安全分级,建立一种严格制定、不允许随意修改的读写规则,从而控制信息的保密性、完整性走向。这种机制后来被广泛应用于数据库系统,形成了多级安全数据库的基本模型,但强制访问控制引发了更多的隐蔽通道和推理通道。为了保持关系数据模型的基本特性,人们引入了多实例机制,即不同安全等级的实例中允许存在主码值相同的元组。

20世纪90年代后,人们开始关注基于角色的访问控制RBAC。研发RBAC的主要原因是降低传统访问控制模型管理的复杂性和高额费用。RBAC的核心概念是角色。一个角色具有特定的行为和责任,行使某个组织的特定功能。角色拥有一组访问控制权限,用户通过承担角色获取对应的权限。与现实世界一致,角色具有特定的层次结构,而管理角色成为RBAC特有的问题。为此,人们先后扩展了角色的继承、约束机制,并在此基础上将RBAC用于分布式访问控制,实现了分布式权限-角色指派、分布式用户-角色指派、分布式角色层次管理。

随着计算机技术的不断发展,访问控制问题在面向对象、XML技术中也凸显出来。人们开始在这些领域尝试寻找突破,然而,面向对象、XML和大部分应用并不具备关系数据模型的数学严密性,因此,访问控制问题在这些领域并没有一种通用而又精确的模型。

在实际的数据库系统应用中,安全策略需要考虑除保密性、完整性访问控制以外更多的问题。例如,如何描述、定义不同集团之间的利益冲突?如何控制不同客体之间的信息流动?尽管对于不同的需求可以采用不同的安全策略,但是,人们更希望在数据库及其应用系统中使用整合了多种安全策略的模型、模型架构,能够灵活配置安全策略,能够适用于不同的操作系统。随着组织的扩展、数据库应用系统的升级,人们还发现,对于相同的特定安全需求,组织与组织之间、部门与部门之间、部门与用户之间会存在大量莫衷一是的决策判断,衍生出部署分散、种类繁多、内容矛盾的安全策略。这样,人们必须保证在复杂的应用环境中协调各种安全策略,这种协调也成为数据库应用系统发展的重要内容。

安全策略语言是用来描述、定义不同层次安全策略的语言。高层安全策略抽象程度高,可以使用自然语言或者形式化语言。低层安全策略与具体安全机制密切相关,通常使用输入参数和函数调用的形式表述。与其他应用系统不同,数据库及其应用系统的安全策略广泛依赖于SQL,后者既是策略定义语言,又是策略执行语言。查询修改、查询优化成为数据库安全策略执行过程中独特的机制。 O6X9Fn8AgKzfXE8Qs5IVYoz0xkoja4JZZc/42swEaDrrqPio3MS1LjgxGnm23GXM

点击中间区域
呼出菜单
上一章
目录
下一章
×