史文浩,江國華,秦小麟,王 勝南京航空航天大學計算機科學與技術學院,南京210016
* The National Natural Science Foundation of China under Grant Nos. 61373015, 61300052, 41301047 (國家自然科學基金); the Priority Academic Development Program of Jiangsu Higher Education Institutions (江蘇高校優勢學科建設工程資助項目); the Innovation Program for Graduate Education of Jiangsu Province under Grant No. SJZZ_0043 (江蘇省研究生培養創新工程).
Received 2015-03,Accepted 2015-05.
CNKI網絡優先出版:2015-05-29, http://www.cnki.net/kcms/detail/11.5602.TP.20150529.1137.001.html
ISSN 1673-9418 CODEN JKYTA8
Journal of Frontiers of Computer Science and Technology
1673-9418/2016/10(01)-0025-11
?
基于用戶信任值的HDFS訪問控制模型研究*
史文浩+,江國華,秦小麟,王勝
南京航空航天大學計算機科學與技術學院,南京210016
* The National Natural Science Foundation of China under Grant Nos. 61373015, 61300052, 41301047 (國家自然科學基金); the Priority Academic Development Program of Jiangsu Higher Education Institutions (江蘇高校優勢學科建設工程資助項目); the Innovation Program for Graduate Education of Jiangsu Province under Grant No. SJZZ_0043 (江蘇省研究生培養創新工程).
Received 2015-03,Accepted 2015-05.
CNKI網絡優先出版:2015-05-29, http://www.cnki.net/kcms/detail/11.5602.TP.20150529.1137.001.html
ISSN 1673-9418 CODEN JKYTA8
Journal of Frontiers of Computer Science and Technology
1673-9418/2016/10(01)-0025-11
E-mail: fcst@vip.163.com
http://www.ceaj.org
Tel: +86-10-89056056
摘要:目前,越來越多的用戶使用云存儲來保存或備份數據,以增強數據的可移動性,但針對云存儲的安全性問題,研究人員主要關注隱私泄露、數據容災、副本消除等方面,對訪問控制的研究較少。在前人研究的基礎上,提出了一種基于用戶信任值的HDFS(Hadoop distributed file system)訪問控制模型。該模型結合可信book=26,ebook=30賴第三方認證系統Kerberos實現對用戶的認證,并為每個用戶設定一個信任值,通過信任值與信任值閾值的比較動態控制用戶對HDFS的訪問。實驗結果表明,該模型不僅可以克服HDFS訪問控制上的缺陷,而且能夠動態、有效地控制用戶對HDFS中資源的訪問。
關鍵詞:云存儲;HDFS;訪問控制;信任值
云存儲[1]是指通過集群、網格和分布式文件系統等技術,將網絡中各種不同類型的存儲設備通過軟件集合起來協同工作,共同對外提供數據存儲和業務訪問功能的一種新興的存儲模式,用戶根據需要付費就可以從云存儲服務提供商處獲得任意大小的存儲空間和企業級別的服務質量。但云存儲的推廣并非一帆風順,Twinstrata公司2012年的云存儲應用調查顯示:只有20%的人愿意將自己的私有數據放在云存儲中,大約有50%的人愿意使用云存儲來進行數據備份、歸檔存儲以及災難恢復等操作[2]。這主要源于在云存儲中,存儲數據的物理介質不屬于云存儲用戶所有,當用戶將數據提交給云存儲服務提供商后,具有數據優先訪問權限的并不是相應的用戶,而是云存儲服務提供商。同時,在云存儲平臺中用戶的數據處于共享環境,在這種情況下如何保證用戶數據的安全是人們非常關注的問題[3]。
云存儲的核心實際上是一個分布式文件系統[4],因此云存儲的數據安全性問題實際上就是分布式文件系統的安全性問題。Hadoop[5]云平臺作為當前最流行的云平臺之一,已經得到廣泛應用,而HDFS[6](Hadoop distributed file system)作為Hadoop的核心模塊,所有的Hadoop應用都使用HDFS提供的分布式存儲服務,因此研究云存儲的安全性問題實質上就是研究HDFS的安全性問題。
目前對HDFS安全機制的研究工作還很少,這是因為HDFS在最初設計時假定其運行在封閉的環境之中,且集群中的所有節點都是值得信賴的,無需進行驗證,而HDFS實際的應用環境是一個開放且非安全的復雜環境,若不采取相應的安全措施將面臨諸多挑戰。本文提出了一種基于用戶信任值的HDFS訪問控制模型,首先將可信賴第三方認證系統Kerberos[7]與HDFS相結合,解決了HDFS的安全認證問題,但其實現的僅是關口控制,仍存在合法用戶后期行為可信性缺陷。因此進一步引入用戶信任值的概念,通過為每個用戶設定一個信任值,并根據用戶行為記錄實時更新其信任值,實現了一種細粒度的可靠靈活的訪問控制機制,滿足了對用戶訪問的動態控制需求。
本文組織結構如下:第2章介紹相關工作;第3章對所提模型的原理及實現等方面展開討論;第4章通過實驗證明本文模型的可行性與實用性;第5章對文章進行總結,并介紹未來工作。
近年來,隨著云計算技術的快速發展,Hadoop已經在大批互聯網公司、企業機構得到了成功的應用,成為當前最流行的云平臺之一,并受到國內外產業界和學術界的廣泛關注,但目前對Hadoop特別是HDFS的安全機制研究工作還很少。這是因為HDFS最初的設計是假定其運行在安全的封閉環境中,集群內的所有節點都是可靠且值得信賴的,并提供給一組相互合作的用戶使用[8],所以HDFS在設計之初主要考慮大規模數據存儲的性能問題,分布式計算環境中的安全性問題并未得到充分關注[9]。
Yahoo!的O’Malley等人提出Hadoop的安全設計[10],通過為Hadoop加入安全模塊,增強了其安全性。但這里所實現的訪問控制措施實質上是一種門限式的控制管理,用戶一旦通過最初的認證獲得權限,其后期的行為將不再受到監控,若用戶在這段時間里進行非法操作,將不被集群發覺。
Yu等人提出采用基于屬性加密(attribute-based encryption,ABE)方案對云端的數據進行加密[11],用戶在上傳數據之前先用屬性作為公鑰對數據進行加密,能對數據進行訪問的用戶必須擁有K個屬性才能對數據進行解密,其中K為能解密該數據的屬性個數閾值。該方案保證了數據的安全存儲,同時服務器也無需為每個用戶保存一份公鑰。但該方案只支持粗粒度的訪問控制,在細粒度訪問控制方面仍存在局限性。
我國臺灣高雄大學的Bao等人基于Hadoop云平臺的安全性問題,提出并設計了一種將指紋鑒定和人臉識別技術應用于Hadoop集群中用戶接入部分的方法[12],來實現用戶的身份驗證。但他們并未設計出與上述身份驗證方法相匹配的權限管理措施,忽略了訪問控制中非常關鍵的權限授予過程,導致該模型仍存在一定的安全隱患。
Kerberos[13-15]作為一種基于可信賴第三方的認證系統,由麻省理工學院提出,它提供了一種在開放式網絡環境下進行身份認證的方法,使網絡上的用戶可以相互證明自己的身份,用戶在對應用服務器進行訪問前,必須先從第三方服務器(Kerberos KDC)獲取該應用服務器的訪問許可證(Ticket)。目前關于Kerberos的研究已趨于成熟,但是卻未應用到分布式計算環境中。
為克服上述缺點,本文結合Kerberos和用戶信任值的概念,提出了一種基于用戶信任值的HDFS訪問控制模型,不僅實現了用戶授權的動態管理,同時增強了訪問控制機制的安全性及靈活性。
首先介紹基于用戶信任值的訪問控制模型的結構,然后對模型中相關數據結構及規則定義展開描述,最后通過模型的執行流程圖闡述模型的實現細節。
3.1模型結構
圖1為基于用戶信任值的訪問控制模型的結構。
圖1中涉及的Client、Kerberos KDC、Token、Session、Operation、HDFS、Confidencethreshold、Permission In Cluster等實體的具體解釋如下:
(1)Client即HDFS集群中用戶的集合,指代可以獨立訪問HDFS集群的主體。Client={client1,client2,client3,…,clientn},某一client可以屬于某個組。

