陳倬 雷波
1前言
在以往的安全技術(shù)措施中,通過硬件和軟件的配置管理對安全目標都具有直接或間接作用。因此,研究電子政務(wù)中訪問控制技術(shù)具有現(xiàn)實且積極的意義。
伴隨著電子政務(wù)的高速發(fā)展發(fā)展,硬件方面:對防火墻技術(shù)的選擇、內(nèi)外網(wǎng)間配置防火墻、IDS等;軟件方面:選擇更為安全的國產(chǎn)操作系統(tǒng)等。這一系列的技術(shù)措施對保障電子政務(wù)內(nèi)網(wǎng)的安全、預(yù)防來自外網(wǎng)的威脅發(fā)揮著極為重要的作用。不過,越來越多的政務(wù)業(yè)務(wù)通過Web應(yīng)用實現(xiàn)傳遞,政務(wù)信息在政府間、政府與企業(yè)間、政府與公眾間交互。
訪問控制技術(shù)通過不同的手段和策略實現(xiàn)對網(wǎng)絡(luò)資源的訪問控制,而這些僅靠應(yīng)用安全操作系統(tǒng)、配置防火墻是無法達到的。訪問控制規(guī)定了主體(訪問請求者)對客體(被訪問資源)限制數(shù)據(jù)的訪問,同時通過訪問用戶的權(quán)限控制訪問資源的類別?,F(xiàn)在,使用穩(wěn)定、可靠的安全訪問控制技術(shù)已逐漸成為政府、企業(yè)構(gòu)造網(wǎng)絡(luò)安全防范體系所采用的主要技術(shù)之一[1]。所以,要實現(xiàn)政務(wù)信息Web頁面的安全訪問控制,通過主流的Web安全訪問控制策略實現(xiàn)對電子政務(wù)多級保護、提供安全解決方案是電子政務(wù)建設(shè)中的一個重要內(nèi)容。
2訪問控制系統(tǒng)組成
訪問控制系統(tǒng)(圖1)一般包括:要求訪問電子政務(wù)系統(tǒng)的用戶或者某一個進程程序(主體)以及被訪問的政務(wù)系統(tǒng)提供程序、數(shù)據(jù)、各種信息和相應(yīng)的網(wǎng)絡(luò)設(shè)備(客體)。安全的訪問策略就是:為合理的管理維護主體訪問客體提供的一套安全規(guī)則。
訪問控制的關(guān)鍵是采用何種訪問控制策略,即如何向主體授權(quán)。目前主要有三種不同類型的訪問控制策略:MandatoryAccessControl(強制訪問控制);DiscretionaryAccessControl(自主訪問控制);RoleBasedAccessControl(基于角色的訪問控制)。
3強制訪問控制(MAC)
強制訪問控制是“強加”給訪問主體的,即系統(tǒng)強制主體服從訪問控制策略。一個進程作為訪問的主體,需要訪問對象提供相關(guān)數(shù)據(jù)資源以及網(wǎng)絡(luò)設(shè)備。每當主體嘗試訪問電子政務(wù)網(wǎng)站時,都會由網(wǎng)絡(luò)操作系統(tǒng)進行主體訪問權(quán)限授予,從而決定主體是否有權(quán)限訪問客體。MAC最開始應(yīng)用于多層次安全級別的軍事行動中。MAC的運行邏輯是:首先定義安全級別,當用戶請求訪問網(wǎng)絡(luò)資源或信息時,系統(tǒng)就訪問客體的合法性進行權(quán)威性對比和完整性約束。比如,禁止將危險信息向下寫入或者禁止低級別用戶向上訪問高級別數(shù)據(jù)信息等。
MAC訪問控制策略主要體現(xiàn)在網(wǎng)絡(luò)操作系統(tǒng)(OperatingSystem)對主體訪問權(quán)限的控制方面,其制定相關(guān)的強制安全策略以及主體訪問客體而進行的權(quán)限鑒定。其中,鑒定方式有很多種,具體采用何種鑒定方式,需要根據(jù)訪問策略而定。
管理員制定的安全策略強制對所有用戶實施,通過權(quán)限鑒定從而決定用戶能否訪問以及具體能訪問哪些網(wǎng)絡(luò)資源,其中包括各種網(wǎng)絡(luò)設(shè)備和政務(wù)網(wǎng)站中所需要的相關(guān)重要數(shù)據(jù)信息。毫無疑問,沒通過授權(quán)將拒絕訪問網(wǎng)絡(luò)資源。每次主體訪問客體候,管理員將這個過程定義一個標記,通過這個標記鑒定這次訪問是否安全,這是一種行之有效的手段。
因為最早MAC是應(yīng)用在軍事、國防領(lǐng)域,所以涉及多層安全MLS。多層安全的核心思想就是將訪問主體定義為不同的安全保密級別。比如,普通級別、機密級別和絕密級別等。通過對訪問主體進行級別劃分,從而決定訪問權(quán)限。那么,MAC所具有的具體功能就相當明了。比如,當你是低級別用戶時,作為訪問主體才能高效、穩(wěn)定的訪問高級別客體———安全的使用里面的共享信息以及網(wǎng)絡(luò)資源。當然,與此相對的就是只有高級別主體才能向目標對象寫入相關(guān)數(shù)據(jù)信息。
MAC能保證操作系統(tǒng)的相對安全,MAC對操作系統(tǒng)的各種客體(如socket、文件、系統(tǒng)FIFO、IPC、SCD等)進行細粒度的訪問控制。目前,幾乎所有的操作系統(tǒng)都采用強制安全處理機制,因為這是一種相對穩(wěn)妥的處理方式。主體嘗試訪問電子政務(wù)網(wǎng)站時,都會由網(wǎng)絡(luò)操作系統(tǒng)進行主體訪問權(quán)限授予,從而決定主體是否有權(quán)限訪問客體,這是一種強制性處理機制,其目的是使訪問過程達到更高的安全級別,從而保護系統(tǒng)數(shù)據(jù)的安全性。這一點與DAC不同的。
MAC的缺點在于同級別之間缺乏控制機制,訪問級別的劃分不夠細致。
4自主訪問控制(DAC)
自主訪問控制因為其穩(wěn)定可靠的性能,成為目前計算機網(wǎng)絡(luò)管理系統(tǒng)中,處理網(wǎng)絡(luò)資源訪問使用得最多的一種安全訪問控制機制。DAC的工作原理是,對某個客體具有擁有權(quán)(或控制權(quán))的主體,能夠?qū)υ摽腕w的一種訪問權(quán)限或多種訪問權(quán)限自主地授予其他主體,并在隨后的任何時刻將這些權(quán)限回收。
這種訪問方式是一種自主行為,在DAC系統(tǒng)中,某一個擁有訪問權(quán)限的主體(用戶或某一個進程)具有將權(quán)限轉(zhuǎn)移給其他主體的能力,這是對訪問權(quán)限進行限定的一種特定方法。這種轉(zhuǎn)移是自主的、安全的、高效的。實際上,DAC訪問控制就是一個矩陣,可用一個三元組來描述(S,O,A)。其中,S為主體集合;O為客體集合;A為屬性集合。
對于任意一個si∈S,oj∈O,那么相應(yīng)地存在一個aij∈A。而aij=P(si,oj),aij就決定了si對oj可進行什么樣的訪問操作。用矩陣描述如下。
矩陣的第i行Si表示主體si對所有客體的操作權(quán)限;矩陣的第j列Oj表示客體oj允許主體可進行的操作權(quán)限。其在具體實現(xiàn)時是基于矩陣的行或列來制定訪問控制策略,而不是將矩陣整個保存起來,因為那樣做效率太低。下面分別介紹這兩種方法。
4.1基于行的自主訪問控制
密碼(Passwords):每個客體就不同的訪問方式提供不同的訪問密碼,密碼是機密的,毋庸置疑知道密碼才能訪問。缺點:為了保證系統(tǒng)安全,密碼需經(jīng)常更新,并且密碼多,用戶難以記憶,而且哪些用戶享有密碼也很難受到控制。
前綴表(Profiles):每個用戶都擁有前綴表文件,前綴表文件列出了所有能夠訪問其客體的權(quán)限列表。缺點:如果主體能夠訪問多個客體,其訪問權(quán)限就非常多,那么所對應(yīng)的權(quán)限列表就非常長,非常復(fù)雜,容易出現(xiàn)冗余現(xiàn)象。而且在管理權(quán)限表方面也會非常麻煩,比如刪除、創(chuàng)建、更改前綴表文件等操作。
權(quán)利表(CapabilitlesList):只有當一個主體擁有準許訪問的“Capabilitles”時,通過將訪問的主體和被訪問的客體進行約束,此表才能約束客體。
以上述三種方法都是針對某一個主體的訪問權(quán)限。但是,在一個完整的安全控制系統(tǒng)中,正是客體本身需要得到可靠的保護。要知道從主體這個方面對約束進行修飾的話,那么想知道哪一些訪問對象被讀取將會很困難。所以,控制訪問服務(wù)這個功能將會控制主體的集合,那么如何控制就是在賦予權(quán)力和收回權(quán)利這兩個方面上進行,所以重心就偏向于客體方面。
4.2基于列的自主訪問控制
在每個要訪問的客體上附加要訪問的主體明細表,通過兩種形式:保護位(ProtectionBits)和訪問控制列表(ACL)來實現(xiàn)。保護位是對所有主體指明一個訪問模式集合,通常用bit位來表達訪問權(quán)限,其表達的方式多種多樣,與訪問的主體相互匹配、協(xié)同工作,對于多用戶多任務(wù)操作系統(tǒng)特別合適,因此被廣泛使用。
在局域網(wǎng)中,節(jié)點設(shè)備用來對數(shù)據(jù)包進行轉(zhuǎn)發(fā)、傳送,諸如路由器、交換機等。那么,其中都具有一張比較詳細的指令訪問列表,依據(jù)這些列表,可以對網(wǎng)絡(luò)中特定資源進行訪問控制,控制其能否被訪問、能否被讀取、能否被寫入等。在這個過程中,我們不但能控制某一個具體資源的訪問權(quán)限,還能將具有相同訪問該資源權(quán)限的主體用戶整合在一起,進行按組別集中授權(quán)訪問、集中管理。例如,針對文件fileAAA,通過ACL訪問控制列表(nicky和linda是私人用戶也就是主體,array是規(guī)定的一個主體訪問用戶集合)。FileAAA:(nicky,{r,w}),(linda,{r}),(array,{w})
這條ACL表明,nicky可以讀入數(shù)據(jù),同時也可以寫入數(shù)據(jù)fileAAA。而linda這個用戶只能讀取數(shù)據(jù),array則因為是劃定好的一個成員集合,因此里面的所有成員用戶都能向文件fileAAA中寫入數(shù)據(jù)。
因為ACL獨有的性能特點,其優(yōu)勢是將用戶進行分組集中管理,能夠比較客觀的查找出哪些用戶具有哪些資源的訪問權(quán)限。隨著時代的發(fā)展,ACL的功能也得到了進一步的擴充,伴隨著網(wǎng)絡(luò)規(guī)模逐漸變大,企業(yè)內(nèi)部網(wǎng)絡(luò)拓撲結(jié)構(gòu)越來越復(fù)雜,ACL運行起來就越來越吃力,弊端盡顯。
因為ACL獨特的工作模式,用戶都按組進行授予訪問權(quán)限。在一個網(wǎng)絡(luò)中,資源變得越來越多的時候,ACL就會新建越來越多的主體訪問明細表,這些表重復(fù)冗長,同時管理員還要管理訪問權(quán)限,無疑加大了管理人員的工作強度和難度。同時,因為局域網(wǎng)錯綜復(fù)雜,且服務(wù)器服務(wù)于各自局域網(wǎng)、各自設(shè)置主體訪問控制列表。那么,列表眾多也進一步加大了ACL的復(fù)雜度和整體控制策略的精確度。否則就會造成各部門工作行動不一致,協(xié)調(diào)失敗而導(dǎo)致訪問失敗、出現(xiàn)丟包、錯包的情況。
由于Web管理員在服務(wù)器上要對每個資源的ACL進行維護,而每個ACL都包含用戶和組列表、受控資源的訪問方式等信息。因此,授權(quán)管理成本高,且容易發(fā)生錯誤。
由于把權(quán)限最終授予給用戶,或造成“用戶/許可”數(shù)據(jù)量十分龐大,而且用戶在企業(yè)中的地位隨時可能變動,相應(yīng)的訪問權(quán)限也都要修改,因此維護稍具規(guī)模的企業(yè)網(wǎng)絡(luò)可能導(dǎo)致災(zāi)難性后果。
5RBAC
RBAC(Role?BasedAccessControl)是對DAC和MAC機制的改進。在RBAC中,權(quán)限與角色一一對應(yīng),用戶通過扮演某種角色而獲得與之匹配的客體訪問權(quán)限。它具有三種授權(quán)管理的控制途徑:改變主體所擔(dān)任的角色;改變角色的訪問權(quán)限;改變客體的訪問權(quán)限。
RBAC提供了層次化的管理結(jié)構(gòu),具有責(zé)任分離的能力和提供最小權(quán)限的能力,極大地簡化了權(quán)限的管理。在一個組織中,角色是為了完成各種工作而出現(xiàn),用戶則依據(jù)自身責(zé)任和資格被指派相應(yīng)的角色,用戶可以很容易地從一個角色被指派到另一個角色[2]。角色可依據(jù)新的需求和系統(tǒng)的合并而賦予新的權(quán)限,且權(quán)限也可根據(jù)需要從某角色中進行回收。角色與角色可以建立聯(lián)系,以囊括更廣泛的客觀情況。因此,RBAC明顯的優(yōu)勢就是降低管理成本,支持高級別的訪問策略。