基于角色与信任的访问控制及其在Hadoop上的实现

2018-01-02 21:42于万钧沈斌周兰凤
现代电子技术 2017年24期
关键词:访问控制

于万钧+沈斌+周兰凤

摘 要: Hadoop云计算平台已经成为当今社会最流行的平台之一,它的安全问题也在改进,访问控制是保护Hadoop平台安全的一种有效途径。依据基于角色的访问控制和基于信任的访问控制,并在此基础上进行改进,提出一种基于角色与信任的访问控制模型。该模型主要根据Hadoop平台的日志文件,运用神经网络算法对日志文件进行分析,以此来获得每一个用户的信任度。集群根据用户的信任度来分配用户拥有的权限。

关键词: 访问控制; 神经网络算法; Hadoop平台; 用户权限分配

中图分类号: TN911?34 文献标识码: A 文章编号: 1004?373X(2017)24?0009?03

Abstract: The Hadoop cloud computing platform has become one of the most popular platforms nowadays, and its security issues are being improved. Access control is an effective way to protect the safety of the Hadoop platform. An access control model based on role and trust is proposed according to the improvement of the access control based on the role and the trust. In this model, the neural network algorithm is adopted to analyze the log files obtained from the Hadoop platform, so that each user′s trust can be obtained. The cluster assigns permissions to each user according to the user′s trust.

Keywords: access control; neural network algorithm; Hadoop platform; user permission distribution

Hadoop分布式文件系统是对谷歌文件系统的开源实现,并引用了谷歌MapReduce计算框架。在2005年,Hadoop作为Lucene的子項目Nutch的一部分正式启动,随后成为Apache下一个独立开发项目。Hadoop由最初的三大核心组件HDFS,MapReduce和Hbase所构成的系统演变为包含60多个组件的庞大生态系统[1]。在大数据环境中,数据每时每秒都在以指数形式增长,各企业、政府部门都在逐渐使用Hadoop云平台。随着Hadoop平台的不断推广,Hadoop平台安全问题也提上了日程。大数据安全问题成为阻碍大数据发展的关键问题,因此需要相应的安全机制和框架结构,来确保数据的机密性、完整性以及可用性。访问控制是一种有效的解决方案,访问控制主要是对资源访问的一种限制,防止非法用户对资源的访问以及合法用户对资源的非法访问。访问控制涉及认证、控制策略实现以及审计[2]。

本文主要提出一种适用于Hadoop平台的基于角色与信任的访问控制模型。该模型运用机器学习中的神经网络算法对Hadoop平台日志文件进行数据分析、计算出每一个用户的信任度。在Hadoop配置文件中标识出不同等级的信任度以及信任度与权限的映射关系。该模型信任度是动态更新的,能够有效保障Hadoop平台的数据安全。

1 访问控制

自主访问控制(DAC)和强制访问控制(MAC)都属于传统的访问控制。自主访问控制模型中授权主体自主负责赋予和回收主体对客体资源的访问权限;强制访问控制模型是一种适用于军方和政府的访问控制模型,其中比较有代表性的有BLP模型[3]和Biba模型[4]。

1.1 基于角色的访问控制

基于角色的访问控制,将授权行为分成权限、用户和角色。比较有代表性的是RBAC96模型[5?6],如图1所示。其中,用户、会话、角色和权限这四个构成RBAC0模型,这是核心模型;在RBAC0模型基础上增加角色分层(RH),实现了RBAC1模型;在RBAC0模型基础上增加约束,实现了RBAC2模型;RBAC1模型与RBAC2模型的结合就构成了RBAC3模型,这也阐释了各个模型之间的关系。

1.2 基于信任的访问控制传统的访问控制

信任的访问控制的出现主要解决多域环境中访问控制的问题。它在访问控制中主要涉及信任证系统、一致性验证器(信任管理引擎)。信任证系统主要用来实现信任证的颁发;一致性验证器主要是用来处理用户获得证书是否可执行,这是信任管理中的核心部分[7?8]。

2 基于角色与信任的访问控制策略

2.1 模型结构

模型简图如图2所示。

模型简介如下:令牌,用户与角色之间的委派不同于基于角色的访问控制中的模型,在委派之间引入一个令牌;KDC(Key Distribution Center),密钥分配中心用来分配令牌;信任度,信任度与用户的权限存在映射关系,根据信任度来判断用户的权限;信任管理,判断用户的信任值。本模型采用神经网络算法,对日志文件中用户行为集做一个建模分析,以此来确定用户的信任度。

2.2 模型中相关数据结构及接口

定义1 用户行为。标识开始时间、结束时间、操作类型和是否为可执行权限。声明数据结构为behavior={clientID,type,timeStart,timeFiniSh,errorService}。endprint

定义2 信任度。标识用户权限等级。声明数据结构为TrustValue={clientID,iniTrValue,TrValue}。

定义3 函数setData(clientID,type,timeStart,timeFinish,TrustValue,errorService),定义数据的获取函数,并将数据转化为Avro数据格式。具体算法介绍在下面会介绍。

定义4 函数getTrValue(clientID),对setData函数获得的数据进一步处理获得信任度。

定义5 函数NeuralNetwork(clientID,type,timeStart,timeFinish,iniTrValue,TrValue,errorService),神经网络算法。

定义6 函数readTrValue(clientID,TrValue),这个函数主要是用来读取用户的信任度。

定义7 函数updataTrValue(oldtime,time,value),该函数主要是用来判断是否需要进行信任度的更新操作。其中参数的含义分别是上一次更新完成时间、当前系统时间以及阈值。

算法1 数据预处理算法setData