Fig.1 Model structure圖1 模型結構
(2)Kerberos KDC即密鑰分發管理器,指代搭建安全模型下的HDFS集群所使用的可信賴第三方服務器。KDC由兩部分組成:認證服務器(authentication server,AS)和票據授予服務器(ticket granting server,TGS),用于實現對Client的身份認證。
(3)Token即模型中各種令牌的集合,表示用戶授權過程所使用的訪問令牌,Token={TD-Token,TB-Token}。
①TD-Token是NameNode節點為用戶頒發的授權令牌,在用戶請求使用集群中的HDFS服務時使用。該令牌的使用,在一定的期限內實現了用戶在申請HDFS服務時,不再是每次都去KDC上申請認證,其格式如下:
TD-Token={TokenIDD,TokenAuthenticatorD}
其中,TokenIDD={ownerIDD,renewerID,issueDate,maxDate,sequenceNumber}。ownerIDD表示授權令牌所屬用戶;renewerID表示對授權令牌具有更新操作權限的用戶;issueDate表示授權令牌的發布時間;maxDate表示授權令牌的最大使用時間;sequenceNumber表示為實現系統中每個授權令牌的唯一性而加入其中的隨機數。TokenAuthenticatorD=HMAC-SHA1(masterKey,TokenIDD),masterKey是由NameNode節點隨機選擇的一個密鑰,用于授權令牌的生成,周期性地被更新,并且存儲在NameNode的磁盤上。
②TB-Token是用戶請求使用集群中HDFS存儲服務時,在證實用戶所提供的TD-Token合法有效的前提下,NameNode節點給予用戶頒發的塊訪問授權令牌,該令牌的頒發過程實質上就是HDFS存儲服務的授權過程。在DataNode節點上沒有文件的概念,因此不能獨立地設置文件許可,只能通過塊訪問授權令牌實現對集群中Block的訪問授權管理,該令牌格式如下:
TB-Token={TokenIDB,TokenAuthenticatorB}
其中,TokenIDB={ownerIDB,expirationDate,keyID,BlockID,Confidence,accessModes}。ownerIDB表示塊訪問授權令牌所屬的用戶;expirationDate表示塊訪問授權令牌的過期時間;keyID表示NameNode節點所選擇的用于生成塊訪問授權令牌的密鑰;BlockID表示塊訪問授權令牌是針對哪個塊生成的;Confidence表示用戶當前的信任值;accessModes是訪問模式,可以是讀、寫、拷貝、替換中各個操作的任意組合。TokenAuthenticatorB=HMAC-SHA1(keyB,TokenIDB),keyB表示NameNode和DataNode之間關于構造塊訪問授權令牌的一個共享密鑰。
(4)Session即會話,表示某一個Client和其所申請獲取的服務對應著的一系列令牌,具體表示為一個用戶獲得其某一組服務訪問令牌的過程。
(5)Operation即操作,表示用戶在HDFS集群中可以執行的操作集合,Operation={read,write,copy,replace}。
(6)Confidencethreshold即信任值閾值,表示用戶可以獲得服務的信任值閾值條件,在模型中,用戶要獲得HDFS的服務,其信任值必須大于或等于信任值閾值。
(7)Permission In Cluster即集群中的權限,表示用戶對HDFS集群提供的服務進行可信訪問的許可。在本模型中,將權限定義為pic=(C,S,Op,Confidencethreshold)。其中,C∈Client,代表集群用戶,是獲取HDFS服務的權限主體;S∈Service,代表服務,是HDFS提供的具體某一種服務;Op∈Operation,代表操作,對應于某一種服務的具體訪問方式。
3.2模型中相關數據結構及規則定義
當一個用戶訪問HDFS時,由系統根據其用戶信息,通過可信賴第三方認證系統Kerberos檢查其身份是否合法,用戶通過身份檢查后向NameNode節點申請HDFS服務,NameNode節點通過存儲在行為數據庫中的用戶行為記錄計算得到用戶當前的信任值,并與系統設定的信任值閾值相比較,最終來判斷其是否有合法的訪問權限。下面給出信任值結構體的定義以及用戶信任值更新公式和算法。
定義1(信任值結構體)信任值結構體是一個二元組Confidence=(ConfidenceID,ConfidenceBody)。其中,ConfidenceID=(clientID,clientIP),表示信任值標識字段,clientID表示信任值是對某一具體用戶的行為信任描述,clientIP表示訪問集群服務時的具體IP地址;ConfidenceBody=(initConfidence,cf),表示信任值主體字段,initConfidence字段表示用戶的初始信任值或歷史信任值,是一個0~1之間的數值,其取值大小在初始狀態根據用戶身份而定,后期隨著每一次信任值更新而改變,cf表示用戶當前信任值,存放使用信任值更新算法得到的用戶信任值,也是一個0~1之間的數值。
信任值更新公式為:

