史秀鹏,何泾沙,,赵 斌,张伊璇,刘若鸿
(1.北京工业大学 软件学院,北京100124;2.北京经开股份有限公司 信息技术部,北京100176)
随着网络应用的不断发展,网络应用的界面内容来源于多个采用不同安全策略的访问控制客体,应用在访问资源的过程中会并行发出大量的访问请求,这些访问请求在没有进行统一的访问控制协调调度时会导致不安全的访问和未授权信息的泄露。
访问控制作为信息系统的重要保护屏障,普遍应用在操作系统、数据库和应用系统当中。随着应用系统的高度集成,云计算和分布式技术的快速发展,传统的采用单一策略的访问控制方法已经不能满足现在安全要求。访问控制模型在并发性、灵活性、协调管理和可扩展性等方面需要进行改进。
面向大量外部用户的可共享的分布式开放式网络的普及,催生了网络应用的发展,如大型电子商务网络、Ad Hoc网络、社交网络等[1]。由于网络应用更多依赖于服务器提供网络资源,导致了用户同一时刻对于服务器的高并发访问[2]。同时,网络资源通过分布式服务器技术分散在不同物理位置或网络域[3,4]中的服务器节点,众多服务器实施的访问控制策略各异,使得访问控制难以有效统一地管理。
对于B/S结构的应用系统,资源访问请求需要进行统一调度协调。目前web页面设计的资源种类不再是的文字和图片,还包含多媒体特效[5]、视频、声音等资源,浏览器按照顺序的资源访问方式,用户往往不能第一时间看到自己需要的资源,用户简单的操作伴随着页面刷新,大量资源重复加载导致了网络流量的浪费。同时对于客体资源的访问控制主要依赖于服务器的认定,并发访问请求的到来伴随着大量的访问授权,这样就增加了HTTP服务器的开销。
对于C/S结构的应用系统,资源的调取方式也往往来源于多个访问控制的客体,虽然采用了TCP/IP 的面向持续连接的连接方式,但是不同目的地址的客体会增加连接的个数,在整个系统界面的加载过程中也没有进行不同访问控制的协调工作。同时并发访问请求所请求的客体也存在着关联关系,因此需要根据客体的关联关系来调度调整并发访问请求的访问顺序,根据客体访问控制的结果来开启或关闭其它未进行的并发访问请求。因此如何根据安全要求及并发访问请求的关联关系有效协调访问控制机制,提出有效的、满足开放式网络要求的动态访问控制方案,对保护信息、资源和服务的安全以及个人隐私至关重要。研究并发访问的关联关系,根据不同的关联关系制定访问控制的协调方法,对于目前的应用系统的设计和建设具有重要的研究价值。
网络应用在加载的过程中,会触发大量的并发访问请求,这些访问请求将并发的调取网络资源[6]。HTTP 访问请求是我们常见的访问请求的一种,通过网页数据分析工具可以获得web页面的并发数据,得到对于单一页面会出发多大程度的并发调取网络资源的数量。
本文使用的工具是Http watch,它集成在Internet Explorer工具栏,可以查看网页摘要、网页字符、Cookies、缓存、访问请求消息头发送/接受。Http watch还能够在显示网页同时显示网页请求和回应的日志信息,如图1所示。
图1 Http watch显示网络应用触发的并发访问请求
在Http watch中可以看到,在访问淘宝网-首页时,浏览器会触发186个并发的访问请求,180个为GET 请求,6个为POST 请求。在访问新浪网-首页时,浏览器会触发225个并发的网络请求,全部为GET 请求。
在HTTP请求中描述调取资源的目的地址是URL,也就是网业结构中的超链接,信息,可以将超链接视为线,网页视为结点,这样就组成了一个图的结构,被称之为网站的拓扑结构。本文使用基于Heritrix的网络爬虫工具提取网站网页中的超链接信息,同时剔除了网页中夹杂的无效链接,由于网站拓扑结构呈现出来是图结构不利于理解和导航,本文拟将其组织成层次性结构,将网站的拓扑结构转换成树型结构以便认知理解,如图2所示。
网页的文本信息中包含的链接类型主要包含网页的样式文件链接、脚本文件连接、跳转至其它页面的链接和多媒体资源链接。跳转型链接和多媒体链接会连接到不同的域名或IP地址,来源于不同的客体,并触发不同客体的访问控制。网络连接指向的客体资源存在着一定的联系,通过对于客体资源的识别和分类可以找到客体资源之间的关系,进而获得访问请求之间的关联关系。
在访问请求并发访问客体资源的过程中,并发访问请求之间存在着相互的关联关系,关联关系的判断来源于访问请求本身属性,还来源于访问请求访问客体资源之间的二元关系[7]。本文将具体的关联关系定义为以下5种:或、与、非、依赖、聚合。
(1)“或”关系,标识为 “∪”,代表的是两个并发访问请求,至少有一个获得访问控制的允许,两者才能继续显示出来。例如:通常在信息系统中,很多访问请求存在着意义上的关联,但关联程度并不强烈。新闻系统中,两则同一板块的新闻链接,虽然意义上同属于同一个新闻类型,但相互之间不存在制约的关联关系,它们触发的访问控制之间是相互独立的。
(2)“与”关系,标识为 “∩”,代表的是两个并发访问请求,都获得了访问控制的允许,两者才能继续显示出来。例如:图片和文字同时展示时,若图片未获得响应或者不允许访问,则相应的文字也同时不予以展示;视频和文字同时展示时,文字详细描述了视频的内容,若视频不允许访问,则文字的响应也不予以展示。
(3)“非”关系,标识为 “!”,代表并发访问请求1,在并发访问请求2访问控制拒绝的情况下,才能显示访问请求1的结果。例如:在信息系统中,在一些通用的功能模块中,普通用户和管理员用户的功能需求差异不大,共享着同一个用户界面。根据用户权限的不同,普通用户加载界面时会隐藏管理员用户的界面内容,同样管理员用户加载界面时会隐藏普通用户的界面内容,这种互斥关系就是 “非”关系。
(4)“优先”关系,标识为 “→”,代表的是并发访问请求1,应该在并发访问请求2前面,优先被执行。例如:文字信息是用户更想看到的,此时文字的现实应该放在其它信息之后展示出来;广告在展示时是用户较不想先看到的,应该放在后面展示。
(5)“聚合”关系,标识为 “×”,代表的是该并发访问请求是由多个子并发请求组成的。例如:一条访问请求链接道德界面模块中包含有多个子访问请求,这样的访问请求由多个子访问请求组合而成。
并发访问关联关系可以采用代数计算来描述,便于通过简单的二元关系,通过关系运算符的连接,推演为复杂的多元关系,具体描述如下:
本文定义的5种基本的访问请求关联关系,它们的含义如下:
(1)CR=Request1∪Request2
操作符 “∪”表示 “或”,是二元操作符,含义是在请求Request1和请求Request2 当中,至少有一个发生,表示为:
If((Request1==1)Or(Request1==1))Composite-Request=1
(2)CR=Request1∩Request2
操作符 “∩”表示 “与”,是二元操作符,含义是两种请求Request1和Request2都发生,表示为:
If((Request1==1)And(Request2==1))Composite-Request=1
(3)CR=Request1!Request2
操作符 “!”表示 “非”,是二元操作符,含义是Request1请求发生而Request2请求不发生,表示为:
If((Request1==1)And(Request2==0))Composite-Request=1
(4)CR=Request1→Request2
操作符 “→”表示 “时序优先”,是二元操作符,含义是请求Request1在时间上发生在Request2之前,表示为:
If((Request1==1)And(Request2==1)And(Request1.Time<Request2.Time))Composite-Request=1
(5)CR=Request1×Request2×Request3
操作符 “×”表示 “聚合”,是多元操作符,含义是event事件实例发生n次,表示为:
If((Request1==1)Or/And(Request2==1)Or/And(Request3==1))Composite-Request=1
在开放式网络中,用户对信息、资源和服务的访问与使用仍然要求在可控条件下有条不紊地进行,以确保网络资源最大程度地得到共享以及实现对各类资源及用户隐私进行有效的保护[8]。访问控制是实现以上安全要求的一项关键技术,目的是对用户提出的信息、资源和服务的访问请求按照设置的安全策略进行授权而达到有效控制。根据访问请求的关联关系,合理调度访问请求,进而协调访问控制,可以跟好的满足系统在安全访问和资源获取速度上的需要。本文提出了访问控制协调框架,如图3所示。
图3 访问控制协调框架
框架的各个组成部分的功能如下。
(1)“主体”是一个主动的实体,在访问控制协调框架中它是一个具有用户登录身份标识的终端或应用,主体通过发出访问请求访问客体。
(2)“客体”是一个被动的实体,在访问控制协调框架中它代表的是访问请求需要获取的内容实体,包含信息、资源和服务等类型,主体对客体的访问要受到访问控制策略的限制。
(3)“并行缓冲队列”是一个缓冲执行并发访问请求的装置,主体并行发出的访问请求将被接收在并行缓冲队列当中,暂时不向客体直接发送访问请求,等待协调处理监控器的指令来执行访问请求。
(4)“协调处理监控器”是一个可以检测访问请求状态的装置,它可以在 “资源关系数据库”中查阅不同访问控制客体之间的关系定义,实时地监控已经发出的访问请求的资源响应情况,并且将汇总的资源响应信息发送给 “协调机制决策模块”,由该模块来决策调度并发访问请求,同时负责向 “并行缓冲队列”传输 “协调机制决策模块”的决策调度指令。
(5)“资源关系数据库”是存储了访问控制客体资源之间关联关系的数据源[9]。
数据源的类型可以通过文件、数据库和云存储服务等形式提供给访问控制协调框架。
本文设计了一种面向关联关系的并发访问请求调度方法,通过合理的调度并发访问请求进行访问控制的协调工作,协调方法的执行流程如下:
(1)收集并发访问的关联关系集合,不具有关联关系的访问请求将直接访问客体资源。
(2)通过访问请求关联关系构造多个访问图。
(3)每个访问图创建一个线程实例,加载访问图的结构内容。
(4)线程按照访问图的结构内容执行资源访问。
(5)若访问图的当前层的访问请求结果不满足当前层的关联关系,则访问图下层的节点不再继续访问资源。
(6)动态显示访问控制协调后的资源访问结果。
访问控制协调决策流程如图4所示。
图4 访问控制协调决策流程
本文提出了访问请求访问图构造算法。访问请求访问图的构造算法将根据访问请求之间的关联关系构造访问图[10],访问请求访问图中每个并发的访问请求作为访问图中的一个节点,访问图构造的过程采用递归的方法,将具有相互联系的节点构造在一个访问图中,建立访问请求访问图的过程如下:
(1)将并发的访问请求分别创建一个访问图节点。
(2)根据访问请求的属性将访问请求分组,触发访问控制的访问请求节点单独分为一组 (A 组),不触发访问控制的访问请求节点分为一组 (B组)。
(3)A组根据访问请求节点访问资源的访问控制安全级别,将节点分层,每层有关联的节点组合起来,共同连接一个新创建的节点,称为“汇集节点”。层与层之间有关联关系时,上层节点通过汇集节点与下层节点组合起来,再共同连接一个新创建的汇集节点。重复执行上述,生成访问请求访问图。
(4)第 (3)步中,A 组生成的访问请求访问图,将相互之间没有连接的图拆分开,形成多张访问图。
(5)B组根据访问资源的类型构造多张访问图,每张访问图中设一层访问控制节点。
访问图的构造示意过程如下:
(1)在访问请求未经过协调时,访问请求的访问顺序是并行进行的,如图5所示。
(2)协调方法将访问请求节点按照访问访问控制安全级别分层处理,每层的访问顺序是并行进行的 (椭圆形节点为访问控制节点,方块形节点为汇集节点),并且在当前层满足访问请求关联关系约束的情况下,才进入下一层进行节点的访问,如图6所示。
图5 未经过协调的访问请求节点
图6 经过协调的访问请求节点
线程 (thread)是指一个任务从头至尾的执行流。线程提供了运行任务的机制。一个程序可能包含多个并发执行的任务,这些线程可以在多个系统同时运行。在单处理器(single-processor)系统中,多个线程共享CPU 时间称为时间共享 (time sharing),而操作系统负责调度分配资源给它们。这种安排是切实可行的,因为CPU 的大部分时间都是空闲的。例如,在等待用户输入数据时,CPU 处于空闲状态。
线程池中定义了固定数目的线程,如果线程完成了任务的执行,它可以被重新使用以执行另外一个任务。如果线程池中所有的线程都不是处于空闲状态,那么新加入的任务处于等待执行的状态,多线程运行如图7所示。
在访问控制的协调过程中,为每个访问图生成一个线程,可以满足异步进行访问控制的要求使网络应用的响应更快、交互性更强、执行效率更高。在协调访问控制的过程中,由于分属不同的访问图中的访问请求并不存在关联关系,相互的独立的线程运行结果不会延误其它线程获取资源的进度。
图7 访问图多线程访问资源
同时将开启的线程交由线程池调度,避免网络应用消耗过多的内存资源,保证用户系统的平稳运行,是管理并发执行线程任务个数的理想方法。
为了验证访问控制协调方法的可行性,采用C#语言的WCF框架模拟实现了访问控制协调服务,WCF 是一款微软推出的通信框架,可以便捷的基于该技术实现网络服务。访问控制协调算法将在服务的接口函数中实现,客户端通过并发访问服务的方式进行并发访问控制协调方法性能的实验。实验通过对比的方式,对未使用访问控制协调和使用访问控制协调两种模式进行比较。
在减少非安全的访问请求方面,随着并发访问请求数量的增加,经过访问控制的协调,可以有效降低非安全访问请求的产生数量。非安全访问请求数量对比如图8所示。
图8 非安全访问请求数量对比
在加快客户端界面加载方面,随着并发访问请求数量的增加,未经过访问控制协调的客户端界面加载缓慢,而由于协调访问控制采用了多线程的加载方式,有效加快了客户端界面的加载速度。界面加载时间对比如图9所示。
实验数据对比说明,在访问请求并发程度高的情况下,访问控制协调方法可以有效降低非安全访问请求的产生,同时在加快客户端界面的加载方面起到很好的作用。
图9 界面加载时间对比
然而在访问请求并发程度不高的情况下,采用并发访问控制协调方法会占用系统内存资源,起到的效果并不明显,这也是今后对协调方法改进的方向。
本文调研了目前网络应用中并发访问请求的构成和相互联系,提出了并发访问请求之间的关联关系的类型和判定方法。在关联关系的基础上,本文提出了访问控制协调的整体结构,并给出了各个部分的工作模式以满足并发访问请求在获取信息、资源和服务上的功能要求。同时,本文还针对网络应用,基于异步通讯方式和多线程技术提出了通过访问请求调度实现访问控制协调的方法,保证系统的并发性和安全性。
访问控制的整体过程中,访问控制的协调过程主要是在用户端进行的,可以减轻服务器端的负载压力。经过协调,没有访问权限的访问请求将不再发送,从而对于整个网络环境可以起到节约网络流量的作用。分层访问的方式可以在重要的资源访问的过程中,及时发现恶意的访问请求。同时,经过协调之后的客户端的用户界面将更加友好。
[1]Machida Shimon,Shimada Shigeru,Ecizen Isao.Settings of access control by detecting privacy leaks in SNS [C]//International Conference on Signal-Image Technology &Internet-Based Systems,2013:660-666.
[2]ZHANG Wei.Based on the research and implementation of concurrent access to shared resources statements control[D].Hefei:University of Science and Technology of China,2010(in Chinese).[张伟.基于共享资源声明的并发访问控制研究与实现 [D].合肥:中国科学技术大学,2010.].
[3]Nekouei E,Inaltekin H,Dey S.Distributed cognitive multiple access networks:Power control,scheduling and multiuser Diversity [C]//IEEE International Synposium on Information Theory Proceedings,2013:1665-1669.
[4]Dourado RA,Sampaio LN,Suruagy Monteiro JA.On the composition of performance metrics in multi-domain networks [J].IEEE Communications Magazine,2013,51(11):72-77.
[5]Zhu Ruifeng,Ning Jie,Yu Pei.Application of role-based access control in information system [J].Wavelet Active Media Technology and Information Processing,2012,16 (6):426-428.
[6]Wu Xian,Qian Peide.Towards the scheduling of access requests in cloud storage [C]//8th International Conference on Computer Science &Education,2013:37-41.
[7]Aktoudianakis E,Crampton J,Schneider S,et al.Policy templates for relationship-based access control[C]//11th An-nual International Conference on Privacy,Security and Trust,2013:221-228.
[8]Pan L,Liu N,Zi X.Visualization framework for inter-domain access control policy integration [J].Communications,China,2013,10 (3):67-75.
[9]Kayes ASM,Jun Han,Colman A.A semantic policy framework for context-aware access control applications [C]//12th IEEE International Conference on Trust,Security and Privacy in Computing and Communications,2013:753-762.
[10]Hengstermovric K,Lewis F.Cooperative optimal control for multi-agent systems on directed graph topologies [J].IEEE Tranactions on Automatic Control,2013,59 (3):769-774.