物聯(lián)網(wǎng)安全:訪問(wèn)控制
在物聯(lián)網(wǎng)系統(tǒng)中,訪問(wèn)控制(Access Control)是對(duì)用戶合法使用資源的認(rèn)證和控制,簡(jiǎn)單說(shuō)就是根據(jù)相關(guān)授權(quán),控制對(duì)特定資源的訪問(wèn),從而防止一些非法用戶的非法訪問(wèn)或者合法用戶的不正當(dāng)使用,以確保整個(gè)系統(tǒng)資源能夠被合理正當(dāng)?shù)乩谩S捎谖锫?lián)網(wǎng)應(yīng)用系統(tǒng)是多用戶、多任務(wù)的工作環(huán)境,這為非法使用系統(tǒng)資源打開(kāi)了方便之門(mén),因此,迫切要求我們對(duì)計(jì)算機(jī)及其網(wǎng)絡(luò)系統(tǒng)采取有效的安全防范措施,以防止非法用戶進(jìn)入系統(tǒng)以及合法用戶對(duì)系統(tǒng)資源的非法使用。這就需要采用訪問(wèn)控制系統(tǒng)。
訪問(wèn)控制包含3方面的含義。
① 合法性:阻止沒(méi)有得到正式授權(quán)的用戶違法訪問(wèn)以及非法用戶的違法訪問(wèn)。
② 完整性:在包含收集數(shù)據(jù)、傳輸信息、儲(chǔ)存信息等一系列的步驟中,保證數(shù)據(jù)信息的完好無(wú)損,不可以隨意增刪與改動(dòng)。
③ 時(shí)效性:在一定時(shí)效內(nèi),保證系統(tǒng)資源不能被非法用戶篡改使用,保障系統(tǒng)在時(shí)效內(nèi)的完整。
通過(guò)訪問(wèn)控制,系統(tǒng)可以預(yù)防和阻礙未經(jīng)授權(quán)的非法用戶訪問(wèn)和操作系統(tǒng)資源。
1、訪問(wèn)控制的基本概念
(1)訪問(wèn)控制的功能
訪問(wèn)控制應(yīng)具備身份認(rèn)證、授權(quán)、文件保護(hù)和審計(jì)等主要功能。
1)認(rèn)證
認(rèn)證就是證實(shí)用戶的身份。認(rèn)證必須和標(biāo)識(shí)符共同起作用。認(rèn)證過(guò)程首先需要用戶輸入賬戶名、用戶標(biāo)志或者注冊(cè)標(biāo)志以表明身份。賬戶名應(yīng)該是秘密的,任何其他用戶不得擁有。但為了防止賬戶名或用戶標(biāo)志泄露而出現(xiàn)非法用戶訪問(wèn),還需要進(jìn)一步用認(rèn)證技術(shù)證實(shí)用戶的合法身份。口令是一種簡(jiǎn)單易行的認(rèn)證手段,但是因?yàn)槿菀妆徊聹y(cè)而比較脆弱,所以易被非法用戶利用。生物技術(shù)是一種嚴(yán)格且有前途的認(rèn)證方法,如指紋識(shí)別、視網(wǎng)膜識(shí)別、虹膜識(shí)別等,但因技術(shù)復(fù)雜,目前還沒(méi)有被廣泛采用。
2)授權(quán)
系統(tǒng)正確認(rèn)證用戶后,根據(jù)不同的用戶標(biāo)志分配給其不同的使用資源,這項(xiàng)任務(wù)稱(chēng)為授權(quán)。授權(quán)的實(shí)現(xiàn)是靠訪問(wèn)控制完成的。訪問(wèn)控制是一項(xiàng)特殊的任務(wù),它將標(biāo)志符ID作為關(guān)鍵字來(lái)控制用戶訪問(wèn)的程序和數(shù)據(jù)。訪問(wèn)控制主要用在關(guān)鍵節(jié)點(diǎn)、主機(jī)和服務(wù)器,一般節(jié)點(diǎn)使用較少。但如果要在一般節(jié)點(diǎn)上增加訪問(wèn)控制功能,則系統(tǒng)應(yīng)該安裝相應(yīng)的授權(quán)軟件。在實(shí)際應(yīng)用中,通常需要從用戶類(lèi)型、應(yīng)用資源以及訪問(wèn)規(guī)則3個(gè)方面來(lái)明確用戶的訪問(wèn)權(quán)限。
① 用戶類(lèi)型。對(duì)于一個(gè)已經(jīng)被系統(tǒng)識(shí)別和認(rèn)證了的用戶,系統(tǒng)還要對(duì)他的訪問(wèn)操作實(shí)施一定的限制。對(duì)于一個(gè)通用計(jì)算機(jī)系統(tǒng)來(lái)講,用戶范圍廣,層次與權(quán)限也不同。用戶類(lèi)型一般有系統(tǒng)管理員、一般用戶、審計(jì)用戶和非法用戶。系統(tǒng)管理員權(quán)限最高,可以對(duì)系統(tǒng)中的任何資源進(jìn)行訪問(wèn),并具有所有類(lèi)型的訪問(wèn)操作權(quán)利。一般用戶的訪問(wèn)操作要受到一定的限制,系統(tǒng)管理員會(huì)根據(jù)需要給這類(lèi)用戶分配不同的訪問(wèn)操作權(quán)利。審計(jì)用戶負(fù)責(zé)對(duì)整個(gè)系統(tǒng)的安全控制與資源使用情況進(jìn)行審計(jì)。非法用戶則是被取消訪問(wèn)權(quán)利或者被拒絕訪問(wèn)系統(tǒng)的用戶。
② 應(yīng)用資源。應(yīng)用資源是指系統(tǒng)中的每個(gè)用戶可共同分享的系統(tǒng)資源。系統(tǒng)內(nèi)需要保護(hù)的是系統(tǒng)資源,因此需要對(duì)保護(hù)的資源定義一個(gè)訪問(wèn)控制包(Access Control Packet,ACP),訪問(wèn)控制包會(huì)給每一個(gè)資源或資源組勾畫(huà)出一個(gè)訪問(wèn)控制列表(Access Control List,ACL),列表中會(huì)描述哪個(gè)用戶可以使用哪個(gè)資源以及如何使用。
③ 訪問(wèn)規(guī)則。訪問(wèn)規(guī)則定義了若干條件,在這些條件下可準(zhǔn)許訪問(wèn)一個(gè)資源。一般來(lái)講,規(guī)則可使用戶與資源配對(duì),然后指定該用戶可以在該資源上執(zhí)行哪些操作,如只讀、不允許執(zhí)行或不允許訪問(wèn)等。這些規(guī)則是由負(fù)責(zé)實(shí)施安全政策的系統(tǒng)管理人員根據(jù)最小特權(quán)原則來(lái)確定的,即在授予用戶訪問(wèn)某種資源的權(quán)限時(shí),只給予該資源的最小權(quán)限。例如,用戶需要讀權(quán)限時(shí),不應(yīng)該授予讀寫(xiě)權(quán)限。
3)文件保護(hù)
文件保護(hù)是指對(duì)文件提供的附加保護(hù),其可使非授權(quán)用戶不可讀取文件。一般采用對(duì)文件加密的附加保護(hù)。
4)審計(jì)
審計(jì)是記錄用戶系統(tǒng)所進(jìn)行的所有活動(dòng)的過(guò)程,即記錄用戶違反安全規(guī)定使用系統(tǒng)的時(shí)間、日期以及用戶活動(dòng)。因?yàn)榭赡苁占臄?shù)據(jù)量非常大,所以,良好的審計(jì)系統(tǒng)應(yīng)具有進(jìn)行數(shù)據(jù)篩選并報(bào)告審計(jì)記錄的工具,此外,還應(yīng)容許工具對(duì)審計(jì)記錄做進(jìn)一步的分析和處理。
(2)訪問(wèn)控制的關(guān)鍵要素
訪問(wèn)控制是指主體依據(jù)某些控制策略對(duì)客體本身或其他資源進(jìn)行不同權(quán)限的訪問(wèn)。訪問(wèn)控制包括3個(gè)要素:主體、客體和控制策略。
1)主體
主體是可以在信息客體間流動(dòng)的一種實(shí)體。主體通常指的是訪問(wèn)用戶,但是作業(yè)或設(shè)備也可以成為主體。所以,對(duì)文件進(jìn)行操作的用戶是一種主體,用戶調(diào)度并運(yùn)行的某個(gè)作業(yè)也是一種主體,檢測(cè)電源故障的設(shè)備還是一個(gè)主體。大多數(shù)交互式系統(tǒng)的工作過(guò)程是:用戶首先在系統(tǒng)中注冊(cè),然后啟動(dòng)某一進(jìn)程以完成某項(xiàng)任務(wù),該進(jìn)程繼承了啟動(dòng)它的用戶的訪問(wèn)權(quán)限。在這種情況下,進(jìn)程也是一個(gè)主體。一般來(lái)講,審計(jì)機(jī)制應(yīng)能對(duì)主體涉及的某一客體進(jìn)行的與安全有關(guān)的所有操作都做相應(yīng)的記錄和跟蹤。
2)客體
客體本身是一種信息實(shí)體,或者是從其他主體或客體接收信息的載體??腕w不受它所依存的系統(tǒng)的限制,其可以是記錄、數(shù)據(jù)塊、存儲(chǔ)頁(yè)、存儲(chǔ)段、文件、目錄、目錄樹(shù)、郵箱、信息、程序等,也可以是位、字節(jié)、字、域、處理器、通信線路、時(shí)鐘、網(wǎng)絡(luò)節(jié)點(diǎn)等。主體有時(shí)也可以被當(dāng)作客體,例如,一個(gè)進(jìn)程可能包含多個(gè)子進(jìn)程,這些子進(jìn)程就可以被認(rèn)為是一種客體。在一個(gè)系統(tǒng)中,作為一個(gè)處理單位的最小信息集合就稱(chēng)為一個(gè)文件,每一個(gè)文件都是一個(gè)客體。但是,如果文件可以分成許多小塊,并且每個(gè)小塊又可以單獨(dú)處理,那么每個(gè)小塊也都是一個(gè)客體。另外,如果文件系統(tǒng)被組織成了一個(gè)樹(shù)形結(jié)構(gòu),那么這種文件目錄也是客體。
在有些系統(tǒng)中,邏輯上所有的客體都作為文件處理。每種硬件設(shè)備都作為一種客體來(lái)處理,因而,每種硬件設(shè)備都具有相應(yīng)的訪問(wèn)控制信息。如果一個(gè)主體準(zhǔn)備訪問(wèn)某個(gè)設(shè)備,則該主體必須具有適當(dāng)?shù)脑L問(wèn)權(quán),而對(duì)設(shè)備的安全校驗(yàn)機(jī)制將對(duì)訪問(wèn)權(quán)進(jìn)行校驗(yàn)。例如,某主體想對(duì)終端進(jìn)行寫(xiě)操作,則需要將想寫(xiě)入的信息先寫(xiě)入相應(yīng)的文件中,安全機(jī)制將根據(jù)該文件的訪問(wèn)信息來(lái)決定是否允許該主體對(duì)終端進(jìn)行寫(xiě)操作。
3)控制策略
控制策略是主體對(duì)客體的操作行為集和約束條件集,也是主體對(duì)客體的控制規(guī)則集。這個(gè)規(guī)則集直接定義了主體對(duì)客體可以進(jìn)行的作用行為和客體對(duì)主體的條件約束??刂撇呗泽w現(xiàn)了一種授權(quán)行為,即客體對(duì)主體的權(quán)限允許,這種允許不可超越規(guī)則集。
訪問(wèn)控制系統(tǒng)的3個(gè)要素可以使用三元組(S、O、P)來(lái)表示,其中S表示主體,O表示客體,P表示許可。當(dāng)主體提出一系列正常請(qǐng)求信息I1,I2,…,In時(shí),請(qǐng)求信息會(huì)通過(guò)物聯(lián)網(wǎng)系統(tǒng)的入口到達(dá)控制規(guī)則集監(jiān)視的監(jiān)控器,由控制規(guī)則集來(lái)判斷允許或拒絕請(qǐng)求。在這種情況下,必須先確認(rèn)主體是合法的,而不是假冒的,也就是必須對(duì)主體進(jìn)行認(rèn)證。主體通過(guò)認(rèn)證后才能訪問(wèn)客體,但并不保證其有權(quán)限對(duì)客體進(jìn)行操作??腕w對(duì)主體的具體約束由訪問(wèn)控制表來(lái)控制實(shí)現(xiàn),對(duì)主體的驗(yàn)證一般都是通過(guò)鑒別用戶標(biāo)志和用戶密碼來(lái)實(shí)現(xiàn)的。用戶標(biāo)志是一個(gè)用來(lái)鑒別用戶身份的字符串,每個(gè)用戶有且只能有唯一的一個(gè)用戶標(biāo)志,以便與其他用戶有所區(qū)別。當(dāng)一個(gè)用戶在注冊(cè)系統(tǒng)時(shí),他必須提供其用戶標(biāo)志,然后系統(tǒng)才會(huì)執(zhí)行一個(gè)可靠的審查來(lái)確認(rèn)當(dāng)前用戶就是對(duì)應(yīng)用戶標(biāo)志的那個(gè)用戶。
當(dāng)前訪問(wèn)控制實(shí)現(xiàn)的模型普遍采用了主體、客體、授權(quán)的定義和這3個(gè)定義之間的關(guān)系的方法來(lái)描述。訪問(wèn)控制模型能夠?qū)τ?jì)算機(jī)系統(tǒng)中的存儲(chǔ)元素進(jìn)行抽象表達(dá)。訪問(wèn)控制要解決的一個(gè)基本問(wèn)題便是主動(dòng)對(duì)象(如進(jìn)程)如何對(duì)被動(dòng)的受保護(hù)對(duì)象(如被訪問(wèn)的文件等)進(jìn)行訪問(wèn),并且按照安全策略進(jìn)行控制。主動(dòng)對(duì)象稱(chēng)為主體,被動(dòng)對(duì)象稱(chēng)為客體。
針對(duì)一個(gè)安全的系統(tǒng),或者是將要在其上實(shí)施訪問(wèn)控制的系統(tǒng),一個(gè)訪問(wèn)可以對(duì)被訪問(wèn)的對(duì)象產(chǎn)生以下作用:一是對(duì)信息的抽取;二是對(duì)信息的插入。對(duì)于被訪問(wèn)對(duì)象來(lái)說(shuō),可以有“只讀不修改”“只讀修改”“只修改不讀”“既讀又修改”4種訪問(wèn)方式。
訪問(wèn)控制模型可以根據(jù)具體的安全策略的配置來(lái)決定一個(gè)主體對(duì)客體的訪問(wèn)屬于以上4種訪問(wèn)方式中的哪一種,并且可以根據(jù)相應(yīng)的安全策略來(lái)決定是否給予主體相應(yīng)的訪問(wèn)權(quán)限。
(3)訪問(wèn)控制策略的實(shí)施
訪問(wèn)控制策略是物聯(lián)網(wǎng)信息安全的核心策略之一,其任務(wù)是保證物聯(lián)網(wǎng)信息不被非法使用和非法訪問(wèn),為保證信息基礎(chǔ)的安全性提供一個(gè)框架,提供管理和訪問(wèn)物聯(lián)網(wǎng)資源的安全方法,規(guī)定各要素需要遵守的規(guī)范與應(yīng)負(fù)的責(zé)任,為物聯(lián)網(wǎng)系統(tǒng)安全提供可靠依據(jù)。
1)訪問(wèn)控制策略的基本原則
訪問(wèn)控制策略的制定與實(shí)施必須圍繞主體、客體和控制規(guī)則集三者之間的關(guān)系展開(kāi)。具體原則如下。
① 最小特權(quán)原則。最小特權(quán)原則指主體執(zhí)行操作時(shí),按照主體所需權(quán)利的最小化原則分配給主體權(quán)利。最小特權(quán)原則的優(yōu)點(diǎn)是最大限度地限制了主體實(shí)施授權(quán)行為,可以避免來(lái)自突發(fā)事件、錯(cuò)誤和未授權(quán)用戶主體的危險(xiǎn),即為了達(dá)到一定的目的,主體必須執(zhí)行一定的操作,但主體只能做允許范圍內(nèi)的操作。
② 最小泄露原則。最小泄露原則指主體執(zhí)行任務(wù)時(shí),按照主體所需要知道的信息最小化的原則分配給主體權(quán)利。
③ 多級(jí)安全原則。多級(jí)安全原則指主體和客體間的數(shù)據(jù)流向和權(quán)限控制按照安全級(jí)別進(jìn)行劃分,包括絕密、秘密、機(jī)密、限制和無(wú)級(jí)別5級(jí)。多級(jí)安全原則的優(yōu)點(diǎn)是可避免敏感信息擴(kuò)散。對(duì)于具有安全級(jí)別的信息資源,只有安全級(jí)別比它高的主體才能夠訪問(wèn)它。
2)訪問(wèn)控制策略的實(shí)現(xiàn)方式
訪問(wèn)控制的安全策略有:基于身份的安全策略和基于規(guī)則的安全策略。目前使用這兩種安全策略的基礎(chǔ)都是授權(quán)行為。
① 基于身份的安全策略。
基于身份的安全策略與鑒別行為一致,其目的是過(guò)濾對(duì)數(shù)據(jù)或資源的訪問(wèn),只有能通過(guò)認(rèn)證的主體才有可能正常使用客體的資源?;谏矸莸陌踩呗园ɑ趥€(gè)人的安全策略和基于組的安全策略。
基于個(gè)人的安全策略是指以用戶為中心建立的一種策略。這種策略由一些列表組成,這些列表限定了針對(duì)特定的客體,哪些用戶可以實(shí)現(xiàn)何種策略操作行為。
基于組的安全策略是基于個(gè)人的安全策略的擴(kuò)充,指一些用戶被允許使用同樣的訪問(wèn)控制規(guī)則訪問(wèn)同樣的客體。
基于身份的安全策略有兩種基本的實(shí)現(xiàn)方法:訪問(wèn)能力表和訪問(wèn)控制列表。訪問(wèn)能力表提供了針對(duì)主體的訪問(wèn)控制結(jié)構(gòu),訪問(wèn)控制列表提供了針對(duì)客體的訪問(wèn)控制結(jié)構(gòu)。
② 基于規(guī)則的安全策略
基于規(guī)則的安全策略中的授權(quán)通常依賴(lài)于敏感性。在一個(gè)安全系統(tǒng)中,對(duì)數(shù)據(jù)或資源應(yīng)該標(biāo)注安全標(biāo)記。代表用戶進(jìn)行活動(dòng)的進(jìn)程可以得到與其原發(fā)者相應(yīng)的安全標(biāo)記。
基于規(guī)則的安全策略在實(shí)現(xiàn)時(shí),由系統(tǒng)通過(guò)比較用戶的安全級(jí)別和客體資源的安全級(jí)別來(lái)判斷是否允許用戶進(jìn)行訪問(wèn)。
2、訪問(wèn)控制的分類(lèi)
訪問(wèn)控制可以限制用戶對(duì)應(yīng)用中關(guān)鍵資源的訪問(wèn),防止非法用戶進(jìn)入系統(tǒng)及合法用戶對(duì)系統(tǒng)資源的非法使用。在傳統(tǒng)的訪問(wèn)控制中,一般采用自主訪問(wèn)控制和強(qiáng)制訪問(wèn)控制。隨著分布式應(yīng)用環(huán)境的出現(xiàn),又發(fā)展出了基于對(duì)象的訪問(wèn)控制、基于任務(wù)的訪問(wèn)控制、基于角色的訪問(wèn)控制、基于屬性的訪問(wèn)控制等多種訪問(wèn)控制技術(shù)。
1)自主訪問(wèn)控制
自主訪問(wèn)控制(Discreytionary Access Control,DAC)是指用戶有權(quán)對(duì)自身所創(chuàng)建的訪問(wèn)對(duì)象(如文件、數(shù)據(jù)表等)進(jìn)行訪問(wèn),并可將對(duì)這些對(duì)象的訪問(wèn)權(quán)授予其他用戶和從授予權(quán)限的用戶處收回其訪問(wèn)權(quán)限。
2)強(qiáng)制訪問(wèn)控制
強(qiáng)制訪問(wèn)控制(Mandatory Access Control,MAC)是指由系統(tǒng)(通過(guò)專(zhuān)門(mén)設(shè)置的系統(tǒng)安全員)對(duì)用戶所創(chuàng)建的對(duì)象進(jìn)行統(tǒng)一的強(qiáng)制性控制,按照規(guī)定的規(guī)則決定哪些用戶可以對(duì)哪些對(duì)象進(jìn)行什么樣的操作系統(tǒng)類(lèi)型的訪問(wèn),即使是創(chuàng)建者用戶,其在創(chuàng)建一個(gè)對(duì)象后,也可能無(wú)權(quán)訪問(wèn)該對(duì)象。
3)基于對(duì)象的訪問(wèn)控制
DAC或MAC模型的主要任務(wù)都是對(duì)系統(tǒng)中的訪問(wèn)主體和受控對(duì)象進(jìn)行一維的權(quán)限管理。當(dāng)用戶數(shù)量多、處理的信息數(shù)據(jù)量巨大時(shí),用戶權(quán)限的管理任務(wù)將變得十分繁重且難以維護(hù),這就會(huì)降低系統(tǒng)的安全性和可靠性。
對(duì)于海量的數(shù)據(jù)和差異較大的數(shù)據(jù)類(lèi)型,需要用專(zhuān)門(mén)的系統(tǒng)和專(zhuān)門(mén)的人員加以處理,如果采用基于角色的訪問(wèn)控制模型,安全管理員除了需要維護(hù)用戶和角色的關(guān)聯(lián)關(guān)系外,還需要將龐大的信息資源訪問(wèn)權(quán)限賦予有限個(gè)角色。
當(dāng)信息資源的種類(lèi)增加或減少時(shí),安全管理員必須更新所有角色的訪問(wèn)權(quán)限設(shè)置,如果受控對(duì)象的屬性發(fā)生變化,以及需要將受控對(duì)象不同屬性的數(shù)據(jù)分配給不同的訪問(wèn)主體進(jìn)行處理時(shí),則安全管理員將不得不增加新的角色,還必須更新原來(lái)所有角色的訪問(wèn)權(quán)限設(shè)置以及訪問(wèn)主體的角色分配設(shè)置。
這樣的訪問(wèn)控制需求變化往往是不可預(yù)知的,這會(huì)導(dǎo)致訪問(wèn)控制管理難度增加工作量變大。因此,在這種情況下,有必要引入基于受控對(duì)象的訪問(wèn)控制模型。
控制策略和控制規(guī)則是基于對(duì)象的訪問(wèn)控制(Object-based Access Control,OBAC)系統(tǒng)的核心所在。在基于受控對(duì)象的訪問(wèn)控制模型中,會(huì)將訪問(wèn)控制列表與受控對(duì)象或受控對(duì)象的屬性相關(guān)聯(lián),并會(huì)將訪問(wèn)控制選項(xiàng)設(shè)計(jì)成為用戶、組或角色及其對(duì)應(yīng)權(quán)限的集合;同時(shí)允許對(duì)策略和規(guī)則進(jìn)行重用、繼承和派生操作。這樣,不僅可以對(duì)受控對(duì)象本身進(jìn)行訪問(wèn)控制,也可以對(duì)受控對(duì)象的屬性進(jìn)行訪問(wèn)控制,而且派生對(duì)象可以繼承父對(duì)象的訪問(wèn)控制設(shè)置,這對(duì)于信息量巨大、信息內(nèi)容更新變化頻繁的信息管理系統(tǒng)非常有益,可以減輕由信息資源的派生、演化和重組等帶來(lái)的分配、設(shè)定角色權(quán)限等工作量。
OBAC系統(tǒng)從信息系統(tǒng)的數(shù)據(jù)差異變化和用戶需求出發(fā),有效地解決了信息數(shù)據(jù)量大、數(shù)據(jù)種類(lèi)繁多、數(shù)據(jù)更新變化頻繁的大型信息管理系統(tǒng)的安全管理問(wèn)題。同時(shí),從受控對(duì)象的角度出發(fā),將訪問(wèn)主體的訪問(wèn)權(quán)限直接與受控對(duì)象相關(guān)聯(lián)。一方面,定義對(duì)象的訪問(wèn)控制列表,使增、刪、修改訪問(wèn)控制項(xiàng)易于操作;另一方面,當(dāng)受控對(duì)象的屬性發(fā)生改變,或者受控對(duì)象發(fā)生繼承和派生行為時(shí),無(wú)須更新訪問(wèn)主體的權(quán)限,只須修改受控對(duì)象的相應(yīng)訪問(wèn)控制項(xiàng)即可,從而減少了訪問(wèn)主體的權(quán)限管理,降低了授權(quán)數(shù)據(jù)管理的復(fù)雜性。
4)基于任務(wù)的訪問(wèn)控制
基于任務(wù)的訪問(wèn)控制(Task-based Access Control,TBAC)是從應(yīng)用和企業(yè)層面來(lái)解決安全問(wèn)題的,從任務(wù)(活動(dòng))的角度來(lái)建立安全模型和實(shí)現(xiàn)安全機(jī)制,在任務(wù)處理的過(guò)程中提供動(dòng)態(tài)、實(shí)時(shí)的安全管理。
在TBAC模型中,對(duì)象的訪問(wèn)權(quán)限控制并不是靜止不變的,而是會(huì)隨著執(zhí)行任務(wù)的上下文環(huán)境發(fā)生變化。TBAC首要考慮的是在工作流的環(huán)境中對(duì)信息的保護(hù)問(wèn)題:在工作流環(huán)境中,數(shù)據(jù)的處理與上一次的處理相關(guān)聯(lián),相應(yīng)的訪問(wèn)控制也是如此,因此TBAC是一種上下文相關(guān)的訪問(wèn)控制模型。其次,TBAC不僅能對(duì)不同的工作流實(shí)行不同的訪問(wèn)控制策略,還能對(duì)同一工作流的不同任務(wù)實(shí)例實(shí)行不同的訪問(wèn)控制策略。從這個(gè)意義上說(shuō),TBAC是基于任務(wù)的,這也表明,TBAC是一種基于實(shí)例(instance-based)的訪問(wèn)控制模型。
TBAC模型由工作流、授權(quán)結(jié)構(gòu)體、受托人集、許可集這4部分組成。
任務(wù)(task)是工作流中的一個(gè)邏輯單元,是一個(gè)可區(qū)分的動(dòng)作,與多個(gè)用戶相關(guān),也可能包括幾個(gè)子任務(wù)。授權(quán)結(jié)構(gòu)體(authorization unit)是任務(wù)在計(jì)算機(jī)中進(jìn)行控制的一個(gè)實(shí)例。任務(wù)中的子任務(wù)對(duì)應(yīng)于授權(quán)結(jié)構(gòu)體中的授權(quán)步。
授權(quán)結(jié)構(gòu)體是由一個(gè)或多個(gè)授權(quán)步(authorization step)組成的結(jié)構(gòu)體,它們?cè)谶壿嬌鲜锹?lián)系在一起的。授權(quán)結(jié)構(gòu)體分為一般授權(quán)結(jié)構(gòu)體和原子授權(quán)結(jié)構(gòu)體。一般授權(quán)結(jié)構(gòu)體內(nèi)的授權(quán)步依次執(zhí)行,原子授權(quán)結(jié)構(gòu)體內(nèi)的每個(gè)授權(quán)步緊密聯(lián)系,其中任何一個(gè)授權(quán)步失敗都會(huì)導(dǎo)致整個(gè)結(jié)構(gòu)體的失敗。
授權(quán)步表示一個(gè)原始授權(quán)處理步,是指在一個(gè)工作流中對(duì)處理對(duì)象的一次處理過(guò)程。授權(quán)步是訪問(wèn)控制所能控制的最小單元,由受托人集(trustee-set)和多個(gè)許可集(permissions-set)組成。
受托人集是可被授予執(zhí)行授權(quán)步的用戶的集合,許可集則是受托集的成員被授予授權(quán)步時(shí)擁有的訪問(wèn)許可。在授權(quán)步初始化以后,一個(gè)來(lái)自受托人集中的成員將被授予授權(quán)步,我們稱(chēng)這個(gè)受托人為授權(quán)步的執(zhí)行委托者,該受托者執(zhí)行授權(quán)步過(guò)程中所須許可的集合稱(chēng)為執(zhí)行者許可集。授權(quán)步之間或授權(quán)結(jié)構(gòu)體之間的相互關(guān)系稱(chēng)為依賴(lài)(dependency),依賴(lài)反映了基于任務(wù)的訪問(wèn)控制的原則。授權(quán)步的狀態(tài)變化一般由自身管理,即依據(jù)執(zhí)行的條件自動(dòng)變遷狀態(tài),但有時(shí)也可以由管理員進(jìn)行調(diào)配。
一個(gè)工作流的業(yè)務(wù)流程由多個(gè)任務(wù)構(gòu)成,而一個(gè)任務(wù)對(duì)應(yīng)于一個(gè)授權(quán)結(jié)構(gòu)體,每個(gè)授權(quán)結(jié)構(gòu)體由特定的授權(quán)步組成。授權(quán)結(jié)構(gòu)體之間以及授權(quán)步之間通過(guò)依賴(lài)關(guān)系聯(lián)系在一起。在TBAC中,一個(gè)授權(quán)步的處理可以決定后續(xù)授權(quán)步對(duì)處理對(duì)象的操作許可,這些許可的集合稱(chēng)為激活許可集。執(zhí)行者許可集和激活許可集一起稱(chēng)為授權(quán)步的保護(hù)態(tài)。
TBAC模型一般用五元組(S,O,P,L,AS)表示,其中S表示主體,O表示客體,P表示許可,L表示生命期(lifecycle),AS表示授權(quán)步。由于任務(wù)都是有時(shí)效性的,所以在基于任務(wù)的訪問(wèn)控制中,用戶對(duì)于授予他的權(quán)限的使用也是有時(shí)效性的。因此,若P是授權(quán)步AS所激活的權(quán)限,那么L就是授權(quán)步AS的存活期限。在授權(quán)步AS被激活之前,它的保護(hù)態(tài)是無(wú)效的,其中包含的許可不可使用。當(dāng)授權(quán)步AS被觸發(fā)時(shí),它的執(zhí)行委托者開(kāi)始擁有執(zhí)行者許可集中的權(quán)限,同時(shí)它的生命期開(kāi)始倒記時(shí)。在其生命期間,五元組(S,O,P,L,AS)有效;生命期終止時(shí),五元組(S,O,P,L,AS)無(wú)效,執(zhí)行委托者所擁有的權(quán)限被回收。
TBAC的訪問(wèn)政策及其內(nèi)部組件關(guān)系一般由系統(tǒng)管理員直接配置。通過(guò)授權(quán)步的動(dòng)態(tài)權(quán)限管理。TBAC支持最小特權(quán)原則和最小泄露原則,在執(zhí)行任務(wù)時(shí)只給用戶分配所需的權(quán)限,未執(zhí)行任務(wù)或任務(wù)終止后用戶不再擁有所分配的權(quán)限;而且在執(zhí)行任務(wù)過(guò)程中,當(dāng)某一權(quán)限不再被使用時(shí),授權(quán)步會(huì)自動(dòng)將該權(quán)限回收;另外,對(duì)于敏感的任務(wù)需要不同的用戶執(zhí)行,可以通過(guò)授權(quán)步之間的分權(quán)依賴(lài)加以實(shí)現(xiàn)。
TBAC從工作流中的任務(wù)角度建模,可以依據(jù)任務(wù)和任務(wù)狀態(tài)的不同,對(duì)權(quán)限進(jìn)行動(dòng)態(tài)管理。因此,TBAC非常適合分布式計(jì)算和多點(diǎn)訪問(wèn)控制的信息處理控制以及在工作流、分布式處理和事務(wù)管理系統(tǒng)中的決策制定。
5)基于角色的訪問(wèn)控制
基于角色的訪問(wèn)控制(Role-based Access Control,RBAC)的基本思想是將訪問(wèn)許可權(quán)分配給一定的角色,用戶通過(guò)飾演不同的角色來(lái)獲得角色所擁有的訪問(wèn)許可權(quán)。這是因?yàn)樵诤芏鄬?shí)際應(yīng)用中,用戶并不是可以訪問(wèn)的客體信息資源的所有者(這些信息屬于企業(yè)或公司)。因此,訪問(wèn)控制應(yīng)該基于員工的職務(wù)而不是基于員工在哪個(gè)組或誰(shuí)是信息的所有者,即訪問(wèn)控制是由各個(gè)用戶在部門(mén)中所擔(dān)任的角色來(lái)確定的。例如,一個(gè)學(xué)校可以有老師、學(xué)生和其他管理人員等角色。
RBAC從控制主體的角度出發(fā),根據(jù)管理中相對(duì)穩(wěn)定的職權(quán)和責(zé)任來(lái)劃分角色,將訪問(wèn)權(quán)限與角色相聯(lián)系,這點(diǎn)與傳統(tǒng)的MAC和DAC將權(quán)限直接授予用戶的方式不同。RBAC通過(guò)給用戶分配合適的角色,讓用戶與訪問(wèn)權(quán)限相聯(lián)系。角色成為了訪問(wèn)控制中訪問(wèn)主體和受控對(duì)象之間的一座橋梁。
角色可以被看作一組操作的集合,不同的角色具有不同的操作集,這些操作集是由系統(tǒng)管理員分配給角色的。在下面的實(shí)例中,我們假設(shè)Tch1,Tch2,Tch3,…,Tchi是老師,Stud1,Stud2,Stud3,…,Studj是學(xué)生,Mng1,Mng2,Mng3,…,Mngk是教務(wù)處管理人員,那么老師的權(quán)限為T(mén)chMN={查詢(xún)成績(jī)、上傳所教課程的成績(jī)};學(xué)生的權(quán)限為Stud MN={查詢(xún)成績(jī)、反映意見(jiàn)};教務(wù)處管理人員的權(quán)限為MngMN={查詢(xún)成績(jī)、修改成績(jī)、打印成績(jī)清單}。
依據(jù)角色的不同,每個(gè)主體只能執(zhí)行自己所制定的訪問(wèn)功能。用戶在一定的部門(mén)中具有一定的角色,其所執(zhí)行的操作與其所扮演的角色的職能相匹配,這正是基于角色的訪問(wèn)控制(RBAC)的根本特征:依據(jù)RBAC策略,系統(tǒng)定義了各種角色,每種角色可以完成一定的職能,不同的用戶根據(jù)其職能和責(zé)任被賦予相應(yīng)的角色,一旦某個(gè)用戶成為某角色的成員,則該用戶就可以完成該角色所具有的職能。
因?yàn)槠髽I(yè)擔(dān)心冗長(zhǎng)而復(fù)雜的實(shí)施過(guò)程,并且雇員訪問(wèn)權(quán)要發(fā)生變化,所以許多企業(yè)往往不愿意實(shí)施基于角色的訪問(wèn)控制。完成基于角色的矩陣可能是一個(gè)需要企業(yè)花費(fèi)幾年時(shí)間的復(fù)雜過(guò)程。有一些新方法可以縮短這個(gè)過(guò)程,例如,企業(yè)可以將人力資源系統(tǒng)作為數(shù)據(jù)源,收集所有雇員的部門(mén)、職位以及企業(yè)的層次結(jié)構(gòu)等信息,并將這些信息用于創(chuàng)建每個(gè)訪問(wèn)級(jí)別的角色,從活動(dòng)目錄等位置獲得當(dāng)前的權(quán)利,實(shí)現(xiàn)不同角色的雇員的數(shù)據(jù)共享。
6)基于屬性的訪問(wèn)控制
基于屬性的訪問(wèn)控制(Attribute-based Access Control,ABAC)主要針對(duì)面向服務(wù)的體系結(jié)構(gòu)和開(kāi)放式網(wǎng)絡(luò)環(huán)境,在這種環(huán)境中,能夠基于訪問(wèn)的上下文建立訪問(wèn)控制策略,處理主體和客體的異構(gòu)性和變化性。RBAC已不能適應(yīng)這樣的環(huán)境。RBAC不能直接在主體和客體之間定義授權(quán),而是需要將他們關(guān)聯(lián)的屬性作為授權(quán)決策的基礎(chǔ),并利用屬性表達(dá)式描述訪問(wèn)策略。ABAC能夠根據(jù)相關(guān)實(shí)體屬性的變化,適時(shí)更新訪問(wèn)控制決策,從而提供一種更細(xì)粒度的、更加靈活的訪問(wèn)控制方法。
屬性雖然是一個(gè)變量,但是相對(duì)而言它的規(guī)則策略是穩(wěn)定且不易改變的。ABAC之所以能運(yùn)用于用戶動(dòng)態(tài)變化的訪問(wèn)控制中,就是因?yàn)樗昧瞬呗缘墓潭ㄐ运a(chǎn)生的作用。
3、訪問(wèn)控制的基本原則
訪問(wèn)控制機(jī)制是用來(lái)實(shí)施對(duì)資源訪問(wèn)加以限制的策略的機(jī)制,這種策略把對(duì)資源的訪問(wèn)權(quán)限只授于了那些被授權(quán)用戶。應(yīng)該建立起申請(qǐng)、建立、發(fā)出和關(guān)閉用戶授權(quán)的嚴(yán)格的制度,以及管理和監(jiān)督用戶操作責(zé)任的機(jī)制。
為了獲取系統(tǒng)的安全,授權(quán)應(yīng)該遵守訪問(wèn)控制的3個(gè)基本原則。
1)最小特權(quán)原則
最小特權(quán)原則是系統(tǒng)安全中最基本的原則之一。最小特權(quán)(Least Privilege)指的是“在完成某種操作時(shí)所賦予網(wǎng)絡(luò)中每個(gè)主體(用戶或進(jìn)程)必不可少的特權(quán)”。最小特權(quán)原則是指“應(yīng)限定網(wǎng)絡(luò)中每個(gè)主體所需的最小特權(quán),以確保可能的事故、錯(cuò)誤、網(wǎng)絡(luò)部件的篡改等原因造成的損失最小”。
最小特權(quán)原則使用戶所擁有的權(quán)力不能超過(guò)它執(zhí)行工作時(shí)所需的權(quán)限。最小特權(quán)原則一方面給予主體“必不可少”的特權(quán),保證了所有的主體都能在所賦予的特權(quán)之下完成所需要完成的任務(wù)或操作;另一方面,它只給予主體“必不可少”的特權(quán),這也限制了每個(gè)主體所能進(jìn)行的操作。
2)多人負(fù)責(zé)原則
多人負(fù)責(zé)即授權(quán)分散化,在功能上劃分關(guān)鍵的任務(wù)由多人來(lái)共同承擔(dān),以保證沒(méi)有任何個(gè)人具有完成任務(wù)的全部授權(quán)或信息,如將責(zé)任做分解以確保沒(méi)有一個(gè)人具有完整的密鑰。
3)職責(zé)分離原則
職責(zé)分離是保障安全的一個(gè)基本原則。職責(zé)分離是指將不同的責(zé)任分派給不同的人員以期達(dá)到互相牽制的作用,消除一個(gè)人執(zhí)行兩項(xiàng)不相容的工作的風(fēng)險(xiǎn),如收款員、出納員、審計(jì)員應(yīng)由不同的人擔(dān)任。計(jì)算機(jī)環(huán)境下也要有職責(zé)分離,為避免安全上的漏洞,有些許可不能同時(shí)被同一用戶獲得。
4、BLP訪問(wèn)控制
BLP模型是由戴維和萊納德于1973年提出并于1976年整合、完善的安全模型。BLP模型的基本安全策略是“下讀上寫(xiě)”,即主體對(duì)客體向下讀、向上寫(xiě)。主體可以讀安全級(jí)別比它低或相等的客體,可以寫(xiě)安全級(jí)別比它高或相等的客體。“下讀上寫(xiě)”的安全策略保證了數(shù)據(jù)庫(kù)中的所有數(shù)據(jù)只能按照安全級(jí)別從低到高流動(dòng),從而保證了敏感數(shù)據(jù)不泄露。
(1)BLP安全模型
BLP安全模型是一種訪問(wèn)控制模型,它通過(guò)制定主體對(duì)客體的訪問(wèn)規(guī)則和操作權(quán)限來(lái)保證系統(tǒng)信息的安全性。BLP模型中基本的安全控制方法有2種。
1)強(qiáng)制訪問(wèn)控制(MAC)
MAC主要是通過(guò)“安全級(jí)”來(lái)進(jìn)行的。訪問(wèn)控制通過(guò)引入“安全級(jí)”“組集”和“格”的概念,為每個(gè)主體規(guī)定了一系列的操作權(quán)限和范圍。“安全級(jí)”通常由“普通、秘密、機(jī)密、絕密”4個(gè)不同的等級(jí)構(gòu)成,用以表示主體的訪問(wèn)能力和客體的訪問(wèn)要求。“組集”就是主體能訪問(wèn)客體所從屬的區(qū)域的集合,如“部門(mén)”“科室”“院系”等。通過(guò)“格”定義一種比較規(guī)則,只有在這種規(guī)則下,主體控制客體時(shí)才允許主體訪問(wèn)客體。MAC是BLP模型實(shí)現(xiàn)控制手段的主要方法。
作為實(shí)施強(qiáng)制型安全控制的依據(jù),主體和客體均要求被賦予一定的 “安全級(jí)”。其中,人作為安全主體,其部門(mén)集表示它可以涉獵哪些范圍內(nèi)的信息,而一個(gè)信息的部門(mén)集則表示該信息所涉及的范圍,這里有3點(diǎn)要求:
① 主體的安全級(jí)高于客體,當(dāng)且僅當(dāng)主體的密級(jí)高于客體的密級(jí),且主體的部門(mén)集包含客體的部門(mén)集;
② 主體可以讀客體,當(dāng)且僅當(dāng)主體的安全級(jí)高于或等于客體的安全級(jí);
③ 主體可以寫(xiě)客體,當(dāng)且僅當(dāng)主體的安全級(jí)低于或等于客體的安全級(jí)。
BLP模型給每個(gè)用戶及文件賦予一個(gè)訪問(wèn)級(jí)別,如最高秘密級(jí)(Top Secret)、秘密級(jí)(Secret)、機(jī)密級(jí)(Confidential)及無(wú)級(jí)別級(jí)(Unclassified)。其級(jí)別由高到低為T(mén)>S>C>U,系統(tǒng)根據(jù)主體和客體的敏感標(biāo)記來(lái)決定訪問(wèn)模式。訪問(wèn)模式包括以下4種。
下讀(read down):用戶級(jí)別大于文件級(jí)別的讀操作。
上寫(xiě)(write up):用戶級(jí)別小于文件級(jí)別的寫(xiě)操作。
下寫(xiě)(write down):用戶級(jí)別大于文件級(jí)別的寫(xiě)操作。
上讀(read up):用戶級(jí)別小于文件級(jí)別的讀操作。
2)自主訪問(wèn)控制(DAC)
DAC也是BLP模型中非常重要的實(shí)現(xiàn)控制的方法。DAC通過(guò)客體的屬主自行決定其訪問(wèn)范圍和方式,實(shí)現(xiàn)對(duì)不同客體的訪問(wèn)控制。在BLP模型中,DAC是MAC的重要補(bǔ)充和完善。
主體對(duì)其擁有的客體有權(quán)決定自己和他人對(duì)該客體應(yīng)具有怎樣的訪問(wèn)權(quán)限。最終的結(jié)果是,在BLP模型的控制下,主體要獲取對(duì)客體的訪問(wèn),必須同時(shí)通過(guò)MAC和DAC這兩種安全控制設(shè)施。
依據(jù)BLP模型所制定的原則是利用不上讀或不下寫(xiě)來(lái)保證數(shù)據(jù)的保密性,如圖1所示,既不允許低信任級(jí)別的用戶讀高敏感度的信息,也不允許高敏感度的信息寫(xiě)入低敏感度區(qū)域,禁止信息從高級(jí)別流向低級(jí)別。MAC通過(guò)這種梯度安全標(biāo)簽實(shí)現(xiàn)信息的單向流通。
圖1 BLP模型
(2)BLP模型的優(yōu)缺點(diǎn)
BLP模型的優(yōu)點(diǎn)如下。
① BLP模型是一種嚴(yán)格的形式化描述。
② BLP模型控制信息只能由低向高流動(dòng),這能滿足軍事部門(mén)這一類(lèi)對(duì)數(shù)據(jù)保密性要求特別高的機(jī)構(gòu)的需求。
BLP模型的缺點(diǎn)如下。
① 上級(jí)對(duì)下級(jí)發(fā)文受到限制。
② 部門(mén)之間信息的橫向流動(dòng)被禁止。
③ 缺乏靈活、安全的授權(quán)機(jī)制。
5、基于角色的訪問(wèn)控制
基于角色的訪問(wèn)控制(Role-based Access Control,RBAC)是美國(guó)NIST提出的一種新的訪問(wèn)控制技術(shù)。該技術(shù)的基本思想是將用戶劃分成與其所在組織結(jié)構(gòu)體系相一致的角色,并將權(quán)限授予角色而不是直接授予主體,主體通過(guò)角色分派來(lái)得到客體操作權(quán)限從而實(shí)現(xiàn)授權(quán)。由于角色在系統(tǒng)中具有相對(duì)于主體的穩(wěn)定性,更便于直觀地理解,因此可以大大降低系統(tǒng)授權(quán)管理的復(fù)雜性,減少安全管理員的工作量。
在RBAC的發(fā)展過(guò)程中,最早出現(xiàn)的是RBAC96模型和ARBAC模型,此處只對(duì)RBAC96模型進(jìn)行介紹。RBAC96模型的成員包括RBAC0、RBAC1、RBAC2和RBAC3。RBAC0是基于角色訪問(wèn)控制模型的基本模型,規(guī)定了RBAC模型的最小需求;RBAC1為角色層次模型,在RBAC0的基礎(chǔ)上加入了角色繼承關(guān)系,可以根據(jù)組織內(nèi)部職責(zé)和權(quán)利來(lái)構(gòu)造角色與角色之間的層次關(guān)系;RBAC2為角色的限制模型,在RBAC0的基礎(chǔ)上加入了各種用戶與角色之間、權(quán)限與角色之間以及角色與角色之間的限制關(guān)系,如角色互斥、角色最大成員數(shù)、前提角色和前提權(quán)限等;RBAC3為統(tǒng)一模型,它不僅包括角色的繼承關(guān)系,還包括限制關(guān)系,是RBAC1和RBAC2的集成。
基于角色訪問(wèn)控制的要素包括用戶、角色、許可等基本定義。在RBAC中,用戶就是一個(gè)可以獨(dú)立訪問(wèn)計(jì)算機(jī)系統(tǒng)中的數(shù)據(jù)或者用數(shù)據(jù)表示的其他資源的主體。角色是指一個(gè)組織或任務(wù)中的工作或者位置,它代表了一種權(quán)利、資格和責(zé)任。許可(特權(quán))就是允許對(duì)一個(gè)或多個(gè)客體執(zhí)行操作。一個(gè)用戶可經(jīng)授權(quán)而擁有多個(gè)角色,一個(gè)角色可由多個(gè)用戶構(gòu)成;每個(gè)角色可擁有多種許可,每個(gè)許可也可授權(quán)給多個(gè)不同的角色。每個(gè)操作可施加于多個(gè)客體(受控對(duì)象),每個(gè)客體也可以接受多個(gè)操作。上述要素的實(shí)現(xiàn)形式介紹如下。
① 用戶表(USERS)包括用戶標(biāo)志、用戶姓名、用戶登錄密碼。用戶表是系統(tǒng)中的個(gè)體用戶集,會(huì)隨用戶的添加與刪除動(dòng)態(tài)變化。
② 角色表(ROLES)包括角色標(biāo)識(shí)、角色名稱(chēng)、角色基數(shù)、角色可用標(biāo)識(shí)。角色表是系統(tǒng)角色集,角色是由系統(tǒng)管理員來(lái)定義的。
③ 客體表(OBJECTS)包括對(duì)象標(biāo)志、對(duì)象名稱(chēng)??腕w表是系統(tǒng)中所有受控對(duì)象的集合。
④ 操作算子表(OPERATIONS)包括操作標(biāo)志、操作算子名稱(chēng)。系統(tǒng)中所有受控對(duì)象的操作算子構(gòu)成了操作算子表。
⑤ 許可表(PERMISSIONS)包括許可標(biāo)志、許可名稱(chēng)、受控對(duì)象、操作標(biāo)志。許可表給出了受控對(duì)象與操作算子的對(duì)應(yīng)關(guān)系。
RBAC系統(tǒng)由RBAC數(shù)據(jù)庫(kù)、身份認(rèn)證模塊、系統(tǒng)管理模塊和會(huì)話管理模塊組成。RBAC數(shù)據(jù)庫(kù)與各模塊的對(duì)應(yīng)關(guān)系如圖2所示。
圖2 RBAC數(shù)據(jù)庫(kù)與各模塊的對(duì)應(yīng)關(guān)系
身份認(rèn)證模塊通過(guò)用戶標(biāo)志和用戶口令來(lái)確認(rèn)用戶身份。此模塊僅使用RBAC數(shù)據(jù)庫(kù)中的USERS表。
系統(tǒng)管理模塊主要完成用戶增減(使用USERS表)、角色增減(使用ROLES表)、用戶/角色的分配(使用USERS表、ROLES表、用戶/角色分配表、用戶/角色授權(quán)表)、角色/許可的分配(使用ROLES表、PERMISSIONS表、角色/許可授權(quán)表)、角色間關(guān)系的定義(使用ROLES表、角色層次表、靜態(tài)互斥角色表、動(dòng)態(tài)互斥角色表),其中每個(gè)操作都帶有參數(shù),也都有一定的前提條件。操作可使RBAC數(shù)據(jù)庫(kù)發(fā)生動(dòng)態(tài)變化。系統(tǒng)管理員可使用該模塊來(lái)初始化和維護(hù)RBAC數(shù)據(jù)庫(kù)。
系統(tǒng)管理模塊的操作包括添加用戶、刪除用戶、添加角色、刪除角色、設(shè)置角色可用性、為角色增加許可、取消角色的某個(gè)許可、為用戶分配角色、取消用戶的某個(gè)角色、設(shè)置用戶授權(quán)角色的可用性、添加角色繼承關(guān)系、取消角色繼承、添加一個(gè)靜態(tài)角色互斥關(guān)系、刪除一個(gè)靜態(tài)角色互斥關(guān)系、添加一個(gè)動(dòng)態(tài)角色互斥關(guān)系、刪除一個(gè)動(dòng)態(tài)角色互斥關(guān)系、設(shè)置角色基數(shù)等。
會(huì)話管理模塊會(huì)結(jié)合RBAC數(shù)據(jù)庫(kù)來(lái)管理會(huì)話,包括會(huì)話的創(chuàng)建與取消以及對(duì)活躍角色的管理。此模塊會(huì)使用USERS表、ROLES表、動(dòng)態(tài)互斥角色表、會(huì)話表和活躍角色表來(lái)執(zhí)行操作。
RBAC系統(tǒng)的運(yùn)行步驟如下。
① 用戶登錄時(shí)向身份認(rèn)證模塊發(fā)送用戶標(biāo)志、用戶口令,確認(rèn)用戶身份。
② 會(huì)話管理模塊在RBAC數(shù)據(jù)庫(kù)中檢索該用戶的授權(quán)角色集并將其送回用戶。
③ 用戶從中選擇本次會(huì)話的活躍角色集,在此過(guò)程中會(huì)話管理模塊維持動(dòng)態(tài)角色互斥。
④ 會(huì)話創(chuàng)建成功,本次會(huì)話的授權(quán)許可體現(xiàn)在菜單與按扭上,若不可用,則顯示為灰色。
⑤ 在此會(huì)話過(guò)程中,系統(tǒng)管理員若要更改角色或許可,則可在此會(huì)話結(jié)束后進(jìn)行,或者在終止此會(huì)話后立即進(jìn)行。
圖3給出了基于RBAC的用戶集合、角色集合和資源集合之間的多對(duì)多的關(guān)系。理論上,一個(gè)用戶可以通過(guò)多個(gè)角色訪問(wèn)不同資源。但是,在實(shí)際應(yīng)用系統(tǒng)中,通常給一個(gè)用戶授予一個(gè)角色,只允許其訪問(wèn)一種資源,這樣就可以更好地保證資源的安全性。
圖3 RBAC中用戶集合、角色集合和資源集合的關(guān)系
6、基于信任評(píng)估的動(dòng)態(tài)訪問(wèn)控制
在物聯(lián)網(wǎng)環(huán)境中,用戶可以自由地加入或退出網(wǎng)絡(luò),而且用戶數(shù)量可能相當(dāng)龐大,為每個(gè)用戶定義訪問(wèn)控制策略并不現(xiàn)實(shí),因此,需要提出一種新的機(jī)制來(lái)解決物聯(lián)網(wǎng)環(huán)境的動(dòng)態(tài)訪問(wèn)控制問(wèn)題。
(1)基于信任評(píng)估的動(dòng)態(tài)訪問(wèn)控制模型
我們?cè)趯?duì)用戶信任度進(jìn)行評(píng)估的基礎(chǔ)上,根據(jù)用戶的信任度對(duì)用戶進(jìn)行分組,對(duì)用戶集合進(jìn)行角色的分配和訪問(wèn)控制,提出了基于信任評(píng)估的動(dòng)態(tài)訪問(wèn)控制(Trust Evaluation-based Dynamic Role Access Control,TE-DAC)模型。該模型將信任度與訪問(wèn)控制相結(jié)合,可以體現(xiàn)系統(tǒng)的動(dòng)態(tài)性。
TE-DAC模型綜合了信任管理和訪問(wèn)控制的優(yōu)勢(shì),通過(guò)對(duì)用戶進(jìn)行信任評(píng)估,確定用戶的信任度,進(jìn)而即可根據(jù)其信任度和獲得的角色對(duì)用戶進(jìn)行訪問(wèn)授權(quán)。TE-DAC模型擴(kuò)展了RBAC模型,增加了上下文監(jiān)測(cè)、用戶會(huì)話監(jiān)控、用戶信任度評(píng)估、根據(jù)用戶信任度對(duì)用戶角色進(jìn)行權(quán)限指派等功能;同時(shí)通過(guò)將角色分為禁止?fàn)顟B(tài)(disable)、允許狀態(tài)(enable)和激活狀態(tài)(active),使得模型具有了更好的靈活性,方便用戶的職責(zé)分離(Separation of Duty,SoD)。TE-DAC模型如圖4所示。
圖4 TE-DAC模型
TE-DAC模型的一個(gè)重要的特征是區(qū)分了角色的允許狀態(tài)和激活狀態(tài)。在該模型中,角色可以有3種狀態(tài):禁止?fàn)顟B(tài)、允許狀態(tài)和激活狀態(tài)。若角色處于禁止?fàn)顟B(tài),則該角色不可以在任何用戶會(huì)話的過(guò)程中使用,例如,用戶不能獲得分配給該角色的任何權(quán)限。允許狀態(tài)表示在滿足條件時(shí)用戶可以激活該角色,即如果一個(gè)用戶激活了某個(gè)角色,該角色就變?yōu)榱思せ顮顟B(tài)。處于激活狀態(tài)的角色表示至少一個(gè)用戶激活了該角色,若只有一個(gè)用戶使用該角色,則執(zhí)行一次休眠操作后,該角色就會(huì)轉(zhuǎn)變?yōu)樵试S狀態(tài);若有N個(gè)用戶使用該角色,則執(zhí)行N次休眠操作后,該角色才會(huì)轉(zhuǎn)變?yōu)樵试S狀態(tài),否則,其仍是激活狀態(tài)。角色處于激活狀態(tài)時(shí),重復(fù)激活不改變其狀態(tài)。若有禁止事件發(fā)生,則角色會(huì)轉(zhuǎn)變?yōu)榻範(fàn)顟B(tài),不管其原來(lái)處于允許狀態(tài)還是激活狀態(tài)。
(2)基于信任評(píng)估的動(dòng)態(tài)訪問(wèn)控制過(guò)程
TE-DAC系統(tǒng)與傳統(tǒng)的訪問(wèn)控制系統(tǒng)的一個(gè)重要區(qū)別是可以在一個(gè)適當(dāng)?shù)牧6认驴刂圃L問(wèn)請(qǐng)求和計(jì)算資源。信任作為一個(gè)計(jì)算參數(shù),反映了用戶行為的可信度。在物聯(lián)網(wǎng)系統(tǒng)中,用戶的每次訪問(wèn)請(qǐng)求,都由訪問(wèn)認(rèn)證中心(Access Authorization Center,AAC)進(jìn)行信任度檢查,以判斷用戶是否滿足允許訪問(wèn)的條件。在該模型中,信任度被作為用戶的一個(gè)屬性而進(jìn)行綜合認(rèn)證。認(rèn)證模塊由策略執(zhí)行點(diǎn)和策略決策點(diǎn)組成。
用戶登錄系統(tǒng)后,根據(jù)用戶的身份為其分配相應(yīng)的角色,此時(shí)的角色沒(méi)有被指派任何屬性,角色無(wú)任何權(quán)限,處于禁止?fàn)顟B(tài),因此,用戶不能進(jìn)行任何操作。通過(guò)信任評(píng)估模塊獲得用戶的信任度后,將其和其他屬性作為角色屬性賦予角色,然后查詢(xún)策略庫(kù)中的角色權(quán)限表,為角色分配相應(yīng)的操作權(quán)限,此時(shí),角色的狀態(tài)轉(zhuǎn)變?yōu)樵试S狀態(tài),可被激活,用戶可通過(guò)事件激活角色以進(jìn)行相應(yīng)的操作。TE-DAC模型的訪問(wèn)控制過(guò)程如圖5所示。
圖5 TE-DAC模型的訪問(wèn)控制過(guò)程
訪問(wèn)控制過(guò)程包含6個(gè)步驟。
① 用戶(User)將訪問(wèn)請(qǐng)求發(fā)送給安全管理中心(Security Management Engine,SME),訪問(wèn)請(qǐng)求中包含用戶ID、密碼等認(rèn)證信息。
② SME通過(guò)對(duì)用戶進(jìn)行身份認(rèn)證和信任評(píng)估,根據(jù)訪問(wèn)控制策略生成用戶的訪問(wèn)授權(quán)策略并將其返回給用戶。該步驟更詳細(xì)的介紹如下:
a. 用戶的計(jì)算請(qǐng)求提交給策略執(zhí)行點(diǎn)(Policy Enforcement Point,PEP);
b. PEP向策略決策點(diǎn)(Policy Decision Point,PDP)發(fā)出訪問(wèn)決策請(qǐng)求,該請(qǐng)求包括用戶的身份信息及服務(wù)類(lèi)型信息;
c. PDP向身份認(rèn)證系統(tǒng)提交用戶的安全憑證,以驗(yàn)證用戶身份是否合法。如果認(rèn)證失敗,則生成終止訪問(wèn)的信息并執(zhí)行步驟h;
d. 若用戶通過(guò)了身份認(rèn)證,則PDP會(huì)根據(jù)用戶身份為該用戶分配相應(yīng)的角色,此時(shí)的角色處于禁止?fàn)顟B(tài);
e. PDP向信任評(píng)估引擎(Trust Evaluation Engine,TEE)發(fā)出信任評(píng)估請(qǐng)求,TEE通過(guò)查詢(xún)信任數(shù)據(jù)庫(kù)評(píng)估用戶的行為信任度,并將評(píng)估結(jié)果返回給PDP,同時(shí)用新的信任度更新信任數(shù)據(jù)庫(kù);
f. PDP查詢(xún)策略庫(kù)中的角色屬性表;
g. PDP將步驟e中獲得的用戶信任度和步驟f中獲得的角色屬性指派給該用戶的角色,然后查詢(xún)策略庫(kù)中的權(quán)限分配表(Permissions Assignment Table,PAT),獲取角色當(dāng)前對(duì)應(yīng)的權(quán)限。PDP檢查該權(quán)限與用戶請(qǐng)求的權(quán)限,若二者相同或該權(quán)限包含用戶請(qǐng)求的權(quán)限,則允許該次訪問(wèn)請(qǐng)求,并生成允許訪問(wèn)的信息;若該權(quán)限小于用戶請(qǐng)求的權(quán)限,則拒絕該次訪問(wèn)請(qǐng)求,并生成拒絕訪問(wèn)的信息;
h. PEP執(zhí)行PDP的決定,如果收到允許訪問(wèn)的信息,則激活用戶的角色;如果收到拒絕訪問(wèn)的信息,則將其返回給用戶;更新策略庫(kù)。
③ 用戶向資源管理器(Resource Manager,RM)提交資源請(qǐng)求服務(wù)。
④ RM啟動(dòng)資源調(diào)度算法,為用戶分配相應(yīng)的服務(wù)提供者,然后使用分發(fā)程序?qū)⒂脩羧蝿?wù)分發(fā)到相應(yīng)的服務(wù)提供者進(jìn)行執(zhí)行。調(diào)度時(shí),將服務(wù)提供者的信任作為調(diào)度算法的參數(shù)可以更有效地進(jìn)行資源調(diào)度控制,提高資源利用率。
⑤ 在此次交互結(jié)束時(shí),用戶可以基于資源的性能等特性計(jì)算服務(wù)提供者的信任度,并將計(jì)算結(jié)果發(fā)送給SME以進(jìn)行服務(wù)提供者的信任更新。
⑥ 同時(shí),服務(wù)提供者也會(huì)對(duì)用戶進(jìn)行同樣的信任更新。
7、基于信任關(guān)系的動(dòng)態(tài)服務(wù)授權(quán)
對(duì)于服務(wù)(資源)提供者來(lái)說(shuō),其可根據(jù)服務(wù)請(qǐng)求者的不同OTD,把服務(wù)請(qǐng)求者分別映射到不同的角色。同時(shí),服務(wù)提供者在接到多個(gè)服務(wù)請(qǐng)求者請(qǐng)求的情況下,也需要按照不同的策略來(lái)分配資源,授權(quán)用戶訪問(wèn)資源。
(1)形式化描述
下面從服務(wù)提供者的角度給出一種基于信任關(guān)系的動(dòng)態(tài)服務(wù)授權(quán)策略的形式化描述。
設(shè)實(shí)體Pj向服務(wù)提供者Pi請(qǐng)求某種服務(wù),Pi對(duì)Pj的總體信任度Γ(Pi,Pj)有P個(gè)評(píng)估等級(jí)c1,c2,…,cP,其中0≤cp≤1(p=1,2,…,P)。評(píng)估等級(jí)空間記作U,表示為U={c1,c2,…,cP},若評(píng)估等級(jí)空間U具有如下性質(zhì):ci∩cj=ϕ(i≠j),且c1<c2<…<cP,即ck+1比ck強(qiáng),則稱(chēng)U={c1,c2,…,cP}為一個(gè)有序分割類(lèi)。
設(shè)實(shí)體Pi可提供P個(gè)級(jí)別的服務(wù)S={s1,s2,…,sP},且S是一個(gè)有序分割類(lèi),S和總體信任度Γ(Pi,Pj)之間的映射函數(shù)Ψ表示為:
分界點(diǎn)c1,c2,…,cP可以根據(jù)信任度的實(shí)數(shù)空間的邊界點(diǎn)確定,實(shí)體Pj向服務(wù)提供者Pi請(qǐng)求某種服務(wù),Pi首先要根據(jù)Pj的信任度級(jí)別Γ(Pi,Pj)決定它所能得到的服務(wù)質(zhì)量,這樣既可以分級(jí)對(duì)不同的實(shí)體提供不同的服務(wù),又有利于降低系統(tǒng)可能存在的風(fēng)險(xiǎn)。
(2)基于信任關(guān)系的動(dòng)態(tài)服務(wù)選擇
在物聯(lián)網(wǎng)系統(tǒng)中,服務(wù)雙方通過(guò)身份認(rèn)證和訪問(wèn)控制后,為對(duì)方提供多少資源也是一個(gè)非常重要的問(wèn)題。如果交易一方提供虛假計(jì)算或存儲(chǔ)資源,則預(yù)先確定的任務(wù)可能會(huì)被延期執(zhí)行;如果交易一方惡意撤銷(xiāo)計(jì)算或存儲(chǔ)資源,則預(yù)先確定的任務(wù)將無(wú)法完成。針對(duì)這些問(wèn)題,需要從信任評(píng)估的角度來(lái)實(shí)現(xiàn)交易雙方的服務(wù)資源選擇。
下面是從服務(wù)請(qǐng)求者的角度給出的一種基于信任度的資源選擇方法。
令∀Pi∈S為計(jì)算市場(chǎng)中的服務(wù)請(qǐng)求者,O={Pj,j∈[1,M]}為服務(wù)提供者(資源的集合),∀Pi∈S向∃Pj∈O請(qǐng)求服務(wù)的過(guò)程定義為Pi和Pj的交易,而交易回饋信息則包含了Pi對(duì)Pj的信任評(píng)分及相關(guān)認(rèn)證信息。
設(shè)ΓD(Pi,Pj)為Pi對(duì)Pj的直接信任度,表示Pi根據(jù)其與Pj的直接交易回饋信息而得到的信任關(guān)系。設(shè)ΓI(Pi,Pj)表示Pi根據(jù)其他節(jié)點(diǎn)的反饋而得到的其對(duì)Pj的信任,即反饋信任度。設(shè)Γ(Pi,Pj)為由ΓD(Pi,Pj)和ΓI(Pi,Pj)聚合而得到的Pi對(duì)Pj的總體信任評(píng)價(jià)(OTD)。
物聯(lián)網(wǎng)系統(tǒng)中基于信任的資源選擇算法步驟如下。
① 從資源信息中心獲取可用資源的列表O={Pj,j∈[1,M]};
② 根據(jù)操作系統(tǒng)、體系結(jié)構(gòu)和CPU個(gè)數(shù)等硬性需求,過(guò)濾掉不滿足條件的計(jì)算資源;
③ 根據(jù)相關(guān)算法計(jì)算每一個(gè)資源的總體信任度Γ(Pi,Pj),根據(jù)用戶作業(yè)的信任需求閾值,過(guò)濾掉信任度低于該閾值的資源;
④ 根據(jù)計(jì)算得到的每一個(gè)資源的OTD,對(duì)可選資源進(jìn)行排序;
⑤ 根據(jù)排序結(jié)果,選擇OTD值最大的資源,并提交作業(yè)到該資源;
⑥ 等待作業(yè)結(jié)果,如果作業(yè)被按時(shí)成功執(zhí)行,則進(jìn)行后續(xù)工作,如支付報(bào)酬、下載結(jié)果文件等,然后回饋正面的評(píng)價(jià),并根據(jù)相關(guān)算法增加直接信任度;
⑦ 如果執(zhí)行作業(yè)超時(shí)或失敗,則回饋較低的評(píng)價(jià),根據(jù)相關(guān)算法降低直接信任度,并從排序列表中刪除該資源。
⑧ 跳轉(zhuǎn)到步驟③,直到作業(yè)完成。
現(xiàn)在分析這個(gè)算法的優(yōu)缺點(diǎn)。假設(shè)每個(gè)服務(wù)請(qǐng)求者都是自私的,希望自己獲得的服務(wù)是最好的。如果對(duì)某個(gè)服務(wù)請(qǐng)求者來(lái)說(shuō),能夠?yàn)槠涮峁┓?wù)的提供者有很多,那么他將選擇信任度高的提供者來(lái)為自己服務(wù)。然而,這種方式對(duì)于信任度高的服務(wù)提供者來(lái)說(shuō)卻有兩點(diǎn)不利:
① 信任度越高的服務(wù)提供者,其提供服務(wù)所消耗的資源越多;
② 信任度高的服務(wù)提供者和信任度低的服務(wù)提供者在這種方式下會(huì)獲得相同的利益。
因此,在一個(gè)實(shí)際應(yīng)用系統(tǒng)中,需要對(duì)這一不利因素進(jìn)行改進(jìn),例如,可以對(duì)多個(gè)服務(wù)提供者的OTD進(jìn)行排名,然后設(shè)定OTD的閾值,挑選出比閾值高的所有服務(wù)提供者,從中隨機(jī)選擇一個(gè)作為目標(biāo),向其請(qǐng)求服務(wù)。這樣就在一定程度上減輕了信譽(yù)高的域節(jié)點(diǎn)的負(fù)載。又如,除了服務(wù)提供者的OTD因素外,還可以考慮服務(wù)請(qǐng)求者在價(jià)格和風(fēng)險(xiǎn)方面的偏好等因素。
(3)面向FTP的動(dòng)態(tài)資源訪問(wèn)控制
設(shè)有一個(gè)提供文件共享服務(wù)的站點(diǎn)P,為了保證網(wǎng)絡(luò)系統(tǒng)的安全性,該FTP站點(diǎn)引入了信任評(píng)估機(jī)制,對(duì)所有的服務(wù)請(qǐng)求者節(jié)點(diǎn)進(jìn)行信任度的評(píng)估,根據(jù)信任度的評(píng)估結(jié)果,對(duì)不同信任度的節(jié)點(diǎn)提供不同類(lèi)別的服務(wù)質(zhì)量。假設(shè)站點(diǎn)P可以提供3個(gè)等級(jí)的服務(wù)質(zhì)量,設(shè)服務(wù)類(lèi)別的等級(jí)用集合S表示,站點(diǎn)P的S可以定義為:S={s1, s2, s3,},其中s1表示拒絕服務(wù),s2表示只讀,s3表示既可以讀也可以寫(xiě)。則可以定義如下的服務(wù)決策函數(shù):
設(shè)節(jié)點(diǎn)P通過(guò)本書(shū)的計(jì)算方法得到某實(shí)體Pj的總體信任度為Γ(P,Pj)=0.19,則根據(jù)決策函數(shù)Ψ可得決策過(guò)程為Ψ(Γ(P,Pj))=Ψ(0.19)=s1,這說(shuō)明節(jié)點(diǎn)Pj的信任級(jí)別較低,站點(diǎn)P將拒絕為Pj提供服務(wù)。若Γ(P,Pj)=0.40,則Ψ(Γ(P,Pj))=Ψ(0.40)=s2,表示節(jié)點(diǎn)Pj可以讀節(jié)點(diǎn)P的資源。若Γ(Pi,Pj)=0.90,則Ψ(Γ(P,Pj))=Ψ(0.90)=s3,表示節(jié)點(diǎn)Pj既可以讀節(jié)點(diǎn)P的資源,也可以將數(shù)據(jù)保存(上傳)到P的存儲(chǔ)器中。