其中,cf表示用戶最新信任值;initConfidence表示用戶的初始信任值或歷史信任值;NOB、NRB、NDB分別表示普通行為、風險行為、危險行為這3類用戶行為各自的記錄總數;α、β、γ為系統賦予每種行為類別的信任值評估權重,且滿足α+β+γ=1的關系。
從上述公式可以看出,用戶執行普通行為可以提高用戶信任值,執行風險行為或危險行為則會降低用戶信任值。
用戶信任值更新算法ConfidenceUpdate(clientID)的描述如下。
算法1信任值更新算法


算法1中第1~4行主要判斷參數clientID是否為空,若為空則返回FALSE;第5行調用函數readConfidence(clientID)讀取系統中存儲的用戶信任值結構體,并存儲到結構體實例Confidence中;第6~8行當信任值結構體中字段cf為空時,將初始信任值initConfidence賦予cf;第9~19行通過遍歷用戶行為數據庫,判斷用戶行為屬于惡意行為還是正常行為,若遍歷到惡意行為,則調用函數reduceConfidence(cf,punishCf)降低用戶信任值,若遍歷到正常行為,則調用函數increase-Confidence(cf,awardCf)增加用戶信任值;第20~23行將更新完成的用戶信任值寫入到信任值數據庫中,并返回該值。
為分析算法的時間復雜度,定義訪問數據庫讀取數據的時間開銷為Tread,遍歷行為數據庫的時間開銷為Ttraverse。在Hadoop中,Tread為固定常數,而Ttraverse與數據庫的大小及存儲方式有關。算法1中第5、20行訪問數據庫,第10行遍歷行為數據庫,因此算法1的時間復雜度為O(T1)=2Tread+Ttraverse。因為Tread是固定常數,所以可以確定時間復雜度O(T1)是數據庫遍歷時間Ttraverse的線性函數。
為了更好地對模型進行描述,給出訪問控制的規則及算法。
定義2(訪問控制規則)
(1)CP規則(ConfidenceFulfilled-Permission):當用戶身份合法,服務票據合法且信任值大于等于信任值閾值條件時,允許其訪問HDFS中的資源,這一規則的約束表達式如下:

