趙海田,生加根,陳弘?。ńK科技大學(xué) 江蘇 鎮(zhèn)江212300)
RBAC模型在食品安全溯源平臺中的應(yīng)用
趙海田,生加根,陳弘健
(江蘇科技大學(xué) 江蘇 鎮(zhèn)江212300)
在介紹傳統(tǒng)訪問控制的基礎(chǔ)之上,針對食品安全溯源平臺權(quán)限規(guī)劃復(fù)雜的問題,采用基于角色的訪問控制這種較為成熟的訪問控制機制來解決平臺授權(quán)問題。利用角色訪問控制的角色與權(quán)力分離的特性,使得平臺用戶不在與權(quán)限相關(guān)聯(lián),而是通過角色這一中介實現(xiàn)用戶權(quán)限的操作。具體方法是將整個溯源平臺用戶角色分為:普通用戶,企業(yè)用戶,監(jiān)管用戶和管理員這4大類。權(quán)限的主要媒介為主界面菜單和按鈕。該方法的設(shè)計和實現(xiàn)過程對于同類軟件的開發(fā)具有一定的參考價值。
RBAC;食品安全;溯源;訪問控制
隨著經(jīng)濟全球化和國際食品貿(mào)易的日益擴大,食品安全已經(jīng)成為一個重要的公共衛(wèi)生問題。我國作為發(fā)展中國家,食品安全問題更為突出。這些食品安全事件在給消費者帶來危害的同時,也給中國整個食品行業(yè)帶來了巨大的沖擊。隨著科學(xué)技術(shù)的快速發(fā)展,信息網(wǎng)絡(luò)技術(shù)為實施食品的數(shù)字化追溯創(chuàng)造了基礎(chǔ)條件。一個成熟的溯源系統(tǒng)能對食品從生產(chǎn)到銷售的各個環(huán)節(jié)中產(chǎn)生的數(shù)據(jù)加以存儲和分析,從源頭上為消費者提供食品安全性的數(shù)據(jù)支持[1-2]。
食品安全溯源平臺(以下簡稱溯源平臺)是一種為終端消費者提供食品生產(chǎn)過程中的各種信息同時也為食品生產(chǎn)企業(yè)提供一種自檢機制的服務(wù)性軟件[3]。溯源平臺通過在食品生產(chǎn)過程中依靠相關(guān)傳感器,各類檢測機構(gòu)以及人工記錄等采集的各種數(shù)據(jù)加以存儲和分析,從而為消費者提供可靠的食品安全性的參考并為食品生產(chǎn)企業(yè)提供相關(guān)自檢信息。
溯源平臺的用戶龐大且關(guān)系復(fù)雜。在溯源平臺中每個企業(yè)都有若干員工擁有自己的角色和權(quán)限,相互不能影響。平臺的核心數(shù)據(jù)由各個企業(yè)提供。為了確保平臺中企業(yè)數(shù)據(jù)的安全性和一致性,使企業(yè)能夠放心地將核心數(shù)據(jù)交給服務(wù)商進行管理。這些數(shù)據(jù)甚至可能涉及到一些與經(jīng)營相關(guān)等敏感數(shù)據(jù),而這部分?jǐn)?shù)據(jù)即使對企業(yè)內(nèi)部的一部分員工也是保密的,只有特定的員工擁有訪問權(quán)限。這就要求平臺提供可靠地訪問控制機制。
自主訪問控制的誕生相對較早,伴隨著分時系統(tǒng)的產(chǎn)生。自主訪問控制主要模擬了現(xiàn)實世界中對物品的所有權(quán)問題?,F(xiàn)實世界中人們可以將自己所擁有的東西賦予他人,使其他人能也擁有這個東西和這個東西的附屬權(quán)限。在網(wǎng)絡(luò)世界中,作為客體擁有者的個人主體可以控制其他人對客體的訪問能力,那么這樣的訪問控制就可以稱為自主訪問控制[4-6]。自主訪問控制面臨的最大問題是主體可以隨意的將自身對客體的權(quán)利直接或間接地賦予其他主體。這種比較寬松的訪問控制使得主體的訪問權(quán)限具有很強的傳遞性。這一特性可能帶來授權(quán)的混亂并且容易使系統(tǒng)產(chǎn)生安全漏洞。
為了解決自主訪問控制容易導(dǎo)致授權(quán)混亂的問題,美國政府和軍方開發(fā)出了強制訪問控制。在強制訪問控制模型中,授權(quán)策略是統(tǒng)一的,主體和客體都被賦予了一定的安全級別。相較于自主訪問控制,強制訪問控制中的客體不再擁有改變自身對客體安全級別的能力[7-8]。只有管理員能改變,從而更易于管理。在強制訪問控制中,系統(tǒng)根據(jù)客體中信息的敏感標(biāo)簽和訪問信息的主體的等級來確定。強制訪問控制所面臨的最大問題在于實際系統(tǒng)中主體與客體的等級往往要寬泛的多,同時即使擴充系統(tǒng)的等級范圍,對主體和客體的等級標(biāo)定又成為了更大的問題。這需要專家的參與,同時隨著系統(tǒng)資源的增長與人員的擴充,這種標(biāo)定工作變得越來越繁雜,并且標(biāo)定本身就有可能存在問題。這很大程度上限制了強制訪問控制的應(yīng)用[9]。
在傳統(tǒng)的訪問控制中,系統(tǒng)通常賦予用戶一個客體訪問規(guī)則集。而在現(xiàn)實的應(yīng)用中往往有許多具有相同職能的用戶,他們通常具有相同的權(quán)限許可。傳統(tǒng)的訪問控制的解決方法是將這些相似的用戶歸為同一組,再為這個組分配許可。但在實際的系統(tǒng)組織結(jié)構(gòu)中,用戶所屬組別經(jīng)常發(fā)生變動的同時,安全需求也同時發(fā)生變動,這就要求不停的變換相應(yīng)的組。在一個龐大的系統(tǒng)中這種工作量可想而知,并且這同樣導(dǎo)致在組分配過程中發(fā)生的錯誤。
針對傳統(tǒng)訪問控制的問題,基于角色訪問控制(Role Based Access Control,RBAC)引入了角色這一概念。它指的是可以完成一定事務(wù)的命名組。事務(wù)指的是完成一定功能的過程。相較于用戶組,用戶受到的角色指派往往因具體的情況而定,而用戶組相對固定[10-11]。同時角色的抽象層次更高。更重要的一點是角色這一概念更符合實際中企業(yè)的管理。系統(tǒng)中的角色與現(xiàn)實世界中的角色相吻合,角色充當(dāng)了主體和客體之間的媒介,這是現(xiàn)實世界的真實反映。
RBAC模型基本思想就是將角色作為一種橋梁連接用戶和權(quán)限,以角色來操作實際的權(quán)限,通過角色的隔離作用來達到系統(tǒng)安全性的目的。同時角色也作為一個管理單元。
RBAC模型包括一些最基本的元素,包括:用戶、角色、權(quán)限(操作+對象)[12]。它定義了RBAC最基本的策略:為用戶分配角色。由此,用戶通過角色來訪問客體。整個過程包括用戶的角色授予和角色的權(quán)限分配[13]。這其中還包括一系列的會話,即從用戶到分配給用戶的被激活角色子集的映射。具體如圖1所示。
圖1RBAC模型
RBAC模型的形式化定義如下:
1)USERS(用戶集)、ROLES(角色集)、OPS(操作集)和OBS(對象集)是4個最基本的元素。
2)URA?USERS×ROLES,表示用戶和角色之間是多對多的關(guān)系。assigned_users(r:ROlES)→2users,表示角色r到一個用戶集的映射。形式化表示為:assigned_users(r)={u∈USERS|(u,r)∈URA}
3)PRMS=2ops×obs,表示權(quán)限集合。PRA?PRMS× ROLES,表示從權(quán)限集合到角色集合是進行多對多的映射的。角色被賦予的權(quán)限關(guān)系的形式化表達式,如下:assigned_permissions(r:ROLES)→2PRMS,表示角色r到一個權(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)對象的映射,返回權(quán)限p所關(guān)聯(lián)的目標(biāo)對象的集合。
4)SESSION,會話集合。avail_session_perms(s:SESSION)→2perms,表示一個會話中的權(quán)限集合。
3.1 設(shè)計思路
食品安全溯源平臺由于涉及的功能較多,遂將整個平臺分為多個子系統(tǒng)。這些功能子系統(tǒng)只對特定的用戶開放。這就要求在用戶具備登錄系統(tǒng)的能力的基礎(chǔ)之上,對子系統(tǒng)的功能訪問需求加以區(qū)分[14]。溯源平臺依據(jù)功能需求就分為:基礎(chǔ)數(shù)據(jù)服務(wù),企業(yè)管理,溯源管理,標(biāo)識碼管理,系統(tǒng)管理等。對普通的消費者而言只涉及到基礎(chǔ)數(shù)據(jù)查詢服務(wù);對企業(yè)而言涉及到主要包括數(shù)據(jù)的上傳,預(yù)警問題處理等;對政府監(jiān)管部門而言,涉及到企業(yè)數(shù)據(jù)的監(jiān)管和預(yù)警處理。針對這些情況,將整個溯源平臺用戶角色分為:普通用戶,企業(yè)用戶,監(jiān)管用戶和管理員這4大類。對于子系統(tǒng)中一些小功能點的權(quán)限區(qū)分,系統(tǒng)是通過按鈕的激活與否來控制。這些小功能點所對應(yīng)的功能角色都是在基礎(chǔ)角色上加以繼承而派生出來的。
整個平臺中的角色與用戶的關(guān)系都是通過數(shù)據(jù)表的外鍵關(guān)聯(lián)來實現(xiàn)的[15]。而整個系統(tǒng)的功能觸發(fā)點又是與后臺菜單和按鈕相關(guān)聯(lián)的。所以角色與權(quán)限的關(guān)聯(lián)是通過按鈕和菜單實現(xiàn)的。
另外,對于頁面來說,具有相應(yīng)頁面鏈接權(quán)限的用戶不一定都具有本頁面上所有按鍵和鏈接的權(quán)限。為了提高開發(fā)效率和程序的靈活性,將用戶不具有訪問權(quán)限的按鈕或鏈接設(shè)置為不可見,用戶具有訪問權(quán)限的按鈕或鏈接設(shè)置為可見。
3.2 數(shù)據(jù)庫的設(shè)計
在整個溯源系統(tǒng)中,實體表為用戶表(Users)、用戶角色表(UsersRole)、角色表(Role)、組表(Group)權(quán)限表(Auth)、許可表(Permission)、許可操作表(PermiOpera)、操作表(Operation)和資源表(Resource),表間關(guān)系如圖2所示。
圖2 數(shù)據(jù)表
用戶表主要記錄用戶的基本信息;用戶角色用以實現(xiàn)用戶與角色的關(guān)聯(lián)。組表用以規(guī)定用戶對應(yīng)的組。權(quán)限表規(guī)定該角色所具有的權(quán)限。操作表和資源表用以表示菜單,按鈕能實現(xiàn)的后臺操作。
3.3 控制流程
用戶所得權(quán)限的基本過程如圖3所示。
圖3 控制流程圖
對訪問控制流程圖描述如下:
1)訪問者通過瀏覽器對溯源平臺發(fā)出請求,系統(tǒng)自動跳轉(zhuǎn)到登陸頁面。用戶輸入自己的賬號,密碼以及驗證碼。
2)系統(tǒng)通過后臺數(shù)據(jù)庫存儲的數(shù)據(jù)與用戶的輸入數(shù)據(jù)進行比對。如果用戶輸入的用戶名和密碼(經(jīng)MD5加密)與后臺數(shù)據(jù)庫相符,則允許該用戶進入系統(tǒng),否則返回錯誤提示。
3)經(jīng)過身份驗證的用戶在登陸溯源平后,系統(tǒng)后臺會根據(jù)用戶的權(quán)限特征進行相關(guān)操作。首先系統(tǒng)會在后臺查詢用戶的各種必要信息,將這部分重要身份信息存入用戶獨有的session。隨后系統(tǒng)轉(zhuǎn)發(fā)到后臺首頁。后臺在加載首頁之前會查詢用戶session中權(quán)限信息,如果session中權(quán)限信息為空,后臺則會一次通過用戶ID和角色ID的外鍵關(guān)聯(lián)獲得角色ID,由角色ID通過權(quán)限表查詢得到對應(yīng)的權(quán)限。相似的情況下獲得操作對象,資源對象,許可對象等等。將這所有的權(quán)限信息存入session中,以便頁面菜單的校驗。這整個過程保證接下來相關(guān)菜單和按鈕的操作。
4)根據(jù)當(dāng)前用戶角色和所屬組織確定系統(tǒng)中的哪些頁面資源是可見的,并根據(jù)操作碼確定每個頁面中的每個Button按鈕的顯示狀態(tài),當(dāng)用戶沒有該按鈕操作權(quán)限時,自動隱藏該按鈕。比如信息員具有發(fā)布信息、編輯信息、刪除信息等操作權(quán)限,而審核員具有審核信息、駁回信息等權(quán)限,而沒有發(fā)布信息的權(quán)限。因此不同角色的用戶進入同一頁面后按鈕顯示狀態(tài)可能不同。
權(quán)限管理是溯源平臺的重要組成部分,權(quán)限管理的技術(shù)和策略對系統(tǒng)的信息安全影響很大。文中在分析系統(tǒng)用戶組成的基礎(chǔ)之上,采用成熟的RBAC模型對整個溯源系統(tǒng)的權(quán)限加以控制。RBAC模型在一定程度上滿足安全性的需要,還降低了權(quán)限管理和維護的復(fù)雜性,簡化了用戶的授權(quán),對其他管理系統(tǒng)也具有一定的參考價值。
[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].微計算機信息,2007,23(3):4-8.
[3]李龍.動態(tài)性、安全性網(wǎng)站開發(fā)平臺的研究與開發(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]徐曉濤,洪帆.辦公自動化系統(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è)計與實現(xiàn)[J].計算機工程與應(yīng)用,1999,35(11):68-70.
[12]彭煥斌,王亞弟,韓繼紅.一種基于多級安全的訪問控制模型[J].微計算機信息,2008,9(3):64-65.
[13]徐江峰,劉恒強.基于角色和加密技術(shù)的訪問控制研究[J].微計算機信息,2008,21(6):36-38.
[14]徐仁佐,鄭紅軍,陳斌,等.基于角色和上下文的訪問控制模型 [J].計算機應(yīng)用研究,2004,21(12): 140-142.
[15]姚寒冰,胡和平,盧正鼎,等.基于角色和上下文的動態(tài)網(wǎng)格訪問控制研究[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稿件編號:201602084
江蘇省科技廳社會發(fā)展基金項目(2135021402)
趙海田(1989—),男,江蘇南通人,碩士研究生。研究方向:訪問控制。