張 劍 董曉明
(中國艦船研究設(shè)計中心 武漢 430064)
?
一種基于行為的B/S應(yīng)用系統(tǒng)訪問控制策略
張劍董曉明
(中國艦船研究設(shè)計中心武漢430064)
摘要隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,B/S模式在各類應(yīng)用系統(tǒng)中得到廣泛應(yīng)用。在基于B/S模式的應(yīng)用系統(tǒng)中,為了確保數(shù)據(jù)的安全性和保密性,一般會對用戶權(quán)限進行驗證和控制。論文在研究常用訪問控制策略的基礎(chǔ)上,提出了一種基于行為的B/S應(yīng)用系統(tǒng)訪問控制策略。詳細介紹了該訪問控制策略的實現(xiàn)方法和技術(shù)途徑,并對其特點進行了探討。
關(guān)鍵詞B/S; 訪問控制; 行為
An Access Control Policy Base on Action for B/S Application System
ZHANG JianDONG Xiaoming
(China Ship Development and Design Center, Wuhan430064)
AbstractAlong with the rapid development of computer technology and network technology, B/S mode has been used widely in various application systems. In B/S application system, user permission will be authorized and controlled for ensuring the security and confidentiality of data. Based on the research of general access control policy, a policy is proposed for B/S application system based on action. The implementation steps and technical approach is introduced in detail, and the characters are discussed.
Key WordsB/S, access control, action
Class NumberTP393
1引言
隨著計算機技術(shù)和網(wǎng)絡(luò)技術(shù)的快速發(fā)展,信息化、網(wǎng)絡(luò)化已經(jīng)成為現(xiàn)代生活的特征之一,無論是在廣域網(wǎng)還是在局域網(wǎng)中,B/S模式由于數(shù)據(jù)共享便利、實現(xiàn)方法簡單,在各類系統(tǒng)中得到廣泛應(yīng)用。出于數(shù)據(jù)的完整性和安全性討論,在基于B/S模式的應(yīng)用系統(tǒng)中,一般會設(shè)置一定的訪問控制策略[1~2],對用戶的操作進行權(quán)限驗證和控制。如何有效地進行訪問控制,成為研究的熱點。本文在研究常用訪問控制策略的基礎(chǔ)上,提出了一種基于行為的B/S應(yīng)用系統(tǒng)訪問控制策略,詳細介紹了該訪問控制策略的實現(xiàn)方法和技術(shù)途徑,并對該訪問控制策略的特點進行了探討。
2常用訪問控制策略
2.1自主訪問控制
自主訪問控制(Discretionary Access Control,DAC)[3~4]允許合法用戶以用戶或用戶組的身份訪問策略規(guī)定的客體,同時阻止非授權(quán)用戶訪問客體,某些用戶還可以自主地把自己所擁有的客體的訪問權(quán)限授予其他用戶。在實現(xiàn)上,首先要對用戶的身份進行鑒別,然后就可以按照訪問控制列表所賦予用戶的權(quán)限允許和限制用戶使用客體的資源。主體控制權(quán)限的修改通常由特權(quán)用戶或是特權(quán)用戶(管理員)組實現(xiàn)。
2.2強制訪問控制
強制訪問控制(Mandatory Access Control,MAC)[5~6]的用戶和客體資源都被賦予一定的安全級別,用戶不能改變自身和客體的安全級別,只有管理員才能夠確定用戶和組的訪問權(quán)限。MAC是一種多級訪問控制策略,在實施訪問控制時,系統(tǒng)先對訪問主體和受控對象的安全級別屬性進行比較,再決定訪問主體能否訪問該受控對象。
2.3基于角色的訪問控制
基于角色的訪問控制(Role-based Access Control,RBAC)[7~8]的基本思想是將訪問許可權(quán)分配給一定的角色,用戶通過飾演不同的角色獲得角色所擁有的訪問許可權(quán)。通過給用戶分配合適的角色,讓用戶與訪問權(quán)限相聯(lián)系。角色成為訪問控制中訪問主體和受控對象之間的一座橋梁。
2.4基于任務(wù)的訪問控制
基于任務(wù)的訪問控制(Task-based Access Control,TBAC)[9~10]是從任務(wù)(活動)的角度來建立安全模型和實現(xiàn)安全機制,在任務(wù)處理的過程中提供動態(tài)實時的安全管理。在TBAC中,對象的訪問權(quán)限控制并不是靜止不變的,而是隨著執(zhí)行任務(wù)的上下文環(huán)境發(fā)生變化。TBAC不僅能對不同工作流實行不同的訪問控制策略,而且還能對同一工作流的不同任務(wù)實例實行不同的訪問控制策略。
3B/S應(yīng)用系統(tǒng)的訪問控制策略
3.1安全需求
在B/S模式的應(yīng)用系統(tǒng)中,用戶通過瀏覽器方式訪問服務(wù)器上存儲的數(shù)據(jù)。為了保證數(shù)據(jù)的安全性,應(yīng)用系統(tǒng)在訪問控制方面一般應(yīng)滿足如下要求:
1) 通過給用戶授權(quán),分配給用戶一定范圍的權(quán)限,使得用戶按照分配的權(quán)限訪問系統(tǒng)數(shù)據(jù);
2) 通過給用戶分配角色身份,使得用戶只能執(zhí)行角色身份范圍內(nèi)的職權(quán)操作,不能逾越自己的角色身份;
3) 訪問控制策略實現(xiàn)方便,同時便于后期擴展。
3.2策略選擇
針對以上需求,單一的訪問控制策略不能完全滿足,而將自主訪問控制策略和基于角色的訪問控制策略結(jié)合起來可以滿足?;谝陨纤枷?提出了一個基于行為(action)的訪問控制策略。
總體實現(xiàn)思路是以action為核心實施訪問控制。將用戶的操作細分為多個action,用戶在執(zhí)行某個action之前,進行權(quán)限檢查,判斷用戶是否有權(quán)限進行這個操作,如果用戶有權(quán)限,則程序允許用戶執(zhí)行這個操作,否則,程序拒絕執(zhí)行,并提示用戶權(quán)限不夠。
權(quán)限檢查分為兩個步驟:
1) 檢查用戶被分配的角色是否有資格執(zhí)行當前的操作。該步驟采用基于角色的訪問控制策略。
2) 檢查用戶被授予的權(quán)限是否滿足action的權(quán)限要求。該步驟采用基于自主訪問控制策略。
比如,明確鰱鳙魚的投放、捕撈經(jīng)營權(quán)歸千島湖發(fā)展集團,鰱鳙魚年投放量必須在60萬kg以上,鰱鳙魚捕撈生產(chǎn)采取限額捕撈制度。
如果以上兩項權(quán)限檢查都通過,則說明用戶有權(quán)限執(zhí)行操作,系統(tǒng)放行用戶操作。只要有一項權(quán)限檢查沒通過,則系統(tǒng)阻止用戶操作。
3.3技術(shù)實現(xiàn)
3.3.1檢查用戶的角色資格
檢查用戶的角色資格包含三點:確定角色身份及角色的操作范圍;設(shè)置用戶角色;檢查用戶的角色權(quán)限。
1) 確定角色身份及角色的操作范圍
根據(jù)常用信息系統(tǒng)的角色劃分情況,設(shè)置四種身份角色:系統(tǒng)管理員、安全保密員、安全審計員和普通用戶,并對每種角色分配能夠執(zhí)行的操作,即每種角色能夠執(zhí)行哪些action。
2) 設(shè)置用戶角色
設(shè)置用戶名和密碼,設(shè)置用戶組,以及將用戶劃分到哪一個用戶組,這些操作都是在LDAP服務(wù)器上進行的。當用戶登錄系統(tǒng)時,根據(jù)用戶輸入的用戶名和密碼,從LDAP服務(wù)器獲取當前用戶的信息,查詢當前用戶屬于哪些用戶組,根據(jù)用戶所在的用戶組,判斷用戶的角色。具體對應(yīng)關(guān)系如表1所示。
表1 角色對應(yīng)的用戶組
在設(shè)置用戶角色時,需滿足以下條件:
2) 用戶不能同時具備多種角色身份,即用戶僅且只能被劃入上述四個特定用戶組的一個,不能同時存在于兩個及以上的特定用戶組中。
3) 檢查用戶角色的權(quán)限
當用戶執(zhí)行某個action時,首先獲取配置文件中該action能夠被哪些角色執(zhí)行,然后從LDAP服務(wù)器獲取用戶的角色身份,只要用戶的角色身份在允許執(zhí)行該action的角色列表中,則用戶的角色權(quán)限檢查通過,說明用戶有資格執(zhí)行該action。例如,執(zhí)行某個action時,要求的角色身份包括系統(tǒng)管理員、安全審計員、安全保密員,如果用戶的身份是普通用戶,則用戶無法執(zhí)行該action。
3.3.2檢查用戶的權(quán)限
檢查用戶的權(quán)限包含兩點:設(shè)置執(zhí)行每個action所需的權(quán)限;設(shè)置數(shù)據(jù)的訪問控制列表。
1) 設(shè)置執(zhí)行每個action所需的權(quán)限
用讀、寫、執(zhí)行,即RWX三位的二進制數(shù)來描述操作的權(quán)限。凡是執(zhí)行對數(shù)據(jù)進行寫入的操作需要擁有寫權(quán)限,凡是執(zhí)行對數(shù)據(jù)進行查詢的操作需要擁有讀權(quán)限。用‘0’表示無權(quán)限,‘1’表示有權(quán)限。由于操作action用不到執(zhí)行權(quán)限X,所以用RWX的二進制數(shù)表示執(zhí)行action所需要的權(quán)限時,X位用0填充。
action權(quán)限的設(shè)置需要仔細考慮實際操作的需要。例如,添加各種節(jié)點的操作是append,需要的權(quán)限表示為“010”,即寫入數(shù)據(jù)的權(quán)限;查詢各種節(jié)點列表的操作是update list,需要的權(quán)限是“100”,即讀取數(shù)據(jù)的權(quán)限;“000”則說明不需要用戶具備任何權(quán)限。
2) 設(shè)置數(shù)據(jù)的訪問控制列表
設(shè)置數(shù)據(jù)的訪問控制列表,就是設(shè)置指定用戶和用戶組對于特定數(shù)據(jù)中各種操作擁有的權(quán)限。權(quán)限信息記錄以XML文件形式記錄,在相應(yīng)的數(shù)據(jù)下加入訪問控制列表元素〈acl〉〈/acl〉,其詳細結(jié)構(gòu)如表2所示。修改權(quán)限信息記錄的操作只能由安全保密員進行設(shè)置。
在設(shè)置數(shù)據(jù)的訪問控制列表時,有以下特點:
(1)服務(wù)器自動為數(shù)據(jù)的創(chuàng)建者添加了對于該數(shù)據(jù)的訪問權(quán)限。而其他用戶對于該數(shù)據(jù)的訪問權(quán)限必須由安全保密員在訪問控制列表中設(shè)置。
(2)如果給用戶組分配了權(quán)限,那么該用戶組所有的用戶都被分配了相同的權(quán)限。
(3)如果某用戶所在的用戶組被分配了某數(shù)據(jù)的訪問權(quán)限,而該用戶又被單獨分配了對于該數(shù)據(jù)的訪問權(quán)限,那么系統(tǒng)以用戶單獨被分配的權(quán)限為準。
3) 檢查用戶的權(quán)限
當用戶執(zhí)行某個action時,首先獲取配置文件中執(zhí)行該action需要的權(quán)限,然后再獲取訪問控制列表中用戶被分配的權(quán)限。只要用戶擁有的權(quán)限滿足執(zhí)行該action需要的權(quán)限,則用戶的權(quán)限檢查通過,說明用戶有權(quán)限執(zhí)行該action。例如,執(zhí)行刪除某個節(jié)點的操作時,要求的權(quán)限是“010”寫權(quán)限,如果用戶擁有的權(quán)限是“100”讀權(quán)限,則用戶無法執(zhí)行該action,被系統(tǒng)拒絕。
由于在訪問控制列表中設(shè)置用戶對于數(shù)據(jù)的權(quán)限時,既可以設(shè)置用戶的權(quán)限,也可以設(shè)置用戶組的權(quán)限,所以檢查用戶的權(quán)限需要考慮到多方面的情況,按以下流程判斷用戶擁有的權(quán)限是否滿足要求:
(1)如果用戶是創(chuàng)建者,那么以創(chuàng)建者的權(quán)限作為判斷依據(jù),否則執(zhí)行第(2)步;
(2)如果用戶在訪問控制列表中被單獨設(shè)置權(quán)限,那么以用戶被單獨分配的權(quán)限作為判斷依據(jù),否則執(zhí)行第(3)步;
(3)如果用戶所在的用戶組在訪問控制列表中被設(shè)置了權(quán)限,那么以用戶組的權(quán)限作為用戶的權(quán)限進行判斷,否則執(zhí)行第(4)步。需要說明的是,如果用戶所在用戶組不止一個,且這些用戶組在在訪問控制列表中不止一個被設(shè)置了權(quán)限,取用戶組的最大權(quán)限,作為用戶的權(quán)限;
(4)取訪問控制列表中〈other/〉元素的權(quán)限,作為用戶權(quán)限被判斷的依據(jù)。
表2 訪問控制列表詳細結(jié)構(gòu)
4討論
基于行為的訪問控制策略,可以為B/S系統(tǒng)的數(shù)據(jù)訪問控制帶來如下好處:
1) 實施靈活。通過為用戶劃分角色,將用戶的權(quán)限進行粗分,使得不同角色身份的用戶具有對應(yīng)的權(quán)限。同時也可直接為用戶設(shè)置相應(yīng)權(quán)限。
2) 擴展容易,可以根據(jù)實際需要,將行為劃分為不同的粒度。例如,可以將粒度粗略劃分到每一種操作(添加、刪除);也可以細致劃分到每一類節(jié)點的操作。
5結(jié)語
本文針對B/S應(yīng)用系統(tǒng)的訪問控制,提出了一種基于行為的訪問控制策略。該策略實施靈活、擴展容易,可以有效實現(xiàn)B/S應(yīng)用系統(tǒng)的數(shù)據(jù)安全性保護。
參 考 文 獻
[1] 魏瑋,張慶,梁文錚.B/S系統(tǒng)中跨權(quán)訪問控制技術(shù)[J].兵工自動化,2011,30(2):49,65.
WEI Wei, ZHANG Qing, LIANG Wenzheng. Technique of Access Control Based on B/S System[J]. Ordnance Industry Automation,2011,30(2):49,65.
[2] 張軒,余亮.基于LDAP的B/S應(yīng)用系統(tǒng)權(quán)限管理[J].艦船電子工程,2012,32(9):108-110.
ZHANG Xuan, YU Lian. Authority Management on B/S Application System Based on LDAP[J]. Ship Electronic Engineering,2012,32(9):108-110.
[3] 張強,魏立峰.嚴格自主訪問控制的研究與設(shè)計[J].計算機技術(shù)與發(fā)展,2012,22(4):219-222,226.
ZHANG Qiang, WEI Lifeng. Research and Design of Strict Discretionary Access Control[J]. Computer Technology and Development,2012,22(4):219-222,226.
[4] 李廣.強制訪問控制和自主訪問控制應(yīng)用區(qū)別淺析[J].計算機安全,2012(8):86-88.
LI Guang. Analysis for Difference between Mandatory Access Control and Discretionary Access Control[J]. Computer Security,2012(8):86-88.
[5] 王靜,徐開勇,趙彬.一種Xen細粒度強制訪問控制框架的設(shè)計與實現(xiàn)[J].計算機應(yīng)用與軟件,2013,29(12):99-102,136.
WANG Jing, XU Kaiyong, ZHAO Bin. Design and Implementation of A Fine-Grained Mandatory Access Control Framework of Xen[J]. Computer Applications and Software,2013,29(12):99-102,136.
[6] 蔣紹林,王金雙,于晗,等.改進的Android強制訪問控制模型[J].計算機應(yīng)用,2013,33(6):1630-1636.
JIANG Shaolin, WANG Jinshuang, YU Han, et al. Improved mandatory access control model for Android[J]. Journal of Computer Applications,2013,33(6):1630-1636.
[7] 吳嬌.基于RBAC的權(quán)限管理研究與設(shè)計[J].現(xiàn)代機械,2014(1):91-94.
WU Jiao. Research and design of privilege management based on RBAC[J]. Modern Machinery,2014(1):91-94.
[8] 夏文忠,單長吉.RBAC在圖書館門戶網(wǎng)站訪問控制中的應(yīng)用[J].重慶科技學(xué)院學(xué)報(自然科學(xué)版),2014,16(2):137-139.
XIA Wenzhong, SHAN Changji. The Application of RBAC in The Library Portal[J]. Journal of Chongqing University of Science and Technology(Natural Sciences Edition),2014,16(2):137-139.
[9] 李勇,蓋新貌.面向應(yīng)用對象的訪問控制模型研究[J].計算機工程與設(shè)計,2012,33(1):61-65.
LI Yong, GAI Xinmao. Research of application object oriented access control model[J]. Computer Engineering and Design,2012,33(1):61-65.
[10] 張文梅.基于信任的任務(wù)訪問控制模型[J].實驗室研究與探索,2013,32(3):258-262.
ZHANG Wenmei. Task-based Access Control Model Based on Trust[J]. Research and Exploration in Laboratory,2013,32(3):258-262.
中圖分類號TP393
DOI:10.3969/j.issn.1672-9722.2016.01.025
作者簡介:張劍,男,碩士,工程師,研究方向:艦船電子信息系統(tǒng)。
收稿日期:2015年7月10日,修回日期:2015年8月21日