(2)CR規則(ConfidenceInsufficient-Refusal):當用戶身份非法,或服務票據非法,或信任值小于信任值閾值時,系統拒絕用戶訪問HDFS中的資源,這一規則的約束表達式如下:

其中,user為用戶信息;tick為用戶訪問NameNode節點的服務票據;cf為用戶最新信任值;Confidencethreshold為信任值閾值;ACCEPT為允許本次訪問操作;DENY為拒絕本次訪問操作。
下面給出基于用戶信任值的HDFS訪問控制算法。
算法2訪問控制算法


算法2中第1~4行主要判斷參數clientID是否為空,若為空則返回拒絕提供服務信息DENY;第5~7行調用函數hasKDC(user)判斷用戶身份是否合法,若用戶身份合法則調用函數getTicks(KDC)為用戶授予服務票據Tick;第8~13行調用函數hasTicks(tick,Tick)判斷服務票據是否合法,若合法則調用函數ConfidenceUpdate(clientID)計算得到用戶最新的信任值,并與信任值閾值比較,當用戶最新信任值大于等于信任值閾值,即滿足CP規則時,返回接受服務請求的信息ACCEPT;第14~20行是用戶滿足CR規則時,返回拒絕提供服務信息DENY。
算法2中第5、8行遍歷數據庫,第10行訪問數據庫并寫入數據,因此算法2的時間復雜度為O(T2)= Tread+2Ttraverse,時間復雜度O(T2)是數據庫遍歷時間Ttraverse的線性函數。
3.3模型的執行流程
在HDFS中實施基于用戶信任值的訪問控制模型,首先要在相應的權限表ACL中添加信任值閾值,這個信任值閾值由服務提供者設定。具體執行流程如圖2所示。
詳細的步驟描述如下:
KDC服務器用于生成并分發Client-KDC間的共享密鑰K1、NameNode-KDC間的共享密鑰K2、Client-NameNode間的共享密鑰K3。
(1)Client將自己的身份認證信息用K1加密后發送給KDC請求進行身份認證。
(2)KDC驗證Client身份合法有效,給予頒發票據授權票據TGT,并用K1加密后回傳給Client。
(3)Client持TGT向KDC發送服務請求,請求內容用K1加密。
(4)KDC接收請求,并且產生服務票據Ticket={K3,用戶名,IP,地址,服務名,有效期,時間戳}。
(5)KDC用K1加密K3,用K2加密Ticket后一并回傳給Client。

