摘 要:目前比較成熟的安全模型大部分是訪(fǎng)問(wèn)控制策略模型,用于描述與維護系統中數據的保密性和完整性?;诮巧脑L(fǎng)問(wèn)控制(RBAC)借鑒了人們熟知的用戶(hù)組、權限組以及職責分離的概念和應用,以角色為中心的權限管理更符合公司和企業(yè)的實(shí)際管理方式,所以RBAC模型的研究和應用發(fā)展得非???。通過(guò)給用戶(hù)分配恰當的角色,使角色擁有一定的權限成為訪(fǎng)問(wèn)控制的主體,可以提高管理效率。介紹了基于角色的出租車(chē)管理系統的部分設計;闡述了模塊設計與應用和數據庫的設計理念;成功地實(shí)現了對不同角色的安全訪(fǎng)問(wèn)控制,有效地解決了安全訪(fǎng)問(wèn)控制問(wèn)題。
中國論文網(wǎng) /8/view-4105890.htm
關(guān)鍵詞:角色訪(fǎng)問(wèn)控制;安全模型;安全訪(fǎng)問(wèn)控制模塊;數據庫
中圖分類(lèi)號:TP309.2 文獻標識碼:A 文章編號:16727800(2013)003015204
0 引言
數據庫是構建信息系統的重要基礎, 數據庫中存儲的信息價(jià)值越來(lái)越高。數據庫在完整性、一致性、可控性和可用性上都強于文件系統。許多單位做系統安全規劃時(shí)往往把注意力集中在網(wǎng)絡(luò )和操作系統安全上,但卻忽略了最重要的數據庫安全。而訪(fǎng)問(wèn)控制策略模型的開(kāi)發(fā)和應用為解決這些安全問(wèn)題提供了有效的解決方案。通過(guò)實(shí)踐證明該方案具有良好的安全性、可用性和時(shí)效性, 而這一切必須以安全模型、業(yè)務(wù)策略的正確設計、部署為前提。分析了RBAC的概念、安全原則、應用范圍,介紹了RBAC的特點(diǎn)及應用優(yōu)勢, 最后以基于角色的出租車(chē)服務(wù)質(zhì)量考核系統研究了RBAC機制的設計與實(shí)現。
1 數據庫安全模型
數據庫安全模型主要反映數據庫系統的安全策略。隨著(zhù)對計算機數據庫系統安全性和穩定應用性研究的逐步深入,大量?jì)?yōu)秀的有價(jià)值的研究成果相繼出現,在豐富了數據庫系統安全模型的同時(shí),將各種安全模型應用于安全設計系統的研究也取得了大量豐碩成果。
根據訪(fǎng)問(wèn)控制策略的差異,安全策略模型大致可以分為自主訪(fǎng)問(wèn)控制模型(Discretionary Access Control,DAC)、強制訪(fǎng)問(wèn)控制模型(Mandatory Access Control,MAC)和基于角色的訪(fǎng)問(wèn)控制模型(Role2Based Access Control,RBAC)。以下將重點(diǎn)介紹基于角色訪(fǎng)問(wèn)控制安全模型的基本概念,分析這種模型的利弊,在此基礎上以出租車(chē)績(jì)效考評系統為例,證明了基于角色的訪(fǎng)問(wèn)控制RBAC是一種方便、高效、安全的訪(fǎng)問(wèn)控制機制。
2 基于角色訪(fǎng)問(wèn)模型的理論基礎
2.1 角色的概念
為了對擁有相似權限的用戶(hù)進(jìn)行分類(lèi)管理,在此定義角色的概念。在RBAC中所謂角色就是一個(gè)或者一群用戶(hù)在組織內可執行的操作集合。RBAC基本思想是:授權給用戶(hù)的訪(fǎng)問(wèn)權限,通常由用戶(hù)在一個(gè)組織中擔當的角色來(lái)確定。 例如在一個(gè)學(xué)校中一個(gè)人可以在同一個(gè)班級中擔任多種職務(wù),而且擔任相同職務(wù)的可能不止一人。因此, RBAC模型提供了一種描述用戶(hù)和權限之間的多對多關(guān)系的安全機制。
2.2 模型的安全原則
RBAC的安全三原則分別是最小權限原則、權限制約原則和權限抽象原則。最小權限原則是說(shuō)在RBAC中角色被賦予完成其任務(wù)所需的最小權限,指用戶(hù)所擁有的權力不能超越他執行工作時(shí)所需要的權限。需要根據用戶(hù)執行的任務(wù)或者功能,在不同的時(shí)間里有不同級別的權限。所擁有的角色決定了工作權限,而角色所要去完成的事物涵蓋了其完成工作所需的最小權限。比如簽發(fā)一張支票需要一個(gè)會(huì )計角色和一個(gè)出納角色;權限抽象原則是說(shuō)RBAC中除了操作系統中典型的“讀”、“寫(xiě)”外還支持抽象權限,如借貸、刷卡等。
2.3 模型特點(diǎn)
?。?)訪(fǎng)問(wèn)權限與角色相關(guān)聯(lián),不同的角色有不同的權限。用戶(hù)以什么樣的角色進(jìn)行訪(fǎng)問(wèn)就決定了用戶(hù)擁有的權限以及可以進(jìn)行相關(guān)操作的許可。
?。?)角色繼承。RBAC采用角色繼承的概念是角色上的偏序關(guān)系,角色之間或許有相互重疊的職責和權力,發(fā)生角色繼承后,角色授予的特權集和用戶(hù)集也會(huì )發(fā)生相應的變化。
?。?)職責分離。職責分離關(guān)系是為了利益沖突實(shí)現過(guò)程中的回避策略,為了使用戶(hù)在正當的權限范圍內履行自己應盡的職責,是職責范圍內的行為。一般職責分離有兩種方式,分別為靜態(tài)職責分離和動(dòng)態(tài)職責分離。
?。?)角色容量。當一個(gè)角色的用戶(hù)數目已經(jīng)達到了最大個(gè)數,系統將拒絕對該角色分配用戶(hù)操作。在創(chuàng )建新的角色時(shí)應該制定角色的容量。
3 角色訪(fǎng)問(wèn)模型應用
3.1 RBAC模型
RBAC的核心模型包括5個(gè)基本的靜態(tài)集合:用戶(hù)集(USERS)、角色集(ROLES)、操作集(OPERATORS)、授權集(PRMS)以及會(huì )話(huà)集(SESSIONS)。會(huì )話(huà)集是系統運行過(guò)程中的動(dòng)態(tài)行為。這些集合稱(chēng)為RBAC的基本要素。用戶(hù)集是指系統需要存儲和保護的信息;操作集是指作用在對象上的一組系統性操作。對象上的一組操作構成了一個(gè)特權,特權是不可分割的最小單元,一旦將某個(gè)特權分配給用戶(hù),該用戶(hù)可以執行特權中包含的所有操作。用戶(hù)、角色和權限的分配關(guān)系角色是RBAC模型的基本架構,它是用戶(hù)與特權之間的紐帶。用戶(hù)分配(User Assignment)和特權分配(Permisson Assignment)使用戶(hù)和特權之間有了相連的關(guān)系。在 RBAC系統中,每個(gè)角色至少具有一個(gè)授權,每個(gè)用戶(hù)至少扮演一個(gè)角色。如圖1所示。
RBAC 訪(fǎng)問(wèn)權限身份流程如圖1所示。用戶(hù)訪(fǎng)問(wèn)系統時(shí),首先登陸身份驗證模塊,然后對通過(guò)的用戶(hù)進(jìn)行訪(fǎng)問(wèn)權限的驗證,對于驗證成功的顯示正確結果。用戶(hù)登錄后為用戶(hù)開(kāi)啟一個(gè)會(huì )話(huà)。因為在某些系統中一個(gè)用戶(hù)可以同時(shí)登錄多次,一個(gè)用戶(hù)可能同時(shí)擁有多個(gè)會(huì )話(huà),所以user_sessions是一對多的關(guān)系,用戶(hù)的多個(gè)會(huì )話(huà)之間相互獨立。
3.2 模型應用實(shí)例
城市交通是現代化城市的一個(gè)重要標志,而出租車(chē)行業(yè)是城市文明的一張重要名片。對出租車(chē)進(jìn)行監督、管理有著(zhù)十分重要的意義。而出租車(chē)的數量大、信息多,管理制度復雜,獎懲制度多樣化,因此,如果采用常見(jiàn)的信息管理系統的設計方法,很容易造成數據的冗余以及管理的混亂。針對上述情況,提出了基于RBAC的網(wǎng)上出租車(chē)信息系統,通過(guò)使用RBAC對出租車(chē)的管理進(jìn)行分角色處理,從而使管理系統化、條理化。 基于RBAC的網(wǎng)上出租車(chē)信息系統訪(fǎng)問(wèn)控制策略實(shí)現基本框架,主要內容包括身份驗證模塊設計、用戶(hù)登錄模塊設計、駕駛員管理控制模塊設計、出租車(chē)管理模塊設計、獎懲記錄模塊設計、訪(fǎng)問(wèn)控制機構等等。其中訪(fǎng)問(wèn)控制機構作為應用子模塊和訪(fǎng)問(wèn)控制子模塊的架構橋梁,它將訪(fǎng)問(wèn)控制系統生成的用戶(hù)與角色、角色與權限的映射關(guān)系一起反應到應用子模塊中,使不同角色的用戶(hù)所能實(shí)現的功能不同,如圖2所示。
3.3 數據庫設計理念
權限數據庫用于存儲訪(fǎng)問(wèn)權限信息和訪(fǎng)問(wèn)控制相關(guān)的其它信息。由角色表、用戶(hù)角色表和角色權限表等組成?;诮巧珯嘞薰芾碇行闹饕獮橛脩?hù)提供一個(gè)權限管理界面,權限管理員可以通過(guò)此界面對權限數據庫中各種信息表實(shí)施管理,完成用戶(hù)授予角色、為角色授予權限的任務(wù)。用戶(hù)與角色之間、角色與權限之間是多對多的關(guān)系,一個(gè)用戶(hù)可以擁有任意多個(gè)角色,一個(gè)角色可以授權多個(gè)用戶(hù),一個(gè)角色可以包括多個(gè)權限,多個(gè)角色可以授予一個(gè)權限之上。對于權限、角色、組、用戶(hù)之間的關(guān)系,4者之間均是多對多的連結關(guān)系,如圖3所示。
3.4 表結構設計
本系統中通過(guò)分配不同的角色實(shí)現基于角色的訪(fǎng)問(wèn)控制,各部分表結構如下:
3.4.1 角色表
角色表是角色信息儲存的場(chǎng)所,它是根據一個(gè)部門(mén)提供的職位建立起來(lái)的,在系統投入使用前由該部門(mén)的角色向授權管理員以報表或者層次圖表的形式提供,且由系統管理員創(chuàng )建該角色表,如表1所示。
3.4.2 用戶(hù)角色表
用戶(hù)角色表是系統授權管理員為用戶(hù)提供的角色信息存儲場(chǎng)所,方便管理員為用戶(hù)授權,如表2所示。
3.5 系統模塊實(shí)現
本系統通過(guò)各種表的關(guān)系來(lái)實(shí)現授權關(guān)系。其中用戶(hù)表涵蓋了用戶(hù)的數據和基本信息;角色表涵蓋了系統可供用戶(hù)去分配的各個(gè)角色;角色權限表涵蓋了系統權限的分配和應用的全部?jì)热?,用?hù)通過(guò)用戶(hù)和角色對照表來(lái)實(shí)現角色分配任務(wù);通過(guò)角色和權限對照表來(lái)實(shí)現角色分配權限。其中可以利用樹(shù)型數據結構思想來(lái)設計與編寫(xiě)系統功能模塊中的功能模塊代碼,并且可以將系統子模塊和下屬的功能模塊劃分成樹(shù)狀,這樣編碼簡(jiǎn)單并且上下級關(guān)系明確。通過(guò)引用數據訪(fǎng)問(wèn)層相關(guān)方法來(lái)實(shí)現增加模塊、更新模塊、模塊分類(lèi)、查詢(xún)模塊等,同時(shí)對操作結果再進(jìn)行邏輯處理以供用戶(hù)界面層顯示。各模塊的功能主要有:
?。?)用戶(hù)管理模塊。用戶(hù)管理模塊主要包括用戶(hù)添加界面和用戶(hù)確認界面。用戶(hù)確認界面主要是負責檢查用戶(hù)是否為系統已有的用戶(hù),若確定是,可以對“新增用戶(hù)”按鈕進(jìn)行用戶(hù)操作,進(jìn)入添加頁(yè)面;反之,則不能。用戶(hù)添加界面可以對已有的用戶(hù)進(jìn)行快速瀏覽,包括用戶(hù)名和密碼等,并對這些信息進(jìn)行修改、保存和刪除,還能添加新的用戶(hù)信息,并將其保存在用戶(hù)信息表中。當用戶(hù)通過(guò)確認界面合法登陸該系統時(shí),按照系統控制機制和訪(fǎng)問(wèn)流程,首先應該訪(fǎng)問(wèn)用戶(hù)角色表,找出該用戶(hù)對應配對的角色編號,再在角色權限表中根據角色編號讀出對應的權限編號,然后再依據權限動(dòng)態(tài)的行為生成連接或者菜單。角色所擁有的權限是由系統管理員預先分配好的,通過(guò)管理員系統可以靈活地添加或取消某個(gè)角色的權限。
功能一:添加用戶(hù):添加一個(gè)名為“張三”,密碼為“123456”的用戶(hù)Execute sp_addlogin ‘張三’,’123456。
功能二:刪除用戶(hù):刪除用戶(hù)“張三”Execute sp_droplogin ‘張三’。
功能三:密碼修改:把“張三”用戶(hù)的密碼修改"zhangsan"Execute sp_password ‘123456’,’zhangsan’,’張三’。
?。?)用戶(hù)角色權限模塊。該模塊使用用戶(hù)管理、角色管理、權限管理、會(huì )話(huà)和約束管理等,分別分配角色和權限到用戶(hù),產(chǎn)生和管理用戶(hù)角色權限數據庫。
功能一:授權:授予“張三”用戶(hù)訪(fǎng)問(wèn)用戶(hù)表(User)的權限Grant select on User to 張三。
功能二:回收:回收“張三”用戶(hù)的權限Revoke select on User from 張三。
?。?)角色管理模塊。 對于本文的系統,角色比較固定,它是一組權限的集合。角色的約束條件:角色具有互斥的關(guān)系,具有互斥關(guān)系的角色不能賦予同一個(gè)用戶(hù),在納入RBAC中有另一種情況是用戶(hù)可以擁有兩種角色,但在一次會(huì )話(huà)中只能激活其中的一個(gè)角色,只可行駛被激活角色所具有的能力,角色可以繼承,但是有互斥關(guān)系的角色不能被同一角色繼承。
功能一:添加角色:添加一個(gè)名為'adminrole1'角色,賦予其一定功能。EXEC sp_addrole 'adminrole1'。
功能二:刪除角色:EXEC sp_droprole 'adminrole1'。
功能三:?jiǎn)?dòng)/停止角色的某些權限:禁止角色'adminrole1'使用employees表(員工表)的插入權限DENY INSERT ON employees TO 'adminrole1'。
功能四:角色繼承:創(chuàng )建用戶(hù)myuser擁有的數據庫角色myrole CREATE ROLE myrole AUTHORIZATION myuser;ke select on User from 張三。
?。?)角色許可權限模塊。管理員授予用戶(hù)角色,不同的角色登陸系統后的權限不同,對模塊的訪(fǎng)問(wèn)權限不同等。
功能一:授權:為角色'adminrole1'賦予功能表的所有權限GRANT ALL ON jobs TO newrole。
功能二:回收:收回角色'adminrole1'的所有權限Revoke ALL ON jobs TO 'adminrole1'。
?。?)訪(fǎng)問(wèn)許可管理。表示對系統中的客體進(jìn)行訪(fǎng)問(wèn)控制的特定操作許可。例如在數據庫中對關(guān)系表中信息的添加、刪除、修改和權限管理等方式,在應用中許可受到特定應用邏輯的限制。
功能一:添加模塊:添加一個(gè)名為addFun的模塊,賦予其一定功能。ADD addFun to adminRole。
功能二:刪除模塊:DELETE addFun to adminRole。
功能三:權限管理:禁止角色'adminrole1'使用employees表(員工表)的插入權限DENY INSERT ON employees TO 'adminrole1'為角色newrole賦予sales表的查、改權限GRANT SELECT,UPDATE ON sales TO newrole。
3.6 系統分析評價(jià)
基于RBAC的網(wǎng)上出租車(chē)信息系統,對用戶(hù)的管理采用了角色訪(fǎng)問(wèn)控制策略,對每個(gè)角色分配需要的最小權限,同時(shí),角色之間的權限也相互制約,從而保證了用戶(hù)訪(fǎng)問(wèn)數據庫的安全,提供了系統的安全性,保護了信息的私密性?;诮巧L(fǎng)問(wèn)控制模型上的出租車(chē)信息系統體現了該模型在具體應用中的通用性、方便性、擴展性和靈活有效性。
4 結語(yǔ)
RBAC是目前較為流行的一種安全控制技術(shù),通過(guò)引入角色實(shí)現了用戶(hù)和訪(fǎng)問(wèn)權限的邏輯分離,方便了權限管理。文中在開(kāi)發(fā)出租車(chē)服務(wù)質(zhì)量考核系統中,利用了角色訪(fǎng)問(wèn)控制模型實(shí)現了訪(fǎng)問(wèn)控制策略。RBAC在研究領(lǐng)域、用戶(hù)和軟件廠(chǎng)商中都引起了廣泛的關(guān)注,被認為是一種比傳統的DAC和MAC更普遍適用的訪(fǎng)問(wèn)控制技術(shù)。
參考文獻:
?。躘1\] 李紅衛.管理系統中的權限管理解決方案\[D\].成都:四川大學(xué),2005.
?。躘2\] 葉錫君,許勇,吳國新.基于角色的訪(fǎng)問(wèn)控制在Web中的實(shí)現技術(shù)\[J\].計算機工程,2002(1).
?。躘3\] 施景超,孫維祥,許滿(mǎn)武.基于角色的存取控制及其實(shí)現\[J\].計算機應用研究,2000(6).
?。ㄘ熑尉庉嫞憾拍茕摚?nbsp;
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。