賈新茹,汪健雄,王紅愛
(中國鐵道科學(xué)研究院 電子計算技術(shù)研究所, 北京 100081)
鐵路客票發(fā)售和預(yù)訂系統(tǒng)(TRS)是一個復(fù)雜的、實(shí)時交易的生產(chǎn)系統(tǒng),該系統(tǒng)覆蓋全國18個鐵路局,2000多個車站,系統(tǒng)進(jìn)行窗口售票作業(yè)的用戶有1.6萬個左右,在“黃金周”等節(jié)假日還會增加10%左右,具有實(shí)時交易量大,涉及用戶多,待管理資源多、權(quán)限管理復(fù)雜的特點(diǎn),同時系統(tǒng)的業(yè)務(wù)規(guī)則需要嚴(yán)格遵循管理制度的規(guī)定。隨著外部環(huán)境的變化(如需求變更),系統(tǒng)中的訪問控制要素(主體、客體、操作等)將會發(fā)生變化。因此,找到一種管理方便、代價較小且適應(yīng)力強(qiáng)、確保系統(tǒng)安全的權(quán)限管理方式是個值得研究的問題,具有重要的現(xiàn)實(shí)意義。
自主訪問控制是根據(jù)訪問者和它所屬組的身份來控制對客體目標(biāo)的授權(quán)訪問,即用戶自主設(shè)置自己的訪問權(quán)限,其靈活性較高,但是這種訪問控制策略的安全級別較低。對于實(shí)際的生產(chǎn)系統(tǒng)存在很大風(fēng)險,不適合大用戶量的系統(tǒng)使用。
強(qiáng)制訪問控制技術(shù)是主、客體事先定義各自的安全級別,然后嚴(yán)格按照定義約定進(jìn)行訪問控制,其優(yōu)點(diǎn)是管理集中,缺點(diǎn)是具體實(shí)現(xiàn)工作量太大,不便管理,缺乏同級別間的控制機(jī)制。這種控制技術(shù)從確保系統(tǒng)安全的角度符合TRS系統(tǒng)的要求,但會造成管理員繁重的工作。
與 DAC 和 MAC 相比,RBAC訪問技術(shù)引入了角色的概念,角色作為用戶與訪問許可權(quán)之間的橋梁,實(shí)現(xiàn)了用戶與權(quán)限的邏輯分離,用戶不直接擁有權(quán)限,而是與特定的一個或多個角色相聯(lián)系,角色與一個或多個訪問許可權(quán)相聯(lián)系。該訪問控制技術(shù)能有效彌補(bǔ)前兩種訪問控制技術(shù)的不足,實(shí)現(xiàn)靈活地權(quán)限管理、系統(tǒng)資源管理和權(quán)限校驗(yàn)等問題,降低了權(quán)限管理的復(fù)雜度,縮減了系統(tǒng)維護(hù)管理開銷,同時滿足業(yè)務(wù)協(xié)調(diào)管理的需要,提高TRS系統(tǒng)中用戶、權(quán)限管理的靈活應(yīng)變能力。
RBAC標(biāo)準(zhǔn)模型體系結(jié)構(gòu)如圖1。
圖1 RBAC模型體系
該模型要解決的問題是:“主體”能夠?qū)Α爸黧w”進(jìn)行“權(quán)限允許”的操作。
(1)用戶:系統(tǒng)的使用者,即完成操作的主體。(2)角色:是權(quán)限的集合。實(shí)現(xiàn)了用戶和權(quán)限的分離,權(quán)限綁定在角色上,用戶通過獲得角色而具有該角色對應(yīng)的權(quán)限。(3)會話:用戶獲得權(quán)限的過程。(4)權(quán)限或許可:分為操作和被操作對象。這部分描述的系統(tǒng)中有資源上允許的操作。(5)UA: 即用戶與角色的對應(yīng),是一個多對多的關(guān)系。(6)PA:即權(quán)限與角色對應(yīng),也是一個多對多的關(guān)系。
經(jīng)過對業(yè)務(wù)需求的分析、對系統(tǒng)中權(quán)限以及資源的梳理,同時結(jié)合業(yè)務(wù)操作相關(guān)的管理規(guī)定,對于系統(tǒng)中用戶、權(quán)限、角色以及相應(yīng)之間對應(yīng)關(guān)系進(jìn)行了界定,提出了TRS系統(tǒng)中RBAC模型,具體如圖2。
(1)操作員:即系統(tǒng)用戶。系統(tǒng)用戶分為3層:鐵道部級、鐵路局級、車站級用戶;按照完成業(yè)務(wù)種類不同進(jìn)行分類,包括:售票、退票、訂票、結(jié)賬、計劃、數(shù)據(jù)、管理員等。 其中各層中由于側(cè)重業(yè)務(wù)的不同所包括的具體業(yè)務(wù)操作員類型有所不同。(2)業(yè)務(wù)角色:進(jìn)行相關(guān)業(yè)務(wù)操作的權(quán)限集合,業(yè)務(wù)角色按照實(shí)際業(yè)務(wù)功能進(jìn)行分類,主要有:售票、退票、訂票、結(jié)賬、計劃管理、數(shù)據(jù)維護(hù)、值班管理員角色等。(3)用戶登錄:是用戶合法性判斷和用戶權(quán)限驗(yàn)證的動態(tài)過程,當(dāng)用戶登錄到系統(tǒng)后,即具有相應(yīng)的角色權(quán)限。(4)權(quán)限許可:包括具體的業(yè)務(wù)操作及對象,以計劃員進(jìn)行票額調(diào)整為例,業(yè)務(wù)操作是進(jìn)行票額調(diào)整,操作的對象為席位。系統(tǒng)中的業(yè)務(wù)操作:售普通車票、窗口結(jié)帳、票額調(diào)整、列車加掛、列車基本信息定義、窗口信息定義、設(shè)備管理等。被操作對象:席位、進(jìn)款、設(shè)備、數(shù)據(jù)庫中定義的信息等。(5)用戶角色分配:管理員進(jìn)行為用戶分配業(yè)務(wù)角色。(6)角色許可分配:為業(yè)務(wù)角色界定所允許進(jìn)行的業(yè)務(wù)操作及被操作對象。
圖2 TRS中RBAC的應(yīng)用
上述模型在TRS系統(tǒng)中已經(jīng)應(yīng)用實(shí)現(xiàn)。由于涉及實(shí)際生產(chǎn)系統(tǒng),簡要列舉其中若干項:
(1)用戶定義表
用戶工號 string not null,
用戶名 string not null,
用戶歸屬單位代碼 string not null。
(2)角色定義表
角色代碼 string not null,
角色名稱 string not null。
(3)權(quán)限定義表
權(quán)限代碼string not null,
權(quán)限名稱string not null。
(4)用戶—角色關(guān)系表
用戶工號 string not null,
用戶名string not null,
角色代碼string not null。
(5)功能模塊定義表
模塊編碼string not null,
模塊名稱 string not null。
權(quán)限激活指的是用戶獲得角色所代表的權(quán)限過程,該過程在用戶登錄系統(tǒng)過程中完成,其流程如圖3。
圖3 RBAC訪問權(quán)限驗(yàn)證流程
3.5.1 自上而下的授權(quán)機(jī)制
TRS系統(tǒng)的權(quán)限管理控制遵循鐵路行政管理模式,采用自上而下、逐級授權(quán)的機(jī)制。鐵道部為最高管理層,管轄各鐵路局,鐵路局再對下屬的多個車站進(jìn)行管理,最終的作業(yè)終端為各個售票窗口,系統(tǒng)最終用戶為售票員以及各層的相關(guān)業(yè)務(wù)人員。每級的權(quán)限均由上級進(jìn)行分配,并接受上一級的監(jiān)督管理。具體架構(gòu)如圖4。
圖4 TRS系統(tǒng)權(quán)限管理體系
3.5.2 X權(quán)限
每一級管理層使用Z角色進(jìn)行權(quán)限管理,包括用戶管理和角色管理,其中用戶管理包括用戶的增加、刪除、修改以及為用戶進(jìn)行角色分配。角色管理主要完成角色的配置,完成角色(權(quán)限組)定義、用戶—角色關(guān)聯(lián)定義等工作。
根據(jù)實(shí)際業(yè)務(wù)管理的需要,在鐵路局管理級和車站管理級中引入了X角色,即超級管理員權(quán)限,在權(quán)限管理中X角色可以看作是上一級管理員角色,可以代表上一級的管理員完成授權(quán)功能,從而實(shí)現(xiàn)管理權(quán)限的靈活轉(zhuǎn)移和下放。同時,X權(quán)限和Z權(quán)限的區(qū)分,實(shí)現(xiàn)了授權(quán)功能和維護(hù)管理功能的分離,具有Z權(quán)限的用戶可以進(jìn)行相關(guān)的維護(hù)工作,其所做的有關(guān)權(quán)限管理的定義必須經(jīng)X權(quán)限管理員的確認(rèn)授權(quán)才能生效,這種權(quán)限角色化的方式在保證安全的同時也提高了工作效率。具有X權(quán)限的值班員能為同一管理層的其他Z權(quán)限用戶賦予X權(quán)限,或?qū)權(quán)限賦予下屬一級的用戶,使其能代為進(jìn)行相應(yīng)的管理操作和授權(quán)操作。
3.5.3 權(quán)限校驗(yàn)
權(quán)限校驗(yàn)包括兩方面:(1)使用層權(quán)限校驗(yàn),即判斷當(dāng)前用戶是否具有相應(yīng)的操作權(quán)限,主要包括:用戶是否有權(quán)訪問系統(tǒng);用戶可用的系統(tǒng)菜單、按鈕等功能項;用戶對系統(tǒng)數(shù)據(jù)庫中記錄級數(shù)據(jù)的訪問權(quán)限。使用層的權(quán)限校驗(yàn)在用戶登錄過程中完成。(2)存儲層權(quán)限校驗(yàn),系統(tǒng)采用加密算法對用戶和權(quán)限的對應(yīng)關(guān)系以及加密規(guī)則進(jìn)行保存,如果數(shù)據(jù)庫中的數(shù)據(jù)被直接修改,使用層權(quán)限校驗(yàn)出錯,用戶將不能登錄系統(tǒng)。使用層權(quán)限校驗(yàn)和存儲層權(quán)限校驗(yàn)結(jié)合使用為系統(tǒng)應(yīng)用級的安全提供有效保障。
運(yùn)用 RBAC技術(shù)對TRS系統(tǒng)進(jìn)行訪問控制不僅能夠減少授權(quán)管理的復(fù)雜性,同時也符合鐵路業(yè)務(wù)的管理機(jī)制,是TRS系統(tǒng)應(yīng)用級的安全保障的重要手段?;?RBAC 訪問控制模型在TRS系統(tǒng)應(yīng)用級安全建設(shè)方面發(fā)揮了重要作用。
[1]單杏花,徐 彥,朱建生,周亮瑾.中國鐵路客票發(fā)售和預(yù)訂系統(tǒng)5.0版本的關(guān)鍵技術(shù)研究[J]. 鐵路計算機(jī)應(yīng)用,2006,15(11A):1-4.
[2]林 磊,駱建彬,鄧 憲. 管理信息系統(tǒng)中基于角色的權(quán)限控制[J]. 計算機(jī)應(yīng)用研究,2002,20(6):82-84.
[3]黃 靜,陳 震,危水根,王 凌. RBAC模型在B /S醫(yī)院信息系統(tǒng)中的應(yīng)用[J]. 計算機(jī)技術(shù)與發(fā)展,2011,21(6):246-249.