Fig.2 Execution flow chart of model圖2 模型的執行流程圖
(6)Client解密得到與NameNode節點之間的會話密鑰K3,并生成Authenticator={(用戶名,IP)K3}。
(7)Client將步驟5中從KDC獲取到的用K2加密的Ticket連同步驟6中生成的Authenticator,以格式{(Ticket)K2,Authenticator}發送給NameNode節點,申請NameNode節點上的身份認證。
(8)NameNode節點對所接收到的內容進行解密,驗證Client是否屬于合法用戶。
(9)NameNode節點驗證Client身份合法之后,生成TD-Token并頒發給Client。
(10)Client持TD-Token向NameNode節點申請HDFS服務,NameNode節點使用所接收到的TokenIDD和本地的masterkey計算出TokenAuthenticatorD,在本地再次構建一個TD-Token。若NameNode重建的TD-Token在NameNode本地內存中具有相同的版本,則認定該用戶身份合法有效。
(11)查詢用戶行為數據庫,并通過信任值更新算法得到用戶當前的信任值。
(12)若用戶信任值滿足要求,則NameNode節點為用戶生成塊訪問授權令牌TB-Token。令牌中的AccessModes字段存放當前用戶可以對Block執行的操作,實際上就是用戶所具有的權限。該字段的取值設定由各個操作自身規定的信任值閾值來決定:①若步驟11中計算所得信任值大于等于某個操作所規定的信任值閾值,字段AccessModes取值加入該操作;②若步驟11中計算所得信任值小于某個操作所規定的信任值閾值,字段AccessModes取值為空,不加入該操作。
(13)當用戶滿足CP規則時,NameNode節點將生成的TB-Token分發給Client。
(14)Client持TB-Token向NameNode節點告知的所有DataNode節點請求所需服務。
(15)DataNode節點接收到Client的請求后,首先判斷TB-Token是否合法有效,再決定是否給用戶提供AccessModes字段所規定的操作。
(16)Client從DataNode節點獲取AccessModes字段規定的操作,或者當用戶滿足CR規則時,給用戶發送拒絕提供服務的提示信息。
(17)DataNode節點在最近的下一次心跳中,將Client在其上面的所有操作行為記錄反饋給NameNode節點。
(18)NameNode節點將反饋得到的用戶操作行為記錄保存到行為數據庫中。
綜上所述,基于用戶信任值的訪問控制模型,在用戶通過Kerberos的身份認證后,向NameNode節點申請HDFS服務,NameNode節點在為用戶生成TB-Token時通過讀取信任值數據庫中存儲的該用戶的信任值信息,并與配置文件中集群所設定的各種操作的信任值閾值相比較,從而判斷是否為其生成具有有效AccessModes字段的令牌。用戶信任值是通過讀取行為數據庫中用戶行為記錄來實時計算得到的,而這些用戶行為記錄都是伴隨DataNode節點的心跳進行更新的,因此信任值也隨之實現更新,一旦集群獲取到用戶的非法操作行為,其信任值必定快速下降。因此,結合用戶信任值的概念實現了一種實時動態、更細粒度、更加靈活的訪問控制機制,能夠更加安全、合理地為用戶分配合適的權限。
本章主要對所提模型進行功能驗證和性能評估。首先介紹實驗環境及實驗設計,然后通過3組實驗對模型的訪問控制能力和對系統的性能影響展開測試評估。
4.1實驗環境
開發環境為Cent OS 6.4+Eclipse 4.4.1,在該平臺上進行實驗,并對Hadoop-2.3.0代碼實施改進。測試平臺為宿主計算機+VMware Workstation 10.01+客戶計算機,其中宿主計算機為ThinkServer RD630,客戶計算機為1個master節點,60個slave節點。
本實驗以用戶訪問一個搭建好的Hadoop集群,向集群提交作業,在作業的處理過程中,對集群中HDFS服務進行訪問的過程來說明該模型的具體應用,如圖3所示。
本實驗主要用于驗證在用戶訪問Hadoop集群所提供的HDFS服務時,在幾種常用命令ls、mkdir、cat、put執行的過程中,該模型實現的訪問控制機制所起到的作用。其中,各命令對應的用戶行為及行為類別如表1所示。

