趙海田,生加根,陳弘?。ńK科技大學(xué) 江蘇 鎮(zhèn)江212300)
RBAC模型在食品安全溯源平臺(tái)中的應(yīng)用
趙海田,生加根,陳弘健
(江蘇科技大學(xué) 江蘇 鎮(zhèn)江212300)
在介紹傳統(tǒng)訪問控制的基礎(chǔ)之上,針對(duì)食品安全溯源平臺(tái)權(quán)限規(guī)劃復(fù)雜的問題,采用基于角色的訪問控制這種較為成熟的訪問控制機(jī)制來解決平臺(tái)授權(quán)問題。利用角色訪問控制的角色與權(quán)力分離的特性,使得平臺(tái)用戶不在與權(quán)限相關(guān)聯(lián),而是通過角色這一中介實(shí)現(xiàn)用戶權(quán)限的操作。具體方法是將整個(gè)溯源平臺(tái)用戶角色分為:普通用戶,企業(yè)用戶,監(jiān)管用戶和管理員這4大類。權(quán)限的主要媒介為主界面菜單和按鈕。該方法的設(shè)計(jì)和實(shí)現(xiàn)過程對(duì)于同類軟件的開發(fā)具有一定的參考價(jià)值。
RBAC;食品安全;溯源;訪問控制
隨著經(jīng)濟(jì)全球化和國際食品貿(mào)易的日益擴(kuò)大,食品安全已經(jīng)成為一個(gè)重要的公共衛(wèi)生問題。我國作為發(fā)展中國家,食品安全問題更為突出。這些食品安全事件在給消費(fèi)者帶來危害的同時(shí),也給中國整個(gè)食品行業(yè)帶來了巨大的沖擊。隨著科學(xué)技術(shù)的快速發(fā)展,信息網(wǎng)絡(luò)技術(shù)為實(shí)施食品的數(shù)字化追溯創(chuàng)造了基礎(chǔ)條件。一個(gè)成熟的溯源系統(tǒng)能對(duì)食品從生產(chǎn)到銷售的各個(gè)環(huán)節(jié)中產(chǎn)生的數(shù)據(jù)加以存儲(chǔ)和分析,從源頭上為消費(fèi)者提供食品安全性的數(shù)據(jù)支持[1-2]。
食品安全溯源平臺(tái)(以下簡(jiǎn)稱溯源平臺(tái))是一種為終端消費(fèi)者提供食品生產(chǎn)過程中的各種信息同時(shí)也為食品生產(chǎn)企業(yè)提供一種自檢機(jī)制的服務(wù)性軟件[3]。溯源平臺(tái)通過在食品生產(chǎn)過程中依靠相關(guān)傳感器,各類檢測(cè)機(jī)構(gòu)以及人工記錄等采集的各種數(shù)據(jù)加以存儲(chǔ)和分析,從而為消費(fèi)者提供可靠的食品安全性的參考并為食品生產(chǎn)企業(yè)提供相關(guān)自檢信息。
溯源平臺(tái)的用戶龐大且關(guān)系復(fù)雜。在溯源平臺(tái)中每個(gè)企業(yè)都有若干員工擁有自己的角色和權(quán)限,相互不能影響。平臺(tái)的核心數(shù)據(jù)由各個(gè)企業(yè)提供。為了確保平臺(tái)中企業(yè)數(shù)據(jù)的安全性和一致性,使企業(yè)能夠放心地將核心數(shù)據(jù)交給服務(wù)商進(jìn)行管理。這些數(shù)據(jù)甚至可能涉及到一些與經(jīng)營相關(guān)等敏感數(shù)據(jù),而這部分?jǐn)?shù)據(jù)即使對(duì)企業(yè)內(nèi)部的一部分員工也是保密的,只有特定的員工擁有訪問權(quán)限。這就要求平臺(tái)提供可靠地訪問控制機(jī)制。
自主訪問控制的誕生相對(duì)較早,伴隨著分時(shí)系統(tǒng)的產(chǎn)生。自主訪問控制主要模擬了現(xiàn)實(shí)世界中對(duì)物品的所有權(quán)問題?,F(xiàn)實(shí)世界中人們可以將自己所擁有的東西賦予他人,使其他人能也擁有這個(gè)東西和這個(gè)東西的附屬權(quán)限。在網(wǎng)絡(luò)世界中,作為客體擁有者的個(gè)人主體可以控制其他人對(duì)客體的訪問能力,那么這樣的訪問控制就可以稱為自主訪問控制[4-6]。自主訪問控制面臨的最大問題是主體可以隨意的將自身對(duì)客體的權(quán)利直接或間接地賦予其他主體。這種比較寬松的訪問控制使得主體的訪問權(quán)限具有很強(qiáng)的傳遞性。這一特性可能帶來授權(quán)的混亂并且容易使系統(tǒng)產(chǎn)生安全漏洞。
為了解決自主訪問控制容易導(dǎo)致授權(quán)混亂的問題,美國政府和軍方開發(fā)出了強(qiáng)制訪問控制。在強(qiáng)制訪問控制模型中,授權(quán)策略是統(tǒng)一的,主體和客體都被賦予了一定的安全級(jí)別。相較于自主訪問控制,強(qiáng)制訪問控制中的客體不再擁有改變自身對(duì)客體安全級(jí)別的能力[7-8]。只有管理員能改變,從而更易于管理。在強(qiáng)制訪問控制中,系統(tǒng)根據(jù)客體中信息的敏感標(biāo)簽和訪問信息的主體的等級(jí)來確定。強(qiáng)制訪問控制所面臨的最大問題在于實(shí)際系統(tǒng)中主體與客體的等級(jí)往往要寬泛的多,同時(shí)即使擴(kuò)充系統(tǒng)的等級(jí)范圍,對(duì)主體和客體的等級(jí)標(biāo)定又成為了更大的問題。這需要專家的參與,同時(shí)隨著系統(tǒng)資源的增長與人員的擴(kuò)充,這種標(biāo)定工作變得越來越繁雜,并且標(biāo)定本身就有可能存在問題。這很大程度上限制了強(qiáng)制訪問控制的應(yīng)用[9]。
在傳統(tǒng)的訪問控制中,系統(tǒng)通常賦予用戶一個(gè)客體訪問規(guī)則集。而在現(xiàn)實(shí)的應(yīng)用中往往有許多具有相同職能的用戶,他們通常具有相同的權(quán)限許可。傳統(tǒng)的訪問控制的解決方法是將這些相似的用戶歸為同一組,再為這個(gè)組分配許可。但在實(shí)際的系統(tǒng)組織結(jié)構(gòu)中,用戶所屬組別經(jīng)常發(fā)生變動(dòng)的同時(shí),安全需求也同時(shí)發(fā)生變動(dòng),這就要求不停的變換相應(yīng)的組。在一個(gè)龐大的系統(tǒng)中這種工作量可想而知,并且這同樣導(dǎo)致在組分配過程中發(fā)生的錯(cuò)誤。
針對(duì)傳統(tǒng)訪問控制的問題,基于角色訪問控制(Role Based Access Control,RBAC)引入了角色這一概念。它指的是可以完成一定事務(wù)的命名組。事務(wù)指的是完成一定功能的過程。相較于用戶組,用戶受到的角色指派往往因具體的情況而定,而用戶組相對(duì)固定[10-11]。同時(shí)角色的抽象層次更高。更重要的一點(diǎn)是角色這一概念更符合實(shí)際中企業(yè)的管理。系統(tǒng)中的角色與現(xiàn)實(shí)世界中的角色相吻合,角色充當(dāng)了主體和客體之間的媒介,這是現(xiàn)實(shí)世界的真實(shí)反映。
RBAC模型基本思想就是將角色作為一種橋梁連接用戶和權(quán)限,以角色來操作實(shí)際的權(quán)限,通過角色的隔離作用來達(dá)到系統(tǒng)安全性的目的。同時(shí)角色也作為一個(gè)管理單元。
RBAC模型包括一些最基本的元素,包括:用戶、角色、權(quán)限(操作+對(duì)象)[12]。它定義了RBAC最基本的策略:為用戶分配角色。由此,用戶通過角色來訪問客體。整個(gè)過程包括用戶的角色授予和角色的權(quán)限分配[13]。這其中還包括一系列的會(huì)話,即從用戶到分配給用戶的被激活角色子集的映射。具體如圖1所示。
圖1RBAC模型
RBAC模型的形式化定義如下:
1)USERS(用戶集)、ROLES(角色集)、OPS(操作集)和OBS(對(duì)象集)是4個(gè)最基本的元素。
2)URA?USERS×ROLES,表示用戶和角色之間是多對(duì)多的關(guān)系。assigned_users(r:ROlES)→2users,表示角色r到一個(gè)用戶集的映射。形式化表示為:assigned_users(r)={u∈USERS|(u,r)∈URA}
3)PRMS=2ops×obs,表示權(quán)限集合。PRA?PRMS× ROLES,表示從權(quán)限集合到角色集合是進(jìn)行多對(duì)多的映射的。角色被賦予的權(quán)限關(guān)系的形式化表達(dá)式,如下:assigned_permissions(r:ROLES)→2PRMS,表示角色r到一個(gè)權(quán)限集合的映射,形式化為:assigned_permissions(r)={p∈PRMS|(p,r)∈PRA}。op (p:PRMS)→{op∈OPS},表示權(quán)限到操作之間的映射,返回權(quán)限p所關(guān)聯(lián)的操作集合。ob(p:PRMS)→{ob∈OBS},表示權(quán)限到目標(biāo)對(duì)象的映射,返回權(quán)限p所關(guān)聯(lián)的目標(biāo)對(duì)象的集合。
4)SESSION,會(huì)話集合。avail_session_perms(s:SESSION)→2perms,表示一個(gè)會(huì)話中的權(quán)限集合。
3.1 設(shè)計(jì)思路
食品安全溯源平臺(tái)由于涉及的功能較多,遂將整個(gè)平臺(tái)分為多個(gè)子系統(tǒng)。這些功能子系統(tǒng)只對(duì)特定的用戶開放。這就要求在用戶具備登錄系統(tǒng)的能力的基礎(chǔ)之上,對(duì)子系統(tǒng)的功能訪問需求加以區(qū)分[14]。溯源平臺(tái)依據(jù)功能需求就分為:基礎(chǔ)數(shù)據(jù)服務(wù),企業(yè)管理,溯源管理,標(biāo)識(shí)碼管理,系統(tǒng)管理等。對(duì)普通的消費(fèi)者而言只涉及到基礎(chǔ)數(shù)據(jù)查詢服務(wù);對(duì)企業(yè)而言涉及到主要包括數(shù)據(jù)的上傳,預(yù)警問題處理等;對(duì)政府監(jiān)管部門而言,涉及到企業(yè)數(shù)據(jù)的監(jiān)管和預(yù)警處理。針對(duì)這些情況,將整個(gè)溯源平臺(tái)用戶角色分為:普通用戶,企業(yè)用戶,監(jiān)管用戶和管理員這4大類。對(duì)于子系統(tǒng)中一些小功能點(diǎn)的權(quán)限區(qū)分,系統(tǒng)是通過按鈕的激活與否來控制。這些小功能點(diǎn)所對(duì)應(yīng)的功能角色都是在基礎(chǔ)角色上加以繼承而派生出來的。
整個(gè)平臺(tái)中的角色與用戶的關(guān)系都是通過數(shù)據(jù)表的外鍵關(guān)聯(lián)來實(shí)現(xiàn)的[15]。而整個(gè)系統(tǒng)的功能觸發(fā)點(diǎn)又是與后臺(tái)菜單和按鈕相關(guān)聯(lián)的。所以角色與權(quán)限的關(guān)聯(lián)是通過按鈕和菜單實(shí)現(xiàn)的。
另外,對(duì)于頁面來說,具有相應(yīng)頁面鏈接權(quán)限的用戶不一定都具有本頁面上所有按鍵和鏈接的權(quán)限。為了提高開發(fā)效率和程序的靈活性,將用戶不具有訪問權(quán)限的按鈕或鏈接設(shè)置為不可見,用戶具有訪問權(quán)限的按鈕或鏈接設(shè)置為可見。
3.2 數(shù)據(jù)庫的設(shè)計(jì)
在整個(gè)溯源系統(tǒng)中,實(shí)體表為用戶表(Users)、用戶角色表(UsersRole)、角色表(Role)、組表(Group)權(quán)限表(Auth)、許可表(Permission)、許可操作表(PermiOpera)、操作表(Operation)和資源表(Resource),表間關(guān)系如圖2所示。
圖2 數(shù)據(jù)表
用戶表主要記錄用戶的基本信息;用戶角色用以實(shí)現(xiàn)用戶與角色的關(guān)聯(lián)。組表用以規(guī)定用戶對(duì)應(yīng)的組。權(quán)限表規(guī)定該角色所具有的權(quán)限。操作表和資源表用以表示菜單,按鈕能實(shí)現(xiàn)的后臺(tái)操作。
3.3 控制流程
用戶所得權(quán)限的基本過程如圖3所示。
圖3 控制流程圖
對(duì)訪問控制流程圖描述如下:
1)訪問者通過瀏覽器對(duì)溯源平臺(tái)發(fā)出請(qǐng)求,系統(tǒng)自動(dòng)跳轉(zhuǎn)到登陸頁面。用戶輸入自己的賬號(hào),密碼以及驗(yàn)證碼。
2)系統(tǒng)通過后臺(tái)數(shù)據(jù)庫存儲(chǔ)的數(shù)據(jù)與用戶的輸入數(shù)據(jù)進(jìn)行比對(duì)。如果用戶輸入的用戶名和密碼(經(jīng)MD5加密)與后臺(tái)數(shù)據(jù)庫相符,則允許該用戶進(jìn)入系統(tǒng),否則返回錯(cuò)誤提示。
3)經(jīng)過身份驗(yàn)證的用戶在登陸溯源平后,系統(tǒng)后臺(tái)會(huì)根據(jù)用戶的權(quán)限特征進(jìn)行相關(guān)操作。首先系統(tǒng)會(huì)在后臺(tái)查詢用戶的各種必要信息,將這部分重要身份信息存入用戶獨(dú)有的session。隨后系統(tǒng)轉(zhuǎn)發(fā)到后臺(tái)首頁。后臺(tái)在加載首頁之前會(huì)查詢用戶session中權(quán)限信息,如果session中權(quán)限信息為空,后臺(tái)則會(huì)一次通過用戶ID和角色I(xiàn)D的外鍵關(guān)聯(lián)獲得角色I(xiàn)D,由角色I(xiàn)D通過權(quán)限表查詢得到對(duì)應(yīng)的權(quán)限。相似的情況下獲得操作對(duì)象,資源對(duì)象,許可對(duì)象等等。將這所有的權(quán)限信息存入session中,以便頁面菜單的校驗(yàn)。這整個(gè)過程保證接下來相關(guān)菜單和按鈕的操作。
4)根據(jù)當(dāng)前用戶角色和所屬組織確定系統(tǒng)中的哪些頁面資源是可見的,并根據(jù)操作碼確定每個(gè)頁面中的每個(gè)Button按鈕的顯示狀態(tài),當(dāng)用戶沒有該按鈕操作權(quán)限時(shí),自動(dòng)隱藏該按鈕。比如信息員具有發(fā)布信息、編輯信息、刪除信息等操作權(quán)限,而審核員具有審核信息、駁回信息等權(quán)限,而沒有發(fā)布信息的權(quán)限。因此不同角色的用戶進(jìn)入同一頁面后按鈕顯示狀態(tài)可能不同。
權(quán)限管理是溯源平臺(tái)的重要組成部分,權(quán)限管理的技術(shù)和策略對(duì)系統(tǒng)的信息安全影響很大。文中在分析系統(tǒng)用戶組成的基礎(chǔ)之上,采用成熟的RBAC模型對(duì)整個(gè)溯源系統(tǒng)的權(quán)限加以控制。RBAC模型在一定程度上滿足安全性的需要,還降低了權(quán)限管理和維護(hù)的復(fù)雜性,簡(jiǎn)化了用戶的授權(quán),對(duì)其他管理系統(tǒng)也具有一定的參考價(jià)值。
[1]Clarke S.Standards for Second-generation Portals [J].IEEE Internet Computing,2004,8(2):54-60.
[2]丁振國,吳環(huán)宇.RBAC在管理信息系統(tǒng)中的應(yīng)用[J].微計(jì)算機(jī)信息,2007,23(3):4-8.
[3]李龍.動(dòng)態(tài)性、安全性網(wǎng)站開發(fā)平臺(tái)的研究與開發(fā)[D].杭州:浙江大學(xué),2002.
[4]Osbom M N.The role graph model and conflict of interest[J].ACMTransaction on Information and System Security,1999,2(1):3-33.
[5]Ferraiolo D,Sandhu R.NIST Standard for Rolebased Access Control[J].ACM Transaction on Information and System Security,2001,4(3):224-274.
[6]Sandhu R S,Coyne E J.Role-Based access control models[J].IEEEComputer,1996,2(3):8-47.
[7]Ferraiolo D,Sandhu R,Kuhn D R,et al.Proposed NIST standard for role-based access control[J].ACM Trans on Information and System Security,2001,4(3):224-274.
[8]徐曉濤,洪帆.辦公自動(dòng)化系統(tǒng)中基于RBAC的授權(quán)模型[J].通信技術(shù),2006,4(2):87-89.
[9]Sandhurs,Coyneej,F(xiàn)einsteinhl,et al.Role based control models[J].IEEE Computer,1996,29(2): 38-47.
[10]彭文波.MD5算法原理及應(yīng)用[J].信息網(wǎng)絡(luò)安全,2005,5(1):44-46.
[11]劉玉莎.信息管理系統(tǒng)中安全方案的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與應(yīng)用,1999,35(11):68-70.
[12]彭煥斌,王亞弟,韓繼紅.一種基于多級(jí)安全的訪問控制模型[J].微計(jì)算機(jī)信息,2008,9(3):64-65.
[13]徐江峰,劉恒強(qiáng).基于角色和加密技術(shù)的訪問控制研究[J].微計(jì)算機(jī)信息,2008,21(6):36-38.
[14]徐仁佐,鄭紅軍,陳斌,等.基于角色和上下文的訪問控制模型 [J].計(jì)算機(jī)應(yīng)用研究,2004,21(12): 140-142.
[15]姚寒冰,胡和平,盧正鼎,等.基于角色和上下文的動(dòng)態(tài)網(wǎng)格訪問控制研究[J].計(jì)算機(jī)科學(xué),2006,33(10):41-44.
RBAC model in the application of food safety traceability platform
ZHAO Hai-tian,SHEN Jia-gen,CHEN Hong-jian
(Jiangsu University of Science and Technology,Zhenjiang 212300,China)
On the basis of traditional access control in the introduction,this article will such a mature role based access control access control mechanism is introduced into the food safety traceability platform.Use role separation characteristics of access control,the platform user is not associated with permissions but through the mediation of role to realize the operation of user permissions.The traceability platform user roles can be divided into:ordinary users and enterprise users,regulatory users and administrators that four broad categories.The main media of the permissions interface menu and button.At the same time the design and implementation process of this method has reference value for similar software development.
RBAC;food safty;traceability;acess control
TN99
A
1674-6236(2017)07-0049-04
2016-02-21稿件編號(hào):201602084
江蘇省科技廳社會(huì)發(fā)展基金項(xiàng)目(2135021402)
趙海田(1989—),男,江蘇南通人,碩士研究生。研究方向:訪問控制。