算法是在Hadoop计算框架MapReduce中运行。在使用该算法前,笔者使用Flume工具将日志文件导入到HDFS中来方便处理数据,默认情况下,Flume以Avro JSON数据格式写入数据。

输入:clientID,type,timeStart,timeFinish,iniTrValue,TrValue,errorService

输出:Avro格式的数据文件

(1) 首先读取HDFS中的日志数据。

(2) 对数据进行预处理,将数据中的缺失值填补上去同时在数据中增加两列:一列是初始信任度,初始信任度都赋值为1;另一列是当前信任度,赋值为0,表示未有信任度。

(3) 将数据以clientID,type,timeStart,timeFinish,iniTrValue,TrValue,errorService为一行,输出out到HDFS中。

算法2 信任度计算算法getTrValue

输入:clientID

输出:信任度值

(1) 读取HDFS中的out,赋值给data。

(2) 调用NeuralNetwork函数来计算信任度。

(3) 返回信任值并保存到数据库中。

算法3 神经网络算法[9?10]NeuralNetwork

输入:clientID,type,timeStart,timeFinish,errorService,iniTrValue

输出:TrValue

(1) 要将算法中的7个参数分成两个数据集,把前6个作为特征值,最后一个作为函数标记。

(2) 建立神经网络模型,采用backpropagation算法计算TrValue。

(3) 返回TrValue。

其中backpropagation算法公式如下:

算法結构简图如图3所示。

3 系统实现

3.1 实验设计

本实验是在Hadoop 2.0官方提供的稳定版中修改其配置文件,为此需要在hadoop\conf目录下添加3个XML文件作为本实验模型的配置文件,如下:

(1) trust?computer.xml 该配置文件编写第2节中运用到的计算信任的函数。

(2) user?trust.xml 该配置文件保存着用户的信任度。

(3) user?trust?permission.xml 该配置文件保存信任度与权限的映射关系。

本实验核心流程如图4所示。

3.2 实验结果与分析

本实验在相同环境下搭建两种集群:一种是普通集群;另一种是采用神经网络来计算可信度的基于角色与信任模型的集群。为了能看出区别,两个集群都用一个用户执行一个权限,在某一时间区域内不断手动通过集群中其他节点去改变用户的执行权限,以观测出实验结果。在此以时间为横坐标,以是否可执行为纵坐标,如图5所示。

实验中“1”表示用户不可执行该权限,“2”表示用户可执行该权限。在t1前不断在两台集群中执行一个put命令,在t1时刻改变put命令的权限使得用户不具有该权限,所以测试结果为“1”,即不具有该权限;在t2时刻又修改put命令的权限使得用户具有权限,所以测试结果为“2”,即具有该权限。从图5可以看出普通集群在t3和t7时刻出现错误,这也就是普通集群容易受到攻击造成集群信息被窃取的原因。而采用神经网络计算信任度的基于角色与信任模型的集群在实验测试时间段内没有出现失误,也就证明了该模型能够有效处理普通集群中的访问控制安全问题。

4 结 语

本文在研究基于角色的访问控制模型和基于信任的访问控制模型的基础上,结合神经网络的学习分析能力,提出了一种采用神经网络计算信任度的基于角色与信任的访问控制模型。与普通集群中的模型相比,该模型由如下优点:

(1) 模型预测正确性高,该模型主要依靠神经网络来计算角色的信任度,能够正确指示出角色拥有的权限。

(2) 模型的授权过程更加安全,该模型采用信任度的方式使用户能够根据自己的信任度去执行所拥有的权限,但也将用户处于受监控状态,增强了安全性。

(3) 模型的授权更灵活,模型的授权根据信任度来获得权限,而信任度是根据Hadoop日志文件中用户的行为来计算的,所以授权更灵活。

参考文献

[1] 姚治菊,谭良.Hadoop云平台适合企业云存储的访问控制模型[J].小型微型计算机系统,2016(6):1185?1190.

[2] 李昊,张敏,冯登国,等.大数据访问控制研究[J].计算机学报,2017(1):72?91.

[3] 叶春晓,尉法文.基于BLP模型的XML访问控制研究[J].计算机工程,2011(14):124?127.

[4] 周向军.基于BLP/BIBA混合的云计算数据中心安全访问控制模型[J].信息安全与技术,2016(1):28?33.

[5] 王于丁,杨家海,徐聪,等.云计算访问控制技术研究综述[J].软件学报,2015(5):1129?1150.

[6] 吴江栋,李伟华,安喜锋.基于RBAC的细粒度访问控制方法[J].计算机工程,2008(20):52?54.

[7] 刘莎,谭良.Hadoop云平台中基于信任的访问控制模型[J].计算机科学,2014(5):155?163.

[8] 陈懋.基于信任的云计算访问控制系统的设计与实现[J].现代电子技术,2016,39(11):82?85.

[9] 李凌霞.云环境下基于BP神经网络的电子商务企业信任评估模型研究[J].电子商务,2016(5):40?41.

[10] 樊振宇.BP神经网络模型与学习算法[J].软件导刊,2011(7):66?68.endprint

猜你喜欢
访问控制
一种跨策略域的林业资源访问控制模型设计
内外网隔离中ACL技术的运用
云计算访问控制技术研究综述
ONVIF的全新主张:一致性及最访问控制的Profile A
利用IP访问控制流量
动态自适应访问控制模型
浅析云计算环境下等级保护访问控制测评技术
大数据平台访问控制方法的设计与实现
基于岗位映射的应急组织间跨域访问控制研究
从操作系统层面谈信息安全与自主访问控制