Fig.3 Model of experimental application圖3 實驗應用模型

Table 1 Comparison table of common commands and user behaviors表1 常用命令與用戶行為對照表
表中,read、write、copy、replace分別表示用戶對HDFS內部Block文件塊的4種操作行為,收集到的用戶行為記錄根據模型定義保存到行為數據庫中,并將計算得到的用戶信任值存儲到信任值數據庫中。
針對用戶訪問服務的具體操作行為,通過對比實驗來對用戶的信任值閾值進行設置。
(1)由于read操作行為屬于普通行為,將其信任值閾值區間設為0.10~0.40,并通過用戶成功訪問HDFS的次數百分比進行對比實驗,選出最佳的信任值閾值為0.30,對比實驗的結果如圖4所示。

Fig.4 Comparison of trust value threshold for read behavior圖4 read操作行為的信任值閾值比較
信任值閾值的具體格式如下:

表示當Client所申請的服務包含有對HDFS內部的Block文件塊進行read操作時,其當前的信任值必須保證大于或等于0.30,才具有權限執行該操作。
(2)由于write操作行為屬于危險行為,將其信任值閾值區間設為0.70~0.95,并通過用戶成功訪問HDFS的次數百分比進行對比實驗,選出最佳的信任值閾值為0.90,對比實驗的結果如圖5所示。
信任值閾值的具體格式如下:

表示當Client所申請的服務包含有對HDFS內部的Block文件塊進行write操作時,其當前的信任值必須保證大于或等于0.90,才具有權限執行該操作。

Fig.5 Comparison of trust value threshold for write behavior圖5 write操作行為的信任值閾值比較
由于在配置文件中,關于每個信任值閾值的規定實現到每一個服務操作行為上,數量較多,這里不再一一列舉。
4.2實驗設計
本實驗通過改進Hadoop-2.3.0的程序源碼,在其分布式文件系統HDFS上實現了基于用戶信任值的訪問控制模型,具體涉及如下改進工作。
(1)在hadoop/hdfs目錄下面添加3個xml文件,作為模型的關鍵配置文件。
①user-behavior-database.xml,存儲用戶行為監控數據;
②confidence-policy.xml,存儲集群為各種行為操作設定的信任值閾值;
③user-confidence-database.xml,存儲計算得到的用戶信任值。
(2)功能測試實驗設計。本實驗首先在相同的虛擬機環境下,搭建3種集群,分別是common cluster(普通集群)、safe cluster(安全模式的集群)、trust cluster(加入用戶信任值的集群)。以下是本實驗具體設置的3種實驗情景:
①在上述trust cluster中,設置配置文件userconfidence-database.xml與confidence-policy.xml,主要對用戶的初始信任值和信任值閾值進行設置,使得用戶當前信任值小于信任值閾值,讀取存放在HDFS文件系統中的文件/test/example.txt,檢查shell終端是否給出程序所設定的提示信息;
②設置配置文件confidence-policy.xml,主要是對其中操作行為的信任值閾值進行設置,保證用戶當前的信任值不小于信任值閾值,使得上述3種集群在相同的條件下,各自正常運行一段時間,收集在這段時間內執行cat命令所需的時間并進行對比;
③設置配置文件confidence-policy.xml,主要是對其中操作行為的信任值閾值進行設置,保證用戶當前的信任值不小于信任值閾值,收集在上述3種集群里運行4個常用命令ls、mkdir、put、cat的執行時間并進行對比。
4.3實驗結果及分析
當用戶當前信任值小于系統設定的信任值閾值即滿足CR規則時,執行cat命令欲讀取并顯示存放在HDFS文件系統中的文件/test/example.txt的內容,在shell終端給出的提示信息如圖6所示。由圖中內容可知,基于用戶信任值的訪問控制模型能成功地阻止信任度不夠高的用戶訪問HDFS中的文件,并且能夠根據訪問需求給出特定的提示信息。

Fig.6 Prompt message of access failure圖6 訪問失敗提示信息
在HDFS中cat命令在相同條件下運行在3種集群內的執行時間對比如圖7,此時用戶滿足CP規則,因cat命令執行的結果是對HDFS中某個Block塊的訪問,其中涉及到TB-Token的申請與使用過程。由圖中結果可知:未啟用安全機制模塊來運行的common cluster,其命令運行效率明顯高于加入了安全機制的集群,因此加入信任值檢測模塊會帶來一定的時間消耗及效率損失,但是與safe cluster相比,在可以接受的范圍內。

Fig.7 Execution time comparison of cat command圖7 cat命令執行時間對比
圖8所示在HDFS中執行4個常用命令ls、mkdir、put、cat,并對比它們各自在3種集群中的執行時間。從圖中mkdir命令的執行時間統計可以發現,該命令在具有信任值驗證的trust cluster中的執行時間略大于其在safe cluster中的執行時間,從而可以證明,基于用戶信任值的訪問控制模型不會對集群帶來嚴重的運行負擔。

Fig.8 Execution time comparison of 4 common commands圖8 4個常用命令的執行時間對比
本文的主要貢獻是針對HDFS訪問控制薄弱的問題,提出了一種基于用戶信任值的訪問控制模型。本文模型結合可信賴第三方認證系統Kerberos實現對用戶的認證,并在此基礎上加入用戶信任值的概念,對用戶訪問實現了動態控制,提高了HDFS訪問控制機制的安全性。實驗結果表明,本文模型能夠實時地監控和收集用戶行為,并根據用戶行為記錄算得用戶信任值,再通過用戶信任值與信任值閾值的比較來動態控制用戶對集群的訪問,并且不會對集群的性能造成嚴重影響。本文模型適用于采用云存儲的分布式系統,如Hadoop、OpenStack等,也可將信任模型進行改進,應用于其他傳統數據庫的訪問控制中。
Kerberos KDC服務器作為密鑰分發管理的中心服務器,當用戶請求增多,服務器壓力增大時,其處理能力會減弱,因此Kerberos KDC服務器在性能方面會成為瓶頸。下一步研究工作將針對Kerberos KDC單服務器的性能瓶頸問題提出優化解決方案。
References:
[1] Wang Cong, Chow S S M, Wang Qian, et al. Privacy-preserving public auditing for secure cloud storage[J]. IEEE Transactions on Computers, 2013, 62(2): 362-375.
[2] Twinstrata[EB/OL]. (2012-05-10)[2015-01-28]. http://twinstrata.com.
[3] Hou Qinghua, Wu Yongwei, Zheng Weimin, et al. A method on protection of user data privacy in cloud storage platform[J]. Journal of Computer Research and Development, 2011, 48(7): 1146-1154.
[4] Ghemawat S, Gobioff H, Leung ST.The Google file system[C]// Proceedings of the 19th ACM Symposium on Operating Systems Principles, Lake George, USA, Oct 2003. New York, USA:ACM, 2003: 29-43.
[5] White T. Hadoop: the definitive guide[M]. Sebastopol, CA, USA: O'Reilly Media, Inc, 2012: 43-79.
[6] Shvachko K V. HDFS scalability: the limits to growth[J]. Login, 2010, 35(2): 6-16.
[7] Yang Xiaojie. Secure analysis of Kerberos protocol[J]. Computer Security, 2013(6): 17-21.
[8] Shvachko K, Kuang H, Radia S, et al. The Hadoop distributed file system[C]//Proceedings of the 2010 IEEE 26th Symposium on Mass Storage Systems and Technologies. Piscataway, USA: IEEE, 2010: 1-10.
[9] Wang Yijie, Sun Weidong, Zhou Song, et al. Key technologies of distributed storage for cloud computing[J]. Journal of Software, 2012, 23(4): 962-986.
[10] O’Malley O, Zhang Kan, Radia S, et al. Hadoop security design[R]. Yahoo, Inc, 2009: 1-19.
[11] Yu Shucheng, Wang Cong, Ren Kui, et al. Achieving secure, scalable, and fine-grained data access control in cloud computing[C]//Proceedings of the 2010 IEEE Conference on Computer Communications (INFOCOM), San Diego, USA, Mar 14-19, 2010. Piscataway, USA: IEEE, 2010: 1-9.
[12] Chang B R, Tsai H F, Lin Z Y, et al. Access security on cloud computing implemented in Hadoop system[C]//Proceedings of the 5th International Conference on Genetic and Evolutionary Computing, Xiamen, China, Aug 29-Sep 1, 2011. Piscataway, USA: IEEE, 2011: 77-80.
[13] Kumari A, Kushwaha D S. Kerberos style authentication and authorization through CTES model for distributed systems[C]// Computer Networks and Intelligent Computing: Proceedings of the 5th International Conference on Information Processing, Bangalore, India, Aug 5-7, 2011. Berlin, Heidelberg: Springer, 2011: 457-462.
[14] Nair S, Gautam N, Choudhary M. Using Kerberos with digital signature and AES encryption to provide data security in cloud computing[J]. International Journal of Computer Applications, 2014, 95(18): 25-29.
[15] Woo J L T, Tripunitara M V. Composing Kerberos and multimedia internet keying (MIKEY) for authenticated transport of group keys[J]. IEEE Transactions on Parallel and Distributed Systems, 2014, 25(4): 898-907.
附中文參考文獻:
[3]侯清鏵,武永衛,鄭緯民,等.一種保護云存儲平臺上用戶數據私密性的方法[J].計算機研究與發展, 2011, 48(7): 1146-1154.
[7]楊曉婕. Kerberos協議安全性分析[J].計算機安全, 2013 (6): 17-21.
[9]王意潔,孫偉東,周松,等.云計算環境下的分布存儲關鍵技術[J].軟件學報, 2012, 23(4): 962-986.

SHI Wenhao was born in 1988. He is an M.S. candidate at College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics. His research interests include access control and cloud computing, etc.史文浩(1988—),男,河北衡水人,南京航空航天大學計算機科學與技術學院碩士研究生,主要研究領域為訪問控制,云計算技術等。

JIANG Guohua was born in 1963. He is an associate professor and M.S. supervisor at Nanjing University of Aeronautics and Astronautics. His research interests include software testing and Internet of things engineering, etc.
江國華(1963—),男,江西婺源人,南京航空航天大學副教授、碩士生導師,主要研究領域為軟件測試,物聯網工程等。

QIN Xiaolin was born in 1953. He is a professor and Ph.D. supervisor at Nanjing University of Aeronautics and Astronautics, and the senior member of CCF. His research interests include spatial and spatio-temporal databases, data management and security in distributed environment, etc.
秦小麟(1953—),男,江蘇南京人,南京航空航天大學教授、博士生導師,CCF高級會員,主要研究領域為空間與時空數據庫,分布式環境數據管理與安全等。

WANG Sheng was born in 1991. He is an M.S. candidate at College of Computer Science and Technology, Nanjing University of Aeronautics and Astronautics. His research interests include database amd cloud computing, etc.
王勝(1991—),男,湖北黃岡人,南京航空航天大學計算機科學與技術學院碩士研究生,主要研究領域為數據庫,云計算技術等。
Access Control Model Research for HDFS Based on User Trust Value*
SHI Wenhao+, JIANG Guohua, QIN Xiaolin, WANG Sheng
College of Computer Science and Technology, Nanjing University ofAeronautics andAstronautics, Nanjing 210016, China
+ Corresponding author: E-mail: shiwh0707@foxmail.com
SHI Wenhao, JIANG Guohua, QIN Xiaolin, et al. Access control model research for HDFS based on user trust value. Journal of Frontiers of Computer Science and Technology, 2016, 10(1):25-35.
Abstract:At present, more and more people employ cloud storage to store or backup data in order to enhance the data removability. For the security of cloud storage, researchers mainly focus on privacy disclosure, data disaster tolerance, duplication eliminating and so on. However, few researchers pay attention to access control technology. On the basis of previous research, this paper proposes an access control model for HDFS (Hadoop distributed file system) based on user trust value. The model uses the trusted third party authentication system Kerberos for user authentication, sets a trust value for each user, and controls user access to HDFS dynamically by comparing the trust value and trust threshold. The experimental results show that the model overcomes the shortages of HDFS access control, furthermore, it can also control user access to the HDFS resources dynamically and effectively.
Key words:cloud storage; Hadoop distributed file system (HDFS); access control; trust value
文獻標志碼:A
中圖分類號:TP311
doi:10.3778/j.issn.1673-9418.1503027